diff --git a/.github/stale.yml b/.github/stale.yml
new file mode 100644
index 0000000..dc90e5a
--- /dev/null
+++ b/.github/stale.yml
@@ -0,0 +1,17 @@
+# Number of days of inactivity before an issue becomes stale
+daysUntilStale: 60
+# Number of days of inactivity before a stale issue is closed
+daysUntilClose: 7
+# Issues with these labels will never be considered stale
+exemptLabels:
+ - pinned
+ - security
+# Label to use when marking an issue as stale
+staleLabel: wontfix
+# Comment to post when marking an issue as stale. Set to `false` to disable
+markComment: >
+ This issue has been automatically marked as stale because it has not had
+ recent activity. It will be closed if no further activity occurs. Thank you
+ for your contributions.
+# Comment to post when closing a stale issue. Set to `false` to disable
+closeComment: false
diff --git a/.github/workflows/deploy-web.yaml b/.github/workflows/deploy-web.yaml
new file mode 100644
index 0000000..622814c
--- /dev/null
+++ b/.github/workflows/deploy-web.yaml
@@ -0,0 +1,31 @@
+name: deploy web on github-page
+on:
+ push:
+ branches:
+ - master
+jobs:
+ build:
+ name: Build Web
+ env:
+ my_secret: ${{secrets.commit_secret}}
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - uses: subosito/flutter-action@v1
+ with:
+ channel: "stable"
+ - run: flutter config --enable-web
+ - run: flutter clean
+ - run: flutter pub get
+ - run: flutter build web --release --web-renderer html --base-href /flutter-webrtc-demo/
+ - run: |
+ cd build/web
+ git init
+ git config --global user.email duanweiwei1982@gmail.com
+ git config --global user.name cloudwebrtc
+ git status
+ git remote add origin https://${{secrets.commit_secret}}@github.com/flutter-webrtc/flutter-webrtc-demo.git
+ git checkout -b gh-pages
+ git add --all
+ git commit -m "update"
+ git push origin gh-pages -f
diff --git a/.github/workflows/flutter.yml b/.github/workflows/flutter.yml
new file mode 100644
index 0000000..3b9b3ae
--- /dev/null
+++ b/.github/workflows/flutter.yml
@@ -0,0 +1,31 @@
+name: Flutter CI
+
+on:
+ push:
+ branches:
+ - dev
+ - master
+ - action_test
+
+jobs:
+ test:
+ name: Test on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest]
+# os: [ubuntu-latest, windows-latest, macos-latest]
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-java@v1
+ with:
+ java-version: '12.x'
+ - uses: subosito/flutter-action@v1
+ with:
+ flutter-version: '3.3.2'
+ channel: 'stable'
+ - run: flutter packages get
+ - run: flutter test
+ - run: flutter build apk --target-platform android-arm,android-arm64 --split-per-abi
+
+# - run: curl
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fb82ae0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,73 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# Visual Studio Code related
+.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+.dart_tool/
+.flutter-plugins
+.packages
+.pub-cache/
+.pub/
+/build/
+
+# Android related
+**/android/**/gradle-wrapper.jar
+**/android/.gradle
+**/android/captures/
+**/android/gradlew
+**/android/gradlew.bat
+**/android/local.properties
+**/android/**/GeneratedPluginRegistrant.java
+
+# iOS/XCode related
+**/ios/**/*.mode1v3
+**/ios/**/*.mode2v3
+**/ios/**/*.moved-aside
+**/ios/**/*.pbxuser
+**/ios/**/*.perspectivev3
+**/ios/**/*sync/
+**/ios/**/.sconsign.dblite
+**/ios/**/.tags*
+**/ios/**/.vagrant/
+**/ios/**/DerivedData/
+**/ios/**/Icon?
+**/ios/**/Pods/
+**/ios/**/.symlinks/
+**/ios/**/profile
+**/ios/**/xcuserdata
+**/ios/.generated/
+**/ios/Flutter/App.framework
+**/ios/Flutter/Flutter.framework
+**/ios/Flutter/Generated.xcconfig
+**/ios/Flutter/app.flx
+**/ios/Flutter/app.zip
+**/ios/Flutter/flutter_assets/
+**/ios/ServiceDefinitions.json
+**/ios/Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!**/ios/**/default.mode1v3
+!**/ios/**/default.mode2v3
+!**/ios/**/default.pbxuser
+!**/ios/**/default.perspectivev3
+!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
+.flutter-plugins-dependencies
+
+ios/Flutter/flutter_export_environment.sh
diff --git a/.metadata b/.metadata
new file mode 100644
index 0000000..5e2646b
--- /dev/null
+++ b/.metadata
@@ -0,0 +1,30 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+ revision: "b0850beeb25f6d5b10426284f506557f66181b36"
+ channel: "stable"
+
+project_type: app
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: b0850beeb25f6d5b10426284f506557f66181b36
+ base_revision: b0850beeb25f6d5b10426284f506557f66181b36
+ - platform: ios
+ create_revision: b0850beeb25f6d5b10426284f506557f66181b36
+ base_revision: b0850beeb25f6d5b10426284f506557f66181b36
+
+ # User provided section
+
+ # List of Local paths (relative to this file) that should be
+ # ignored by the migrate tool.
+ #
+ # Files that are not part of the templates will be ignored by default.
+ unmanaged_files:
+ - 'lib/main.dart'
+ - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..bb4c1a4
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 湖北捷智云技术有限公司
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..49790fe
--- /dev/null
+++ b/README.md
@@ -0,0 +1,20 @@
+# flutter-webrtc-demo
+ [](https://join.slack.com/t/flutterwebrtc/shared_invite/zt-q83o7y1s-FExGLWEvtkPKM8ku_F8cEQ)
+
+Flutter WebRTC plugin Demo
+
+Online Demo: https://flutter-webrtc.github.io/flutter-webrtc-demo/
+
+## Usage
+- `git clone https://github.com/cloudwebrtc/flutter-webrtc-demo`
+- `cd flutter-webrtc-demo`
+- `flutter packages get`
+- `flutter run`
+## Note
+- If you want to test `P2P Call Sample`, please use the [webrtc-flutter-server](https://github.com/cloudwebrtc/flutter-webrtc-server), and enter your server address into the example app.
+
+## screenshots
+# iOS
+
+# Android
+
diff --git a/analysis_options.yaml b/analysis_options.yaml
new file mode 100644
index 0000000..0d29021
--- /dev/null
+++ b/analysis_options.yaml
@@ -0,0 +1,28 @@
+# This file configures the analyzer, which statically analyzes Dart code to
+# check for errors, warnings, and lints.
+#
+# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
+# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
+# invoked from the command line by running `flutter analyze`.
+
+# The following line activates a set of recommended lints for Flutter apps,
+# packages, and plugins designed to encourage good coding practices.
+include: package:flutter_lints/flutter.yaml
+
+linter:
+ # The lint rules applied to this project can be customized in the
+ # section below to disable rules from the `package:flutter_lints/flutter.yaml`
+ # included above or to enable additional rules. A list of all available lints
+ # and their documentation is published at https://dart.dev/lints.
+ #
+ # Instead of disabling a lint rule for the entire project in the
+ # section below, it can also be suppressed for a single line of code
+ # or a specific dart file by using the `// ignore: name_of_lint` and
+ # `// ignore_for_file: name_of_lint` syntax on the line or in the file
+ # producing the lint.
+ rules:
+ # avoid_print: false # Uncomment to disable the `avoid_print` rule
+ # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
+
+# Additional information about this file can be found at
+# https://dart.dev/guides/language/analysis-options
diff --git a/android/.gitignore b/android/.gitignore
new file mode 100644
index 0000000..6f56801
--- /dev/null
+++ b/android/.gitignore
@@ -0,0 +1,13 @@
+gradle-wrapper.jar
+/.gradle
+/captures/
+/gradlew
+/gradlew.bat
+/local.properties
+GeneratedPluginRegistrant.java
+
+# Remember to never publicly share your keystore.
+# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+key.properties
+**/*.keystore
+**/*.jks
diff --git a/android/app/build.gradle b/android/app/build.gradle
new file mode 100644
index 0000000..3e6105f
--- /dev/null
+++ b/android/app/build.gradle
@@ -0,0 +1,58 @@
+plugins {
+ id "com.android.application"
+ id "kotlin-android"
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id "dev.flutter.flutter-gradle-plugin"
+}
+
+def localProperties = new Properties()
+def localPropertiesFile = rootProject.file("local.properties")
+if (localPropertiesFile.exists()) {
+ localPropertiesFile.withReader("UTF-8") { reader ->
+ localProperties.load(reader)
+ }
+}
+
+def flutterVersionCode = localProperties.getProperty("flutter.versionCode")
+if (flutterVersionCode == null) {
+ flutterVersionCode = "1"
+}
+
+def flutterVersionName = localProperties.getProperty("flutter.versionName")
+if (flutterVersionName == null) {
+ flutterVersionName = "1.0"
+}
+
+android {
+ namespace = "com.cloudwebrtc.flutter_webrtc_demo_master"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+
+ defaultConfig {
+ // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+ applicationId = "com.cloudwebrtc.flutter_webrtc_demo_master"
+ // You can update the following values to match your application needs.
+ // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
+ minSdk = flutter.minSdkVersion
+ targetSdk = flutter.targetSdkVersion
+ versionCode = flutterVersionCode.toInteger()
+ versionName = flutterVersionName
+ }
+
+ buildTypes {
+ release {
+ // TODO: Add your own signing config for the release build.
+ // Signing with the debug keys for now, so `flutter run --release` works.
+ signingConfig = signingConfigs.debug
+ }
+ }
+}
+
+flutter {
+ source = "../.."
+}
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..399f698
--- /dev/null
+++ b/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..e523c74
--- /dev/null
+++ b/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/kotlin/com/cloudwebrtc/flutter_webrtc_demo_master/BackgroundService.kt b/android/app/src/main/kotlin/com/cloudwebrtc/flutter_webrtc_demo_master/BackgroundService.kt
new file mode 100644
index 0000000..3257643
--- /dev/null
+++ b/android/app/src/main/kotlin/com/cloudwebrtc/flutter_webrtc_demo_master/BackgroundService.kt
@@ -0,0 +1,47 @@
+package com.cloudwebrtc.flutter_webrtc_demo_master
+
+import android.app.Notification
+import android.app.NotificationChannel
+import android.app.NotificationManager
+import android.app.Service
+import android.content.Intent
+import android.os.Build
+import android.os.IBinder
+import androidx.core.app.NotificationCompat
+
+class BackgroundService : Service() {
+
+ override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
+ createNotificationChannel()
+
+ val notification = NotificationCompat.Builder(this, "ScreenRecorder")
+ .setContentTitle("yNote studios")
+ .setContentText("Filming...")
+ .build()
+
+ startForeground(1, notification)
+ return START_STICKY // or another appropriate flag
+ }
+
+ override fun onBind(intent: Intent?): IBinder? {
+ return null
+ }
+
+ private fun createNotificationChannel() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ val channel = NotificationChannel(
+ "ScreenRecorder", "Foreground notification",
+ NotificationManager.IMPORTANCE_DEFAULT
+ )
+ val manager = getSystemService(NotificationManager::class.java)
+ manager.createNotificationChannel(channel)
+ }
+ }
+
+ override fun onDestroy() {
+ stopForeground(true)
+ stopSelf()
+
+ super.onDestroy()
+ }
+}
diff --git a/android/app/src/main/kotlin/com/cloudwebrtc/flutter_webrtc_demo_master/MainActivity.kt b/android/app/src/main/kotlin/com/cloudwebrtc/flutter_webrtc_demo_master/MainActivity.kt
new file mode 100644
index 0000000..5ec56c8
--- /dev/null
+++ b/android/app/src/main/kotlin/com/cloudwebrtc/flutter_webrtc_demo_master/MainActivity.kt
@@ -0,0 +1,27 @@
+package com.cloudwebrtc.flutter_webrtc_demo_master
+
+import android.Manifest
+import android.app.NotificationManager
+import android.content.Intent
+import android.os.Build
+import android.os.Bundle
+import androidx.annotation.RequiresApi
+import io.flutter.embedding.android.FlutterActivity
+
+
+class MainActivity: FlutterActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ val intent = Intent(
+ this,
+ BackgroundService::class.java
+ )
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ startForegroundService(intent)
+ } else {
+ startService(intent)
+ }
+ super.onCreate(savedInstanceState)
+ }
+
+
+}
diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml
new file mode 100644
index 0000000..f74085f
--- /dev/null
+++ b/android/app/src/main/res/drawable-v21/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml
new file mode 100644
index 0000000..304732f
--- /dev/null
+++ b/android/app/src/main/res/drawable/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..db77bb4
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..17987b7
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..09d4391
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..d5f1c8d
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..4d6372e
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml
new file mode 100644
index 0000000..06952be
--- /dev/null
+++ b/android/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..cb1ef88
--- /dev/null
+++ b/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml
new file mode 100644
index 0000000..399f698
--- /dev/null
+++ b/android/app/src/profile/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/android/build.gradle b/android/build.gradle
new file mode 100644
index 0000000..d2ffbff
--- /dev/null
+++ b/android/build.gradle
@@ -0,0 +1,18 @@
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.buildDir = "../build"
+subprojects {
+ project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
+ project.evaluationDependsOn(":app")
+}
+
+tasks.register("clean", Delete) {
+ delete rootProject.buildDir
+}
diff --git a/android/gradle.properties b/android/gradle.properties
new file mode 100644
index 0000000..3b5b324
--- /dev/null
+++ b/android/gradle.properties
@@ -0,0 +1,3 @@
+org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..e1ca574
--- /dev/null
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
diff --git a/android/settings.gradle b/android/settings.gradle
new file mode 100644
index 0000000..536165d
--- /dev/null
+++ b/android/settings.gradle
@@ -0,0 +1,25 @@
+pluginManagement {
+ def flutterSdkPath = {
+ def properties = new Properties()
+ file("local.properties").withInputStream { properties.load(it) }
+ def flutterSdkPath = properties.getProperty("flutter.sdk")
+ assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+ return flutterSdkPath
+ }()
+
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
+
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+
+plugins {
+ id "dev.flutter.flutter-plugin-loader" version "1.0.0"
+ id "com.android.application" version "7.3.0" apply false
+ id "org.jetbrains.kotlin.android" version "1.7.10" apply false
+}
+
+include ":app"
diff --git a/flutter-webrtc-server-master/.gitignore b/flutter-webrtc-server-master/.gitignore
new file mode 100644
index 0000000..25eef8e
--- /dev/null
+++ b/flutter-webrtc-server-master/.gitignore
@@ -0,0 +1,17 @@
+# Binaries for programs and plugins
+*.exe
+*.exe~
+*.dll
+*.so
+*.dylib
+
+# Test binary, built with `go test -c`
+*.test
+
+# Output of the go coverage tool, specifically when used with LiteIDE
+*.out
+
+# Dependency directories (remove the comment below to include it)
+# vendor/
+
+.DS_Store
\ No newline at end of file
diff --git a/flutter-webrtc-server-master/LICENSE b/flutter-webrtc-server-master/LICENSE
new file mode 100644
index 0000000..bb4c1a4
--- /dev/null
+++ b/flutter-webrtc-server-master/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 湖北捷智云技术有限公司
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/flutter-webrtc-server-master/Makefile b/flutter-webrtc-server-master/Makefile
new file mode 100644
index 0000000..879fbc9
--- /dev/null
+++ b/flutter-webrtc-server-master/Makefile
@@ -0,0 +1,26 @@
+VERSION=$(shell git describe --tags)
+LDFLAGS=-ldflags "-s -w"
+
+all: linux darwin windows
+
+release: all zip
+
+clean:
+ rm -rf bin/* *.zip
+
+upx:
+ upx -9 bin/*
+
+linux:
+ CGO_ENABLE=0 GOOS=linux GOARCH=amd64 go build -o bin/server-linux-amd64 ${LDFLAGS} cmd/server/main.go
+ CGO_ENABLE=0 GOOS=linux GOARCH=386 go build -o bin/server-linux-i386 ${LDFLAGS} cmd/server/main.go
+
+darwin:
+ CGO_ENABLE=0 GOOS=darwin GOARCH=amd64 go build -o bin/server-darwin-amd64 ${LDFLAGS} cmd/server/main.go
+
+windows:
+ CGO_ENABLE=0 GOOS=windows GOARCH=amd64 go build -o bin/server-windows-amd64.exe ${LDFLAGS} cmd/server/main.go
+ CGO_ENABLE=0 GOOS=windows GOARCH=386 go build -o bin/server-windows-i386.exe ${LDFLAGS} cmd/server/main.go
+
+zip:
+ zip -r flutter-webrtc-server-bin-${VERSION}.zip bin configs web
diff --git a/flutter-webrtc-server-master/README.md b/flutter-webrtc-server-master/README.md
new file mode 100644
index 0000000..b2f769a
--- /dev/null
+++ b/flutter-webrtc-server-master/README.md
@@ -0,0 +1,51 @@
+# flutter-webrtc-server
+ [](https://join.slack.com/t/flutterwebrtc/shared_invite/zt-q83o7y1s-FExGLWEvtkPKM8ku_F8cEQ)
+
+A simple WebRTC Signaling server for flutter-webrtc and html5.
+
+Online Demo: https://demo.cloudwebrtc.com:8086/
+
+## Features
+- Support Windows/Linux/macOS
+- Built-in web, signaling, [turn server](https://github.com/pion/turn/tree/master/examples/turn-server)
+- Support [REST API For Access To TURN Services](https://tools.ietf.org/html/draft-uberti-behave-turn-rest-00)
+- Use [flutter-webrtc-demo](https://github.com/cloudwebrtc/flutter-webrtc-demo) for all platforms.
+
+## Usage
+
+### Run from source
+
+- Clone the repository.
+
+```bash
+git clone https://github.com/flutter-webrtc/flutter-webrtc-server.git
+cd flutter-webrtc-server
+```
+
+- Use `mkcert` to create a self-signed certificate.
+
+```bash
+brew update
+brew install mkcert
+mkcert -key-file configs/certs/key.pem -cert-file configs/certs/cert.pem localhost 127.0.0.1 ::1 0.0.0.0
+```
+
+- Run
+
+```bash
+brew install golang
+go run cmd/server/main.go
+```
+
+- Open https://0.0.0.0:8086 to use flutter web demo.
+- If you need to test mobile app, please check the [webrtc-flutter-demo](https://github.com/cloudwebrtc/flutter-webrtc-demo).
+
+## Note
+If you need to use it in a production environment, you need more testing.
+
+## screenshots
+# iOS/Android
+
+
+# PC/HTML5
+
diff --git a/flutter-webrtc-server-master/cmd/server/main.go b/flutter-webrtc-server-master/cmd/server/main.go
new file mode 100644
index 0000000..7f071e9
--- /dev/null
+++ b/flutter-webrtc-server-master/cmd/server/main.go
@@ -0,0 +1,56 @@
+package main
+
+import (
+ "os"
+
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/logger"
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/signaler"
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/turn"
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/websocket"
+ "gopkg.in/ini.v1"
+)
+
+func main() {
+
+ cfg, err := ini.Load("configs/config.ini")
+ if err != nil {
+ logger.Errorf("Fail to read file: %v", err)
+ os.Exit(1)
+ }
+
+ publicIP := cfg.Section("turn").Key("public_ip").String()
+ stunPort, err := cfg.Section("turn").Key("port").Int()
+ if err != nil {
+ stunPort = 3478
+ }
+ realm := cfg.Section("turn").Key("realm").String()
+
+ turnConfig := turn.DefaultConfig()
+ turnConfig.PublicIP = publicIP
+ turnConfig.Port = stunPort
+ turnConfig.Realm = realm
+ turn := turn.NewTurnServer(turnConfig)
+
+ signaler := signaler.NewSignaler(turn)
+ wsServer := websocket.NewWebSocketServer(signaler.HandleNewWebSocket, signaler.HandleTurnServerCredentials)
+
+ sslCert := cfg.Section("general").Key("cert").String()
+ sslKey := cfg.Section("general").Key("key").String()
+ bindAddress := cfg.Section("general").Key("bind").String()
+
+ port, err := cfg.Section("general").Key("port").Int()
+ if err != nil {
+ port = 8086
+ }
+
+ htmlRoot := cfg.Section("general").Key("html_root").String()
+
+ config := websocket.DefaultConfig()
+ config.Host = bindAddress
+ config.Port = port
+ config.CertFile = sslCert
+ config.KeyFile = sslKey
+ config.HTMLRoot = htmlRoot
+
+ wsServer.Bind(config)
+}
diff --git a/flutter-webrtc-server-master/configs/certs/cert.pem b/flutter-webrtc-server-master/configs/certs/cert.pem
new file mode 100644
index 0000000..f9e319a
--- /dev/null
+++ b/flutter-webrtc-server-master/configs/certs/cert.pem
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEWTCCAsGgAwIBAgIQBS0XngJbktjxgkxLQgWdZDANBgkqhkiG9w0BAQsFADBx
+MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmNoZW5x
+Z0BNYWNCb29rLVByby0yLmxvY2FsMSowKAYDVQQDDCFta2NlcnQgY2hlbnFnQE1h
+Y0Jvb2stUHJvLTIubG9jYWwwHhcNMjQwODAyMDk1NzU1WhcNMjYxMTAyMDk1NzU1
+WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh
+BgNVBAsMGmNoZW5xZ0BNYWNCb29rLVByby0yLmxvY2FsMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEA1Felh4beWrIJTRCmpWTouEuRQDEPNRcVKG6MkWGq
+Gi0AbefF94ALJhl5JihdcqpEBeB1uD0SyGKyqq6SOw1p2W4uUllA9zqZhfLIGB6t
+6fCffdt0v0V0L6WTC68jb/9W5E6cq96n7fIGm2dq3XI63mVcnMLBfFstdQsRk+UL
+nEp6NSUiGfSg9FFkrsdNC2cQ6JgkSnwlwI5dDJFKqAwfmNRttyQLXIazEhUdSGnq
+c+9Yw3wyHLbr9m85yboO9/OPYCNcga9evxqSXLPbwXlKXpsOOpnFunnGsoam497u
+hLmCQanMehIRtFycMW1jrZaUZG9KRWbnLbQvSrcZ17hThwIDAQABo4GPMIGMMA4G
+A1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNVHSMEGDAWgBTh
+stA32tP5NkKJacX4Clhbma9JlzBEBgNVHREEPTA7gglsb2NhbGhvc3SHBH8AAAGH
+EAAAAAAAAAAAAAAAAAAAAAGHBAAAAACHBMCoAQSHBMCoCCaHBMCoAZ4wDQYJKoZI
+hvcNAQELBQADggGBAI/1i47JWtIznrpQL8xYbMAP8YE8nEOzzK+FkCEF7WNorYMg
+CkCayVfa0/jipohyD3Iu9rF8kK3voTcHVNQPbwnoCqyhwTUYGBlb7z8SzNG0ssBl
+8o72dSvLB5vIT+GYhW+N+tEOnPtQQ+0sidratdSuCXq01hnIhKLN2OhCNXes5mJY
+SqoTRHUezQCmFfjQwy0TxGKZ+swYtmvrLsgc75GoOFsX9GzpiUGrN8sQStlQV/i7
+Ed+ozfJNjOIhMKUW3MkY6vdLlY8U02gmvT+ca3xS2n2jzZDZxV6D3AKGT0B3M3KR
+N0IGHgiTCGw3q3nA/SgbYMUYGZ76Sr8uN3EhcoL+DgT5WjpPlKZjHGuBgvJDPVJp
+on7wZb1OpXVk+2i/OPHkpEZIr1ECJN9L0WQ3yQmVrVHX50l0yrOgkg+QPknfxuQi
+2k0uboblF3KaBoPW+QVa4Ts77kvO6rEieb/XH3fCef7bNUSePgNTn4TOlBMfzzMV
+oAEUJpQ6vifWCFAfhg==
+-----END CERTIFICATE-----
diff --git a/flutter-webrtc-server-master/configs/certs/key.pem b/flutter-webrtc-server-master/configs/certs/key.pem
new file mode 100644
index 0000000..a1e8346
--- /dev/null
+++ b/flutter-webrtc-server-master/configs/certs/key.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDUV6WHht5asglN
+EKalZOi4S5FAMQ81FxUoboyRYaoaLQBt58X3gAsmGXkmKF1yqkQF4HW4PRLIYrKq
+rpI7DWnZbi5SWUD3OpmF8sgYHq3p8J9923S/RXQvpZMLryNv/1bkTpyr3qft8gab
+Z2rdcjreZVycwsF8Wy11CxGT5QucSno1JSIZ9KD0UWSux00LZxDomCRKfCXAjl0M
+kUqoDB+Y1G23JAtchrMSFR1Iaepz71jDfDIctuv2bznJug73849gI1yBr16/GpJc
+s9vBeUpemw46mcW6ecayhqbj3u6EuYJBqcx6EhG0XJwxbWOtlpRkb0pFZucttC9K
+txnXuFOHAgMBAAECggEATWhiJITK/D8Y2uouBe9CUyThH4iC5bSzdtjOD5WN4Br1
+pBsw9OfNqKbynjFq14kwYQARigdhmIE6ZrRbBIIAS046PrTg1P+cxdLalMhiV/zq
+94OQDMYx88ilUUYYYhSwRWxO+uyhRUHMnMxXjcC9qyNCXrc0t7O5X4iYcNS3pdJq
+mwbcA4/iQ8r9H00nqV2acXK8HKhCXtj6Gb6xf5OtkomA/lhOMtjT+FTMk+dNsivS
+ZEghd+8WFwTedxVVfOOrK7lM3K0NTaNwLECYgotVgktx1xwBJ9Z6qTWicsuO+vv2
+yPxZfypSTXUqhGVAxM70toT7cjFIfspgAJk9zdk/oQKBgQDySDta20woPpgJOaey
+Ws1P3PqA/WgKSUts1DSf4L61UggZOfWpwsuWDPQjIWc2gBlLRh7O0XnctwdaPPqX
+kUmqtSqwewVtG2V2mZ0VwofJ3P2TNN0xsNBl90atdHpQAnGP0I4hH+P8FRJ6MuJI
+tXeQkv35ckuHDzH/ZoDLhqBE1wKBgQDgXXOLfdY3leWUkS8Wm2nei0w6PmfAOUJD
+i6pJTxiOCAQmtvc7/PGiisXdnCQg26gkZeHEi6ny0ZsvDB+Lb7HrGoNPtrT7HXqw
+wxdofgzhC3JsxpqC6pSS9SGGaYKf3+mGqCa7rUpCwfAdEeiQDhRu7GqY+tTh9MCV
+rTqpqfzg0QKBgQCNPTiEzcTGzT6aWib9nVuFDCBoo9FL9dBngAmxjjX+w/R+qEAj
+F7DRJ3oHJMjjh6e3Lwh0rr8owPYjT9sSEptsTbK2MPFH2qm6ivB9J+s67X5Rm4a7
+GgVS++US5w0KqXIEUaMZglrIsIwV+qXZlxg9isNN8KhA8sXFyr6YZ0H0/wKBgFgT
+d2tX78MMXf6Pa9vFEK9jIX5vxwzHrYKUjjmPCkWfUfncs3tiFX1IWtpfFDOt5vi6
+4gDlDscaj3/Nk4iKRV7Unp2pTKyTavl+7G6BpQ6nDrky0a745XA3OHzqaHPYU3Ug
+B2x/X3qLZXYT9KawUEcnGcWKGg3FpeBcC35VE8cxAoGBANoVinIBBreecDgzALfB
+OmpNx5W5OY/DsnY2NxeZiqc5cNtgnmAx+F8a+oUBihv+1UhcmI3SARRW1lgz5+D/
+PJ6KlRmUMpJ01sFYgjv/WVPHjMf64sohKi0T5WaWDLj6zxYZ/PGfK037JrLZX0OE
+DY/jV8RO5kGrML8GpRKSlPlf
+-----END PRIVATE KEY-----
diff --git a/flutter-webrtc-server-master/configs/config.ini b/flutter-webrtc-server-master/configs/config.ini
new file mode 100644
index 0000000..9568cb4
--- /dev/null
+++ b/flutter-webrtc-server-master/configs/config.ini
@@ -0,0 +1,12 @@
+[general]
+domain=demo.cloudwebrtc.com
+cert=configs/certs/cert.pem
+key=configs/certs/key.pem
+bind=0.0.0.0
+port=8086
+html_root=web
+
+[turn]
+public_ip=127.0.0.1
+port=19302
+realm=flutter-webrtc
diff --git a/flutter-webrtc-server-master/go.mod b/flutter-webrtc-server-master/go.mod
new file mode 100644
index 0000000..f30f46d
--- /dev/null
+++ b/flutter-webrtc-server-master/go.mod
@@ -0,0 +1,12 @@
+module github.com/flutter-webrtc/flutter-webrtc-server
+
+go 1.12
+
+require (
+ github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9
+ github.com/gorilla/websocket v1.4.2
+ github.com/pion/turn/v2 v2.0.5
+ github.com/rs/zerolog v1.23.0
+ github.com/smartystreets/goconvey v1.6.4 // indirect
+ gopkg.in/ini.v1 v1.62.0
+)
diff --git a/flutter-webrtc-server-master/go.sum b/flutter-webrtc-server-master/go.sum
new file mode 100644
index 0000000..059d39f
--- /dev/null
+++ b/flutter-webrtc-server-master/go.sum
@@ -0,0 +1,68 @@
+github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 h1:xz6Nv3zcwO2Lila35hcb0QloCQsc38Al13RNEzWRpX4=
+github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9/go.mod h1:2wSM9zJkl1UQEFZgSd68NfCgRz1VL1jzy/RjCg+ULrs=
+github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
+github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
+github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY=
+github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms=
+github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA=
+github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8=
+github.com/pion/stun v0.3.5 h1:uLUCBCkQby4S1cf6CGuR9QrVOKcvUwFeemaC865QHDg=
+github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA=
+github.com/pion/transport v0.10.1 h1:2W+yJT+0mOQ160ThZYUx5Zp2skzshiNgxrNE9GUfhJM=
+github.com/pion/transport v0.10.1/go.mod h1:PBis1stIILMiis0PewDw91WJeLJkyIMcEk+DwKOzf4A=
+github.com/pion/turn/v2 v2.0.5 h1:iwMHqDfPEDEOFzwWKT56eFmh6DYC6o/+xnLAEzgISbA=
+github.com/pion/turn/v2 v2.0.5/go.mod h1:APg43CFyt/14Uy7heYUOGWdkem/Wu4PhCO/bjyrTqMw=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
+github.com/rs/zerolog v1.23.0 h1:UskrK+saS9P9Y789yNNulYKdARjPZuS35B8gJF2x60g=
+github.com/rs/zerolog v1.23.0/go.mod h1:6c7hFfxPOy7TacJc4Fcdi24/J0NKYGzjG8FWRI916Qo=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
+github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU=
+gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/flutter-webrtc-server-master/pkg/logger/logger.go b/flutter-webrtc-server-master/pkg/logger/logger.go
new file mode 100644
index 0000000..42a6d3c
--- /dev/null
+++ b/flutter-webrtc-server-master/pkg/logger/logger.go
@@ -0,0 +1,63 @@
+package logger
+
+import (
+ "os"
+ "time"
+
+ "github.com/rs/zerolog"
+)
+
+var log zerolog.Logger
+
+// Level defines log levels.
+type Level uint8
+
+const (
+ // DebugLevel defines debug log level.
+ DebugLevel Level = iota
+ // InfoLevel defines info log level.
+ InfoLevel
+ // WarnLevel defines warn log level.
+ WarnLevel
+ // ErrorLevel defines error log level.
+ ErrorLevel
+ // FatalLevel defines fatal log level.
+ FatalLevel
+ // PanicLevel defines panic log level.
+ PanicLevel
+ // NoLevel defines an absent log level.
+ NoLevel
+ // Disabled disables the logger.
+ Disabled
+)
+
+func init() {
+ zerolog.SetGlobalLevel(zerolog.DebugLevel)
+ output := zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339}
+ log = zerolog.New(output).With().Timestamp().Logger()
+ SetLevel(DebugLevel)
+}
+
+func SetLevel(l Level) {
+ zerolog.SetGlobalLevel(zerolog.Level(l))
+}
+
+func Infof(format string, v ...interface{}) {
+ log.Info().Msgf(format, v...)
+}
+
+func Debugf(format string, v ...interface{}) {
+ log.Debug().Msgf(format, v...)
+}
+
+func Warnf(format string, v ...interface{}) {
+ log.Warn().Msgf(format, v...)
+}
+
+func Errorf(format string, v ...interface{}) {
+ log.Error().Msgf(format, v...)
+}
+
+func Panicf(format string, v ...interface{}) {
+ log.Panic().Msgf(format, v...)
+}
diff --git a/flutter-webrtc-server-master/pkg/signaler/signaler.go b/flutter-webrtc-server-master/pkg/signaler/signaler.go
new file mode 100644
index 0000000..1560291
--- /dev/null
+++ b/flutter-webrtc-server-master/pkg/signaler/signaler.go
@@ -0,0 +1,338 @@
+package signaler
+
+import (
+ "crypto/hmac"
+ "crypto/sha1"
+ "encoding/base64"
+ "encoding/json"
+ "fmt"
+ "net"
+ "net/http"
+ "net/url"
+ "strings"
+ "time"
+
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/logger"
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/turn"
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/util"
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/websocket"
+)
+
+const (
+ sharedKey = `flutter-webrtc-turn-server-shared-key`
+)
+
+type TurnCredentials struct {
+ Username string `json:"username"`
+ Password string `json:"password"`
+ TTL int `json:"ttl"`
+ Uris []string `json:"uris"`
+}
+
+// Peer .
+type Peer struct {
+ info PeerInfo
+ conn *websocket.WebSocketConn
+}
+
+// Session info.
+type Session struct {
+ id string
+ from Peer
+ to Peer
+}
+
+type Method string
+
+const (
+ New Method = "new"
+ Bye Method = "bye"
+ Offer Method = "offer"
+ Answer Method = "answer"
+ Candidate Method = "candidate"
+ Leave Method = "leave"
+ Keepalive Method = "keepalive"
+)
+
+type Request struct {
+ Type Method `json:"type"`
+ Data interface{} `json:"data"`
+}
+
+type PeerInfo struct {
+ ID string `json:"id"`
+ Name string `json:"name"`
+ UserAgent string `json:"user_agent"`
+}
+
+type Negotiation struct {
+ From string `json:"from"`
+ To string `json:"to"`
+ SessionID string `json:"session_id"`
+}
+
+type Byebye struct {
+ SessionID string `json:"session_id"`
+ From string `json:"from"`
+}
+
+type Error struct {
+ Request string `json:"request"`
+ Reason string `json:"reason"`
+}
+
+type Signaler struct {
+ peers map[string]Peer
+ sessions map[string]Session
+ turn *turn.TurnServer
+ expresMap *util.ExpiredMap
+}
+
+func NewSignaler(turn *turn.TurnServer) *Signaler {
+ var signaler = &Signaler{
+ peers: make(map[string]Peer),
+ sessions: make(map[string]Session),
+ turn: turn,
+ expresMap: util.NewExpiredMap(),
+ }
+ signaler.turn.AuthHandler = signaler.authHandler
+ return signaler
+}
+
+func (s Signaler) authHandler(username string, realm string, srcAddr net.Addr) (string, bool) {
+ // handle turn credential.
+ if found, info := s.expresMap.Get(username); found {
+ credential := info.(TurnCredentials)
+ return credential.Password, true
+ }
+ return "", false
+}
+
+// NotifyPeersUpdate .
+func (s *Signaler) NotifyPeersUpdate(conn *websocket.WebSocketConn, peers map[string]Peer) {
+ infos := []PeerInfo{}
+ for _, peer := range peers {
+ infos = append(infos, peer.info)
+ }
+
+ request := Request{
+ Type: "peers",
+ Data: infos,
+ }
+ for _, peer := range peers {
+ s.Send(peer.conn, request)
+ }
+}
+
+// HandleTurnServerCredentials .
+// https://tools.ietf.org/html/draft-uberti-behave-turn-rest-00
+func (s *Signaler) HandleTurnServerCredentials(writer http.ResponseWriter, request *http.Request) {
+ writer.Header().Set("Content-Type", "application/json")
+ writer.Header().Set("Access-Control-Allow-Origin", "*")
+
+ params, err := url.ParseQuery(request.URL.RawQuery)
+ if err != nil {
+
+ }
+ logger.Debugf("%v", params)
+ service := params["service"][0]
+ if service != "turn" {
+ return
+ }
+ username := params["username"][0]
+ timestamp := time.Now().Unix()
+ turnUsername := fmt.Sprintf("%d:%s", timestamp, username)
+ hmac := hmac.New(sha1.New, []byte(sharedKey))
+ hmac.Write([]byte(turnUsername))
+ turnPassword := base64.RawStdEncoding.EncodeToString(hmac.Sum(nil))
+ /*
+ {
+ "username" : "12334939:mbzrxpgjys",
+ "password" : "adfsaflsjfldssia",
+ "ttl" : 86400,
+ "uris" : [
+ "turn:1.2.3.4:9991?transport=udp",
+ "turn:1.2.3.4:9992?transport=tcp",
+ "turns:1.2.3.4:443?transport=tcp"
+ ]
+ }
+ For client pc.
+ var iceServer = {
+ "username": response.username,
+ "credential": response.password,
+ "uris": response.uris
+ };
+ var config = {"iceServers": [iceServer]};
+ var pc = new RTCPeerConnection(config);
+
+ */
+ ttl := 86400
+ host := fmt.Sprintf("%s:%d", s.turn.Config.PublicIP, s.turn.Config.Port)
+ credential := TurnCredentials{
+ Username: turnUsername,
+ Password: turnPassword,
+ TTL: ttl,
+ Uris: []string{
+ "turn:" + host + "?transport=udp",
+ },
+ }
+ s.expresMap.Set(turnUsername, credential, int64(ttl))
+ json.NewEncoder(writer).Encode(credential)
+}
+
+func (s *Signaler) Send(conn *websocket.WebSocketConn, m interface{}) error {
+ data, err := json.Marshal(m)
+ if err != nil {
+ logger.Errorf(err.Error())
+ return err
+ }
+ return conn.Send(string(data))
+}
+
+func (s *Signaler) HandleNewWebSocket(conn *websocket.WebSocketConn, request *http.Request) {
+ logger.Infof("On Open %v", request)
+ conn.On("message", func(message []byte) {
+ logger.Infof("On message %v", string(message))
+ var body json.RawMessage
+ request := Request{
+ Data: &body,
+ }
+ err := json.Unmarshal(message, &request)
+ if err != nil {
+ logger.Errorf("Unmarshal error %v", err)
+ return
+ }
+
+ var data map[string]interface{}
+ err = json.Unmarshal(body, &data)
+ if err != nil {
+ logger.Errorf("Unmarshal error %v", err)
+ return
+ }
+
+ switch request.Type {
+ case New:
+ var info PeerInfo
+ err := json.Unmarshal(body, &info)
+ if err != nil {
+ logger.Errorf("Unmarshal login error %v", err)
+ return
+ }
+ s.peers[info.ID] = Peer{
+ conn: conn,
+ info: info,
+ }
+ s.NotifyPeersUpdate(conn, s.peers)
+ break
+ case Leave:
+ case Offer:
+ fallthrough
+ case Answer:
+ fallthrough
+ case Candidate:
+ {
+ var negotiation Negotiation
+ err := json.Unmarshal(body, &negotiation)
+ if err != nil {
+ logger.Errorf("Unmarshal "+string(request.Type)+" got error %v", err)
+ return
+ }
+ to := negotiation.To
+ peer, ok := s.peers[to]
+ if !ok {
+ msg := Request{
+ Type: "error",
+ Data: Error{
+ Request: string(request.Type),
+ Reason: "Peer [" + to + "] not found ",
+ },
+ }
+ s.Send(conn, msg)
+ return
+ }
+ s.Send(peer.conn, request)
+ }
+ break
+ case Bye:
+ var bye Byebye
+ err := json.Unmarshal(body, &bye)
+ if err != nil {
+ logger.Errorf("Unmarshal bye got error %v", err)
+ return
+ }
+
+ ids := strings.Split(bye.SessionID, "-")
+ if len(ids) != 2 {
+ msg := Request{
+ Type: "error",
+ Data: Error{
+ Request: string(request.Type),
+ Reason: "Invalid session [" + bye.SessionID + "]",
+ },
+ }
+ s.Send(conn, msg)
+ return
+ }
+
+ sendBye := func(id string) {
+ peer, ok := s.peers[id]
+
+ if !ok {
+ msg := Request{
+ Type: "error",
+ Data: Error{
+ Request: string(request.Type),
+ Reason: "Peer [" + id + "] not found.",
+ },
+ }
+ s.Send(conn, msg)
+ return
+ }
+ bye := Request{
+ Type: "bye",
+ Data: map[string]interface{}{
+ "to": id,
+ "session_id": bye.SessionID,
+ },
+ }
+ s.Send(peer.conn, bye)
+ }
+
+ // send to aleg
+ sendBye(ids[0])
+ //send to bleg
+ sendBye(ids[1])
+
+ case Keepalive:
+ s.Send(conn, request)
+ default:
+ logger.Warnf("Unkown request %v", request)
+ }
+ })
+
+ conn.On("close", func(code int, text string) {
+ logger.Infof("On Close %v", conn)
+ var peerID string = ""
+
+ for _, peer := range s.peers {
+ if peer.conn == conn {
+ peerID = peer.info.ID
+ } else {
+ leave := Request{
+ Type: "leave",
+ Data: peer.info.ID,
+ }
+ s.Send(peer.conn, leave)
+ }
+ }
+
+ logger.Infof("Remove peer %s", peerID)
+ if peerID == "" {
+ logger.Infof("Leve peer id not found")
+ return
+ }
+ delete(s.peers, peerID)
+
+ s.NotifyPeersUpdate(conn, s.peers)
+ })
+}
diff --git a/flutter-webrtc-server-master/pkg/turn/turn.go b/flutter-webrtc-server-master/pkg/turn/turn.go
new file mode 100644
index 0000000..0a86eaf
--- /dev/null
+++ b/flutter-webrtc-server-master/pkg/turn/turn.go
@@ -0,0 +1,84 @@
+package turn
+
+import (
+ "net"
+ "strconv"
+
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/logger"
+ "github.com/pion/turn/v2"
+)
+
+type TurnServerConfig struct {
+ PublicIP string
+ Port int
+ Realm string
+}
+
+func DefaultConfig() TurnServerConfig {
+ return TurnServerConfig{
+ PublicIP: "127.0.0.1",
+ Port: 19302,
+ Realm: "flutter-webrtc",
+ }
+}
+
+/*
+if key, ok := usersMap[username]; ok {
+ return key, true
+ }
+ return nil, false
+*/
+
+type TurnServer struct {
+ udpListener net.PacketConn
+ turnServer *turn.Server
+ Config TurnServerConfig
+ AuthHandler func(username string, realm string, srcAddr net.Addr) (string, bool)
+}
+
+func NewTurnServer(config TurnServerConfig) *TurnServer {
+ server := &TurnServer{
+ Config: config,
+ AuthHandler: nil,
+ }
+ if len(config.PublicIP) == 0 {
+ logger.Panicf("'public-ip' is required")
+ }
+ udpListener, err := net.ListenPacket("udp4", "0.0.0.0:"+strconv.Itoa(config.Port))
+ if err != nil {
+ logger.Panicf("Failed to create TURN server listener: %s", err)
+ }
+ server.udpListener = udpListener
+
+ turnServer, err := turn.NewServer(turn.ServerConfig{
+ Realm: config.Realm,
+ AuthHandler: server.HandleAuthenticate,
+ PacketConnConfigs: []turn.PacketConnConfig{
+ {
+ PacketConn: udpListener,
+ RelayAddressGenerator: &turn.RelayAddressGeneratorStatic{
+ RelayAddress: net.ParseIP(config.PublicIP),
+ Address: "0.0.0.0",
+ },
+ },
+ },
+ })
+ if err != nil {
+ logger.Panicf("%v", err)
+ }
+ server.turnServer = turnServer
+ return server
+}
+
+func (s *TurnServer) HandleAuthenticate(username string, realm string, srcAddr net.Addr) ([]byte, bool) {
+ if s.AuthHandler != nil {
+ if password, ok := s.AuthHandler(username, realm, srcAddr); ok {
+ return turn.GenerateAuthKey(username, realm, password), true
+ }
+ }
+ return nil, false
+}
+
+func (s *TurnServer) Close() error {
+ return s.turnServer.Close()
+}
diff --git a/flutter-webrtc-server-master/pkg/util/expire.go b/flutter-webrtc-server-master/pkg/util/expire.go
new file mode 100644
index 0000000..e822828
--- /dev/null
+++ b/flutter-webrtc-server-master/pkg/util/expire.go
@@ -0,0 +1,184 @@
+package util
+
+import (
+ "sync"
+ "sync/atomic"
+ "time"
+
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/logger"
+)
+
+type val struct {
+ data interface{}
+ expiredTime int64
+}
+
+const delChannelCap = 100
+
+type ExpiredMap struct {
+ m map[interface{}]*val
+ timeMap map[int64][]interface{}
+ lck *sync.Mutex
+ stop chan struct{}
+ needStop int32
+}
+
+func NewExpiredMap() *ExpiredMap {
+ e := ExpiredMap{
+ m: make(map[interface{}]*val),
+ lck: new(sync.Mutex),
+ timeMap: make(map[int64][]interface{}),
+ stop: make(chan struct{}),
+ }
+ atomic.StoreInt32(&e.needStop, 0)
+ go e.run(time.Now().Unix())
+ return &e
+}
+
+type delMsg struct {
+ keys []interface{}
+ t int64
+}
+
+func (e *ExpiredMap) run(now int64) {
+ t := time.NewTicker(time.Second * 1)
+ delCh := make(chan *delMsg, delChannelCap)
+ go func() {
+ for v := range delCh {
+ if atomic.LoadInt32(&e.needStop) == 1 {
+ logger.Infof("---del stop---")
+ return
+ }
+ e.multiDelete(v.keys, v.t)
+ }
+ }()
+ for {
+ select {
+ case <-t.C:
+ now++
+ if keys, found := e.timeMap[now]; found {
+ delCh <- &delMsg{keys: keys, t: now}
+ }
+ case <-e.stop:
+ logger.Infof("=== STOP ===")
+ atomic.StoreInt32(&e.needStop, 1)
+ delCh <- &delMsg{keys: []interface{}{}, t: 0}
+ return
+ }
+ }
+}
+
+func (e *ExpiredMap) Set(key, value interface{}, expireSeconds int64) {
+ if expireSeconds <= 0 {
+ return
+ }
+ logger.Debugf("ExpiredMap: Set %s ttl[%d] => %v", key, expireSeconds, value)
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ expiredTime := time.Now().Unix() + expireSeconds
+ e.m[key] = &val{
+ data: value,
+ expiredTime: expiredTime,
+ }
+ e.timeMap[expiredTime] = append(e.timeMap[expiredTime], key)
+}
+
+func (e *ExpiredMap) Get(key interface{}) (found bool, value interface{}) {
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ if found = e.checkDeleteKey(key); !found {
+ return
+ }
+ value = e.m[key].data
+ return
+}
+
+func (e *ExpiredMap) Delete(key interface{}) {
+ e.lck.Lock()
+ delete(e.m, key)
+ e.lck.Unlock()
+}
+
+func (e *ExpiredMap) Remove(key interface{}) {
+ e.Delete(key)
+}
+
+func (e *ExpiredMap) multiDelete(keys []interface{}, t int64) {
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ delete(e.timeMap, t)
+ for _, key := range keys {
+ delete(e.m, key)
+ }
+}
+
+func (e *ExpiredMap) Length() int {
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ return len(e.m)
+}
+
+func (e *ExpiredMap) Size() int {
+ return e.Length()
+}
+
+func (e *ExpiredMap) TTL(key interface{}) int64 {
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ if !e.checkDeleteKey(key) {
+ return -1
+ }
+ return e.m[key].expiredTime - time.Now().Unix()
+}
+
+func (e *ExpiredMap) Clear() {
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ e.m = make(map[interface{}]*val)
+ e.timeMap = make(map[int64][]interface{})
+}
+
+func (e *ExpiredMap) Close() {
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ e.stop <- struct{}{}
+}
+
+func (e *ExpiredMap) Stop() {
+ e.Close()
+}
+
+func (e *ExpiredMap) DoForEach(handler func(interface{}, interface{})) {
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ for k, v := range e.m {
+ if !e.checkDeleteKey(k) {
+ continue
+ }
+ handler(k, v)
+ }
+}
+
+func (e *ExpiredMap) DoForEachWithBreak(handler func(interface{}, interface{}) bool) {
+ e.lck.Lock()
+ defer e.lck.Unlock()
+ for k, v := range e.m {
+ if !e.checkDeleteKey(k) {
+ continue
+ }
+ if handler(k, v) {
+ break
+ }
+ }
+}
+
+func (e *ExpiredMap) checkDeleteKey(key interface{}) bool {
+ if val, found := e.m[key]; found {
+ if val.expiredTime <= time.Now().Unix() {
+ delete(e.m, key)
+ return false
+ }
+ return true
+ }
+ return false
+}
diff --git a/flutter-webrtc-server-master/pkg/websocket/conn.go b/flutter-webrtc-server-master/pkg/websocket/conn.go
new file mode 100644
index 0000000..b4d74fc
--- /dev/null
+++ b/flutter-webrtc-server-master/pkg/websocket/conn.go
@@ -0,0 +1,109 @@
+package websocket
+
+import (
+ "errors"
+ "net"
+ "sync"
+ "time"
+
+ "github.com/chuckpreslar/emission"
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/logger"
+ "github.com/gorilla/websocket"
+)
+
+const pingPeriod = 5 * time.Second
+
+type WebSocketConn struct {
+ emission.Emitter
+ socket *websocket.Conn
+ mutex *sync.Mutex
+ closed bool
+}
+
+func NewWebSocketConn(socket *websocket.Conn) *WebSocketConn {
+ var conn WebSocketConn
+ conn.Emitter = *emission.NewEmitter()
+ conn.socket = socket
+ conn.mutex = new(sync.Mutex)
+ conn.closed = false
+ conn.socket.SetCloseHandler(func(code int, text string) error {
+ logger.Warnf("%s [%d]", text, code)
+ conn.Emit("close", code, text)
+ conn.closed = true
+ return nil
+ })
+ return &conn
+}
+
+func (conn *WebSocketConn) ReadMessage() {
+ in := make(chan []byte)
+ stop := make(chan struct{})
+ pingTicker := time.NewTicker(pingPeriod)
+
+ var c = conn.socket
+ go func() {
+ for {
+ _, message, err := c.ReadMessage()
+ if err != nil {
+ logger.Warnf("Got error: %v", err)
+ if c, k := err.(*websocket.CloseError); k {
+ conn.Emit("close", c.Code, c.Text)
+ } else {
+ if c, k := err.(*net.OpError); k {
+ conn.Emit("close", 1008, c.Error())
+ }
+ }
+ close(stop)
+ break
+ }
+ in <- message
+ }
+ }()
+
+ for {
+ select {
+ case _ = <-pingTicker.C:
+ logger.Infof("Send keepalive !!!")
+ if err := conn.Send("{}"); err != nil {
+ logger.Errorf("Keepalive has failed")
+ pingTicker.Stop()
+ return
+ }
+ case message := <-in:
+ {
+ logger.Infof("Recivied data: %s", message)
+ conn.Emit("message", []byte(message))
+ }
+ case <-stop:
+ return
+ }
+ }
+}
+
+/*
+* Send |message| to the connection.
+ */
+func (conn *WebSocketConn) Send(message string) error {
+ logger.Infof("Send data: %s", message)
+ conn.mutex.Lock()
+ defer conn.mutex.Unlock()
+ if conn.closed {
+ return errors.New("websocket: write closed")
+ }
+ return conn.socket.WriteMessage(websocket.TextMessage, []byte(message))
+}
+
+/*
+* Close conn.
+ */
+func (conn *WebSocketConn) Close() {
+ conn.mutex.Lock()
+ defer conn.mutex.Unlock()
+ if conn.closed == false {
+ logger.Infof("Close ws conn now : ", conn)
+ conn.socket.Close()
+ conn.closed = true
+ } else {
+ logger.Warnf("Transport already closed :", conn)
+ }
+}
diff --git a/flutter-webrtc-server-master/pkg/websocket/server.go b/flutter-webrtc-server-master/pkg/websocket/server.go
new file mode 100644
index 0000000..d19b43a
--- /dev/null
+++ b/flutter-webrtc-server-master/pkg/websocket/server.go
@@ -0,0 +1,78 @@
+package websocket
+
+import (
+ "net/http"
+ "strconv"
+
+ "github.com/flutter-webrtc/flutter-webrtc-server/pkg/logger"
+ "github.com/gorilla/websocket"
+)
+
+type WebSocketServerConfig struct {
+ Host string
+ Port int
+ CertFile string
+ KeyFile string
+ HTMLRoot string
+ WebSocketPath string
+ TurnServerPath string
+}
+
+func DefaultConfig() WebSocketServerConfig {
+ return WebSocketServerConfig{
+ Host: "0.0.0.0",
+ Port: 8086,
+ HTMLRoot: "web",
+ WebSocketPath: "/ws",
+ TurnServerPath: "/api/turn",
+ }
+}
+
+type WebSocketServer struct {
+ handleWebSocket func(ws *WebSocketConn, request *http.Request)
+ handleTurnServer func(writer http.ResponseWriter, request *http.Request)
+ // Websocket upgrader
+ upgrader websocket.Upgrader
+}
+
+func NewWebSocketServer(
+ wsHandler func(ws *WebSocketConn, request *http.Request),
+ turnServerHandler func(writer http.ResponseWriter, request *http.Request)) *WebSocketServer {
+ var server = &WebSocketServer{
+ handleWebSocket: wsHandler,
+ handleTurnServer: turnServerHandler,
+ }
+ server.upgrader = websocket.Upgrader{
+ CheckOrigin: func(r *http.Request) bool {
+ return true
+ },
+ }
+ return server
+}
+
+func (server *WebSocketServer) handleWebSocketRequest(writer http.ResponseWriter, request *http.Request) {
+ responseHeader := http.Header{}
+ //responseHeader.Add("Sec-WebSocket-Protocol", "protoo")
+ socket, err := server.upgrader.Upgrade(writer, request, responseHeader)
+ if err != nil {
+ logger.Panicf("%v", err)
+ }
+ wsTransport := NewWebSocketConn(socket)
+ server.handleWebSocket(wsTransport, request)
+ wsTransport.ReadMessage()
+}
+
+func (server *WebSocketServer) handleTurnServerRequest(writer http.ResponseWriter, request *http.Request) {
+ server.handleTurnServer(writer, request)
+}
+
+// Bind .
+func (server *WebSocketServer) Bind(cfg WebSocketServerConfig) {
+ // Websocket handle func
+ http.HandleFunc(cfg.WebSocketPath, server.handleWebSocketRequest)
+ http.HandleFunc(cfg.TurnServerPath, server.handleTurnServerRequest)
+ http.Handle("/", http.FileServer(http.Dir(cfg.HTMLRoot)))
+ logger.Infof("Flutter WebRTC Server listening on: %s:%d", cfg.Host, cfg.Port)
+ // http.ListenAndServe(cfg.Host+":"+strconv.Itoa(cfg.Port), nil)
+ panic(http.ListenAndServeTLS(cfg.Host+":"+strconv.Itoa(cfg.Port), cfg.CertFile, cfg.KeyFile, nil))
+}
diff --git a/flutter-webrtc-server-master/renovate.json b/flutter-webrtc-server-master/renovate.json
new file mode 100644
index 0000000..f45d8f1
--- /dev/null
+++ b/flutter-webrtc-server-master/renovate.json
@@ -0,0 +1,5 @@
+{
+ "extends": [
+ "config:base"
+ ]
+}
diff --git a/flutter-webrtc-server-master/screenshots/android-01.png b/flutter-webrtc-server-master/screenshots/android-01.png
new file mode 100644
index 0000000..6af97e5
Binary files /dev/null and b/flutter-webrtc-server-master/screenshots/android-01.png differ
diff --git a/flutter-webrtc-server-master/screenshots/android-02.png b/flutter-webrtc-server-master/screenshots/android-02.png
new file mode 100644
index 0000000..031f662
Binary files /dev/null and b/flutter-webrtc-server-master/screenshots/android-02.png differ
diff --git a/flutter-webrtc-server-master/screenshots/chrome-01.png b/flutter-webrtc-server-master/screenshots/chrome-01.png
new file mode 100644
index 0000000..fff7a73
Binary files /dev/null and b/flutter-webrtc-server-master/screenshots/chrome-01.png differ
diff --git a/flutter-webrtc-server-master/screenshots/chrome-02.png b/flutter-webrtc-server-master/screenshots/chrome-02.png
new file mode 100644
index 0000000..060cc38
Binary files /dev/null and b/flutter-webrtc-server-master/screenshots/chrome-02.png differ
diff --git a/flutter-webrtc-server-master/screenshots/ios-01.jpeg b/flutter-webrtc-server-master/screenshots/ios-01.jpeg
new file mode 100644
index 0000000..c472b90
Binary files /dev/null and b/flutter-webrtc-server-master/screenshots/ios-01.jpeg differ
diff --git a/flutter-webrtc-server-master/screenshots/ios-02.jpeg b/flutter-webrtc-server-master/screenshots/ios-02.jpeg
new file mode 100644
index 0000000..ef83a95
Binary files /dev/null and b/flutter-webrtc-server-master/screenshots/ios-02.jpeg differ
diff --git a/flutter-webrtc-server-master/web/assets/AssetManifest.json b/flutter-webrtc-server-master/web/assets/AssetManifest.json
new file mode 100644
index 0000000..03eaddf
--- /dev/null
+++ b/flutter-webrtc-server-master/web/assets/AssetManifest.json
@@ -0,0 +1 @@
+{"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
\ No newline at end of file
diff --git a/flutter-webrtc-server-master/web/assets/FontManifest.json b/flutter-webrtc-server-master/web/assets/FontManifest.json
new file mode 100644
index 0000000..464ab58
--- /dev/null
+++ b/flutter-webrtc-server-master/web/assets/FontManifest.json
@@ -0,0 +1 @@
+[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]
\ No newline at end of file
diff --git a/flutter-webrtc-server-master/web/assets/NOTICES b/flutter-webrtc-server-master/web/assets/NOTICES
new file mode 100644
index 0000000..6ee436d
--- /dev/null
+++ b/flutter-webrtc-server-master/web/assets/NOTICES
@@ -0,0 +1,14779 @@
+StackWalker
+
+Copyright (c) 2005-2009, Jochen Kalmbach
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+Neither the name of Jochen Kalmbach nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+StackWalker
+
+Copyright (c) 2005-2013, Jochen Kalmbach
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+Neither the name of Jochen Kalmbach nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright (C) 2009 Apple Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright (C) 2012 Apple Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY APPLE, INC. ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, INC. OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright (c) 2008 NVIDIA, Corporation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright (c) 2008-2018 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+--------------------------------------------------------------------------------
+angle
+
+Copyright (c) 2010 NVIDIA, Corporation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright (c) 2013 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright (c) 2019 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2002 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2010 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2011 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2012 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2013 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2014 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2015 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2018 The ANGLE Project Authors.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2018 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2019 The ANGLE Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright 2020 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+
+Copyright The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+base
+
+Copyright 2016 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+base
+
+Copyright 2017 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+boringssl
+etc1
+khronos
+txt
+vulkan
+wuffs
+
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+--------------------------------------------------------------------------------
+angle
+fuchsia_sdk
+
+Copyright 2019 The Fuchsia Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+angle
+khronos
+
+Copyright (c) 2007-2016 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+--------------------------------------------------------------------------------
+angle
+khronos
+
+Copyright (c) 2013-2014 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+--------------------------------------------------------------------------------
+angle
+khronos
+
+Copyright (c) 2013-2016 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+--------------------------------------------------------------------------------
+angle
+khronos
+
+Copyright (c) 2013-2017 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+--------------------------------------------------------------------------------
+angle
+khronos
+
+Copyright (c) 2013-2018 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+--------------------------------------------------------------------------------
+angle
+xxhash
+
+Copyright 2019 The ANGLE Project Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
+ Ltd., nor the names of their contributors may be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+async
+collection
+stream_channel
+typed_data
+
+Copyright 2015, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+base
+
+Copyright 2013 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+base
+fuchsia_sdk
+skia
+zlib
+
+Copyright 2018 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+base
+icu
+zlib
+
+Copyright 2014 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+base
+zlib
+
+Copyright (c) 2011 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boolean_selector
+meta
+
+Copyright 2016, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+All rights reserved.
+
+This package is an SSL implementation written
+by Eric Young (eay@cryptsoft.com).
+The implementation was written so as to conform with Netscapes SSL.
+
+This library is free for commercial and non-commercial use as long as
+the following conditions are aheared to. The following conditions
+apply to all code found in this distribution, be it the RC4, RSA,
+lhash, DES, etc., code; not just the SSL code. The SSL documentation
+included with this distribution is covered by the same copyright terms
+except that the holder is Tim Hudson (tjh@cryptsoft.com).
+
+Copyright remains Eric Young's, and as such any Copyright notices in
+the code are not to be removed.
+If this package is used in a product, Eric Young should be given attribution
+as the author of the parts of the library used.
+This can be in the form of a textual message at program startup or
+in documentation (online or textual) provided with the package.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ "This product includes cryptographic software written by
+ Eric Young (eay@cryptsoft.com)"
+ The word 'cryptographic' can be left out if the rouines from the library
+ being used are not cryptographic related :-).
+4. If you include any Windows specific code (or a derivative thereof) from
+ the apps directory (application code) you must include an acknowledgement:
+ "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+
+THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+The licence and distribution terms for any publically available version or
+derivative of this code cannot be changed. i.e. this code cannot simply be
+copied and put under another distribution licence
+[including the GNU Public Licence.]
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+All rights reserved.
+
+This package is an SSL implementation written
+by Eric Young (eay@cryptsoft.com).
+The implementation was written so as to conform with Netscapes SSL.
+
+This library is free for commercial and non-commercial use as long as
+the following conditions are aheared to. The following conditions
+apply to all code found in this distribution, be it the RC4, RSA,
+lhash, DES, etc., code; not just the SSL code. The SSL documentation
+included with this distribution is covered by the same copyright terms
+except that the holder is Tim Hudson (tjh@cryptsoft.com).
+
+Copyright remains Eric Young's, and as such any Copyright notices in
+the code are not to be removed.
+If this package is used in a product, Eric Young should be given attribution
+as the author of the parts of the library used.
+This can be in the form of a textual message at program startup or
+in documentation (online or textual) provided with the package.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ "This product includes cryptographic software written by
+ Eric Young (eay@cryptsoft.com)"
+ The word 'cryptographic' can be left out if the rouines from the library
+ being used are not cryptographic related :-).
+4. If you include any Windows specific code (or a derivative thereof) from
+ the apps directory (application code) you must include an acknowledgement:
+ "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+
+THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+The licence and distribution terms for any publically available version or
+derivative of this code cannot be changed. i.e. this code cannot simply be
+copied and put under another distribution licence
+[including the GNU Public Licence.]
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1999 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2000 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2000-2003 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2001 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2003 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2004 Kungliga Tekniska Högskolan
+(Royal Institute of Technology, Stockholm, Sweden).
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the Institute nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2004 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2005 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2006 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2006,2007 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2008 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2010 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2011 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2011 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2012 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2013 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2014 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ "This product includes cryptographic software written by
+ Eric Young (eay@cryptsoft.com)"
+ The word 'cryptographic' can be left out if the rouines from the library
+ being used are not cryptographic related :-).
+4. If you include any Windows specific code (or a derivative thereof) from
+ the apps directory (application code) you must include an acknowledgement:
+ "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+
+THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+The licence and distribution terms for any publically available version or
+derivative of this code cannot be changed. i.e. this code cannot simply be
+copied and put under another distribution licence
+[including the GNU Public Licence.]
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2014, Google Inc.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2015 The OpenSSL Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2015, Google Inc.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2015, Intel Inc.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2015-2016 the fiat-crypto authors (see the AUTHORS file).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2015-2016 the fiat-crypto authors (see the AUTHORS file).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2016, Google Inc.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2017, Google Inc.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2017, the HRSS authors.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2018, Google Inc.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright (c) 2019, Google Inc.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ licensing@OpenSSL.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2005 Nokia. All rights reserved.
+
+The portions of the attached software ("Contribution") is developed by
+Nokia Corporation and is licensed pursuant to the OpenSSL open source
+license.
+
+The Contribution, originally written by Mika Kousa and Pasi Eronen of
+Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites
+support (see RFC 4279) to OpenSSL.
+
+No patent licenses or other rights except those expressly stated in
+the OpenSSL open source license shall be deemed granted or received
+expressly, by implication, estoppel, or otherwise.
+
+No assurances are provided by Nokia that the Contribution does not
+infringe the patent or other intellectual property rights of any third
+party or that the license provides you with all the necessary rights
+to make use of the Contribution.
+
+THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN
+ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA
+SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY
+OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR
+OTHERWISE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2005, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2006, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2007, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2008 Google Inc.
+All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2008, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2009 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2009, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright (c) 2012, Intel Corporation. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright (c) 2014, Intel Corporation. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2015, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2016 Brian Smith.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+
+Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License"). You may not use
+this file except in compliance with the License. You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+--------------------------------------------------------------------------------
+boringssl
+
+MIT License
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE
+--------------------------------------------------------------------------------
+boringssl
+
+The MIT License (MIT)
+
+Copyright (c) 2015-2016 the fiat-crypto authors (see
+https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+--------------------------------------------------------------------------------
+boringssl
+dart
+
+OpenSSL License
+
+ ====================================================================
+ Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ 3. All advertising materials mentioning features or use of this
+ software must display the following acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+
+ 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ openssl-core@openssl.org.
+
+ 5. Products derived from this software may not be called "OpenSSL"
+ nor may "OpenSSL" appear in their names without prior written
+ permission of the OpenSSL Project.
+
+ 6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+
+ THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+ ====================================================================
+
+ This product includes cryptographic software written by Eric Young
+ (eay@cryptsoft.com). This product includes software written by Tim
+ Hudson (tjh@cryptsoft.com).
+
+Original SSLeay License
+
+* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+* All rights reserved.
+
+* This package is an SSL implementation written
+* by Eric Young (eay@cryptsoft.com).
+* The implementation was written so as to conform with Netscapes SSL.
+
+* This library is free for commercial and non-commercial use as long as
+* the following conditions are aheared to. The following conditions
+* apply to all code found in this distribution, be it the RC4, RSA,
+* lhash, DES, etc., code; not just the SSL code. The SSL documentation
+* included with this distribution is covered by the same copyright terms
+* except that the holder is Tim Hudson (tjh@cryptsoft.com).
+
+* Copyright remains Eric Young's, and as such any Copyright notices in
+* the code are not to be removed.
+* If this package is used in a product, Eric Young should be given attribution
+* as the author of the parts of the library used.
+* This can be in the form of a textual message at program startup or
+* in documentation (online or textual) provided with the package.
+
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+* 1. Redistributions of source code must retain the copyright
+* notice, this list of conditions and the following disclaimer.
+* 2. Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* 3. All advertising materials mentioning features or use of this software
+* must display the following acknowledgement:
+* "This product includes cryptographic software written by
+* Eric Young (eay@cryptsoft.com)"
+* The word 'cryptographic' can be left out if the rouines from the library
+* being used are not cryptographic related :-).
+* 4. If you include any Windows specific code (or a derivative thereof) from
+* the apps directory (application code) you must include an acknowledgement:
+* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+
+* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+* SUCH DAMAGE.
+
+* The licence and distribution terms for any publically available version or
+* derivative of this code cannot be changed. i.e. this code cannot simply be
+* copied and put under another distribution licence
+* [including the GNU Public Licence.]
+
+ISC license used for completely new code in BoringSSL:
+
+/* Copyright (c) 2015, Google Inc.
+
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+The code in third_party/fiat carries the MIT license:
+
+Copyright (c) 2015-2016 the fiat-crypto authors (see
+https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+The code in third_party/sike also carries the MIT license:
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE
+
+Licenses for support code
+
+Parts of the TLS test suite are under the Go license. This code is not included
+in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so
+distributing code linked against BoringSSL does not trigger this license:
+
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+characters
+ffi
+
+Copyright 2019, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+charcode
+http
+http_parser
+matcher
+path
+source_span
+stack_trace
+string_scanner
+
+Copyright 2014, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+clock
+fake_async
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+--------------------------------------------------------------------------------
+colorama
+
+Copyright (c) 2010 Jonathan Hartley
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holders, nor those of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+cupertino_icons
+
+The MIT License (MIT)
+
+Copyright (c) 2016 Vladimir Kharlampidi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2003-2005 Tom Wu
+Copyright (c) 2012 Adam Singer (adam@solvr.io)
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+In addition, the following condition applies:
+
+All redistributions must retain an intact copy of this copyright notice
+and disclaimer.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2010, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2014 The Polymer Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+dart
+
+Copyright 2009 The Go Authors. All rights reserved.
+Use of this source code is governed by a BSD-style
+license that can be found in the LICENSE file
+--------------------------------------------------------------------------------
+dart
+
+Copyright 2012, the Dart project authors.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+double-conversion
+icu
+
+Copyright 2006-2008 the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+double-conversion
+icu
+
+Copyright 2010 the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+double-conversion
+icu
+
+Copyright 2012 the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+engine
+gpu
+tonic
+txt
+
+Copyright 2013 The Flutter Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+file
+
+Copyright 2017, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+files
+
+Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+files
+
+Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+files
+
+Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+ and Clark Cooper
+Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+files
+
+Copyright 2000, Clark Cooper
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+flutter
+
+Copyright 2014 The Flutter Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+flutter_webrtc
+flutter_webrtc_demo
+
+MIT License
+
+Copyright (c) 2018 湖北捷智云技术有限公司
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright (C) 1995-2002 Jean-loup Gailly.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright (C) 1995-2002 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright (C) 2000, 2001, 2002, 2003, 2006, 2010 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright (C) 2000-2004, 2006-2011, 2013, 2014 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright (C) 2001, 2002 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright (C) 2001, 2002, 2003, 2004 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright (C) 2001-2008, 2011, 2013, 2014 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 1990, 1994, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2000 Computing Research Labs, New Mexico State University
+Copyright 2001-2004, 2011 Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2000 Computing Research Labs, New Mexico State University
+Copyright 2001-2014
+ Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2000 Computing Research Labs, New Mexico State University
+Copyright 2001-2015
+ Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2000, 2001, 2004 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2000-2001, 2002 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2000-2001, 2003 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2000-2010, 2012-2014 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2001, 2002, 2012 Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+Copyright 2003 by
+Francesco Zappa Nardelli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+freetype2
+
+The FreeType Project LICENSE
+
+ 2006-Jan-27
+
+Copyright 1996-2002, 2006 by
+David Turner, Robert Wilhelm, and Werner Lemberg
+
+Introduction
+============
+
+ The FreeType Project is distributed in several archive packages;
+ some of them may contain, in addition to the FreeType font engine,
+ various tools and contributions which rely on, or relate to, the
+ FreeType Project.
+
+ This license applies to all files found in such packages, and
+ which do not fall under their own explicit license. The license
+ affects thus the FreeType font engine, the test programs,
+ documentation and makefiles, at the very least.
+
+ This license was inspired by the BSD, Artistic, and IJG
+ (Independent JPEG Group) licenses, which all encourage inclusion
+ and use of free software in commercial and freeware products
+ alike. As a consequence, its main points are that:
+
+ o We don't promise that this software works. However, we will be
+ interested in any kind of bug reports. (`as is' distribution)
+
+ o You can use this software for whatever you want, in parts or
+ full form, without having to pay us. (`royalty-free' usage)
+
+ o You may not pretend that you wrote this software. If you use
+ it, or only parts of it, in a program, you must acknowledge
+ somewhere in your documentation that you have used the
+ FreeType code. (`credits')
+
+ We specifically permit and encourage the inclusion of this
+ software, with or without modifications, in commercial products.
+ We disclaim all warranties covering The FreeType Project and
+ assume no liability related to The FreeType Project.
+
+ Finally, many people asked us for a preferred form for a
+ credit/disclaimer to use in compliance with this license. We thus
+ encourage you to use the following text:
+
+ Portions of this software are copyright © The FreeType
+ Project (www.freetype.org). All rights reserved.
+
+ Please replace with the value from the FreeType version you
+ actually use.
+
+Legal Terms
+===========
+
+0. Definitions
+
+ Throughout this license, the terms `package', `FreeType Project',
+ and `FreeType archive' refer to the set of files originally
+ distributed by the authors (David Turner, Robert Wilhelm, and
+ Werner Lemberg) as the `FreeType Project', be they named as alpha,
+ beta or final release.
+
+ `You' refers to the licensee, or person using the project, where
+ `using' is a generic term including compiling the project's source
+ code as well as linking it to form a `program' or `executable'.
+ This program is referred to as `a program using the FreeType
+ engine'.
+
+ This license applies to all files distributed in the original
+ FreeType Project, including all source code, binaries and
+ documentation, unless otherwise stated in the file in its
+ original, unmodified form as distributed in the original archive.
+ If you are unsure whether or not a particular file is covered by
+ this license, you must contact us to verify this.
+
+ The FreeType Project is copyright (C) 1996-2000 by David Turner,
+ Robert Wilhelm, and Werner Lemberg. All rights reserved except as
+ specified below.
+
+1. No Warranty
+
+ THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
+ USE, OF THE FREETYPE PROJECT.
+
+2. Redistribution
+
+ This license grants a worldwide, royalty-free, perpetual and
+ irrevocable right and license to use, execute, perform, compile,
+ display, copy, create derivative works of, distribute and
+ sublicense the FreeType Project (in both source and object code
+ forms) and derivative works thereof for any purpose; and to
+ authorize others to exercise some or all of the rights granted
+ herein, subject to the following conditions:
+
+ o Redistribution of source code must retain this license file
+ (`FTL.TXT') unaltered; any additions, deletions or changes to
+ the original files must be clearly indicated in accompanying
+ documentation. The copyright notices of the unaltered,
+ original files must be preserved in all copies of source
+ files.
+
+ o Redistribution in binary form must provide a disclaimer that
+ states that the software is based in part of the work of the
+ FreeType Team, in the distribution documentation. We also
+ encourage you to put an URL to the FreeType web page in your
+ documentation, though this isn't mandatory.
+
+ These conditions apply to any software derived from or based on
+ the FreeType Project, not just the unmodified files. If you use
+ our work, you must acknowledge us. However, no fee need be paid
+ to us.
+
+3. Advertising
+
+ Neither the FreeType authors and contributors nor you shall use
+ the name of the other for commercial, advertising, or promotional
+ purposes without specific prior written permission.
+
+ We suggest, but do not require, that you use one or more of the
+ following phrases to refer to this software in your documentation
+ or advertising materials: `FreeType Project', `FreeType Engine',
+ `FreeType library', or `FreeType Distribution'.
+
+ As you have not signed this license, you are not required to
+ accept it. However, as the FreeType Project is copyrighted
+ material, only this license, or another one contracted with the
+ authors, grants you the right to use, distribute, and modify it.
+ Therefore, by using, distributing, or modifying the FreeType
+ Project, you indicate that you understand and accept all the terms
+ of this license.
+
+4. Contacts
+
+ There are two mailing lists related to FreeType:
+
+ o freetype@nongnu.org
+
+ Discusses general use and applications of FreeType, as well as
+ future and wanted additions to the library and distribution.
+ If you are looking for support, start in this list if you
+ haven't found anything to help you in the documentation.
+
+ o freetype-devel@nongnu.org
+
+ Discusses bugs, as well as engine internals, design issues,
+ specific licenses, porting, etc.
+
+ Our home page can be found at
+
+ https://www.freetype.org
+
+--- end of FTL.TXT ---
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+Copyright 2013 The Fuchsia Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+Copyright 2014 The Fuchsia Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+Copyright 2015 The Fuchsia Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+Copyright 2016 The Fuchsia Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+Copyright 2016 The Fuchsia Authors. All rights reserved.
+Copyright (c) 2009 Corey Tabaka
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+Copyright 2017 The Fuchsia Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+Copyright 2018 The Fuchsia Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+Copyright 2020 The Fuchsia Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+The majority of files in this project use the Apache 2.0 License.
+There are a few exceptions and their license can be found in the source.
+Any license deviations from Apache 2.0 are "more permissive" licenses.
+
+===========================================================================================
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+
+musl as a whole is licensed under the following standard MIT license:
+
+Copyright © 2005-2014 Rich Felker, et al.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Authors/contributors include:
+
+Alex Dowad
+Alexander Monakov
+Anthony G. Basile
+Arvid Picciani
+Bobby Bingham
+Boris Brezillon
+Brent Cook
+Chris Spiegel
+Clément Vasseur
+Daniel Micay
+Denys Vlasenko
+Emil Renner Berthing
+Felix Fietkau
+Felix Janda
+Gianluca Anzolin
+Hauke Mehrtens
+Hiltjo Posthuma
+Isaac Dunham
+Jaydeep Patil
+Jens Gustedt
+Jeremy Huntwork
+Jo-Philipp Wich
+Joakim Sindholt
+John Spencer
+Josiah Worcester
+Justin Cormack
+Khem Raj
+Kylie McClain
+Luca Barbato
+Luka Perkov
+M Farkas-Dyck (Strake)
+Mahesh Bodapati
+Michael Forney
+Natanael Copa
+Nicholas J. Kain
+orc
+Pascal Cuoq
+Petr Hosek
+Pierre Carrier
+Rich Felker
+Richard Pennington
+Shiz
+sin
+Solar Designer
+Stefan Kristiansson
+Szabolcs Nagy
+Timo Teräs
+Trutz Behn
+Valentin Ochs
+William Haddon
+
+Portions of this software are derived from third-party works licensed
+under terms compatible with the above MIT license:
+
+Much of the math library code (third_party/math/* and
+third_party/complex/*, and third_party/include/libm.h) is
+Copyright © 1993,2004 Sun Microsystems or
+Copyright © 2003-2011 David Schultz or
+Copyright © 2003-2009 Steven G. Kargl or
+Copyright © 2003-2009 Bruce D. Evans or
+Copyright © 2008 Stephen L. Moshier
+and labelled as such in comments in the individual source files. All
+have been licensed under extremely permissive terms.
+
+The smoothsort implementation (third_party/smoothsort/qsort.c) is
+Copyright © 2011 Valentin Ochs and is licensed under an MIT-style
+license.
+
+The x86_64 files in third_party/arch were written by Nicholas J. Kain
+and is licensed under the standard MIT terms.
+
+All other files which have no copyright comments are original works
+produced specifically for use as part of this library, written either
+by Rich Felker, the main author of the library, or by one or more
+contibutors listed above. Details on authorship of individual files
+can be found in the git version control history of the project. The
+omission of copyright and license comments in each file is in the
+interest of source tree size.
+
+In addition, permission is hereby granted for all public header files
+(include/* and arch/*/bits/*) and crt files intended to be linked into
+applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit
+the copyright notice and permission notice otherwise required by the
+license, and to use these files without any requirement of
+attribution. These files include substantial contributions from:
+
+Bobby Bingham
+John Spencer
+Nicholas J. Kain
+Rich Felker
+Richard Pennington
+Stefan Kristiansson
+Szabolcs Nagy
+
+all of whom have explicitly granted such permission.
+
+This file previously contained text expressing a belief that most of
+the files covered by the above exception were sufficiently trivial not
+to be subject to copyright, resulting in confusion over whether it
+negated the permissions granted in the license. In the spirit of
+permissive licensing, and of not having licensing issues being an
+obstacle to adoption, that text has been removed.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+rapidjson
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+fuchsia_sdk
+skia
+zlib
+
+Copyright 2019 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+glfw
+
+Copyright (c) 2002-2006 Marcus Geelnard
+Copyright (c) 2006-2016 Camilla Berglund
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would
+ be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+--------------------------------------------------------------------------------
+glfw
+
+Copyright (c) 2002-2006 Marcus Geelnard
+Copyright (c) 2006-2016 Camilla Berglund
+Copyright (c) 2012 Torsten Walluhn
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would
+ be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+--------------------------------------------------------------------------------
+glfw
+
+Copyright (c) 2006-2016 Camilla Berglund
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would
+ be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+--------------------------------------------------------------------------------
+glfw
+
+Copyright (c) 2009-2016 Camilla Berglund
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would
+ be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+--------------------------------------------------------------------------------
+glfw
+
+Copyright (c) 2009-2016 Camilla Berglund
+Copyright (c) 2012 Torsten Walluhn
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would
+ be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+--------------------------------------------------------------------------------
+glfw
+
+Copyright (c) 2010-2016 Camilla Berglund
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would
+ be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+--------------------------------------------------------------------------------
+glfw
+
+Copyright (c) 2014 Jonas Ådahl
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would
+ be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+--------------------------------------------------------------------------------
+glfw
+
+Copyright (c) 2014-2015 Brandon Schaefer
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would
+ be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+ distribution.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright (C) 2011 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright (C) 2012 Grigori Goronzy
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright (C) 2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 1998-2004 David Turner and Werner Lemberg
+Copyright © 2004,2007,2009 Red Hat, Inc.
+Copyright © 2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 1998-2004 David Turner and Werner Lemberg
+Copyright © 2004,2007,2009,2010 Red Hat, Inc.
+Copyright © 2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 1998-2004 David Turner and Werner Lemberg
+Copyright © 2006 Behdad Esfahbod
+Copyright © 2007,2008,2009 Red Hat, Inc.
+Copyright © 2012,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007 Chris Wilson
+Copyright © 2009,2010 Red Hat, Inc.
+Copyright © 2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009 Red Hat, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009 Red Hat, Inc.
+Copyright © 2010,2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009 Red Hat, Inc.
+Copyright © 2010,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009 Red Hat, Inc.
+Copyright © 2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009 Red Hat, Inc.
+Copyright © 2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009 Red Hat, Inc.
+Copyright © 2012,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009 Red Hat, Inc.
+Copyright © 2012,2013 Google, Inc.
+Copyright © 2019, Facebook Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009 Red Hat, Inc.
+Copyright © 2018,2019,2020 Ebrahim Byagowi
+Copyright © 2018 Khaled Hosny
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009,2010 Red Hat, Inc.
+Copyright © 2010,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009,2010 Red Hat, Inc.
+Copyright © 2010,2012,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009,2010 Red Hat, Inc.
+Copyright © 2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009,2010 Red Hat, Inc.
+Copyright © 2012,2018 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2007,2008,2009,2010 Red Hat, Inc.
+Copyright © 2012,2018 Google, Inc.
+Copyright © 2019 Facebook, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2009 Keith Stribley
+Copyright © 2011 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2009 Keith Stribley
+Copyright © 2015 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2011 Codethink Limited
+Copyright © 2010,2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2011 Codethink Limited
+Copyright © 2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2011 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2015 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2018 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009 Red Hat, Inc.
+Copyright © 2018 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009,2010 Red Hat, Inc.
+Copyright © 2010,2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009,2010 Red Hat, Inc.
+Copyright © 2010,2011,2012,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009,2010 Red Hat, Inc.
+Copyright © 2010,2011,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2009,2010 Red Hat, Inc.
+Copyright © 2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2010 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2010 Red Hat, Inc.
+Copyright © 2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2010,2011 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2010,2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2010,2011,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2010,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2011 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2011 Martin Hosken
+Copyright © 2011 SIL International
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2011 Martin Hosken
+Copyright © 2011 SIL International
+Copyright © 2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2011,2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2011,2012 Google, Inc.
+Copyright © 2018 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2011,2012,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2011,2012,2014 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2011,2014 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2012 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2012 Mozilla Foundation.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2012,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2012,2013 Mozilla Foundation.
+Copyright © 2012,2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2012,2017 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2012,2018 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2013 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2013 Red Hat, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2014 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2015 Google, Inc.
+Copyright © 2019 Adobe Inc.
+Copyright © 2019 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2015 Mozilla Foundation.
+Copyright © 2015 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2015-2019 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2016 Elie Roux
+Copyright © 2018 Google, Inc.
+Copyright © 2018-2019 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2016 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2016 Google, Inc.
+Copyright © 2018 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2016 Google, Inc.
+Copyright © 2018 Khaled Hosny
+Copyright © 2018 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2016 Igalia S.L.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2017 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2017 Google, Inc.
+Copyright © 2018 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2017 Google, Inc.
+Copyright © 2019 Facebook, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2017,2018 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2018 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2018 Ebrahim Byagowi
+Copyright © 2018 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2018 Ebrahim Byagowi
+Copyright © 2020 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2018 Ebrahim Byagowi.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2018 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2018 Google, Inc.
+Copyright © 2019 Facebook, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2018 Adobe Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2018-2019 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2019 Adobe Inc.
+Copyright © 2019 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2019 Adobe, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2019 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2019 Facebook, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2019 Adobe Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2019-2020 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2020 Ebrahim Byagowi
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+Copyright © 2020 Google, Inc.
+
+ This is part of HarfBuzz, a text shaping library.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+harfbuzz
+
+HarfBuzz is licensed under the so-called "Old MIT" license. Details follow.
+For parts of HarfBuzz that are licensed under different licenses see individual
+files names COPYING in subdirectories where applicable.
+
+Copyright © 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 Google, Inc.
+Copyright © 2018,2019,2020 Ebrahim Byagowi
+Copyright © 2019,2020 Facebook, Inc.
+Copyright © 2012 Mozilla Foundation
+Copyright © 2011 Codethink Limited
+Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies)
+Copyright © 2009 Keith Stribley
+Copyright © 2009 Martin Hosken and SIL International
+Copyright © 2007 Chris Wilson
+Copyright © 2006 Behdad Esfahbod
+Copyright © 2005 David Turner
+Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc.
+Copyright © 1998-2004 David Turner and Werner Lemberg
+
+For full copyright notices consult the individual files in the package.
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) 1995-2016 International Business Machines Corporation and others
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
+SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+All trademarks and registered trademarks mentioned herein are the
+property of their respective owners.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
+ Copyright (C) 2002-2005, International Business Machines
+ Corporation and others. All Rights Reserved.
+
+This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+No claims are made as to fitness for any particular purpose. No
+warranties of any kind are expressed or implied. The recipient
+agrees to determine applicability of information provided. If this
+file has been provided on optical media by Unicode, Inc., the sole
+remedy for any claim will be exchange of defective media within 90
+days of receipt.
+
+Unicode, Inc. hereby grants the right to freely use the information
+supplied in this file in the creation of products supporting the
+Unicode Standard, and to make copies of this file in any form for
+internal or external distribution as long as this notice remains
+attached.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) 1999 Computer Systems and Communication Lab,
+ Institute of Information Science, Academia
+ * Sinica. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+. Neither the name of the Computer Systems and Communication Lab
+ nor the names of its contributors may be used to endorse or
+ promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) 1999 TaBE Project.
+Copyright (c) 1999 Pai-Hsiang Hsiao.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+. Neither the name of the TaBE Project nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) 1999 Unicode, Inc. All Rights reserved.
+ Copyright (C) 2002-2005, International Business Machines
+ Corporation and others. All Rights Reserved.
+
+This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+No claims are made as to fitness for any particular purpose. No
+warranties of any kind are expressed or implied. The recipient
+agrees to determine applicability of information provided. If this
+file has been provided on optical media by Unicode, Inc., the sole
+remedy for any claim will be exchange of defective media within 90
+days of receipt.
+
+Unicode, Inc. hereby grants the right to freely use the information
+supplied in this file in the creation of products supporting the
+Unicode Standard, and to make copies of this file in any form for
+internal or external distribution as long as this notice remains
+attached.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) 2002 Unicode, Inc. All Rights reserved.
+ Copyright (C) 2002-2005, International Business Machines
+ Corporation and others. All Rights Reserved.
+
+This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+No claims are made as to fitness for any particular purpose. No
+warranties of any kind are expressed or implied. The recipient
+agrees to determine applicability of information provided. If this
+file has been provided on optical media by Unicode, Inc., the sole
+remedy for any claim will be exchange of defective media within 90
+days of receipt.
+
+Unicode, Inc. hereby grants the right to freely use the information
+supplied in this file in the creation of products supporting the
+Unicode Standard, and to make copies of this file in any form for
+internal or external distribution as long as this notice remains
+attached.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) 2013 International Business Machines Corporation
+and others. All Rights Reserved.
+
+Project: http://code.google.com/p/lao-dictionary
+Dictionary: http://lao-dictionary.googlecode.com/git/Lao-Dictionary.txt
+License: http://lao-dictionary.googlecode.com/git/Lao-Dictionary-LICENSE.txt
+ (copied below)
+
+ This file is derived from the above dictionary, with slight
+ modifications.
+
+ Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification,
+ are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer. Redistributions in
+ binary form must reproduce the above copyright notice, this list of
+ conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) 2014 International Business Machines Corporation
+and others. All Rights Reserved.
+
+This list is part of a project hosted at:
+ github.com/kanyawtech/myanmar-karen-word-lists
+
+Copyright (c) 2013, LeRoy Benjamin Sharon
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met: Redistributions of source code must retain the above
+copyright notice, this list of conditions and the following
+disclaimer. Redistributions in binary form must reproduce the
+above copyright notice, this list of conditions and the following
+disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+ Neither the name Myanmar Karen Word Lists, nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) IBM Corporation, 2000-2010. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) IBM Corporation, 2000-2011. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) IBM Corporation, 2000-2012. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) IBM Corporation, 2000-2014. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright (c) IBM Corporation, 2000-2016. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright 1996 Chih-Hao Tsai @ Beckman Institute,
+ University of Illinois
+c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4
+--------------------------------------------------------------------------------
+icu
+
+Copyright 2000, 2001, 2002, 2003 Nara Institute of Science
+and Technology. All Rights Reserved.
+
+Use, reproduction, and distribution of this software is permitted.
+Any copy of this software, whether in its original form or modified,
+must include both the above copyright notice and the following
+paragraphs.
+
+Nara Institute of Science and Technology (NAIST),
+the copyright holders, disclaims all warranties with regard to this
+software, including all implied warranties of merchantability and
+fitness, in no event shall NAIST be liable for
+any special, indirect or consequential damages or any damages
+whatsoever resulting from loss of use, data or profits, whether in an
+action of contract, negligence or other tortuous action, arising out
+of or in connection with the use or performance of this software.
+
+A large portion of the dictionary entries
+originate from ICOT Free Software. The following conditions for ICOT
+Free Software applies to the current dictionary as well.
+
+Each User may also freely distribute the Program, whether in its
+original form or modified, to any third party or parties, PROVIDED
+that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear
+on, or be attached to, the Program, which is distributed substantially
+in the same form as set out herein and that such intended
+distribution, if actually made, will neither violate or otherwise
+contravene any of the laws and regulations of the countries having
+jurisdiction over the User or the intended distribution itself.
+
+NO WARRANTY
+
+The program was produced on an experimental basis in the course of the
+research and development conducted during the project and is provided
+to users as so produced on an experimental basis. Accordingly, the
+program is provided without any warranty whatsoever, whether express,
+implied, statutory or otherwise. The term "warranty" used herein
+includes, but is not limited to, any warranty of the quality,
+performance, merchantability and fitness for a particular purpose of
+the program and the nonexistence of any infringement or violation of
+any right of any third party.
+
+Each user of the program will agree and understand, and be deemed to
+have agreed and understood, that there is no warranty whatsoever for
+the program and, accordingly, the entire risk arising from or
+otherwise connected with the program is assumed by the user.
+
+Therefore, neither ICOT, the copyright holder, or any other
+organization that participated in or was otherwise related to the
+development of the program and their respective officials, directors,
+officers and other employees shall be held liable for any and all
+damages, including, without limitation, general, special, incidental
+and consequential damages, arising out of or otherwise in connection
+with the use or inability to use the program or any product, material
+or result produced or otherwise obtained by using the program,
+regardless of whether they have been advised of, or otherwise had
+knowledge of, the possibility of such damages at any time during the
+project or thereafter. Each user will be deemed to have agreed to the
+foregoing by his or her commencement of use of the program. The term
+"use" as used herein includes, but is not limited to, the use,
+modification, copying and distribution of the program and the
+production of secondary products from the program.
+
+In the case where the program, whether in its original form or
+modified, was distributed or delivered to or received by a user from
+any person, organization or entity other than ICOT, unless it makes or
+grants independently of ICOT any specific warranty to the user in
+writing, such person, organization or entity, will also be exempted
+from and not be held liable to the user for any such damages as noted
+above as far as the program is concerned.
+--------------------------------------------------------------------------------
+icu
+
+Copyright 2006-2011, the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright 2019 the V8 project authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Copyright © 1991-2020 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
+--------------------------------------------------------------------------------
+icu
+
+The BSD License
+http://opensource.org/licenses/bsd-license.php
+Copyright (C) 2006-2008, Google Inc.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+ Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following
+disclaimer in the documentation and/or other materials provided with
+the distribution.
+ Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+
+Unicode® Terms of Use
+For the general privacy policy governing access to this site, see the Unicode Privacy Policy. For trademark usage, see the Unicode® Consortium Name and Trademark Usage Policy.
+
+A. Unicode Copyright.
+1. Copyright © 1991-2017 Unicode, Inc. All rights reserved.
+2. Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein.
+3. Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files solely for informational purposes and in the creation of products supporting the Unicode Standard, subject to the Terms and Conditions herein.
+4. Further specifications of rights and restrictions pertaining to the use of the particular set of data files known as the "Unicode Character Database" can be found in the License.
+5. Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. The online code charts carry specific restrictions. All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use.
+6. No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site.
+7. Modification is not permitted with respect to this document. All copies of this document must be verbatim.
+B. Restricted Rights Legend. Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement.
+C. Warranties and Disclaimers.
+1. This publication and/or website may include technical or typographical errors or other inaccuracies . Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time.
+2. If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase.
+3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE.
+D. Waiver of Damages. In no event shall Unicode or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives.
+E. Trademarks & Logos.
+1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names.
+2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.
+3. All third party trademarks referenced herein are the property of their respective owners.
+F. Miscellaneous.
+1. Jurisdiction and Venue. This server is operated from a location in the State of California, United States of America. Unicode makes no representation that the materials are appropriate for use in other locations. If you access this server from other locations, you are responsible for compliance with local laws. This Agreement, all use of this site and any claims and damages resulting from use of this site are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this site shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum.
+2. Modification by Unicode Unicode shall have the right to modify this Agreement at any time by posting it to this site. The user may not assign any part of this Agreement without Unicode’s prior written consent.
+3. Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income.
+4. Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect.
+5. Entire Agreement. This Agreement constitutes the entire agreement between the parties.
+
+EXHIBIT 1
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and
+http://www.unicode.org/utility/trac/browser/.
+
+Unicode Data Files do not include PDF online code charts under the
+directory http://www.unicode.org/Public/.
+
+Software includes any source code published in the Unicode Standard
+or under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and
+http://www.unicode.org/utility/trac/browser/.
+
+NOTICE TO USER: Carefully read the following legal agreement.
+BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
+DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
+YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
+TERMS AND CONDITIONS OF THIS AGREEMENT.
+IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
+THE DATA FILES OR SOFTWARE.
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright © 1991-2017 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
+--------------------------------------------------------------------------------
+icu
+skia
+
+Copyright 2015 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+icu
+skia
+
+Copyright 2016 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+intl
+
+Copyright 2013, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+js
+
+Copyright 2012, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+khronos
+
+Copyright (c) 2007-2010 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+
+Copyright (C) 1992 Silicon Graphics, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice including the dates of first publication and either
+this permission notice or a reference to http://oss.sgi.com/projects/FreeB
+shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON
+GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Silicon Graphics, Inc. shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from Silicon
+Graphics, Inc.
+--------------------------------------------------------------------------------
+khronos
+
+Copyright (c) 2007-2012 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+--------------------------------------------------------------------------------
+khronos
+
+Copyright (c) 2008-2009 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+--------------------------------------------------------------------------------
+libcxx
+libcxxabi
+
+Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+libcxx
+libcxxabi
+
+University of Illinois/NCSA
+Open Source License
+
+Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT
+
+All rights reserved.
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2009, D. R. Commander.
+
+Based on the x86 SIMD extension for IJG JPEG library
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2009-2011, 2014-2016, D. R. Commander.
+Copyright (C) 2015, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies).
+All Rights Reserved.
+Author: Siarhei Siamashka
+Copyright (C) 2013-2014, Linaro Limited. All Rights Reserved.
+Author: Ragesh Radhakrishnan
+Copyright (C) 2014-2016, D. R. Commander. All Rights Reserved.
+Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved.
+Copyright (C) 2016, Siarhei Siamashka. All Rights Reserved.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies).
+All Rights Reserved.
+Author: Siarhei Siamashka
+Copyright (C) 2014, Siarhei Siamashka. All Rights Reserved.
+Copyright (C) 2014, Linaro Limited. All Rights Reserved.
+Copyright (C) 2015, D. R. Commander. All Rights Reserved.
+Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2011, D. R. Commander.
+
+Based on the x86 SIMD extension for IJG JPEG library
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2013, MIPS Technologies, Inc., California.
+All Rights Reserved.
+Authors: Teodora Novkovic (teodora.novkovic@imgtec.com)
+ Darko Laus (darko.laus@imgtec.com)
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
+All Rights Reserved.
+Authors: Teodora Novkovic (teodora.novkovic@imgtec.com)
+ Darko Laus (darko.laus@imgtec.com)
+Copyright (C) 2015, D. R. Commander. All Rights Reserved.
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2014, D. R. Commander. All Rights Reserved.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved.
+Copyright (C) 2014, Jay Foad. All Rights Reserved.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C) 2015, D. R. Commander. All Rights Reserved.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C)2009-2014 D. R. Commander. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+- Neither the name of the libjpeg-turbo Project nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C)2009-2015 D. R. Commander. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+- Neither the name of the libjpeg-turbo Project nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C)2009-2016 D. R. Commander. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+- Neither the name of the libjpeg-turbo Project nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C)2011 D. R. Commander. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+- Neither the name of the libjpeg-turbo Project nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C)2011, 2015 D. R. Commander. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+- Neither the name of the libjpeg-turbo Project nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright (C)2011-2016 D. R. Commander. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+- Neither the name of the libjpeg-turbo Project nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+
+Based on the x86 SIMD extension for IJG JPEG library
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2009, D. R. Commander.
+
+Based on the x86 SIMD extension for IJG JPEG library
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander.
+Copyright (C) 2015, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander.
+Copyright (C) 2015-2016, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2009-2011, 2014, 2016, D. R. Commander.
+Copyright (C) 2015, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2009-2011, 2014, D. R. Commander.
+Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
+Copyright (C) 2015, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2009-2011, 2014, D. R. Commander.
+Copyright (C) 2015, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2009-2011, 2014-2015, D. R. Commander.
+Copyright (C) 2015, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2010, D. R. Commander.
+
+Based on the x86 SIMD extension for IJG JPEG library - version 1.02
+
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2011, 2014, D. R. Commander.
+Copyright (C) 2015, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2011, 2014-2016, D. R. Commander.
+Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
+Copyright (C) 2014, Linaro Limited.
+Copyright (C) 2015-2016, Matthieu Darbois.
+
+Based on the x86 SIMD extension for IJG JPEG library,
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009 Pierre Ossman for Cendio AB
+Copyright (C) 2011, D. R. Commander.
+
+Based on the x86 SIMD extension for IJG JPEG library
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009, 2012 Pierre Ossman for Cendio AB
+Copyright (C) 2009, 2012, D. R. Commander.
+
+Based on the x86 SIMD extension for IJG JPEG library
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+Copyright 2009, 2012 Pierre Ossman for Cendio AB
+Copyright (C) 2012, D. R. Commander.
+
+Based on the x86 SIMD extension for IJG JPEG library
+Copyright (C) 1999-2006, MIYASAKA Masaru.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+libjpeg-turbo
+
+libjpeg-turbo note: This file has been modified by The libjpeg-turbo Project
+to include only information relevant to libjpeg-turbo, to wordsmith certain
+sections, and to remove impolitic language that existed in the libjpeg v8
+README. It is included only for reference. Please see README.md for
+information specific to libjpeg-turbo.
+
+The Independent JPEG Group's JPEG software
+==========================================
+
+This distribution contains a release of the Independent JPEG Group's free JPEG
+software. You are welcome to redistribute this software and to use it for any
+purpose, subject to the conditions under LEGAL ISSUES, below.
+
+This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone,
+Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson,
+Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers,
+and other members of the Independent JPEG Group.
+
+IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee
+(also known as JPEG, together with ITU-T SG16).
+
+DOCUMENTATION ROADMAP
+=====================
+
+This file contains the following sections:
+
+OVERVIEW General description of JPEG and the IJG software.
+LEGAL ISSUES Copyright, lack of warranty, terms of distribution.
+REFERENCES Where to learn more about JPEG.
+ARCHIVE LOCATIONS Where to find newer versions of this software.
+FILE FORMAT WARS Software *not* to get.
+TO DO Plans for future IJG releases.
+
+Other documentation files in the distribution are:
+
+User documentation:
+ usage.txt Usage instructions for cjpeg, djpeg, jpegtran,
+ rdjpgcom, and wrjpgcom.
+ *.1 Unix-style man pages for programs (same info as usage.txt).
+ wizard.txt Advanced usage instructions for JPEG wizards only.
+ change.log Version-to-version change highlights.
+Programmer and internal documentation:
+ libjpeg.txt How to use the JPEG library in your own programs.
+ example.c Sample code for calling the JPEG library.
+ structure.txt Overview of the JPEG library's internal structure.
+ coderules.txt Coding style rules --- please read if you contribute code.
+
+Please read at least usage.txt. Some information can also be found in the JPEG
+FAQ (Frequently Asked Questions) article. See ARCHIVE LOCATIONS below to find
+out where to obtain the FAQ article.
+
+If you want to understand how the JPEG code works, we suggest reading one or
+more of the REFERENCES, then looking at the documentation files (in roughly
+the order listed) before diving into the code.
+
+OVERVIEW
+========
+
+This package contains C software to implement JPEG image encoding, decoding,
+and transcoding. JPEG (pronounced "jay-peg") is a standardized compression
+method for full-color and grayscale images. JPEG's strong suit is compressing
+photographic images or other types of images that have smooth color and
+brightness transitions between neighboring pixels. Images with sharp lines or
+other abrupt features may not compress well with JPEG, and a higher JPEG
+quality may have to be used to avoid visible compression artifacts with such
+images.
+
+JPEG is lossy, meaning that the output pixels are not necessarily identical to
+the input pixels. However, on photographic content and other "smooth" images,
+very good compression ratios can be obtained with no visible compression
+artifacts, and extremely high compression ratios are possible if you are
+willing to sacrifice image quality (by reducing the "quality" setting in the
+compressor.)
+
+This software implements JPEG baseline, extended-sequential, and progressive
+compression processes. Provision is made for supporting all variants of these
+processes, although some uncommon parameter settings aren't implemented yet.
+We have made no provision for supporting the hierarchical or lossless
+processes defined in the standard.
+
+We provide a set of library routines for reading and writing JPEG image files,
+plus two sample applications "cjpeg" and "djpeg", which use the library to
+perform conversion between JPEG and some other popular image file formats.
+The library is intended to be reused in other applications.
+
+In order to support file conversion and viewing software, we have included
+considerable functionality beyond the bare JPEG coding/decoding capability;
+for example, the color quantization modules are not strictly part of JPEG
+decoding, but they are essential for output to colormapped file formats or
+colormapped displays. These extra functions can be compiled out of the
+library if not required for a particular application.
+
+We have also included "jpegtran", a utility for lossless transcoding between
+different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple
+applications for inserting and extracting textual comments in JFIF files.
+
+The emphasis in designing this software has been on achieving portability and
+flexibility, while also making it fast enough to be useful. In particular,
+the software is not intended to be read as a tutorial on JPEG. (See the
+REFERENCES section for introductory material.) Rather, it is intended to
+be reliable, portable, industrial-strength code. We do not claim to have
+achieved that goal in every aspect of the software, but we strive for it.
+
+We welcome the use of this software as a component of commercial products.
+No royalty is required, but we do ask for an acknowledgement in product
+documentation, as described under LEGAL ISSUES.
+
+LEGAL ISSUES
+============
+
+In plain English:
+
+1. We don't promise that this software works. (But if you find any bugs,
+ please let us know!)
+2. You can use this software for whatever you want. You don't have to pay us.
+3. You may not pretend that you wrote this software. If you use it in a
+ program, you must acknowledge somewhere in your documentation that
+ you've used the IJG code.
+
+In legalese:
+
+The authors make NO WARRANTY or representation, either express or implied,
+with respect to this software, its quality, accuracy, merchantability, or
+fitness for a particular purpose. This software is provided "AS IS", and you,
+its user, assume the entire risk as to its quality and accuracy.
+
+This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding.
+All Rights Reserved except as specified below.
+
+Permission is hereby granted to use, copy, modify, and distribute this
+software (or portions thereof) for any purpose, without fee, subject to these
+conditions:
+(1) If any part of the source code for this software is distributed, then this
+README file must be included, with this copyright and no-warranty notice
+unaltered; and any additions, deletions, or changes to the original files
+must be clearly indicated in accompanying documentation.
+(2) If only executable code is distributed, then the accompanying
+documentation must state that "this software is based in part on the work of
+the Independent JPEG Group".
+(3) Permission for use of this software is granted only if the user accepts
+full responsibility for any undesirable consequences; the authors accept
+NO LIABILITY for damages of any kind.
+
+These conditions apply to any software derived from or based on the IJG code,
+not just to the unmodified library. If you use our work, you ought to
+acknowledge us.
+
+Permission is NOT granted for the use of any IJG author's name or company name
+in advertising or publicity relating to this software or products derived from
+it. This software may be referred to only as "the Independent JPEG Group's
+software".
+
+We specifically permit and encourage the use of this software as the basis of
+commercial products, provided that all warranty or liability claims are
+assumed by the product vendor.
+
+The Unix configuration script "configure" was produced with GNU Autoconf.
+It is copyright by the Free Software Foundation but is freely distributable.
+The same holds for its supporting scripts (config.guess, config.sub,
+ltmain.sh). Another support script, install-sh, is copyright by X Consortium
+but is also freely distributable.
+
+The IJG distribution formerly included code to read and write GIF files.
+To avoid entanglement with the Unisys LZW patent (now expired), GIF reading
+support has been removed altogether, and the GIF writer has been simplified
+to produce "uncompressed GIFs". This technique does not use the LZW
+algorithm; the resulting GIF files are larger than usual, but are readable
+by all standard GIF decoders.
+
+We are required to state that
+ "The Graphics Interchange Format(c) is the Copyright property of
+ CompuServe Incorporated. GIF(sm) is a Service Mark property of
+ CompuServe Incorporated."
+
+REFERENCES
+==========
+
+We recommend reading one or more of these references before trying to
+understand the innards of the JPEG software.
+
+The best short technical introduction to the JPEG compression algorithm is
+ Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
+ Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
+(Adjacent articles in that issue discuss MPEG motion picture compression,
+applications of JPEG, and related topics.) If you don't have the CACM issue
+handy, a PDF file containing a revised version of Wallace's article is
+available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually
+a preprint for an article that appeared in IEEE Trans. Consumer Electronics)
+omits the sample images that appeared in CACM, but it includes corrections
+and some added material. Note: the Wallace article is copyright ACM and IEEE,
+and it may not be used for commercial purposes.
+
+A somewhat less technical, more leisurely introduction to JPEG can be found in
+"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by
+M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides
+good explanations and example C code for a multitude of compression methods
+including JPEG. It is an excellent source if you are comfortable reading C
+code but don't know much about data compression in general. The book's JPEG
+sample code is far from industrial-strength, but when you are ready to look
+at a full implementation, you've got one here...
+
+The best currently available description of JPEG is the textbook "JPEG Still
+Image Data Compression Standard" by William B. Pennebaker and Joan L.
+Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1.
+Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG
+standards (DIS 10918-1 and draft DIS 10918-2).
+
+The original JPEG standard is divided into two parts, Part 1 being the actual
+specification, while Part 2 covers compliance testing methods. Part 1 is
+titled "Digital Compression and Coding of Continuous-tone Still Images,
+Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS
+10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of
+Continuous-tone Still Images, Part 2: Compliance testing" and has document
+numbers ISO/IEC IS 10918-2, ITU-T T.83.
+
+The JPEG standard does not specify all details of an interchangeable file
+format. For the omitted details we follow the "JFIF" conventions, revision
+1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report
+and thus received a formal publication status. It is available as a free
+download in PDF format from
+http://www.ecma-international.org/publications/techreports/E-TR-098.htm.
+A PostScript version of the JFIF document is available at
+http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at
+http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures.
+
+The TIFF 6.0 file format specification can be obtained by FTP from
+ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme
+found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
+IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
+Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
+(Compression tag 7). Copies of this Note can be obtained from
+http://www.ijg.org/files/. It is expected that the next revision
+of the TIFF spec will replace the 6.0 JPEG design with the Note's design.
+Although IJG's own code does not support TIFF/JPEG, the free libtiff library
+uses our library to implement TIFF/JPEG per the Note.
+
+ARCHIVE LOCATIONS
+=================
+
+The "official" archive site for this software is www.ijg.org.
+The most recent released version can always be found there in
+directory "files".
+
+The JPEG FAQ (Frequently Asked Questions) article is a source of some
+general information about JPEG.
+It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq
+and other news.answers archive sites, including the official news.answers
+archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.
+If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu
+with body
+ send usenet/news.answers/jpeg-faq/part1
+ send usenet/news.answers/jpeg-faq/part2
+
+FILE FORMAT WARS
+================
+
+The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together
+with ITU-T SG16) currently promotes different formats containing the name
+"JPEG" which are incompatible with original DCT-based JPEG. IJG therefore does
+not support these formats (see REFERENCES). Indeed, one of the original
+reasons for developing this free software was to help force convergence on
+common, interoperable format standards for JPEG files.
+Don't use an incompatible file format!
+(In any case, our decoder will remain capable of reading existing JPEG
+image files indefinitely.)
+
+TO DO
+=====
+
+Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org.
+--------------------------------------------------------------------------------
+libsdl
+skia
+
+Copyright 2016 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright (c) 2010, Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright 2010 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright 2011 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright 2012 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright 2013 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright 2014 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright 2015 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright 2016 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+libwebp
+
+Copyright 2017 Google Inc. All Rights Reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of Google nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+path_provider
+shared_preferences_macos
+
+Copyright 2017, the Flutter project authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+path_provider_linux
+
+// Copyright 2020 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+path_provider_macos
+path_provider_windows
+shared_preferences
+
+Copyright 2017 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+path_provider_platform_interface
+shared_preferences_linux
+
+Copyright 2020 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+pedantic
+platform
+process
+term_glyph
+
+Copyright 2017, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+pkg
+
+Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
+for details. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+plugin_platform_interface
+
+Copyright 2019 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+rapidjson
+
+Copyright (c) 2006-2013 Alexander Chemeris
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of the product nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+rapidjson
+
+Tencent is pleased to support the open source community by making RapidJSON available.
+
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
+
+If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License.
+If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON.
+
+A copy of the MIT License is included in this file.
+
+Other dependencies and licenses:
+
+Open Source Software Licensed Under the BSD License:
+
+The msinttypes r29
+Copyright (c) 2006-2013 Alexander Chemeris
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Terms of the MIT License:
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+rapidjson
+
+Tencent is pleased to support the open source community by making RapidJSON available.
+
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
+
+If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License.
+If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license.
+A copy of the MIT License is included in this file.
+
+Other dependencies and licenses:
+
+Open Source Software Licensed Under the BSD License:
+
+The msinttypes r29
+Copyright (c) 2006-2013 Alexander Chemeris
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+* Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Open Source Software Licensed Under the JSON License:
+
+json.org
+Copyright (c) 2002 JSON.org
+All Rights Reserved.
+
+JSON_checker
+Copyright (c) 2002 JSON.org
+All Rights Reserved.
+
+Terms of the JSON License:
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+The Software shall be used for Good, not Evil.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Terms of the MIT License:
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------
+rapidjson
+
+The MIT License (MIT)
+
+Copyright (c) 2017 Bart Muzzin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Derived from:
+
+The MIT License (MIT)
+
+Copyright (c) 2015 mojmir svoboda
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+--------------------------------------------------------------------------------
+root_certificates
+
+Mozilla Public License
+Version 2.0
+
+1. Definitions
+
+1.1. “Contributor”
+
+means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.
+
+1.2. “Contributor Version”
+
+means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution.
+
+1.3. “Contribution”
+
+means Covered Software of a particular Contributor.
+
+1.4. “Covered Software”
+
+means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.
+
+1.5. “Incompatible With Secondary Licenses”
+
+means
+
+ a. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or
+
+ b. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License.
+
+1.6. “Executable Form”
+
+means any form of the work other than Source Code Form.
+
+1.7. “Larger Work”
+
+means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.
+
+1.8. “License”
+
+means this document.
+
+1.9. “Licensable”
+
+means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License.
+
+1.10. “Modifications”
+
+means any of the following:
+
+ a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or
+
+ b. any new file in Source Code Form that contains any Covered Software.
+
+1.11. “Patent Claims” of a Contributor
+
+means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.
+
+1.12. “Secondary License”
+
+means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.
+
+1.13. “Source Code Form”
+
+means the form of the work preferred for making modifications.
+
+1.14. “You” (or “Your”)
+
+means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
+
+2. License Grants and Conditions
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
+
+ a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and
+
+ b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor:
+
+ a. for any code that a Contributor has removed from Covered Software; or
+
+ b. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or
+
+ c. under Patent Claims infringed by Covered Software in the absence of its Contributions.
+
+This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.
+
+3. Responsibilities
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+ a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and
+
+ b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+
+If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
+
+5. Termination
+
+5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.
+
+6. Disclaimer of Warranty
+
+ Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer.
+
+7. Limitation of Liability
+
+ Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.
+
+8. Litigation
+
+Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims.
+
+9. Miscellaneous
+
+This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+
+ This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - “Incompatible With Secondary Licenses” Notice
+
+ This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.
+--------------------------------------------------------------------------------
+root_certificates
+
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+* 6. Disclaimer of Warranty
+
+* Covered Software is provided under this License on an "as is"
+* basis, without warranty of any kind, either expressed, implied, or
+* statutory, including, without limitation, warranties that the
+* Covered Software is free of defects, merchantable, fit for a
+* particular purpose or non-infringing. The entire risk as to the
+* quality and performance of the Covered Software is with You.
+* Should any Covered Software prove defective in any respect, You
+* (not any Contributor) assume the cost of any necessary servicing,
+* repair, or correction. This disclaimer of warranty constitutes an
+* essential part of this License. No use of any Covered Software is
+* authorized under this License except under this disclaimer.
+
+* 7. Limitation of Liability
+
+* Under no circumstances and under no legal theory, whether tort
+* (including negligence), contract, or otherwise, shall any
+* Contributor, or anyone who distributes Covered Software as
+* permitted above, be liable to You for any direct, indirect,
+* special, incidental, or consequential damages of any character
+* including, without limitation, damages for lost profits, loss of
+* goodwill, work stoppage, computer failure or malfunction, or any
+* and all other commercial damages or losses, even if such party
+* shall have been informed of the possibility of such damages. This
+* limitation of liability shall not apply to liability for death or
+* personal injury resulting from such party's negligence to the
+* extent applicable law prohibits such limitation. Some
+* jurisdictions do not allow the exclusion or limitation of
+* incidental or consequential damages, so this exclusion and
+* limitation may not apply to You.
+
+8. Litigation
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
+--------------------------------------------------------------------------------
+shared_preferences_platform_interface
+
+// Copyright 2017 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+shared_preferences_web
+
+// Copyright 2019 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+shared_preferences_windows
+
+// Copyright 2017 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+skcms
+
+Copyright (c) 2018 Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skcms
+vulkanmemoryallocator
+
+Copyright 2018 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright (C) 2014 Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright (c) 2011 Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright (c) 2011 Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright (c) 2014 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright (c) 2014-2016 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and/or associated documentation files (the "Materials"),
+to deal in the Materials without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Materials, and to permit persons to whom the
+Materials are furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Materials.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2005 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2006 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2006-2012 The Android Open Source Project
+Copyright 2012 Mozilla Foundation
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2007 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2008 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2008 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2009 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2009-2015 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2010 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2010 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2011 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2011 Google Inc.
+Copyright 2012 Mozilla Foundation
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2011 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2012 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2012 Intel Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2012 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2013 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2013 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2014 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2014 Google Inc.
+Copyright 2017 ARM Ltd.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2014 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2015 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2015 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2016 Mozilla Foundation
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2016 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2017 ARM Ltd.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2017 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2018 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2018 Google LLC
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2018 Google LLC.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2018 Google, LLC
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2018 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2019 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2019 Google Inc. and Adobe Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2019 Google LLC
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2019 Google LLC.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2019 Google, LLC
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2019 The Android Open Source Project
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2020 Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2020 Google LLC
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2020 Google LLC.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2020 Google, LLC
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+skia
+
+Copyright 2020 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+smhasher
+
+All MurmurHash source files are placed in the public domain.
+
+The license below applies to all other code in SMHasher:
+
+Copyright (c) 2011 Google, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+tcmalloc
+
+Copyright (c) 2003, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+tcmalloc
+
+Copyright (c) 2005, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+test_api
+
+Copyright 2018, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+vector_math
+
+Copyright 2015, Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (C) 2013 Andrew Magill
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+--------------------------------------------------------------------------------
+vulkanmemoryallocator
+
+Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+--------------------------------------------------------------------------------
+wasmer
+
+MIT License
+
+Copyright (c) 2019-present Wasmer, Inc. and its affiliates.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+--------------------------------------------------------------------------------
+win32
+
+Copyright 2019, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+wuffs
+
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+--------------------------------------------------------------------------------
+xdg_directories
+
+Copyright 2020 The Flutter Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------------------------------
+xxhash
+
+Copyright (C) 2012-2016, Yann Collet
+
+BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+xxhash
+
+Copyright (C) 2012-2016, Yann Collet.
+
+BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2003, 2010 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2003, 2010 Mark Adler
+Copyright (C) 2017 ARM, Inc.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2005, 2010 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2011, 2016 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2016 Jean-loup Gailly
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2016 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2017 Jean-loup Gailly
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2017 Jean-loup Gailly
+detect_data_type() function provided freely by Cosmin Truta, 2006
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1995-2017 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+Modifications for Zip64 support
+Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+For more info read MiniZip_info.txt
+
+Condition of use and distribution are the same than zlib :
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+Modifications of Unzip for Zip64
+Copyright (C) 2007-2008 Even Rouault
+
+Modifications for Zip64 support on both zip and unzip
+Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+For more info read MiniZip_info.txt
+
+Condition of use and distribution are the same than zlib :
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 2004, 2010 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 2004-2017 Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 2013 Intel Corporation
+Authors:
+ Arjan van de Ven
+ Jim Kukunas
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 2013 Intel Corporation. All rights reserved.
+Authors:
+ Wajdi Feghali
+ Jim Guilford
+ Vinodh Gopal
+ Erdinc Ozturk
+ Jim Kukunas
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (C) 2017 ARM, Inc.
+Copyright 2017 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright (c) 2012 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+zlib
+
+Copyright 2017 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+zlib
+
+version 1.2.11, January 15th, 2017
+
+Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
diff --git a/flutter-webrtc-server-master/web/assets/fonts/MaterialIcons-Regular.otf b/flutter-webrtc-server-master/web/assets/fonts/MaterialIcons-Regular.otf
new file mode 100644
index 0000000..a83a17d
Binary files /dev/null and b/flutter-webrtc-server-master/web/assets/fonts/MaterialIcons-Regular.otf differ
diff --git a/flutter-webrtc-server-master/web/assets/packages/cupertino_icons/assets/CupertinoIcons.ttf b/flutter-webrtc-server-master/web/assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
new file mode 100644
index 0000000..b27565f
Binary files /dev/null and b/flutter-webrtc-server-master/web/assets/packages/cupertino_icons/assets/CupertinoIcons.ttf differ
diff --git a/flutter-webrtc-server-master/web/flutter_service_worker.js b/flutter-webrtc-server-master/web/flutter_service_worker.js
new file mode 100644
index 0000000..4455385
--- /dev/null
+++ b/flutter-webrtc-server-master/web/flutter_service_worker.js
@@ -0,0 +1,186 @@
+'use strict';
+const MANIFEST = 'flutter-app-manifest';
+const TEMP = 'flutter-temp-cache';
+const CACHE_NAME = 'flutter-app-cache';
+const RESOURCES = {
+ "version.json": "3cd6f815d9c5d07f0f911f700a1b794f",
+"index.html": "586ceada6c8fe349bd345099af0715d8",
+"/": "586ceada6c8fe349bd345099af0715d8",
+"main.dart.js": "accbe5718f9ba09566d794f2e928dccb",
+"assets/AssetManifest.json": "2efbb41d7877d10aac9d091f58ccd7b9",
+"assets/NOTICES": "6c189b91b43a3a483186be04162c19cf",
+"assets/FontManifest.json": "dc3d03800ccca4601324923c0b1d6d57",
+"assets/packages/cupertino_icons/assets/CupertinoIcons.ttf": "b14fcf3ee94e3ace300b192e9e7c8c5d",
+"assets/fonts/MaterialIcons-Regular.otf": "1288c9e28052e028aba623321f7826ac"
+};
+
+// The application shell files that are downloaded before a service worker can
+// start.
+const CORE = [
+ "/",
+"main.dart.js",
+"index.html",
+"assets/NOTICES",
+"assets/AssetManifest.json",
+"assets/FontManifest.json"];
+// During install, the TEMP cache is populated with the application shell files.
+self.addEventListener("install", (event) => {
+ self.skipWaiting();
+ return event.waitUntil(
+ caches.open(TEMP).then((cache) => {
+ return cache.addAll(
+ CORE.map((value) => new Request(value + '?revision=' + RESOURCES[value], {'cache': 'reload'})));
+ })
+ );
+});
+
+// During activate, the cache is populated with the temp files downloaded in
+// install. If this service worker is upgrading from one with a saved
+// MANIFEST, then use this to retain unchanged resource files.
+self.addEventListener("activate", function(event) {
+ return event.waitUntil(async function() {
+ try {
+ var contentCache = await caches.open(CACHE_NAME);
+ var tempCache = await caches.open(TEMP);
+ var manifestCache = await caches.open(MANIFEST);
+ var manifest = await manifestCache.match('manifest');
+ // When there is no prior manifest, clear the entire cache.
+ if (!manifest) {
+ await caches.delete(CACHE_NAME);
+ contentCache = await caches.open(CACHE_NAME);
+ for (var request of await tempCache.keys()) {
+ var response = await tempCache.match(request);
+ await contentCache.put(request, response);
+ }
+ await caches.delete(TEMP);
+ // Save the manifest to make future upgrades efficient.
+ await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
+ return;
+ }
+ var oldManifest = await manifest.json();
+ var origin = self.location.origin;
+ for (var request of await contentCache.keys()) {
+ var key = request.url.substring(origin.length + 1);
+ if (key == "") {
+ key = "/";
+ }
+ // If a resource from the old manifest is not in the new cache, or if
+ // the MD5 sum has changed, delete it. Otherwise the resource is left
+ // in the cache and can be reused by the new service worker.
+ if (!RESOURCES[key] || RESOURCES[key] != oldManifest[key]) {
+ await contentCache.delete(request);
+ }
+ }
+ // Populate the cache with the app shell TEMP files, potentially overwriting
+ // cache files preserved above.
+ for (var request of await tempCache.keys()) {
+ var response = await tempCache.match(request);
+ await contentCache.put(request, response);
+ }
+ await caches.delete(TEMP);
+ // Save the manifest to make future upgrades efficient.
+ await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
+ return;
+ } catch (err) {
+ // On an unhandled exception the state of the cache cannot be guaranteed.
+ console.error('Failed to upgrade service worker: ' + err);
+ await caches.delete(CACHE_NAME);
+ await caches.delete(TEMP);
+ await caches.delete(MANIFEST);
+ }
+ }());
+});
+
+// The fetch handler redirects requests for RESOURCE files to the service
+// worker cache.
+self.addEventListener("fetch", (event) => {
+ if (event.request.method !== 'GET') {
+ return;
+ }
+ var origin = self.location.origin;
+ var key = event.request.url.substring(origin.length + 1);
+ // Redirect URLs to the index.html
+ if (key.indexOf('?v=') != -1) {
+ key = key.split('?v=')[0];
+ }
+ if (event.request.url == origin || event.request.url.startsWith(origin + '/#') || key == '') {
+ key = '/';
+ }
+ // If the URL is not the RESOURCE list then return to signal that the
+ // browser should take over.
+ if (!RESOURCES[key]) {
+ return;
+ }
+ // If the URL is the index.html, perform an online-first request.
+ if (key == '/') {
+ return onlineFirst(event);
+ }
+ event.respondWith(caches.open(CACHE_NAME)
+ .then((cache) => {
+ return cache.match(event.request).then((response) => {
+ // Either respond with the cached resource, or perform a fetch and
+ // lazily populate the cache.
+ return response || fetch(event.request).then((response) => {
+ cache.put(event.request, response.clone());
+ return response;
+ });
+ })
+ })
+ );
+});
+
+self.addEventListener('message', (event) => {
+ // SkipWaiting can be used to immediately activate a waiting service worker.
+ // This will also require a page refresh triggered by the main worker.
+ if (event.data === 'skipWaiting') {
+ self.skipWaiting();
+ return;
+ }
+ if (event.data === 'downloadOffline') {
+ downloadOffline();
+ return;
+ }
+});
+
+// Download offline will check the RESOURCES for all files not in the cache
+// and populate them.
+async function downloadOffline() {
+ var resources = [];
+ var contentCache = await caches.open(CACHE_NAME);
+ var currentContent = {};
+ for (var request of await contentCache.keys()) {
+ var key = request.url.substring(origin.length + 1);
+ if (key == "") {
+ key = "/";
+ }
+ currentContent[key] = true;
+ }
+ for (var resourceKey in Object.keys(RESOURCES)) {
+ if (!currentContent[resourceKey]) {
+ resources.push(resourceKey);
+ }
+ }
+ return contentCache.addAll(resources);
+}
+
+// Attempt to download the resource online before falling back to
+// the offline cache.
+function onlineFirst(event) {
+ return event.respondWith(
+ fetch(event.request).then((response) => {
+ return caches.open(CACHE_NAME).then((cache) => {
+ cache.put(event.request, response.clone());
+ return response;
+ });
+ }).catch((error) => {
+ return caches.open(CACHE_NAME).then((cache) => {
+ return cache.match(event.request).then((response) => {
+ if (response != null) {
+ return response;
+ }
+ throw error;
+ });
+ });
+ })
+ );
+}
diff --git a/flutter-webrtc-server-master/web/index.html b/flutter-webrtc-server-master/web/index.html
new file mode 100644
index 0000000..3940fd7
--- /dev/null
+++ b/flutter-webrtc-server-master/web/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Flutter WebRTC Demo
+
+
+
+
+
diff --git a/flutter-webrtc-server-master/web/main.dart.js b/flutter-webrtc-server-master/web/main.dart.js
new file mode 100644
index 0000000..cf85eaf
--- /dev/null
+++ b/flutter-webrtc-server-master/web/main.dart.js
@@ -0,0 +1,116228 @@
+// Generated by dart2js (fast startup emitter, strong, trust primitives, omit checks, lax runtime type), the Dart to JavaScript compiler version: 2.12.0-29.10.beta.
+// The code supports the following hooks:
+// dartPrint(message):
+// if this function is defined it is called instead of the Dart [print]
+// method.
+//
+// dartMainRunner(main, args):
+// if this function is defined, the Dart [main] method will not be invoked
+// directly. Instead, a closure that will invoke [main], and its arguments
+// [args] is passed to [dartMainRunner].
+//
+// dartDeferredLibraryLoader(uri, successCallback, errorCallback):
+// if this function is defined, it will be called when a deferred library
+// is loaded. It should load and eval the javascript of `uri`, and call
+// successCallback. If it fails to do so, it should call errorCallback with
+// an error.
+//
+// dartCallInstrumentation(id, qualifiedName):
+// if this function is defined, it will be called at each entry of a
+// method or constructor. Used only when compiling programs with
+// --experiment-call-instrumentation.
+(function dartProgram() {
+ function copyProperties(from, to) {
+ var keys = Object.keys(from);
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ to[key] = from[key];
+ }
+ }
+ var supportsDirectProtoAccess = function() {
+ var cls = function() {
+ };
+ cls.prototype = {p: {}};
+ var object = new cls();
+ if (!(object.__proto__ && object.__proto__.p === cls.prototype.p))
+ return false;
+ try {
+ if (typeof navigator != "undefined" && typeof navigator.userAgent == "string" && navigator.userAgent.indexOf("Chrome/") >= 0)
+ return true;
+ if (typeof version == "function" && version.length == 0) {
+ var v = version();
+ if (/^\d+\.\d+\.\d+\.\d+$/.test(v))
+ return true;
+ }
+ } catch (_) {
+ }
+ return false;
+ }();
+ function setFunctionNamesIfNecessary(holders) {
+ function t() {
+ }
+ ;
+ if (typeof t.name == "string")
+ return;
+ for (var i = 0; i < holders.length; i++) {
+ var holder = holders[i];
+ var keys = Object.keys(holder);
+ for (var j = 0; j < keys.length; j++) {
+ var key = keys[j];
+ var f = holder[key];
+ if (typeof f == 'function')
+ f.name = key;
+ }
+ }
+ }
+ function inherit(cls, sup) {
+ cls.prototype.constructor = cls;
+ cls.prototype["$is" + cls.name] = cls;
+ if (sup != null) {
+ if (supportsDirectProtoAccess) {
+ cls.prototype.__proto__ = sup.prototype;
+ return;
+ }
+ var clsPrototype = Object.create(sup.prototype);
+ copyProperties(cls.prototype, clsPrototype);
+ cls.prototype = clsPrototype;
+ }
+ }
+ function inheritMany(sup, classes) {
+ for (var i = 0; i < classes.length; i++)
+ inherit(classes[i], sup);
+ }
+ function mixin(cls, mixin) {
+ copyProperties(mixin.prototype, cls.prototype);
+ cls.prototype.constructor = cls;
+ }
+ function lazyOld(holder, name, getterName, initializer) {
+ var uninitializedSentinel = holder;
+ holder[name] = uninitializedSentinel;
+ holder[getterName] = function() {
+ holder[getterName] = function() {
+ H.throwCyclicInit(name);
+ };
+ var result;
+ var sentinelInProgress = initializer;
+ try {
+ if (holder[name] === uninitializedSentinel) {
+ result = holder[name] = sentinelInProgress;
+ result = holder[name] = initializer();
+ } else
+ result = holder[name];
+ } finally {
+ if (result === sentinelInProgress)
+ holder[name] = null;
+ holder[getterName] = function() {
+ return this[name];
+ };
+ }
+ return result;
+ };
+ }
+ function lazy(holder, name, getterName, initializer) {
+ var uninitializedSentinel = holder;
+ holder[name] = uninitializedSentinel;
+ holder[getterName] = function() {
+ if (holder[name] === uninitializedSentinel)
+ holder[name] = initializer();
+ holder[getterName] = function() {
+ return this[name];
+ };
+ return holder[name];
+ };
+ }
+ function lazyFinal(holder, name, getterName, initializer) {
+ var uninitializedSentinel = holder;
+ holder[name] = uninitializedSentinel;
+ holder[getterName] = function() {
+ if (holder[name] === uninitializedSentinel) {
+ var value = initializer();
+ if (holder[name] !== uninitializedSentinel)
+ H.throwLateInitializationError(name);
+ holder[name] = value;
+ }
+ holder[getterName] = function() {
+ return this[name];
+ };
+ return holder[name];
+ };
+ }
+ function makeConstList(list) {
+ list.immutable$list = Array;
+ list.fixed$length = Array;
+ return list;
+ }
+ function convertToFastObject(properties) {
+ function t() {
+ }
+ t.prototype = properties;
+ new t();
+ return properties;
+ }
+ function convertAllToFastObject(arrayOfObjects) {
+ for (var i = 0; i < arrayOfObjects.length; ++i)
+ convertToFastObject(arrayOfObjects[i]);
+ }
+ var functionCounter = 0;
+ function tearOffGetter(funcs, applyTrampolineIndex, reflectionInfo, name, isIntercepted) {
+ return isIntercepted ? new Function("funcs", "applyTrampolineIndex", "reflectionInfo", "name", "H", "c", "return function tearOff_" + name + functionCounter++ + "(receiver) {" + "if (c === null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, applyTrampolineIndex, reflectionInfo, false, true, name);" + "return new c(this, funcs[0], receiver, name);" + "}")(funcs, applyTrampolineIndex, reflectionInfo, name, H, null) : new Function("funcs", "applyTrampolineIndex", "reflectionInfo", "name", "H", "c", "return function tearOff_" + name + functionCounter++ + "() {" + "if (c === null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, applyTrampolineIndex, reflectionInfo, false, false, name);" + "return new c(this, funcs[0], null, name);" + "}")(funcs, applyTrampolineIndex, reflectionInfo, name, H, null);
+ }
+ function tearOff(funcs, applyTrampolineIndex, reflectionInfo, isStatic, name, isIntercepted) {
+ var cache = null;
+ return isStatic ? function() {
+ if (cache === null)
+ cache = H.closureFromTearOff(this, funcs, applyTrampolineIndex, reflectionInfo, true, false, name).prototype;
+ return cache;
+ } : tearOffGetter(funcs, applyTrampolineIndex, reflectionInfo, name, isIntercepted);
+ }
+ var typesOffset = 0;
+ function installTearOff(container, getterName, isStatic, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) {
+ var funs = [];
+ for (var i = 0; i < funsOrNames.length; i++) {
+ var fun = funsOrNames[i];
+ if (typeof fun == 'string')
+ fun = container[fun];
+ fun.$callName = callNames[i];
+ funs.push(fun);
+ }
+ var fun = funs[0];
+ fun.$requiredArgCount = requiredParameterCount;
+ fun.$defaultValues = optionalParameterDefaultValues;
+ var reflectionInfo = funType;
+ if (typeof reflectionInfo == "number")
+ reflectionInfo += typesOffset;
+ var name = funsOrNames[0];
+ fun.$stubName = name;
+ var getterFunction = tearOff(funs, applyIndex || 0, reflectionInfo, isStatic, name, isIntercepted);
+ container[getterName] = getterFunction;
+ if (isStatic)
+ fun.$tearOff = getterFunction;
+ }
+ function installStaticTearOff(container, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) {
+ return installTearOff(container, getterName, true, false, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex);
+ }
+ function installInstanceTearOff(container, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) {
+ return installTearOff(container, getterName, false, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex);
+ }
+ function setOrUpdateInterceptorsByTag(newTags) {
+ var tags = init.interceptorsByTag;
+ if (!tags) {
+ init.interceptorsByTag = newTags;
+ return;
+ }
+ copyProperties(newTags, tags);
+ }
+ function setOrUpdateLeafTags(newTags) {
+ var tags = init.leafTags;
+ if (!tags) {
+ init.leafTags = newTags;
+ return;
+ }
+ copyProperties(newTags, tags);
+ }
+ function updateTypes(newTypes) {
+ var types = init.types;
+ var length = types.length;
+ types.push.apply(types, newTypes);
+ return length;
+ }
+ function updateHolder(holder, newHolder) {
+ copyProperties(newHolder, holder);
+ return holder;
+ }
+ var hunkHelpers = function() {
+ var mkInstance = function(isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) {
+ return function(container, getterName, name, funType) {
+ return installInstanceTearOff(container, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex);
+ };
+ },
+ mkStatic = function(requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) {
+ return function(container, getterName, name, funType) {
+ return installStaticTearOff(container, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex);
+ };
+ };
+ return {inherit: inherit, inheritMany: inheritMany, mixin: mixin, installStaticTearOff: installStaticTearOff, installInstanceTearOff: installInstanceTearOff, _instance_0u: mkInstance(0, 0, null, ["call$0"], 0), _instance_1u: mkInstance(0, 1, null, ["call$1"], 0), _instance_2u: mkInstance(0, 2, null, ["call$2"], 0), _instance_0i: mkInstance(1, 0, null, ["call$0"], 0), _instance_1i: mkInstance(1, 1, null, ["call$1"], 0), _instance_2i: mkInstance(1, 2, null, ["call$2"], 0), _static_0: mkStatic(0, null, ["call$0"], 0), _static_1: mkStatic(1, null, ["call$1"], 0), _static_2: mkStatic(2, null, ["call$2"], 0), makeConstList: makeConstList, lazy: lazy, lazyFinal: lazyFinal, lazyOld: lazyOld, updateHolder: updateHolder, convertToFastObject: convertToFastObject, setFunctionNamesIfNecessary: setFunctionNamesIfNecessary, updateTypes: updateTypes, setOrUpdateInterceptorsByTag: setOrUpdateInterceptorsByTag, setOrUpdateLeafTags: setOrUpdateLeafTags};
+ }();
+ function initializeDeferredHunk(hunk) {
+ typesOffset = init.types.length;
+ hunk(hunkHelpers, init, holders, $);
+ }
+ function getGlobalFromName(name) {
+ for (var i = 0; i < holders.length; i++) {
+ if (holders[i] == C)
+ continue;
+ if (holders[i][name])
+ return holders[i][name];
+ }
+ }
+ var C = {},
+ H = {
+ initializeEngine: function() {
+ var t1 = {};
+ if ($._engineInitialized)
+ return;
+ P.registerExtension("ext.flutter.disassemble", new H.initializeEngine_closure());
+ $._engineInitialized = true;
+ $.$get$domRenderer();
+ if ($.WebExperiments_instance == null)
+ $.WebExperiments_instance = H.WebExperiments$_();
+ t1.waitingForAnimation = false;
+ $.scheduleFrameCallback = new H.initializeEngine_closure0(t1);
+ if ($.Keyboard__instance == null)
+ $.Keyboard__instance = H.Keyboard$_();
+ if ($.MouseCursor__instance == null)
+ $.MouseCursor__instance = new H.MouseCursor();
+ },
+ toMatrix32: function(matrix64) {
+ var matrix32 = new Float32Array(16);
+ matrix32[15] = matrix64[15];
+ matrix32[14] = matrix64[14];
+ matrix32[13] = matrix64[13];
+ matrix32[12] = matrix64[12];
+ matrix32[11] = matrix64[11];
+ matrix32[10] = matrix64[10];
+ matrix32[9] = matrix64[9];
+ matrix32[8] = matrix64[8];
+ matrix32[7] = matrix64[7];
+ matrix32[6] = matrix64[6];
+ matrix32[5] = matrix64[5];
+ matrix32[4] = matrix64[4];
+ matrix32[3] = matrix64[3];
+ matrix32[2] = matrix64[2];
+ matrix32[1] = matrix64[1];
+ matrix32[0] = matrix64[0];
+ return matrix32;
+ },
+ BitmapCanvas$: function(_bounds, density) {
+ var t10, t11,
+ t1 = W._ElementFactoryProvider_createElement_tag("flt-canvas", null),
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_Element),
+ t3 = H.EnginePlatformDispatcher_browserDevicePixelRatio(),
+ t4 = _bounds.left,
+ t5 = _bounds.right - t4,
+ t6 = H.BitmapCanvas__widthToPhysical(t5),
+ t7 = _bounds.top,
+ t8 = _bounds.bottom - t7,
+ t9 = H.BitmapCanvas__heightToPhysical(t8);
+ t5 = H.BitmapCanvas__widthToPhysical(t5);
+ t8 = H.BitmapCanvas__heightToPhysical(t8);
+ t10 = H.setRuntimeTypeInfo([], type$.JSArray__SaveStackEntry);
+ t11 = new H.Matrix40(new Float32Array(16));
+ t11.setIdentity$0();
+ t11 = new H._CanvasPool(t5, t8, density, t10, t11);
+ t3 = new H.BitmapCanvas(_bounds, t1, t11, t2, t6, t9, t3, density);
+ t9 = t1.style;
+ t9.position = "absolute";
+ t3._canvasPositionX = C.JSNumber_methods.floor$0(t4) - 1;
+ t3._canvasPositionY = C.JSNumber_methods.floor$0(t7) - 1;
+ t3._updateRootElementTransform$0();
+ t11._rootElement = type$.HtmlElement._as(t1);
+ t3._setupInitialTransform$0();
+ return t3;
+ },
+ BitmapCanvas__widthToPhysical: function(width) {
+ return C.JSNumber_methods.ceil$0((width + 1) * H.EnginePlatformDispatcher_browserDevicePixelRatio()) + 2;
+ },
+ BitmapCanvas__heightToPhysical: function(height) {
+ return C.JSNumber_methods.ceil$0((height + 1) * H.EnginePlatformDispatcher_browserDevicePixelRatio()) + 2;
+ },
+ _stringForBlendMode: function(blendMode) {
+ if (blendMode == null)
+ return null;
+ switch (blendMode) {
+ case C.BlendMode_3:
+ return "source-over";
+ case C.BlendMode_5:
+ return "source-in";
+ case C.BlendMode_7:
+ return "source-out";
+ case C.BlendMode_9:
+ return "source-atop";
+ case C.BlendMode_4:
+ return "destination-over";
+ case C.BlendMode_6:
+ return "destination-in";
+ case C.BlendMode_8:
+ return "destination-out";
+ case C.BlendMode_10:
+ return "destination-atop";
+ case C.BlendMode_12:
+ return "lighten";
+ case C.BlendMode_1:
+ return "copy";
+ case C.BlendMode_11:
+ return "xor";
+ case C.BlendMode_24:
+ case C.BlendMode_13:
+ return "multiply";
+ case C.BlendMode_14:
+ return "screen";
+ case C.BlendMode_15:
+ return "overlay";
+ case C.BlendMode_16:
+ return "darken";
+ case C.BlendMode_17:
+ return "lighten";
+ case C.BlendMode_18:
+ return "color-dodge";
+ case C.BlendMode_19:
+ return "color-burn";
+ case C.BlendMode_20:
+ return "hard-light";
+ case C.BlendMode_21:
+ return "soft-light";
+ case C.BlendMode_22:
+ return "difference";
+ case C.BlendMode_23:
+ return "exclusion";
+ case C.BlendMode_25:
+ return "hue";
+ case C.BlendMode_26:
+ return "saturation";
+ case C.BlendMode_27:
+ return "color";
+ case C.BlendMode_28:
+ return "luminosity";
+ default:
+ throw H.wrapException(P.UnimplementedError$("Flutter Web does not support the blend mode: " + blendMode.toString$0(0)));
+ }
+ },
+ _stringForStrokeCap: function(strokeCap) {
+ switch (strokeCap) {
+ case C.StrokeCap_0:
+ return "butt";
+ case C.StrokeCap_1:
+ return "round";
+ case C.StrokeCap_2:
+ default:
+ return "square";
+ }
+ },
+ _stringForStrokeJoin: function(strokeJoin) {
+ switch (strokeJoin) {
+ case C.StrokeJoin_1:
+ return "round";
+ case C.StrokeJoin_2:
+ return "bevel";
+ case C.StrokeJoin_0:
+ default:
+ return "miter";
+ }
+ },
+ _clipContent: function(clipStack, $content, offset, currentTransform) {
+ var root, curElement, clipIndex, entry, t2, newElement, t3, rect, newClipTransform, transformKind, clipOffsetX, clipOffsetY, newClipTransform0, t4, t5, value, borderRadius, t6, reverseTransformDiv,
+ _s8_ = "absolute",
+ _s16_ = "transform-origin",
+ _s9_ = "transform",
+ _s15_ = "transform-style",
+ t1 = type$.JSArray_Element,
+ clipDefs = H.setRuntimeTypeInfo([], t1),
+ len = clipStack.length;
+ for (root = null, curElement = null, clipIndex = 0; clipIndex < len; ++clipIndex, curElement = reverseTransformDiv) {
+ entry = clipStack[clipIndex];
+ t2 = document;
+ newElement = t2.createElement("div");
+ t3 = newElement.style;
+ t3.position = _s8_;
+ if (!$.___browserEngine_isSet) {
+ t3 = H._detectBrowserEngine();
+ if ($.___browserEngine_isSet)
+ H.throwExpression(H.LateError$fieldADI("_browserEngine"));
+ $.___browserEngine = t3;
+ $.___browserEngine_isSet = true;
+ }
+ t3 = $.___browserEngine;
+ if (t3 === C.BrowserEngine_1) {
+ t3 = newElement.style;
+ t3.zIndex = "0";
+ }
+ if (root == null)
+ root = newElement;
+ else {
+ t3 = $.$get$domRenderer();
+ curElement.toString;
+ t3.toString;
+ curElement.appendChild(newElement);
+ }
+ rect = entry.rect;
+ newClipTransform = entry.currentTransform;
+ t3 = newClipTransform.__engine$_m4storage;
+ transformKind = H.transformKindOf(t3);
+ if (rect != null) {
+ clipOffsetX = rect.left;
+ clipOffsetY = rect.top;
+ t3 = new Float32Array(16);
+ newClipTransform0 = new H.Matrix40(t3);
+ newClipTransform0.setFrom$1(newClipTransform);
+ newClipTransform0.translate$2(0, clipOffsetX, clipOffsetY);
+ t4 = newElement.style;
+ t4.overflow = "hidden";
+ t5 = H.S(rect.right - clipOffsetX) + "px";
+ t4.width = t5;
+ t5 = H.S(rect.bottom - clipOffsetY) + "px";
+ t4.height = t5;
+ t4 = newElement.style;
+ t4.toString;
+ t5 = C.CssStyleDeclaration_methods._browserPropertyName$1(t4, _s16_);
+ t4.setProperty(t5, "0 0 0", "");
+ value = H.float64ListToCssTransform(t3);
+ t3 = C.CssStyleDeclaration_methods._browserPropertyName$1(t4, _s9_);
+ t4.setProperty(t3, value, "");
+ newClipTransform = newClipTransform0;
+ } else {
+ t4 = entry.rrect;
+ if (t4 != null) {
+ borderRadius = H.S(t4.tlRadiusX) + "px " + H.S(t4.trRadiusX) + "px " + H.S(t4.brRadiusX) + "px " + H.S(t4.blRadiusX) + "px";
+ clipOffsetX = t4.left;
+ clipOffsetY = t4.top;
+ t3 = new Float32Array(16);
+ newClipTransform0 = new H.Matrix40(t3);
+ newClipTransform0.setFrom$1(newClipTransform);
+ newClipTransform0.translate$2(0, clipOffsetX, clipOffsetY);
+ t5 = newElement.style;
+ t5.toString;
+ t6 = C.CssStyleDeclaration_methods._browserPropertyName$1(t5, "border-radius");
+ t5.setProperty(t6, borderRadius, "");
+ t5.overflow = "hidden";
+ t6 = H.S(t4.right - clipOffsetX) + "px";
+ t5.width = t6;
+ t4 = H.S(t4.bottom - clipOffsetY) + "px";
+ t5.height = t4;
+ t4 = newElement.style;
+ t4.toString;
+ t5 = C.CssStyleDeclaration_methods._browserPropertyName$1(t4, _s16_);
+ t4.setProperty(t5, "0 0 0", "");
+ value = H.float64ListToCssTransform(t3);
+ t3 = C.CssStyleDeclaration_methods._browserPropertyName$1(t4, _s9_);
+ t4.setProperty(t3, value, "");
+ newClipTransform = newClipTransform0;
+ } else {
+ t4 = entry.path;
+ if (t4 != null) {
+ t5 = newElement.style;
+ value = H.float64ListToCssTransform(t3);
+ t5.toString;
+ t3 = C.CssStyleDeclaration_methods._browserPropertyName$1(t5, _s9_);
+ t5.setProperty(t3, value, "");
+ t3 = C.CssStyleDeclaration_methods._browserPropertyName$1(t5, _s16_);
+ t5.setProperty(t3, "0 0 0", "");
+ clipDefs.push(W.Element_Element$html(H.createSvgClipDef(newElement, t4), new H._NullTreeSanitizer(), null));
+ }
+ }
+ }
+ reverseTransformDiv = t2.createElement("div");
+ t2 = reverseTransformDiv.style;
+ t2.position = _s8_;
+ t2 = new Float32Array(16);
+ t3 = new H.Matrix40(t2);
+ t3.setFrom$1(newClipTransform);
+ t3.copyInverse$1(t3);
+ t3 = reverseTransformDiv.style;
+ t3.toString;
+ t4 = C.CssStyleDeclaration_methods._browserPropertyName$1(t3, _s16_);
+ t3.setProperty(t4, "0 0 0", "");
+ value = H.float64ListToCssTransform(t2);
+ t2 = C.CssStyleDeclaration_methods._browserPropertyName$1(t3, _s9_);
+ t3.setProperty(t2, value, "");
+ if (transformKind === C.TransformKind_2) {
+ t2 = newElement.style;
+ t2.toString;
+ t3 = C.CssStyleDeclaration_methods._browserPropertyName$1(t2, _s15_);
+ t2.setProperty(t3, "preserve-3d", "");
+ t2 = reverseTransformDiv.style;
+ t2.toString;
+ t3 = C.CssStyleDeclaration_methods._browserPropertyName$1(t2, _s15_);
+ t2.setProperty(t3, "preserve-3d", "");
+ }
+ newElement.appendChild(reverseTransformDiv);
+ }
+ t2 = root.style;
+ t2.position = _s8_;
+ t2 = $.$get$domRenderer();
+ curElement.toString;
+ t2.toString;
+ curElement.appendChild($content);
+ H.setElementTransform($content, H.transformWithOffset(currentTransform, offset).__engine$_m4storage);
+ t1 = H.setRuntimeTypeInfo([root], t1);
+ C.JSArray_methods.addAll$1(t1, clipDefs);
+ return t1;
+ },
+ _maskFilterToCanvasFilter: function(maskFilter) {
+ var t1, t2;
+ if (maskFilter != null) {
+ t1 = maskFilter._sigma;
+ t2 = $.$get$window();
+ return "blur(" + H.S(t1 * t2.get$devicePixelRatio(t2)) + "px)";
+ } else
+ return "none";
+ },
+ _browserEngine: function() {
+ if (!$.___browserEngine_isSet) {
+ var t1 = H._detectBrowserEngine();
+ if ($.___browserEngine_isSet)
+ throw H.wrapException(H.LateError$fieldADI("_browserEngine"));
+ $.___browserEngine = t1;
+ $.___browserEngine_isSet = true;
+ }
+ return $.___browserEngine;
+ },
+ browserEngine: function() {
+ if (!$.___browserEngine_isSet) {
+ var t1 = H._detectBrowserEngine();
+ if ($.___browserEngine_isSet)
+ H.throwExpression(H.LateError$fieldADI("_browserEngine"));
+ $.___browserEngine = t1;
+ $.___browserEngine_isSet = true;
+ }
+ t1 = $.___browserEngine;
+ return t1;
+ },
+ _detectBrowserEngine: function() {
+ var vendor = window.navigator.vendor,
+ agent = window.navigator.userAgent.toLowerCase();
+ if (vendor === "Google Inc.")
+ return C.BrowserEngine_0;
+ else if (vendor === "Apple Computer, Inc.")
+ return C.BrowserEngine_1;
+ else if (C.JSString_methods.contains$1(agent, "edge/"))
+ return C.BrowserEngine_3;
+ else if (C.JSString_methods.contains$1(agent, "Edg/"))
+ return C.BrowserEngine_0;
+ else if (C.JSString_methods.contains$1(agent, "trident/7.0"))
+ return C.BrowserEngine_4;
+ else if (vendor === "" && C.JSString_methods.contains$1(agent, "firefox"))
+ return C.BrowserEngine_2;
+ P.print("WARNING: failed to detect current browser engine.");
+ return C.BrowserEngine_5;
+ },
+ _operatingSystem: function() {
+ if (!$.___operatingSystem_isSet) {
+ var t1 = H._detectOperatingSystem();
+ if ($.___operatingSystem_isSet)
+ throw H.wrapException(H.LateError$fieldADI("_operatingSystem"));
+ $.___operatingSystem = t1;
+ $.___operatingSystem_isSet = true;
+ }
+ return $.___operatingSystem;
+ },
+ operatingSystem: function() {
+ if (!$.___operatingSystem_isSet) {
+ var t1 = H._detectOperatingSystem();
+ if ($.___operatingSystem_isSet)
+ H.throwExpression(H.LateError$fieldADI("_operatingSystem"));
+ $.___operatingSystem = t1;
+ $.___operatingSystem_isSet = true;
+ }
+ t1 = $.___operatingSystem;
+ return t1;
+ },
+ _detectOperatingSystem: function() {
+ var userAgent,
+ t1 = window.navigator.platform;
+ t1.toString;
+ userAgent = window.navigator.userAgent;
+ if (C.JSString_methods.startsWith$1(t1, "Mac"))
+ return C.OperatingSystem_4;
+ else if (C.JSString_methods.contains$1(t1.toLowerCase(), "iphone") || C.JSString_methods.contains$1(t1.toLowerCase(), "ipad") || C.JSString_methods.contains$1(t1.toLowerCase(), "ipod"))
+ return C.OperatingSystem_0;
+ else if (J.contains$1$asx(userAgent, "Android"))
+ return C.OperatingSystem_1;
+ else if (C.JSString_methods.startsWith$1(t1, "Linux"))
+ return C.OperatingSystem_2;
+ else if (C.JSString_methods.startsWith$1(t1, "Win"))
+ return C.OperatingSystem_3;
+ else
+ return C.OperatingSystem_5;
+ },
+ canvasKit: function() {
+ return $.__canvasKit_isSet ? $.__canvasKit : H.throwExpression(H.LateError$fieldNI("canvasKit"));
+ },
+ toSkMatrixFromFloat32: function(matrix4) {
+ var i, matrix4Index,
+ skMatrix = new Float32Array(9);
+ for (i = 0; i < 9; ++i) {
+ matrix4Index = C.List_yXZ[i];
+ if (matrix4Index < 16)
+ skMatrix[i] = matrix4[matrix4Index];
+ else
+ skMatrix[i] = 0;
+ }
+ return skMatrix;
+ },
+ toSkRect: function(rect) {
+ var skRect = new Float32Array(4);
+ skRect[0] = rect.left;
+ skRect[1] = rect.top;
+ skRect[2] = rect.right;
+ skRect[3] = rect.bottom;
+ return skRect;
+ },
+ fromSkRect: function(skRect) {
+ return new P.Rect(skRect[0], skRect[1], skRect[2], skRect[3]);
+ },
+ toSkRRect: function(rrect) {
+ var skRRect = new Float32Array(12);
+ skRRect[0] = rrect.left;
+ skRRect[1] = rrect.top;
+ skRRect[2] = rrect.right;
+ skRRect[3] = rrect.bottom;
+ skRRect[4] = rrect.tlRadiusX;
+ skRRect[5] = rrect.tlRadiusY;
+ skRRect[6] = rrect.trRadiusX;
+ skRRect[7] = rrect.trRadiusY;
+ skRRect[8] = rrect.brRadiusX;
+ skRRect[9] = rrect.brRadiusY;
+ skRRect[10] = rrect.blRadiusX;
+ skRRect[11] = rrect.blRadiusY;
+ return skRRect;
+ },
+ SkiaObjectCache$: function(maximumSize) {
+ return new H.SkiaObjectCache(maximumSize, new P.DoubleLinkedQueue(type$.DoubleLinkedQueue_SkiaObject_Object), P.LinkedHashMap_LinkedHashMap$_empty(type$.SkiaObject_Object, type$.DoubleLinkedQueueEntry_SkiaObject_Object));
+ },
+ SkiaObjects_registerCleanupCallback: function() {
+ if ($.SkiaObjects__addedCleanupCallback)
+ return;
+ $.$get$EnginePlatformDispatcher__instance().get$rasterizer()._postFrameCallbacks.push(H._engine_SkiaObjects_postFrameCleanUp$closure());
+ $.SkiaObjects__addedCleanupCallback = true;
+ },
+ SkiaObjects_markCacheForResize: function(cache) {
+ H.SkiaObjects_registerCleanupCallback();
+ if (C.JSArray_methods.contains$1($.SkiaObjects_cachesToResize, cache))
+ return;
+ $.SkiaObjects_cachesToResize.push(cache);
+ },
+ SkiaObjects_postFrameCleanUp: function() {
+ var i, object;
+ if ($.SkiaObjects_resurrectableObjects.length === 0 && $.SkiaObjects_cachesToResize.length === 0)
+ return;
+ for (i = 0; i < $.SkiaObjects_resurrectableObjects.length; ++i) {
+ object = $.SkiaObjects_resurrectableObjects[i];
+ object.delete$0(0);
+ object.rawSkiaObject = null;
+ }
+ C.JSArray_methods.set$length($.SkiaObjects_resurrectableObjects, 0);
+ for (i = 0; i < $.SkiaObjects_cachesToResize.length; ++i)
+ $.SkiaObjects_cachesToResize[i].resize$0(0);
+ C.JSArray_methods.set$length($.SkiaObjects_cachesToResize, 0);
+ },
+ makeFreshSkColor: function(color) {
+ var result = new Float32Array(4);
+ result[0] = (color.get$value(color) >>> 16 & 255) / 255;
+ result[1] = (color.get$value(color) >>> 8 & 255) / 255;
+ result[2] = (color.get$value(color) & 255) / 255;
+ result[3] = (color.get$value(color) >>> 24 & 255) / 255;
+ return result;
+ },
+ drawSkShadow: function(skCanvas, path, color, elevation, transparentOccluder, devicePixelRatio) {
+ var t3, t4,
+ flags = transparentOccluder ? 1 : 0,
+ t1 = path._skPath,
+ bounds = H.fromSkRect(J.getBounds$0$x(t1)),
+ inAmbient = P.Color$fromARGB(C.JSNumber_methods.round$0((color.get$value(color) >>> 24 & 255) * 0.039), color.get$value(color) >>> 16 & 255, color.get$value(color) >>> 8 & 255, color.get$value(color) & 255),
+ inSpot = P.Color$fromARGB(C.JSNumber_methods.round$0((color.get$value(color) >>> 24 & 255) * 0.25), color.get$value(color) >>> 16 & 255, color.get$value(color) >>> 8 & 255, color.get$value(color) & 255),
+ inTonalColors = {ambient: H.makeFreshSkColor(inAmbient), spot: H.makeFreshSkColor(inSpot)},
+ tonalColors = J.computeTonalColors$1$x($.__canvasKit_isSet ? $.__canvasKit : H.throwExpression(H.LateError$fieldNI("canvasKit")), inTonalColors),
+ t2 = new Float32Array(3);
+ t2[2] = devicePixelRatio * elevation;
+ t3 = new Float32Array(3);
+ t3[0] = (bounds.left + bounds.right) / 2;
+ t3[1] = bounds.top - 600;
+ t3[2] = devicePixelRatio * 600;
+ t4 = J.getInterceptor$x(tonalColors);
+ J.drawShadow$7$x(skCanvas, t1, t2, t3, devicePixelRatio * 800, t4.get$ambient(tonalColors), t4.get$spot(tonalColors), flags);
+ },
+ PasteFromClipboardStrategy_PasteFromClipboardStrategy: function() {
+ var t1 = H._browserEngine();
+ return t1 === C.BrowserEngine_2 || window.navigator.clipboard == null ? new H.ExecCommandPasteStrategy() : new H.ClipboardAPIPasteStrategy();
+ },
+ _buildDrawRectElement: function(rect, paint, tagName, transform) {
+ var t1, t2, left, right, $top, bottom, effectiveTransform, translated, style, cssColor,
+ rectangle = type$.HtmlElement._as($.$get$domRenderer().createElement$1(0, tagName)),
+ isStroke = paint.style === C.PaintingStyle_1,
+ strokeWidth = paint.strokeWidth;
+ if (strokeWidth == null)
+ strokeWidth = 0;
+ t1 = rect.left;
+ t2 = rect.right;
+ left = Math.min(H.checkNum(t1), H.checkNum(t2));
+ right = Math.max(H.checkNum(t1), H.checkNum(t2));
+ t2 = rect.top;
+ t1 = rect.bottom;
+ $top = Math.min(H.checkNum(t2), H.checkNum(t1));
+ bottom = Math.max(H.checkNum(t2), H.checkNum(t1));
+ if (transform.isIdentity$0(0))
+ if (isStroke) {
+ t1 = strokeWidth / 2;
+ effectiveTransform = "translate(" + H.S(left - t1) + "px, " + H.S($top - t1) + "px)";
+ } else
+ effectiveTransform = "translate(" + H.S(left) + "px, " + H.S($top) + "px)";
+ else {
+ t1 = new Float32Array(16);
+ translated = new H.Matrix40(t1);
+ translated.setFrom$1(transform);
+ if (isStroke) {
+ t2 = strokeWidth / 2;
+ translated.translate$2(0, left - t2, $top - t2);
+ } else
+ translated.translate$2(0, left, $top);
+ effectiveTransform = H.float64ListToCssTransform(t1);
+ }
+ style = rectangle.style;
+ style.position = "absolute";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "transform-origin"), "0 0 0", "");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "transform"), effectiveTransform, "");
+ t1 = paint.color;
+ if (t1 == null)
+ cssColor = "#000000";
+ else {
+ t1 = H.colorToCssString(t1);
+ t1.toString;
+ cssColor = t1;
+ }
+ t1 = paint.maskFilter;
+ if (t1 != null) {
+ t1 = "blur(" + H.S(t1._sigma) + "px)";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "filter"), t1, "");
+ }
+ t1 = right - left;
+ if (isStroke) {
+ t1 = H.S(t1 - strokeWidth) + "px";
+ style.width = t1;
+ t1 = H.S(bottom - $top - strokeWidth) + "px";
+ style.height = t1;
+ t1 = H.S(strokeWidth) + "px solid " + cssColor;
+ style.border = t1;
+ } else {
+ t1 = H.S(t1) + "px";
+ style.width = t1;
+ t1 = H.S(bottom - $top) + "px";
+ style.height = t1;
+ style.backgroundColor = cssColor;
+ }
+ return rectangle;
+ },
+ _applyRRectBorderRadius: function(style, rrect) {
+ var t3, t4,
+ t1 = rrect.tlRadiusX,
+ t2 = rrect.trRadiusX;
+ if (t1 === t2) {
+ t3 = rrect.blRadiusX;
+ if (t1 === t3) {
+ t4 = rrect.brRadiusX;
+ t3 = t1 === t4 && t1 === rrect.tlRadiusY && t2 === rrect.trRadiusY && t3 === rrect.blRadiusY && t4 === rrect.brRadiusY;
+ } else
+ t3 = false;
+ } else
+ t3 = false;
+ if (t3) {
+ t1 = C.JSNumber_methods.toStringAsFixed$1(rrect.blRadiusX, 3) + "px";
+ style.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "border-radius"), t1, "");
+ return;
+ }
+ t1 = C.JSNumber_methods.toStringAsFixed$1(t1, 3) + "px " + C.JSNumber_methods.toStringAsFixed$1(rrect.tlRadiusY, 3) + "px";
+ style.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "border-top-left-radius"), t1, "");
+ t2 = C.JSNumber_methods.toStringAsFixed$1(t2, 3) + "px " + C.JSNumber_methods.toStringAsFixed$1(rrect.trRadiusY, 3) + "px";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "border-top-right-radius"), t2, "");
+ t2 = C.JSNumber_methods.toStringAsFixed$1(rrect.blRadiusX, 3) + "px " + C.JSNumber_methods.toStringAsFixed$1(rrect.blRadiusY, 3) + "px";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "border-bottom-left-radius"), t2, "");
+ t2 = C.JSNumber_methods.toStringAsFixed$1(rrect.brRadiusX, 3) + "px " + C.JSNumber_methods.toStringAsFixed$1(rrect.brRadiusY, 3) + "px";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "border-bottom-right-radius"), t2, "");
+ },
+ DomRenderer$: function() {
+ var t3, t4, t5,
+ t1 = document,
+ t2 = t1.body;
+ t2.toString;
+ t2 = new H.DomRenderer(t2);
+ t2.reset$0(0);
+ t3 = $.TextMeasurementService_rulerManager;
+ if (t3 != null)
+ J.remove$0$ax(t3._rulerHost);
+ $.TextMeasurementService_rulerManager = null;
+ t3 = W._ElementFactoryProvider_createElement_tag("flt-ruler-host", null);
+ t4 = new H.RulerManager(10, t3, P.LinkedHashMap_LinkedHashMap$_empty(type$.ParagraphGeometricStyle, type$.ParagraphRuler));
+ t5 = t3.style;
+ t5.position = "fixed";
+ t5.visibility = "hidden";
+ t5.overflow = "hidden";
+ t5.top = "0";
+ t5.left = "0";
+ t5.width = "0";
+ t5.height = "0";
+ t1.body.appendChild(t3);
+ $._hotRestartListeners.push(t4.get$dispose(t4));
+ $.TextMeasurementService_rulerManager = t4;
+ return t2;
+ },
+ DomRenderer_setElementStyle: function(element, $name, value) {
+ var t1;
+ if (value == null)
+ element.style.removeProperty($name);
+ else {
+ t1 = element.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, $name), value, null);
+ }
+ },
+ DomRenderer_ellipse: function(context, centerX, centerY, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {
+ var t1 = $.DomRenderer__ellipseFeatureDetected;
+ if (t1 == null ? $.DomRenderer__ellipseFeatureDetected = context.ellipse != null : t1)
+ context.ellipse(centerX, centerY, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise);
+ else {
+ context.save();
+ context.translate(centerX, centerY);
+ context.rotate(rotation);
+ context.scale(radiusX, radiusY);
+ context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);
+ context.restore();
+ }
+ },
+ DomRenderer__deviceOrientationToLockType: function(deviceOrientation) {
+ switch (deviceOrientation) {
+ case "DeviceOrientation.portraitUp":
+ return "portrait-primary";
+ case "DeviceOrientation.landscapeLeft":
+ return "portrait-secondary";
+ case "DeviceOrientation.portraitDown":
+ return "landscape-primary";
+ case "DeviceOrientation.landscapeRight":
+ return "landscape-secondary";
+ default:
+ return null;
+ }
+ },
+ transformWithOffset: function(transform, offset) {
+ var effectiveTransform;
+ if (offset.$eq(0, C.Offset_0_0))
+ return transform;
+ effectiveTransform = new H.Matrix40(new Float32Array(16));
+ effectiveTransform.setFrom$1(transform);
+ effectiveTransform.translate$3(0, offset._dx, offset._dy, 0);
+ return effectiveTransform;
+ },
+ _drawParagraphElement: function(paragraph, offset, transform) {
+ var style, t1, t2,
+ paragraphElement = type$.HtmlElement._as(paragraph._paragraphElement.cloneNode(true)),
+ paragraphStyle = paragraphElement.style;
+ paragraphStyle.position = "absolute";
+ paragraphStyle.whiteSpace = "pre-wrap";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(paragraphStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(paragraphStyle, "overflow-wrap"), "break-word", "");
+ paragraphStyle.overflow = "hidden";
+ style = paragraph._geometricStyle;
+ if (style.ellipsis != null) {
+ t1 = style.maxLines;
+ t1 = t1 == null || t1 === 1;
+ } else
+ t1 = false;
+ if (t1) {
+ paragraphStyle.whiteSpace = "pre";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(paragraphStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(paragraphStyle, "text-overflow"), "ellipsis", "");
+ }
+ t1 = paragraphElement.style;
+ t2 = H.S(paragraph.get$height(paragraph)) + "px";
+ t1.height = t2;
+ t2 = H.S(paragraph.get$width(paragraph)) + "px";
+ t1.width = t2;
+ if (transform != null)
+ H.setElementTransform(paragraphElement, H.transformWithOffset(transform, offset).__engine$_m4storage);
+ return paragraphElement;
+ },
+ createSvgClipDef: function(element, clipPath) {
+ var t3,
+ pathBounds = clipPath.getBounds$0(0),
+ t1 = pathBounds.right,
+ t2 = pathBounds.bottom,
+ svgClipPath = H._pathToSvgClipPath(clipPath, 0, 0, 1 / t1, 1 / t2);
+ H.DomRenderer_setElementStyle(element, "clip-path", "url(#svgClip" + $._clipIdCounter + ")");
+ H.DomRenderer_setElementStyle(element, "-webkit-clip-path", "url(#svgClip" + $._clipIdCounter + ")");
+ t3 = element.style;
+ t1 = H.S(t1) + "px";
+ t3.width = t1;
+ t1 = H.S(t2) + "px";
+ t3.height = t1;
+ return svgClipPath;
+ },
+ Conic__subdivide: function(src, level, pointList) {
+ var dst, t1, t2, startY, endY, midY, t3;
+ if (0 === level) {
+ pointList.push(new P.Offset(src.p1x, src.p1y));
+ pointList.push(new P.Offset(src.p2x, src.p2y));
+ return;
+ }
+ dst = new H._ConicPair();
+ src._chop$1(dst);
+ t1 = dst.first;
+ t1.toString;
+ t2 = dst.second;
+ t2.toString;
+ startY = src.p0y;
+ endY = src.p2y;
+ if (H.SPath_between(startY, src.p1y, endY)) {
+ midY = t1.p2y;
+ if (!H.SPath_between(startY, midY, endY))
+ t3 = t1.p2y = t2.p0y = Math.abs(midY - startY) < Math.abs(midY - endY) ? startY : endY;
+ else
+ t3 = midY;
+ if (!H.SPath_between(startY, t1.p1y, t3))
+ t1.p1y = startY;
+ if (!H.SPath_between(t2.p0y, t2.p1y, endY))
+ t2.p1y = endY;
+ }
+ --level;
+ H.Conic__subdivide(t1, level, pointList);
+ H.Conic__subdivide(t2, level, pointList);
+ },
+ _conicEvalNumerator: function(p0, p1, p2, w, t) {
+ var src2w = p1 * w;
+ return ((p2 - 2 * src2w + p0) * t + 2 * (src2w - p0)) * t + p0;
+ },
+ _conicEvalDenominator: function(w, t) {
+ var $B = 2 * (w - 1);
+ return (-$B * t + $B) * t + 1;
+ },
+ _chopCubicAtYExtrema: function(points, dest) {
+ var t1, roots, t2, t3, rootCount,
+ y0 = points[1],
+ y1 = points[3],
+ y2 = points[5],
+ _quadRoots = new H._QuadRoots();
+ _quadRoots.findRoots$3(points[7] - y0 + 3 * (y1 - y2), 2 * (y0 - y1 - y1 + y2), y1 - y0);
+ t1 = _quadRoots.root0;
+ if (t1 == null)
+ roots = H.setRuntimeTypeInfo([], type$.JSArray_double);
+ else {
+ t2 = _quadRoots.root1;
+ t3 = type$.JSArray_double;
+ roots = t2 == null ? H.setRuntimeTypeInfo([t1], t3) : H.setRuntimeTypeInfo([t1, t2], t3);
+ }
+ if (roots.length === 0)
+ return 0;
+ H._chopCubicAt(roots, points, dest);
+ rootCount = roots.length;
+ if (rootCount > 0) {
+ t1 = dest[7];
+ dest[9] = t1;
+ dest[5] = t1;
+ if (rootCount === 2) {
+ t1 = dest[13];
+ dest[15] = t1;
+ dest[11] = t1;
+ }
+ }
+ return rootCount;
+ },
+ _chopCubicAt: function(tValues, points, outPts) {
+ var i, t, t1, bufferPos, p3y, p0x, t2, p0y, p1x, p1y, p2x, p2y, bufferPos0, p3x, t3, ab1x, ab1y, bc1x, bc1y, cd1x, cd1y, abc1x, abc1y, bcd1x, bcd1y, outIndex, outIndex0, i0,
+ rootCount = tValues.length;
+ if (0 === rootCount)
+ for (i = 0; i < 8; ++i)
+ outPts[i] = points[i];
+ else {
+ t = tValues[0];
+ for (t1 = rootCount - 1, bufferPos = 0, i = 0; i < rootCount; i = i0, bufferPos = bufferPos0) {
+ t.toString;
+ p3y = points[bufferPos + 7];
+ p0x = points[bufferPos];
+ t2 = bufferPos + 1;
+ p0y = points[t2];
+ p1x = points[bufferPos + 2];
+ p1y = points[bufferPos + 3];
+ p2x = points[bufferPos + 4];
+ p2y = points[bufferPos + 5];
+ bufferPos0 = bufferPos + 6;
+ p3x = points[bufferPos0];
+ t3 = 1 - t;
+ ab1x = p0x * t3 + p1x * t;
+ ab1y = p0y * t3 + p1y * t;
+ bc1x = p1x * t3 + p2x * t;
+ bc1y = p1y * t3 + p2y * t;
+ cd1x = p2x * t3 + p3x * t;
+ cd1y = p2y * t3 + p3y * t;
+ abc1x = ab1x * t3 + bc1x * t;
+ abc1y = ab1y * t3 + bc1y * t;
+ bcd1x = bc1x * t3 + cd1x * t;
+ bcd1y = bc1y * t3 + cd1y * t;
+ outPts[bufferPos] = p0x;
+ outIndex = t2 + 1;
+ outPts[t2] = p0y;
+ outIndex0 = outIndex + 1;
+ outPts[outIndex] = ab1x;
+ outIndex = outIndex0 + 1;
+ outPts[outIndex0] = ab1y;
+ outIndex0 = outIndex + 1;
+ outPts[outIndex] = abc1x;
+ outIndex = outIndex0 + 1;
+ outPts[outIndex0] = abc1y;
+ outIndex0 = outIndex + 1;
+ outPts[outIndex] = abc1x * t3 + bcd1x * t;
+ outIndex = outIndex0 + 1;
+ outPts[outIndex0] = abc1y * t3 + bcd1y * t;
+ outIndex0 = outIndex + 1;
+ outPts[outIndex] = bcd1x;
+ outIndex = outIndex0 + 1;
+ outPts[outIndex0] = bcd1y;
+ outIndex0 = outIndex + 1;
+ outPts[outIndex] = cd1x;
+ outIndex = outIndex0 + 1;
+ outPts[outIndex0] = cd1y;
+ outPts[outIndex] = p3x;
+ outPts[outIndex + 1] = p3y;
+ if (i === t1)
+ break;
+ i0 = i + 1;
+ t2 = tValues[i0];
+ t3 = tValues[i];
+ t = H._validUnitDivide(t2 - t3, 1 - t3);
+ if (t == null) {
+ t1 = points[bufferPos0 + 3];
+ outPts[bufferPos0 + 6] = t1;
+ outPts[bufferPos0 + 5] = t1;
+ outPts[bufferPos0 + 4] = t1;
+ break;
+ }
+ }
+ }
+ },
+ _chopMonoAtY: function(_buffer, bufferStartPos, y) {
+ var tNeg, tPos, t1, t2, t3, tMid, y01, y12, y012, y0123,
+ ycrv0 = _buffer[1 + bufferStartPos] - y,
+ ycrv1 = _buffer[3 + bufferStartPos] - y,
+ ycrv2 = _buffer[5 + bufferStartPos] - y,
+ ycrv3 = _buffer[7 + bufferStartPos] - y;
+ if (ycrv0 < 0) {
+ if (ycrv3 < 0)
+ return null;
+ tNeg = 0;
+ tPos = 1;
+ } else {
+ if (!(ycrv0 > 0))
+ return 0;
+ tNeg = 1;
+ tPos = 0;
+ }
+ t1 = ycrv1 - ycrv0;
+ t2 = ycrv2 - ycrv1;
+ t3 = ycrv3 - ycrv2;
+ do {
+ tMid = (tPos + tNeg) / 2;
+ y01 = ycrv0 + t1 * tMid;
+ y12 = ycrv1 + t2 * tMid;
+ y012 = y01 + (y12 - y01) * tMid;
+ y0123 = y012 + (y12 + (ycrv2 + t3 * tMid - y12) * tMid - y012) * tMid;
+ if (y0123 === 0)
+ return tMid;
+ if (y0123 < 0)
+ tNeg = tMid;
+ else
+ tPos = tMid;
+ } while (Math.abs(tPos - tNeg) > 0.0000152587890625);
+ return (tNeg + tPos) / 2;
+ },
+ _evalCubicPts: function(c0, c1, c2, c3, t) {
+ return (((c3 + 3 * (c1 - c2) - c0) * t + 3 * (c2 - c1 - c1 + c0)) * t + 3 * (c1 - c0)) * t + c0;
+ },
+ SurfacePath$: function() {
+ var t1 = new H.SurfacePath(H.PathRef$(), C.PathFillType_0);
+ t1._resetFields$0();
+ return t1;
+ },
+ _computeMinScale: function(radius1, radius2, limit, scale) {
+ var totalRadius = radius1 + radius2;
+ if (totalRadius <= limit)
+ return scale;
+ return Math.min(limit / totalRadius, scale);
+ },
+ _SkQuadCoefficients$: function(x0, y0, x1, y1, x2, y2) {
+ return new H._SkQuadCoefficients(x2 - 2 * x1 + x0, y2 - 2 * y1 + y0, 2 * (x1 - x0), 2 * (y1 - y0), x0, y0);
+ },
+ PathRef$: function() {
+ var t1 = new Float32Array(16);
+ t1 = new H.PathRef(t1, new Uint8Array(8));
+ t1._fVerbsCapacity = t1._fPointsCapacity = 8;
+ t1.fRRectOrOvalStartIdx = 172;
+ return t1;
+ },
+ PathRef__fPointsFromSource: function(source, offsetX, offsetY) {
+ var len, i, t1,
+ sourceLength = source._fPointsLength,
+ sourceCapacity = source._fPointsCapacity,
+ dest = new Float32Array(sourceCapacity * 2),
+ sourcePoints = source._fPoints;
+ for (len = sourceLength * 2, i = 0; i < len; i += 2) {
+ dest[i] = sourcePoints[i] + offsetX;
+ t1 = i + 1;
+ dest[t1] = sourcePoints[t1] + offsetY;
+ }
+ return dest;
+ },
+ pathToSvg: function(path, sb, offsetX, offsetY) {
+ var outPts, verb, w, points, len, i, t2, t3,
+ t1 = path.pathRef,
+ iter = new H.PathRefIterator(t1);
+ iter.PathRefIterator$1(t1);
+ outPts = new Float32Array(8);
+ for (; verb = iter.next$1(0, outPts), verb !== 6;)
+ switch (verb) {
+ case 0:
+ sb._contents += "M " + H.S(outPts[0] + offsetX) + " " + H.S(outPts[1] + offsetY);
+ break;
+ case 1:
+ sb._contents += "L " + H.S(outPts[2] + offsetX) + " " + H.S(outPts[3] + offsetY);
+ break;
+ case 4:
+ sb._contents += "C " + H.S(outPts[2] + offsetX) + " " + H.S(outPts[3] + offsetY) + " " + H.S(outPts[4] + offsetX) + " " + H.S(outPts[5] + offsetY) + " " + H.S(outPts[6] + offsetX) + " " + H.S(outPts[7] + offsetY);
+ break;
+ case 2:
+ sb._contents += "Q " + H.S(outPts[2] + offsetX) + " " + H.S(outPts[3] + offsetY) + " " + H.S(outPts[4] + offsetX) + " " + H.S(outPts[5] + offsetY);
+ break;
+ case 3:
+ w = t1._conicWeights[iter._conicWeightIndex];
+ points = new H.Conic(outPts[0], outPts[1], outPts[2], outPts[3], outPts[4], outPts[5], w).toQuads$0();
+ len = points.length;
+ for (i = 1; i < len; i += 2) {
+ t2 = points[i];
+ t3 = points[i + 1];
+ sb._contents += "Q " + H.S(t2._dx + offsetX) + " " + H.S(t2._dy + offsetY) + " " + H.S(t3._dx + offsetX) + " " + H.S(t3._dy + offsetY);
+ }
+ break;
+ case 5:
+ sb._contents += "Z";
+ break;
+ default:
+ throw H.wrapException(P.UnimplementedError$("Unknown path verb " + verb));
+ }
+ },
+ SPath_between: function(a, b, c) {
+ return (a - b) * (c - b) <= 0;
+ },
+ SPath_scalarSignedAsInt: function(x) {
+ var t1;
+ if (x < 0)
+ t1 = -1;
+ else
+ t1 = x > 0 ? 1 : 0;
+ return t1;
+ },
+ _validUnitDivide: function(numer, denom) {
+ var r;
+ if (numer < 0) {
+ numer = -numer;
+ denom = -denom;
+ }
+ if (denom === 0 || numer === 0 || numer >= denom)
+ return null;
+ r = numer / denom;
+ if (isNaN(r))
+ return null;
+ if (r === 0)
+ return null;
+ return r;
+ },
+ _isRRectOval: function(rrect) {
+ var t3, t4,
+ t1 = rrect.tlRadiusX,
+ t2 = rrect.trRadiusX;
+ if (t1 + t2 !== rrect.right - rrect.left)
+ return false;
+ t3 = rrect.tlRadiusY;
+ t4 = rrect.trRadiusY;
+ if (t3 + t4 !== rrect.bottom - rrect.top)
+ return false;
+ if (t1 !== rrect.blRadiusX || t2 !== rrect.brRadiusX || t3 !== rrect.blRadiusY || t4 !== rrect.brRadiusY)
+ return false;
+ return true;
+ },
+ PathWinding__checkOnCurve: function(x, y, startX, startY, endX, endY) {
+ if (startY == endY)
+ return H.SPath_between(startX, x, endX) && x != endX;
+ else
+ return x == startX && y == startY;
+ },
+ PathWinding__chopQuadAtExtrema: function(buffer) {
+ var p01x, p01y, p12x, p12y,
+ x0 = buffer[0],
+ y0 = buffer[1],
+ x1 = buffer[2],
+ y1 = buffer[3],
+ x2 = buffer[4],
+ y2 = buffer[5],
+ t1 = y0 - y1,
+ tValueAtExtrema = H._validUnitDivide(t1, t1 - y1 + y2);
+ if (tValueAtExtrema != null) {
+ p01x = x0 + tValueAtExtrema * (x1 - x0);
+ p01y = y0 + tValueAtExtrema * (y1 - y0);
+ p12x = x1 + tValueAtExtrema * (x2 - x1);
+ p12y = y1 + tValueAtExtrema * (y2 - y1);
+ buffer[2] = p01x;
+ buffer[3] = p01y;
+ buffer[4] = p01x + tValueAtExtrema * (p12x - p01x);
+ buffer[5] = p01y + tValueAtExtrema * (p12y - p01y);
+ buffer[6] = p12x;
+ buffer[7] = p12y;
+ buffer[8] = x2;
+ buffer[9] = y2;
+ return 1;
+ }
+ buffer[3] = Math.abs(t1) < Math.abs(y1 - y2) ? y0 : y2;
+ return 0;
+ },
+ PathWinding__isQuadMonotonic: function(quad) {
+ var y0 = quad[1],
+ y1 = quad[3],
+ y2 = quad[5];
+ if (y0 === y1)
+ return true;
+ if (y0 < y1)
+ return y1 <= y2;
+ else
+ return y1 >= y2;
+ },
+ PathIterator$: function(pathRef, forceClose) {
+ var t1 = new H.PathIterator(pathRef, true, pathRef._fVerbsLength);
+ if (pathRef.fBoundsIsDirty)
+ pathRef._computeBounds$0();
+ if (!pathRef.fIsFinite)
+ t1._verbIndex = pathRef._fVerbsLength;
+ return t1;
+ },
+ tangentLine: function(pts, x, y, tangents) {
+ var x0, x1, dx, dy,
+ y0 = pts[1],
+ y1 = pts[3];
+ if (!H.SPath_between(y0, y, y1))
+ return;
+ x0 = pts[0];
+ x1 = pts[2];
+ if (!H.SPath_between(x0, x, x1))
+ return;
+ dx = x1 - x0;
+ dy = y1 - y0;
+ if (!(Math.abs((x - x0) * dy - dx * (y - y0)) < 0.000244140625))
+ return;
+ tangents.push(new P.Offset(dx, dy));
+ },
+ tangentQuad: function(pts, x, y, tangents) {
+ var x0, x1, x2, roots, n, $A, $B, index, t1, t,
+ y0 = pts[1],
+ y1 = pts[3],
+ y2 = pts[5];
+ if (!H.SPath_between(y0, y, y1) && !H.SPath_between(y1, y, y2))
+ return;
+ x0 = pts[0];
+ x1 = pts[2];
+ x2 = pts[4];
+ if (!H.SPath_between(x0, x, x1) && !H.SPath_between(x1, x, x2))
+ return;
+ roots = new H._QuadRoots();
+ n = roots.findRoots$3(y0 - 2 * y1 + y2, 2 * (y1 - y0), y0 - y);
+ for ($A = x2 - 2 * x1 + x0, $B = 2 * (x1 - x0), index = 0; index < n; ++index) {
+ if (index === 0) {
+ t1 = roots.root0;
+ t1.toString;
+ t = t1;
+ } else {
+ t1 = roots.root1;
+ t1.toString;
+ t = t1;
+ }
+ if (!(Math.abs(x - (($A * t + $B) * t + x0)) < 0.000244140625))
+ continue;
+ tangents.push(H._evalQuadTangentAt(x0, y0, x1, y1, x2, y2, t));
+ }
+ },
+ _evalQuadTangentAt: function(x0, y0, x1, y1, x2, y2, t) {
+ var t1, bx, by;
+ if (!(t === 0 && x0 === x1 && y0 === y1))
+ t1 = t === 1 && x1 === x2 && y1 === y2;
+ else
+ t1 = true;
+ if (t1)
+ return new P.Offset(x2 - x0, y2 - y0);
+ bx = x1 - x0;
+ by = y1 - y0;
+ return new P.Offset(((x2 - x1 - bx) * t + bx) * 2, ((y2 - y1 - by) * t + by) * 2);
+ },
+ tangentConic: function(pts, x, y, weight, tangents) {
+ var x0, x1, x2, $B, quadRoots, n, src2w, $A, B0, A0, index, t1, t,
+ y0 = pts[1],
+ y1 = pts[3],
+ y2 = pts[5];
+ if (!H.SPath_between(y0, y, y1) && !H.SPath_between(y1, y, y2))
+ return;
+ x0 = pts[0];
+ x1 = pts[2];
+ x2 = pts[4];
+ if (!H.SPath_between(x0, x, x1) && !H.SPath_between(x1, x, x2))
+ return;
+ $B = y1 * weight - y * weight + y;
+ quadRoots = new H._QuadRoots();
+ n = quadRoots.findRoots$3(y2 + (y0 - 2 * $B), 2 * ($B - y0), y0 - y);
+ for (src2w = x1 * weight, $A = x2 - 2 * src2w + x0, $B = 2 * (src2w - x0), B0 = 2 * (weight - 1), A0 = -B0, index = 0; index < n; ++index) {
+ if (index === 0) {
+ t1 = quadRoots.root0;
+ t1.toString;
+ t = t1;
+ } else {
+ t1 = quadRoots.root1;
+ t1.toString;
+ t = t1;
+ }
+ if (!(Math.abs(x - (($A * t + $B) * t + x0) / ((A0 * t + B0) * t + 1)) < 0.000244140625))
+ continue;
+ tangents.push(new H.Conic(x0, y0, x1, y1, x2, y2, weight).evalTangentAt$1(t));
+ }
+ },
+ tangentCubic: function(pts, x, y, tangents) {
+ var x0, x1, x2, x3, dst, n, i, bufferPos, t,
+ y3 = pts[7],
+ y0 = pts[1],
+ y1 = pts[3],
+ y2 = pts[5];
+ if (!H.SPath_between(y0, y, y1) && !H.SPath_between(y1, y, y2) && !H.SPath_between(y2, y, y3))
+ return;
+ x0 = pts[0];
+ x1 = pts[2];
+ x2 = pts[4];
+ x3 = pts[6];
+ if (!H.SPath_between(x0, x, x1) && !H.SPath_between(x1, x, x2) && !H.SPath_between(x2, x, x3))
+ return;
+ dst = new Float32Array(20);
+ n = H._chopCubicAtYExtrema(pts, dst);
+ for (i = 0; i <= n; ++i) {
+ bufferPos = i * 6;
+ t = H._chopMonoAtY(dst, bufferPos, y);
+ if (t == null)
+ continue;
+ if (!(Math.abs(x - H._evalCubicPts(dst[bufferPos], dst[bufferPos + 2], dst[bufferPos + 4], dst[bufferPos + 6], t)) < 0.000244140625))
+ continue;
+ tangents.push(H._evalCubicTangentAt(dst, bufferPos, t));
+ }
+ },
+ _evalCubicTangentAt: function(points, bufferPos, t) {
+ var t2, dx, dy, coeff,
+ y3 = points[7 + bufferPos],
+ y0 = points[1 + bufferPos],
+ y1 = points[3 + bufferPos],
+ y2 = points[5 + bufferPos],
+ x0 = points[bufferPos],
+ x1 = points[2 + bufferPos],
+ x2 = points[4 + bufferPos],
+ x3 = points[6 + bufferPos],
+ t1 = t === 0;
+ if (!(t1 && x0 === x1 && y0 === y1))
+ t2 = t === 1 && x2 === x3 && y2 === y3;
+ else
+ t2 = true;
+ if (t2) {
+ if (t1) {
+ dx = x2 - x0;
+ dy = y2 - y0;
+ } else {
+ dx = x3 - x1;
+ dy = y3 - y1;
+ }
+ if (dx === 0 && dy === 0) {
+ dx = x3 - x0;
+ dy = y3 - y0;
+ }
+ return new P.Offset(dx, dy);
+ } else {
+ coeff = H._SkQuadCoefficients$(x3 + 3 * (x1 - x2) - x0, y3 + 3 * (y1 - y2) - y0, 2 * (x2 - 2 * x1 + x0), 2 * (y2 - 2 * y1 + y0), x1 - x0, y1 - y0);
+ return new P.Offset(coeff.evalX$1(t), coeff.evalY$1(t));
+ }
+ },
+ _reduceCanvasMemoryUsage: function() {
+ var i,
+ canvasCount = $._recycledCanvases.length;
+ for (i = 0; i < canvasCount; ++i)
+ $._recycledCanvases[i]._canvasPool.dispose$0(0);
+ C.JSArray_methods.set$length($._recycledCanvases, 0);
+ },
+ _recycleCanvas: function(canvas) {
+ if (canvas instanceof H.BitmapCanvas) {
+ canvas._elementCache = null;
+ if (canvas.__engine$_devicePixelRatio === H.EnginePlatformDispatcher_browserDevicePixelRatio()) {
+ $._recycledCanvases.push(canvas);
+ if ($._recycledCanvases.length > 30)
+ C.JSArray_methods.removeAt$1($._recycledCanvases, 0)._canvasPool.dispose$0(0);
+ } else
+ canvas._canvasPool.dispose$0(0);
+ }
+ },
+ PersistedPicture__predictTrend: function(delta, extent) {
+ if (delta <= 0)
+ return extent * 0.1;
+ else
+ return Math.min(Math.max(extent * 0.5, delta * 10), extent);
+ },
+ _computePixelDensity: function(transform, width, height) {
+ var t1, m, t2, minX, t3, minY, t4, t5, t6, t7, wp, t8, t9, t10, t11, xp, t12, t13, t14, t15, yp, minX0, maxX, minY0, maxY, scale;
+ if (transform != null) {
+ t1 = transform.__engine$_m4storage;
+ t1 = t1[15] === 1 && t1[0] === 1 && t1[1] === 0 && t1[2] === 0 && t1[3] === 0 && t1[4] === 0 && t1[5] === 1 && t1[6] === 0 && t1[7] === 0 && t1[8] === 0 && t1[9] === 0 && t1[10] === 1 && t1[11] === 0;
+ } else
+ t1 = true;
+ if (t1)
+ return 1;
+ m = transform.__engine$_m4storage;
+ t1 = m[12];
+ t2 = m[15];
+ minX = t1 * t2;
+ t3 = m[13];
+ minY = t3 * t2;
+ t4 = m[3];
+ t5 = t4 * width;
+ t6 = m[7];
+ t7 = t6 * height;
+ wp = 1 / (t5 + t7 + t2);
+ t8 = m[0];
+ t9 = t8 * width;
+ t10 = m[4];
+ t11 = t10 * height;
+ xp = (t9 + t11 + t1) * wp;
+ t12 = m[1];
+ t13 = t12 * width;
+ t14 = m[5];
+ t15 = t14 * height;
+ yp = (t13 + t15 + t3) * wp;
+ minX0 = Math.min(minX, xp);
+ maxX = Math.max(minX, xp);
+ minY0 = Math.min(minY, yp);
+ maxY = Math.max(minY, yp);
+ wp = 1 / (t4 * 0 + t7 + t2);
+ xp = (t8 * 0 + t11 + t1) * wp;
+ yp = (t12 * 0 + t15 + t3) * wp;
+ minX = Math.min(minX0, xp);
+ maxX = Math.max(maxX, xp);
+ minY = Math.min(minY0, yp);
+ maxY = Math.max(maxY, yp);
+ wp = 1 / (t5 + t6 * 0 + t2);
+ xp = (t9 + t10 * 0 + t1) * wp;
+ yp = (t13 + t14 * 0 + t3) * wp;
+ minX = Math.min(minX, xp);
+ maxX = Math.max(maxX, xp);
+ minY = Math.min(minY, yp);
+ scale = Math.min((maxX - minX) / width, (Math.max(maxY, yp) - minY) / height);
+ if (scale < 1e-9 || scale === 1)
+ return 1;
+ if (scale > 1) {
+ scale = Math.min(4, C.JSDouble_methods.ceil$0(scale / 2) * 2);
+ t1 = width * height;
+ if (t1 * scale * scale > 4194304 && scale > 2)
+ scale = 3355443.2 / t1;
+ } else
+ scale = Math.max(2 / C.JSDouble_methods.floor$0(2 / scale), 0.0001);
+ return scale;
+ },
+ _measureBorderRadius: function(x, y) {
+ var clampedX = x < 0 ? 0 : x,
+ clampedY = y < 0 ? 0 : y;
+ return clampedX * clampedX + clampedY * clampedY;
+ },
+ _getPaintSpread: function(paint) {
+ var maskFilter = paint._paintData.maskFilter,
+ spread = maskFilter != null ? 0 + maskFilter._sigma * 2 : 0;
+ return paint.get$strokeWidth() !== 0 ? spread + paint.get$strokeWidth() * 0.70710678118 : spread;
+ },
+ commitScene: function(scene) {
+ var request, _i, i,
+ t1 = $._paintQueue,
+ t2 = t1.length;
+ if (t2 !== 0)
+ try {
+ if (t2 > 1)
+ C.JSArray_methods.sort$1(t1, new H.commitScene_closure());
+ for (t1 = $._paintQueue, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ request = t1[_i];
+ request.paintCallback$0();
+ }
+ } finally {
+ $._paintQueue = H.setRuntimeTypeInfo([], type$.JSArray__PaintRequest);
+ }
+ t1 = $._retainedSurfaces;
+ t2 = t1.length;
+ if (t2 !== 0) {
+ for (i = 0; i < t2; ++i)
+ t1[i].__engine$_state = C.PersistedSurfaceState_1;
+ $._retainedSurfaces = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface);
+ }
+ for (t1 = $._frameReferences, i = 0; i < t1.length; ++i)
+ t1[i].value = null;
+ $._frameReferences = H.setRuntimeTypeInfo([], type$.JSArray_FrameReference_dynamic);
+ },
+ PersistedContainerSurface__discardActiveChildren: function(surface) {
+ var i, child,
+ t1 = surface.__engine$_children,
+ $length = t1.length;
+ for (i = 0; i < $length; ++i) {
+ child = t1[i];
+ if (child.__engine$_state === C.PersistedSurfaceState_1)
+ child.discard$0();
+ }
+ },
+ Keyboard$_: function() {
+ var t1 = new H.Keyboard(P.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.Timer));
+ t1.Keyboard$_$0();
+ return t1;
+ },
+ _noopCallback: function(data) {
+ },
+ EnginePlatformDispatcher_browserDevicePixelRatio: function() {
+ var ratio = window.devicePixelRatio;
+ return ratio == null || ratio === 0 ? 1 : ratio;
+ },
+ EnginePlatformDispatcher__zonedPlatformMessageResponseCallback: function(callback) {
+ return new H.EnginePlatformDispatcher__zonedPlatformMessageResponseCallback_closure($.Zone__current, callback);
+ },
+ EnginePlatformDispatcher_parseBrowserLanguages: function() {
+ var locales, t1, t2, t3, parts,
+ languages = window.navigator.languages;
+ if (languages == null || J.get$isEmpty$asx(languages))
+ return C.List_Locale_en_US;
+ locales = H.setRuntimeTypeInfo([], type$.JSArray_Locale);
+ for (t1 = J.get$iterator$ax(languages), t2 = type$.JSArray_String; t1.moveNext$0();) {
+ t3 = t1.get$current(t1);
+ parts = H.setRuntimeTypeInfo(t3.split("-"), t2);
+ if (parts.length > 1)
+ locales.push(new P.Locale(C.JSArray_methods.get$first(parts), C.JSArray_methods.get$last(parts)));
+ else
+ locales.push(new P.Locale(t3, null));
+ }
+ return locales;
+ },
+ _handleWebTestEnd2EndMessage: function(codec, data) {
+ var decoded = codec.decodeMethodCall$1(data),
+ ratio = P.double_parse(decoded.$arguments);
+ switch (decoded.method) {
+ case "setDevicePixelRatio":
+ $.$get$window()._debugDevicePixelRatio = ratio;
+ $.$get$EnginePlatformDispatcher__instance()._onMetricsChanged.call$0();
+ return true;
+ }
+ return false;
+ },
+ invoke: function(callback, zone) {
+ if (callback == null)
+ return;
+ if (zone === $.Zone__current)
+ callback.call$0();
+ else
+ zone.runGuarded$1(callback);
+ },
+ invoke1: function(callback, zone, arg) {
+ if (callback == null)
+ return;
+ if (zone === $.Zone__current)
+ callback.call$1(arg);
+ else
+ zone.runUnaryGuarded$2(callback, arg);
+ },
+ invoke3: function(callback, zone, arg1, arg2, arg3) {
+ if (callback == null)
+ return;
+ if (zone === $.Zone__current)
+ callback.call$3(arg1, arg2, arg3);
+ else
+ zone.runGuarded$1(new H.invoke3_closure(callback, arg1, arg2, arg3));
+ },
+ convertButtonToButtons: function(button) {
+ switch (button) {
+ case 0:
+ return 1;
+ case 1:
+ return 4;
+ case 2:
+ return 2;
+ default:
+ return C.JSInt_methods.$shl(1, button);
+ }
+ },
+ _BaseAdapter__eventTimeStampToDuration: function(milliseconds) {
+ var ms = J.toInt$0$n(milliseconds);
+ return P.Duration$(C.JSNumber_methods.toInt$0((milliseconds - ms) * 1000), ms, 0);
+ },
+ timeAction: function($name, action) {
+ var t1 = action.call$0();
+ return t1;
+ },
+ _frameTimingsOnVsync: function() {
+ if ($.$get$EnginePlatformDispatcher__instance()._onReportTimings == null)
+ return;
+ $._vsyncStartMicros = C.JSNumber_methods.toInt$0(window.performance.now() * 1000);
+ },
+ _frameTimingsOnBuildStart: function() {
+ if ($.$get$EnginePlatformDispatcher__instance()._onReportTimings == null)
+ return;
+ $._buildStartMicros = C.JSNumber_methods.toInt$0(window.performance.now() * 1000);
+ },
+ _frameTimingsOnBuildFinish: function() {
+ if ($.$get$EnginePlatformDispatcher__instance()._onReportTimings == null)
+ return;
+ $._buildFinishMicros = C.JSNumber_methods.toInt$0(window.performance.now() * 1000);
+ },
+ _frameTimingsOnRasterStart: function() {
+ if ($.$get$EnginePlatformDispatcher__instance()._onReportTimings == null)
+ return;
+ $._rasterStartMicros = C.JSNumber_methods.toInt$0(window.performance.now() * 1000);
+ },
+ _frameTimingsOnRasterFinish: function() {
+ var now, t2,
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ if (t1._onReportTimings == null)
+ return;
+ now = $._rasterFinishMicros = C.JSNumber_methods.toInt$0(window.performance.now() * 1000);
+ $._frameTimings.push(new P.FrameTiming(H.setRuntimeTypeInfo([$._vsyncStartMicros, $._buildStartMicros, $._buildFinishMicros, $._rasterStartMicros, now], type$.JSArray_int)));
+ $._rasterFinishMicros = $._rasterStartMicros = $._buildFinishMicros = $._buildStartMicros = $._vsyncStartMicros = -1;
+ if (now - $.$get$_frameTimingsLastSubmitTime() > 100000) {
+ $._frameTimingsLastSubmitTime = now;
+ t2 = $._frameTimings;
+ H.invoke1(t1._onReportTimings, t1._onReportTimingsZone, t2);
+ $._frameTimings = H.setRuntimeTypeInfo([], type$.JSArray_FrameTiming);
+ }
+ },
+ _nowMicros: function() {
+ return C.JSNumber_methods.toInt$0(window.performance.now() * 1000);
+ },
+ AccessibilityAnnouncements$_: function() {
+ var t1 = new H.AccessibilityAnnouncements();
+ t1.AccessibilityAnnouncements$_$0();
+ return t1;
+ },
+ _checkableKindFromSemanticsFlag: function(semanticsObject) {
+ var t1 = semanticsObject.__engine$_flags;
+ t1.toString;
+ if ((t1 & 256) !== 0)
+ return C._CheckableKind_1;
+ else if ((t1 & 65536) !== 0)
+ return C._CheckableKind_2;
+ else
+ return C._CheckableKind_0;
+ },
+ Incrementable$: function(semanticsObject) {
+ var t1 = new H.Incrementable(W.InputElement_InputElement(), semanticsObject);
+ t1.Incrementable$1(semanticsObject);
+ return t1;
+ },
+ EngineSemanticsOwner$_: function() {
+ var t1 = type$.nullable_int,
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_nullable_SemanticsObject),
+ t3 = H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function),
+ t4 = H._operatingSystem();
+ t4 = J.containsKey$1$x(C.Set_m536._collection$_map, t4) ? new H.DesktopSemanticsEnabler() : new H.MobileSemanticsEnabler();
+ t4 = new H.EngineSemanticsOwner(P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.nullable_SemanticsObject), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.SemanticsObject), t2, t3, new H.EngineSemanticsOwner_closure(), new H.SemanticsHelper(t4), C.GestureMode_1, H.setRuntimeTypeInfo([], type$.JSArray_of_nullable_void_Function_GestureMode));
+ t4.EngineSemanticsOwner$_$0();
+ return t4;
+ },
+ EngineSemanticsOwner_instance: function() {
+ var t1 = $.EngineSemanticsOwner__instance;
+ return t1 == null ? $.EngineSemanticsOwner__instance = H.EngineSemanticsOwner$_() : t1;
+ },
+ longestIncreasingSubsequence: function(list) {
+ var longest, i, elem, hi, lo, mid, seq, k,
+ len = list.length,
+ t1 = type$.JSArray_int,
+ predecessors = H.setRuntimeTypeInfo([], t1),
+ mins = H.setRuntimeTypeInfo([0], t1);
+ for (longest = 0, i = 0; i < len; ++i) {
+ elem = list[i];
+ for (hi = longest, lo = 1; lo <= hi;) {
+ mid = C.JSInt_methods._tdivFast$1(lo + hi, 2);
+ if (list[mins[mid]] < elem)
+ lo = mid + 1;
+ else
+ hi = mid - 1;
+ }
+ predecessors.push(mins[lo - 1]);
+ if (lo >= mins.length)
+ mins.push(i);
+ else
+ mins[lo] = i;
+ if (lo > longest)
+ longest = lo;
+ }
+ seq = P.List_List$filled(longest, 0, false, type$.int);
+ k = mins[longest];
+ for (i = longest - 1; i >= 0; --i) {
+ seq[i] = k;
+ k = predecessors[k];
+ }
+ return seq;
+ },
+ WriteBuffer_WriteBuffer: function() {
+ var t1 = new Uint8Array(0),
+ eightBytes = new DataView(new ArrayBuffer(8));
+ return new H.WriteBuffer0(new H.Uint8Buffer0(t1, 0), eightBytes, H.NativeUint8List_NativeUint8List$view(eightBytes.buffer, 0, null));
+ },
+ computeShadowOffset: function(elevation) {
+ if (elevation === 0)
+ return C.Offset_0_0;
+ return new P.Offset(200 * elevation / 600, 400 * elevation / 600);
+ },
+ computePenumbraBounds: function(shape, elevation) {
+ var t1, t2, t3, t4, dx, dy;
+ if (elevation === 0)
+ return shape;
+ t1 = shape.right;
+ t2 = shape.left;
+ t3 = shape.bottom;
+ t4 = shape.top;
+ dx = elevation * ((800 + (t1 - t2) * 0.5) / 600);
+ dy = elevation * ((800 + (t3 - t4) * 0.5) / 600);
+ return new P.Rect(t2 - dx, t4 - dy, t1 + dx, t3 + dy).shift$1(H.computeShadowOffset(elevation));
+ },
+ computeShadow: function(shape, elevation) {
+ if (elevation === 0)
+ return null;
+ return new H.SurfaceShadowData(Math.min(elevation * ((800 + (shape.right - shape.left) * 0.5) / 600), elevation * ((800 + (shape.bottom - shape.top) * 0.5) / 600)), H.computeShadowOffset(elevation));
+ },
+ toShadowColor: function(color) {
+ var t1 = color.value;
+ return new P.Color(((C.JSDouble_methods.round$0(0.3 * (t1 >>> 24 & 255)) & 255) << 24 | t1 & 16777215) >>> 0);
+ },
+ FontManager_FontManager: function() {
+ var t1 = type$.JSArray_Future_void;
+ if ($.$get$supportsFontLoadingApi())
+ return new H.FontManager(H.setRuntimeTypeInfo([], t1));
+ else
+ return new H._PolyfillFontManager(H.setRuntimeTypeInfo([], t1));
+ },
+ nextLineBreak: function(text, index) {
+ var t1, lastNonNewlineIndex, lastNonSpaceIndex, prev1, regionalIndicatorCount, t2, t3, t4, curr0, isCurrZWJ0, t5, t6, t7,
+ codePoint = H.getCodePoint(text, index),
+ curr = $.$get$lineLookup().findForChar$1(codePoint),
+ baseOfSpaceSequence = curr === C.LineCharProperty_5 ? C.LineCharProperty_29 : null,
+ isCurrZWJ = curr === C.LineCharProperty_26;
+ if (curr === C.LineCharProperty_0 || isCurrZWJ)
+ curr = C.LineCharProperty_8;
+ for (t1 = text.length, lastNonNewlineIndex = index, lastNonSpaceIndex = lastNonNewlineIndex, prev1 = null, regionalIndicatorCount = 0; index < t1; isCurrZWJ = isCurrZWJ0, prev1 = curr, curr = curr0) {
+ t2 = curr === C.LineCharProperty_35;
+ regionalIndicatorCount = t2 ? regionalIndicatorCount + 1 : 0;
+ index = (codePoint != null && codePoint > 65535 ? index + 1 : index) + 1;
+ t3 = curr === C.LineCharProperty_5;
+ t4 = !t3;
+ if (t4)
+ baseOfSpaceSequence = null;
+ codePoint = H.getCodePoint(text, index);
+ curr0 = $.$get$lineLookup().findForChar$1(codePoint);
+ isCurrZWJ0 = curr0 === C.LineCharProperty_26;
+ if (curr === C.LineCharProperty_2 || curr === C.LineCharProperty_3)
+ return new H.LineBreakResult(index, lastNonNewlineIndex, lastNonSpaceIndex, C.LineBreakType_1);
+ if (curr === C.LineCharProperty_4)
+ if (curr0 === C.LineCharProperty_2)
+ continue;
+ else
+ return new H.LineBreakResult(index, lastNonNewlineIndex, lastNonSpaceIndex, C.LineBreakType_1);
+ if (t4)
+ lastNonSpaceIndex = index;
+ if (curr0 === C.LineCharProperty_2 || curr0 === C.LineCharProperty_3 || curr0 === C.LineCharProperty_4) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (index >= t1)
+ return new H.LineBreakResult(t1, index, lastNonSpaceIndex, C.LineBreakType_2);
+ if (curr0 === C.LineCharProperty_5) {
+ baseOfSpaceSequence = t3 ? baseOfSpaceSequence : curr;
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr0 === C.LineCharProperty_25) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr === C.LineCharProperty_25 || baseOfSpaceSequence === C.LineCharProperty_25)
+ return new H.LineBreakResult(index, index, lastNonSpaceIndex, C.LineBreakType_0);
+ if (curr0 === C.LineCharProperty_0 || isCurrZWJ0) {
+ if (!t3) {
+ if (t2)
+ --regionalIndicatorCount;
+ lastNonNewlineIndex = index;
+ curr0 = curr;
+ continue;
+ }
+ curr0 = C.LineCharProperty_8;
+ }
+ if (isCurrZWJ) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr0 === C.LineCharProperty_29 || curr === C.LineCharProperty_29) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr === C.LineCharProperty_18) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (!(!t4 || curr === C.LineCharProperty_1 || curr === C.LineCharProperty_14) && curr0 === C.LineCharProperty_18) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr0 === C.LineCharProperty_17 || curr0 === C.LineCharProperty_12 || curr0 === C.LineCharProperty_6 || curr0 === C.LineCharProperty_13 || curr0 === C.LineCharProperty_15) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr === C.LineCharProperty_11 || baseOfSpaceSequence === C.LineCharProperty_11) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t2 = curr !== C.LineCharProperty_7;
+ if ((!t2 || baseOfSpaceSequence === C.LineCharProperty_7) && curr0 === C.LineCharProperty_11) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t4 = curr !== C.LineCharProperty_17;
+ if ((!t4 || baseOfSpaceSequence === C.LineCharProperty_17 || curr === C.LineCharProperty_12 || baseOfSpaceSequence === C.LineCharProperty_12) && curr0 === C.LineCharProperty_24) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if ((curr === C.LineCharProperty_27 || baseOfSpaceSequence === C.LineCharProperty_27) && curr0 === C.LineCharProperty_27) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (t3)
+ return new H.LineBreakResult(index, index, lastNonSpaceIndex, C.LineBreakType_0);
+ if (!t2 || curr0 === C.LineCharProperty_7) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr === C.LineCharProperty_34 || curr0 === C.LineCharProperty_34)
+ return new H.LineBreakResult(index, index, lastNonSpaceIndex, C.LineBreakType_0);
+ if (curr0 === C.LineCharProperty_1 || curr0 === C.LineCharProperty_14 || curr0 === C.LineCharProperty_24 || curr === C.LineCharProperty_19) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (prev1 === C.LineCharProperty_20)
+ t2 = curr === C.LineCharProperty_14 || curr === C.LineCharProperty_1;
+ else
+ t2 = false;
+ if (t2) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t2 = curr === C.LineCharProperty_15;
+ if (t2 && curr0 === C.LineCharProperty_20) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr0 === C.LineCharProperty_28) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t3 = curr !== C.LineCharProperty_8;
+ if (!((!t3 || curr === C.LineCharProperty_20) && curr0 === C.LineCharProperty_16))
+ if (curr === C.LineCharProperty_16)
+ t5 = curr0 === C.LineCharProperty_8 || curr0 === C.LineCharProperty_20;
+ else
+ t5 = false;
+ else
+ t5 = true;
+ if (t5) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t5 = curr === C.LineCharProperty_9;
+ if (t5)
+ t6 = curr0 === C.LineCharProperty_30 || curr0 === C.LineCharProperty_31 || curr0 === C.LineCharProperty_36;
+ else
+ t6 = false;
+ if (t6) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if ((curr === C.LineCharProperty_30 || curr === C.LineCharProperty_31 || curr === C.LineCharProperty_36) && curr0 === C.LineCharProperty_10) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t6 = !t5;
+ if (!t6 || curr === C.LineCharProperty_10)
+ t7 = curr0 === C.LineCharProperty_8 || curr0 === C.LineCharProperty_20;
+ else
+ t7 = false;
+ if (t7) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (!t3 || curr === C.LineCharProperty_20)
+ t7 = curr0 === C.LineCharProperty_9 || curr0 === C.LineCharProperty_10;
+ else
+ t7 = false;
+ if (t7) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (!t4 || curr === C.LineCharProperty_12 || curr === C.LineCharProperty_16)
+ t4 = curr0 === C.LineCharProperty_10 || curr0 === C.LineCharProperty_9;
+ else
+ t4 = false;
+ if (t4) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t4 = curr !== C.LineCharProperty_10;
+ if ((!t4 || t5) && curr0 === C.LineCharProperty_11) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if ((!t4 || !t6 || curr === C.LineCharProperty_14 || curr === C.LineCharProperty_13 || curr === C.LineCharProperty_16 || t2) && curr0 === C.LineCharProperty_16) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t2 = curr === C.LineCharProperty_21;
+ if (t2)
+ t4 = curr0 === C.LineCharProperty_21 || curr0 === C.LineCharProperty_22 || curr0 === C.LineCharProperty_32 || curr0 === C.LineCharProperty_33;
+ else
+ t4 = false;
+ if (t4) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t4 = curr !== C.LineCharProperty_22;
+ if (!t4 || curr === C.LineCharProperty_32)
+ t6 = curr0 === C.LineCharProperty_22 || curr0 === C.LineCharProperty_23;
+ else
+ t6 = false;
+ if (t6) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ t6 = curr !== C.LineCharProperty_23;
+ if ((!t6 || curr === C.LineCharProperty_33) && curr0 === C.LineCharProperty_23) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if ((t2 || !t4 || !t6 || curr === C.LineCharProperty_32 || curr === C.LineCharProperty_33) && curr0 === C.LineCharProperty_10) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (t5)
+ t2 = curr0 === C.LineCharProperty_21 || curr0 === C.LineCharProperty_22 || curr0 === C.LineCharProperty_23 || curr0 === C.LineCharProperty_32 || curr0 === C.LineCharProperty_33;
+ else
+ t2 = false;
+ if (t2) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (!t3 || curr === C.LineCharProperty_20)
+ t2 = curr0 === C.LineCharProperty_8 || curr0 === C.LineCharProperty_20;
+ else
+ t2 = false;
+ if (t2) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr === C.LineCharProperty_13)
+ t2 = curr0 === C.LineCharProperty_8 || curr0 === C.LineCharProperty_20;
+ else
+ t2 = false;
+ if (t2) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (!t3 || curr === C.LineCharProperty_20 || curr === C.LineCharProperty_16)
+ if (curr0 === C.LineCharProperty_11) {
+ t2 = C.JSString_methods.codeUnitAt$1(text, index);
+ if (t2 !== 9001)
+ if (!(t2 >= 12296 && t2 <= 12317))
+ t2 = t2 >= 65047 && t2 <= 65378;
+ else
+ t2 = true;
+ else
+ t2 = true;
+ t2 = !t2;
+ } else
+ t2 = false;
+ else
+ t2 = false;
+ if (t2) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr === C.LineCharProperty_12) {
+ t2 = C.JSString_methods.codeUnitAt$1(text, index - 1);
+ if (t2 !== 9001)
+ if (!(t2 >= 12296 && t2 <= 12317))
+ t2 = t2 >= 65047 && t2 <= 65378;
+ else
+ t2 = true;
+ else
+ t2 = true;
+ if (!t2)
+ t2 = curr0 === C.LineCharProperty_8 || curr0 === C.LineCharProperty_20 || curr0 === C.LineCharProperty_16;
+ else
+ t2 = false;
+ } else
+ t2 = false;
+ if (t2) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ if (curr0 === C.LineCharProperty_35)
+ if ((regionalIndicatorCount & 1) === 1) {
+ lastNonNewlineIndex = index;
+ continue;
+ } else
+ return new H.LineBreakResult(index, index, lastNonSpaceIndex, C.LineBreakType_0);
+ if (curr === C.LineCharProperty_31 && curr0 === C.LineCharProperty_36) {
+ lastNonNewlineIndex = index;
+ continue;
+ }
+ return new H.LineBreakResult(index, index, lastNonSpaceIndex, C.LineBreakType_0);
+ }
+ return new H.LineBreakResult(t1, lastNonNewlineIndex, lastNonSpaceIndex, C.LineBreakType_2);
+ },
+ _newlinePredicate: function(char) {
+ var prop = $.$get$lineLookup().findForChar$1(char);
+ return prop === C.LineCharProperty_3 || prop === C.LineCharProperty_2 || prop === C.LineCharProperty_4;
+ },
+ TextMeasurementService_forParagraph: function(paragraph) {
+ var style,
+ t1 = $.$get$window().get$physicalSize();
+ if (!t1.get$isEmpty(t1))
+ if ($.WebExperiments_instance._useCanvasText) {
+ style = paragraph._geometricStyle;
+ t1 = paragraph._plainText != null && style.decoration == null && style.wordSpacing == null;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1) {
+ t1 = $.CanvasTextMeasurementService__instance;
+ return t1 == null ? $.CanvasTextMeasurementService__instance = new H.CanvasTextMeasurementService(W.CanvasElement_CanvasElement(null, null).getContext("2d")) : t1;
+ }
+ t1 = $.DomTextMeasurementService__instance;
+ return t1 == null ? $.DomTextMeasurementService__instance = new H.DomTextMeasurementService() : t1;
+ },
+ DomTextMeasurementService__applySubPixelRoundingHack: function(minIntrinsicWidth, maxIntrinsicWidth) {
+ if (minIntrinsicWidth <= maxIntrinsicWidth)
+ return maxIntrinsicWidth;
+ if (minIntrinsicWidth - maxIntrinsicWidth < 2)
+ return minIntrinsicWidth;
+ throw H.wrapException(P.Exception_Exception("minIntrinsicWidth (" + H.S(minIntrinsicWidth) + ") is greater than maxIntrinsicWidth (" + H.S(maxIntrinsicWidth) + ")."));
+ },
+ _measureSubstring: function(_canvasContext, style, text, start, end) {
+ var letterSpacing, sub, t1;
+ if (start === end)
+ return 0;
+ if (start === $._lastStart && end === $._lastEnd && text == $._lastText && J.$eq$($._lastStyle, style))
+ return $._lastWidth;
+ $._lastStart = start;
+ $._lastEnd = end;
+ $._lastText = text;
+ $._lastStyle = style;
+ letterSpacing = style.letterSpacing;
+ if (letterSpacing == null)
+ letterSpacing = 0;
+ sub = start === 0 && end === text.length ? text : J.substring$2$s(text, start, end);
+ t1 = _canvasContext.measureText(sub).width;
+ t1.toString;
+ return $._lastWidth = C.JSNumber_methods.round$0((t1 + letterSpacing * sub.length) * 100) / 100;
+ },
+ _excludeTrailing: function(text, start, end, predicate) {
+ while (true) {
+ if (!(start < end && predicate.call$1(C.JSString_methods.codeUnitAt$1(text, end - 1))))
+ break;
+ --end;
+ }
+ return end;
+ },
+ _calculateAlignOffsetForLine: function(lineWidth, maxWidth, paragraph) {
+ var emptySpace = maxWidth - lineWidth;
+ switch (paragraph._textAlign) {
+ case C.TextAlign_2:
+ return emptySpace / 2;
+ case C.TextAlign_1:
+ return emptySpace;
+ case C.TextAlign_4:
+ return paragraph._textDirection === C.TextDirection_0 ? emptySpace : 0;
+ case C.TextAlign_5:
+ return paragraph._textDirection === C.TextDirection_0 ? 0 : emptySpace;
+ default:
+ return 0;
+ }
+ },
+ EngineLineMetrics$withText: function(displayText, endIndex, endIndexWithoutNewlines, hardBreak, left, lineNumber, startIndex, width, widthWithTrailingSpaces) {
+ return new H.EngineLineMetrics(displayText, startIndex, endIndex, endIndexWithoutNewlines, hardBreak, width, widthWithTrailingSpaces, left, lineNumber);
+ },
+ EngineTextStyle$only: function(background, color, decoration, decorationColor, decorationStyle, decorationThickness, fontFamily, fontFamilyFallback, fontFeatures, fontSize, fontStyle, fontWeight, foreground, height, letterSpacing, locale, shadows, textBaseline, wordSpacing) {
+ var t1 = fontFamily == null,
+ t2 = t1 ? "" : fontFamily;
+ return new H.EngineTextStyle(color, decoration, decorationColor, decorationStyle, decorationThickness, fontWeight, fontStyle, textBaseline, !t1, t2, fontFamilyFallback, fontFeatures, fontSize, letterSpacing, wordSpacing, height, locale, background, foreground, shadows);
+ },
+ fontWeightToCss: function(fontWeight) {
+ if (fontWeight == null)
+ return null;
+ return H.fontWeightIndexToCss(fontWeight.index);
+ },
+ fontWeightIndexToCss: function(fontWeightIndex) {
+ switch (fontWeightIndex) {
+ case 0:
+ return "100";
+ case 1:
+ return "200";
+ case 2:
+ return "300";
+ case 3:
+ return "normal";
+ case 4:
+ return "500";
+ case 5:
+ return "600";
+ case 6:
+ return "bold";
+ case 7:
+ return "800";
+ case 8:
+ return "900";
+ }
+ return "";
+ },
+ _applyTextStyleToElement: function(element, isSpan, style) {
+ var t2, updateDecoration, textDecoration, decorationColor,
+ cssStyle = element.style,
+ t1 = style._foreground,
+ color = t1 == null ? null : t1.get$color(t1);
+ if (color == null)
+ color = style._color;
+ if (color != null) {
+ t1 = H.colorToCssString(color);
+ cssStyle.toString;
+ cssStyle.color = t1 == null ? "" : t1;
+ }
+ t1 = style._fontSize;
+ if (t1 != null) {
+ t1 = "" + C.JSNumber_methods.floor$0(t1) + "px";
+ cssStyle.fontSize = t1;
+ }
+ t1 = style._fontWeight;
+ if (t1 != null) {
+ t1 = H.fontWeightToCss(t1);
+ cssStyle.toString;
+ cssStyle.fontWeight = t1 == null ? "" : t1;
+ }
+ if (isSpan && true) {
+ t1 = H.canonicalizeFontFamily(style._fontFamily);
+ cssStyle.toString;
+ cssStyle.fontFamily = t1 == null ? "" : t1;
+ } else {
+ t1 = H.canonicalizeFontFamily(style.get$_effectiveFontFamily());
+ cssStyle.toString;
+ cssStyle.fontFamily = t1 == null ? "" : t1;
+ }
+ t1 = style._letterSpacing;
+ if (t1 != null) {
+ t1 = H.S(t1) + "px";
+ cssStyle.letterSpacing = t1;
+ }
+ t1 = style._wordSpacing;
+ if (t1 != null) {
+ t1 = H.S(t1) + "px";
+ cssStyle.wordSpacing = t1;
+ }
+ t1 = style._decoration;
+ t2 = t1 != null;
+ updateDecoration = t2 && true;
+ if (updateDecoration)
+ if (t2) {
+ textDecoration = H._textDecorationToCssString(t1, style._decorationStyle);
+ if (textDecoration != null) {
+ t1 = H._browserEngine();
+ if (t1 === C.BrowserEngine_1)
+ H.DomRenderer_setElementStyle(element, "-webkit-text-decoration", textDecoration);
+ else
+ cssStyle.textDecoration = textDecoration;
+ decorationColor = style._decorationColor;
+ if (decorationColor != null) {
+ t1 = H.colorToCssString(decorationColor);
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(cssStyle, (cssStyle && C.CssStyleDeclaration_methods)._browserPropertyName$1(cssStyle, "text-decoration-color"), t1, "");
+ }
+ }
+ }
+ },
+ _applyTextBackgroundToElement: function(element, style) {
+ var newBackground = style._background;
+ if (newBackground != null)
+ H.DomRenderer_setElementStyle(element, "background-color", H.colorToCssString(newBackground.get$color(newBackground)));
+ },
+ _textDecorationToCssString: function(decoration, decorationStyle) {
+ var t1;
+ if (decoration != null) {
+ t1 = decoration.contains$1(0, C.TextDecoration_1) ? "underline " : "";
+ if (decoration.contains$1(0, C.TextDecoration_2))
+ t1 += "overline ";
+ if (decoration.contains$1(0, C.TextDecoration_4))
+ t1 += "line-through ";
+ } else
+ t1 = "";
+ if (decorationStyle != null)
+ t1 += H.S(H._decorationStyleToCssString(decorationStyle));
+ return t1.length === 0 ? null : t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ _decorationStyleToCssString: function(decorationStyle) {
+ switch (decorationStyle) {
+ case C.TextDecorationStyle_3:
+ return "dashed";
+ case C.TextDecorationStyle_2:
+ return "dotted";
+ case C.TextDecorationStyle_1:
+ return "double";
+ case C.TextDecorationStyle_0:
+ return "solid";
+ case C.TextDecorationStyle_4:
+ return "wavy";
+ default:
+ return null;
+ }
+ },
+ _textDirectionToCss: function(textDirection) {
+ if (textDirection == null)
+ return null;
+ return H.textDirectionIndexToCss(textDirection.index);
+ },
+ textDirectionIndexToCss: function(textDirectionIndex) {
+ switch (textDirectionIndex) {
+ case 0:
+ return "rtl";
+ case 1:
+ return null;
+ }
+ return null;
+ },
+ textAlignToCssValue: function(align, textDirection) {
+ var _s80_ = string$.x60null_c;
+ switch (align) {
+ case C.TextAlign_0:
+ return "left";
+ case C.TextAlign_1:
+ return "right";
+ case C.TextAlign_2:
+ return "center";
+ case C.TextAlign_3:
+ return "justify";
+ case C.TextAlign_5:
+ switch (textDirection) {
+ case C.TextDirection_1:
+ return "end";
+ case C.TextDirection_0:
+ return "left";
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ case C.TextAlign_4:
+ switch (textDirection) {
+ case C.TextDirection_1:
+ return "";
+ case C.TextDirection_0:
+ return "right";
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ case null:
+ return "";
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ },
+ _listEquals: function(a, b) {
+ var index;
+ if (a == null)
+ return b == null;
+ if (b == null || a.length !== b.length)
+ return false;
+ for (index = 0; index < a.length; ++index)
+ if (!J.$eq$(a[index], b[index]))
+ return false;
+ return true;
+ },
+ MeasurementResult$: function(constraintWidth, alphabeticBaseline, height, ideographicBaseline, isSingleLine, lineHeight, lines, maxIntrinsicWidth, minIntrinsicWidth, naturalHeight, placeholderBoxes, textAlign, textDirection, width) {
+ return new H.MeasurementResult(constraintWidth, isSingleLine, width, height, naturalHeight, lineHeight, minIntrinsicWidth, maxIntrinsicWidth, alphabeticBaseline, ideographicBaseline, lines, placeholderBoxes, textAlign, textDirection);
+ },
+ getCodePoint: function(text, index) {
+ var char;
+ if (index < 0 || index >= text.length)
+ return null;
+ char = J.getInterceptor$s(text).codeUnitAt$1(text, index);
+ if ((char & 63488) === 55296 && index < text.length - 1)
+ return (char >>> 6 & 31) + 1 << 16 | (char & 63) << 10 | C.JSString_methods.codeUnitAt$1(text, index + 1) & 1023;
+ return char;
+ },
+ UnicodePropertyLookup_UnicodePropertyLookup$fromPackedData: function(packedData, singleRangesCount, propertyEnumValues, defaultProperty, $P) {
+ return new H.UnicodePropertyLookup(H._unpackProperties(packedData, singleRangesCount, propertyEnumValues, $P), defaultProperty, P.LinkedHashMap_LinkedHashMap$_empty(type$.int, $P), $P._eval$1("UnicodePropertyLookup<0>"));
+ },
+ _unpackProperties: function(packedData, singleRangesCount, propertyEnumValues, $P) {
+ var t1, i, rangeStart, rangeEnd, i0,
+ ranges = H.setRuntimeTypeInfo([], $P._eval$1("JSArray>")),
+ dataLength = packedData.length;
+ for (t1 = $P._eval$1("UnicodeRange<0>"), i = 0; i < dataLength; i = i0) {
+ rangeStart = H._consumeInt(packedData, i);
+ i += 4;
+ if (C.JSString_methods._codeUnitAt$1(packedData, i) === 33) {
+ ++i;
+ rangeEnd = rangeStart;
+ } else {
+ rangeEnd = H._consumeInt(packedData, i);
+ i += 4;
+ }
+ i0 = i + 1;
+ ranges.push(new H.UnicodeRange(rangeStart, rangeEnd, propertyEnumValues[H._getEnumIndexFromPackedValue(C.JSString_methods._codeUnitAt$1(packedData, i))], t1));
+ }
+ return ranges;
+ },
+ _getEnumIndexFromPackedValue: function(charCode) {
+ if (charCode <= 90)
+ return charCode - 65;
+ return 26 + charCode - 97;
+ },
+ _consumeInt: function(packedData, index) {
+ return H._getIntFromCharCode(C.JSString_methods._codeUnitAt$1(packedData, index + 3)) + H._getIntFromCharCode(C.JSString_methods._codeUnitAt$1(packedData, index + 2)) * 36 + H._getIntFromCharCode(C.JSString_methods._codeUnitAt$1(packedData, index + 1)) * 36 * 36 + H._getIntFromCharCode(C.JSString_methods._codeUnitAt$1(packedData, index)) * 36 * 36 * 36;
+ },
+ _getIntFromCharCode: function(charCode) {
+ if (charCode <= 57)
+ return charCode - 48;
+ return charCode - 97 + 10;
+ },
+ WordBreaker__findBreakIndex: function(direction, text, index) {
+ var t1 = direction.step,
+ t2 = text.length,
+ i = index;
+ while (true) {
+ if (!(i >= 0 && i <= t2))
+ break;
+ i += t1;
+ if (H.WordBreaker__isBreak(text, i))
+ break;
+ }
+ return H.clampInt(i, 0, t2);
+ },
+ WordBreaker__isBreak: function(text, index) {
+ var t1, immediateRight, immediateLeft, l, t2, codePoint, r, nextRight, nextLeft, _null = null;
+ if (index <= 0 || index >= text.length)
+ return true;
+ t1 = index - 1;
+ if ((C.JSString_methods.codeUnitAt$1(text, t1) & 63488) === 55296)
+ return false;
+ immediateRight = $.$get$wordLookup().find$2(0, text, index);
+ immediateLeft = $.$get$wordLookup().find$2(0, text, t1);
+ if (immediateLeft === C.WordCharProperty_3 && immediateRight === C.WordCharProperty_4)
+ return false;
+ if (H.WordBreaker__oneOf(immediateLeft, C.WordCharProperty_5, C.WordCharProperty_3, C.WordCharProperty_4, _null, _null))
+ return true;
+ if (H.WordBreaker__oneOf(immediateRight, C.WordCharProperty_5, C.WordCharProperty_3, C.WordCharProperty_4, _null, _null))
+ return true;
+ if (immediateLeft === C.WordCharProperty_17 && immediateRight === C.WordCharProperty_17)
+ return false;
+ if (H.WordBreaker__oneOf(immediateRight, C.WordCharProperty_6, C.WordCharProperty_8, C.WordCharProperty_16, _null, _null))
+ return false;
+ for (l = 0; H.WordBreaker__oneOf(immediateLeft, C.WordCharProperty_6, C.WordCharProperty_8, C.WordCharProperty_16, _null, _null);) {
+ ++l;
+ t1 = index - l - 1;
+ if (t1 < 0)
+ return true;
+ t2 = $.$get$wordLookup();
+ t2.toString;
+ codePoint = H.getCodePoint(text, t1);
+ immediateLeft = codePoint == null ? t2.defaultProperty : t2.findForChar$1(codePoint);
+ }
+ if (H.WordBreaker__oneOf(immediateLeft, C.WordCharProperty_10, C.WordCharProperty_2, _null, _null, _null) && H.WordBreaker__oneOf(immediateRight, C.WordCharProperty_10, C.WordCharProperty_2, _null, _null, _null))
+ return false;
+ r = 0;
+ do {
+ ++r;
+ nextRight = $.$get$wordLookup().find$2(0, text, index + r);
+ } while (H.WordBreaker__oneOf(nextRight, C.WordCharProperty_6, C.WordCharProperty_8, C.WordCharProperty_16, _null, _null));
+ do {
+ ++l;
+ nextLeft = $.$get$wordLookup().find$2(0, text, index - l - 1);
+ } while (H.WordBreaker__oneOf(nextLeft, C.WordCharProperty_6, C.WordCharProperty_8, C.WordCharProperty_16, _null, _null));
+ if (H.WordBreaker__oneOf(immediateLeft, C.WordCharProperty_10, C.WordCharProperty_2, _null, _null, _null) && H.WordBreaker__oneOf(immediateRight, C.WordCharProperty_11, C.WordCharProperty_13, C.WordCharProperty_1, _null, _null) && H.WordBreaker__oneOf(nextRight, C.WordCharProperty_10, C.WordCharProperty_2, _null, _null, _null))
+ return false;
+ if (H.WordBreaker__oneOf(nextLeft, C.WordCharProperty_10, C.WordCharProperty_2, _null, _null, _null) && H.WordBreaker__oneOf(immediateLeft, C.WordCharProperty_11, C.WordCharProperty_13, C.WordCharProperty_1, _null, _null) && H.WordBreaker__oneOf(immediateRight, C.WordCharProperty_10, C.WordCharProperty_2, _null, _null, _null))
+ return false;
+ t1 = immediateLeft === C.WordCharProperty_2;
+ if (t1 && immediateRight === C.WordCharProperty_1)
+ return false;
+ if (t1 && immediateRight === C.WordCharProperty_0 && nextRight === C.WordCharProperty_2)
+ return false;
+ if (nextLeft === C.WordCharProperty_2 && immediateLeft === C.WordCharProperty_0 && immediateRight === C.WordCharProperty_2)
+ return false;
+ t1 = immediateLeft === C.WordCharProperty_14;
+ if (t1 && immediateRight === C.WordCharProperty_14)
+ return false;
+ if (H.WordBreaker__oneOf(immediateLeft, C.WordCharProperty_10, C.WordCharProperty_2, _null, _null, _null) && immediateRight === C.WordCharProperty_14)
+ return false;
+ if (t1 && H.WordBreaker__oneOf(immediateRight, C.WordCharProperty_10, C.WordCharProperty_2, _null, _null, _null))
+ return false;
+ if (nextLeft === C.WordCharProperty_14 && H.WordBreaker__oneOf(immediateLeft, C.WordCharProperty_12, C.WordCharProperty_13, C.WordCharProperty_1, _null, _null) && immediateRight === C.WordCharProperty_14)
+ return false;
+ if (t1 && H.WordBreaker__oneOf(immediateRight, C.WordCharProperty_12, C.WordCharProperty_13, C.WordCharProperty_1, _null, _null) && nextRight === C.WordCharProperty_14)
+ return false;
+ if (immediateLeft === C.WordCharProperty_9 && immediateRight === C.WordCharProperty_9)
+ return false;
+ if (H.WordBreaker__oneOf(immediateLeft, C.WordCharProperty_10, C.WordCharProperty_2, C.WordCharProperty_14, C.WordCharProperty_9, C.WordCharProperty_15) && immediateRight === C.WordCharProperty_15)
+ return false;
+ if (immediateLeft === C.WordCharProperty_15 && H.WordBreaker__oneOf(immediateRight, C.WordCharProperty_10, C.WordCharProperty_2, C.WordCharProperty_14, C.WordCharProperty_9, _null))
+ return false;
+ return true;
+ },
+ WordBreaker__oneOf: function(value, choice1, choice2, choice3, choice4, choice5) {
+ if (value === choice1)
+ return true;
+ if (value === choice2)
+ return true;
+ if (choice3 != null && value === choice3)
+ return true;
+ if (choice4 != null && value === choice4)
+ return true;
+ if (choice5 != null && value === choice5)
+ return true;
+ return false;
+ },
+ EngineInputType_fromName: function($name, isDecimal) {
+ switch ($name) {
+ case "TextInputType.number":
+ return isDecimal ? C.C_DecimalInputType : C.C_NumberInputType;
+ case "TextInputType.phone":
+ return C.C_PhoneInputType;
+ case "TextInputType.emailAddress":
+ return C.C_EmailInputType;
+ case "TextInputType.url":
+ return C.C_UrlInputType;
+ case "TextInputType.multiline":
+ return C.C_MultilineInputType;
+ case "TextInputType.text":
+ default:
+ return C.C_TextInputType;
+ }
+ },
+ TextCapitalizationConfig$fromInputConfiguration: function(inputConfiguration) {
+ var t1;
+ if (inputConfiguration === "TextCapitalization.words")
+ t1 = C.TextCapitalization_0;
+ else if (inputConfiguration === "TextCapitalization.characters")
+ t1 = C.TextCapitalization_2;
+ else
+ t1 = inputConfiguration === "TextCapitalization.sentences" ? C.TextCapitalization_1 : C.TextCapitalization_3;
+ return new H.TextCapitalizationConfig(t1);
+ },
+ _emptyCallback: function(_) {
+ },
+ _hideAutofillElements: function(domElement, isOffScreen) {
+ var t1,
+ _s11_ = "transparent",
+ _s4_ = "none",
+ elementStyle = domElement.style;
+ elementStyle.whiteSpace = "pre-wrap";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "align-content"), "center", "");
+ elementStyle.padding = "0";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "opacity"), "1", "");
+ elementStyle.color = _s11_;
+ elementStyle.backgroundColor = _s11_;
+ elementStyle.background = _s11_;
+ elementStyle.outline = _s4_;
+ elementStyle.border = _s4_;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "resize"), _s4_, "");
+ elementStyle.width = "0";
+ elementStyle.height = "0";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "text-shadow"), _s11_, "");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "transform-origin"), "0 0 0", "");
+ if (isOffScreen) {
+ elementStyle.top = "-9999px";
+ elementStyle.left = "-9999px";
+ }
+ t1 = H._browserEngine();
+ if (t1 !== C.BrowserEngine_0) {
+ t1 = H._browserEngine();
+ t1 = t1 === C.BrowserEngine_1;
+ } else
+ t1 = true;
+ if (t1)
+ domElement.classList.add("transparentTextEditing");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "caret-color"), _s11_, null);
+ },
+ EngineAutofillForm_fromFrameworkMessage: function(focusedElementAutofill, fields) {
+ var t1, elements, items, formElement, ids, focusedElement, t2, cur, t3, autofillInfo, t4, autofill, htmlElement, _i, id, formIdentifier, form, submitButton;
+ if (focusedElementAutofill == null)
+ return null;
+ t1 = type$.String;
+ elements = P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.HtmlElement);
+ items = P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.AutofillInfo);
+ formElement = document.createElement("form");
+ formElement.noValidate = true;
+ formElement.method = "post";
+ formElement.action = "#";
+ C.FormElement_methods.addEventListener$2(formElement, "submit", new H.EngineAutofillForm_fromFrameworkMessage_closure());
+ H._hideAutofillElements(formElement, false);
+ ids = J.JSArray_JSArray$growable(0, t1);
+ focusedElement = H.AutofillInfo_AutofillInfo$fromFrameworkMessage(focusedElementAutofill, C.TextCapitalizationConfig_TextCapitalization_3);
+ if (fields != null)
+ for (t1 = J.cast$1$0$ax(fields, type$.Map_String_dynamic), t1 = new H.ListIterator(t1, t1.get$length(t1)), t2 = focusedElement.uniqueIdentifier; t1.moveNext$0();) {
+ cur = t1._current;
+ t3 = J.getInterceptor$asx(cur);
+ autofillInfo = t3.$index(cur, "autofill");
+ t4 = t3.$index(cur, "textCapitalization");
+ if (t4 === "TextCapitalization.words")
+ t4 = C.TextCapitalization_0;
+ else if (t4 === "TextCapitalization.characters")
+ t4 = C.TextCapitalization_2;
+ else
+ t4 = t4 === "TextCapitalization.sentences" ? C.TextCapitalization_1 : C.TextCapitalization_3;
+ autofill = H.AutofillInfo_AutofillInfo$fromFrameworkMessage(autofillInfo, new H.TextCapitalizationConfig(t4));
+ t4 = autofill.uniqueIdentifier;
+ ids.push(t4);
+ if (t4 != t2) {
+ htmlElement = H.EngineInputType_fromName(J.$index$asx(t3.$index(cur, "inputType"), "name"), false).createDomElement$0();
+ autofill.editingState.applyToDomElement$1(htmlElement);
+ autofill.applyToDomElement$1(htmlElement);
+ H._hideAutofillElements(htmlElement, false);
+ items.$indexSet(0, t4, autofill);
+ elements.$indexSet(0, t4, htmlElement);
+ formElement.appendChild(htmlElement);
+ }
+ }
+ else
+ ids.push(focusedElement.uniqueIdentifier);
+ C.JSArray_methods.sort$0(ids);
+ for (t1 = ids.length, _i = 0, t2 = ""; _i < ids.length; ids.length === t1 || (0, H.throwConcurrentModificationError)(ids), ++_i) {
+ id = ids[_i];
+ if (t2.length > 0)
+ t2 += "*";
+ t2 += H.S(id);
+ }
+ formIdentifier = t2.charCodeAt(0) == 0 ? t2 : t2;
+ form = $.$get$formsOnTheDom().$index(0, formIdentifier);
+ if (form != null)
+ C.FormElement_methods.remove$0(form);
+ submitButton = W.InputElement_InputElement();
+ H._hideAutofillElements(submitButton, true);
+ submitButton.className = "submitBtn";
+ submitButton.type = "submit";
+ formElement.appendChild(submitButton);
+ return new H.EngineAutofillForm(formElement, elements, items, formIdentifier);
+ },
+ AutofillInfo_AutofillInfo$fromFrameworkMessage: function(autofill, textCapitalization) {
+ var hintsList, editingState, t3,
+ t1 = J.getInterceptor$asx(autofill),
+ t2 = t1.$index(autofill, "uniqueIdentifier");
+ t2.toString;
+ hintsList = t1.$index(autofill, "hints");
+ editingState = H.EditingState_EditingState$fromFrameworkMessage(t1.$index(autofill, "editingValue"));
+ t1 = $.$get$BrowserAutofillHints__singletonInstance();
+ t3 = J.$index$asx(hintsList, 0);
+ t1 = t1._flutterToEngineMap.$index(0, t3);
+ return new H.AutofillInfo(editingState, t2, textCapitalization, t1 == null ? t3 : t1);
+ },
+ EditingState_EditingState$fromFrameworkMessage: function(flutterEditingState) {
+ var t1 = J.getInterceptor$asx(flutterEditingState),
+ selectionBase = t1.$index(flutterEditingState, "selectionBase"),
+ selectionExtent = t1.$index(flutterEditingState, "selectionExtent");
+ return new H.EditingState(t1.$index(flutterEditingState, "text"), Math.max(0, H.checkNum(selectionBase)), Math.max(0, H.checkNum(selectionExtent)));
+ },
+ EditingState_EditingState$fromDomElement: function(domElement, textCapitalization) {
+ if (type$.InputElement._is(domElement))
+ return new H.EditingState(domElement.value, domElement.selectionStart, domElement.selectionEnd);
+ else if (type$.TextAreaElement._is(domElement))
+ return new H.EditingState(domElement.value, domElement.selectionStart, domElement.selectionEnd);
+ else
+ throw H.wrapException(P.UnsupportedError$("Initialized with unsupported input type"));
+ },
+ InputConfiguration$fromFrameworkMessage: function(flutterInputConfiguration) {
+ var t4, t5, t6, t7, t8,
+ _s9_ = "inputType",
+ _s8_ = "autofill",
+ t1 = J.getInterceptor$asx(flutterInputConfiguration),
+ t2 = J.$index$asx(t1.$index(flutterInputConfiguration, _s9_), "name"),
+ t3 = J.$index$asx(t1.$index(flutterInputConfiguration, _s9_), "decimal");
+ t2 = H.EngineInputType_fromName(t2, t3 == null ? false : t3);
+ t3 = t1.$index(flutterInputConfiguration, "inputAction");
+ if (t3 == null)
+ t3 = "TextInputAction.done";
+ t4 = t1.$index(flutterInputConfiguration, "obscureText");
+ if (t4 == null)
+ t4 = false;
+ t5 = t1.$index(flutterInputConfiguration, "readOnly");
+ if (t5 == null)
+ t5 = false;
+ t6 = t1.$index(flutterInputConfiguration, "autocorrect");
+ if (t6 == null)
+ t6 = true;
+ t7 = H.TextCapitalizationConfig$fromInputConfiguration(t1.$index(flutterInputConfiguration, "textCapitalization"));
+ t8 = t1.containsKey$1(flutterInputConfiguration, _s8_) ? H.AutofillInfo_AutofillInfo$fromFrameworkMessage(t1.$index(flutterInputConfiguration, _s8_), C.TextCapitalizationConfig_TextCapitalization_3) : null;
+ return new H.InputConfiguration(t2, t3, t5, t4, t6, t8, H.EngineAutofillForm_fromFrameworkMessage(t1.$index(flutterInputConfiguration, _s8_), t1.$index(flutterInputConfiguration, "fields")), t7);
+ },
+ GloballyPositionedTextEditingStrategy$: function(owner) {
+ return new H.GloballyPositionedTextEditingStrategy(owner, H.setRuntimeTypeInfo([], type$.JSArray_StreamSubscription_Event));
+ },
+ setElementTransform: function(element, matrix4) {
+ var t2,
+ t1 = element.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform-origin"), "0 0 0", "");
+ t2 = H.float64ListToCssTransform(matrix4);
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), t2, "");
+ },
+ float64ListToCssTransform: function(matrix) {
+ var transformKind = H.transformKindOf(matrix);
+ if (transformKind === C.TransformKind_1)
+ return "matrix(" + H.S(matrix[0]) + "," + H.S(matrix[1]) + "," + H.S(matrix[4]) + "," + H.S(matrix[5]) + "," + H.S(matrix[12]) + "," + H.S(matrix[13]) + ")";
+ else if (transformKind === C.TransformKind_2)
+ return H.float64ListToCssTransform3d(matrix);
+ else
+ return "none";
+ },
+ transformKindOf: function(matrix) {
+ if (!(matrix[15] === 1 && matrix[14] === 0 && matrix[11] === 0 && matrix[10] === 1 && matrix[9] === 0 && matrix[8] === 0 && matrix[7] === 0 && matrix[6] === 0 && matrix[3] === 0 && matrix[2] === 0))
+ return C.TransformKind_2;
+ if (matrix[0] === 1 && matrix[1] === 0 && matrix[4] === 0 && matrix[5] === 1 && matrix[12] === 0 && matrix[13] === 0)
+ return C.TransformKind_0;
+ else
+ return C.TransformKind_1;
+ },
+ float64ListToCssTransform3d: function(matrix) {
+ var tx, ty,
+ t1 = matrix[0];
+ if (t1 === 1 && matrix[1] === 0 && matrix[2] === 0 && matrix[3] === 0 && matrix[4] === 0 && matrix[5] === 1 && matrix[6] === 0 && matrix[7] === 0 && matrix[8] === 0 && matrix[9] === 0 && matrix[10] === 1 && matrix[11] === 0 && matrix[14] === 0 && matrix[15] === 1) {
+ tx = matrix[12];
+ ty = matrix[13];
+ return "translate3d(" + H.S(tx) + "px, " + H.S(ty) + "px, 0px)";
+ } else
+ return "matrix3d(" + H.S(t1) + "," + H.S(matrix[1]) + "," + H.S(matrix[2]) + "," + H.S(matrix[3]) + "," + H.S(matrix[4]) + "," + H.S(matrix[5]) + "," + H.S(matrix[6]) + "," + H.S(matrix[7]) + "," + H.S(matrix[8]) + "," + H.S(matrix[9]) + "," + H.S(matrix[10]) + "," + H.S(matrix[11]) + "," + H.S(matrix[12]) + "," + H.S(matrix[13]) + "," + H.S(matrix[14]) + "," + H.S(matrix[15]) + ")";
+ },
+ transformRect: function(transform, rect) {
+ var t1 = $.$get$_tempRectData();
+ t1[0] = rect.left;
+ t1[1] = rect.top;
+ t1[2] = rect.right;
+ t1[3] = rect.bottom;
+ H.transformLTRB(transform, t1);
+ return new P.Rect(t1[0], t1[1], t1[2], t1[3]);
+ },
+ transformLTRB: function(transform, ltrb) {
+ var t2, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33, argStorage,
+ t1 = $.$get$_tempPointData();
+ t1[0] = ltrb[0];
+ t1[4] = ltrb[1];
+ t1[8] = 0;
+ t1[12] = 1;
+ t1[1] = ltrb[2];
+ t1[5] = ltrb[1];
+ t1[9] = 0;
+ t1[13] = 1;
+ t1[2] = ltrb[0];
+ t1[6] = ltrb[3];
+ t1[10] = 0;
+ t1[14] = 1;
+ t1[3] = ltrb[2];
+ t1[7] = ltrb[3];
+ t1[11] = 0;
+ t1[15] = 1;
+ t2 = $.$get$_tempPointMatrix().__engine$_m4storage;
+ m00 = t2[0];
+ m01 = t2[4];
+ m02 = t2[8];
+ m03 = t2[12];
+ m10 = t2[1];
+ m11 = t2[5];
+ m12 = t2[9];
+ m13 = t2[13];
+ m20 = t2[2];
+ m21 = t2[6];
+ m22 = t2[10];
+ m23 = t2[14];
+ m30 = t2[3];
+ m31 = t2[7];
+ m32 = t2[11];
+ m33 = t2[15];
+ argStorage = transform.__engine$_m4storage;
+ t2[0] = m00 * argStorage[0] + m01 * argStorage[4] + m02 * argStorage[8] + m03 * argStorage[12];
+ t2[4] = m00 * argStorage[1] + m01 * argStorage[5] + m02 * argStorage[9] + m03 * argStorage[13];
+ t2[8] = m00 * argStorage[2] + m01 * argStorage[6] + m02 * argStorage[10] + m03 * argStorage[14];
+ t2[12] = m00 * argStorage[3] + m01 * argStorage[7] + m02 * argStorage[11] + m03 * argStorage[15];
+ t2[1] = m10 * argStorage[0] + m11 * argStorage[4] + m12 * argStorage[8] + m13 * argStorage[12];
+ t2[5] = m10 * argStorage[1] + m11 * argStorage[5] + m12 * argStorage[9] + m13 * argStorage[13];
+ t2[9] = m10 * argStorage[2] + m11 * argStorage[6] + m12 * argStorage[10] + m13 * argStorage[14];
+ t2[13] = m10 * argStorage[3] + m11 * argStorage[7] + m12 * argStorage[11] + m13 * argStorage[15];
+ t2[2] = m20 * argStorage[0] + m21 * argStorage[4] + m22 * argStorage[8] + m23 * argStorage[12];
+ t2[6] = m20 * argStorage[1] + m21 * argStorage[5] + m22 * argStorage[9] + m23 * argStorage[13];
+ t2[10] = m20 * argStorage[2] + m21 * argStorage[6] + m22 * argStorage[10] + m23 * argStorage[14];
+ t2[14] = m20 * argStorage[3] + m21 * argStorage[7] + m22 * argStorage[11] + m23 * argStorage[15];
+ t2[3] = m30 * argStorage[0] + m31 * argStorage[4] + m32 * argStorage[8] + m33 * argStorage[12];
+ t2[7] = m30 * argStorage[1] + m31 * argStorage[5] + m32 * argStorage[9] + m33 * argStorage[13];
+ t2[11] = m30 * argStorage[2] + m31 * argStorage[6] + m32 * argStorage[10] + m33 * argStorage[14];
+ t2[15] = m30 * argStorage[3] + m31 * argStorage[7] + m32 * argStorage[11] + m33 * argStorage[15];
+ ltrb[0] = Math.min(Math.min(Math.min(t1[0], t1[1]), t1[2]), t1[3]);
+ ltrb[1] = Math.min(Math.min(Math.min(t1[4], t1[5]), t1[6]), t1[7]);
+ ltrb[2] = Math.max(Math.max(Math.max(t1[0], t1[1]), t1[2]), t1[3]);
+ ltrb[3] = Math.max(Math.max(Math.max(t1[4], t1[5]), t1[6]), t1[7]);
+ },
+ rectContainsOther: function(rect, other) {
+ return rect.left <= other.left && rect.top <= other.top && rect.right >= other.right && rect.bottom >= other.bottom;
+ },
+ _pathToSvgClipPath: function(path, offsetX, offsetY, scaleX, scaleY) {
+ var sb, clipId,
+ _s58_ = '>> 0 === 4278190080) {
+ hexValue = C.JSInt_methods.toRadixString$1(value & 16777215, 16);
+ switch (hexValue.length) {
+ case 1:
+ return "#00000" + hexValue;
+ case 2:
+ return "#0000" + hexValue;
+ case 3:
+ return "#000" + hexValue;
+ case 4:
+ return "#00" + hexValue;
+ case 5:
+ return "#0" + hexValue;
+ default:
+ return "#" + hexValue;
+ }
+ } else {
+ t1 = "rgba(" + C.JSInt_methods.toString$0(value >>> 16 & 255) + "," + C.JSInt_methods.toString$0(value >>> 8 & 255) + "," + C.JSInt_methods.toString$0(value & 255) + "," + C.JSDouble_methods.toString$0((value >>> 24 & 255) / 255) + ")";
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ },
+ colorComponentsToCssString: function(r, g, b, a) {
+ if (a === 255)
+ return "rgb(" + r + "," + g + "," + b + ")";
+ else
+ return "rgba(" + r + "," + g + "," + b + "," + C.JSDouble_methods.toStringAsFixed$1(a / 255, 2) + ")";
+ },
+ _isMacOrIOS: function() {
+ var t1 = H._operatingSystem();
+ if (t1 !== C.OperatingSystem_0) {
+ t1 = H._operatingSystem();
+ t1 = t1 === C.OperatingSystem_4;
+ } else
+ t1 = true;
+ return t1;
+ },
+ canonicalizeFontFamily: function(fontFamily) {
+ var t1;
+ if (J.containsKey$1$x(C.Set_wIvsi._collection$_map, fontFamily))
+ return fontFamily;
+ t1 = H._operatingSystem();
+ if (t1 !== C.OperatingSystem_0) {
+ t1 = H._operatingSystem();
+ t1 = t1 === C.OperatingSystem_4;
+ } else
+ t1 = true;
+ if (t1)
+ if (fontFamily === ".SF Pro Text" || fontFamily === ".SF Pro Display" || fontFamily === ".SF UI Text" || fontFamily === ".SF UI Display")
+ return $.$get$_fallbackFontFamily();
+ return '"' + H.S(fontFamily) + '", ' + $.$get$_fallbackFontFamily() + ", sans-serif";
+ },
+ clampInt: function(value, min, max) {
+ if (value < min)
+ return min;
+ else if (value > max)
+ return max;
+ else
+ return value;
+ },
+ Matrix4_tryInvert0: function(other) {
+ var r = new H.Matrix40(new Float32Array(16));
+ if (r.copyInverse$1(other) === 0)
+ return null;
+ return r;
+ },
+ Matrix4_Matrix4$translationValues0: function(x, y, z) {
+ var t1 = new Float32Array(16),
+ t2 = new H.Matrix40(t1);
+ t2.setIdentity$0();
+ t1[14] = z;
+ t1[13] = y;
+ t1[12] = x;
+ return t2;
+ },
+ Matrix4$fromFloat32List: function(_m4storage) {
+ return new H.Matrix40(_m4storage);
+ },
+ Vector3_Vector3: function(x, y, z) {
+ var t1 = new Float32Array(3);
+ t1[0] = x;
+ t1[1] = y;
+ t1[2] = z;
+ return new H.Vector30(t1);
+ },
+ WebExperiments$_: function() {
+ var t1 = new H.WebExperiments();
+ t1.WebExperiments$_$0();
+ return t1;
+ },
+ initializeEngine_closure: function initializeEngine_closure() {
+ },
+ initializeEngine_closure0: function initializeEngine_closure0(t0) {
+ this._box_0 = t0;
+ },
+ initializeEngine__closure: function initializeEngine__closure(t0) {
+ this._box_0 = t0;
+ },
+ _NullTreeSanitizer: function _NullTreeSanitizer() {
+ },
+ AlarmClock: function AlarmClock(t0) {
+ var _ = this;
+ _._timestampFunction = t0;
+ _.__AlarmClock_callback = _._datetime = _._timer = null;
+ _.__AlarmClock_callback_isSet = false;
+ },
+ AssetManager: function AssetManager() {
+ },
+ AssetManager__baseUrl_closure: function AssetManager__baseUrl_closure() {
+ },
+ AssetManager__baseUrl_closure0: function AssetManager__baseUrl_closure0() {
+ },
+ AssetManagerException: function AssetManagerException(t0, t1) {
+ this.url = t0;
+ this.httpStatus = t1;
+ },
+ BitmapCanvas: function BitmapCanvas(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._bounds = t0;
+ _._elementCache = null;
+ _.rootElement = t1;
+ _._canvasPool = t2;
+ _._cachedLastStyle = null;
+ _.__engine$_children = t3;
+ _._widthInBitmapPixels = t4;
+ _._heightInBitmapPixels = t5;
+ _._saveCount = 0;
+ _.__engine$_devicePixelRatio = t6;
+ _._canvasPositionY = _._canvasPositionX = null;
+ _._preserveImageData = _._contains3dTransform = _._childOverdraw = false;
+ _._density = t7;
+ },
+ BrowserEngine: function BrowserEngine(t0) {
+ this.__engine$_name = t0;
+ },
+ OperatingSystem: function OperatingSystem(t0) {
+ this.__engine$_name = t0;
+ },
+ _CanvasPool: function _CanvasPool(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._contextHandle = _.__engine$_context = null;
+ _._widthInBitmapPixels = t0;
+ _._heightInBitmapPixels = t1;
+ _._rootElement = _.__engine$_canvas = _._reusablePool = _._activeCanvasList = null;
+ _._saveContextCount = 0;
+ _._density = t2;
+ _._saveStack = t3;
+ _._clipStack = null;
+ _._currentTransform = t4;
+ },
+ ContextStateHandle: function ContextStateHandle(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.context = t0;
+ _._canvasPool = t1;
+ _.density = t2;
+ _._currentBlendMode = t3;
+ _._currentStrokeCap = t4;
+ _._currentStrokeJoin = t5;
+ _._currentStrokeStyle = _._currentFillStyle = null;
+ _._currentLineWidth = 1;
+ _._lastUsedPaint = _._currentFilter = null;
+ _._debugIsPaintSetUp = false;
+ },
+ _SaveStackTracking: function _SaveStackTracking() {
+ },
+ CanvasKit: function CanvasKit() {
+ },
+ CanvasKitInitOptions: function CanvasKitInitOptions() {
+ },
+ CanvasKitInitPromise: function CanvasKitInitPromise() {
+ },
+ SkColorSpace: function SkColorSpace() {
+ },
+ SkWebGLContextOptions: function SkWebGLContextOptions() {
+ },
+ SkSurface: function SkSurface() {
+ },
+ SkGrContext: function SkGrContext() {
+ },
+ SkFontSlantEnum: function SkFontSlantEnum() {
+ },
+ SkFontSlant: function SkFontSlant() {
+ },
+ SkFontWeightEnum: function SkFontWeightEnum() {
+ },
+ SkFontWeight: function SkFontWeight() {
+ },
+ SkAffinityEnum: function SkAffinityEnum() {
+ },
+ SkAffinity: function SkAffinity() {
+ },
+ SkTextDirectionEnum: function SkTextDirectionEnum() {
+ },
+ SkTextDirection: function SkTextDirection() {
+ },
+ SkTextAlignEnum: function SkTextAlignEnum() {
+ },
+ SkTextAlign: function SkTextAlign() {
+ },
+ SkRectHeightStyleEnum: function SkRectHeightStyleEnum() {
+ },
+ SkRectHeightStyle: function SkRectHeightStyle() {
+ },
+ SkRectWidthStyleEnum: function SkRectWidthStyleEnum() {
+ },
+ SkRectWidthStyle: function SkRectWidthStyle() {
+ },
+ SkVertexModeEnum: function SkVertexModeEnum() {
+ },
+ SkVertexMode: function SkVertexMode() {
+ },
+ SkPointModeEnum: function SkPointModeEnum() {
+ },
+ SkPointMode: function SkPointMode() {
+ },
+ SkClipOpEnum: function SkClipOpEnum() {
+ },
+ SkClipOp: function SkClipOp() {
+ },
+ SkFillTypeEnum: function SkFillTypeEnum() {
+ },
+ SkFillType: function SkFillType() {
+ },
+ SkPathOpEnum: function SkPathOpEnum() {
+ },
+ SkPathOp: function SkPathOp() {
+ },
+ SkBlurStyleEnum: function SkBlurStyleEnum() {
+ },
+ SkBlurStyle: function SkBlurStyle() {
+ },
+ SkStrokeCapEnum: function SkStrokeCapEnum() {
+ },
+ SkStrokeCap: function SkStrokeCap() {
+ },
+ SkPaintStyleEnum: function SkPaintStyleEnum() {
+ },
+ SkPaintStyle: function SkPaintStyle() {
+ },
+ SkBlendModeEnum: function SkBlendModeEnum() {
+ },
+ SkBlendMode: function SkBlendMode() {
+ },
+ SkStrokeJoinEnum: function SkStrokeJoinEnum() {
+ },
+ SkStrokeJoin: function SkStrokeJoin() {
+ },
+ SkFilterQualityEnum: function SkFilterQualityEnum() {
+ },
+ SkFilterQuality: function SkFilterQuality() {
+ },
+ SkTileModeEnum: function SkTileModeEnum() {
+ },
+ SkTileMode: function SkTileMode() {
+ },
+ SkAlphaTypeEnum: function SkAlphaTypeEnum() {
+ },
+ SkAlphaType: function SkAlphaType() {
+ },
+ SkColorTypeEnum: function SkColorTypeEnum() {
+ },
+ SkColorType: function SkColorType() {
+ },
+ SkAnimatedImage: function SkAnimatedImage() {
+ },
+ SkImage: function SkImage() {
+ },
+ SkShaderNamespace: function SkShaderNamespace() {
+ },
+ SkShader: function SkShader() {
+ },
+ SkPaint: function SkPaint() {
+ },
+ SkMaskFilter: function SkMaskFilter() {
+ },
+ SkColorFilterNamespace: function SkColorFilterNamespace() {
+ },
+ SkColorFilter: function SkColorFilter() {
+ },
+ SkImageFilterNamespace: function SkImageFilterNamespace() {
+ },
+ SkImageFilter: function SkImageFilter() {
+ },
+ _NativeFloat32ArrayType: function _NativeFloat32ArrayType() {
+ },
+ SkFloat32List: function SkFloat32List() {
+ },
+ SkPath: function SkPath() {
+ },
+ SkContourMeasureIter: function SkContourMeasureIter() {
+ },
+ SkContourMeasure: function SkContourMeasure() {
+ },
+ SkPictureRecorder: function SkPictureRecorder() {
+ },
+ SkCanvas: function SkCanvas() {
+ },
+ SkPicture: function SkPicture() {
+ },
+ SkParagraphBuilderNamespace: function SkParagraphBuilderNamespace() {
+ },
+ SkParagraphBuilder: function SkParagraphBuilder() {
+ },
+ SkParagraphStyle: function SkParagraphStyle() {
+ },
+ SkParagraphStyleProperties: function SkParagraphStyleProperties() {
+ },
+ SkTextStyle: function SkTextStyle() {
+ },
+ SkTextDecorationStyleEnum: function SkTextDecorationStyleEnum() {
+ },
+ SkTextDecorationStyle: function SkTextDecorationStyle() {
+ },
+ SkTextBaselineEnum: function SkTextBaselineEnum() {
+ },
+ SkTextBaseline: function SkTextBaseline() {
+ },
+ SkPlaceholderAlignmentEnum: function SkPlaceholderAlignmentEnum() {
+ },
+ SkPlaceholderAlignment: function SkPlaceholderAlignment() {
+ },
+ SkTextStyleProperties: function SkTextStyleProperties() {
+ },
+ SkStrutStyleProperties: function SkStrutStyleProperties() {
+ },
+ SkPlaceholderStyleProperties: function SkPlaceholderStyleProperties() {
+ },
+ SkFontStyle: function SkFontStyle() {
+ },
+ SkTextShadow: function SkTextShadow() {
+ },
+ SkFontFeature: function SkFontFeature() {
+ },
+ SkFontMgr: function SkFontMgr() {
+ },
+ TypefaceFontProvider: function TypefaceFontProvider() {
+ },
+ SkParagraph: function SkParagraph() {
+ },
+ SkTextPosition: function SkTextPosition() {
+ },
+ SkTextRange: function SkTextRange() {
+ },
+ SkVertices: function SkVertices() {
+ },
+ SkTonalColors: function SkTonalColors() {
+ },
+ SkFontMgrNamespace: function SkFontMgrNamespace() {
+ },
+ TypefaceFontProviderNamespace: function TypefaceFontProviderNamespace() {
+ },
+ SkDeletable: function SkDeletable() {
+ },
+ SkObjectFinalizationRegistry: function SkObjectFinalizationRegistry() {
+ },
+ SkData: function SkData() {
+ },
+ SkImageInfo: function SkImageInfo() {
+ },
+ CanvasKitCanvas: function CanvasKitCanvas(t0) {
+ this.__engine$_canvas = t0;
+ },
+ SkiaObjectCache: function SkiaObjectCache(t0, t1, t2) {
+ this.maximumSize = t0;
+ this._itemQueue = t1;
+ this._itemMap = t2;
+ },
+ CkTextStyle: function CkTextStyle(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19) {
+ var _ = this;
+ _.skTextStyle = t0;
+ _.color = t1;
+ _.decoration = t2;
+ _.decorationColor = t3;
+ _.decorationStyle = t4;
+ _.decorationThickness = t5;
+ _.fontWeight = t6;
+ _.fontStyle = t7;
+ _.textBaseline = t8;
+ _.fontFamily = t9;
+ _.fontFamilyFallback = t10;
+ _.fontSize = t11;
+ _.letterSpacing = t12;
+ _.wordSpacing = t13;
+ _.height = t14;
+ _.locale = t15;
+ _.background = t16;
+ _.foreground = t17;
+ _.shadows = t18;
+ _.fontFeatures = t19;
+ },
+ ClipboardMessageHandler: function ClipboardMessageHandler(t0, t1) {
+ this._copyToClipboardStrategy = t0;
+ this._pasteFromClipboardStrategy = t1;
+ },
+ ClipboardMessageHandler_setDataMethodCall_closure: function ClipboardMessageHandler_setDataMethodCall_closure(t0, t1) {
+ this._box_0 = t0;
+ this.callback = t1;
+ },
+ ClipboardMessageHandler_setDataMethodCall_closure0: function ClipboardMessageHandler_setDataMethodCall_closure0(t0, t1) {
+ this._box_0 = t0;
+ this.callback = t1;
+ },
+ ClipboardMessageHandler_getDataMethodCall_closure: function ClipboardMessageHandler_getDataMethodCall_closure(t0) {
+ this.callback = t0;
+ },
+ ClipboardMessageHandler_getDataMethodCall_closure0: function ClipboardMessageHandler_getDataMethodCall_closure0(t0) {
+ this.callback = t0;
+ },
+ ClipboardAPICopyStrategy: function ClipboardAPICopyStrategy() {
+ },
+ ClipboardAPIPasteStrategy: function ClipboardAPIPasteStrategy() {
+ },
+ ExecCommandCopyStrategy: function ExecCommandCopyStrategy() {
+ },
+ ExecCommandPasteStrategy: function ExecCommandPasteStrategy() {
+ },
+ DomCanvas: function DomCanvas(t0, t1, t2, t3) {
+ var _ = this;
+ _.rootElement = t0;
+ _.SaveElementStackTracking__saveStack = t1;
+ _.SaveElementStackTracking__elementStack = t2;
+ _.SaveElementStackTracking__currentTransform = t3;
+ },
+ DomRenderer: function DomRenderer(t0) {
+ var _ = this;
+ _._glassPaneElement = _._staleHotRestartState = _._sceneElement = _._sceneHostElement = _._canvasKitScript = _._viewportMeta = _._styleElement = _._localeSubscription = _._resizeSubscription = null;
+ _.rootElement = t0;
+ _._debugFrameStatistics = null;
+ },
+ DomRenderer_reset_closure: function DomRenderer_reset_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.$this = t1;
+ this.initialInnerWidth = t2;
+ },
+ DomRenderer_setPreferredOrientation_closure: function DomRenderer_setPreferredOrientation_closure(t0) {
+ this.completer = t0;
+ },
+ DomRenderer_setPreferredOrientation_closure0: function DomRenderer_setPreferredOrientation_closure0(t0) {
+ this.completer = t0;
+ },
+ EngineCanvas: function EngineCanvas() {
+ },
+ _SaveStackEntry: function _SaveStackEntry(t0, t1) {
+ this.transform = t0;
+ this.clipStack = t1;
+ },
+ _SaveClipEntry: function _SaveClipEntry(t0, t1, t2, t3) {
+ var _ = this;
+ _.rect = t0;
+ _.rrect = t1;
+ _.path = t2;
+ _.currentTransform = t3;
+ },
+ _SaveElementStackEntry: function _SaveElementStackEntry(t0, t1) {
+ this.savedElement = t0;
+ this.transform = t1;
+ },
+ SaveElementStackTracking: function SaveElementStackTracking() {
+ },
+ FrameReference: function FrameReference(t0) {
+ this.value = t0;
+ },
+ CrossFrameCache: function CrossFrameCache() {
+ this._reusablePool = this.__engine$_cache = null;
+ },
+ SurfaceCanvas: function SurfaceCanvas(t0) {
+ this.__engine$_canvas = t0;
+ },
+ _DomClip: function _DomClip() {
+ },
+ PersistedClipRect: function PersistedClipRect(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.clipBehavior = t0;
+ _.rect = t1;
+ _._DomClip__childContainer = t2;
+ _.__engine$_children = t3;
+ _._oldLayer = t4;
+ _.__engine$_index = -1;
+ _.__engine$_state = t5;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ PersistedPhysicalShape: function PersistedPhysicalShape(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _.path = t0;
+ _.pathBounds = t1;
+ _.elevation = t2;
+ _.color = t3;
+ _.shadowColor = t4;
+ _.clipBehavior = t5;
+ _._clipElement = null;
+ _._DomClip__childContainer = t6;
+ _.__engine$_children = t7;
+ _._oldLayer = t8;
+ _.__engine$_index = -1;
+ _.__engine$_state = t9;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ PersistedClipPath: function PersistedClipPath(t0, t1, t2, t3) {
+ var _ = this;
+ _.clipPath = t0;
+ _._clipElement = null;
+ _.__engine$_children = t1;
+ _._oldLayer = t2;
+ _.__engine$_index = -1;
+ _.__engine$_state = t3;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ PersistedOffset: function PersistedOffset(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.dx = t0;
+ _.dy = t1;
+ _.__engine$_children = t2;
+ _._oldLayer = t3;
+ _.__engine$_index = -1;
+ _.__engine$_state = t4;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ PersistedOpacity: function PersistedOpacity(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.alpha = t0;
+ _.offset = t1;
+ _.__engine$_children = t2;
+ _._oldLayer = t3;
+ _.__engine$_index = -1;
+ _.__engine$_state = t4;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ SurfacePaint: function SurfacePaint(t0) {
+ this._paintData = t0;
+ this._frozen = false;
+ },
+ SurfacePaintData: function SurfacePaintData() {
+ var _ = this;
+ _.strokeJoin = _.strokeCap = _.strokeWidth = _.style = _.blendMode = null;
+ _.isAntiAlias = true;
+ _.colorFilter = _.filterQuality = _.maskFilter = _.shader = _.color = null;
+ },
+ Conic: function Conic(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.p0x = t0;
+ _.p0y = t1;
+ _.p1x = t2;
+ _.p1y = t3;
+ _.p2x = t4;
+ _.p2y = t5;
+ _.fW = t6;
+ },
+ _QuadBounds: function _QuadBounds() {
+ var _ = this;
+ _.maxY = _.maxX = _.minY = _.minX = 0;
+ },
+ _ConicBounds: function _ConicBounds() {
+ var _ = this;
+ _.maxY = _.maxX = _.minY = _.minX = 0;
+ },
+ _ConicPair: function _ConicPair() {
+ this.second = this.first = null;
+ },
+ _CubicBounds: function _CubicBounds() {
+ var _ = this;
+ _.maxY = _.minY = _.maxX = _.minX = 0;
+ },
+ SurfacePath: function SurfacePath(t0, t1) {
+ var _ = this;
+ _.pathRef = t0;
+ _._fillType = t1;
+ _.fLastMoveToIndex = 0;
+ _._firstDirection = _._convexityType = -1;
+ },
+ _SkQuadCoefficients: function _SkQuadCoefficients(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.ax = t0;
+ _.ay = t1;
+ _.bx = t2;
+ _.by = t3;
+ _.cx = t4;
+ _.cy = t5;
+ },
+ PathRef: function PathRef(t0, t1) {
+ var _ = this;
+ _.cachedBounds = _.fBounds = null;
+ _._fVerbsCapacity = _._fPointsLength = _._fPointsCapacity = 0;
+ _._fPoints = t0;
+ _._fVerbs = t1;
+ _._conicWeightsCapacity = _._fVerbsLength = 0;
+ _._conicWeights = null;
+ _._conicWeightsLength = 0;
+ _.fIsFinite = _.fBoundsIsDirty = true;
+ _.fRRectOrOvalIsCCW = _.fIsRect = _.fIsRRect = _.fIsOval = false;
+ _.fRRectOrOvalStartIdx = -1;
+ _.fSegmentMask = 0;
+ },
+ PathRefIterator: function PathRefIterator(t0) {
+ var _ = this;
+ _.pathRef = t0;
+ _._conicWeightIndex = -1;
+ _.iterIndex = _._pointIndex = _._verbIndex = 0;
+ },
+ _QuadRoots: function _QuadRoots() {
+ this.root1 = this.root0 = null;
+ },
+ PathWinding: function PathWinding(t0, t1, t2, t3) {
+ var _ = this;
+ _.pathRef = t0;
+ _.x = t1;
+ _.y = t2;
+ _._onCurveCount = _._w = 0;
+ _.__engine$_buffer = t3;
+ },
+ PathIterator: function PathIterator(t0, t1, t2) {
+ var _ = this;
+ _.pathRef = t0;
+ _._forceClose = t1;
+ _._verbCount = t2;
+ _._needClose = false;
+ _._segmentState = 0;
+ _._conicWeightIndex = -1;
+ _._pointIndex = _._verbIndex = _._moveToY = _._moveToX = _._lastPointY = _._lastPointX = 0;
+ },
+ _PaintRequest: function _PaintRequest(t0, t1) {
+ this.canvasSize = t0;
+ this.paintCallback = t1;
+ },
+ PersistedPicture: function PersistedPicture(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.__engine$_canvas = null;
+ _.dx = t0;
+ _.dy = t1;
+ _.picture = t2;
+ _.localPaintBounds = t3;
+ _._density = 1;
+ _._requiresRepaint = false;
+ _._elementCache = t4;
+ _._exactLocalCullRect = _._exactGlobalCullRect = _._optimalLocalCullRect = null;
+ _._oldLayer = t5;
+ _.__engine$_index = -1;
+ _.__engine$_state = t6;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ PersistedPicture__applyBitmapPaint_closure: function PersistedPicture__applyBitmapPaint_closure(t0) {
+ this.$this = t0;
+ },
+ PersistedPlatformView: function PersistedPlatformView(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.viewId = t0;
+ _.dx = t1;
+ _.dy = t2;
+ _.width = t3;
+ _.height = t4;
+ _.__PersistedPlatformView__shadowRoot = null;
+ _.__PersistedPlatformView__shadowRoot_isSet = false;
+ _._oldLayer = t5;
+ _.__engine$_index = -1;
+ _.__engine$_state = t6;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ RecordingCanvas: function RecordingCanvas(t0, t1) {
+ var _ = this;
+ _._paintBounds = t0;
+ _._pictureBounds = null;
+ _._commands = t1;
+ _._recordingEnded = _._didDraw = _._hasArbitraryPaint = false;
+ _._saveCount = 1;
+ },
+ PaintCommand: function PaintCommand() {
+ },
+ DrawCommand: function DrawCommand() {
+ },
+ PaintSave: function PaintSave() {
+ },
+ PaintRestore: function PaintRestore() {
+ },
+ PaintTranslate: function PaintTranslate(t0, t1) {
+ this.dx = t0;
+ this.dy = t1;
+ },
+ PaintScale: function PaintScale(t0, t1) {
+ this.sx = t0;
+ this.sy = t1;
+ },
+ PaintRotate: function PaintRotate(t0) {
+ this.radians = t0;
+ },
+ PaintTransform: function PaintTransform(t0) {
+ this.matrix4 = t0;
+ },
+ PaintClipRect: function PaintClipRect(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.rect = t0;
+ _.clipOp = t1;
+ _.isClippedOut = false;
+ _.leftBound = t2;
+ _.topBound = t3;
+ _.rightBound = t4;
+ _.bottomBound = t5;
+ },
+ PaintClipRRect: function PaintClipRRect(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.rrect = t0;
+ _.isClippedOut = false;
+ _.leftBound = t1;
+ _.topBound = t2;
+ _.rightBound = t3;
+ _.bottomBound = t4;
+ },
+ PaintClipPath: function PaintClipPath(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.path = t0;
+ _.isClippedOut = false;
+ _.leftBound = t1;
+ _.topBound = t2;
+ _.rightBound = t3;
+ _.bottomBound = t4;
+ },
+ PaintDrawLine: function PaintDrawLine(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.p1 = t0;
+ _.p2 = t1;
+ _.paint = t2;
+ _.isClippedOut = false;
+ _.leftBound = t3;
+ _.topBound = t4;
+ _.rightBound = t5;
+ _.bottomBound = t6;
+ },
+ PaintDrawRect: function PaintDrawRect(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.rect = t0;
+ _.paint = t1;
+ _.isClippedOut = false;
+ _.leftBound = t2;
+ _.topBound = t3;
+ _.rightBound = t4;
+ _.bottomBound = t5;
+ },
+ PaintDrawRRect: function PaintDrawRRect(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.rrect = t0;
+ _.paint = t1;
+ _.isClippedOut = false;
+ _.leftBound = t2;
+ _.topBound = t3;
+ _.rightBound = t4;
+ _.bottomBound = t5;
+ },
+ PaintDrawDRRect: function PaintDrawDRRect(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.outer = t0;
+ _.inner = t1;
+ _.paint = t2;
+ _.path = null;
+ _.isClippedOut = false;
+ _.leftBound = t3;
+ _.topBound = t4;
+ _.rightBound = t5;
+ _.bottomBound = t6;
+ },
+ PaintDrawCircle: function PaintDrawCircle(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.c = t0;
+ _.radius = t1;
+ _.paint = t2;
+ _.isClippedOut = false;
+ _.leftBound = t3;
+ _.topBound = t4;
+ _.rightBound = t5;
+ _.bottomBound = t6;
+ },
+ PaintDrawPath: function PaintDrawPath(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.path = t0;
+ _.paint = t1;
+ _.isClippedOut = false;
+ _.leftBound = t2;
+ _.topBound = t3;
+ _.rightBound = t4;
+ _.bottomBound = t5;
+ },
+ PaintDrawShadow: function PaintDrawShadow(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.path = t0;
+ _.color = t1;
+ _.elevation = t2;
+ _.transparentOccluder = t3;
+ _.isClippedOut = false;
+ _.leftBound = t4;
+ _.topBound = t5;
+ _.rightBound = t6;
+ _.bottomBound = t7;
+ },
+ PaintDrawParagraph: function PaintDrawParagraph(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.paragraph = t0;
+ _.offset = t1;
+ _.isClippedOut = false;
+ _.leftBound = t2;
+ _.topBound = t3;
+ _.rightBound = t4;
+ _.bottomBound = t5;
+ },
+ _PaintBounds: function _PaintBounds(t0, t1, t2, t3) {
+ var _ = this;
+ _.maxPaintBounds = t0;
+ _._didPaintInsideClipArea = false;
+ _.__engine$_top = _.__engine$_left = 17976931348623157e292;
+ _.__engine$_bottom = _.__engine$_right = -17976931348623157e292;
+ _.__engine$_transforms = t1;
+ _._clipStack = t2;
+ _._currentMatrixIsIdentity = true;
+ _._currentMatrix = t3;
+ _._clipRectInitialized = false;
+ _._currentClipBottom = _._currentClipRight = _._currentClipTop = _._currentClipLeft = 0;
+ },
+ SurfaceScene: function SurfaceScene(t0) {
+ this.webOnlyRootElement = t0;
+ },
+ PersistedScene: function PersistedScene(t0, t1, t2) {
+ var _ = this;
+ _.__engine$_children = t0;
+ _._oldLayer = t1;
+ _.__engine$_index = -1;
+ _.__engine$_state = t2;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ SurfaceSceneBuilder: function SurfaceSceneBuilder(t0) {
+ this._surfaceStack = t0;
+ },
+ SurfaceSceneBuilder_build_closure: function SurfaceSceneBuilder_build_closure(t0) {
+ this.$this = t0;
+ },
+ SurfaceSceneBuilder_build_closure0: function SurfaceSceneBuilder_build_closure0(t0) {
+ this.$this = t0;
+ },
+ EngineGradient: function EngineGradient() {
+ },
+ GradientLinear: function GradientLinear(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.from = t0;
+ _.to = t1;
+ _.colors = t2;
+ _.colorStops = t3;
+ _.matrix4 = t4;
+ },
+ commitScene_closure: function commitScene_closure() {
+ },
+ PersistedSurfaceState: function PersistedSurfaceState(t0) {
+ this.__engine$_name = t0;
+ },
+ PersistedSurface: function PersistedSurface() {
+ },
+ PersistedLeafSurface: function PersistedLeafSurface() {
+ },
+ PersistedContainerSurface: function PersistedContainerSurface() {
+ },
+ PersistedContainerSurface__matchChildren_closure: function PersistedContainerSurface__matchChildren_closure() {
+ },
+ _PersistedSurfaceMatch: function _PersistedSurfaceMatch(t0, t1, t2) {
+ this.newChild = t0;
+ this.oldChildIndex = t1;
+ this.matchQuality = t2;
+ },
+ PersistedTransform: function PersistedTransform(t0, t1, t2, t3) {
+ var _ = this;
+ _.matrix4 = t0;
+ _.__engine$_children = t1;
+ _._oldLayer = t2;
+ _.__engine$_index = -1;
+ _.__engine$_state = t3;
+ _._localTransformInverse = _._localClipBounds = _._projectedClip = _.__engine$_transform = _.parent = _.rootElement = null;
+ },
+ Keyboard: function Keyboard(t0) {
+ var _ = this;
+ _._keydownTimers = t0;
+ _._keyupListener = _._keydownListener = null;
+ _._lastMetaState = 0;
+ },
+ Keyboard$__closure: function Keyboard$__closure(t0) {
+ this.$this = t0;
+ },
+ Keyboard$__closure0: function Keyboard$__closure0(t0) {
+ this.$this = t0;
+ },
+ Keyboard$__closure1: function Keyboard$__closure1(t0) {
+ this.$this = t0;
+ },
+ Keyboard__handleHtmlEvent_closure: function Keyboard__handleHtmlEvent_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.timerKey = t1;
+ this.event = t2;
+ },
+ MouseCursor: function MouseCursor() {
+ },
+ BrowserHistory: function BrowserHistory() {
+ },
+ MultiEntriesBrowserHistory: function MultiEntriesBrowserHistory(t0) {
+ var _ = this;
+ _.urlStrategy = t0;
+ _.__MultiEntriesBrowserHistory__lastSeenSerialCount = null;
+ _.__MultiEntriesBrowserHistory__lastSeenSerialCount_isSet = false;
+ _.__BrowserHistory__unsubscribe = null;
+ _._isDisposed = _.__BrowserHistory__unsubscribe_isSet = false;
+ },
+ MultiEntriesBrowserHistory_onPopState_closure: function MultiEntriesBrowserHistory_onPopState_closure() {
+ },
+ SingleEntryBrowserHistory: function SingleEntryBrowserHistory(t0, t1) {
+ var _ = this;
+ _.urlStrategy = t0;
+ _._flutterState = t1;
+ _.__BrowserHistory__unsubscribe = _._userProvidedRouteName = null;
+ _._isDisposed = _.__BrowserHistory__unsubscribe_isSet = false;
+ },
+ SingleEntryBrowserHistory_onPopState_closure: function SingleEntryBrowserHistory_onPopState_closure() {
+ },
+ SingleEntryBrowserHistory_onPopState_closure0: function SingleEntryBrowserHistory_onPopState_closure0() {
+ },
+ JsUrlStrategy: function JsUrlStrategy() {
+ },
+ UrlStrategy: function UrlStrategy() {
+ },
+ HashUrlStrategy: function HashUrlStrategy() {
+ },
+ HashUrlStrategy_addPopStateListener_closure: function HashUrlStrategy_addPopStateListener_closure(t0, t1) {
+ this.$this = t0;
+ this.fn = t1;
+ },
+ HashUrlStrategy__waitForPopState__unsubscribe_set: function HashUrlStrategy__waitForPopState__unsubscribe_set(t0) {
+ this._box_0 = t0;
+ },
+ HashUrlStrategy__waitForPopState__unsubscribe_get: function HashUrlStrategy__waitForPopState__unsubscribe_get(t0) {
+ this._box_0 = t0;
+ },
+ HashUrlStrategy__waitForPopState_closure: function HashUrlStrategy__waitForPopState_closure(t0, t1) {
+ this._unsubscribe_get = t0;
+ this.completer = t1;
+ },
+ CustomUrlStrategy: function CustomUrlStrategy(t0) {
+ this.delegate = t0;
+ },
+ PlatformLocation: function PlatformLocation() {
+ },
+ BrowserPlatformLocation: function BrowserPlatformLocation() {
+ },
+ EnginePictureRecorder: function EnginePictureRecorder() {
+ var _ = this;
+ _.__EnginePictureRecorder_cullRect = _.__engine$_canvas = null;
+ _._isRecording = _.__EnginePictureRecorder_cullRect_isSet = false;
+ },
+ EnginePicture: function EnginePicture(t0) {
+ this.recordingCanvas = t0;
+ },
+ EnginePlatformDispatcher: function EnginePlatformDispatcher(t0, t1, t2, t3) {
+ var _ = this;
+ _._configuration = t0;
+ _._windows = t1;
+ _._windowConfigurations = t2;
+ _._onLocaleChanged = _._onPlatformMessageZone = _._onPlatformMessage = _._onReportTimingsZone = _._onReportTimings = _._onPointerDataPacketZone = _._onPointerDataPacket = _._onDrawFrameZone = _._onDrawFrame = _._onBeginFrameZone = _._onBeginFrame = _._onMetricsChangedZone = _._onMetricsChanged = null;
+ _._brightnessMediaQuery = t3;
+ _.__EnginePlatformDispatcher_rasterizer = _._defaultRouteName = _._onSemanticsActionZone = _._onSemanticsAction = _._onSemanticsEnabledChangedZone = _._onSemanticsEnabledChanged = _._onPlatformBrightnessChangedZone = _._onPlatformBrightnessChanged = _._brightnessMediaQueryListener = null;
+ _.__EnginePlatformDispatcher_rasterizer_isSet = false;
+ },
+ EnginePlatformDispatcher__zonedPlatformMessageResponseCallback_closure: function EnginePlatformDispatcher__zonedPlatformMessageResponseCallback_closure(t0, t1) {
+ this.registrationZone = t0;
+ this.callback = t1;
+ },
+ EnginePlatformDispatcher__sendPlatformMessage_closure: function EnginePlatformDispatcher__sendPlatformMessage_closure(t0, t1) {
+ this.$this = t0;
+ this.callback = t1;
+ },
+ EnginePlatformDispatcher__sendPlatformMessage_closure0: function EnginePlatformDispatcher__sendPlatformMessage_closure0(t0, t1) {
+ this.$this = t0;
+ this.callback = t1;
+ },
+ EnginePlatformDispatcher__sendPlatformMessage_closure1: function EnginePlatformDispatcher__sendPlatformMessage_closure1(t0, t1) {
+ this.$this = t0;
+ this.callback = t1;
+ },
+ EnginePlatformDispatcher__sendPlatformMessage_closure2: function EnginePlatformDispatcher__sendPlatformMessage_closure2(t0, t1) {
+ this.$this = t0;
+ this.callback = t1;
+ },
+ EnginePlatformDispatcher__sendPlatformMessage_closure3: function EnginePlatformDispatcher__sendPlatformMessage_closure3(t0, t1) {
+ this.$this = t0;
+ this.callback = t1;
+ },
+ EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure: function EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure(t0) {
+ this.$this = t0;
+ },
+ EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure0: function EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure0(t0) {
+ this.$this = t0;
+ },
+ EnginePlatformDispatcher__replyToPlatformMessage_closure: function EnginePlatformDispatcher__replyToPlatformMessage_closure(t0, t1) {
+ this.callback = t0;
+ this.data = t1;
+ },
+ invoke3_closure: function invoke3_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.callback = t0;
+ _.arg1 = t1;
+ _.arg2 = t2;
+ _.arg3 = t3;
+ },
+ PointerBinding: function PointerBinding(t0, t1) {
+ var _ = this;
+ _.glassPaneElement = t0;
+ _._pointerDataConverter = t1;
+ _.__PointerBinding__adapter = null;
+ _.__PointerBinding__adapter_isSet = false;
+ },
+ PointerSupportDetector: function PointerSupportDetector() {
+ },
+ _BaseAdapter: function _BaseAdapter() {
+ },
+ _BaseAdapter_addEventListener_closure: function _BaseAdapter_addEventListener_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.acceptOutsideGlasspane = t1;
+ this.handler = t2;
+ },
+ _WheelEventListenerMixin: function _WheelEventListenerMixin() {
+ },
+ _WheelEventListenerMixin__addWheelEventListener_closure: function _WheelEventListenerMixin__addWheelEventListener_closure(t0) {
+ this.handler = t0;
+ },
+ _SanitizedDetails: function _SanitizedDetails(t0, t1) {
+ this.change = t0;
+ this.buttons = t1;
+ },
+ _ButtonSanitizer: function _ButtonSanitizer() {
+ this._pressedButtons = 0;
+ },
+ _PointerAdapter: function _PointerAdapter(t0, t1, t2, t3) {
+ var _ = this;
+ _._sanitizers = t0;
+ _.glassPaneElement = t1;
+ _._callback = t2;
+ _._pointerDataConverter = t3;
+ },
+ _PointerAdapter__ensureSanitizer_closure: function _PointerAdapter__ensureSanitizer_closure() {
+ },
+ _PointerAdapter__addPointerEventListener_closure: function _PointerAdapter__addPointerEventListener_closure(t0) {
+ this.handler = t0;
+ },
+ _PointerAdapter_setup_closure: function _PointerAdapter_setup_closure(t0) {
+ this.$this = t0;
+ },
+ _PointerAdapter_setup_closure0: function _PointerAdapter_setup_closure0(t0) {
+ this.$this = t0;
+ },
+ _PointerAdapter_setup__closure: function _PointerAdapter_setup__closure(t0) {
+ this.sanitizer = t0;
+ },
+ _PointerAdapter_setup_closure1: function _PointerAdapter_setup_closure1(t0) {
+ this.$this = t0;
+ },
+ _PointerAdapter_setup_closure2: function _PointerAdapter_setup_closure2(t0) {
+ this.$this = t0;
+ },
+ _PointerAdapter_setup_closure3: function _PointerAdapter_setup_closure3(t0) {
+ this.$this = t0;
+ },
+ _TouchAdapter: function _TouchAdapter(t0, t1, t2, t3) {
+ var _ = this;
+ _._pressedTouches = t0;
+ _.glassPaneElement = t1;
+ _._callback = t2;
+ _._pointerDataConverter = t3;
+ },
+ _TouchAdapter__addTouchEventListener_closure: function _TouchAdapter__addTouchEventListener_closure(t0) {
+ this.handler = t0;
+ },
+ _TouchAdapter_setup_closure: function _TouchAdapter_setup_closure(t0) {
+ this.$this = t0;
+ },
+ _TouchAdapter_setup_closure0: function _TouchAdapter_setup_closure0(t0) {
+ this.$this = t0;
+ },
+ _TouchAdapter_setup_closure1: function _TouchAdapter_setup_closure1(t0) {
+ this.$this = t0;
+ },
+ _TouchAdapter_setup_closure2: function _TouchAdapter_setup_closure2(t0) {
+ this.$this = t0;
+ },
+ _MouseAdapter: function _MouseAdapter(t0, t1, t2, t3) {
+ var _ = this;
+ _._sanitizer = t0;
+ _.glassPaneElement = t1;
+ _._callback = t2;
+ _._pointerDataConverter = t3;
+ },
+ _MouseAdapter__addMouseEventListener_closure: function _MouseAdapter__addMouseEventListener_closure(t0) {
+ this.handler = t0;
+ },
+ _MouseAdapter_setup_closure: function _MouseAdapter_setup_closure(t0) {
+ this.$this = t0;
+ },
+ _MouseAdapter_setup_closure0: function _MouseAdapter_setup_closure0(t0) {
+ this.$this = t0;
+ },
+ _MouseAdapter_setup_closure1: function _MouseAdapter_setup_closure1(t0) {
+ this.$this = t0;
+ },
+ _MouseAdapter_setup_closure2: function _MouseAdapter_setup_closure2(t0) {
+ this.$this = t0;
+ },
+ _PointerState: function _PointerState(t0, t1) {
+ var _ = this;
+ _._pointer = null;
+ _.down = false;
+ _.x = t0;
+ _.y = t1;
+ },
+ PointerDataConverter: function PointerDataConverter(t0) {
+ this._pointers = t0;
+ },
+ PointerDataConverter__ensureStateForPointer_closure: function PointerDataConverter__ensureStateForPointer_closure(t0, t1) {
+ this.x = t0;
+ this.y = t1;
+ },
+ Profiler: function Profiler() {
+ },
+ AccessibilityAnnouncements: function AccessibilityAnnouncements() {
+ this._element = this._removeElementTimer = null;
+ },
+ AccessibilityAnnouncements$__closure: function AccessibilityAnnouncements$__closure(t0) {
+ this.$this = t0;
+ },
+ AccessibilityAnnouncements_handleMessage_closure: function AccessibilityAnnouncements_handleMessage_closure(t0) {
+ this.$this = t0;
+ },
+ _CheckableKind: function _CheckableKind(t0) {
+ this.__engine$_name = t0;
+ },
+ Checkable: function Checkable(t0, t1) {
+ this.__engine$_kind = t0;
+ this.semanticsObject = t1;
+ },
+ ImageRoleManager: function ImageRoleManager(t0) {
+ this._auxiliaryImageElement = null;
+ this.semanticsObject = t0;
+ },
+ Incrementable: function Incrementable(t0, t1) {
+ var _ = this;
+ _._element = t0;
+ _._currentSurrogateValue = 1;
+ _._gestureModeListener = null;
+ _._pendingResync = false;
+ _.semanticsObject = t1;
+ },
+ Incrementable_closure: function Incrementable_closure(t0, t1) {
+ this.$this = t0;
+ this.semanticsObject = t1;
+ },
+ Incrementable_closure0: function Incrementable_closure0(t0) {
+ this.$this = t0;
+ },
+ LabelAndValue: function LabelAndValue(t0) {
+ this._auxiliaryValueElement = null;
+ this.semanticsObject = t0;
+ },
+ LiveRegion: function LiveRegion(t0) {
+ this.semanticsObject = t0;
+ },
+ Scrollable0: function Scrollable0(t0) {
+ var _ = this;
+ _._scrollListener = _._gestureModeListener = null;
+ _._effectiveNeutralScrollPosition = 0;
+ _.semanticsObject = t0;
+ },
+ Scrollable_update_closure: function Scrollable_update_closure(t0) {
+ this.$this = t0;
+ },
+ Scrollable_update_closure0: function Scrollable_update_closure0(t0) {
+ this.$this = t0;
+ },
+ Scrollable_update_closure1: function Scrollable_update_closure1(t0) {
+ this.$this = t0;
+ },
+ SemanticsUpdate: function SemanticsUpdate(t0) {
+ this.__engine$_nodeUpdates = t0;
+ },
+ SemanticsNodeUpdate: function SemanticsNodeUpdate(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20) {
+ var _ = this;
+ _.id = t0;
+ _.flags = t1;
+ _.actions = t2;
+ _.textSelectionBase = t3;
+ _.textSelectionExtent = t4;
+ _.scrollChildren = t5;
+ _.scrollIndex = t6;
+ _.scrollPosition = t7;
+ _.scrollExtentMax = t8;
+ _.scrollExtentMin = t9;
+ _.rect = t10;
+ _.label = t11;
+ _.hint = t12;
+ _.value = t13;
+ _.increasedValue = t14;
+ _.decreasedValue = t15;
+ _.textDirection = t16;
+ _.transform = t17;
+ _.childrenInTraversalOrder = t18;
+ _.childrenInHitTestOrder = t19;
+ _.additionalActions = t20;
+ },
+ Role: function Role(t0) {
+ this.__engine$_name = t0;
+ },
+ closure: function closure() {
+ },
+ closure0: function closure0() {
+ },
+ closure1: function closure1() {
+ },
+ closure2: function closure2() {
+ },
+ closure3: function closure3() {
+ },
+ closure4: function closure4() {
+ },
+ closure5: function closure5() {
+ },
+ closure6: function closure6() {
+ },
+ RoleManager: function RoleManager() {
+ },
+ SemanticsObject: function SemanticsObject(t0, t1, t2, t3) {
+ var _ = this;
+ _._additionalActions = _._childrenInHitTestOrder = _.__engine$_childrenInTraversalOrder = _.__engine$_transform = _._textDirection = _.__engine$_decreasedValue = _.__engine$_increasedValue = _.__engine$_value = _.__engine$_hint = _.__engine$_label = _.__engine$_rect = _.__engine$_scrollExtentMin = _.__engine$_scrollExtentMax = _.__engine$_scrollPosition = _.__engine$_scrollIndex = _._scrollChildren = _._textSelectionExtent = _._textSelectionBase = _.__engine$_actions = _.__engine$_flags = null;
+ _.id = t0;
+ _.owner = t1;
+ _.element = t2;
+ _._dirtyFields = -1;
+ _.__engine$_parent = _._childContainerElement = null;
+ _._roleManagers = t3;
+ _.horizontalContainerAdjustment = _.verticalContainerAdjustment = 0;
+ _._previousChildrenInTraversalOrder = null;
+ },
+ SemanticsObject_recomputePositionAndSize__effectiveTransform_set: function SemanticsObject_recomputePositionAndSize__effectiveTransform_set(t0) {
+ this._box_0 = t0;
+ },
+ SemanticsObject_recomputePositionAndSize__effectiveTransform_get: function SemanticsObject_recomputePositionAndSize__effectiveTransform_get(t0) {
+ this._box_0 = t0;
+ },
+ AccessibilityMode: function AccessibilityMode(t0) {
+ this.__engine$_name = t0;
+ },
+ GestureMode: function GestureMode(t0) {
+ this.__engine$_name = t0;
+ },
+ EngineSemanticsOwner: function EngineSemanticsOwner(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._semanticsTree = t0;
+ _._attachments = t1;
+ _._detachments = t2;
+ _._oneTimePostUpdateCallbacks = t3;
+ _._rootSemanticsElement = null;
+ _._now = t4;
+ _.semanticsHelper = t5;
+ _._semanticsEnabled = false;
+ _._gestureMode = t6;
+ _._gestureModeClock = null;
+ _._gestureModeListeners = t7;
+ },
+ EngineSemanticsOwner$__closure: function EngineSemanticsOwner$__closure(t0) {
+ this.$this = t0;
+ },
+ EngineSemanticsOwner_closure: function EngineSemanticsOwner_closure() {
+ },
+ EngineSemanticsOwner__getGestureModeClock_closure: function EngineSemanticsOwner__getGestureModeClock_closure(t0) {
+ this.$this = t0;
+ },
+ EnabledState: function EnabledState(t0) {
+ this.__engine$_name = t0;
+ },
+ SemanticsHelper: function SemanticsHelper(t0) {
+ this._semanticsEnabler = t0;
+ },
+ SemanticsEnabler: function SemanticsEnabler() {
+ },
+ DesktopSemanticsEnabler: function DesktopSemanticsEnabler() {
+ var _ = this;
+ _._semanticsPlaceholder = _.semanticsActivationTimer = null;
+ _.semanticsActivationAttempts = 0;
+ _._schedulePlaceholderRemoval = false;
+ },
+ DesktopSemanticsEnabler_tryEnableSemantics_closure: function DesktopSemanticsEnabler_tryEnableSemantics_closure(t0) {
+ this.$this = t0;
+ },
+ DesktopSemanticsEnabler_prepareAccessibilityPlaceholder_closure: function DesktopSemanticsEnabler_prepareAccessibilityPlaceholder_closure(t0) {
+ this.$this = t0;
+ },
+ MobileSemanticsEnabler: function MobileSemanticsEnabler() {
+ var _ = this;
+ _._semanticsPlaceholder = _.semanticsActivationTimer = null;
+ _.semanticsActivationAttempts = 0;
+ _._schedulePlaceholderRemoval = false;
+ },
+ MobileSemanticsEnabler_tryEnableSemantics_closure: function MobileSemanticsEnabler_tryEnableSemantics_closure(t0) {
+ this.$this = t0;
+ },
+ MobileSemanticsEnabler_prepareAccessibilityPlaceholder_closure: function MobileSemanticsEnabler_prepareAccessibilityPlaceholder_closure(t0) {
+ this.$this = t0;
+ },
+ Tappable: function Tappable(t0) {
+ this._clickListener = null;
+ this.semanticsObject = t0;
+ },
+ Tappable_update_closure: function Tappable_update_closure(t0) {
+ this.$this = t0;
+ },
+ SemanticsTextEditingStrategy: function SemanticsTextEditingStrategy(t0, t1) {
+ var _ = this;
+ _.owner = t0;
+ _.isEnabled = false;
+ _.__DefaultTextEditingStrategy__inputConfiguration = _._domElement = null;
+ _.__DefaultTextEditingStrategy__inputConfiguration_isSet = false;
+ _._onAction = _._onChange = _._geometry = _._style = _._lastEditingState = null;
+ _._subscriptions = t1;
+ _._appendedToForm = false;
+ },
+ TextField0: function TextField0(t0) {
+ this.textEditingElement = null;
+ this.semanticsObject = t0;
+ },
+ TextField__initializeForBlink_closure: function TextField__initializeForBlink_closure(t0) {
+ this.$this = t0;
+ },
+ TextField__initializeForWebkit_closure: function TextField__initializeForWebkit_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ TextField__initializeForWebkit_closure0: function TextField__initializeForWebkit_closure0(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ _TypedDataBuffer: function _TypedDataBuffer() {
+ },
+ _IntBuffer: function _IntBuffer() {
+ },
+ Uint8Buffer0: function Uint8Buffer0(t0, t1) {
+ this.__engine$_buffer = t0;
+ this.__engine$_length = t1;
+ },
+ MethodCall0: function MethodCall0(t0, t1) {
+ this.method = t0;
+ this.$arguments = t1;
+ },
+ JSONMessageCodec: function JSONMessageCodec() {
+ },
+ JSONMethodCodec: function JSONMethodCodec() {
+ },
+ StandardMessageCodec: function StandardMessageCodec() {
+ },
+ StandardMessageCodec_writeValue_closure0: function StandardMessageCodec_writeValue_closure0(t0, t1) {
+ this.$this = t0;
+ this.buffer = t1;
+ },
+ StandardMethodCodec: function StandardMethodCodec() {
+ },
+ WriteBuffer0: function WriteBuffer0(t0, t1, t2) {
+ var _ = this;
+ _._debugFinalized = false;
+ _.__engine$_buffer = t0;
+ _.__engine$_eightBytes = t1;
+ _.__engine$_eightBytesAsList = t2;
+ },
+ ReadBuffer0: function ReadBuffer0(t0) {
+ this.data = t0;
+ this.__engine$_position = 0;
+ },
+ SurfaceShadowData: function SurfaceShadowData(t0, t1) {
+ this.blurWidth = t0;
+ this.offset = t1;
+ },
+ FontCollection: function FontCollection() {
+ this._testFontManager = this._assetFontManager = null;
+ },
+ FontManager: function FontManager(t0) {
+ this._fontLoadingFutures = t0;
+ },
+ FontManager__loadFontFace_closure: function FontManager__loadFontFace_closure(t0) {
+ this.fontFace = t0;
+ },
+ FontManager__loadFontFace_closure0: function FontManager__loadFontFace_closure0(t0) {
+ this.family = t0;
+ },
+ _PolyfillFontManager: function _PolyfillFontManager(t0) {
+ this._fontLoadingFutures = t0;
+ },
+ _PolyfillFontManager_registerAsset___fontLoadStart_set: function _PolyfillFontManager_registerAsset___fontLoadStart_set(t0) {
+ this._box_0 = t0;
+ },
+ _PolyfillFontManager_registerAsset___fontLoadStart_get: function _PolyfillFontManager_registerAsset___fontLoadStart_get(t0) {
+ this._box_0 = t0;
+ },
+ _PolyfillFontManager_registerAsset__watchWidth: function _PolyfillFontManager_registerAsset__watchWidth(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.paragraph = t0;
+ _.sansSerifWidth = t1;
+ _.completer = t2;
+ _.__fontLoadStart_get = t3;
+ _.family = t4;
+ },
+ _PolyfillFontManager_registerAsset_closure: function _PolyfillFontManager_registerAsset_closure(t0) {
+ this.fontStyleMap = t0;
+ },
+ LineCharProperty: function LineCharProperty(t0) {
+ this.__engine$_name = t0;
+ },
+ LineBreakType: function LineBreakType(t0) {
+ this.__engine$_name = t0;
+ },
+ LineBreakResult: function LineBreakResult(t0, t1, t2, t3) {
+ var _ = this;
+ _.index = t0;
+ _.indexWithoutTrailingNewlines = t1;
+ _.indexWithoutTrailingSpaces = t2;
+ _.type = t3;
+ },
+ RulerManager: function RulerManager(t0, t1, t2) {
+ var _ = this;
+ _.rulerCacheCapacity = t0;
+ _._rulerHost = t1;
+ _._rulers = t2;
+ _._rulerCacheCleanupScheduled = false;
+ },
+ RulerManager__scheduleRulerCacheCleanup_closure: function RulerManager__scheduleRulerCacheCleanup_closure(t0) {
+ this.$this = t0;
+ },
+ RulerManager__evictAllRulers_closure: function RulerManager__evictAllRulers_closure() {
+ },
+ RulerManager_cleanUpRulerCache_closure: function RulerManager_cleanUpRulerCache_closure() {
+ },
+ TextMeasurementService: function TextMeasurementService() {
+ },
+ DomTextMeasurementService: function DomTextMeasurementService() {
+ },
+ CanvasTextMeasurementService: function CanvasTextMeasurementService(t0) {
+ this._canvasContext = t0;
+ },
+ LinesCalculator: function LinesCalculator(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._canvasContext = t0;
+ _.__engine$_paragraph = t1;
+ _._maxWidth = t2;
+ _.lines = t3;
+ _._lastBreak = t4;
+ _._lastTakenBreak = t5;
+ _._reachedMaxLines = false;
+ _._cachedEllipsisWidth = null;
+ },
+ MaxIntrinsicCalculator: function MaxIntrinsicCalculator(t0, t1, t2) {
+ var _ = this;
+ _._canvasContext = t0;
+ _.__engine$_text = t1;
+ _._style = t2;
+ _._lastHardLineEnd = _.value = 0;
+ },
+ EngineLineMetrics: function EngineLineMetrics(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.displayText = t0;
+ _.startIndex = t1;
+ _.endIndex = t2;
+ _.endIndexWithoutNewlines = t3;
+ _.hardBreak = t4;
+ _.width = t5;
+ _.widthWithTrailingSpaces = t6;
+ _.left = t7;
+ _.lineNumber = t8;
+ },
+ DomParagraph: function DomParagraph(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._paragraphElement = t0;
+ _._geometricStyle = t1;
+ _._plainText = t2;
+ _._paint = t3;
+ _._textAlign = t4;
+ _._textDirection = t5;
+ _._background = t6;
+ _.placeholderCount = t7;
+ _._measurementResult = null;
+ _._didExceedMaxLines = false;
+ _._lastUsedConstraints = null;
+ _._alignOffset = 0;
+ },
+ EngineParagraphStyle: function EngineParagraphStyle(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) {
+ var _ = this;
+ _._textAlign = t0;
+ _._textDirection = t1;
+ _._fontWeight = t2;
+ _._fontStyle = t3;
+ _._maxLines = t4;
+ _._fontFamily = t5;
+ _._fontSize = t6;
+ _.__engine$_height = t7;
+ _._textHeightBehavior = t8;
+ _._strutStyle = t9;
+ _._ellipsis = t10;
+ _._locale = t11;
+ },
+ EngineTextStyle: function EngineTextStyle(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19) {
+ var _ = this;
+ _._color = t0;
+ _._decoration = t1;
+ _._decorationColor = t2;
+ _._decorationStyle = t3;
+ _._decorationThickness = t4;
+ _._fontWeight = t5;
+ _._fontStyle = t6;
+ _._textBaseline = t7;
+ _._isFontFamilyProvided = t8;
+ _._fontFamily = t9;
+ _._fontFamilyFallback = t10;
+ _._fontFeatures = t11;
+ _._fontSize = t12;
+ _._letterSpacing = t13;
+ _._wordSpacing = t14;
+ _.__engine$_height = t15;
+ _._locale = t16;
+ _._background = t17;
+ _._foreground = t18;
+ _._shadows = t19;
+ },
+ EngineStrutStyle: function EngineStrutStyle(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._fontFamily = t0;
+ _._fontFamilyFallback = t1;
+ _._fontSize = t2;
+ _.__engine$_height = t3;
+ _._leading = t4;
+ _._fontWeight = t5;
+ _._fontStyle = t6;
+ _._forceStrutHeight = t7;
+ },
+ DomParagraphBuilder: function DomParagraphBuilder(t0, t1, t2, t3) {
+ var _ = this;
+ _._paragraphElement = t0;
+ _._paragraphStyle = t1;
+ _._ops = t2;
+ _._placeholderScales = t3;
+ },
+ DomParagraphBuilder__buildRichText_currentElement: function DomParagraphBuilder__buildRichText_currentElement(t0, t1) {
+ this.$this = t0;
+ this.elementStack = t1;
+ },
+ ParagraphGeometricStyle: function ParagraphGeometricStyle(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
+ var _ = this;
+ _.textDirection = t0;
+ _.textAlign = t1;
+ _.fontWeight = t2;
+ _.fontStyle = t3;
+ _.fontFamily = t4;
+ _.fontSize = t5;
+ _.lineHeight = t6;
+ _.maxLines = t7;
+ _.letterSpacing = t8;
+ _.wordSpacing = t9;
+ _.decoration = t10;
+ _.ellipsis = t11;
+ _.shadows = t12;
+ _._cssFontString = _._cachedHashCode = null;
+ },
+ TextDimensions: function TextDimensions(t0) {
+ this._element = t0;
+ this._cachedBoundingClientRect = null;
+ },
+ ParagraphRuler: function ParagraphRuler(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.style = t0;
+ _.rulerManager = t1;
+ _._probe = t2;
+ _._cachedAlphabeticBaseline = null;
+ _._singleLineHost = t3;
+ _.singleLineDimensions = t4;
+ _._minIntrinsicHost = t5;
+ _.minIntrinsicDimensions = t6;
+ _._constrainedHost = t7;
+ _.constrainedDimensions = t8;
+ _._lineHeightDimensions = _._lineHeightHost = null;
+ _._hitCount = 0;
+ _._debugIsDisposed = false;
+ _.__engine$_paragraph = null;
+ _._measurementCache = t9;
+ _._mruList = t10;
+ },
+ MeasurementResult: function MeasurementResult(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13) {
+ var _ = this;
+ _.constraintWidth = t0;
+ _.isSingleLine = t1;
+ _.width = t2;
+ _.height = t3;
+ _.naturalHeight = t4;
+ _.lineHeight = t5;
+ _.minIntrinsicWidth = t6;
+ _.maxIntrinsicWidth = t7;
+ _.alphabeticBaseline = t8;
+ _.ideographicBaseline = t9;
+ _.lines = t10;
+ _.placeholderBoxes = t11;
+ _.textAlign = t12;
+ _.textDirection = t13;
+ },
+ _ComparisonResult: function _ComparisonResult(t0) {
+ this.__engine$_name = t0;
+ },
+ UnicodeRange: function UnicodeRange(t0, t1, t2, t3) {
+ var _ = this;
+ _.start = t0;
+ _.end = t1;
+ _.property = t2;
+ _.$ti = t3;
+ },
+ UnicodePropertyLookup: function UnicodePropertyLookup(t0, t1, t2, t3) {
+ var _ = this;
+ _.ranges = t0;
+ _.defaultProperty = t1;
+ _.__engine$_cache = t2;
+ _.$ti = t3;
+ },
+ WordCharProperty: function WordCharProperty(t0) {
+ this.__engine$_name = t0;
+ },
+ _FindBreakDirection: function _FindBreakDirection(t0) {
+ this.step = t0;
+ },
+ BrowserAutofillHints: function BrowserAutofillHints(t0) {
+ this._flutterToEngineMap = t0;
+ },
+ EngineInputType: function EngineInputType() {
+ },
+ TextInputType0: function TextInputType0() {
+ },
+ NumberInputType: function NumberInputType() {
+ },
+ DecimalInputType: function DecimalInputType() {
+ },
+ PhoneInputType: function PhoneInputType() {
+ },
+ EmailInputType: function EmailInputType() {
+ },
+ UrlInputType: function UrlInputType() {
+ },
+ MultilineInputType: function MultilineInputType() {
+ },
+ TextCapitalization: function TextCapitalization(t0) {
+ this.__engine$_name = t0;
+ },
+ TextCapitalizationConfig: function TextCapitalizationConfig(t0) {
+ this.textCapitalization = t0;
+ },
+ EngineAutofillForm: function EngineAutofillForm(t0, t1, t2, t3) {
+ var _ = this;
+ _.formElement = t0;
+ _.elements = t1;
+ _.items = t2;
+ _.formIdentifier = t3;
+ },
+ EngineAutofillForm_fromFrameworkMessage_closure: function EngineAutofillForm_fromFrameworkMessage_closure() {
+ },
+ EngineAutofillForm_addInputEventListeners_closure: function EngineAutofillForm_addInputEventListeners_closure(t0, t1) {
+ this.$this = t0;
+ this.subscriptions = t1;
+ },
+ EngineAutofillForm_addInputEventListeners__closure: function EngineAutofillForm_addInputEventListeners__closure(t0, t1, t2) {
+ this.$this = t0;
+ this.key = t1;
+ this.element = t2;
+ },
+ AutofillInfo: function AutofillInfo(t0, t1, t2, t3) {
+ var _ = this;
+ _.editingState = t0;
+ _.uniqueIdentifier = t1;
+ _.textCapitalization = t2;
+ _.hint = t3;
+ },
+ EditingState: function EditingState(t0, t1, t2) {
+ this.text = t0;
+ this.baseOffset = t1;
+ this.extentOffset = t2;
+ },
+ InputConfiguration: function InputConfiguration(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.inputType = t0;
+ _.inputAction = t1;
+ _.readOnly = t2;
+ _.obscureText = t3;
+ _.autocorrect = t4;
+ _.autofill = t5;
+ _.autofillGroup = t6;
+ _.textCapitalization = t7;
+ },
+ GloballyPositionedTextEditingStrategy: function GloballyPositionedTextEditingStrategy(t0, t1) {
+ var _ = this;
+ _.owner = t0;
+ _.isEnabled = false;
+ _.__DefaultTextEditingStrategy__inputConfiguration = _._domElement = null;
+ _.__DefaultTextEditingStrategy__inputConfiguration_isSet = false;
+ _._onAction = _._onChange = _._geometry = _._style = _._lastEditingState = null;
+ _._subscriptions = t1;
+ _._appendedToForm = false;
+ },
+ SafariDesktopTextEditingStrategy: function SafariDesktopTextEditingStrategy(t0, t1) {
+ var _ = this;
+ _.owner = t0;
+ _.isEnabled = false;
+ _.__DefaultTextEditingStrategy__inputConfiguration = _._domElement = null;
+ _.__DefaultTextEditingStrategy__inputConfiguration_isSet = false;
+ _._onAction = _._onChange = _._geometry = _._style = _._lastEditingState = null;
+ _._subscriptions = t1;
+ _._appendedToForm = false;
+ },
+ DefaultTextEditingStrategy: function DefaultTextEditingStrategy() {
+ },
+ DefaultTextEditingStrategy_addEventHandlers_closure: function DefaultTextEditingStrategy_addEventHandlers_closure(t0) {
+ this.$this = t0;
+ },
+ DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure: function DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure() {
+ },
+ DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure0: function DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure0() {
+ },
+ DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure1: function DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure1() {
+ },
+ IOSTextEditingStrategy: function IOSTextEditingStrategy(t0, t1) {
+ var _ = this;
+ _._positionInputElementTimer = null;
+ _._canPosition = true;
+ _.owner = t0;
+ _.isEnabled = false;
+ _.__DefaultTextEditingStrategy__inputConfiguration = _._domElement = null;
+ _.__DefaultTextEditingStrategy__inputConfiguration_isSet = false;
+ _._onAction = _._onChange = _._geometry = _._style = _._lastEditingState = null;
+ _._subscriptions = t1;
+ _._appendedToForm = false;
+ },
+ IOSTextEditingStrategy_addEventHandlers_closure: function IOSTextEditingStrategy_addEventHandlers_closure(t0) {
+ this.$this = t0;
+ },
+ IOSTextEditingStrategy_addEventHandlers_closure0: function IOSTextEditingStrategy_addEventHandlers_closure0(t0) {
+ this.$this = t0;
+ },
+ IOSTextEditingStrategy__addTapListener_closure: function IOSTextEditingStrategy__addTapListener_closure(t0) {
+ this.$this = t0;
+ },
+ IOSTextEditingStrategy__schedulePlacement_closure: function IOSTextEditingStrategy__schedulePlacement_closure(t0) {
+ this.$this = t0;
+ },
+ AndroidTextEditingStrategy: function AndroidTextEditingStrategy(t0, t1) {
+ var _ = this;
+ _.owner = t0;
+ _.isEnabled = false;
+ _.__DefaultTextEditingStrategy__inputConfiguration = _._domElement = null;
+ _.__DefaultTextEditingStrategy__inputConfiguration_isSet = false;
+ _._onAction = _._onChange = _._geometry = _._style = _._lastEditingState = null;
+ _._subscriptions = t1;
+ _._appendedToForm = false;
+ },
+ AndroidTextEditingStrategy_addEventHandlers_closure: function AndroidTextEditingStrategy_addEventHandlers_closure(t0) {
+ this.$this = t0;
+ },
+ FirefoxTextEditingStrategy: function FirefoxTextEditingStrategy(t0, t1) {
+ var _ = this;
+ _.owner = t0;
+ _.isEnabled = false;
+ _.__DefaultTextEditingStrategy__inputConfiguration = _._domElement = null;
+ _.__DefaultTextEditingStrategy__inputConfiguration_isSet = false;
+ _._onAction = _._onChange = _._geometry = _._style = _._lastEditingState = null;
+ _._subscriptions = t1;
+ _._appendedToForm = false;
+ },
+ FirefoxTextEditingStrategy_addEventHandlers_closure: function FirefoxTextEditingStrategy_addEventHandlers_closure(t0) {
+ this.$this = t0;
+ },
+ FirefoxTextEditingStrategy_addEventHandlers_closure0: function FirefoxTextEditingStrategy_addEventHandlers_closure0(t0) {
+ this.$this = t0;
+ },
+ TextEditingChannel: function TextEditingChannel(t0) {
+ this.implementation = t0;
+ },
+ TextEditingChannel_saveForms_closure: function TextEditingChannel_saveForms_closure() {
+ },
+ HybridTextEditing: function HybridTextEditing() {
+ var _ = this;
+ _.__HybridTextEditing_channel = null;
+ _.__HybridTextEditing_channel_isSet = false;
+ _.__HybridTextEditing__defaultEditingElement = null;
+ _.__HybridTextEditing__defaultEditingElement_isSet = false;
+ _._clientId = _._customEditingElement = null;
+ _.isEditing = false;
+ _.__HybridTextEditing__configuration = null;
+ _.__HybridTextEditing__configuration_isSet = false;
+ },
+ HybridTextEditing__startEditing_closure0: function HybridTextEditing__startEditing_closure0(t0) {
+ this.$this = t0;
+ },
+ HybridTextEditing__startEditing_closure: function HybridTextEditing__startEditing_closure(t0) {
+ this.$this = t0;
+ },
+ EditableTextStyle: function EditableTextStyle(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.fontSize = t0;
+ _.fontWeight = t1;
+ _.fontFamily = t2;
+ _.textAlign = t3;
+ _.textDirection = t4;
+ },
+ EditableTextGeometry: function EditableTextGeometry(t0, t1, t2) {
+ this.width = t0;
+ this.height = t1;
+ this.globalTransform = t2;
+ },
+ TransformKind: function TransformKind(t0) {
+ this.__engine$_name = t0;
+ },
+ Matrix40: function Matrix40(t0) {
+ this.__engine$_m4storage = t0;
+ },
+ Vector30: function Vector30(t0) {
+ this.__engine$_v3storage = t0;
+ },
+ WebExperiments: function WebExperiments() {
+ this._useCanvasText = true;
+ },
+ WebExperiments$__closure: function WebExperiments$__closure() {
+ },
+ EngineFlutterWindow: function EngineFlutterWindow() {
+ },
+ EngineFlutterWindow__addUrlStrategyListener_closure: function EngineFlutterWindow__addUrlStrategyListener_closure(t0) {
+ this.$this = t0;
+ },
+ EngineFlutterWindow__addUrlStrategyListener_closure0: function EngineFlutterWindow__addUrlStrategyListener_closure0() {
+ },
+ EngineSingletonFlutterWindow: function EngineSingletonFlutterWindow(t0, t1, t2) {
+ var _ = this;
+ _._debugDevicePixelRatio = null;
+ _._windowId = t0;
+ _.platformDispatcher = t1;
+ _._browserHistory = null;
+ _._viewInsets = t2;
+ _._physicalSize = null;
+ },
+ WindowPadding: function WindowPadding(t0, t1, t2, t3) {
+ var _ = this;
+ _.left = t0;
+ _.top = t1;
+ _.right = t2;
+ _.bottom = t3;
+ },
+ _DomCanvas_EngineCanvas_SaveElementStackTracking: function _DomCanvas_EngineCanvas_SaveElementStackTracking() {
+ },
+ _PersistedClipRect_PersistedContainerSurface__DomClip: function _PersistedClipRect_PersistedContainerSurface__DomClip() {
+ },
+ _PersistedPhysicalShape_PersistedContainerSurface__DomClip: function _PersistedPhysicalShape_PersistedContainerSurface__DomClip() {
+ },
+ __MouseAdapter__BaseAdapter__WheelEventListenerMixin: function __MouseAdapter__BaseAdapter__WheelEventListenerMixin() {
+ },
+ __PointerAdapter__BaseAdapter__WheelEventListenerMixin: function __PointerAdapter__BaseAdapter__WheelEventListenerMixin() {
+ },
+ JS_CONST: function JS_CONST(t0) {
+ this.code = t0;
+ },
+ CastIterable_CastIterable: function(source, $S, $T) {
+ if ($S._eval$1("EfficientLengthIterable<0>")._is(source))
+ return new H._EfficientLengthCastIterable(source, $S._eval$1("@<0>")._bind$1($T)._eval$1("_EfficientLengthCastIterable<1,2>"));
+ return new H.CastIterable(source, $S._eval$1("@<0>")._bind$1($T)._eval$1("CastIterable<1,2>"));
+ },
+ LateError$fieldADI: function(fieldName) {
+ return new H.LateError("Field '" + fieldName + "' has been assigned during initialization.");
+ },
+ LateError$fieldNI: function(fieldName) {
+ return new H.LateError("Field '" + fieldName + "' has not been initialized.");
+ },
+ LateError$localNI: function(localName) {
+ return new H.LateError("Local '" + localName + "' has not been initialized.");
+ },
+ LateError$fieldAI: function(fieldName) {
+ return new H.LateError("Field '" + fieldName + "' has already been initialized.");
+ },
+ LateError$localAI: function(localName) {
+ return new H.LateError("Local '" + localName + "' has already been initialized.");
+ },
+ ReachabilityError$: function(_message) {
+ return new H.ReachabilityError(_message);
+ },
+ hexDigitValue: function(char) {
+ var letter,
+ digit = char ^ 48;
+ if (digit <= 9)
+ return digit;
+ letter = char | 32;
+ if (97 <= letter && letter <= 102)
+ return letter - 87;
+ return -1;
+ },
+ parseHexByte: function(source, index) {
+ var digit1 = H.hexDigitValue(C.JSString_methods.codeUnitAt$1(source, index)),
+ digit2 = H.hexDigitValue(C.JSString_methods.codeUnitAt$1(source, index + 1));
+ return digit1 * 16 + digit2 - (digit2 & 256);
+ },
+ SystemHash_combine: function(hash, value) {
+ hash = hash + value & 536870911;
+ hash = hash + ((hash & 524287) << 10) & 536870911;
+ return hash ^ hash >>> 6;
+ },
+ SystemHash_finish: function(hash) {
+ hash = hash + ((hash & 67108863) << 3) & 536870911;
+ hash ^= hash >>> 11;
+ return hash + ((hash & 16383) << 15) & 536870911;
+ },
+ SubListIterable$: function(_iterable, _start, _endOrLength, $E) {
+ P.RangeError_checkNotNegative(_start, "start");
+ if (_endOrLength != null) {
+ P.RangeError_checkNotNegative(_endOrLength, "end");
+ if (_start > _endOrLength)
+ H.throwExpression(P.RangeError$range(_start, 0, _endOrLength, "start", null));
+ }
+ return new H.SubListIterable(_iterable, _start, _endOrLength, $E._eval$1("SubListIterable<0>"));
+ },
+ MappedIterable_MappedIterable: function(iterable, $function, $S, $T) {
+ if (type$.EfficientLengthIterable_dynamic._is(iterable))
+ return new H.EfficientLengthMappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>"));
+ return new H.MappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("MappedIterable<1,2>"));
+ },
+ TakeIterable_TakeIterable: function(iterable, takeCount, $E) {
+ var _s9_ = "takeCount";
+ P.ArgumentError_checkNotNull(takeCount, _s9_);
+ P.RangeError_checkNotNegative(takeCount, _s9_);
+ if (type$.EfficientLengthIterable_dynamic._is(iterable))
+ return new H.EfficientLengthTakeIterable(iterable, takeCount, $E._eval$1("EfficientLengthTakeIterable<0>"));
+ return new H.TakeIterable(iterable, takeCount, $E._eval$1("TakeIterable<0>"));
+ },
+ SkipIterable_SkipIterable: function(iterable, count, $E) {
+ var _s5_ = "count";
+ if (type$.EfficientLengthIterable_dynamic._is(iterable)) {
+ P.ArgumentError_checkNotNull(count, _s5_);
+ P.RangeError_checkNotNegative(count, _s5_);
+ return new H.EfficientLengthSkipIterable(iterable, count, $E._eval$1("EfficientLengthSkipIterable<0>"));
+ }
+ P.ArgumentError_checkNotNull(count, _s5_);
+ P.RangeError_checkNotNegative(count, _s5_);
+ return new H.SkipIterable(iterable, count, $E._eval$1("SkipIterable<0>"));
+ },
+ FollowedByIterable_FollowedByIterable$firstEfficient: function(first, second, $E) {
+ return new H.FollowedByIterable(first, second, $E._eval$1("FollowedByIterable<0>"));
+ },
+ IterableElementError_noElement: function() {
+ return new P.StateError("No element");
+ },
+ IterableElementError_tooMany: function() {
+ return new P.StateError("Too many elements");
+ },
+ IterableElementError_tooFew: function() {
+ return new P.StateError("Too few elements");
+ },
+ Sort_sort: function(a, compare) {
+ H.Sort__doSort(a, 0, J.get$length$asx(a) - 1, compare);
+ },
+ Sort__doSort: function(a, left, right, compare) {
+ if (right - left <= 32)
+ H.Sort__insertionSort(a, left, right, compare);
+ else
+ H.Sort__dualPivotQuicksort(a, left, right, compare);
+ },
+ Sort__insertionSort: function(a, left, right, compare) {
+ var i, t1, el, j, j0;
+ for (i = left + 1, t1 = J.getInterceptor$asx(a); i <= right; ++i) {
+ el = t1.$index(a, i);
+ j = i;
+ while (true) {
+ if (!(j > left && compare.call$2(t1.$index(a, j - 1), el) > 0))
+ break;
+ j0 = j - 1;
+ t1.$indexSet(a, j, t1.$index(a, j0));
+ j = j0;
+ }
+ t1.$indexSet(a, j, el);
+ }
+ },
+ Sort__dualPivotQuicksort: function(a, left, right, compare) {
+ var t0, less, great, k, ak, comp, great0, less0, pivots_are_equal, t2,
+ sixth = C.JSInt_methods._tdivFast$1(right - left + 1, 6),
+ index1 = left + sixth,
+ index5 = right - sixth,
+ index3 = C.JSInt_methods._tdivFast$1(left + right, 2),
+ index2 = index3 - sixth,
+ index4 = index3 + sixth,
+ t1 = J.getInterceptor$asx(a),
+ el1 = t1.$index(a, index1),
+ el2 = t1.$index(a, index2),
+ el3 = t1.$index(a, index3),
+ el4 = t1.$index(a, index4),
+ el5 = t1.$index(a, index5);
+ if (compare.call$2(el1, el2) > 0) {
+ t0 = el2;
+ el2 = el1;
+ el1 = t0;
+ }
+ if (compare.call$2(el4, el5) > 0) {
+ t0 = el5;
+ el5 = el4;
+ el4 = t0;
+ }
+ if (compare.call$2(el1, el3) > 0) {
+ t0 = el3;
+ el3 = el1;
+ el1 = t0;
+ }
+ if (compare.call$2(el2, el3) > 0) {
+ t0 = el3;
+ el3 = el2;
+ el2 = t0;
+ }
+ if (compare.call$2(el1, el4) > 0) {
+ t0 = el4;
+ el4 = el1;
+ el1 = t0;
+ }
+ if (compare.call$2(el3, el4) > 0) {
+ t0 = el4;
+ el4 = el3;
+ el3 = t0;
+ }
+ if (compare.call$2(el2, el5) > 0) {
+ t0 = el5;
+ el5 = el2;
+ el2 = t0;
+ }
+ if (compare.call$2(el2, el3) > 0) {
+ t0 = el3;
+ el3 = el2;
+ el2 = t0;
+ }
+ if (compare.call$2(el4, el5) > 0) {
+ t0 = el5;
+ el5 = el4;
+ el4 = t0;
+ }
+ t1.$indexSet(a, index1, el1);
+ t1.$indexSet(a, index3, el3);
+ t1.$indexSet(a, index5, el5);
+ t1.$indexSet(a, index2, t1.$index(a, left));
+ t1.$indexSet(a, index4, t1.$index(a, right));
+ less = left + 1;
+ great = right - 1;
+ if (J.$eq$(compare.call$2(el2, el4), 0)) {
+ for (k = less; k <= great; ++k) {
+ ak = t1.$index(a, k);
+ comp = compare.call$2(ak, el2);
+ if (comp === 0)
+ continue;
+ if (comp < 0) {
+ if (k !== less) {
+ t1.$indexSet(a, k, t1.$index(a, less));
+ t1.$indexSet(a, less, ak);
+ }
+ ++less;
+ } else
+ for (; true;) {
+ comp = compare.call$2(t1.$index(a, great), el2);
+ if (comp > 0) {
+ --great;
+ continue;
+ } else {
+ great0 = great - 1;
+ if (comp < 0) {
+ t1.$indexSet(a, k, t1.$index(a, less));
+ less0 = less + 1;
+ t1.$indexSet(a, less, t1.$index(a, great));
+ t1.$indexSet(a, great, ak);
+ great = great0;
+ less = less0;
+ break;
+ } else {
+ t1.$indexSet(a, k, t1.$index(a, great));
+ t1.$indexSet(a, great, ak);
+ great = great0;
+ break;
+ }
+ }
+ }
+ }
+ pivots_are_equal = true;
+ } else {
+ for (k = less; k <= great; ++k) {
+ ak = t1.$index(a, k);
+ if (compare.call$2(ak, el2) < 0) {
+ if (k !== less) {
+ t1.$indexSet(a, k, t1.$index(a, less));
+ t1.$indexSet(a, less, ak);
+ }
+ ++less;
+ } else if (compare.call$2(ak, el4) > 0)
+ for (; true;)
+ if (compare.call$2(t1.$index(a, great), el4) > 0) {
+ --great;
+ if (great < k)
+ break;
+ continue;
+ } else {
+ great0 = great - 1;
+ if (compare.call$2(t1.$index(a, great), el2) < 0) {
+ t1.$indexSet(a, k, t1.$index(a, less));
+ less0 = less + 1;
+ t1.$indexSet(a, less, t1.$index(a, great));
+ t1.$indexSet(a, great, ak);
+ less = less0;
+ } else {
+ t1.$indexSet(a, k, t1.$index(a, great));
+ t1.$indexSet(a, great, ak);
+ }
+ great = great0;
+ break;
+ }
+ }
+ pivots_are_equal = false;
+ }
+ t2 = less - 1;
+ t1.$indexSet(a, left, t1.$index(a, t2));
+ t1.$indexSet(a, t2, el2);
+ t2 = great + 1;
+ t1.$indexSet(a, right, t1.$index(a, t2));
+ t1.$indexSet(a, t2, el4);
+ H.Sort__doSort(a, left, less - 2, compare);
+ H.Sort__doSort(a, great + 2, right, compare);
+ if (pivots_are_equal)
+ return;
+ if (less < index1 && great > index5) {
+ for (; J.$eq$(compare.call$2(t1.$index(a, less), el2), 0);)
+ ++less;
+ for (; J.$eq$(compare.call$2(t1.$index(a, great), el4), 0);)
+ --great;
+ for (k = less; k <= great; ++k) {
+ ak = t1.$index(a, k);
+ if (compare.call$2(ak, el2) === 0) {
+ if (k !== less) {
+ t1.$indexSet(a, k, t1.$index(a, less));
+ t1.$indexSet(a, less, ak);
+ }
+ ++less;
+ } else if (compare.call$2(ak, el4) === 0)
+ for (; true;)
+ if (compare.call$2(t1.$index(a, great), el4) === 0) {
+ --great;
+ if (great < k)
+ break;
+ continue;
+ } else {
+ great0 = great - 1;
+ if (compare.call$2(t1.$index(a, great), el2) < 0) {
+ t1.$indexSet(a, k, t1.$index(a, less));
+ less0 = less + 1;
+ t1.$indexSet(a, less, t1.$index(a, great));
+ t1.$indexSet(a, great, ak);
+ less = less0;
+ } else {
+ t1.$indexSet(a, k, t1.$index(a, great));
+ t1.$indexSet(a, great, ak);
+ }
+ great = great0;
+ break;
+ }
+ }
+ H.Sort__doSort(a, less, great, compare);
+ } else
+ H.Sort__doSort(a, less, great, compare);
+ },
+ _CastIterableBase: function _CastIterableBase() {
+ },
+ CastIterator: function CastIterator(t0, t1) {
+ this._source = t0;
+ this.$ti = t1;
+ },
+ CastIterable: function CastIterable(t0, t1) {
+ this._source = t0;
+ this.$ti = t1;
+ },
+ _EfficientLengthCastIterable: function _EfficientLengthCastIterable(t0, t1) {
+ this._source = t0;
+ this.$ti = t1;
+ },
+ _CastListBase: function _CastListBase() {
+ },
+ _CastListBase_sort_closure: function _CastListBase_sort_closure(t0, t1) {
+ this.$this = t0;
+ this.compare = t1;
+ },
+ CastList: function CastList(t0, t1) {
+ this._source = t0;
+ this.$ti = t1;
+ },
+ CastMap: function CastMap(t0, t1) {
+ this._source = t0;
+ this.$ti = t1;
+ },
+ CastMap_putIfAbsent_closure: function CastMap_putIfAbsent_closure(t0, t1) {
+ this.$this = t0;
+ this.ifAbsent = t1;
+ },
+ CastMap_forEach_closure: function CastMap_forEach_closure(t0, t1) {
+ this.$this = t0;
+ this.f = t1;
+ },
+ LateError: function LateError(t0) {
+ this.__internal$_message = t0;
+ },
+ ReachabilityError: function ReachabilityError(t0) {
+ this.__internal$_message = t0;
+ },
+ CodeUnits: function CodeUnits(t0) {
+ this._string = t0;
+ },
+ EfficientLengthIterable: function EfficientLengthIterable() {
+ },
+ ListIterable: function ListIterable() {
+ },
+ SubListIterable: function SubListIterable(t0, t1, t2, t3) {
+ var _ = this;
+ _._iterable = t0;
+ _._start = t1;
+ _._endOrLength = t2;
+ _.$ti = t3;
+ },
+ ListIterator: function ListIterator(t0, t1) {
+ var _ = this;
+ _._iterable = t0;
+ _._length = t1;
+ _._index = 0;
+ _._current = null;
+ },
+ MappedIterable: function MappedIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._f = t1;
+ this.$ti = t2;
+ },
+ EfficientLengthMappedIterable: function EfficientLengthMappedIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._f = t1;
+ this.$ti = t2;
+ },
+ MappedIterator: function MappedIterator(t0, t1) {
+ this._current = null;
+ this._iterator = t0;
+ this._f = t1;
+ },
+ MappedListIterable: function MappedListIterable(t0, t1, t2) {
+ this._source = t0;
+ this._f = t1;
+ this.$ti = t2;
+ },
+ WhereIterable: function WhereIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._f = t1;
+ this.$ti = t2;
+ },
+ WhereIterator: function WhereIterator(t0, t1) {
+ this._iterator = t0;
+ this._f = t1;
+ },
+ ExpandIterable: function ExpandIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._f = t1;
+ this.$ti = t2;
+ },
+ ExpandIterator: function ExpandIterator(t0, t1, t2) {
+ var _ = this;
+ _._iterator = t0;
+ _._f = t1;
+ _._currentExpansion = t2;
+ _._current = null;
+ },
+ TakeIterable: function TakeIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._takeCount = t1;
+ this.$ti = t2;
+ },
+ EfficientLengthTakeIterable: function EfficientLengthTakeIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._takeCount = t1;
+ this.$ti = t2;
+ },
+ TakeIterator: function TakeIterator(t0, t1) {
+ this._iterator = t0;
+ this._remaining = t1;
+ },
+ SkipIterable: function SkipIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._skipCount = t1;
+ this.$ti = t2;
+ },
+ EfficientLengthSkipIterable: function EfficientLengthSkipIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._skipCount = t1;
+ this.$ti = t2;
+ },
+ SkipIterator: function SkipIterator(t0, t1) {
+ this._iterator = t0;
+ this._skipCount = t1;
+ },
+ SkipWhileIterable: function SkipWhileIterable(t0, t1, t2) {
+ this._iterable = t0;
+ this._f = t1;
+ this.$ti = t2;
+ },
+ SkipWhileIterator: function SkipWhileIterator(t0, t1) {
+ this._iterator = t0;
+ this._f = t1;
+ this._hasSkipped = false;
+ },
+ EmptyIterable: function EmptyIterable(t0) {
+ this.$ti = t0;
+ },
+ EmptyIterator: function EmptyIterator() {
+ },
+ FollowedByIterable: function FollowedByIterable(t0, t1, t2) {
+ this.__internal$_first = t0;
+ this._second = t1;
+ this.$ti = t2;
+ },
+ FollowedByIterator: function FollowedByIterator(t0, t1) {
+ this._currentIterator = t0;
+ this._nextIterable = t1;
+ },
+ WhereTypeIterable: function WhereTypeIterable(t0, t1) {
+ this._source = t0;
+ this.$ti = t1;
+ },
+ WhereTypeIterator: function WhereTypeIterator(t0, t1) {
+ this._source = t0;
+ this.$ti = t1;
+ },
+ FixedLengthListMixin: function FixedLengthListMixin() {
+ },
+ UnmodifiableListMixin: function UnmodifiableListMixin() {
+ },
+ UnmodifiableListBase: function UnmodifiableListBase() {
+ },
+ ReversedListIterable: function ReversedListIterable(t0, t1) {
+ this._source = t0;
+ this.$ti = t1;
+ },
+ Symbol: function Symbol(t0) {
+ this.__internal$_name = t0;
+ },
+ __CastListBase__CastIterableBase_ListMixin: function __CastListBase__CastIterableBase_ListMixin() {
+ },
+ ConstantMap__throwUnmodifiable: function() {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify unmodifiable Map"));
+ },
+ unminifyOrTag: function(rawClassName) {
+ var preserved = H.unmangleGlobalNameIfPreservedAnyways(rawClassName);
+ if (preserved != null)
+ return preserved;
+ return rawClassName;
+ },
+ isJsIndexable: function(object, record) {
+ var result;
+ if (record != null) {
+ result = record.x;
+ if (result != null)
+ return result;
+ }
+ return type$.JavaScriptIndexingBehavior_dynamic._is(object);
+ },
+ S: function(value) {
+ var res;
+ if (typeof value == "string")
+ return value;
+ if (typeof value == "number") {
+ if (value !== 0)
+ return "" + value;
+ } else if (true === value)
+ return "true";
+ else if (false === value)
+ return "false";
+ else if (value == null)
+ return "null";
+ res = J.toString$0$(value);
+ if (typeof res != "string")
+ throw H.wrapException(H.argumentErrorValue(value));
+ return res;
+ },
+ Primitives_objectHashCode: function(object) {
+ var hash = object.$identityHash;
+ if (hash == null) {
+ hash = Math.random() * 0x3fffffff | 0;
+ object.$identityHash = hash;
+ }
+ return hash;
+ },
+ Primitives_parseInt: function(source, radix) {
+ var match, decimalMatch, maxCharCode, digitsPart, t1, i, _null = null;
+ if (typeof source != "string")
+ H.throwExpression(H.argumentErrorValue(source));
+ match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source);
+ if (match == null)
+ return _null;
+ decimalMatch = match[3];
+ if (radix == null) {
+ if (decimalMatch != null)
+ return parseInt(source, 10);
+ if (match[2] != null)
+ return parseInt(source, 16);
+ return _null;
+ }
+ if (radix < 2 || radix > 36)
+ throw H.wrapException(P.RangeError$range(radix, 2, 36, "radix", _null));
+ if (radix === 10 && decimalMatch != null)
+ return parseInt(source, 10);
+ if (radix < 10 || decimalMatch == null) {
+ maxCharCode = radix <= 10 ? 47 + radix : 86 + radix;
+ digitsPart = match[1];
+ for (t1 = digitsPart.length, i = 0; i < t1; ++i)
+ if ((C.JSString_methods._codeUnitAt$1(digitsPart, i) | 32) > maxCharCode)
+ return _null;
+ }
+ return parseInt(source, radix);
+ },
+ Primitives_parseDouble: function(source) {
+ var result, trimmed;
+ if (typeof source != "string")
+ H.throwExpression(H.argumentErrorValue(source));
+ if (!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s*$/.test(source))
+ return null;
+ result = parseFloat(source);
+ if (isNaN(result)) {
+ trimmed = J.trim$0$s(source);
+ if (trimmed === "NaN" || trimmed === "+NaN" || trimmed === "-NaN")
+ return result;
+ return null;
+ }
+ return result;
+ },
+ Primitives_objectTypeName: function(object) {
+ return H.Primitives__objectTypeNameNewRti(object);
+ },
+ Primitives__objectTypeNameNewRti: function(object) {
+ var dispatchName, $constructor, constructorName;
+ if (object instanceof P.Object)
+ return H._rtiToString(H.instanceType(object), null);
+ if (J.getInterceptor$(object) === C.Interceptor_methods || type$.UnknownJavaScriptObject._is(object)) {
+ dispatchName = C.JS_CONST_u2C(object);
+ if (H.Primitives__saneNativeClassName(dispatchName))
+ return dispatchName;
+ $constructor = object.constructor;
+ if (typeof $constructor == "function") {
+ constructorName = $constructor.name;
+ if (typeof constructorName == "string" && H.Primitives__saneNativeClassName(constructorName))
+ return constructorName;
+ }
+ }
+ return H._rtiToString(H.instanceType(object), null);
+ },
+ Primitives__saneNativeClassName: function($name) {
+ var t1 = $name !== "Object" && $name !== "";
+ return t1;
+ },
+ Primitives_dateNow: function() {
+ return Date.now();
+ },
+ Primitives_initTicker: function() {
+ var $window, performance;
+ if ($.Primitives_timerFrequency !== 0)
+ return;
+ $.Primitives_timerFrequency = 1000;
+ if (typeof window == "undefined")
+ return;
+ $window = window;
+ if ($window == null)
+ return;
+ performance = $window.performance;
+ if (performance == null)
+ return;
+ if (typeof performance.now != "function")
+ return;
+ $.Primitives_timerFrequency = 1000000;
+ $.Primitives_timerTicks = new H.Primitives_initTicker_closure(performance);
+ },
+ Primitives_currentUri: function() {
+ if (!!self.location)
+ return self.location.href;
+ return null;
+ },
+ Primitives__fromCharCodeApply: function(array) {
+ var result, i, i0, chunkEnd,
+ end = array.length;
+ if (end <= 500)
+ return String.fromCharCode.apply(null, array);
+ for (result = "", i = 0; i < end; i = i0) {
+ i0 = i + 500;
+ chunkEnd = i0 < end ? i0 : end;
+ result += String.fromCharCode.apply(null, array.slice(i, chunkEnd));
+ }
+ return result;
+ },
+ Primitives_stringFromCodePoints: function(codePoints) {
+ var t1, _i, i,
+ a = H.setRuntimeTypeInfo([], type$.JSArray_int);
+ for (t1 = codePoints.length, _i = 0; _i < codePoints.length; codePoints.length === t1 || (0, H.throwConcurrentModificationError)(codePoints), ++_i) {
+ i = codePoints[_i];
+ if (!H._isInt(i))
+ throw H.wrapException(H.argumentErrorValue(i));
+ if (i <= 65535)
+ a.push(i);
+ else if (i <= 1114111) {
+ a.push(55296 + (C.JSInt_methods._shrOtherPositive$1(i - 65536, 10) & 1023));
+ a.push(56320 + (i & 1023));
+ } else
+ throw H.wrapException(H.argumentErrorValue(i));
+ }
+ return H.Primitives__fromCharCodeApply(a);
+ },
+ Primitives_stringFromCharCodes: function(charCodes) {
+ var t1, _i, i;
+ for (t1 = charCodes.length, _i = 0; _i < t1; ++_i) {
+ i = charCodes[_i];
+ if (!H._isInt(i))
+ throw H.wrapException(H.argumentErrorValue(i));
+ if (i < 0)
+ throw H.wrapException(H.argumentErrorValue(i));
+ if (i > 65535)
+ return H.Primitives_stringFromCodePoints(charCodes);
+ }
+ return H.Primitives__fromCharCodeApply(charCodes);
+ },
+ Primitives_stringFromNativeUint8List: function(charCodes, start, end) {
+ var i, result, i0, chunkEnd;
+ if (end <= 500 && start === 0 && end === charCodes.length)
+ return String.fromCharCode.apply(null, charCodes);
+ for (i = start, result = ""; i < end; i = i0) {
+ i0 = i + 500;
+ chunkEnd = i0 < end ? i0 : end;
+ result += String.fromCharCode.apply(null, charCodes.subarray(i, chunkEnd));
+ }
+ return result;
+ },
+ Primitives_stringFromCharCode: function(charCode) {
+ var bits;
+ if (0 <= charCode) {
+ if (charCode <= 65535)
+ return String.fromCharCode(charCode);
+ if (charCode <= 1114111) {
+ bits = charCode - 65536;
+ return String.fromCharCode((C.JSInt_methods._shrOtherPositive$1(bits, 10) | 55296) >>> 0, bits & 1023 | 56320);
+ }
+ }
+ throw H.wrapException(P.RangeError$range(charCode, 0, 1114111, null, null));
+ },
+ Primitives_lazyAsJsDate: function(receiver) {
+ if (receiver.date === void 0)
+ receiver.date = new Date(receiver._core$_value);
+ return receiver.date;
+ },
+ Primitives_getYear: function(receiver) {
+ return receiver.isUtc ? H.Primitives_lazyAsJsDate(receiver).getUTCFullYear() + 0 : H.Primitives_lazyAsJsDate(receiver).getFullYear() + 0;
+ },
+ Primitives_getMonth: function(receiver) {
+ return receiver.isUtc ? H.Primitives_lazyAsJsDate(receiver).getUTCMonth() + 1 : H.Primitives_lazyAsJsDate(receiver).getMonth() + 1;
+ },
+ Primitives_getDay: function(receiver) {
+ return receiver.isUtc ? H.Primitives_lazyAsJsDate(receiver).getUTCDate() + 0 : H.Primitives_lazyAsJsDate(receiver).getDate() + 0;
+ },
+ Primitives_getHours: function(receiver) {
+ return receiver.isUtc ? H.Primitives_lazyAsJsDate(receiver).getUTCHours() + 0 : H.Primitives_lazyAsJsDate(receiver).getHours() + 0;
+ },
+ Primitives_getMinutes: function(receiver) {
+ return receiver.isUtc ? H.Primitives_lazyAsJsDate(receiver).getUTCMinutes() + 0 : H.Primitives_lazyAsJsDate(receiver).getMinutes() + 0;
+ },
+ Primitives_getSeconds: function(receiver) {
+ return receiver.isUtc ? H.Primitives_lazyAsJsDate(receiver).getUTCSeconds() + 0 : H.Primitives_lazyAsJsDate(receiver).getSeconds() + 0;
+ },
+ Primitives_getMilliseconds: function(receiver) {
+ return receiver.isUtc ? H.Primitives_lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : H.Primitives_lazyAsJsDate(receiver).getMilliseconds() + 0;
+ },
+ Primitives_getProperty: function(object, key) {
+ if (object == null || H._isBool(object) || typeof object == "number" || typeof object == "string")
+ throw H.wrapException(H.argumentErrorValue(object));
+ return object[key];
+ },
+ Primitives_setProperty: function(object, key, value) {
+ var t1 = H._isBool(object) || typeof object == "number" || typeof object == "string";
+ if (t1)
+ throw H.wrapException(H.argumentErrorValue(object));
+ object[key] = value;
+ },
+ Primitives_functionNoSuchMethod: function($function, positionalArguments, namedArguments) {
+ var $arguments, namedArgumentList, t1 = {};
+ t1.argumentCount = 0;
+ $arguments = [];
+ namedArgumentList = [];
+ t1.argumentCount = positionalArguments.length;
+ C.JSArray_methods.addAll$1($arguments, positionalArguments);
+ t1.names = "";
+ if (namedArguments != null && !namedArguments.get$isEmpty(namedArguments))
+ namedArguments.forEach$1(0, new H.Primitives_functionNoSuchMethod_closure(t1, namedArgumentList, $arguments));
+ "" + t1.argumentCount;
+ return J.noSuchMethod$1$($function, new H.JSInvocationMirror(C.Symbol_call, 0, $arguments, namedArgumentList, 0));
+ },
+ Primitives_applyFunction: function($function, positionalArguments, namedArguments) {
+ var t1, $arguments, argumentCount, jsStub;
+ if (positionalArguments instanceof Array)
+ t1 = namedArguments == null || namedArguments.get$isEmpty(namedArguments);
+ else
+ t1 = false;
+ if (t1) {
+ $arguments = positionalArguments;
+ argumentCount = $arguments.length;
+ if (argumentCount === 0) {
+ if (!!$function.call$0)
+ return $function.call$0();
+ } else if (argumentCount === 1) {
+ if (!!$function.call$1)
+ return $function.call$1($arguments[0]);
+ } else if (argumentCount === 2) {
+ if (!!$function.call$2)
+ return $function.call$2($arguments[0], $arguments[1]);
+ } else if (argumentCount === 3) {
+ if (!!$function.call$3)
+ return $function.call$3($arguments[0], $arguments[1], $arguments[2]);
+ } else if (argumentCount === 4) {
+ if (!!$function.call$4)
+ return $function.call$4($arguments[0], $arguments[1], $arguments[2], $arguments[3]);
+ } else if (argumentCount === 5)
+ if (!!$function.call$5)
+ return $function.call$5($arguments[0], $arguments[1], $arguments[2], $arguments[3], $arguments[4]);
+ jsStub = $function["call" + "$" + argumentCount];
+ if (jsStub != null)
+ return jsStub.apply($function, $arguments);
+ }
+ return H.Primitives__genericApplyFunction2($function, positionalArguments, namedArguments);
+ },
+ Primitives__genericApplyFunction2: function($function, positionalArguments, namedArguments) {
+ var $arguments, argumentCount, requiredParameterCount, defaultValuesClosure, t1, defaultValues, interceptor, jsFunction, keys, _i, defaultValue, used, t2;
+ if (positionalArguments != null)
+ $arguments = positionalArguments instanceof Array ? positionalArguments : P.List_List$from(positionalArguments, true, type$.dynamic);
+ else
+ $arguments = [];
+ argumentCount = $arguments.length;
+ requiredParameterCount = $function.$requiredArgCount;
+ if (argumentCount < requiredParameterCount)
+ return H.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
+ defaultValuesClosure = $function.$defaultValues;
+ t1 = defaultValuesClosure == null;
+ defaultValues = !t1 ? defaultValuesClosure() : null;
+ interceptor = J.getInterceptor$($function);
+ jsFunction = interceptor["call*"];
+ if (typeof jsFunction == "string")
+ jsFunction = interceptor[jsFunction];
+ if (t1) {
+ if (namedArguments != null && namedArguments.get$isNotEmpty(namedArguments))
+ return H.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
+ if (argumentCount === requiredParameterCount)
+ return jsFunction.apply($function, $arguments);
+ return H.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
+ }
+ if (defaultValues instanceof Array) {
+ if (namedArguments != null && namedArguments.get$isNotEmpty(namedArguments))
+ return H.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
+ if (argumentCount > requiredParameterCount + defaultValues.length)
+ return H.Primitives_functionNoSuchMethod($function, $arguments, null);
+ C.JSArray_methods.addAll$1($arguments, defaultValues.slice(argumentCount - requiredParameterCount));
+ return jsFunction.apply($function, $arguments);
+ } else {
+ if (argumentCount > requiredParameterCount)
+ return H.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
+ keys = Object.keys(defaultValues);
+ if (namedArguments == null)
+ for (t1 = keys.length, _i = 0; _i < keys.length; keys.length === t1 || (0, H.throwConcurrentModificationError)(keys), ++_i) {
+ defaultValue = defaultValues[keys[_i]];
+ if (C.C__Required === defaultValue)
+ return H.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
+ C.JSArray_methods.add$1($arguments, defaultValue);
+ }
+ else {
+ for (t1 = keys.length, used = 0, _i = 0; _i < keys.length; keys.length === t1 || (0, H.throwConcurrentModificationError)(keys), ++_i) {
+ t2 = keys[_i];
+ if (namedArguments.containsKey$1(0, t2)) {
+ ++used;
+ C.JSArray_methods.add$1($arguments, namedArguments.$index(0, t2));
+ } else {
+ defaultValue = defaultValues[t2];
+ if (C.C__Required === defaultValue)
+ return H.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
+ C.JSArray_methods.add$1($arguments, defaultValue);
+ }
+ }
+ if (used !== namedArguments.get$length(namedArguments))
+ return H.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
+ }
+ return jsFunction.apply($function, $arguments);
+ }
+ },
+ diagnoseIndexError: function(indexable, index) {
+ var $length, _s5_ = "index";
+ if (!H._isInt(index))
+ return new P.ArgumentError(true, index, _s5_, null);
+ $length = J.get$length$asx(indexable);
+ if (index < 0 || index >= $length)
+ return P.IndexError$(index, indexable, _s5_, null, $length);
+ return P.RangeError$value(index, _s5_, null);
+ },
+ diagnoseRangeError: function(start, end, $length) {
+ if (start < 0 || start > $length)
+ return P.RangeError$range(start, 0, $length, "start", null);
+ if (end != null)
+ if (end < start || end > $length)
+ return P.RangeError$range(end, start, $length, "end", null);
+ return new P.ArgumentError(true, end, "end", null);
+ },
+ argumentErrorValue: function(object) {
+ return new P.ArgumentError(true, object, null, null);
+ },
+ checkNum: function(value) {
+ if (typeof value != "number")
+ throw H.wrapException(H.argumentErrorValue(value));
+ return value;
+ },
+ wrapException: function(ex) {
+ var wrapper, t1;
+ if (ex == null)
+ ex = new P.NullThrownError();
+ wrapper = new Error();
+ wrapper.dartException = ex;
+ t1 = H.toStringWrapper;
+ if ("defineProperty" in Object) {
+ Object.defineProperty(wrapper, "message", {get: t1});
+ wrapper.name = "";
+ } else
+ wrapper.toString = t1;
+ return wrapper;
+ },
+ toStringWrapper: function() {
+ return J.toString$0$(this.dartException);
+ },
+ throwExpression: function(ex) {
+ throw H.wrapException(ex);
+ },
+ throwConcurrentModificationError: function(collection) {
+ throw H.wrapException(P.ConcurrentModificationError$(collection));
+ },
+ TypeErrorDecoder_extractPattern: function(message) {
+ var match, $arguments, argumentsExpr, expr, method, receiver;
+ message = H.quoteStringForRegExp(message.replace(String({}), '$receiver$'));
+ match = message.match(/\\\$[a-zA-Z]+\\\$/g);
+ if (match == null)
+ match = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ $arguments = match.indexOf("\\$arguments\\$");
+ argumentsExpr = match.indexOf("\\$argumentsExpr\\$");
+ expr = match.indexOf("\\$expr\\$");
+ method = match.indexOf("\\$method\\$");
+ receiver = match.indexOf("\\$receiver\\$");
+ return new H.TypeErrorDecoder(message.replace(new RegExp('\\\\\\$arguments\\\\\\$', 'g'), '((?:x|[^x])*)').replace(new RegExp('\\\\\\$argumentsExpr\\\\\\$', 'g'), '((?:x|[^x])*)').replace(new RegExp('\\\\\\$expr\\\\\\$', 'g'), '((?:x|[^x])*)').replace(new RegExp('\\\\\\$method\\\\\\$', 'g'), '((?:x|[^x])*)').replace(new RegExp('\\\\\\$receiver\\\\\\$', 'g'), '((?:x|[^x])*)'), $arguments, argumentsExpr, expr, method, receiver);
+ },
+ TypeErrorDecoder_provokeCallErrorOn: function(expression) {
+ return function($expr$) {
+ var $argumentsExpr$ = '$arguments$';
+ try {
+ $expr$.$method$($argumentsExpr$);
+ } catch (e) {
+ return e.message;
+ }
+ }(expression);
+ },
+ TypeErrorDecoder_provokePropertyErrorOn: function(expression) {
+ return function($expr$) {
+ try {
+ $expr$.$method$;
+ } catch (e) {
+ return e.message;
+ }
+ }(expression);
+ },
+ NullError$: function(_message, match) {
+ return new H.NullError(_message, match == null ? null : match.method);
+ },
+ JsNoSuchMethodError$: function(_message, match) {
+ var t1 = match == null,
+ t2 = t1 ? null : match.method;
+ return new H.JsNoSuchMethodError(_message, t2, t1 ? null : match.receiver);
+ },
+ unwrapException: function(ex) {
+ if (ex == null)
+ return new H.NullThrownFromJavaScriptException(ex);
+ if (ex instanceof H.ExceptionAndStackTrace)
+ return H.saveStackTrace(ex, ex.dartException);
+ if (typeof ex !== "object")
+ return ex;
+ if ("dartException" in ex)
+ return H.saveStackTrace(ex, ex.dartException);
+ return H._unwrapNonDartException(ex);
+ },
+ saveStackTrace: function(ex, error) {
+ if (type$.Error._is(error))
+ if (error.$thrownJsError == null)
+ error.$thrownJsError = ex;
+ return error;
+ },
+ _unwrapNonDartException: function(ex) {
+ var message, number, ieErrorCode, nsme, notClosure, nullCall, nullLiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLiteralProperty, match, t1, _null = null;
+ if (!("message" in ex))
+ return ex;
+ message = ex.message;
+ if ("number" in ex && typeof ex.number == "number") {
+ number = ex.number;
+ ieErrorCode = number & 65535;
+ if ((C.JSInt_methods._shrOtherPositive$1(number, 16) & 8191) === 10)
+ switch (ieErrorCode) {
+ case 438:
+ return H.saveStackTrace(ex, H.JsNoSuchMethodError$(H.S(message) + " (Error " + ieErrorCode + ")", _null));
+ case 445:
+ case 5007:
+ return H.saveStackTrace(ex, H.NullError$(H.S(message) + " (Error " + ieErrorCode + ")", _null));
+ }
+ }
+ if (ex instanceof TypeError) {
+ nsme = $.$get$TypeErrorDecoder_noSuchMethodPattern();
+ notClosure = $.$get$TypeErrorDecoder_notClosurePattern();
+ nullCall = $.$get$TypeErrorDecoder_nullCallPattern();
+ nullLiteralCall = $.$get$TypeErrorDecoder_nullLiteralCallPattern();
+ undefCall = $.$get$TypeErrorDecoder_undefinedCallPattern();
+ undefLiteralCall = $.$get$TypeErrorDecoder_undefinedLiteralCallPattern();
+ nullProperty = $.$get$TypeErrorDecoder_nullPropertyPattern();
+ $.$get$TypeErrorDecoder_nullLiteralPropertyPattern();
+ undefProperty = $.$get$TypeErrorDecoder_undefinedPropertyPattern();
+ undefLiteralProperty = $.$get$TypeErrorDecoder_undefinedLiteralPropertyPattern();
+ match = nsme.matchTypeError$1(message);
+ if (match != null)
+ return H.saveStackTrace(ex, H.JsNoSuchMethodError$(message, match));
+ else {
+ match = notClosure.matchTypeError$1(message);
+ if (match != null) {
+ match.method = "call";
+ return H.saveStackTrace(ex, H.JsNoSuchMethodError$(message, match));
+ } else {
+ match = nullCall.matchTypeError$1(message);
+ if (match == null) {
+ match = nullLiteralCall.matchTypeError$1(message);
+ if (match == null) {
+ match = undefCall.matchTypeError$1(message);
+ if (match == null) {
+ match = undefLiteralCall.matchTypeError$1(message);
+ if (match == null) {
+ match = nullProperty.matchTypeError$1(message);
+ if (match == null) {
+ match = nullLiteralCall.matchTypeError$1(message);
+ if (match == null) {
+ match = undefProperty.matchTypeError$1(message);
+ if (match == null) {
+ match = undefLiteralProperty.matchTypeError$1(message);
+ t1 = match != null;
+ } else
+ t1 = true;
+ } else
+ t1 = true;
+ } else
+ t1 = true;
+ } else
+ t1 = true;
+ } else
+ t1 = true;
+ } else
+ t1 = true;
+ } else
+ t1 = true;
+ if (t1)
+ return H.saveStackTrace(ex, H.NullError$(message, match));
+ }
+ }
+ return H.saveStackTrace(ex, new H.UnknownJsTypeError(typeof message == "string" ? message : ""));
+ }
+ if (ex instanceof RangeError) {
+ if (typeof message == "string" && message.indexOf("call stack") !== -1)
+ return new P.StackOverflowError();
+ message = function(ex) {
+ try {
+ return String(ex);
+ } catch (e) {
+ }
+ return null;
+ }(ex);
+ return H.saveStackTrace(ex, new P.ArgumentError(false, _null, _null, typeof message == "string" ? message.replace(/^RangeError:\s*/, "") : message));
+ }
+ if (typeof InternalError == "function" && ex instanceof InternalError)
+ if (typeof message == "string" && message === "too much recursion")
+ return new P.StackOverflowError();
+ return ex;
+ },
+ getTraceFromException: function(exception) {
+ var trace;
+ if (exception instanceof H.ExceptionAndStackTrace)
+ return exception.stackTrace;
+ if (exception == null)
+ return new H._StackTrace(exception);
+ trace = exception.$cachedTrace;
+ if (trace != null)
+ return trace;
+ return exception.$cachedTrace = new H._StackTrace(exception);
+ },
+ objectHashCode: function(object) {
+ if (object == null || typeof object != 'object')
+ return J.get$hashCode$(object);
+ else
+ return H.Primitives_objectHashCode(object);
+ },
+ fillLiteralMap: function(keyValuePairs, result) {
+ var index, index0, index1,
+ $length = keyValuePairs.length;
+ for (index = 0; index < $length; index = index1) {
+ index0 = index + 1;
+ index1 = index0 + 1;
+ result.$indexSet(0, keyValuePairs[index], keyValuePairs[index0]);
+ }
+ return result;
+ },
+ fillLiteralSet: function(values, result) {
+ var index,
+ $length = values.length;
+ for (index = 0; index < $length; ++index)
+ result.add$1(0, values[index]);
+ return result;
+ },
+ invokeClosure: function(closure, numberOfArguments, arg1, arg2, arg3, arg4) {
+ switch (numberOfArguments) {
+ case 0:
+ return closure.call$0();
+ case 1:
+ return closure.call$1(arg1);
+ case 2:
+ return closure.call$2(arg1, arg2);
+ case 3:
+ return closure.call$3(arg1, arg2, arg3);
+ case 4:
+ return closure.call$4(arg1, arg2, arg3, arg4);
+ }
+ throw H.wrapException(P.Exception_Exception("Unsupported number of arguments for wrapped closure"));
+ },
+ convertDartClosureToJS: function(closure, arity) {
+ var $function;
+ if (closure == null)
+ return null;
+ $function = closure.$identity;
+ if (!!$function)
+ return $function;
+ $function = function(closure, arity, invoke) {
+ return function(a1, a2, a3, a4) {
+ return invoke(closure, arity, a1, a2, a3, a4);
+ };
+ }(closure, arity, H.invokeClosure);
+ closure.$identity = $function;
+ return $function;
+ },
+ Closure_fromTearOff: function(receiver, functions, applyTrampolineIndex, reflectionInfo, isStatic, isIntercepted, propertyName) {
+ var $constructor, t1, trampoline, applyTrampoline, i, stub, stubCallName,
+ $function = functions[0],
+ callName = $function.$callName,
+ $prototype = isStatic ? Object.create(new H.StaticClosure().constructor.prototype) : Object.create(new H.BoundClosure(null, null, null, "").constructor.prototype);
+ $prototype.$initialize = $prototype.constructor;
+ if (isStatic)
+ $constructor = function static_tear_off() {
+ this.$initialize();
+ };
+ else {
+ t1 = $.Closure_functionCounter;
+ $.Closure_functionCounter = t1 + 1;
+ t1 = new Function("a,b,c,d" + t1, "this.$initialize(a,b,c,d" + t1 + ")");
+ $constructor = t1;
+ }
+ $prototype.constructor = $constructor;
+ $constructor.prototype = $prototype;
+ if (!isStatic) {
+ trampoline = H.Closure_forwardCallTo(receiver, $function, isIntercepted);
+ trampoline.$reflectionInfo = reflectionInfo;
+ } else {
+ $prototype.$static_name = propertyName;
+ trampoline = $function;
+ }
+ $prototype.$signature = H.Closure__computeSignatureFunctionNewRti(reflectionInfo, isStatic, isIntercepted);
+ $prototype[callName] = trampoline;
+ for (applyTrampoline = trampoline, i = 1; i < functions.length; ++i) {
+ stub = functions[i];
+ stubCallName = stub.$callName;
+ if (stubCallName != null) {
+ stub = isStatic ? stub : H.Closure_forwardCallTo(receiver, stub, isIntercepted);
+ $prototype[stubCallName] = stub;
+ }
+ if (i === applyTrampolineIndex) {
+ stub.$reflectionInfo = reflectionInfo;
+ applyTrampoline = stub;
+ }
+ }
+ $prototype["call*"] = applyTrampoline;
+ $prototype.$requiredArgCount = $function.$requiredArgCount;
+ $prototype.$defaultValues = $function.$defaultValues;
+ return $constructor;
+ },
+ Closure__computeSignatureFunctionNewRti: function(functionType, isStatic, isIntercepted) {
+ var typeEvalMethod;
+ if (typeof functionType == "number")
+ return function(getType, t) {
+ return function() {
+ return getType(t);
+ };
+ }(H.getTypeFromTypesTable, functionType);
+ if (typeof functionType == "string") {
+ if (isStatic)
+ throw H.wrapException("Cannot compute signature for static tearoff.");
+ typeEvalMethod = isIntercepted ? H.BoundClosure_evalRecipeIntercepted : H.BoundClosure_evalRecipe;
+ return function(recipe, evalOnReceiver) {
+ return function() {
+ return evalOnReceiver(this, recipe);
+ };
+ }(functionType, typeEvalMethod);
+ }
+ throw H.wrapException("Error in functionType of tearoff");
+ },
+ Closure_cspForwardCall: function(arity, isSuperCall, stubName, $function) {
+ var getSelf = H.BoundClosure_selfOf;
+ switch (isSuperCall ? -1 : arity) {
+ case 0:
+ return function(n, S) {
+ return function() {
+ return S(this)[n]();
+ };
+ }(stubName, getSelf);
+ case 1:
+ return function(n, S) {
+ return function(a) {
+ return S(this)[n](a);
+ };
+ }(stubName, getSelf);
+ case 2:
+ return function(n, S) {
+ return function(a, b) {
+ return S(this)[n](a, b);
+ };
+ }(stubName, getSelf);
+ case 3:
+ return function(n, S) {
+ return function(a, b, c) {
+ return S(this)[n](a, b, c);
+ };
+ }(stubName, getSelf);
+ case 4:
+ return function(n, S) {
+ return function(a, b, c, d) {
+ return S(this)[n](a, b, c, d);
+ };
+ }(stubName, getSelf);
+ case 5:
+ return function(n, S) {
+ return function(a, b, c, d, e) {
+ return S(this)[n](a, b, c, d, e);
+ };
+ }(stubName, getSelf);
+ default:
+ return function(f, s) {
+ return function() {
+ return f.apply(s(this), arguments);
+ };
+ }($function, getSelf);
+ }
+ },
+ Closure_forwardCallTo: function(receiver, $function, isIntercepted) {
+ var stubName, arity, lookedUpFunction, t1, t2, selfName, $arguments;
+ if (isIntercepted)
+ return H.Closure_forwardInterceptedCallTo(receiver, $function);
+ stubName = $function.$stubName;
+ arity = $function.length;
+ lookedUpFunction = receiver[stubName];
+ t1 = $function == null ? lookedUpFunction == null : $function === lookedUpFunction;
+ t2 = !t1 || arity >= 27;
+ if (t2)
+ return H.Closure_cspForwardCall(arity, !t1, stubName, $function);
+ if (arity === 0) {
+ t1 = $.Closure_functionCounter;
+ $.Closure_functionCounter = t1 + 1;
+ selfName = "self" + H.S(t1);
+ return new Function("return function(){var " + selfName + " = this." + H.S(H.BoundClosure_selfFieldName()) + ";return " + selfName + "." + H.S(stubName) + "();}")();
+ }
+ $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).join(",");
+ t1 = $.Closure_functionCounter;
+ $.Closure_functionCounter = t1 + 1;
+ $arguments += H.S(t1);
+ return new Function("return function(" + $arguments + "){return this." + H.S(H.BoundClosure_selfFieldName()) + "." + H.S(stubName) + "(" + $arguments + ");}")();
+ },
+ Closure_cspForwardInterceptedCall: function(arity, isSuperCall, $name, $function) {
+ var getSelf = H.BoundClosure_selfOf,
+ getReceiver = H.BoundClosure_receiverOf;
+ switch (isSuperCall ? -1 : arity) {
+ case 0:
+ throw H.wrapException(new H.RuntimeError("Intercepted function with no arguments."));
+ case 1:
+ return function(n, s, r) {
+ return function() {
+ return s(this)[n](r(this));
+ };
+ }($name, getSelf, getReceiver);
+ case 2:
+ return function(n, s, r) {
+ return function(a) {
+ return s(this)[n](r(this), a);
+ };
+ }($name, getSelf, getReceiver);
+ case 3:
+ return function(n, s, r) {
+ return function(a, b) {
+ return s(this)[n](r(this), a, b);
+ };
+ }($name, getSelf, getReceiver);
+ case 4:
+ return function(n, s, r) {
+ return function(a, b, c) {
+ return s(this)[n](r(this), a, b, c);
+ };
+ }($name, getSelf, getReceiver);
+ case 5:
+ return function(n, s, r) {
+ return function(a, b, c, d) {
+ return s(this)[n](r(this), a, b, c, d);
+ };
+ }($name, getSelf, getReceiver);
+ case 6:
+ return function(n, s, r) {
+ return function(a, b, c, d, e) {
+ return s(this)[n](r(this), a, b, c, d, e);
+ };
+ }($name, getSelf, getReceiver);
+ default:
+ return function(f, s, r, a) {
+ return function() {
+ a = [r(this)];
+ Array.prototype.push.apply(a, arguments);
+ return f.apply(s(this), a);
+ };
+ }($function, getSelf, getReceiver);
+ }
+ },
+ Closure_forwardInterceptedCallTo: function(receiver, $function) {
+ var stubName, arity, lookedUpFunction, t1, t2, $arguments,
+ selfField = H.BoundClosure_selfFieldName(),
+ receiverField = $.BoundClosure_receiverFieldNameCache;
+ if (receiverField == null)
+ receiverField = $.BoundClosure_receiverFieldNameCache = H.BoundClosure_computeFieldNamed("receiver");
+ stubName = $function.$stubName;
+ arity = $function.length;
+ lookedUpFunction = receiver[stubName];
+ t1 = $function == null ? lookedUpFunction == null : $function === lookedUpFunction;
+ t2 = !t1 || arity >= 28;
+ if (t2)
+ return H.Closure_cspForwardInterceptedCall(arity, !t1, stubName, $function);
+ if (arity === 1) {
+ t1 = "return function(){return this." + H.S(selfField) + "." + H.S(stubName) + "(this." + receiverField + ");";
+ t2 = $.Closure_functionCounter;
+ $.Closure_functionCounter = t2 + 1;
+ return new Function(t1 + H.S(t2) + "}")();
+ }
+ $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity - 1).join(",");
+ t1 = "return function(" + $arguments + "){return this." + H.S(selfField) + "." + H.S(stubName) + "(this." + receiverField + ", " + $arguments + ");";
+ t2 = $.Closure_functionCounter;
+ $.Closure_functionCounter = t2 + 1;
+ return new Function(t1 + H.S(t2) + "}")();
+ },
+ closureFromTearOff: function(receiver, functions, applyTrampolineIndex, reflectionInfo, isStatic, isIntercepted, $name) {
+ return H.Closure_fromTearOff(receiver, functions, applyTrampolineIndex, reflectionInfo, !!isStatic, !!isIntercepted, $name);
+ },
+ BoundClosure_evalRecipe: function(closure, recipe) {
+ return H._Universe_evalInEnvironment(init.typeUniverse, H.instanceType(closure._self), recipe);
+ },
+ BoundClosure_evalRecipeIntercepted: function(closure, recipe) {
+ return H._Universe_evalInEnvironment(init.typeUniverse, H.instanceType(closure._receiver), recipe);
+ },
+ BoundClosure_selfOf: function(closure) {
+ return closure._self;
+ },
+ BoundClosure_receiverOf: function(closure) {
+ return closure._receiver;
+ },
+ BoundClosure_selfFieldName: function() {
+ var t1 = $.BoundClosure_selfFieldNameCache;
+ return t1 == null ? $.BoundClosure_selfFieldNameCache = H.BoundClosure_computeFieldNamed("self") : t1;
+ },
+ BoundClosure_computeFieldNamed: function(fieldName) {
+ var t1, i, $name,
+ template = new H.BoundClosure("self", "target", "receiver", "name"),
+ names = J.JSArray_markFixedList(Object.getOwnPropertyNames(template));
+ for (t1 = names.length, i = 0; i < t1; ++i) {
+ $name = names[i];
+ if (template[$name] === fieldName)
+ return $name;
+ }
+ throw H.wrapException(P.ArgumentError$("Field name " + fieldName + " not found."));
+ },
+ throwCyclicInit: function(staticName) {
+ throw H.wrapException(new P.CyclicInitializationError(staticName));
+ },
+ getIsolateAffinityTag: function($name) {
+ return init.getIsolateTag($name);
+ },
+ throwLateInitializationError: function($name) {
+ return H.throwExpression(new H.LateError($name));
+ },
+ JsLinkedHashMap_JsLinkedHashMap$es6: function($K, $V) {
+ return new H.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>"));
+ },
+ defineProperty: function(obj, property, value) {
+ Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true});
+ },
+ lookupAndCacheInterceptor: function(obj) {
+ var interceptor, interceptorClass, altTag, mark, t1,
+ tag = $.getTagFunction.call$1(obj),
+ record = $.dispatchRecordsForInstanceTags[tag];
+ if (record != null) {
+ Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true});
+ return record.i;
+ }
+ interceptor = $.interceptorsForUncacheableTags[tag];
+ if (interceptor != null)
+ return interceptor;
+ interceptorClass = init.interceptorsByTag[tag];
+ if (interceptorClass == null) {
+ altTag = $.alternateTagFunction.call$2(obj, tag);
+ if (altTag != null) {
+ record = $.dispatchRecordsForInstanceTags[altTag];
+ if (record != null) {
+ Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true});
+ return record.i;
+ }
+ interceptor = $.interceptorsForUncacheableTags[altTag];
+ if (interceptor != null)
+ return interceptor;
+ interceptorClass = init.interceptorsByTag[altTag];
+ tag = altTag;
+ }
+ }
+ if (interceptorClass == null)
+ return null;
+ interceptor = interceptorClass.prototype;
+ mark = tag[0];
+ if (mark === "!") {
+ record = H.makeLeafDispatchRecord(interceptor);
+ $.dispatchRecordsForInstanceTags[tag] = record;
+ Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true});
+ return record.i;
+ }
+ if (mark === "~") {
+ $.interceptorsForUncacheableTags[tag] = interceptor;
+ return interceptor;
+ }
+ if (mark === "-") {
+ t1 = H.makeLeafDispatchRecord(interceptor);
+ Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true});
+ return t1.i;
+ }
+ if (mark === "+")
+ return H.patchInteriorProto(obj, interceptor);
+ if (mark === "*")
+ throw H.wrapException(P.UnimplementedError$(tag));
+ if (init.leafTags[tag] === true) {
+ t1 = H.makeLeafDispatchRecord(interceptor);
+ Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true});
+ return t1.i;
+ } else
+ return H.patchInteriorProto(obj, interceptor);
+ },
+ patchInteriorProto: function(obj, interceptor) {
+ var proto = Object.getPrototypeOf(obj);
+ Object.defineProperty(proto, init.dispatchPropertyName, {value: J.makeDispatchRecord(interceptor, proto, null, null), enumerable: false, writable: true, configurable: true});
+ return interceptor;
+ },
+ makeLeafDispatchRecord: function(interceptor) {
+ return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior);
+ },
+ makeDefaultDispatchRecord: function(tag, interceptorClass, proto) {
+ var interceptor = interceptorClass.prototype;
+ if (init.leafTags[tag] === true)
+ return H.makeLeafDispatchRecord(interceptor);
+ else
+ return J.makeDispatchRecord(interceptor, proto, null, null);
+ },
+ initNativeDispatch: function() {
+ if (true === $.initNativeDispatchFlag)
+ return;
+ $.initNativeDispatchFlag = true;
+ H.initNativeDispatchContinue();
+ },
+ initNativeDispatchContinue: function() {
+ var map, tags, fun, i, tag, proto, record, interceptorClass;
+ $.dispatchRecordsForInstanceTags = Object.create(null);
+ $.interceptorsForUncacheableTags = Object.create(null);
+ H.initHooks();
+ map = init.interceptorsByTag;
+ tags = Object.getOwnPropertyNames(map);
+ if (typeof window != "undefined") {
+ window;
+ fun = function() {
+ };
+ for (i = 0; i < tags.length; ++i) {
+ tag = tags[i];
+ proto = $.prototypeForTagFunction.call$1(tag);
+ if (proto != null) {
+ record = H.makeDefaultDispatchRecord(tag, map[tag], proto);
+ if (record != null) {
+ Object.defineProperty(proto, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true});
+ fun.prototype = proto;
+ }
+ }
+ }
+ }
+ for (i = 0; i < tags.length; ++i) {
+ tag = tags[i];
+ if (/^[A-Za-z_]/.test(tag)) {
+ interceptorClass = map[tag];
+ map["!" + tag] = interceptorClass;
+ map["~" + tag] = interceptorClass;
+ map["-" + tag] = interceptorClass;
+ map["+" + tag] = interceptorClass;
+ map["*" + tag] = interceptorClass;
+ }
+ }
+ },
+ initHooks: function() {
+ var transformers, i, transformer, getTag, getUnknownTag, prototypeForTag,
+ hooks = C.JS_CONST_bDt();
+ hooks = H.applyHooksTransformer(C.JS_CONST_0, H.applyHooksTransformer(C.JS_CONST_rr7, H.applyHooksTransformer(C.JS_CONST_Fs4, H.applyHooksTransformer(C.JS_CONST_Fs4, H.applyHooksTransformer(C.JS_CONST_gkc, H.applyHooksTransformer(C.JS_CONST_4hp, H.applyHooksTransformer(C.JS_CONST_QJm(C.JS_CONST_u2C), hooks)))))));
+ if (typeof dartNativeDispatchHooksTransformer != "undefined") {
+ transformers = dartNativeDispatchHooksTransformer;
+ if (typeof transformers == "function")
+ transformers = [transformers];
+ if (transformers.constructor == Array)
+ for (i = 0; i < transformers.length; ++i) {
+ transformer = transformers[i];
+ if (typeof transformer == "function")
+ hooks = transformer(hooks) || hooks;
+ }
+ }
+ getTag = hooks.getTag;
+ getUnknownTag = hooks.getUnknownTag;
+ prototypeForTag = hooks.prototypeForTag;
+ $.getTagFunction = new H.initHooks_closure(getTag);
+ $.alternateTagFunction = new H.initHooks_closure0(getUnknownTag);
+ $.prototypeForTagFunction = new H.initHooks_closure1(prototypeForTag);
+ },
+ applyHooksTransformer: function(transformer, hooks) {
+ return transformer(hooks) || hooks;
+ },
+ JSSyntaxRegExp_makeNative: function(source, multiLine, caseSensitive, unicode, dotAll, global) {
+ var m = multiLine ? "m" : "",
+ i = caseSensitive ? "" : "i",
+ u = unicode ? "u" : "",
+ s = dotAll ? "s" : "",
+ g = global ? "g" : "",
+ regexp = function(source, modifiers) {
+ try {
+ return new RegExp(source, modifiers);
+ } catch (e) {
+ return e;
+ }
+ }(source, m + i + u + s + g);
+ if (regexp instanceof RegExp)
+ return regexp;
+ throw H.wrapException(P.FormatException$("Illegal RegExp pattern (" + String(regexp) + ")", source, null));
+ },
+ stringContainsUnchecked: function(receiver, other, startIndex) {
+ var t1;
+ if (typeof other == "string")
+ return receiver.indexOf(other, startIndex) >= 0;
+ else if (other instanceof H.JSSyntaxRegExp) {
+ t1 = C.JSString_methods.substring$1(receiver, startIndex);
+ return other._nativeRegExp.test(t1);
+ } else {
+ t1 = J.allMatches$1$s(other, C.JSString_methods.substring$1(receiver, startIndex));
+ return !t1.get$isEmpty(t1);
+ }
+ },
+ escapeReplacement: function(replacement) {
+ if (replacement.indexOf("$", 0) >= 0)
+ return replacement.replace(/\$/g, "$$$$");
+ return replacement;
+ },
+ quoteStringForRegExp: function(string) {
+ if (/[[\]{}()*+?.\\^$|]/.test(string))
+ return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&");
+ return string;
+ },
+ stringReplaceAllUnchecked: function(receiver, pattern, replacement) {
+ var t1 = H.stringReplaceAllUncheckedString(receiver, pattern, replacement);
+ return t1;
+ },
+ stringReplaceAllUncheckedString: function(receiver, pattern, replacement) {
+ var $length, t1, i, index;
+ if (pattern === "") {
+ if (receiver === "")
+ return replacement;
+ $length = receiver.length;
+ for (t1 = replacement, i = 0; i < $length; ++i)
+ t1 = t1 + receiver[i] + replacement;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ index = receiver.indexOf(pattern, 0);
+ if (index < 0)
+ return receiver;
+ if (receiver.length < 500 || replacement.indexOf("$", 0) >= 0)
+ return receiver.split(pattern).join(replacement);
+ return receiver.replace(new RegExp(H.quoteStringForRegExp(pattern), 'g'), H.escapeReplacement(replacement));
+ },
+ _matchString: function(match) {
+ return match.$index(0, 0);
+ },
+ _stringIdentity: function(string) {
+ return string;
+ },
+ stringReplaceAllFuncUnchecked: function(receiver, pattern, onMatch, onNonMatch) {
+ var t1, startIndex, t2, match;
+ if (onMatch == null)
+ onMatch = H._js_helper___matchString$closure();
+ if (onNonMatch == null)
+ onNonMatch = H._js_helper___stringIdentity$closure();
+ if (typeof pattern == "string")
+ return H.stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNonMatch);
+ if (!type$.Pattern._is(pattern))
+ throw H.wrapException(P.ArgumentError$value(pattern, "pattern", "is not a Pattern"));
+ for (t1 = J.allMatches$1$s(pattern, receiver), t1 = t1.get$iterator(t1), startIndex = 0, t2 = ""; t1.moveNext$0();) {
+ match = t1.get$current(t1);
+ t2 = t2 + H.S(onNonMatch.call$1(C.JSString_methods.substring$2(receiver, startIndex, match.get$start(match)))) + H.S(onMatch.call$1(match));
+ startIndex = match.get$end(match);
+ }
+ t1 = t2 + H.S(onNonMatch.call$1(C.JSString_methods.substring$1(receiver, startIndex)));
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ stringReplaceAllEmptyFuncUnchecked: function(receiver, onMatch, onNonMatch) {
+ var i, i0,
+ $length = receiver.length,
+ t1 = H.S(onNonMatch.call$1(""));
+ for (i = 0; i < $length;) {
+ t1 += H.S(onMatch.call$1(new H.StringMatch(i, "")));
+ if ((C.JSString_methods._codeUnitAt$1(receiver, i) & 4294966272) === 55296 && $length > i + 1)
+ if ((C.JSString_methods._codeUnitAt$1(receiver, i + 1) & 4294966272) === 56320) {
+ i0 = i + 2;
+ t1 += H.S(onNonMatch.call$1(C.JSString_methods.substring$2(receiver, i, i0)));
+ i = i0;
+ continue;
+ }
+ t1 += H.S(onNonMatch.call$1(receiver[i]));
+ ++i;
+ }
+ t1 = t1 + H.S(onMatch.call$1(new H.StringMatch(i, ""))) + H.S(onNonMatch.call$1(""));
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ stringReplaceAllStringFuncUnchecked: function(receiver, pattern, onMatch, onNonMatch) {
+ var $length, startIndex, t1, position,
+ patternLength = pattern.length;
+ if (patternLength === 0)
+ return H.stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch);
+ $length = receiver.length;
+ for (startIndex = 0, t1 = ""; startIndex < $length;) {
+ position = receiver.indexOf(pattern, startIndex);
+ if (position === -1)
+ break;
+ t1 = t1 + H.S(onNonMatch.call$1(C.JSString_methods.substring$2(receiver, startIndex, position))) + H.S(onMatch.call$1(new H.StringMatch(position, pattern)));
+ startIndex = position + patternLength;
+ }
+ t1 += H.S(onNonMatch.call$1(C.JSString_methods.substring$1(receiver, startIndex)));
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ stringReplaceFirstUnchecked: function(receiver, pattern, replacement, startIndex) {
+ var index = receiver.indexOf(pattern, startIndex);
+ if (index < 0)
+ return receiver;
+ return H.stringReplaceRangeUnchecked(receiver, index, index + pattern.length, replacement);
+ },
+ stringReplaceRangeUnchecked: function(receiver, start, end, replacement) {
+ var prefix = receiver.substring(0, start),
+ suffix = receiver.substring(end);
+ return prefix + replacement + suffix;
+ },
+ ConstantMapView: function ConstantMapView(t0, t1) {
+ this._collection$_map = t0;
+ this.$ti = t1;
+ },
+ ConstantMap: function ConstantMap() {
+ },
+ ConstantMap_map_closure: function ConstantMap_map_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.transform = t1;
+ this.result = t2;
+ },
+ ConstantStringMap: function ConstantStringMap(t0, t1, t2, t3) {
+ var _ = this;
+ _.__js_helper$_length = t0;
+ _._jsObject = t1;
+ _._keys = t2;
+ _.$ti = t3;
+ },
+ ConstantStringMap_values_closure: function ConstantStringMap_values_closure(t0) {
+ this.$this = t0;
+ },
+ _ConstantMapKeyIterable: function _ConstantMapKeyIterable(t0, t1) {
+ this._map = t0;
+ this.$ti = t1;
+ },
+ GeneralConstantMap: function GeneralConstantMap(t0, t1) {
+ this._jsData = t0;
+ this.$ti = t1;
+ },
+ Instantiation: function Instantiation() {
+ },
+ Instantiation1: function Instantiation1(t0, t1) {
+ this._genericClosure = t0;
+ this.$ti = t1;
+ },
+ JSInvocationMirror: function JSInvocationMirror(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.__js_helper$_memberName = t0;
+ _.__js_helper$_kind = t1;
+ _._arguments = t2;
+ _._namedArgumentNames = t3;
+ _._typeArgumentCount = t4;
+ },
+ Primitives_initTicker_closure: function Primitives_initTicker_closure(t0) {
+ this.performance = t0;
+ },
+ Primitives_functionNoSuchMethod_closure: function Primitives_functionNoSuchMethod_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.namedArgumentList = t1;
+ this.$arguments = t2;
+ },
+ TypeErrorDecoder: function TypeErrorDecoder(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._pattern = t0;
+ _._arguments = t1;
+ _._argumentsExpr = t2;
+ _._expr = t3;
+ _._method = t4;
+ _._receiver = t5;
+ },
+ NullError: function NullError(t0, t1) {
+ this.__js_helper$_message = t0;
+ this._method = t1;
+ },
+ JsNoSuchMethodError: function JsNoSuchMethodError(t0, t1, t2) {
+ this.__js_helper$_message = t0;
+ this._method = t1;
+ this._receiver = t2;
+ },
+ UnknownJsTypeError: function UnknownJsTypeError(t0) {
+ this.__js_helper$_message = t0;
+ },
+ NullThrownFromJavaScriptException: function NullThrownFromJavaScriptException(t0) {
+ this._irritant = t0;
+ },
+ ExceptionAndStackTrace: function ExceptionAndStackTrace(t0, t1) {
+ this.dartException = t0;
+ this.stackTrace = t1;
+ },
+ _StackTrace: function _StackTrace(t0) {
+ this._exception = t0;
+ this._trace = null;
+ },
+ Closure: function Closure() {
+ },
+ TearOffClosure: function TearOffClosure() {
+ },
+ StaticClosure: function StaticClosure() {
+ },
+ BoundClosure: function BoundClosure(t0, t1, t2, t3) {
+ var _ = this;
+ _._self = t0;
+ _._target = t1;
+ _._receiver = t2;
+ _.__js_helper$_name = t3;
+ },
+ RuntimeError: function RuntimeError(t0) {
+ this.message = t0;
+ },
+ _Required: function _Required() {
+ },
+ JsLinkedHashMap: function JsLinkedHashMap(t0) {
+ var _ = this;
+ _.__js_helper$_length = 0;
+ _._last = _._first = _.__js_helper$_rest = _._nums = _._strings = null;
+ _._modifications = 0;
+ _.$ti = t0;
+ },
+ JsLinkedHashMap_values_closure: function JsLinkedHashMap_values_closure(t0) {
+ this.$this = t0;
+ },
+ JsLinkedHashMap_addAll_closure: function JsLinkedHashMap_addAll_closure(t0) {
+ this.$this = t0;
+ },
+ LinkedHashMapCell: function LinkedHashMapCell(t0, t1) {
+ var _ = this;
+ _.hashMapCellKey = t0;
+ _.hashMapCellValue = t1;
+ _._previous = _._next = null;
+ },
+ LinkedHashMapKeyIterable: function LinkedHashMapKeyIterable(t0, t1) {
+ this._map = t0;
+ this.$ti = t1;
+ },
+ LinkedHashMapKeyIterator: function LinkedHashMapKeyIterator(t0, t1) {
+ var _ = this;
+ _._map = t0;
+ _._modifications = t1;
+ _.__js_helper$_current = _._cell = null;
+ },
+ initHooks_closure: function initHooks_closure(t0) {
+ this.getTag = t0;
+ },
+ initHooks_closure0: function initHooks_closure0(t0) {
+ this.getUnknownTag = t0;
+ },
+ initHooks_closure1: function initHooks_closure1(t0) {
+ this.prototypeForTag = t0;
+ },
+ JSSyntaxRegExp: function JSSyntaxRegExp(t0, t1) {
+ var _ = this;
+ _.pattern = t0;
+ _._nativeRegExp = t1;
+ _._nativeAnchoredRegExp = _._nativeGlobalRegExp = null;
+ },
+ _MatchImplementation: function _MatchImplementation(t0) {
+ this._match = t0;
+ },
+ _AllMatchesIterable: function _AllMatchesIterable(t0, t1, t2) {
+ this._re = t0;
+ this.__js_helper$_string = t1;
+ this.__js_helper$_start = t2;
+ },
+ _AllMatchesIterator: function _AllMatchesIterator(t0, t1, t2) {
+ var _ = this;
+ _._regExp = t0;
+ _.__js_helper$_string = t1;
+ _._nextIndex = t2;
+ _.__js_helper$_current = null;
+ },
+ StringMatch: function StringMatch(t0, t1) {
+ this.start = t0;
+ this.pattern = t1;
+ },
+ _StringAllMatchesIterable: function _StringAllMatchesIterable(t0, t1, t2) {
+ this._input = t0;
+ this._pattern = t1;
+ this.__js_helper$_index = t2;
+ },
+ _StringAllMatchesIterator: function _StringAllMatchesIterator(t0, t1, t2) {
+ var _ = this;
+ _._input = t0;
+ _._pattern = t1;
+ _.__js_helper$_index = t2;
+ _.__js_helper$_current = null;
+ },
+ _checkViewArguments: function(buffer, offsetInBytes, $length) {
+ if (!H._isInt(offsetInBytes))
+ throw H.wrapException(P.ArgumentError$("Invalid view offsetInBytes " + H.S(offsetInBytes)));
+ },
+ _ensureNativeList: function(list) {
+ var t1, result, i;
+ if (type$.JSIndexable_dynamic._is(list))
+ return list;
+ t1 = J.getInterceptor$asx(list);
+ result = P.List_List$filled(t1.get$length(list), null, false, type$.dynamic);
+ for (i = 0; i < t1.get$length(list); ++i)
+ result[i] = t1.$index(list, i);
+ return result;
+ },
+ NativeByteData_NativeByteData$view: function(buffer, offsetInBytes, $length) {
+ H._checkViewArguments(buffer, offsetInBytes, $length);
+ return $length == null ? new DataView(buffer, offsetInBytes) : new DataView(buffer, offsetInBytes, $length);
+ },
+ NativeFloat32List_NativeFloat32List: function($length) {
+ return new Float32Array($length);
+ },
+ NativeFloat64List_NativeFloat64List$view: function(buffer, offsetInBytes, $length) {
+ H._checkViewArguments(buffer, offsetInBytes, $length);
+ return $length == null ? new Float64Array(buffer, offsetInBytes) : new Float64Array(buffer, offsetInBytes, $length);
+ },
+ NativeInt32List_NativeInt32List: function($length) {
+ return new Int32Array($length);
+ },
+ NativeInt32List_NativeInt32List$view: function(buffer, offsetInBytes, $length) {
+ H._checkViewArguments(buffer, offsetInBytes, $length);
+ return $length == null ? new Int32Array(buffer, offsetInBytes) : new Int32Array(buffer, offsetInBytes, $length);
+ },
+ NativeInt8List__create1: function(arg) {
+ return new Int8Array(arg);
+ },
+ NativeUint16List__create1: function(arg) {
+ return new Uint16Array(arg);
+ },
+ NativeUint8List_NativeUint8List$view: function(buffer, offsetInBytes, $length) {
+ H._checkViewArguments(buffer, offsetInBytes, $length);
+ return $length == null ? new Uint8Array(buffer, offsetInBytes) : new Uint8Array(buffer, offsetInBytes, $length);
+ },
+ _checkValidIndex: function(index, list, $length) {
+ if (index >>> 0 !== index || index >= $length)
+ throw H.wrapException(H.diagnoseIndexError(list, index));
+ },
+ _checkValidRange: function(start, end, $length) {
+ var t1;
+ if (!(start >>> 0 !== start))
+ if (end == null)
+ t1 = start > $length;
+ else
+ t1 = end >>> 0 !== end || start > end || end > $length;
+ else
+ t1 = true;
+ if (t1)
+ throw H.wrapException(H.diagnoseRangeError(start, end, $length));
+ if (end == null)
+ return $length;
+ return end;
+ },
+ NativeByteBuffer: function NativeByteBuffer() {
+ },
+ NativeTypedData: function NativeTypedData() {
+ },
+ NativeByteData: function NativeByteData() {
+ },
+ NativeTypedArray: function NativeTypedArray() {
+ },
+ NativeTypedArrayOfDouble: function NativeTypedArrayOfDouble() {
+ },
+ NativeTypedArrayOfInt: function NativeTypedArrayOfInt() {
+ },
+ NativeFloat32List: function NativeFloat32List() {
+ },
+ NativeFloat64List: function NativeFloat64List() {
+ },
+ NativeInt16List: function NativeInt16List() {
+ },
+ NativeInt32List: function NativeInt32List() {
+ },
+ NativeInt8List: function NativeInt8List() {
+ },
+ NativeUint16List: function NativeUint16List() {
+ },
+ NativeUint32List: function NativeUint32List() {
+ },
+ NativeUint8ClampedList: function NativeUint8ClampedList() {
+ },
+ NativeUint8List: function NativeUint8List() {
+ },
+ _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin: function _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin() {
+ },
+ _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin() {
+ },
+ _NativeTypedArrayOfInt_NativeTypedArray_ListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin() {
+ },
+ _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin() {
+ },
+ Rti__getQuestionFromStar: function(universe, rti) {
+ var question = rti._precomputed1;
+ return question == null ? rti._precomputed1 = H._Universe__lookupQuestionRti(universe, rti._primary, true) : question;
+ },
+ Rti__getFutureFromFutureOr: function(universe, rti) {
+ var future = rti._precomputed1;
+ return future == null ? rti._precomputed1 = H._Universe__lookupInterfaceRti(universe, "Future", [rti._primary]) : future;
+ },
+ Rti__isUnionOfFunctionType: function(rti) {
+ var kind = rti._kind;
+ if (kind === 6 || kind === 7 || kind === 8)
+ return H.Rti__isUnionOfFunctionType(rti._primary);
+ return kind === 11 || kind === 12;
+ },
+ Rti__getCanonicalRecipe: function(rti) {
+ return rti._canonicalRecipe;
+ },
+ findType: function(recipe) {
+ return H._Universe_eval(init.typeUniverse, recipe, false);
+ },
+ instantiatedGenericFunctionType: function(genericFunctionRti, instantiationRti) {
+ var t1, cache, key, probe, rti;
+ if (genericFunctionRti == null)
+ return null;
+ t1 = instantiationRti._rest;
+ cache = genericFunctionRti._bindCache;
+ if (cache == null)
+ cache = genericFunctionRti._bindCache = new Map();
+ key = instantiationRti._canonicalRecipe;
+ probe = cache.get(key);
+ if (probe != null)
+ return probe;
+ rti = H._substitute(init.typeUniverse, genericFunctionRti._primary, t1, 0);
+ cache.set(key, rti);
+ return rti;
+ },
+ _substitute: function(universe, rti, typeArguments, depth) {
+ var baseType, substitutedBaseType, interfaceTypeArguments, substitutedInterfaceTypeArguments, base, substitutedBase, $arguments, substitutedArguments, returnType, substitutedReturnType, functionParameters, substitutedFunctionParameters, bounds, substitutedBounds, index, argument,
+ kind = rti._kind;
+ switch (kind) {
+ case 5:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ return rti;
+ case 6:
+ baseType = rti._primary;
+ substitutedBaseType = H._substitute(universe, baseType, typeArguments, depth);
+ if (substitutedBaseType === baseType)
+ return rti;
+ return H._Universe__lookupStarRti(universe, substitutedBaseType, true);
+ case 7:
+ baseType = rti._primary;
+ substitutedBaseType = H._substitute(universe, baseType, typeArguments, depth);
+ if (substitutedBaseType === baseType)
+ return rti;
+ return H._Universe__lookupQuestionRti(universe, substitutedBaseType, true);
+ case 8:
+ baseType = rti._primary;
+ substitutedBaseType = H._substitute(universe, baseType, typeArguments, depth);
+ if (substitutedBaseType === baseType)
+ return rti;
+ return H._Universe__lookupFutureOrRti(universe, substitutedBaseType, true);
+ case 9:
+ interfaceTypeArguments = rti._rest;
+ substitutedInterfaceTypeArguments = H._substituteArray(universe, interfaceTypeArguments, typeArguments, depth);
+ if (substitutedInterfaceTypeArguments === interfaceTypeArguments)
+ return rti;
+ return H._Universe__lookupInterfaceRti(universe, rti._primary, substitutedInterfaceTypeArguments);
+ case 10:
+ base = rti._primary;
+ substitutedBase = H._substitute(universe, base, typeArguments, depth);
+ $arguments = rti._rest;
+ substitutedArguments = H._substituteArray(universe, $arguments, typeArguments, depth);
+ if (substitutedBase === base && substitutedArguments === $arguments)
+ return rti;
+ return H._Universe__lookupBindingRti(universe, substitutedBase, substitutedArguments);
+ case 11:
+ returnType = rti._primary;
+ substitutedReturnType = H._substitute(universe, returnType, typeArguments, depth);
+ functionParameters = rti._rest;
+ substitutedFunctionParameters = H._substituteFunctionParameters(universe, functionParameters, typeArguments, depth);
+ if (substitutedReturnType === returnType && substitutedFunctionParameters === functionParameters)
+ return rti;
+ return H._Universe__lookupFunctionRti(universe, substitutedReturnType, substitutedFunctionParameters);
+ case 12:
+ bounds = rti._rest;
+ depth += bounds.length;
+ substitutedBounds = H._substituteArray(universe, bounds, typeArguments, depth);
+ base = rti._primary;
+ substitutedBase = H._substitute(universe, base, typeArguments, depth);
+ if (substitutedBounds === bounds && substitutedBase === base)
+ return rti;
+ return H._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, true);
+ case 13:
+ index = rti._primary;
+ if (index < depth)
+ return rti;
+ argument = typeArguments[index - depth];
+ if (argument == null)
+ return rti;
+ return argument;
+ default:
+ throw H.wrapException(P.AssertionError$("Attempted to substitute unexpected RTI kind " + kind));
+ }
+ },
+ _substituteArray: function(universe, rtiArray, typeArguments, depth) {
+ var changed, i, rti, substitutedRti,
+ $length = rtiArray.length,
+ result = [];
+ for (changed = false, i = 0; i < $length; ++i) {
+ rti = rtiArray[i];
+ substitutedRti = H._substitute(universe, rti, typeArguments, depth);
+ if (substitutedRti !== rti)
+ changed = true;
+ result.push(substitutedRti);
+ }
+ return changed ? result : rtiArray;
+ },
+ _substituteNamed: function(universe, namedArray, typeArguments, depth) {
+ var changed, i, t1, t2, rti, substitutedRti,
+ $length = namedArray.length,
+ result = [];
+ for (changed = false, i = 0; i < $length; i += 3) {
+ t1 = namedArray[i];
+ t2 = namedArray[i + 1];
+ rti = namedArray[i + 2];
+ substitutedRti = H._substitute(universe, rti, typeArguments, depth);
+ if (substitutedRti !== rti)
+ changed = true;
+ result.push(t1);
+ result.push(t2);
+ result.push(substitutedRti);
+ }
+ return changed ? result : namedArray;
+ },
+ _substituteFunctionParameters: function(universe, functionParameters, typeArguments, depth) {
+ var result,
+ requiredPositional = functionParameters._requiredPositional,
+ substitutedRequiredPositional = H._substituteArray(universe, requiredPositional, typeArguments, depth),
+ optionalPositional = functionParameters._optionalPositional,
+ substitutedOptionalPositional = H._substituteArray(universe, optionalPositional, typeArguments, depth),
+ named = functionParameters._named,
+ substitutedNamed = H._substituteNamed(universe, named, typeArguments, depth);
+ if (substitutedRequiredPositional === requiredPositional && substitutedOptionalPositional === optionalPositional && substitutedNamed === named)
+ return functionParameters;
+ result = new H._FunctionParameters();
+ result._requiredPositional = substitutedRequiredPositional;
+ result._optionalPositional = substitutedOptionalPositional;
+ result._named = substitutedNamed;
+ return result;
+ },
+ setRuntimeTypeInfo: function(target, rti) {
+ target[init.arrayRti] = rti;
+ return target;
+ },
+ closureFunctionType: function(closure) {
+ var signature = closure.$signature;
+ if (signature != null) {
+ if (typeof signature == "number")
+ return H.getTypeFromTypesTable(signature);
+ return closure.$signature();
+ }
+ return null;
+ },
+ instanceOrFunctionType: function(object, testRti) {
+ var rti;
+ if (H.Rti__isUnionOfFunctionType(testRti))
+ if (object instanceof H.Closure) {
+ rti = H.closureFunctionType(object);
+ if (rti != null)
+ return rti;
+ }
+ return H.instanceType(object);
+ },
+ instanceType: function(object) {
+ var rti;
+ if (object instanceof P.Object) {
+ rti = object.$ti;
+ return rti != null ? rti : H._instanceTypeFromConstructor(object);
+ }
+ if (Array.isArray(object))
+ return H._arrayInstanceType(object);
+ return H._instanceTypeFromConstructor(J.getInterceptor$(object));
+ },
+ _arrayInstanceType: function(object) {
+ var rti = object[init.arrayRti],
+ defaultRti = type$.JSArray_dynamic;
+ if (rti == null)
+ return defaultRti;
+ if (rti.constructor !== defaultRti.constructor)
+ return defaultRti;
+ return rti;
+ },
+ _instanceType: function(object) {
+ var rti = object.$ti;
+ return rti != null ? rti : H._instanceTypeFromConstructor(object);
+ },
+ _instanceTypeFromConstructor: function(instance) {
+ var $constructor = instance.constructor,
+ probe = $constructor.$ccache;
+ if (probe != null)
+ return probe;
+ return H._instanceTypeFromConstructorMiss(instance, $constructor);
+ },
+ _instanceTypeFromConstructorMiss: function(instance, $constructor) {
+ var effectiveConstructor = instance instanceof H.Closure ? instance.__proto__.__proto__.constructor : $constructor,
+ rti = H._Universe_findErasedType(init.typeUniverse, effectiveConstructor.name);
+ $constructor.$ccache = rti;
+ return rti;
+ },
+ getTypeFromTypesTable: function(index) {
+ var rti,
+ table = init.types,
+ type = table[index];
+ if (typeof type == "string") {
+ rti = H._Universe_eval(init.typeUniverse, type, false);
+ table[index] = rti;
+ return rti;
+ }
+ return type;
+ },
+ getRuntimeType: function(object) {
+ var rti = object instanceof H.Closure ? H.closureFunctionType(object) : null;
+ return H.createRuntimeType(rti == null ? H.instanceType(object) : rti);
+ },
+ createRuntimeType: function(rti) {
+ var recipe, starErasedRecipe, starErasedRti,
+ type = rti._cachedRuntimeType;
+ if (type != null)
+ return type;
+ recipe = rti._canonicalRecipe;
+ starErasedRecipe = recipe.replace(/\*/g, "");
+ if (starErasedRecipe === recipe)
+ return rti._cachedRuntimeType = new H._Type(rti);
+ starErasedRti = H._Universe_eval(init.typeUniverse, starErasedRecipe, true);
+ type = starErasedRti._cachedRuntimeType;
+ return rti._cachedRuntimeType = type == null ? starErasedRti._cachedRuntimeType = new H._Type(starErasedRti) : type;
+ },
+ typeLiteral: function(recipe) {
+ return H.createRuntimeType(H._Universe_eval(init.typeUniverse, recipe, false));
+ },
+ _installSpecializedIsTest: function(object) {
+ var unstarred, isFn, testRti = this,
+ t1 = type$.Object;
+ if (testRti === t1)
+ return H._finishIsFn(testRti, object, H._isObject);
+ if (!H.isStrongTopType(testRti))
+ if (!(testRti === type$.legacy_Object))
+ t1 = testRti === t1;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ if (t1)
+ return H._finishIsFn(testRti, object, H._isTop);
+ t1 = testRti._kind;
+ unstarred = t1 === 6 ? testRti._primary : testRti;
+ if (unstarred === type$.int)
+ isFn = H._isInt;
+ else if (unstarred === type$.double || unstarred === type$.num)
+ isFn = H._isNum;
+ else if (unstarred === type$.String)
+ isFn = H._isString;
+ else
+ isFn = unstarred === type$.bool ? H._isBool : null;
+ if (isFn != null)
+ return H._finishIsFn(testRti, object, isFn);
+ if (unstarred._kind === 9) {
+ t1 = unstarred._primary;
+ if (unstarred._rest.every(H.isTopType)) {
+ testRti._specializedTestResource = "$is" + t1;
+ return H._finishIsFn(testRti, object, H._isTestViaProperty);
+ }
+ } else if (t1 === 7)
+ return H._finishIsFn(testRti, object, H._generalNullableIsTestImplementation);
+ return H._finishIsFn(testRti, object, H._generalIsTestImplementation);
+ },
+ _finishIsFn: function(testRti, object, isFn) {
+ testRti._is = isFn;
+ return testRti._is(object);
+ },
+ _installSpecializedAsCheck: function(object) {
+ var t1, asFn, testRti = this;
+ if (!H.isStrongTopType(testRti))
+ if (!(testRti === type$.legacy_Object))
+ t1 = testRti === type$.Object;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ if (t1)
+ asFn = H._asTop;
+ else if (testRti === type$.Object)
+ asFn = H._asObject;
+ else
+ asFn = H._generalNullableAsCheckImplementation;
+ testRti._as = asFn;
+ return testRti._as(object);
+ },
+ _nullIs: function(testRti) {
+ var t1,
+ kind = testRti._kind;
+ if (!H.isStrongTopType(testRti))
+ if (!(testRti === type$.legacy_Object))
+ if (!(testRti === type$.legacy_Never))
+ if (kind !== 7)
+ t1 = kind === 8 && H._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ return t1;
+ },
+ _generalIsTestImplementation: function(object) {
+ var testRti = this;
+ if (object == null)
+ return H._nullIs(testRti);
+ return H._isSubtype(init.typeUniverse, H.instanceOrFunctionType(object, testRti), null, testRti, null);
+ },
+ _generalNullableIsTestImplementation: function(object) {
+ if (object == null)
+ return true;
+ return this._primary._is(object);
+ },
+ _isTestViaProperty: function(object) {
+ var tag, testRti = this;
+ if (object == null)
+ return H._nullIs(testRti);
+ tag = testRti._specializedTestResource;
+ if (object instanceof P.Object)
+ return !!object[tag];
+ return !!J.getInterceptor$(object)[tag];
+ },
+ _generalAsCheckImplementation: function(object) {
+ var testRti = this;
+ if (object == null)
+ return object;
+ else if (testRti._is(object))
+ return object;
+ H._failedAsCheck(object, testRti);
+ },
+ _generalNullableAsCheckImplementation: function(object) {
+ var testRti = this;
+ if (object == null)
+ return object;
+ else if (testRti._is(object))
+ return object;
+ H._failedAsCheck(object, testRti);
+ },
+ _failedAsCheck: function(object, testRti) {
+ throw H.wrapException(H._TypeError$fromMessage(H._Error_compose(object, H.instanceOrFunctionType(object, testRti), H._rtiToString(testRti, null))));
+ },
+ _Error_compose: function(object, objectRti, checkedTypeDescription) {
+ var objectDescription = P.Error_safeToString(object),
+ objectTypeDescription = H._rtiToString(objectRti == null ? H.instanceType(object) : objectRti, null);
+ return objectDescription + ": type '" + H.S(objectTypeDescription) + "' is not a subtype of type '" + H.S(checkedTypeDescription) + "'";
+ },
+ _TypeError$fromMessage: function(message) {
+ return new H._TypeError("TypeError: " + message);
+ },
+ _TypeError__TypeError$forType: function(object, type) {
+ return new H._TypeError("TypeError: " + H._Error_compose(object, null, type));
+ },
+ _isObject: function(object) {
+ return object != null;
+ },
+ _asObject: function(object) {
+ return object;
+ },
+ _isTop: function(object) {
+ return true;
+ },
+ _asTop: function(object) {
+ return object;
+ },
+ _isBool: function(object) {
+ return true === object || false === object;
+ },
+ _asBool: function(object) {
+ if (true === object)
+ return true;
+ if (false === object)
+ return false;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "bool"));
+ },
+ _asBoolS: function(object) {
+ if (true === object)
+ return true;
+ if (false === object)
+ return false;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "bool"));
+ },
+ _asBoolQ: function(object) {
+ if (true === object)
+ return true;
+ if (false === object)
+ return false;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "bool?"));
+ },
+ _asDouble: function(object) {
+ if (typeof object == "number")
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "double"));
+ },
+ _asDoubleS: function(object) {
+ if (typeof object == "number")
+ return object;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "double"));
+ },
+ _asDoubleQ: function(object) {
+ if (typeof object == "number")
+ return object;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "double?"));
+ },
+ _isInt: function(object) {
+ return typeof object == "number" && Math.floor(object) === object;
+ },
+ _asInt: function(object) {
+ if (typeof object == "number" && Math.floor(object) === object)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "int"));
+ },
+ _asIntS: function(object) {
+ if (typeof object == "number" && Math.floor(object) === object)
+ return object;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "int"));
+ },
+ _asIntQ: function(object) {
+ if (typeof object == "number" && Math.floor(object) === object)
+ return object;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "int?"));
+ },
+ _isNum: function(object) {
+ return typeof object == "number";
+ },
+ _asNum: function(object) {
+ if (typeof object == "number")
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "num"));
+ },
+ _asNumS: function(object) {
+ if (typeof object == "number")
+ return object;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "num"));
+ },
+ _asNumQ: function(object) {
+ if (typeof object == "number")
+ return object;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "num?"));
+ },
+ _isString: function(object) {
+ return typeof object == "string";
+ },
+ _asString: function(object) {
+ if (typeof object == "string")
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "String"));
+ },
+ _asStringS: function(object) {
+ if (typeof object == "string")
+ return object;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "String"));
+ },
+ _asStringQ: function(object) {
+ if (typeof object == "string")
+ return object;
+ if (object == null)
+ return object;
+ throw H.wrapException(H._TypeError__TypeError$forType(object, "String?"));
+ },
+ _rtiArrayToString: function(array, genericContext) {
+ var s, sep, i;
+ for (s = "", sep = "", i = 0; i < array.length; ++i, sep = ", ")
+ s += C.JSString_methods.$add(sep, H._rtiToString(array[i], genericContext));
+ return s;
+ },
+ _functionRtiToString: function(functionType, genericContext, bounds) {
+ var boundsLength, outerContextLength, offset, i, t1, t2, t3, typeParametersText, typeSep, boundRti, kind, t4, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", ";
+ if (bounds != null) {
+ boundsLength = bounds.length;
+ if (genericContext == null) {
+ genericContext = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ outerContextLength = null;
+ } else
+ outerContextLength = genericContext.length;
+ offset = genericContext.length;
+ for (i = boundsLength; i > 0; --i)
+ genericContext.push("T" + (offset + i));
+ for (t1 = type$.nullable_Object, t2 = type$.legacy_Object, t3 = type$.Object, typeParametersText = "<", typeSep = "", i = 0; i < boundsLength; ++i, typeSep = _s2_) {
+ typeParametersText = C.JSString_methods.$add(typeParametersText + typeSep, genericContext[genericContext.length - 1 - i]);
+ boundRti = bounds[i];
+ kind = boundRti._kind;
+ if (!(kind === 2 || kind === 3 || kind === 4 || kind === 5 || boundRti === t1))
+ if (!(boundRti === t2))
+ t4 = boundRti === t3;
+ else
+ t4 = true;
+ else
+ t4 = true;
+ if (!t4)
+ typeParametersText += C.JSString_methods.$add(" extends ", H._rtiToString(boundRti, genericContext));
+ }
+ typeParametersText += ">";
+ } else {
+ typeParametersText = "";
+ outerContextLength = null;
+ }
+ t1 = functionType._primary;
+ parameters = functionType._rest;
+ requiredPositional = parameters._requiredPositional;
+ requiredPositionalLength = requiredPositional.length;
+ optionalPositional = parameters._optionalPositional;
+ optionalPositionalLength = optionalPositional.length;
+ named = parameters._named;
+ namedLength = named.length;
+ returnTypeText = H._rtiToString(t1, genericContext);
+ for (argumentsText = "", sep = "", i = 0; i < requiredPositionalLength; ++i, sep = _s2_)
+ argumentsText += C.JSString_methods.$add(sep, H._rtiToString(requiredPositional[i], genericContext));
+ if (optionalPositionalLength > 0) {
+ argumentsText += sep + "[";
+ for (sep = "", i = 0; i < optionalPositionalLength; ++i, sep = _s2_)
+ argumentsText += C.JSString_methods.$add(sep, H._rtiToString(optionalPositional[i], genericContext));
+ argumentsText += "]";
+ }
+ if (namedLength > 0) {
+ argumentsText += sep + "{";
+ for (sep = "", i = 0; i < namedLength; i += 3, sep = _s2_) {
+ argumentsText += sep;
+ if (named[i + 1])
+ argumentsText += "required ";
+ argumentsText += J.$add$ansx(H._rtiToString(named[i + 2], genericContext), " ") + named[i];
+ }
+ argumentsText += "}";
+ }
+ if (outerContextLength != null) {
+ genericContext.toString;
+ genericContext.length = outerContextLength;
+ }
+ return typeParametersText + "(" + argumentsText + ") => " + H.S(returnTypeText);
+ },
+ _rtiToString: function(rti, genericContext) {
+ var s, questionArgument, argumentKind, $name, $arguments, t1,
+ kind = rti._kind;
+ if (kind === 5)
+ return "erased";
+ if (kind === 2)
+ return "dynamic";
+ if (kind === 3)
+ return "void";
+ if (kind === 1)
+ return "Never";
+ if (kind === 4)
+ return "any";
+ if (kind === 6) {
+ s = H._rtiToString(rti._primary, genericContext);
+ return s;
+ }
+ if (kind === 7) {
+ questionArgument = rti._primary;
+ s = H._rtiToString(questionArgument, genericContext);
+ argumentKind = questionArgument._kind;
+ return J.$add$ansx(argumentKind === 11 || argumentKind === 12 ? C.JSString_methods.$add("(", s) + ")" : s, "?");
+ }
+ if (kind === 8)
+ return "FutureOr<" + H.S(H._rtiToString(rti._primary, genericContext)) + ">";
+ if (kind === 9) {
+ $name = H._unminifyOrTag(rti._primary);
+ $arguments = rti._rest;
+ return $arguments.length !== 0 ? $name + ("<" + H._rtiArrayToString($arguments, genericContext) + ">") : $name;
+ }
+ if (kind === 11)
+ return H._functionRtiToString(rti, genericContext, null);
+ if (kind === 12)
+ return H._functionRtiToString(rti._primary, genericContext, rti._rest);
+ if (kind === 13) {
+ genericContext.toString;
+ t1 = rti._primary;
+ return genericContext[genericContext.length - 1 - t1];
+ }
+ return "?";
+ },
+ _unminifyOrTag: function(rawClassName) {
+ var preserved = H.unmangleGlobalNameIfPreservedAnyways(rawClassName);
+ if (preserved != null)
+ return preserved;
+ return rawClassName;
+ },
+ _Universe_findRule: function(universe, targetType) {
+ var rule = universe.tR[targetType];
+ for (; typeof rule == "string";)
+ rule = universe.tR[rule];
+ return rule;
+ },
+ _Universe_findErasedType: function(universe, cls) {
+ var $length, erased, $arguments, i, $interface,
+ metadata = universe.eT,
+ probe = metadata[cls];
+ if (probe == null)
+ return H._Universe_eval(universe, cls, false);
+ else if (typeof probe == "number") {
+ $length = probe;
+ erased = H._Universe__lookupTerminalRti(universe, 5, "#");
+ $arguments = [];
+ for (i = 0; i < $length; ++i)
+ $arguments.push(erased);
+ $interface = H._Universe__lookupInterfaceRti(universe, cls, $arguments);
+ metadata[cls] = $interface;
+ return $interface;
+ } else
+ return probe;
+ },
+ _Universe_addRules: function(universe, rules) {
+ return H._Utils_objectAssign(universe.tR, rules);
+ },
+ _Universe_addErasedTypes: function(universe, types) {
+ return H._Utils_objectAssign(universe.eT, types);
+ },
+ _Universe_eval: function(universe, recipe, normalize) {
+ var rti,
+ cache = universe.eC,
+ probe = cache.get(recipe);
+ if (probe != null)
+ return probe;
+ rti = H._Parser_parse(H._Parser_create(universe, null, recipe, normalize));
+ cache.set(recipe, rti);
+ return rti;
+ },
+ _Universe_evalInEnvironment: function(universe, environment, recipe) {
+ var probe, rti,
+ cache = environment._evalCache;
+ if (cache == null)
+ cache = environment._evalCache = new Map();
+ probe = cache.get(recipe);
+ if (probe != null)
+ return probe;
+ rti = H._Parser_parse(H._Parser_create(universe, environment, recipe, true));
+ cache.set(recipe, rti);
+ return rti;
+ },
+ _Universe_bind: function(universe, environment, argumentsRti) {
+ var argumentsRecipe, probe, rti,
+ cache = environment._bindCache;
+ if (cache == null)
+ cache = environment._bindCache = new Map();
+ argumentsRecipe = argumentsRti._canonicalRecipe;
+ probe = cache.get(argumentsRecipe);
+ if (probe != null)
+ return probe;
+ rti = H._Universe__lookupBindingRti(universe, environment, argumentsRti._kind === 10 ? argumentsRti._rest : [argumentsRti]);
+ cache.set(argumentsRecipe, rti);
+ return rti;
+ },
+ _Universe__installTypeTests: function(universe, rti) {
+ rti._as = H._installSpecializedAsCheck;
+ rti._is = H._installSpecializedIsTest;
+ return rti;
+ },
+ _Universe__lookupTerminalRti: function(universe, kind, key) {
+ var rti, t1,
+ probe = universe.eC.get(key);
+ if (probe != null)
+ return probe;
+ rti = new H.Rti(null, null);
+ rti._kind = kind;
+ rti._canonicalRecipe = key;
+ t1 = H._Universe__installTypeTests(universe, rti);
+ universe.eC.set(key, t1);
+ return t1;
+ },
+ _Universe__lookupStarRti: function(universe, baseType, normalize) {
+ var t1,
+ key = baseType._canonicalRecipe + "*",
+ probe = universe.eC.get(key);
+ if (probe != null)
+ return probe;
+ t1 = H._Universe__createStarRti(universe, baseType, key, normalize);
+ universe.eC.set(key, t1);
+ return t1;
+ },
+ _Universe__createStarRti: function(universe, baseType, key, normalize) {
+ var baseKind, t1, rti;
+ if (normalize) {
+ baseKind = baseType._kind;
+ if (!H.isStrongTopType(baseType))
+ t1 = baseType === type$.Null || baseType === type$.JSNull || baseKind === 7 || baseKind === 6;
+ else
+ t1 = true;
+ if (t1)
+ return baseType;
+ }
+ rti = new H.Rti(null, null);
+ rti._kind = 6;
+ rti._primary = baseType;
+ rti._canonicalRecipe = key;
+ return H._Universe__installTypeTests(universe, rti);
+ },
+ _Universe__lookupQuestionRti: function(universe, baseType, normalize) {
+ var t1,
+ key = baseType._canonicalRecipe + "?",
+ probe = universe.eC.get(key);
+ if (probe != null)
+ return probe;
+ t1 = H._Universe__createQuestionRti(universe, baseType, key, normalize);
+ universe.eC.set(key, t1);
+ return t1;
+ },
+ _Universe__createQuestionRti: function(universe, baseType, key, normalize) {
+ var baseKind, t1, starArgument, rti;
+ if (normalize) {
+ baseKind = baseType._kind;
+ if (!H.isStrongTopType(baseType))
+ if (!(baseType === type$.Null || baseType === type$.JSNull))
+ if (baseKind !== 7)
+ t1 = baseKind === 8 && H.isNullable(baseType._primary);
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ if (t1)
+ return baseType;
+ else if (baseKind === 1 || baseType === type$.legacy_Never)
+ return type$.Null;
+ else if (baseKind === 6) {
+ starArgument = baseType._primary;
+ if (starArgument._kind === 8 && H.isNullable(starArgument._primary))
+ return starArgument;
+ else
+ return H.Rti__getQuestionFromStar(universe, baseType);
+ }
+ }
+ rti = new H.Rti(null, null);
+ rti._kind = 7;
+ rti._primary = baseType;
+ rti._canonicalRecipe = key;
+ return H._Universe__installTypeTests(universe, rti);
+ },
+ _Universe__lookupFutureOrRti: function(universe, baseType, normalize) {
+ var t1,
+ key = baseType._canonicalRecipe + "/",
+ probe = universe.eC.get(key);
+ if (probe != null)
+ return probe;
+ t1 = H._Universe__createFutureOrRti(universe, baseType, key, normalize);
+ universe.eC.set(key, t1);
+ return t1;
+ },
+ _Universe__createFutureOrRti: function(universe, baseType, key, normalize) {
+ var t1, t2, rti;
+ if (normalize) {
+ t1 = baseType._kind;
+ if (!H.isStrongTopType(baseType))
+ if (!(baseType === type$.legacy_Object))
+ t2 = baseType === type$.Object;
+ else
+ t2 = true;
+ else
+ t2 = true;
+ if (t2 || baseType === type$.Object)
+ return baseType;
+ else if (t1 === 1)
+ return H._Universe__lookupInterfaceRti(universe, "Future", [baseType]);
+ else if (baseType === type$.Null || baseType === type$.JSNull)
+ return type$.nullable_Future_Null;
+ }
+ rti = new H.Rti(null, null);
+ rti._kind = 8;
+ rti._primary = baseType;
+ rti._canonicalRecipe = key;
+ return H._Universe__installTypeTests(universe, rti);
+ },
+ _Universe__lookupGenericFunctionParameterRti: function(universe, index) {
+ var rti, t1,
+ key = "" + index + "^",
+ probe = universe.eC.get(key);
+ if (probe != null)
+ return probe;
+ rti = new H.Rti(null, null);
+ rti._kind = 13;
+ rti._primary = index;
+ rti._canonicalRecipe = key;
+ t1 = H._Universe__installTypeTests(universe, rti);
+ universe.eC.set(key, t1);
+ return t1;
+ },
+ _Universe__canonicalRecipeJoin: function($arguments) {
+ var s, sep, i,
+ $length = $arguments.length;
+ for (s = "", sep = "", i = 0; i < $length; ++i, sep = ",")
+ s += sep + $arguments[i]._canonicalRecipe;
+ return s;
+ },
+ _Universe__canonicalRecipeJoinNamed: function($arguments) {
+ var s, sep, i, t1, nameSep, s0,
+ $length = $arguments.length;
+ for (s = "", sep = "", i = 0; i < $length; i += 3, sep = ",") {
+ t1 = $arguments[i];
+ nameSep = $arguments[i + 1] ? "!" : ":";
+ s0 = $arguments[i + 2]._canonicalRecipe;
+ s += sep + t1 + nameSep + s0;
+ }
+ return s;
+ },
+ _Universe__lookupInterfaceRti: function(universe, $name, $arguments) {
+ var probe, rti, t1,
+ s = $name;
+ if ($arguments.length !== 0)
+ s += "<" + H._Universe__canonicalRecipeJoin($arguments) + ">";
+ probe = universe.eC.get(s);
+ if (probe != null)
+ return probe;
+ rti = new H.Rti(null, null);
+ rti._kind = 9;
+ rti._primary = $name;
+ rti._rest = $arguments;
+ if ($arguments.length > 0)
+ rti._precomputed1 = $arguments[0];
+ rti._canonicalRecipe = s;
+ t1 = H._Universe__installTypeTests(universe, rti);
+ universe.eC.set(s, t1);
+ return t1;
+ },
+ _Universe__lookupBindingRti: function(universe, base, $arguments) {
+ var newBase, newArguments, key, probe, rti, t1;
+ if (base._kind === 10) {
+ newBase = base._primary;
+ newArguments = base._rest.concat($arguments);
+ } else {
+ newArguments = $arguments;
+ newBase = base;
+ }
+ key = newBase._canonicalRecipe + (";<" + H._Universe__canonicalRecipeJoin(newArguments) + ">");
+ probe = universe.eC.get(key);
+ if (probe != null)
+ return probe;
+ rti = new H.Rti(null, null);
+ rti._kind = 10;
+ rti._primary = newBase;
+ rti._rest = newArguments;
+ rti._canonicalRecipe = key;
+ t1 = H._Universe__installTypeTests(universe, rti);
+ universe.eC.set(key, t1);
+ return t1;
+ },
+ _Universe__lookupFunctionRti: function(universe, returnType, parameters) {
+ var sep, t1, key, probe, rti,
+ s = returnType._canonicalRecipe,
+ requiredPositional = parameters._requiredPositional,
+ requiredPositionalLength = requiredPositional.length,
+ optionalPositional = parameters._optionalPositional,
+ optionalPositionalLength = optionalPositional.length,
+ named = parameters._named,
+ namedLength = named.length,
+ recipe = "(" + H._Universe__canonicalRecipeJoin(requiredPositional);
+ if (optionalPositionalLength > 0) {
+ sep = requiredPositionalLength > 0 ? "," : "";
+ t1 = H._Universe__canonicalRecipeJoin(optionalPositional);
+ recipe += sep + "[" + t1 + "]";
+ }
+ if (namedLength > 0) {
+ sep = requiredPositionalLength > 0 ? "," : "";
+ t1 = H._Universe__canonicalRecipeJoinNamed(named);
+ recipe += sep + "{" + t1 + "}";
+ }
+ key = s + (recipe + ")");
+ probe = universe.eC.get(key);
+ if (probe != null)
+ return probe;
+ rti = new H.Rti(null, null);
+ rti._kind = 11;
+ rti._primary = returnType;
+ rti._rest = parameters;
+ rti._canonicalRecipe = key;
+ t1 = H._Universe__installTypeTests(universe, rti);
+ universe.eC.set(key, t1);
+ return t1;
+ },
+ _Universe__lookupGenericFunctionRti: function(universe, baseFunctionType, bounds, normalize) {
+ var t1,
+ key = baseFunctionType._canonicalRecipe + ("<" + H._Universe__canonicalRecipeJoin(bounds) + ">"),
+ probe = universe.eC.get(key);
+ if (probe != null)
+ return probe;
+ t1 = H._Universe__createGenericFunctionRti(universe, baseFunctionType, bounds, key, normalize);
+ universe.eC.set(key, t1);
+ return t1;
+ },
+ _Universe__createGenericFunctionRti: function(universe, baseFunctionType, bounds, key, normalize) {
+ var $length, typeArguments, count, i, bound, substitutedBase, substitutedBounds, rti;
+ if (normalize) {
+ $length = bounds.length;
+ typeArguments = new Array($length);
+ for (count = 0, i = 0; i < $length; ++i) {
+ bound = bounds[i];
+ if (bound._kind === 1) {
+ typeArguments[i] = bound;
+ ++count;
+ }
+ }
+ if (count > 0) {
+ substitutedBase = H._substitute(universe, baseFunctionType, typeArguments, 0);
+ substitutedBounds = H._substituteArray(universe, bounds, typeArguments, 0);
+ return H._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, bounds !== substitutedBounds);
+ }
+ }
+ rti = new H.Rti(null, null);
+ rti._kind = 12;
+ rti._primary = baseFunctionType;
+ rti._rest = bounds;
+ rti._canonicalRecipe = key;
+ return H._Universe__installTypeTests(universe, rti);
+ },
+ _Parser_create: function(universe, environment, recipe, normalize) {
+ return {u: universe, e: environment, r: recipe, s: [], p: 0, n: normalize};
+ },
+ _Parser_parse: function(parser) {
+ var t1, i, ch, universe, array, head, base, u, parameters, optionalPositional, named, item,
+ source = parser.r,
+ stack = parser.s;
+ for (t1 = source.length, i = 0; i < t1;) {
+ ch = source.charCodeAt(i);
+ if (ch >= 48 && ch <= 57)
+ i = H._Parser_handleDigit(i + 1, ch, source, stack);
+ else if ((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36)
+ i = H._Parser_handleIdentifier(parser, i, source, stack, false);
+ else if (ch === 46)
+ i = H._Parser_handleIdentifier(parser, i, source, stack, true);
+ else {
+ ++i;
+ switch (ch) {
+ case 44:
+ break;
+ case 58:
+ stack.push(false);
+ break;
+ case 33:
+ stack.push(true);
+ break;
+ case 59:
+ stack.push(H._Parser_toType(parser.u, parser.e, stack.pop()));
+ break;
+ case 94:
+ stack.push(H._Universe__lookupGenericFunctionParameterRti(parser.u, stack.pop()));
+ break;
+ case 35:
+ stack.push(H._Universe__lookupTerminalRti(parser.u, 5, "#"));
+ break;
+ case 64:
+ stack.push(H._Universe__lookupTerminalRti(parser.u, 2, "@"));
+ break;
+ case 126:
+ stack.push(H._Universe__lookupTerminalRti(parser.u, 3, "~"));
+ break;
+ case 60:
+ stack.push(parser.p);
+ parser.p = stack.length;
+ break;
+ case 62:
+ universe = parser.u;
+ array = stack.splice(parser.p);
+ H._Parser_toTypes(parser.u, parser.e, array);
+ parser.p = stack.pop();
+ head = stack.pop();
+ if (typeof head == "string")
+ stack.push(H._Universe__lookupInterfaceRti(universe, head, array));
+ else {
+ base = H._Parser_toType(universe, parser.e, head);
+ switch (base._kind) {
+ case 11:
+ stack.push(H._Universe__lookupGenericFunctionRti(universe, base, array, parser.n));
+ break;
+ default:
+ stack.push(H._Universe__lookupBindingRti(universe, base, array));
+ break;
+ }
+ }
+ break;
+ case 38:
+ H._Parser_handleExtendedOperations(parser, stack);
+ break;
+ case 42:
+ u = parser.u;
+ stack.push(H._Universe__lookupStarRti(u, H._Parser_toType(u, parser.e, stack.pop()), parser.n));
+ break;
+ case 63:
+ u = parser.u;
+ stack.push(H._Universe__lookupQuestionRti(u, H._Parser_toType(u, parser.e, stack.pop()), parser.n));
+ break;
+ case 47:
+ u = parser.u;
+ stack.push(H._Universe__lookupFutureOrRti(u, H._Parser_toType(u, parser.e, stack.pop()), parser.n));
+ break;
+ case 40:
+ stack.push(parser.p);
+ parser.p = stack.length;
+ break;
+ case 41:
+ universe = parser.u;
+ parameters = new H._FunctionParameters();
+ optionalPositional = universe.sEA;
+ named = universe.sEA;
+ head = stack.pop();
+ if (typeof head == "number")
+ switch (head) {
+ case -1:
+ optionalPositional = stack.pop();
+ break;
+ case -2:
+ named = stack.pop();
+ break;
+ default:
+ stack.push(head);
+ break;
+ }
+ else
+ stack.push(head);
+ array = stack.splice(parser.p);
+ H._Parser_toTypes(parser.u, parser.e, array);
+ parser.p = stack.pop();
+ parameters._requiredPositional = array;
+ parameters._optionalPositional = optionalPositional;
+ parameters._named = named;
+ stack.push(H._Universe__lookupFunctionRti(universe, H._Parser_toType(universe, parser.e, stack.pop()), parameters));
+ break;
+ case 91:
+ stack.push(parser.p);
+ parser.p = stack.length;
+ break;
+ case 93:
+ array = stack.splice(parser.p);
+ H._Parser_toTypes(parser.u, parser.e, array);
+ parser.p = stack.pop();
+ stack.push(array);
+ stack.push(-1);
+ break;
+ case 123:
+ stack.push(parser.p);
+ parser.p = stack.length;
+ break;
+ case 125:
+ array = stack.splice(parser.p);
+ H._Parser_toTypesNamed(parser.u, parser.e, array);
+ parser.p = stack.pop();
+ stack.push(array);
+ stack.push(-2);
+ break;
+ default:
+ throw "Bad character " + ch;
+ }
+ }
+ }
+ item = stack.pop();
+ return H._Parser_toType(parser.u, parser.e, item);
+ },
+ _Parser_handleDigit: function(i, digit, source, stack) {
+ var t1, ch,
+ value = digit - 48;
+ for (t1 = source.length; i < t1; ++i) {
+ ch = source.charCodeAt(i);
+ if (!(ch >= 48 && ch <= 57))
+ break;
+ value = value * 10 + (ch - 48);
+ }
+ stack.push(value);
+ return i;
+ },
+ _Parser_handleIdentifier: function(parser, start, source, stack, hasPeriod) {
+ var t1, ch, t2, string, environment, recipe,
+ i = start + 1;
+ for (t1 = source.length; i < t1; ++i) {
+ ch = source.charCodeAt(i);
+ if (ch === 46) {
+ if (hasPeriod)
+ break;
+ hasPeriod = true;
+ } else {
+ if (!((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36))
+ t2 = ch >= 48 && ch <= 57;
+ else
+ t2 = true;
+ if (!t2)
+ break;
+ }
+ }
+ string = source.substring(start, i);
+ if (hasPeriod) {
+ t1 = parser.u;
+ environment = parser.e;
+ if (environment._kind === 10)
+ environment = environment._primary;
+ recipe = H._Universe_findRule(t1, environment._primary)[string];
+ if (recipe == null)
+ H.throwExpression('No "' + string + '" in "' + H.Rti__getCanonicalRecipe(environment) + '"');
+ stack.push(H._Universe_evalInEnvironment(t1, environment, recipe));
+ } else
+ stack.push(string);
+ return i;
+ },
+ _Parser_handleExtendedOperations: function(parser, stack) {
+ var $top = stack.pop();
+ if (0 === $top) {
+ stack.push(H._Universe__lookupTerminalRti(parser.u, 1, "0&"));
+ return;
+ }
+ if (1 === $top) {
+ stack.push(H._Universe__lookupTerminalRti(parser.u, 4, "1&"));
+ return;
+ }
+ throw H.wrapException(P.AssertionError$("Unexpected extended operation " + H.S($top)));
+ },
+ _Parser_toType: function(universe, environment, item) {
+ if (typeof item == "string")
+ return H._Universe__lookupInterfaceRti(universe, item, universe.sEA);
+ else if (typeof item == "number")
+ return H._Parser_indexToType(universe, environment, item);
+ else
+ return item;
+ },
+ _Parser_toTypes: function(universe, environment, items) {
+ var i,
+ $length = items.length;
+ for (i = 0; i < $length; ++i)
+ items[i] = H._Parser_toType(universe, environment, items[i]);
+ },
+ _Parser_toTypesNamed: function(universe, environment, items) {
+ var i,
+ $length = items.length;
+ for (i = 2; i < $length; i += 3)
+ items[i] = H._Parser_toType(universe, environment, items[i]);
+ },
+ _Parser_indexToType: function(universe, environment, index) {
+ var typeArguments, len,
+ kind = environment._kind;
+ if (kind === 10) {
+ if (index === 0)
+ return environment._primary;
+ typeArguments = environment._rest;
+ len = typeArguments.length;
+ if (index <= len)
+ return typeArguments[index - 1];
+ index -= len;
+ environment = environment._primary;
+ kind = environment._kind;
+ } else if (index === 0)
+ return environment;
+ if (kind !== 9)
+ throw H.wrapException(P.AssertionError$("Indexed base must be an interface type"));
+ typeArguments = environment._rest;
+ if (index <= typeArguments.length)
+ return typeArguments[index - 1];
+ throw H.wrapException(P.AssertionError$("Bad index " + index + " for " + environment.toString$0(0)));
+ },
+ _isSubtype: function(universe, s, sEnv, t, tEnv) {
+ var t1, sKind, leftTypeVariable, tKind, sBounds, tBounds, sLength, i, sBound, tBound;
+ if (s === t)
+ return true;
+ if (!H.isStrongTopType(t))
+ if (!(t === type$.legacy_Object))
+ t1 = t === type$.Object;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ if (t1)
+ return true;
+ sKind = s._kind;
+ if (sKind === 4)
+ return true;
+ if (H.isStrongTopType(s))
+ return false;
+ if (s._kind !== 1)
+ t1 = s === type$.Null || s === type$.JSNull;
+ else
+ t1 = true;
+ if (t1)
+ return true;
+ leftTypeVariable = sKind === 13;
+ if (leftTypeVariable)
+ if (H._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv))
+ return true;
+ tKind = t._kind;
+ if (sKind === 6)
+ return H._isSubtype(universe, s._primary, sEnv, t, tEnv);
+ if (tKind === 6) {
+ t1 = t._primary;
+ return H._isSubtype(universe, s, sEnv, t1, tEnv);
+ }
+ if (sKind === 8) {
+ if (!H._isSubtype(universe, s._primary, sEnv, t, tEnv))
+ return false;
+ return H._isSubtype(universe, H.Rti__getFutureFromFutureOr(universe, s), sEnv, t, tEnv);
+ }
+ if (sKind === 7) {
+ t1 = H._isSubtype(universe, s._primary, sEnv, t, tEnv);
+ return t1;
+ }
+ if (tKind === 8) {
+ if (H._isSubtype(universe, s, sEnv, t._primary, tEnv))
+ return true;
+ return H._isSubtype(universe, s, sEnv, H.Rti__getFutureFromFutureOr(universe, t), tEnv);
+ }
+ if (tKind === 7) {
+ t1 = H._isSubtype(universe, s, sEnv, t._primary, tEnv);
+ return t1;
+ }
+ if (leftTypeVariable)
+ return false;
+ t1 = sKind !== 11;
+ if ((!t1 || sKind === 12) && t === type$.Function)
+ return true;
+ if (tKind === 12) {
+ if (s === type$.JavaScriptFunction)
+ return true;
+ if (sKind !== 12)
+ return false;
+ sBounds = s._rest;
+ tBounds = t._rest;
+ sLength = sBounds.length;
+ if (sLength !== tBounds.length)
+ return false;
+ sEnv = sEnv == null ? sBounds : sBounds.concat(sEnv);
+ tEnv = tEnv == null ? tBounds : tBounds.concat(tEnv);
+ for (i = 0; i < sLength; ++i) {
+ sBound = sBounds[i];
+ tBound = tBounds[i];
+ if (!H._isSubtype(universe, sBound, sEnv, tBound, tEnv) || !H._isSubtype(universe, tBound, tEnv, sBound, sEnv))
+ return false;
+ }
+ return H._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv);
+ }
+ if (tKind === 11) {
+ if (s === type$.JavaScriptFunction)
+ return true;
+ if (t1)
+ return false;
+ return H._isFunctionSubtype(universe, s, sEnv, t, tEnv);
+ }
+ if (sKind === 9) {
+ if (tKind !== 9)
+ return false;
+ return H._isInterfaceSubtype(universe, s, sEnv, t, tEnv);
+ }
+ return false;
+ },
+ _isFunctionSubtype: function(universe, s, sEnv, t, tEnv) {
+ var sParameters, tParameters, sRequiredPositional, tRequiredPositional, sRequiredPositionalLength, tRequiredPositionalLength, requiredPositionalDelta, sOptionalPositional, tOptionalPositional, sOptionalPositionalLength, tOptionalPositionalLength, i, t1, sNamed, tNamed, sNamedLength, tNamedLength, sIndex, tIndex, tName, sName;
+ if (!H._isSubtype(universe, s._primary, sEnv, t._primary, tEnv))
+ return false;
+ sParameters = s._rest;
+ tParameters = t._rest;
+ sRequiredPositional = sParameters._requiredPositional;
+ tRequiredPositional = tParameters._requiredPositional;
+ sRequiredPositionalLength = sRequiredPositional.length;
+ tRequiredPositionalLength = tRequiredPositional.length;
+ if (sRequiredPositionalLength > tRequiredPositionalLength)
+ return false;
+ requiredPositionalDelta = tRequiredPositionalLength - sRequiredPositionalLength;
+ sOptionalPositional = sParameters._optionalPositional;
+ tOptionalPositional = tParameters._optionalPositional;
+ sOptionalPositionalLength = sOptionalPositional.length;
+ tOptionalPositionalLength = tOptionalPositional.length;
+ if (sRequiredPositionalLength + sOptionalPositionalLength < tRequiredPositionalLength + tOptionalPositionalLength)
+ return false;
+ for (i = 0; i < sRequiredPositionalLength; ++i) {
+ t1 = sRequiredPositional[i];
+ if (!H._isSubtype(universe, tRequiredPositional[i], tEnv, t1, sEnv))
+ return false;
+ }
+ for (i = 0; i < requiredPositionalDelta; ++i) {
+ t1 = sOptionalPositional[i];
+ if (!H._isSubtype(universe, tRequiredPositional[sRequiredPositionalLength + i], tEnv, t1, sEnv))
+ return false;
+ }
+ for (i = 0; i < tOptionalPositionalLength; ++i) {
+ t1 = sOptionalPositional[requiredPositionalDelta + i];
+ if (!H._isSubtype(universe, tOptionalPositional[i], tEnv, t1, sEnv))
+ return false;
+ }
+ sNamed = sParameters._named;
+ tNamed = tParameters._named;
+ sNamedLength = sNamed.length;
+ tNamedLength = tNamed.length;
+ for (sIndex = 0, tIndex = 0; tIndex < tNamedLength; tIndex += 3) {
+ tName = tNamed[tIndex];
+ for (; true;) {
+ if (sIndex >= sNamedLength)
+ return false;
+ sName = sNamed[sIndex];
+ sIndex += 3;
+ if (tName < sName)
+ return false;
+ if (sName < tName)
+ continue;
+ t1 = sNamed[sIndex - 1];
+ if (!H._isSubtype(universe, tNamed[tIndex + 2], tEnv, t1, sEnv))
+ return false;
+ break;
+ }
+ }
+ return true;
+ },
+ _isInterfaceSubtype: function(universe, s, sEnv, t, tEnv) {
+ var sArgs, tArgs, $length, i, t1, t2, rule, supertypeArgs,
+ sName = s._primary,
+ tName = t._primary;
+ if (sName === tName) {
+ sArgs = s._rest;
+ tArgs = t._rest;
+ $length = sArgs.length;
+ for (i = 0; i < $length; ++i) {
+ t1 = sArgs[i];
+ t2 = tArgs[i];
+ if (!H._isSubtype(universe, t1, sEnv, t2, tEnv))
+ return false;
+ }
+ return true;
+ }
+ if (t === type$.Object)
+ return true;
+ rule = H._Universe_findRule(universe, sName);
+ if (rule == null)
+ return false;
+ supertypeArgs = rule[tName];
+ if (supertypeArgs == null)
+ return false;
+ $length = supertypeArgs.length;
+ tArgs = t._rest;
+ for (i = 0; i < $length; ++i)
+ if (!H._isSubtype(universe, H._Universe_evalInEnvironment(universe, s, supertypeArgs[i]), sEnv, tArgs[i], tEnv))
+ return false;
+ return true;
+ },
+ isNullable: function(t) {
+ var t1,
+ kind = t._kind;
+ if (!(t === type$.Null || t === type$.JSNull))
+ if (!H.isStrongTopType(t))
+ if (kind !== 7)
+ if (!(kind === 6 && H.isNullable(t._primary)))
+ t1 = kind === 8 && H.isNullable(t._primary);
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ return t1;
+ },
+ isTopType: function(t) {
+ var t1;
+ if (!H.isStrongTopType(t))
+ if (!(t === type$.legacy_Object))
+ t1 = t === type$.Object;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ return t1;
+ },
+ isStrongTopType: function(t) {
+ var kind = t._kind;
+ return kind === 2 || kind === 3 || kind === 4 || kind === 5 || t === type$.nullable_Object;
+ },
+ _Utils_objectAssign: function(o, other) {
+ var i, key,
+ keys = Object.keys(other),
+ $length = keys.length;
+ for (i = 0; i < $length; ++i) {
+ key = keys[i];
+ o[key] = other[key];
+ }
+ },
+ Rti: function Rti(t0, t1) {
+ var _ = this;
+ _._as = t0;
+ _._is = t1;
+ _._cachedRuntimeType = _._specializedTestResource = _._precomputed1 = null;
+ _._kind = 0;
+ _._canonicalRecipe = _._bindCache = _._evalCache = _._rest = _._primary = null;
+ },
+ _FunctionParameters: function _FunctionParameters() {
+ this._named = this._optionalPositional = this._requiredPositional = null;
+ },
+ _Type: function _Type(t0) {
+ this._rti = t0;
+ },
+ _Error: function _Error() {
+ },
+ _TypeError: function _TypeError(t0) {
+ this._message = t0;
+ },
+ isBrowserObject: function(o) {
+ return type$.Blob._is(o) || type$.Event._is(o) || type$.KeyRange._is(o) || type$.ImageData._is(o) || type$.Node._is(o) || type$.Window._is(o) || type$.WorkerGlobalScope._is(o);
+ },
+ unmangleGlobalNameIfPreservedAnyways: function($name) {
+ return init.mangledGlobalNames[$name];
+ },
+ printString: function(string) {
+ if (typeof dartPrint == "function") {
+ dartPrint(string);
+ return;
+ }
+ if (typeof console == "object" && typeof console.log != "undefined") {
+ console.log(string);
+ return;
+ }
+ if (typeof window == "object")
+ return;
+ if (typeof print == "function") {
+ print(string);
+ return;
+ }
+ throw "Unable to print message: " + String(string);
+ }
+ },
+ J = {
+ makeDispatchRecord: function(interceptor, proto, extension, indexability) {
+ return {i: interceptor, p: proto, e: extension, x: indexability};
+ },
+ getNativeInterceptor: function(object) {
+ var proto, objectProto, $constructor, interceptor,
+ record = object[init.dispatchPropertyName];
+ if (record == null)
+ if ($.initNativeDispatchFlag == null) {
+ H.initNativeDispatch();
+ record = object[init.dispatchPropertyName];
+ }
+ if (record != null) {
+ proto = record.p;
+ if (false === proto)
+ return record.i;
+ if (true === proto)
+ return object;
+ objectProto = Object.getPrototypeOf(object);
+ if (proto === objectProto)
+ return record.i;
+ if (record.e === objectProto)
+ throw H.wrapException(P.UnimplementedError$("Return interceptor for " + H.S(proto(object, record))));
+ }
+ $constructor = object.constructor;
+ interceptor = $constructor == null ? null : $constructor[J.JS_INTEROP_INTERCEPTOR_TAG()];
+ if (interceptor != null)
+ return interceptor;
+ interceptor = H.lookupAndCacheInterceptor(object);
+ if (interceptor != null)
+ return interceptor;
+ if (typeof object == "function")
+ return C.JavaScriptFunction_methods;
+ proto = Object.getPrototypeOf(object);
+ if (proto == null)
+ return C.PlainJavaScriptObject_methods;
+ if (proto === Object.prototype)
+ return C.PlainJavaScriptObject_methods;
+ if (typeof $constructor == "function") {
+ Object.defineProperty($constructor, J.JS_INTEROP_INTERCEPTOR_TAG(), {value: C.UnknownJavaScriptObject_methods, enumerable: false, writable: true, configurable: true});
+ return C.UnknownJavaScriptObject_methods;
+ }
+ return C.UnknownJavaScriptObject_methods;
+ },
+ JS_INTEROP_INTERCEPTOR_TAG: function() {
+ var t1 = $._JS_INTEROP_INTERCEPTOR_TAG;
+ return t1 == null ? $._JS_INTEROP_INTERCEPTOR_TAG = init.getIsolateTag("_$dart_js") : t1;
+ },
+ JSArray_JSArray$fixed: function($length, $E) {
+ if (!H._isInt($length))
+ throw H.wrapException(P.ArgumentError$value($length, "length", "is not an integer"));
+ if ($length < 0 || $length > 4294967295)
+ throw H.wrapException(P.RangeError$range($length, 0, 4294967295, "length", null));
+ return J.JSArray_JSArray$markFixed(new Array($length), $E);
+ },
+ JSArray_JSArray$growable: function($length, $E) {
+ if (!H._isInt($length) || $length < 0)
+ throw H.wrapException(P.ArgumentError$("Length must be a non-negative integer: " + H.S($length)));
+ return H.setRuntimeTypeInfo(new Array($length), $E._eval$1("JSArray<0>"));
+ },
+ JSArray_JSArray$markFixed: function(allocation, $E) {
+ return J.JSArray_markFixedList(H.setRuntimeTypeInfo(allocation, $E._eval$1("JSArray<0>")));
+ },
+ JSArray_markFixedList: function(list) {
+ list.fixed$length = Array;
+ return list;
+ },
+ JSArray_markUnmodifiableList: function(list) {
+ list.fixed$length = Array;
+ list.immutable$list = Array;
+ return list;
+ },
+ JSArray__compareAny: function(a, b) {
+ return J.compareTo$1$ns(a, b);
+ },
+ JSString__isWhitespace: function(codeUnit) {
+ if (codeUnit < 256)
+ switch (codeUnit) {
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 32:
+ case 133:
+ case 160:
+ return true;
+ default:
+ return false;
+ }
+ switch (codeUnit) {
+ case 5760:
+ case 8192:
+ case 8193:
+ case 8194:
+ case 8195:
+ case 8196:
+ case 8197:
+ case 8198:
+ case 8199:
+ case 8200:
+ case 8201:
+ case 8202:
+ case 8232:
+ case 8233:
+ case 8239:
+ case 8287:
+ case 12288:
+ case 65279:
+ return true;
+ default:
+ return false;
+ }
+ },
+ JSString__skipLeadingWhitespace: function(string, index) {
+ var t1, codeUnit;
+ for (t1 = string.length; index < t1;) {
+ codeUnit = C.JSString_methods._codeUnitAt$1(string, index);
+ if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace(codeUnit))
+ break;
+ ++index;
+ }
+ return index;
+ },
+ JSString__skipTrailingWhitespace: function(string, index) {
+ var index0, codeUnit;
+ for (; index > 0; index = index0) {
+ index0 = index - 1;
+ codeUnit = C.JSString_methods.codeUnitAt$1(string, index0);
+ if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace(codeUnit))
+ break;
+ }
+ return index;
+ },
+ getInterceptor$: function(receiver) {
+ if (typeof receiver == "number") {
+ if (Math.floor(receiver) == receiver)
+ return J.JSInt.prototype;
+ return J.JSDouble.prototype;
+ }
+ if (typeof receiver == "string")
+ return J.JSString.prototype;
+ if (receiver == null)
+ return J.JSNull.prototype;
+ if (typeof receiver == "boolean")
+ return J.JSBool.prototype;
+ if (receiver.constructor == Array)
+ return J.JSArray.prototype;
+ if (typeof receiver != "object") {
+ if (typeof receiver == "function")
+ return J.JavaScriptFunction.prototype;
+ return receiver;
+ }
+ if (receiver instanceof P.Object)
+ return receiver;
+ return J.getNativeInterceptor(receiver);
+ },
+ getInterceptor$ansx: function(receiver) {
+ if (typeof receiver == "number")
+ return J.JSNumber.prototype;
+ if (typeof receiver == "string")
+ return J.JSString.prototype;
+ if (receiver == null)
+ return receiver;
+ if (receiver.constructor == Array)
+ return J.JSArray.prototype;
+ if (typeof receiver != "object") {
+ if (typeof receiver == "function")
+ return J.JavaScriptFunction.prototype;
+ return receiver;
+ }
+ if (receiver instanceof P.Object)
+ return receiver;
+ return J.getNativeInterceptor(receiver);
+ },
+ getInterceptor$asx: function(receiver) {
+ if (typeof receiver == "string")
+ return J.JSString.prototype;
+ if (receiver == null)
+ return receiver;
+ if (receiver.constructor == Array)
+ return J.JSArray.prototype;
+ if (typeof receiver != "object") {
+ if (typeof receiver == "function")
+ return J.JavaScriptFunction.prototype;
+ return receiver;
+ }
+ if (receiver instanceof P.Object)
+ return receiver;
+ return J.getNativeInterceptor(receiver);
+ },
+ getInterceptor$ax: function(receiver) {
+ if (receiver == null)
+ return receiver;
+ if (receiver.constructor == Array)
+ return J.JSArray.prototype;
+ if (typeof receiver != "object") {
+ if (typeof receiver == "function")
+ return J.JavaScriptFunction.prototype;
+ return receiver;
+ }
+ if (receiver instanceof P.Object)
+ return receiver;
+ return J.getNativeInterceptor(receiver);
+ },
+ getInterceptor$in: function(receiver) {
+ if (typeof receiver == "number") {
+ if (Math.floor(receiver) == receiver)
+ return J.JSInt.prototype;
+ return J.JSNumber.prototype;
+ }
+ if (receiver == null)
+ return receiver;
+ if (!(receiver instanceof P.Object))
+ return J.UnknownJavaScriptObject.prototype;
+ return receiver;
+ },
+ getInterceptor$n: function(receiver) {
+ if (typeof receiver == "number")
+ return J.JSNumber.prototype;
+ if (receiver == null)
+ return receiver;
+ if (!(receiver instanceof P.Object))
+ return J.UnknownJavaScriptObject.prototype;
+ return receiver;
+ },
+ getInterceptor$ns: function(receiver) {
+ if (typeof receiver == "number")
+ return J.JSNumber.prototype;
+ if (typeof receiver == "string")
+ return J.JSString.prototype;
+ if (receiver == null)
+ return receiver;
+ if (!(receiver instanceof P.Object))
+ return J.UnknownJavaScriptObject.prototype;
+ return receiver;
+ },
+ getInterceptor$s: function(receiver) {
+ if (typeof receiver == "string")
+ return J.JSString.prototype;
+ if (receiver == null)
+ return receiver;
+ if (!(receiver instanceof P.Object))
+ return J.UnknownJavaScriptObject.prototype;
+ return receiver;
+ },
+ getInterceptor$x: function(receiver) {
+ if (receiver == null)
+ return receiver;
+ if (typeof receiver != "object") {
+ if (typeof receiver == "function")
+ return J.JavaScriptFunction.prototype;
+ return receiver;
+ }
+ if (receiver instanceof P.Object)
+ return receiver;
+ return J.getNativeInterceptor(receiver);
+ },
+ getInterceptor$z: function(receiver) {
+ if (receiver == null)
+ return receiver;
+ if (!(receiver instanceof P.Object))
+ return J.UnknownJavaScriptObject.prototype;
+ return receiver;
+ },
+ set$height$x: function(receiver, value) {
+ return J.getInterceptor$x(receiver).set$height(receiver, value);
+ },
+ set$length$asx: function(receiver, value) {
+ return J.getInterceptor$asx(receiver).set$length(receiver, value);
+ },
+ set$width$x: function(receiver, value) {
+ return J.getInterceptor$x(receiver).set$width(receiver, value);
+ },
+ get$ClipOp$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$ClipOp(receiver);
+ },
+ get$Difference$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$Difference(receiver);
+ },
+ get$Intersect$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$Intersect(receiver);
+ },
+ get$attributes$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$attributes(receiver);
+ },
+ get$children$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$children(receiver);
+ },
+ get$current$z: function(receiver) {
+ return J.getInterceptor$z(receiver).get$current(receiver);
+ },
+ get$data$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$data(receiver);
+ },
+ get$first$ax: function(receiver) {
+ return J.getInterceptor$ax(receiver).get$first(receiver);
+ },
+ get$hashCode$: function(receiver) {
+ return J.getInterceptor$(receiver).get$hashCode(receiver);
+ },
+ get$isEmpty$asx: function(receiver) {
+ return J.getInterceptor$asx(receiver).get$isEmpty(receiver);
+ },
+ get$isNotEmpty$asx: function(receiver) {
+ return J.getInterceptor$asx(receiver).get$isNotEmpty(receiver);
+ },
+ get$iterator$ax: function(receiver) {
+ return J.getInterceptor$ax(receiver).get$iterator(receiver);
+ },
+ get$keys$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$keys(receiver);
+ },
+ get$last$ax: function(receiver) {
+ return J.getInterceptor$ax(receiver).get$last(receiver);
+ },
+ get$length$asx: function(receiver) {
+ return J.getInterceptor$asx(receiver).get$length(receiver);
+ },
+ get$message$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$message(receiver);
+ },
+ get$name$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$name(receiver);
+ },
+ get$offset$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$offset(receiver);
+ },
+ get$runtimeType$: function(receiver) {
+ return J.getInterceptor$(receiver).get$runtimeType(receiver);
+ },
+ get$setRequestHeader$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$setRequestHeader(receiver);
+ },
+ get$sign$in: function(receiver) {
+ if (typeof receiver === "number")
+ return receiver > 0 ? 1 : receiver < 0 ? -1 : receiver;
+ return J.getInterceptor$in(receiver).get$sign(receiver);
+ },
+ get$source$z: function(receiver) {
+ return J.getInterceptor$z(receiver).get$source(receiver);
+ },
+ get$target$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$target(receiver);
+ },
+ get$top$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$top(receiver);
+ },
+ get$values$x: function(receiver) {
+ return J.getInterceptor$x(receiver).get$values(receiver);
+ },
+ $add$ansx: function(receiver, a0) {
+ if (typeof receiver == "number" && typeof a0 == "number")
+ return receiver + a0;
+ return J.getInterceptor$ansx(receiver).$add(receiver, a0);
+ },
+ $eq$: function(receiver, a0) {
+ if (receiver == null)
+ return a0 == null;
+ if (typeof receiver != "object")
+ return a0 != null && receiver === a0;
+ return J.getInterceptor$(receiver).$eq(receiver, a0);
+ },
+ $index$asx: function(receiver, a0) {
+ if (typeof a0 === "number")
+ if (receiver.constructor == Array || typeof receiver == "string" || H.isJsIndexable(receiver, receiver[init.dispatchPropertyName]))
+ if (a0 >>> 0 === a0 && a0 < receiver.length)
+ return receiver[a0];
+ return J.getInterceptor$asx(receiver).$index(receiver, a0);
+ },
+ $indexSet$ax: function(receiver, a0, a1) {
+ if (typeof a0 === "number")
+ if ((receiver.constructor == Array || H.isJsIndexable(receiver, receiver[init.dispatchPropertyName])) && !receiver.immutable$list && a0 >>> 0 === a0 && a0 < receiver.length)
+ return receiver[a0] = a1;
+ return J.getInterceptor$ax(receiver).$indexSet(receiver, a0, a1);
+ },
+ $mul$ns: function(receiver, a0) {
+ if (typeof receiver == "number" && typeof a0 == "number")
+ return receiver * a0;
+ return J.getInterceptor$ns(receiver).$mul(receiver, a0);
+ },
+ $sub$n: function(receiver, a0) {
+ if (typeof receiver == "number" && typeof a0 == "number")
+ return receiver - a0;
+ return J.getInterceptor$n(receiver).$sub(receiver, a0);
+ },
+ _codeUnitAt$1$s: function(receiver, a0) {
+ return J.getInterceptor$s(receiver)._codeUnitAt$1(receiver, a0);
+ },
+ _replaceChild$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver)._replaceChild$2(receiver, a0, a1);
+ },
+ add$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).add$1(receiver, a0);
+ },
+ addEventListener$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver).addEventListener$2(receiver, a0, a1);
+ },
+ addEventListener$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).addEventListener$3(receiver, a0, a1, a2);
+ },
+ addPopStateListener$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).addPopStateListener$1(receiver, a0);
+ },
+ addText$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).addText$1(receiver, a0);
+ },
+ allMatches$1$s: function(receiver, a0) {
+ return J.getInterceptor$s(receiver).allMatches$1(receiver, a0);
+ },
+ asUint8List$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).asUint8List$0(receiver);
+ },
+ build$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).build$0(receiver);
+ },
+ build$3$dimensions$textScaleFactor$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).build$3$dimensions$textScaleFactor(receiver, a0, a1, a2);
+ },
+ cancel$0$z: function(receiver) {
+ return J.getInterceptor$z(receiver).cancel$0(receiver);
+ },
+ cast$1$0$ax: function(receiver, $T1) {
+ return J.getInterceptor$ax(receiver).cast$1$0(receiver, $T1);
+ },
+ cast$2$0$ax: function(receiver, $T1, $T2) {
+ return J.getInterceptor$ax(receiver).cast$2$0(receiver, $T1, $T2);
+ },
+ clamp$2$n: function(receiver, a0, a1) {
+ return J.getInterceptor$n(receiver).clamp$2(receiver, a0, a1);
+ },
+ clipPath$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).clipPath$3(receiver, a0, a1, a2);
+ },
+ clipRRect$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).clipRRect$3(receiver, a0, a1, a2);
+ },
+ clipRect$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).clipRect$3(receiver, a0, a1, a2);
+ },
+ close$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).close$0(receiver);
+ },
+ codeUnitAt$1$s: function(receiver, a0) {
+ return J.getInterceptor$s(receiver).codeUnitAt$1(receiver, a0);
+ },
+ compareTo$1$ns: function(receiver, a0) {
+ return J.getInterceptor$ns(receiver).compareTo$1(receiver, a0);
+ },
+ computeTonalColors$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).computeTonalColors$1(receiver, a0);
+ },
+ concat$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).concat$1(receiver, a0);
+ },
+ contains$1$asx: function(receiver, a0) {
+ return J.getInterceptor$asx(receiver).contains$1(receiver, a0);
+ },
+ contains$2$asx: function(receiver, a0, a1) {
+ return J.getInterceptor$asx(receiver).contains$2(receiver, a0, a1);
+ },
+ containsKey$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).containsKey$1(receiver, a0);
+ },
+ dispose$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).dispose$0(receiver);
+ },
+ drawCircle$4$x: function(receiver, a0, a1, a2, a3) {
+ return J.getInterceptor$x(receiver).drawCircle$4(receiver, a0, a1, a2, a3);
+ },
+ drawDRRect$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).drawDRRect$3(receiver, a0, a1, a2);
+ },
+ drawLine$5$x: function(receiver, a0, a1, a2, a3, a4) {
+ return J.getInterceptor$x(receiver).drawLine$5(receiver, a0, a1, a2, a3, a4);
+ },
+ drawParagraph$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).drawParagraph$3(receiver, a0, a1, a2);
+ },
+ drawPath$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver).drawPath$2(receiver, a0, a1);
+ },
+ drawRRect$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver).drawRRect$2(receiver, a0, a1);
+ },
+ drawRect$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver).drawRect$2(receiver, a0, a1);
+ },
+ drawShadow$7$x: function(receiver, a0, a1, a2, a3, a4, a5, a6) {
+ return J.getInterceptor$x(receiver).drawShadow$7(receiver, a0, a1, a2, a3, a4, a5, a6);
+ },
+ elementAt$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0);
+ },
+ floor$0$n: function(receiver) {
+ return J.getInterceptor$n(receiver).floor$0(receiver);
+ },
+ focus$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).focus$0(receiver);
+ },
+ forEach$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).forEach$1(receiver, a0);
+ },
+ getBounds$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).getBounds$0(receiver);
+ },
+ getPath$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).getPath$0(receiver);
+ },
+ getRange$2$ax: function(receiver, a0, a1) {
+ return J.getInterceptor$ax(receiver).getRange$2(receiver, a0, a1);
+ },
+ getState$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).getState$0(receiver);
+ },
+ go$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).go$1(receiver, a0);
+ },
+ isIdentity$0$z: function(receiver) {
+ return J.getInterceptor$z(receiver).isIdentity$0(receiver);
+ },
+ join$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).join$1(receiver, a0);
+ },
+ listener$0$z: function(receiver) {
+ return J.getInterceptor$z(receiver).listener$0(receiver);
+ },
+ map$1$1$ax: function(receiver, a0, $T1) {
+ return J.getInterceptor$ax(receiver).map$1$1(receiver, a0, $T1);
+ },
+ map$2$1$ax: function(receiver, a0, $T1, $T2) {
+ return J.getInterceptor$ax(receiver).map$2$1(receiver, a0, $T1, $T2);
+ },
+ matchAsPrefix$2$s: function(receiver, a0, a1) {
+ return J.getInterceptor$s(receiver).matchAsPrefix$2(receiver, a0, a1);
+ },
+ noSuchMethod$1$: function(receiver, a0) {
+ return J.getInterceptor$(receiver).noSuchMethod$1(receiver, a0);
+ },
+ open$3$async$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).open$3$async(receiver, a0, a1, a2);
+ },
+ pushState$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).pushState$3(receiver, a0, a1, a2);
+ },
+ pushStyle$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).pushStyle$1(receiver, a0);
+ },
+ putIfAbsent$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver).putIfAbsent$2(receiver, a0, a1);
+ },
+ remove$0$ax: function(receiver) {
+ return J.getInterceptor$ax(receiver).remove$0(receiver);
+ },
+ remove$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).remove$1(receiver, a0);
+ },
+ removeEventListener$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver).removeEventListener$2(receiver, a0, a1);
+ },
+ removeEventListener$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).removeEventListener$3(receiver, a0, a1, a2);
+ },
+ removeLast$0$ax: function(receiver) {
+ return J.getInterceptor$ax(receiver).removeLast$0(receiver);
+ },
+ replaceRange$3$asx: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$asx(receiver).replaceRange$3(receiver, a0, a1, a2);
+ },
+ replaceState$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).replaceState$3(receiver, a0, a1, a2);
+ },
+ replaceWith$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).replaceWith$1(receiver, a0);
+ },
+ restore$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).restore$0(receiver);
+ },
+ rotate$3$x: function(receiver, a0, a1, a2) {
+ return J.getInterceptor$x(receiver).rotate$3(receiver, a0, a1, a2);
+ },
+ save$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).save$0(receiver);
+ },
+ saveLayer$4$x: function(receiver, a0, a1, a2, a3) {
+ return J.getInterceptor$x(receiver).saveLayer$4(receiver, a0, a1, a2, a3);
+ },
+ scale$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver).scale$2(receiver, a0, a1);
+ },
+ select$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).select$0(receiver);
+ },
+ send$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).send$1(receiver, a0);
+ },
+ setRange$4$ax: function(receiver, a0, a1, a2, a3) {
+ return J.getInterceptor$ax(receiver).setRange$4(receiver, a0, a1, a2, a3);
+ },
+ setResourceCacheLimitBytes$1$x: function(receiver, a0) {
+ return J.getInterceptor$x(receiver).setResourceCacheLimitBytes$1(receiver, a0);
+ },
+ skip$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).skip$1(receiver, a0);
+ },
+ sort$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).sort$1(receiver, a0);
+ },
+ startsWith$1$s: function(receiver, a0) {
+ return J.getInterceptor$s(receiver).startsWith$1(receiver, a0);
+ },
+ startsWith$2$s: function(receiver, a0, a1) {
+ return J.getInterceptor$s(receiver).startsWith$2(receiver, a0, a1);
+ },
+ substring$1$s: function(receiver, a0) {
+ return J.getInterceptor$s(receiver).substring$1(receiver, a0);
+ },
+ substring$2$s: function(receiver, a0, a1) {
+ return J.getInterceptor$s(receiver).substring$2(receiver, a0, a1);
+ },
+ take$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).take$1(receiver, a0);
+ },
+ then$1$1$x: function(receiver, a0, $T1) {
+ return J.getInterceptor$x(receiver).then$1$1(receiver, a0, $T1);
+ },
+ then$1$2$onError$x: function(receiver, a0, a1, $T1) {
+ return J.getInterceptor$x(receiver).then$1$2$onError(receiver, a0, a1, $T1);
+ },
+ toInt$0$n: function(receiver) {
+ return J.getInterceptor$n(receiver).toInt$0(receiver);
+ },
+ toList$0$ax: function(receiver) {
+ return J.getInterceptor$ax(receiver).toList$0(receiver);
+ },
+ toLowerCase$0$s: function(receiver) {
+ return J.getInterceptor$s(receiver).toLowerCase$0(receiver);
+ },
+ toSet$0$ax: function(receiver) {
+ return J.getInterceptor$ax(receiver).toSet$0(receiver);
+ },
+ toString$0$: function(receiver) {
+ return J.getInterceptor$(receiver).toString$0(receiver);
+ },
+ toStringAsFixed$1$n: function(receiver, a0) {
+ return J.getInterceptor$n(receiver).toStringAsFixed$1(receiver, a0);
+ },
+ translate$2$x: function(receiver, a0, a1) {
+ return J.getInterceptor$x(receiver).translate$2(receiver, a0, a1);
+ },
+ trim$0$s: function(receiver) {
+ return J.getInterceptor$s(receiver).trim$0(receiver);
+ },
+ trimLeft$0$s: function(receiver) {
+ return J.getInterceptor$s(receiver).trimLeft$0(receiver);
+ },
+ trimRight$0$s: function(receiver) {
+ return J.getInterceptor$s(receiver).trimRight$0(receiver);
+ },
+ unlock$0$x: function(receiver) {
+ return J.getInterceptor$x(receiver).unlock$0(receiver);
+ },
+ where$1$ax: function(receiver, a0) {
+ return J.getInterceptor$ax(receiver).where$1(receiver, a0);
+ },
+ Interceptor: function Interceptor() {
+ },
+ JSBool: function JSBool() {
+ },
+ JSNull: function JSNull() {
+ },
+ JavaScriptObject: function JavaScriptObject() {
+ },
+ PlainJavaScriptObject: function PlainJavaScriptObject() {
+ },
+ UnknownJavaScriptObject: function UnknownJavaScriptObject() {
+ },
+ JavaScriptFunction: function JavaScriptFunction() {
+ },
+ JSArray: function JSArray(t0) {
+ this.$ti = t0;
+ },
+ JSUnmodifiableArray: function JSUnmodifiableArray(t0) {
+ this.$ti = t0;
+ },
+ ArrayIterator: function ArrayIterator(t0, t1) {
+ var _ = this;
+ _.__interceptors$_iterable = t0;
+ _.__interceptors$_length = t1;
+ _.__interceptors$_index = 0;
+ _.__interceptors$_current = null;
+ },
+ JSNumber: function JSNumber() {
+ },
+ JSInt: function JSInt() {
+ },
+ JSDouble: function JSDouble() {
+ },
+ JSString: function JSString() {
+ }
+ },
+ P = {
+ _AsyncRun__initializeScheduleImmediate: function() {
+ var div, span, t1 = {};
+ if (self.scheduleImmediate != null)
+ return P.async__AsyncRun__scheduleImmediateJsOverride$closure();
+ if (self.MutationObserver != null && self.document != null) {
+ div = self.document.createElement("div");
+ span = self.document.createElement("span");
+ t1.storedCallback = null;
+ new self.MutationObserver(H.convertDartClosureToJS(new P._AsyncRun__initializeScheduleImmediate_internalCallback(t1), 1)).observe(div, {childList: true});
+ return new P._AsyncRun__initializeScheduleImmediate_closure(t1, div, span);
+ } else if (self.setImmediate != null)
+ return P.async__AsyncRun__scheduleImmediateWithSetImmediate$closure();
+ return P.async__AsyncRun__scheduleImmediateWithTimer$closure();
+ },
+ _AsyncRun__scheduleImmediateJsOverride: function(callback) {
+ self.scheduleImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmediateJsOverride_internalCallback(callback), 0));
+ },
+ _AsyncRun__scheduleImmediateWithSetImmediate: function(callback) {
+ self.setImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(callback), 0));
+ },
+ _AsyncRun__scheduleImmediateWithTimer: function(callback) {
+ P.Timer__createTimer(C.Duration_0, callback);
+ },
+ Timer__createTimer: function(duration, callback) {
+ var milliseconds = C.JSInt_methods._tdivFast$1(duration._duration, 1000);
+ return P._TimerImpl$(milliseconds < 0 ? 0 : milliseconds, callback);
+ },
+ Timer__createPeriodicTimer: function(duration, callback) {
+ var milliseconds = C.JSInt_methods._tdivFast$1(duration._duration, 1000);
+ return P._TimerImpl$periodic(milliseconds < 0 ? 0 : milliseconds, callback);
+ },
+ _TimerImpl$: function(milliseconds, callback) {
+ var t1 = new P._TimerImpl(true);
+ t1._TimerImpl$2(milliseconds, callback);
+ return t1;
+ },
+ _TimerImpl$periodic: function(milliseconds, callback) {
+ var t1 = new P._TimerImpl(false);
+ t1._TimerImpl$periodic$2(milliseconds, callback);
+ return t1;
+ },
+ _makeAsyncAwaitCompleter: function($T) {
+ return new P._AsyncAwaitCompleter(new P._Future($.Zone__current, $T._eval$1("_Future<0>")), $T._eval$1("_AsyncAwaitCompleter<0>"));
+ },
+ _asyncStartSync: function(bodyFunction, completer) {
+ bodyFunction.call$2(0, null);
+ completer.isSync = true;
+ return completer._future;
+ },
+ _asyncAwait: function(object, bodyFunction) {
+ P._awaitOnObject(object, bodyFunction);
+ },
+ _asyncReturn: function(object, completer) {
+ completer.complete$1(0, object);
+ },
+ _asyncRethrow: function(object, completer) {
+ completer.completeError$2(H.unwrapException(object), H.getTraceFromException(object));
+ },
+ _awaitOnObject: function(object, bodyFunction) {
+ var t1, future,
+ thenCallback = new P._awaitOnObject_closure(bodyFunction),
+ errorCallback = new P._awaitOnObject_closure0(bodyFunction);
+ if (object instanceof P._Future)
+ object._thenAwait$1$2(thenCallback, errorCallback, type$.dynamic);
+ else {
+ t1 = type$.dynamic;
+ if (type$.Future_dynamic._is(object))
+ object.then$1$2$onError(0, thenCallback, errorCallback, t1);
+ else {
+ future = new P._Future($.Zone__current, type$._Future_dynamic);
+ future._state = 4;
+ future._resultOrListeners = object;
+ future._thenAwait$1$2(thenCallback, errorCallback, t1);
+ }
+ }
+ },
+ _wrapJsFunctionForAsync: function($function) {
+ var $protected = function(fn, ERROR) {
+ return function(errorCode, result) {
+ while (true)
+ try {
+ fn(errorCode, result);
+ break;
+ } catch (error) {
+ result = error;
+ errorCode = ERROR;
+ }
+ };
+ }($function, 1);
+ return $.Zone__current.registerBinaryCallback$1(new P._wrapJsFunctionForAsync_closure($protected));
+ },
+ _asyncStarHelper: function(object, bodyFunctionOrErrorCode, controller) {
+ var t1, t2, stream;
+ if (bodyFunctionOrErrorCode === 0) {
+ t1 = controller.cancelationFuture;
+ if (t1 != null)
+ t1._completeWithValue$1(null);
+ else
+ controller.get$controller(controller).close$0(0);
+ return;
+ } else if (bodyFunctionOrErrorCode === 1) {
+ t1 = controller.cancelationFuture;
+ if (t1 != null)
+ t1._completeError$2(H.unwrapException(object), H.getTraceFromException(object));
+ else {
+ t1 = H.unwrapException(object);
+ t2 = H.getTraceFromException(object);
+ controller.get$controller(controller).addError$2(t1, t2);
+ controller.get$controller(controller).close$0(0);
+ }
+ return;
+ }
+ if (object instanceof P._IterationMarker) {
+ if (controller.cancelationFuture != null) {
+ bodyFunctionOrErrorCode.call$2(2, null);
+ return;
+ }
+ t1 = object.state;
+ if (t1 === 0) {
+ t1 = object.value;
+ controller.get$controller(controller).add$1(0, t1);
+ P.scheduleMicrotask(new P._asyncStarHelper_closure(controller, bodyFunctionOrErrorCode));
+ return;
+ } else if (t1 === 1) {
+ stream = object.value;
+ controller.get$controller(controller).addStream$2$cancelOnError(0, stream, false).then$1(0, new P._asyncStarHelper_closure0(controller, bodyFunctionOrErrorCode));
+ return;
+ }
+ }
+ P._awaitOnObject(object, bodyFunctionOrErrorCode);
+ },
+ _streamOfController: function(controller) {
+ var t1 = controller.get$controller(controller);
+ t1.toString;
+ return new P._ControllerStream(t1, H._instanceType(t1)._eval$1("_ControllerStream<1>"));
+ },
+ _AsyncStarStreamController$: function(body, $T) {
+ var t1 = new P._AsyncStarStreamController($T._eval$1("_AsyncStarStreamController<0>"));
+ t1._AsyncStarStreamController$1(body, $T);
+ return t1;
+ },
+ _makeAsyncStarStreamController: function(body, $T) {
+ return P._AsyncStarStreamController$(body, $T);
+ },
+ _IterationMarker_yieldStar: function(values) {
+ return new P._IterationMarker(values, 1);
+ },
+ _IterationMarker_endOfIteration: function() {
+ return C._IterationMarker_null_2;
+ },
+ _IterationMarker_yieldSingle: function(value) {
+ return new P._IterationMarker(value, 0);
+ },
+ _IterationMarker_uncaughtError: function(error) {
+ return new P._IterationMarker(error, 3);
+ },
+ _makeSyncStarIterable: function(body, $T) {
+ return new P._SyncStarIterable(body, $T._eval$1("_SyncStarIterable<0>"));
+ },
+ Future_Future$value: function(value, $T) {
+ var t1 = new P._Future($.Zone__current, $T._eval$1("_Future<0>"));
+ t1._asyncComplete$1(value);
+ return t1;
+ },
+ Future_Future$error: function(error, stackTrace, $T) {
+ var t1;
+ P.ArgumentError_checkNotNull(error, "error");
+ $.Zone__current !== C.C__RootZone;
+ if (stackTrace == null)
+ stackTrace = P.AsyncError_defaultStackTrace(error);
+ t1 = new P._Future($.Zone__current, $T._eval$1("_Future<0>"));
+ t1._asyncCompleteError$2(error, stackTrace);
+ return t1;
+ },
+ Future_Future$delayed: function(duration, $T) {
+ var result = new P._Future($.Zone__current, $T._eval$1("_Future<0>"));
+ P.Timer_Timer(duration, new P.Future_Future$delayed_closure(null, result, $T));
+ return result;
+ },
+ Future_wait: function(futures, $T) {
+ var _error_get, _error_set, _stackTrace_get, _stackTrace_set, handleError, future, pos, e, st, t1, t2, exception, _box_0 = {}, cleanUp = null,
+ eagerError = false,
+ _future = new P._Future($.Zone__current, $T._eval$1("_Future>"));
+ _box_0.values = null;
+ _box_0.remaining = 0;
+ _box_0.error = null;
+ _box_0._error_isSet = false;
+ _error_get = new P.Future_wait__error_get(_box_0);
+ _error_set = new P.Future_wait__error_set(_box_0);
+ _box_0.stackTrace = null;
+ _box_0._stackTrace_isSet = false;
+ _stackTrace_get = new P.Future_wait__stackTrace_get(_box_0);
+ _stackTrace_set = new P.Future_wait__stackTrace_set(_box_0);
+ handleError = new P.Future_wait_handleError(_box_0, cleanUp, eagerError, _future, _error_set, _stackTrace_set, _error_get, _stackTrace_get);
+ try {
+ for (t1 = J.get$iterator$ax(futures), t2 = type$.Null; t1.moveNext$0();) {
+ future = t1.get$current(t1);
+ pos = _box_0.remaining;
+ J.then$1$2$onError$x(future, new P.Future_wait_closure(_box_0, pos, _future, cleanUp, eagerError, _error_get, _stackTrace_get, $T), handleError, t2);
+ ++_box_0.remaining;
+ }
+ t1 = _box_0.remaining;
+ if (t1 === 0) {
+ t1 = _future;
+ t1._completeWithValue$1(H.setRuntimeTypeInfo([], $T._eval$1("JSArray<0>")));
+ return t1;
+ }
+ _box_0.values = P.List_List$filled(t1, null, false, $T._eval$1("0?"));
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ st = H.getTraceFromException(exception);
+ if (_box_0.remaining === 0 || eagerError)
+ return P.Future_Future$error(e, st, $T._eval$1("List<0>"));
+ else {
+ _error_set.call$1(e);
+ _stackTrace_set.call$1(st);
+ }
+ }
+ return _future;
+ },
+ Completer_Completer: function($T) {
+ return new P._AsyncCompleter(new P._Future($.Zone__current, $T._eval$1("_Future<0>")), $T._eval$1("_AsyncCompleter<0>"));
+ },
+ _completeWithErrorCallback: function(result, error, stackTrace) {
+ if (stackTrace == null)
+ stackTrace = P.AsyncError_defaultStackTrace(error);
+ result._completeError$2(error, stackTrace);
+ },
+ _Future$zoneValue: function(value, _zone, $T) {
+ var t1 = new P._Future(_zone, $T._eval$1("_Future<0>"));
+ t1._state = 4;
+ t1._resultOrListeners = value;
+ return t1;
+ },
+ _Future__chainForeignFuture: function(source, target) {
+ var e, s, exception;
+ target._state = 1;
+ try {
+ source.then$1$2$onError(0, new P._Future__chainForeignFuture_closure(target), new P._Future__chainForeignFuture_closure0(target), type$.Null);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ P.scheduleMicrotask(new P._Future__chainForeignFuture_closure1(target, e, s));
+ }
+ },
+ _Future__chainCoreFuture: function(source, target) {
+ var t1, listeners;
+ for (; t1 = source._state, t1 === 2;)
+ source = source._resultOrListeners;
+ if (t1 >= 4) {
+ listeners = target._removeListeners$0();
+ target._state = source._state;
+ target._resultOrListeners = source._resultOrListeners;
+ P._Future__propagateToListeners(target, listeners);
+ } else {
+ listeners = target._resultOrListeners;
+ target._state = 2;
+ target._resultOrListeners = source;
+ source._prependListeners$1(listeners);
+ }
+ },
+ _Future__propagateToListeners: function(source, listeners) {
+ var t2, _box_0, hasError, nextListener, nextListener0, t3, sourceResult, t4, t5, zone, oldZone, result, current, _null = null, _box_1 = {},
+ t1 = _box_1.source = source;
+ for (t2 = type$.Future_dynamic; true;) {
+ _box_0 = {};
+ hasError = t1._state === 8;
+ if (listeners == null) {
+ if (hasError) {
+ t2 = t1._resultOrListeners;
+ P._rootHandleUncaughtError(_null, _null, t1._zone, t2.error, t2.stackTrace);
+ }
+ return;
+ }
+ _box_0.listener = listeners;
+ nextListener = listeners._nextListener;
+ for (t1 = listeners; nextListener != null; t1 = nextListener, nextListener = nextListener0) {
+ t1._nextListener = null;
+ P._Future__propagateToListeners(_box_1.source, t1);
+ _box_0.listener = nextListener;
+ nextListener0 = nextListener._nextListener;
+ }
+ t3 = _box_1.source;
+ sourceResult = t3._resultOrListeners;
+ _box_0.listenerHasError = hasError;
+ _box_0.listenerValueOrError = sourceResult;
+ t4 = !hasError;
+ if (t4) {
+ t5 = t1.state;
+ t5 = (t5 & 1) !== 0 || (t5 & 15) === 8;
+ } else
+ t5 = true;
+ if (t5) {
+ zone = t1.result._zone;
+ if (hasError) {
+ t5 = t3._zone === zone;
+ t5 = !(t5 || t5);
+ } else
+ t5 = false;
+ if (t5) {
+ P._rootHandleUncaughtError(_null, _null, t3._zone, sourceResult.error, sourceResult.stackTrace);
+ return;
+ }
+ oldZone = $.Zone__current;
+ if (oldZone !== zone)
+ $.Zone__current = zone;
+ else
+ oldZone = _null;
+ t1 = t1.state;
+ if ((t1 & 15) === 8)
+ new P._Future__propagateToListeners_handleWhenCompleteCallback(_box_0, _box_1, hasError).call$0();
+ else if (t4) {
+ if ((t1 & 1) !== 0)
+ new P._Future__propagateToListeners_handleValueCallback(_box_0, sourceResult).call$0();
+ } else if ((t1 & 2) !== 0)
+ new P._Future__propagateToListeners_handleError(_box_1, _box_0).call$0();
+ if (oldZone != null)
+ $.Zone__current = oldZone;
+ t1 = _box_0.listenerValueOrError;
+ if (t2._is(t1)) {
+ result = _box_0.listener.result;
+ if (t1 instanceof P._Future)
+ if (t1._state >= 4) {
+ current = result._resultOrListeners;
+ result._resultOrListeners = null;
+ listeners = result._reverseListeners$1(current);
+ result._state = t1._state;
+ result._resultOrListeners = t1._resultOrListeners;
+ _box_1.source = t1;
+ continue;
+ } else
+ P._Future__chainCoreFuture(t1, result);
+ else
+ P._Future__chainForeignFuture(t1, result);
+ return;
+ }
+ }
+ result = _box_0.listener.result;
+ current = result._resultOrListeners;
+ result._resultOrListeners = null;
+ listeners = result._reverseListeners$1(current);
+ t1 = _box_0.listenerHasError;
+ t3 = _box_0.listenerValueOrError;
+ if (!t1) {
+ result._state = 4;
+ result._resultOrListeners = t3;
+ } else {
+ result._state = 8;
+ result._resultOrListeners = t3;
+ }
+ _box_1.source = result;
+ t1 = result;
+ }
+ },
+ _registerErrorHandler: function(errorHandler, zone) {
+ if (type$.dynamic_Function_Object_StackTrace._is(errorHandler))
+ return zone.registerBinaryCallback$1(errorHandler);
+ if (type$.dynamic_Function_Object._is(errorHandler))
+ return errorHandler;
+ throw H.wrapException(P.ArgumentError$value(errorHandler, "onError", "Error handler must accept one Object or one Object and a StackTrace as arguments, and return a a valid result"));
+ },
+ _microtaskLoop: function() {
+ var entry, next;
+ for (entry = $._nextCallback; entry != null; entry = $._nextCallback) {
+ $._lastPriorityCallback = null;
+ next = entry.next;
+ $._nextCallback = next;
+ if (next == null)
+ $._lastCallback = null;
+ entry.callback.call$0();
+ }
+ },
+ _startMicrotaskLoop: function() {
+ $._isInCallbackLoop = true;
+ try {
+ P._microtaskLoop();
+ } finally {
+ $._lastPriorityCallback = null;
+ $._isInCallbackLoop = false;
+ if ($._nextCallback != null)
+ $.$get$_AsyncRun__scheduleImmediateClosure().call$1(P.async___startMicrotaskLoop$closure());
+ }
+ },
+ _scheduleAsyncCallback: function(callback) {
+ var newEntry = new P._AsyncCallbackEntry(callback),
+ lastCallback = $._lastCallback;
+ if (lastCallback == null) {
+ $._nextCallback = $._lastCallback = newEntry;
+ if (!$._isInCallbackLoop)
+ $.$get$_AsyncRun__scheduleImmediateClosure().call$1(P.async___startMicrotaskLoop$closure());
+ } else
+ $._lastCallback = lastCallback.next = newEntry;
+ },
+ _schedulePriorityAsyncCallback: function(callback) {
+ var entry, lastPriorityCallback, next,
+ t1 = $._nextCallback;
+ if (t1 == null) {
+ P._scheduleAsyncCallback(callback);
+ $._lastPriorityCallback = $._lastCallback;
+ return;
+ }
+ entry = new P._AsyncCallbackEntry(callback);
+ lastPriorityCallback = $._lastPriorityCallback;
+ if (lastPriorityCallback == null) {
+ entry.next = t1;
+ $._nextCallback = $._lastPriorityCallback = entry;
+ } else {
+ next = lastPriorityCallback.next;
+ entry.next = next;
+ $._lastPriorityCallback = lastPriorityCallback.next = entry;
+ if (next == null)
+ $._lastCallback = entry;
+ }
+ },
+ scheduleMicrotask: function(callback) {
+ var _null = null,
+ currentZone = $.Zone__current;
+ if (C.C__RootZone === currentZone) {
+ P._rootScheduleMicrotask(_null, _null, C.C__RootZone, callback);
+ return;
+ }
+ P._rootScheduleMicrotask(_null, _null, currentZone, currentZone.bindCallbackGuarded$1(callback));
+ },
+ Stream_Stream$fromIterable: function(elements, $T) {
+ return new P._GeneratedStreamImpl(new P.Stream_Stream$fromIterable_closure(elements, $T), $T._eval$1("_GeneratedStreamImpl<0>"));
+ },
+ StreamIterator_StreamIterator: function(stream) {
+ P.ArgumentError_checkNotNull(stream, "stream");
+ return new P._StreamIterator();
+ },
+ StreamController_StreamController: function(onCancel, onListen, onResume, sync, $T) {
+ return sync ? new P._SyncStreamController(onListen, null, onResume, onCancel, $T._eval$1("_SyncStreamController<0>")) : new P._AsyncStreamController(onListen, null, onResume, onCancel, $T._eval$1("_AsyncStreamController<0>"));
+ },
+ StreamController_StreamController$broadcast: function(sync, $T) {
+ return new P._SyncBroadcastStreamController(null, null, $T._eval$1("_SyncBroadcastStreamController<0>"));
+ },
+ _runGuarded: function(notificationHandler) {
+ var e, s, exception, t1;
+ if (notificationHandler == null)
+ return;
+ try {
+ notificationHandler.call$0();
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ t1 = $.Zone__current;
+ P._rootHandleUncaughtError(null, null, t1, e, s);
+ }
+ },
+ _ControllerSubscription$: function(_controller, onData, onError, onDone, cancelOnError, $T) {
+ var t1 = $.Zone__current,
+ t2 = cancelOnError ? 1 : 0,
+ t3 = P._BufferingStreamSubscription__registerDataHandler(t1, onData),
+ t4 = P._BufferingStreamSubscription__registerErrorHandler(t1, onError);
+ return new P._ControllerSubscription(_controller, t3, t4, onDone, t1, t2, $T._eval$1("_ControllerSubscription<0>"));
+ },
+ _BufferingStreamSubscription$: function(onData, onError, onDone, cancelOnError, $T) {
+ var t1 = $.Zone__current,
+ t2 = cancelOnError ? 1 : 0,
+ t3 = P._BufferingStreamSubscription__registerDataHandler(t1, onData),
+ t4 = P._BufferingStreamSubscription__registerErrorHandler(t1, onError);
+ return new P._BufferingStreamSubscription(t3, t4, onDone, t1, t2, $T._eval$1("_BufferingStreamSubscription<0>"));
+ },
+ _BufferingStreamSubscription__registerDataHandler: function(zone, handleData) {
+ return handleData == null ? P.async___nullDataHandler$closure() : handleData;
+ },
+ _BufferingStreamSubscription__registerErrorHandler: function(zone, handleError) {
+ if (type$.void_Function_Object_StackTrace._is(handleError))
+ return zone.registerBinaryCallback$1(handleError);
+ if (type$.void_Function_Object._is(handleError))
+ return handleError;
+ throw H.wrapException(P.ArgumentError$("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace."));
+ },
+ _nullDataHandler: function(value) {
+ },
+ _cancelAndValue: function(subscription, future, value) {
+ var cancelFuture = subscription.cancel$0(0);
+ if (cancelFuture != null && cancelFuture !== $.$get$Future__nullFuture())
+ cancelFuture.whenComplete$1(new P._cancelAndValue_closure(future, value));
+ else
+ future._complete$1(value);
+ },
+ Timer_Timer: function(duration, callback) {
+ var t1 = $.Zone__current;
+ if (t1 === C.C__RootZone)
+ return P.Timer__createTimer(duration, callback);
+ return P.Timer__createTimer(duration, t1.bindCallbackGuarded$1(callback));
+ },
+ Timer_Timer$periodic: function(duration, callback) {
+ var t1 = $.Zone__current;
+ if (t1 === C.C__RootZone)
+ return P.Timer__createPeriodicTimer(duration, callback);
+ return P.Timer__createPeriodicTimer(duration, t1.bindUnaryCallbackGuarded$1$1(callback, type$.Timer));
+ },
+ AsyncError$: function(error, stackTrace) {
+ var t1 = stackTrace == null ? P.AsyncError_defaultStackTrace(error) : stackTrace;
+ P.ArgumentError_checkNotNull(error, "error");
+ return new P.AsyncError(error, t1);
+ },
+ AsyncError_defaultStackTrace: function(error) {
+ var stackTrace;
+ if (type$.Error._is(error)) {
+ stackTrace = error.get$stackTrace();
+ if (stackTrace != null)
+ return stackTrace;
+ }
+ return C.C__StringStackTrace;
+ },
+ _rootHandleUncaughtError: function($self, $parent, zone, error, stackTrace) {
+ P._schedulePriorityAsyncCallback(new P._rootHandleUncaughtError_closure(error, stackTrace));
+ },
+ _rootRun: function($self, $parent, zone, f) {
+ var old,
+ t1 = $.Zone__current;
+ if (t1 === zone)
+ return f.call$0();
+ $.Zone__current = zone;
+ old = t1;
+ try {
+ t1 = f.call$0();
+ return t1;
+ } finally {
+ $.Zone__current = old;
+ }
+ },
+ _rootRunUnary: function($self, $parent, zone, f, arg) {
+ var old,
+ t1 = $.Zone__current;
+ if (t1 === zone)
+ return f.call$1(arg);
+ $.Zone__current = zone;
+ old = t1;
+ try {
+ t1 = f.call$1(arg);
+ return t1;
+ } finally {
+ $.Zone__current = old;
+ }
+ },
+ _rootRunBinary: function($self, $parent, zone, f, arg1, arg2) {
+ var old,
+ t1 = $.Zone__current;
+ if (t1 === zone)
+ return f.call$2(arg1, arg2);
+ $.Zone__current = zone;
+ old = t1;
+ try {
+ t1 = f.call$2(arg1, arg2);
+ return t1;
+ } finally {
+ $.Zone__current = old;
+ }
+ },
+ _rootScheduleMicrotask: function($self, $parent, zone, f) {
+ var t1 = C.C__RootZone !== zone;
+ if (t1)
+ f = !(!t1 || false) ? zone.bindCallbackGuarded$1(f) : zone.bindCallback$1$1(f, type$.void);
+ P._scheduleAsyncCallback(f);
+ },
+ _AsyncRun__initializeScheduleImmediate_internalCallback: function _AsyncRun__initializeScheduleImmediate_internalCallback(t0) {
+ this._box_0 = t0;
+ },
+ _AsyncRun__initializeScheduleImmediate_closure: function _AsyncRun__initializeScheduleImmediate_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.div = t1;
+ this.span = t2;
+ },
+ _AsyncRun__scheduleImmediateJsOverride_internalCallback: function _AsyncRun__scheduleImmediateJsOverride_internalCallback(t0) {
+ this.callback = t0;
+ },
+ _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: function _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(t0) {
+ this.callback = t0;
+ },
+ _TimerImpl: function _TimerImpl(t0) {
+ this._once = t0;
+ this._handle = null;
+ this._tick = 0;
+ },
+ _TimerImpl_internalCallback: function _TimerImpl_internalCallback(t0, t1) {
+ this.$this = t0;
+ this.callback = t1;
+ },
+ _TimerImpl$periodic_closure: function _TimerImpl$periodic_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.$this = t0;
+ _.milliseconds = t1;
+ _.start = t2;
+ _.callback = t3;
+ },
+ _AsyncAwaitCompleter: function _AsyncAwaitCompleter(t0, t1) {
+ this._future = t0;
+ this.isSync = false;
+ this.$ti = t1;
+ },
+ _awaitOnObject_closure: function _awaitOnObject_closure(t0) {
+ this.bodyFunction = t0;
+ },
+ _awaitOnObject_closure0: function _awaitOnObject_closure0(t0) {
+ this.bodyFunction = t0;
+ },
+ _wrapJsFunctionForAsync_closure: function _wrapJsFunctionForAsync_closure(t0) {
+ this.$protected = t0;
+ },
+ _asyncStarHelper_closure: function _asyncStarHelper_closure(t0, t1) {
+ this.controller = t0;
+ this.bodyFunction = t1;
+ },
+ _asyncStarHelper_closure0: function _asyncStarHelper_closure0(t0, t1) {
+ this.controller = t0;
+ this.bodyFunction = t1;
+ },
+ _AsyncStarStreamController: function _AsyncStarStreamController(t0) {
+ var _ = this;
+ _.___AsyncStarStreamController_controller = null;
+ _.isSuspended = _.___AsyncStarStreamController_controller_isSet = false;
+ _.cancelationFuture = null;
+ _.$ti = t0;
+ },
+ _AsyncStarStreamController__resumeBody: function _AsyncStarStreamController__resumeBody(t0) {
+ this.body = t0;
+ },
+ _AsyncStarStreamController__resumeBody_closure: function _AsyncStarStreamController__resumeBody_closure(t0) {
+ this.body = t0;
+ },
+ _AsyncStarStreamController_closure0: function _AsyncStarStreamController_closure0(t0) {
+ this._resumeBody = t0;
+ },
+ _AsyncStarStreamController_closure1: function _AsyncStarStreamController_closure1(t0, t1) {
+ this.$this = t0;
+ this._resumeBody = t1;
+ },
+ _AsyncStarStreamController_closure: function _AsyncStarStreamController_closure(t0, t1) {
+ this.$this = t0;
+ this.body = t1;
+ },
+ _AsyncStarStreamController__closure: function _AsyncStarStreamController__closure(t0) {
+ this.body = t0;
+ },
+ _IterationMarker: function _IterationMarker(t0, t1) {
+ this.value = t0;
+ this.state = t1;
+ },
+ _SyncStarIterator: function _SyncStarIterator(t0) {
+ var _ = this;
+ _._body = t0;
+ _._suspendedBodies = _._nestedIterator = _._async$_current = null;
+ },
+ _SyncStarIterable: function _SyncStarIterable(t0, t1) {
+ this._outerHelper = t0;
+ this.$ti = t1;
+ },
+ _BroadcastSubscription: function _BroadcastSubscription(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._eventState = 0;
+ _._async$_previous = _._async$_next = null;
+ _._async$_controller = t0;
+ _._async$_onData = t1;
+ _._onError = t2;
+ _._onDone = t3;
+ _._zone = t4;
+ _._state = t5;
+ _._pending = _._cancelFuture = null;
+ _.$ti = t6;
+ },
+ _BroadcastStreamController: function _BroadcastStreamController() {
+ },
+ _SyncBroadcastStreamController: function _SyncBroadcastStreamController(t0, t1, t2) {
+ var _ = this;
+ _.onListen = t0;
+ _.onCancel = t1;
+ _._state = 0;
+ _._doneFuture = _._addStreamState = _._lastSubscription = _._firstSubscription = null;
+ _.$ti = t2;
+ },
+ _SyncBroadcastStreamController__sendData_closure: function _SyncBroadcastStreamController__sendData_closure(t0, t1) {
+ this.$this = t0;
+ this.data = t1;
+ },
+ Future_Future$delayed_closure: function Future_Future$delayed_closure(t0, t1, t2) {
+ this.computation = t0;
+ this.result = t1;
+ this.T = t2;
+ },
+ Future_wait__error_set: function Future_wait__error_set(t0) {
+ this._box_0 = t0;
+ },
+ Future_wait__stackTrace_set: function Future_wait__stackTrace_set(t0) {
+ this._box_0 = t0;
+ },
+ Future_wait__error_get: function Future_wait__error_get(t0) {
+ this._box_0 = t0;
+ },
+ Future_wait__stackTrace_get: function Future_wait__stackTrace_get(t0) {
+ this._box_0 = t0;
+ },
+ Future_wait_handleError: function Future_wait_handleError(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._box_0 = t0;
+ _.cleanUp = t1;
+ _.eagerError = t2;
+ _._future = t3;
+ _._error_set = t4;
+ _._stackTrace_set = t5;
+ _._error_get = t6;
+ _._stackTrace_get = t7;
+ },
+ Future_wait_closure: function Future_wait_closure(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._box_0 = t0;
+ _.pos = t1;
+ _._future = t2;
+ _.cleanUp = t3;
+ _.eagerError = t4;
+ _._error_get = t5;
+ _._stackTrace_get = t6;
+ _.T = t7;
+ },
+ _Completer: function _Completer() {
+ },
+ _AsyncCompleter: function _AsyncCompleter(t0, t1) {
+ this.future = t0;
+ this.$ti = t1;
+ },
+ _FutureListener: function _FutureListener(t0, t1, t2, t3) {
+ var _ = this;
+ _._nextListener = null;
+ _.result = t0;
+ _.state = t1;
+ _.callback = t2;
+ _.errorCallback = t3;
+ },
+ _Future: function _Future(t0, t1) {
+ var _ = this;
+ _._state = 0;
+ _._zone = t0;
+ _._resultOrListeners = null;
+ _.$ti = t1;
+ },
+ _Future__addListener_closure: function _Future__addListener_closure(t0, t1) {
+ this.$this = t0;
+ this.listener = t1;
+ },
+ _Future__prependListeners_closure: function _Future__prependListeners_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ _Future__chainForeignFuture_closure: function _Future__chainForeignFuture_closure(t0) {
+ this.target = t0;
+ },
+ _Future__chainForeignFuture_closure0: function _Future__chainForeignFuture_closure0(t0) {
+ this.target = t0;
+ },
+ _Future__chainForeignFuture_closure1: function _Future__chainForeignFuture_closure1(t0, t1, t2) {
+ this.target = t0;
+ this.e = t1;
+ this.s = t2;
+ },
+ _Future__asyncCompleteWithValue_closure: function _Future__asyncCompleteWithValue_closure(t0, t1) {
+ this.$this = t0;
+ this.value = t1;
+ },
+ _Future__chainFuture_closure: function _Future__chainFuture_closure(t0, t1) {
+ this.$this = t0;
+ this.value = t1;
+ },
+ _Future__asyncCompleteError_closure: function _Future__asyncCompleteError_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.error = t1;
+ this.stackTrace = t2;
+ },
+ _Future__propagateToListeners_handleWhenCompleteCallback: function _Future__propagateToListeners_handleWhenCompleteCallback(t0, t1, t2) {
+ this._box_0 = t0;
+ this._box_1 = t1;
+ this.hasError = t2;
+ },
+ _Future__propagateToListeners_handleWhenCompleteCallback_closure: function _Future__propagateToListeners_handleWhenCompleteCallback_closure(t0) {
+ this.originalSource = t0;
+ },
+ _Future__propagateToListeners_handleValueCallback: function _Future__propagateToListeners_handleValueCallback(t0, t1) {
+ this._box_0 = t0;
+ this.sourceResult = t1;
+ },
+ _Future__propagateToListeners_handleError: function _Future__propagateToListeners_handleError(t0, t1) {
+ this._box_1 = t0;
+ this._box_0 = t1;
+ },
+ _AsyncCallbackEntry: function _AsyncCallbackEntry(t0) {
+ this.callback = t0;
+ this.next = null;
+ },
+ Stream: function Stream() {
+ },
+ Stream_Stream$fromIterable_closure: function Stream_Stream$fromIterable_closure(t0, t1) {
+ this.elements = t0;
+ this.T = t1;
+ },
+ Stream_length_closure: function Stream_length_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ Stream_length_closure0: function Stream_length_closure0(t0, t1) {
+ this._box_0 = t0;
+ this.future = t1;
+ },
+ Stream_first_closure: function Stream_first_closure(t0) {
+ this.future = t0;
+ },
+ Stream_first_closure0: function Stream_first_closure0(t0, t1, t2) {
+ this.$this = t0;
+ this.subscription = t1;
+ this.future = t2;
+ },
+ StreamSubscription: function StreamSubscription() {
+ },
+ StreamView: function StreamView() {
+ },
+ StreamTransformerBase: function StreamTransformerBase() {
+ },
+ _StreamController: function _StreamController() {
+ },
+ _StreamController__subscribe_closure: function _StreamController__subscribe_closure(t0) {
+ this.$this = t0;
+ },
+ _StreamController__recordCancel_complete: function _StreamController__recordCancel_complete(t0) {
+ this.$this = t0;
+ },
+ _SyncStreamControllerDispatch: function _SyncStreamControllerDispatch() {
+ },
+ _AsyncStreamControllerDispatch: function _AsyncStreamControllerDispatch() {
+ },
+ _AsyncStreamController: function _AsyncStreamController(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._varData = null;
+ _._state = 0;
+ _._doneFuture = null;
+ _.onListen = t0;
+ _.onPause = t1;
+ _.onResume = t2;
+ _.onCancel = t3;
+ _.$ti = t4;
+ },
+ _SyncStreamController: function _SyncStreamController(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._varData = null;
+ _._state = 0;
+ _._doneFuture = null;
+ _.onListen = t0;
+ _.onPause = t1;
+ _.onResume = t2;
+ _.onCancel = t3;
+ _.$ti = t4;
+ },
+ _ControllerStream: function _ControllerStream(t0, t1) {
+ this._async$_controller = t0;
+ this.$ti = t1;
+ },
+ _ControllerSubscription: function _ControllerSubscription(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._async$_controller = t0;
+ _._async$_onData = t1;
+ _._onError = t2;
+ _._onDone = t3;
+ _._zone = t4;
+ _._state = t5;
+ _._pending = _._cancelFuture = null;
+ _.$ti = t6;
+ },
+ _AddStreamState: function _AddStreamState() {
+ },
+ _AddStreamState_cancel_closure: function _AddStreamState_cancel_closure(t0) {
+ this.$this = t0;
+ },
+ _StreamControllerAddStreamState: function _StreamControllerAddStreamState(t0, t1, t2) {
+ this.varData = t0;
+ this.addStreamFuture = t1;
+ this.addSubscription = t2;
+ },
+ _BufferingStreamSubscription: function _BufferingStreamSubscription(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._async$_onData = t0;
+ _._onError = t1;
+ _._onDone = t2;
+ _._zone = t3;
+ _._state = t4;
+ _._pending = _._cancelFuture = null;
+ _.$ti = t5;
+ },
+ _BufferingStreamSubscription__sendError_sendError: function _BufferingStreamSubscription__sendError_sendError(t0, t1, t2) {
+ this.$this = t0;
+ this.error = t1;
+ this.stackTrace = t2;
+ },
+ _BufferingStreamSubscription__sendDone_sendDone: function _BufferingStreamSubscription__sendDone_sendDone(t0) {
+ this.$this = t0;
+ },
+ _StreamImpl: function _StreamImpl() {
+ },
+ _GeneratedStreamImpl: function _GeneratedStreamImpl(t0, t1) {
+ this._pending = t0;
+ this._isUsed = false;
+ this.$ti = t1;
+ },
+ _IterablePendingEvents: function _IterablePendingEvents(t0) {
+ this._async$_iterator = t0;
+ this._state = 0;
+ },
+ _DelayedEvent: function _DelayedEvent() {
+ },
+ _DelayedData: function _DelayedData(t0) {
+ this.value = t0;
+ this.next = null;
+ },
+ _DelayedError: function _DelayedError(t0, t1) {
+ this.error = t0;
+ this.stackTrace = t1;
+ this.next = null;
+ },
+ _DelayedDone: function _DelayedDone() {
+ },
+ _PendingEvents: function _PendingEvents() {
+ },
+ _PendingEvents_schedule_closure: function _PendingEvents_schedule_closure(t0, t1) {
+ this.$this = t0;
+ this.dispatch = t1;
+ },
+ _StreamImplEvents: function _StreamImplEvents() {
+ this.lastPendingEvent = this.firstPendingEvent = null;
+ this._state = 0;
+ },
+ _DoneStreamSubscription: function _DoneStreamSubscription(t0, t1, t2) {
+ var _ = this;
+ _._zone = t0;
+ _._state = 0;
+ _._onDone = t1;
+ _.$ti = t2;
+ },
+ _StreamIterator: function _StreamIterator() {
+ },
+ _cancelAndValue_closure: function _cancelAndValue_closure(t0, t1) {
+ this.future = t0;
+ this.value = t1;
+ },
+ AsyncError: function AsyncError(t0, t1) {
+ this.error = t0;
+ this.stackTrace = t1;
+ },
+ _Zone: function _Zone() {
+ },
+ _rootHandleUncaughtError_closure: function _rootHandleUncaughtError_closure(t0, t1) {
+ this.error = t0;
+ this.stackTrace = t1;
+ },
+ _RootZone: function _RootZone() {
+ },
+ _RootZone_bindCallback_closure: function _RootZone_bindCallback_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.f = t1;
+ this.R = t2;
+ },
+ _RootZone_bindCallbackGuarded_closure: function _RootZone_bindCallbackGuarded_closure(t0, t1) {
+ this.$this = t0;
+ this.f = t1;
+ },
+ _RootZone_bindUnaryCallbackGuarded_closure: function _RootZone_bindUnaryCallbackGuarded_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.f = t1;
+ this.T = t2;
+ },
+ HashMap_HashMap: function($K, $V) {
+ return new P._HashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("_HashMap<1,2>"));
+ },
+ _HashMap__getTableEntry: function(table, key) {
+ var entry = table[key];
+ return entry === table ? null : entry;
+ },
+ _HashMap__setTableEntry: function(table, key, value) {
+ if (value == null)
+ table[key] = table;
+ else
+ table[key] = value;
+ },
+ _HashMap__newHashTable: function() {
+ var table = Object.create(null);
+ P._HashMap__setTableEntry(table, "", table);
+ delete table[""];
+ return table;
+ },
+ LinkedHashMap_LinkedHashMap: function(equals, hashCode, $K, $V) {
+ if (hashCode == null) {
+ if (equals == null)
+ return new H.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>"));
+ hashCode = P.collection___defaultHashCode$closure();
+ } else {
+ if (P.core__identityHashCode$closure() === hashCode && P.core__identical$closure() === equals)
+ return P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6($K, $V);
+ if (equals == null)
+ equals = P.collection___defaultEquals$closure();
+ }
+ return P._LinkedCustomHashMap$(equals, hashCode, null, $K, $V);
+ },
+ LinkedHashMap_LinkedHashMap$_literal: function(keyValuePairs, $K, $V) {
+ return H.fillLiteralMap(keyValuePairs, new H.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")));
+ },
+ LinkedHashMap_LinkedHashMap$_empty: function($K, $V) {
+ return new H.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>"));
+ },
+ _LinkedIdentityHashMap__LinkedIdentityHashMap$es6: function($K, $V) {
+ return new P._LinkedIdentityHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("_LinkedIdentityHashMap<1,2>"));
+ },
+ _LinkedCustomHashMap$: function(_equals, _hashCode, validKey, $K, $V) {
+ return new P._LinkedCustomHashMap(_equals, _hashCode, new P._LinkedCustomHashMap_closure($K), $K._eval$1("@<0>")._bind$1($V)._eval$1("_LinkedCustomHashMap<1,2>"));
+ },
+ HashSet_HashSet: function($E) {
+ return new P._HashSet($E._eval$1("_HashSet<0>"));
+ },
+ _HashSet__newHashTable: function() {
+ var table = Object.create(null);
+ table[""] = table;
+ delete table[""];
+ return table;
+ },
+ LinkedHashSet_LinkedHashSet: function($E) {
+ return new P._LinkedHashSet($E._eval$1("_LinkedHashSet<0>"));
+ },
+ LinkedHashSet_LinkedHashSet$_empty: function($E) {
+ return new P._LinkedHashSet($E._eval$1("_LinkedHashSet<0>"));
+ },
+ LinkedHashSet_LinkedHashSet$_literal: function(values, $E) {
+ return H.fillLiteralSet(values, new P._LinkedHashSet($E._eval$1("_LinkedHashSet<0>")));
+ },
+ _LinkedHashSet__newHashTable: function() {
+ var table = Object.create(null);
+ table[""] = table;
+ delete table[""];
+ return table;
+ },
+ _LinkedHashSetIterator$: function(_set, _modifications) {
+ var t1 = new P._LinkedHashSetIterator(_set, _modifications);
+ t1._collection$_cell = _set._collection$_first;
+ return t1;
+ },
+ _defaultEquals: function(a, b) {
+ return J.$eq$(a, b);
+ },
+ _defaultHashCode: function(a) {
+ return J.get$hashCode$(a);
+ },
+ HashMap_HashMap$from: function(other, $K, $V) {
+ var result = P.HashMap_HashMap($K, $V);
+ other.forEach$1(0, new P.HashMap_HashMap$from_closure(result, $K, $V));
+ return result;
+ },
+ HashSet_HashSet$from: function(elements, $E) {
+ var t1,
+ result = P.HashSet_HashSet($E);
+ for (t1 = P._LinkedHashSetIterator$(elements, elements._collection$_modifications); t1.moveNext$0();)
+ result.add$1(0, $E._as(t1._collection$_current));
+ return result;
+ },
+ IterableBase_iterableToShortString: function(iterable, leftDelimiter, rightDelimiter) {
+ var parts, t1;
+ if (P._isToStringVisiting(iterable)) {
+ if (leftDelimiter === "(" && rightDelimiter === ")")
+ return "(...)";
+ return leftDelimiter + "..." + rightDelimiter;
+ }
+ parts = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ $._toStringVisiting.push(iterable);
+ try {
+ P._iterablePartsToStrings(iterable, parts);
+ } finally {
+ $._toStringVisiting.pop();
+ }
+ t1 = P.StringBuffer__writeAll(leftDelimiter, parts, ", ") + rightDelimiter;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ IterableBase_iterableToFullString: function(iterable, leftDelimiter, rightDelimiter) {
+ var buffer, t1;
+ if (P._isToStringVisiting(iterable))
+ return leftDelimiter + "..." + rightDelimiter;
+ buffer = new P.StringBuffer(leftDelimiter);
+ $._toStringVisiting.push(iterable);
+ try {
+ t1 = buffer;
+ t1._contents = P.StringBuffer__writeAll(t1._contents, iterable, ", ");
+ } finally {
+ $._toStringVisiting.pop();
+ }
+ buffer._contents += rightDelimiter;
+ t1 = buffer._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ _isToStringVisiting: function(o) {
+ var t1, i;
+ for (t1 = $._toStringVisiting.length, i = 0; i < t1; ++i)
+ if (o === $._toStringVisiting[i])
+ return true;
+ return false;
+ },
+ _iterablePartsToStrings: function(iterable, parts) {
+ var next, ultimateString, penultimateString, penultimate, ultimate, ultimate0, elision,
+ it = J.get$iterator$ax(iterable),
+ $length = 0, count = 0;
+ while (true) {
+ if (!($length < 80 || count < 3))
+ break;
+ if (!it.moveNext$0())
+ return;
+ next = H.S(it.get$current(it));
+ parts.push(next);
+ $length += next.length + 2;
+ ++count;
+ }
+ if (!it.moveNext$0()) {
+ if (count <= 5)
+ return;
+ ultimateString = parts.pop();
+ penultimateString = parts.pop();
+ } else {
+ penultimate = it.get$current(it);
+ ++count;
+ if (!it.moveNext$0()) {
+ if (count <= 4) {
+ parts.push(H.S(penultimate));
+ return;
+ }
+ ultimateString = H.S(penultimate);
+ penultimateString = parts.pop();
+ $length += ultimateString.length + 2;
+ } else {
+ ultimate = it.get$current(it);
+ ++count;
+ for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0) {
+ ultimate0 = it.get$current(it);
+ ++count;
+ if (count > 100) {
+ while (true) {
+ if (!($length > 75 && count > 3))
+ break;
+ $length -= parts.pop().length + 2;
+ --count;
+ }
+ parts.push("...");
+ return;
+ }
+ }
+ penultimateString = H.S(penultimate);
+ ultimateString = H.S(ultimate);
+ $length += ultimateString.length + penultimateString.length + 4;
+ }
+ }
+ if (count > parts.length + 2) {
+ $length += 5;
+ elision = "...";
+ } else
+ elision = null;
+ while (true) {
+ if (!($length > 80 && parts.length > 3))
+ break;
+ $length -= parts.pop().length + 2;
+ if (elision == null) {
+ $length += 5;
+ elision = "...";
+ }
+ }
+ if (elision != null)
+ parts.push(elision);
+ parts.push(penultimateString);
+ parts.push(ultimateString);
+ },
+ LinkedHashMap_LinkedHashMap$from: function(other, $K, $V) {
+ var result = P.LinkedHashMap_LinkedHashMap(null, null, $K, $V);
+ J.forEach$1$ax(other, new P.LinkedHashMap_LinkedHashMap$from_closure(result, $K, $V));
+ return result;
+ },
+ LinkedHashSet_LinkedHashSet$from: function(elements, $E) {
+ var t1,
+ result = P.LinkedHashSet_LinkedHashSet($E);
+ for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
+ result.add$1(0, $E._as(t1.get$current(t1)));
+ return result;
+ },
+ LinkedHashSet_LinkedHashSet$of: function(elements, $E) {
+ var t1 = P.LinkedHashSet_LinkedHashSet($E);
+ t1.addAll$1(0, elements);
+ return t1;
+ },
+ _LinkedListIterator$: function(list) {
+ return new P._LinkedListIterator(list, list._modificationCount, list._collection$_first);
+ },
+ ListMixin__compareAny: function(a, b) {
+ var t1 = type$.Comparable_dynamic;
+ return J.compareTo$1$ns(t1._as(a), t1._as(b));
+ },
+ MapBase_mapToString: function(m) {
+ var result, t1 = {};
+ if (P._isToStringVisiting(m))
+ return "{...}";
+ result = new P.StringBuffer("");
+ try {
+ $._toStringVisiting.push(m);
+ result._contents += "{";
+ t1.first = true;
+ J.forEach$1$ax(m, new P.MapBase_mapToString_closure(t1, result));
+ result._contents += "}";
+ } finally {
+ $._toStringVisiting.pop();
+ }
+ t1 = result._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ ListQueue$: function(initialCapacity, $E) {
+ return new P.ListQueue(P.List_List$filled(P.ListQueue__calculateCapacity(initialCapacity), null, false, $E._eval$1("0?")), $E._eval$1("ListQueue<0>"));
+ },
+ ListQueue__calculateCapacity: function(initialCapacity) {
+ if (initialCapacity == null || initialCapacity < 8)
+ return 8;
+ else if ((initialCapacity & initialCapacity - 1) >>> 0 !== 0)
+ return P.ListQueue__nextPowerOf2(initialCapacity);
+ return initialCapacity;
+ },
+ ListQueue__nextPowerOf2: function(number) {
+ var nextNumber;
+ number = (number << 1 >>> 0) - 1;
+ for (; true; number = nextNumber) {
+ nextNumber = (number & number - 1) >>> 0;
+ if (nextNumber === 0)
+ return number;
+ }
+ },
+ _dynamicCompare: function(a, b) {
+ return J.compareTo$1$ns(a, b);
+ },
+ _defaultCompare: function($K) {
+ if ($K._eval$1("int(0,0)")._is(P.core_Comparable_compare$closure()))
+ return P.core_Comparable_compare$closure();
+ return P.collection___dynamicCompare$closure();
+ },
+ SplayTreeMap$: function($K, $V) {
+ var t1 = P._defaultCompare($K);
+ return new P.SplayTreeMap(t1, new P.SplayTreeMap_closure($K), $K._eval$1("@<0>")._bind$1($V)._eval$1("SplayTreeMap<1,2>"));
+ },
+ _SplayTreeKeyIterator$: function(map, $K, $Node) {
+ var t1 = new P._SplayTreeKeyIterator(map, H.setRuntimeTypeInfo([], $Node._eval$1("JSArray<0>")), map._modificationCount, map._splayCount, $K._eval$1("@<0>")._bind$1($Node)._eval$1("_SplayTreeKeyIterator<1,2>"));
+ t1._findLeftMostDescendent$1(map.get$_root());
+ return t1;
+ },
+ SplayTreeSet$: function(compare, isValidKey, $E) {
+ var t1 = compare == null ? P._defaultCompare($E) : compare,
+ t2 = isValidKey == null ? new P.SplayTreeSet_closure($E) : isValidKey;
+ return new P.SplayTreeSet(t1, t2, $E._eval$1("SplayTreeSet<0>"));
+ },
+ _HashMap: function _HashMap(t0) {
+ var _ = this;
+ _._collection$_length = 0;
+ _._collection$_keys = _._collection$_rest = _._collection$_nums = _._collection$_strings = null;
+ _.$ti = t0;
+ },
+ _HashMap_values_closure: function _HashMap_values_closure(t0) {
+ this.$this = t0;
+ },
+ _IdentityHashMap: function _IdentityHashMap(t0) {
+ var _ = this;
+ _._collection$_length = 0;
+ _._collection$_keys = _._collection$_rest = _._collection$_nums = _._collection$_strings = null;
+ _.$ti = t0;
+ },
+ _HashMapKeyIterable: function _HashMapKeyIterable(t0, t1) {
+ this._collection$_map = t0;
+ this.$ti = t1;
+ },
+ _HashMapKeyIterator: function _HashMapKeyIterator(t0, t1) {
+ var _ = this;
+ _._collection$_map = t0;
+ _._collection$_keys = t1;
+ _._offset = 0;
+ _._collection$_current = null;
+ },
+ _LinkedIdentityHashMap: function _LinkedIdentityHashMap(t0) {
+ var _ = this;
+ _.__js_helper$_length = 0;
+ _._last = _._first = _.__js_helper$_rest = _._nums = _._strings = null;
+ _._modifications = 0;
+ _.$ti = t0;
+ },
+ _LinkedCustomHashMap: function _LinkedCustomHashMap(t0, t1, t2, t3) {
+ var _ = this;
+ _._equals = t0;
+ _._hashCode = t1;
+ _._validKey = t2;
+ _.__js_helper$_length = 0;
+ _._last = _._first = _.__js_helper$_rest = _._nums = _._strings = null;
+ _._modifications = 0;
+ _.$ti = t3;
+ },
+ _LinkedCustomHashMap_closure: function _LinkedCustomHashMap_closure(t0) {
+ this.K = t0;
+ },
+ _HashSet: function _HashSet(t0) {
+ var _ = this;
+ _._collection$_length = 0;
+ _._elements = _._collection$_rest = _._collection$_nums = _._collection$_strings = null;
+ _.$ti = t0;
+ },
+ _HashSetIterator: function _HashSetIterator(t0, t1) {
+ var _ = this;
+ _._set = t0;
+ _._elements = t1;
+ _._offset = 0;
+ _._collection$_current = null;
+ },
+ _LinkedHashSet: function _LinkedHashSet(t0) {
+ var _ = this;
+ _._collection$_length = 0;
+ _._collection$_last = _._collection$_first = _._collection$_rest = _._collection$_nums = _._collection$_strings = null;
+ _._collection$_modifications = 0;
+ _.$ti = t0;
+ },
+ _LinkedHashSetCell: function _LinkedHashSetCell(t0) {
+ this._collection$_element = t0;
+ this._collection$_previous = this._collection$_next = null;
+ },
+ _LinkedHashSetIterator: function _LinkedHashSetIterator(t0, t1) {
+ var _ = this;
+ _._set = t0;
+ _._collection$_modifications = t1;
+ _._collection$_current = _._collection$_cell = null;
+ },
+ HashMap_HashMap$from_closure: function HashMap_HashMap$from_closure(t0, t1, t2) {
+ this.result = t0;
+ this.K = t1;
+ this.V = t2;
+ },
+ IterableMixin: function IterableMixin() {
+ },
+ IterableBase: function IterableBase() {
+ },
+ LinkedHashMap_LinkedHashMap$from_closure: function LinkedHashMap_LinkedHashMap$from_closure(t0, t1, t2) {
+ this.result = t0;
+ this.K = t1;
+ this.V = t2;
+ },
+ LinkedList: function LinkedList(t0) {
+ var _ = this;
+ _._collection$_length = _._modificationCount = 0;
+ _._collection$_first = null;
+ _.$ti = t0;
+ },
+ _LinkedListIterator: function _LinkedListIterator(t0, t1, t2) {
+ var _ = this;
+ _._list = t0;
+ _._modificationCount = t1;
+ _._collection$_current = null;
+ _._collection$_next = t2;
+ _._visitedFirst = false;
+ },
+ LinkedListEntry: function LinkedListEntry() {
+ },
+ ListBase: function ListBase() {
+ },
+ ListMixin: function ListMixin() {
+ },
+ MapBase: function MapBase() {
+ },
+ MapBase_mapToString_closure: function MapBase_mapToString_closure(t0, t1) {
+ this._box_0 = t0;
+ this.result = t1;
+ },
+ MapMixin: function MapMixin() {
+ },
+ MapMixin_entries_closure: function MapMixin_entries_closure(t0) {
+ this.$this = t0;
+ },
+ _MapBaseValueIterable: function _MapBaseValueIterable(t0, t1) {
+ this._collection$_map = t0;
+ this.$ti = t1;
+ },
+ _MapBaseValueIterator: function _MapBaseValueIterator(t0, t1) {
+ this._collection$_keys = t0;
+ this._collection$_map = t1;
+ this._collection$_current = null;
+ },
+ _UnmodifiableMapMixin: function _UnmodifiableMapMixin() {
+ },
+ MapView: function MapView() {
+ },
+ UnmodifiableMapView: function UnmodifiableMapView(t0, t1) {
+ this._collection$_map = t0;
+ this.$ti = t1;
+ },
+ _DoubleLink: function _DoubleLink() {
+ },
+ DoubleLinkedQueueEntry: function DoubleLinkedQueueEntry() {
+ },
+ _DoubleLinkedQueueEntry: function _DoubleLinkedQueueEntry() {
+ },
+ _DoubleLinkedQueueElement: function _DoubleLinkedQueueElement(t0, t1, t2) {
+ var _ = this;
+ _._queue = t0;
+ _._collection$_element = t1;
+ _._nextLink = _._previousLink = null;
+ _.$ti = t2;
+ },
+ _DoubleLinkedQueueSentinel: function _DoubleLinkedQueueSentinel(t0, t1, t2) {
+ var _ = this;
+ _._queue = t0;
+ _._collection$_element = t1;
+ _._nextLink = _._previousLink = null;
+ _.$ti = t2;
+ },
+ DoubleLinkedQueue: function DoubleLinkedQueue(t0) {
+ var _ = this;
+ _.__DoubleLinkedQueue__sentinel = null;
+ _.__DoubleLinkedQueue__sentinel_isSet = false;
+ _._elementCount = 0;
+ _.$ti = t0;
+ },
+ _DoubleLinkedQueueIterator: function _DoubleLinkedQueueIterator(t0, t1, t2) {
+ var _ = this;
+ _._sentinel = t0;
+ _._nextEntry = t1;
+ _._collection$_current = null;
+ _.$ti = t2;
+ },
+ ListQueue: function ListQueue(t0, t1) {
+ var _ = this;
+ _._table = t0;
+ _._modificationCount = _._tail = _._head = 0;
+ _.$ti = t1;
+ },
+ _ListQueueIterator: function _ListQueueIterator(t0, t1, t2, t3) {
+ var _ = this;
+ _._queue = t0;
+ _._end = t1;
+ _._modificationCount = t2;
+ _._position = t3;
+ _._collection$_current = null;
+ },
+ SetMixin: function SetMixin() {
+ },
+ _SetBase: function _SetBase() {
+ },
+ _UnmodifiableSet: function _UnmodifiableSet(t0, t1) {
+ this._collection$_map = t0;
+ this.$ti = t1;
+ },
+ _SplayTreeNode: function _SplayTreeNode() {
+ },
+ _SplayTreeSetNode: function _SplayTreeSetNode(t0, t1) {
+ var _ = this;
+ _.key = t0;
+ _.right = _.left = null;
+ _.$ti = t1;
+ },
+ _SplayTreeMapNode: function _SplayTreeMapNode(t0, t1, t2) {
+ var _ = this;
+ _.value = t0;
+ _.key = t1;
+ _.right = _.left = null;
+ _.$ti = t2;
+ },
+ _SplayTree: function _SplayTree() {
+ },
+ SplayTreeMap: function SplayTreeMap(t0, t1, t2) {
+ var _ = this;
+ _._root = null;
+ _._compare = t0;
+ _._validKey = t1;
+ _._splayCount = _._modificationCount = _._count = 0;
+ _.$ti = t2;
+ },
+ SplayTreeMap_closure: function SplayTreeMap_closure(t0) {
+ this.K = t0;
+ },
+ _SplayTreeIterator: function _SplayTreeIterator() {
+ },
+ _SplayTreeKeyIterable: function _SplayTreeKeyIterable(t0, t1) {
+ this._tree = t0;
+ this.$ti = t1;
+ },
+ _SplayTreeValueIterable: function _SplayTreeValueIterable(t0, t1) {
+ this._collection$_map = t0;
+ this.$ti = t1;
+ },
+ _SplayTreeKeyIterator: function _SplayTreeKeyIterator(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._tree = t0;
+ _._workList = t1;
+ _._modificationCount = t2;
+ _._splayCount = t3;
+ _._currentNode = null;
+ _.$ti = t4;
+ },
+ _SplayTreeValueIterator: function _SplayTreeValueIterator(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._tree = t0;
+ _._workList = t1;
+ _._modificationCount = t2;
+ _._splayCount = t3;
+ _._currentNode = null;
+ _.$ti = t4;
+ },
+ _SplayTreeNodeIterator: function _SplayTreeNodeIterator(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._tree = t0;
+ _._workList = t1;
+ _._modificationCount = t2;
+ _._splayCount = t3;
+ _._currentNode = null;
+ _.$ti = t4;
+ },
+ SplayTreeSet: function SplayTreeSet(t0, t1, t2) {
+ var _ = this;
+ _._root = null;
+ _._compare = t0;
+ _._validKey = t1;
+ _._splayCount = _._modificationCount = _._count = 0;
+ _.$ti = t2;
+ },
+ SplayTreeSet_closure: function SplayTreeSet_closure(t0) {
+ this.E = t0;
+ },
+ SplayTreeSet__copyNode_copyChildren: function SplayTreeSet__copyNode_copyChildren(t0, t1) {
+ this.$this = t0;
+ this.Node = t1;
+ },
+ _ListBase_Object_ListMixin: function _ListBase_Object_ListMixin() {
+ },
+ _SplayTreeMap__SplayTree_MapMixin: function _SplayTreeMap__SplayTree_MapMixin() {
+ },
+ _SplayTreeSet__SplayTree_IterableMixin: function _SplayTreeSet__SplayTree_IterableMixin() {
+ },
+ _SplayTreeSet__SplayTree_IterableMixin_SetMixin: function _SplayTreeSet__SplayTree_IterableMixin_SetMixin() {
+ },
+ _UnmodifiableMapView_MapView__UnmodifiableMapMixin: function _UnmodifiableMapView_MapView__UnmodifiableMapMixin() {
+ },
+ __SetBase_Object_SetMixin: function __SetBase_Object_SetMixin() {
+ },
+ _parseJson: function(source, reviver) {
+ var parsed, e, exception, t1;
+ if (typeof source != "string")
+ throw H.wrapException(H.argumentErrorValue(source));
+ parsed = null;
+ try {
+ parsed = JSON.parse(source);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ t1 = P.FormatException$(String(e), null, null);
+ throw H.wrapException(t1);
+ }
+ t1 = P._convertJsonToDartLazy(parsed);
+ return t1;
+ },
+ _convertJsonToDartLazy: function(object) {
+ var i;
+ if (object == null)
+ return null;
+ if (typeof object != "object")
+ return object;
+ if (Object.getPrototypeOf(object) !== Array.prototype)
+ return new P._JsonMap(object, Object.create(null));
+ for (i = 0; i < object.length; ++i)
+ object[i] = P._convertJsonToDartLazy(object[i]);
+ return object;
+ },
+ Utf8Decoder__convertIntercepted: function(allowMalformed, codeUnits, start, end) {
+ var casted, result;
+ if (codeUnits instanceof Uint8Array) {
+ casted = codeUnits;
+ end = casted.length;
+ if (end - start < 15)
+ return null;
+ result = P.Utf8Decoder__convertInterceptedUint8List(allowMalformed, casted, start, end);
+ if (result != null && allowMalformed)
+ if (result.indexOf("\ufffd") >= 0)
+ return null;
+ return result;
+ }
+ return null;
+ },
+ Utf8Decoder__convertInterceptedUint8List: function(allowMalformed, codeUnits, start, end) {
+ var decoder = allowMalformed ? $.$get$Utf8Decoder__decoderNonfatal() : $.$get$Utf8Decoder__decoder();
+ if (decoder == null)
+ return null;
+ if (0 === start && end === codeUnits.length)
+ return P.Utf8Decoder__useTextDecoder(decoder, codeUnits);
+ return P.Utf8Decoder__useTextDecoder(decoder, codeUnits.subarray(start, P.RangeError_checkValidRange(start, end, codeUnits.length)));
+ },
+ Utf8Decoder__useTextDecoder: function(decoder, codeUnits) {
+ var t1, exception;
+ try {
+ t1 = decoder.decode(codeUnits);
+ return t1;
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ return null;
+ },
+ Base64Codec__checkPadding: function(source, sourceIndex, sourceEnd, firstPadding, paddingCount, $length) {
+ if (C.JSInt_methods.$mod($length, 4) !== 0)
+ throw H.wrapException(P.FormatException$("Invalid base64 padding, padded length must be multiple of four, is " + $length, source, sourceEnd));
+ if (firstPadding + paddingCount !== $length)
+ throw H.wrapException(P.FormatException$("Invalid base64 padding, '=' not at the end", source, sourceIndex));
+ if (paddingCount > 2)
+ throw H.wrapException(P.FormatException$("Invalid base64 padding, more than two '=' characters", source, sourceIndex));
+ },
+ _Base64Encoder_encodeChunk: function(alphabet, bytes, start, end, isLast, output, outputIndex, state) {
+ var t1, i, byteOr, byte, outputIndex0, outputIndex1,
+ bits = state >>> 2,
+ expectedChars = 3 - (state & 3);
+ for (t1 = J.getInterceptor$asx(bytes), i = start, byteOr = 0; i < end; ++i) {
+ byte = t1.$index(bytes, i);
+ byteOr |= byte;
+ bits = (bits << 8 | byte) & 16777215;
+ --expectedChars;
+ if (expectedChars === 0) {
+ outputIndex0 = outputIndex + 1;
+ output[outputIndex] = C.JSString_methods._codeUnitAt$1(alphabet, bits >>> 18 & 63);
+ outputIndex = outputIndex0 + 1;
+ output[outputIndex0] = C.JSString_methods._codeUnitAt$1(alphabet, bits >>> 12 & 63);
+ outputIndex0 = outputIndex + 1;
+ output[outputIndex] = C.JSString_methods._codeUnitAt$1(alphabet, bits >>> 6 & 63);
+ outputIndex = outputIndex0 + 1;
+ output[outputIndex0] = C.JSString_methods._codeUnitAt$1(alphabet, bits & 63);
+ bits = 0;
+ expectedChars = 3;
+ }
+ }
+ if (byteOr >= 0 && byteOr <= 255) {
+ if (expectedChars < 3) {
+ outputIndex0 = outputIndex + 1;
+ outputIndex1 = outputIndex0 + 1;
+ if (3 - expectedChars === 1) {
+ output[outputIndex] = C.JSString_methods._codeUnitAt$1(alphabet, bits >>> 2 & 63);
+ output[outputIndex0] = C.JSString_methods._codeUnitAt$1(alphabet, bits << 4 & 63);
+ output[outputIndex1] = 61;
+ output[outputIndex1 + 1] = 61;
+ } else {
+ output[outputIndex] = C.JSString_methods._codeUnitAt$1(alphabet, bits >>> 10 & 63);
+ output[outputIndex0] = C.JSString_methods._codeUnitAt$1(alphabet, bits >>> 4 & 63);
+ output[outputIndex1] = C.JSString_methods._codeUnitAt$1(alphabet, bits << 2 & 63);
+ output[outputIndex1 + 1] = 61;
+ }
+ return 0;
+ }
+ return (bits << 2 | 3 - expectedChars) >>> 0;
+ }
+ for (i = start; i < end;) {
+ byte = t1.$index(bytes, i);
+ if (byte > 255)
+ break;
+ ++i;
+ }
+ throw H.wrapException(P.ArgumentError$value(bytes, "Not a byte value at index " + i + ": 0x" + C.JSInt_methods.toRadixString$1(t1.$index(bytes, i), 16), null));
+ },
+ Encoding_getByName: function($name) {
+ if ($name == null)
+ return null;
+ return $.Encoding__nameToEncoding.$index(0, $name.toLowerCase());
+ },
+ JsonUnsupportedObjectError$: function(unsupportedObject, cause, partialResult) {
+ return new P.JsonUnsupportedObjectError(unsupportedObject, cause);
+ },
+ _defaultToEncodable: function(object) {
+ return object.toJson$0();
+ },
+ _JsonStringStringifier$: function(_sink, _toEncodable) {
+ var t1 = _toEncodable == null ? P.convert___defaultToEncodable$closure() : _toEncodable;
+ return new P._JsonStringStringifier(_sink, [], t1);
+ },
+ _JsonStringStringifier_stringify: function(object, toEncodable, indent) {
+ var t1,
+ output = new P.StringBuffer(""),
+ stringifier = P._JsonStringStringifier$(output, toEncodable);
+ stringifier.writeObject$1(object);
+ t1 = output._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ _Utf8Decoder_errorDescription: function(state) {
+ switch (state) {
+ case 65:
+ return "Missing extension byte";
+ case 67:
+ return "Unexpected extension byte";
+ case 69:
+ return "Invalid UTF-8 byte";
+ case 71:
+ return "Overlong encoding";
+ case 73:
+ return "Out of unicode range";
+ case 75:
+ return "Encoded surrogate";
+ case 77:
+ return "Unfinished UTF-8 octet sequence";
+ default:
+ return "";
+ }
+ },
+ _Utf8Decoder__makeUint8List: function(codeUnits, start, end) {
+ var t1, i, b,
+ $length = end - start,
+ bytes = new Uint8Array($length);
+ for (t1 = J.getInterceptor$asx(codeUnits), i = 0; i < $length; ++i) {
+ b = t1.$index(codeUnits, start + i);
+ bytes[i] = (b & 4294967040) >>> 0 !== 0 ? 255 : b;
+ }
+ return bytes;
+ },
+ _JsonMap: function _JsonMap(t0, t1) {
+ this._original = t0;
+ this._processed = t1;
+ this._data = null;
+ },
+ _JsonMap_values_closure: function _JsonMap_values_closure(t0) {
+ this.$this = t0;
+ },
+ _JsonMapKeyIterable: function _JsonMapKeyIterable(t0) {
+ this._parent = t0;
+ },
+ Utf8Decoder_closure: function Utf8Decoder_closure() {
+ },
+ Utf8Decoder_closure0: function Utf8Decoder_closure0() {
+ },
+ AsciiCodec: function AsciiCodec() {
+ },
+ _UnicodeSubsetEncoder: function _UnicodeSubsetEncoder() {
+ },
+ AsciiEncoder: function AsciiEncoder(t0) {
+ this._subsetMask = t0;
+ },
+ _UnicodeSubsetDecoder: function _UnicodeSubsetDecoder() {
+ },
+ AsciiDecoder: function AsciiDecoder(t0, t1) {
+ this._allowInvalid = t0;
+ this._subsetMask = t1;
+ },
+ Base64Codec: function Base64Codec() {
+ },
+ Base64Encoder: function Base64Encoder() {
+ },
+ _Base64Encoder: function _Base64Encoder(t0) {
+ this._convert$_state = 0;
+ this._alphabet = t0;
+ },
+ ByteConversionSink: function ByteConversionSink() {
+ },
+ ByteConversionSinkBase: function ByteConversionSinkBase() {
+ },
+ _ByteCallbackSink: function _ByteCallbackSink(t0, t1) {
+ this._convert$_callback = t0;
+ this._convert$_buffer = t1;
+ this._bufferIndex = 0;
+ },
+ ChunkedConversionSink: function ChunkedConversionSink() {
+ },
+ Codec: function Codec() {
+ },
+ Converter: function Converter() {
+ },
+ Encoding: function Encoding() {
+ },
+ JsonUnsupportedObjectError: function JsonUnsupportedObjectError(t0, t1) {
+ this.unsupportedObject = t0;
+ this.cause = t1;
+ },
+ JsonCyclicError: function JsonCyclicError(t0, t1) {
+ this.unsupportedObject = t0;
+ this.cause = t1;
+ },
+ JsonCodec: function JsonCodec() {
+ },
+ JsonEncoder: function JsonEncoder(t0) {
+ this._toEncodable = t0;
+ },
+ JsonDecoder: function JsonDecoder(t0) {
+ this._reviver = t0;
+ },
+ _JsonStringifier: function _JsonStringifier() {
+ },
+ _JsonStringifier_writeMap_closure: function _JsonStringifier_writeMap_closure(t0, t1) {
+ this._box_0 = t0;
+ this.keyValueList = t1;
+ },
+ _JsonStringStringifier: function _JsonStringStringifier(t0, t1, t2) {
+ this._sink = t0;
+ this._seen = t1;
+ this._toEncodable = t2;
+ },
+ Latin1Codec: function Latin1Codec() {
+ },
+ Latin1Encoder: function Latin1Encoder(t0) {
+ this._subsetMask = t0;
+ },
+ Latin1Decoder: function Latin1Decoder(t0, t1) {
+ this._allowInvalid = t0;
+ this._subsetMask = t1;
+ },
+ Utf8Codec: function Utf8Codec() {
+ },
+ Utf8Encoder: function Utf8Encoder() {
+ },
+ _Utf8Encoder: function _Utf8Encoder(t0) {
+ this._bufferIndex = 0;
+ this._convert$_buffer = t0;
+ },
+ Utf8Decoder: function Utf8Decoder(t0) {
+ this._allowMalformed = t0;
+ },
+ _Utf8Decoder: function _Utf8Decoder(t0) {
+ this.allowMalformed = t0;
+ this._convert$_state = 16;
+ this._charOrIndex = 0;
+ },
+ identityHashCode: function(object) {
+ return H.objectHashCode(object);
+ },
+ Function_apply: function($function, positionalArguments) {
+ return H.Primitives_applyFunction($function, positionalArguments, null);
+ },
+ int_parse: function(source, radix) {
+ var value = H.Primitives_parseInt(source, radix);
+ if (value != null)
+ return value;
+ throw H.wrapException(P.FormatException$(source, null, null));
+ },
+ double_parse: function(source) {
+ var value = H.Primitives_parseDouble(source);
+ if (value != null)
+ return value;
+ throw H.wrapException(P.FormatException$("Invalid double", source, null));
+ },
+ Error__objectToString: function(object) {
+ if (object instanceof H.Closure)
+ return object.toString$0(0);
+ return "Instance of '" + H.S(H.Primitives_objectTypeName(object)) + "'";
+ },
+ DateTime$fromMillisecondsSinceEpoch: function(millisecondsSinceEpoch, isUtc) {
+ var t1;
+ if (Math.abs(millisecondsSinceEpoch) <= 864e13)
+ t1 = false;
+ else
+ t1 = true;
+ if (t1)
+ H.throwExpression(P.ArgumentError$("DateTime is outside valid range: " + millisecondsSinceEpoch));
+ P.ArgumentError_checkNotNull(isUtc, "isUtc");
+ return new P.DateTime(millisecondsSinceEpoch, isUtc);
+ },
+ List_List$filled: function($length, fill, growable, $E) {
+ var i,
+ result = growable ? J.JSArray_JSArray$growable($length, $E) : J.JSArray_JSArray$fixed($length, $E);
+ if ($length !== 0 && fill != null)
+ for (i = 0; i < result.length; ++i)
+ result[i] = fill;
+ return result;
+ },
+ List_List$from: function(elements, growable, $E) {
+ var t1,
+ list = H.setRuntimeTypeInfo([], $E._eval$1("JSArray<0>"));
+ for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
+ list.push(t1.get$current(t1));
+ if (growable)
+ return list;
+ return J.JSArray_markFixedList(list);
+ },
+ List_List$of: function(elements, growable, $E) {
+ var t1;
+ if (growable)
+ return P.List_List$_of(elements, $E);
+ t1 = J.JSArray_markFixedList(P.List_List$_of(elements, $E));
+ return t1;
+ },
+ List_List$_of: function(elements, $E) {
+ var t1,
+ list = H.setRuntimeTypeInfo([], $E._eval$1("JSArray<0>"));
+ for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
+ list.push(t1.get$current(t1));
+ return list;
+ },
+ List_List$generate: function($length, generator, growable, $E) {
+ var i,
+ result = growable ? J.JSArray_JSArray$growable($length, $E) : J.JSArray_JSArray$fixed($length, $E);
+ for (i = 0; i < $length; ++i)
+ result[i] = generator.call$1(i);
+ return result;
+ },
+ List_List$unmodifiable: function(elements, $E) {
+ return J.JSArray_markUnmodifiableList(P.List_List$from(elements, false, $E));
+ },
+ String_String$fromCharCodes: function(charCodes, start, end) {
+ var array, len;
+ if (Array.isArray(charCodes)) {
+ array = charCodes;
+ len = array.length;
+ end = P.RangeError_checkValidRange(start, end, len);
+ return H.Primitives_stringFromCharCodes(start > 0 || end < len ? array.slice(start, end) : array);
+ }
+ if (type$.NativeUint8List._is(charCodes))
+ return H.Primitives_stringFromNativeUint8List(charCodes, start, P.RangeError_checkValidRange(start, end, charCodes.length));
+ return P.String__stringFromIterable(charCodes, start, end);
+ },
+ String_String$fromCharCode: function(charCode) {
+ return H.Primitives_stringFromCharCode(charCode);
+ },
+ String__stringFromIterable: function(charCodes, start, end) {
+ var t1, it, i, list, _null = null;
+ if (start < 0)
+ throw H.wrapException(P.RangeError$range(start, 0, J.get$length$asx(charCodes), _null, _null));
+ t1 = end == null;
+ if (!t1 && end < start)
+ throw H.wrapException(P.RangeError$range(end, start, J.get$length$asx(charCodes), _null, _null));
+ it = J.get$iterator$ax(charCodes);
+ for (i = 0; i < start; ++i)
+ if (!it.moveNext$0())
+ throw H.wrapException(P.RangeError$range(start, 0, i, _null, _null));
+ list = [];
+ if (t1)
+ for (; it.moveNext$0();)
+ list.push(it.get$current(it));
+ else
+ for (i = start; i < end; ++i) {
+ if (!it.moveNext$0())
+ throw H.wrapException(P.RangeError$range(end, start, i, _null, _null));
+ list.push(it.get$current(it));
+ }
+ return H.Primitives_stringFromCharCodes(list);
+ },
+ RegExp_RegExp: function(source, caseSensitive) {
+ return new H.JSSyntaxRegExp(source, H.JSSyntaxRegExp_makeNative(source, false, caseSensitive, false, false, false));
+ },
+ identical: function(a, b) {
+ return a == null ? b == null : a === b;
+ },
+ StringBuffer__writeAll: function(string, objects, separator) {
+ var iterator = J.get$iterator$ax(objects);
+ if (!iterator.moveNext$0())
+ return string;
+ if (separator.length === 0) {
+ do
+ string += H.S(iterator.get$current(iterator));
+ while (iterator.moveNext$0());
+ } else {
+ string += H.S(iterator.get$current(iterator));
+ for (; iterator.moveNext$0();)
+ string = string + separator + H.S(iterator.get$current(iterator));
+ }
+ return string;
+ },
+ NoSuchMethodError$: function(receiver, memberName, positionalArguments, namedArguments) {
+ return new P.NoSuchMethodError(receiver, memberName, positionalArguments, namedArguments);
+ },
+ Uri_base: function() {
+ var uri = H.Primitives_currentUri();
+ if (uri != null)
+ return P.Uri_parse(uri);
+ throw H.wrapException(P.UnsupportedError$("'Uri.base' is not supported"));
+ },
+ _Uri__uriEncode: function(canonicalTable, text, encoding, spaceToPlus) {
+ var t1, bytes, i, t2, byte,
+ _s16_ = "0123456789ABCDEF";
+ if (encoding === C.C_Utf8Codec) {
+ t1 = $.$get$_Uri__needsNoEncoding()._nativeRegExp;
+ if (typeof text != "string")
+ H.throwExpression(H.argumentErrorValue(text));
+ t1 = t1.test(text);
+ } else
+ t1 = false;
+ if (t1)
+ return text;
+ bytes = encoding.encode$1(text);
+ for (t1 = J.getInterceptor$asx(bytes), i = 0, t2 = ""; i < t1.get$length(bytes); ++i) {
+ byte = t1.$index(bytes, i);
+ if (byte < 128 && (canonicalTable[C.JSInt_methods._shrOtherPositive$1(byte, 4)] & 1 << (byte & 15)) !== 0)
+ t2 += H.Primitives_stringFromCharCode(byte);
+ else
+ t2 = spaceToPlus && byte === 32 ? t2 + "+" : t2 + "%" + _s16_[C.JSInt_methods._shrOtherPositive$1(byte, 4) & 15] + _s16_[byte & 15];
+ }
+ return t2.charCodeAt(0) == 0 ? t2 : t2;
+ },
+ StackTrace_current: function() {
+ var stackTrace, exception;
+ if ($.$get$_hasErrorStackProperty())
+ return H.getTraceFromException(new Error());
+ try {
+ throw H.wrapException("");
+ } catch (exception) {
+ H.unwrapException(exception);
+ stackTrace = H.getTraceFromException(exception);
+ return stackTrace;
+ }
+ },
+ Comparable_compare: function(a, b) {
+ return J.compareTo$1$ns(a, b);
+ },
+ DateTime$_withValue: function(_value, isUtc) {
+ var t1;
+ if (Math.abs(_value) <= 864e13)
+ t1 = false;
+ else
+ t1 = true;
+ if (t1)
+ H.throwExpression(P.ArgumentError$("DateTime is outside valid range: " + _value));
+ P.ArgumentError_checkNotNull(isUtc, "isUtc");
+ return new P.DateTime(_value, isUtc);
+ },
+ DateTime__fourDigits: function(n) {
+ var absN = Math.abs(n),
+ sign = n < 0 ? "-" : "";
+ if (absN >= 1000)
+ return "" + n;
+ if (absN >= 100)
+ return sign + "0" + absN;
+ if (absN >= 10)
+ return sign + "00" + absN;
+ return sign + "000" + absN;
+ },
+ DateTime__threeDigits: function(n) {
+ if (n >= 100)
+ return "" + n;
+ if (n >= 10)
+ return "0" + n;
+ return "00" + n;
+ },
+ DateTime__twoDigits: function(n) {
+ if (n >= 10)
+ return "" + n;
+ return "0" + n;
+ },
+ Duration$: function(microseconds, milliseconds, seconds) {
+ return new P.Duration(1000000 * seconds + 1000 * milliseconds + microseconds);
+ },
+ Error_safeToString: function(object) {
+ if (typeof object == "number" || H._isBool(object) || null == object)
+ return J.toString$0$(object);
+ if (typeof object == "string")
+ return JSON.stringify(object);
+ return P.Error__objectToString(object);
+ },
+ AssertionError$: function(message) {
+ return new P.AssertionError(message);
+ },
+ ArgumentError$: function(message) {
+ return new P.ArgumentError(false, null, null, message);
+ },
+ ArgumentError$value: function(value, $name, message) {
+ return new P.ArgumentError(true, value, $name, message);
+ },
+ ArgumentError_checkNotNull: function(argument, $name) {
+ if (argument == null)
+ throw H.wrapException(new P.ArgumentError(false, null, $name, "Must not be null"));
+ return argument;
+ },
+ RangeError$: function(message) {
+ var _null = null;
+ return new P.RangeError(_null, _null, false, _null, _null, message);
+ },
+ RangeError$value: function(value, $name, message) {
+ return new P.RangeError(null, null, true, value, $name, message == null ? "Value not in range" : message);
+ },
+ RangeError$range: function(invalidValue, minValue, maxValue, $name, message) {
+ return new P.RangeError(minValue, maxValue, true, invalidValue, $name, "Invalid value");
+ },
+ RangeError_checkValueInInterval: function(value, minValue, maxValue, $name) {
+ if (value < minValue || value > maxValue)
+ throw H.wrapException(P.RangeError$range(value, minValue, maxValue, $name, null));
+ return value;
+ },
+ RangeError_checkValidIndex: function(index, indexable, $name, $length) {
+ if ($length == null)
+ $length = indexable.get$length(indexable);
+ if (0 > index || index >= $length)
+ throw H.wrapException(P.IndexError$(index, indexable, $name == null ? "index" : $name, null, $length));
+ return index;
+ },
+ RangeError_checkValidRange: function(start, end, $length) {
+ if (0 > start || start > $length)
+ throw H.wrapException(P.RangeError$range(start, 0, $length, "start", null));
+ if (end != null) {
+ if (start > end || end > $length)
+ throw H.wrapException(P.RangeError$range(end, start, $length, "end", null));
+ return end;
+ }
+ return $length;
+ },
+ RangeError_checkNotNegative: function(value, $name) {
+ if (value < 0)
+ throw H.wrapException(P.RangeError$range(value, 0, null, $name, null));
+ return value;
+ },
+ IndexError$: function(invalidValue, indexable, $name, message, $length) {
+ var t1 = $length == null ? J.get$length$asx(indexable) : $length;
+ return new P.IndexError(t1, true, invalidValue, $name, "Index out of range");
+ },
+ UnsupportedError$: function(message) {
+ return new P.UnsupportedError(message);
+ },
+ UnimplementedError$: function(message) {
+ return new P.UnimplementedError(message);
+ },
+ StateError$: function(message) {
+ return new P.StateError(message);
+ },
+ ConcurrentModificationError$: function(modifiedObject) {
+ return new P.ConcurrentModificationError(modifiedObject);
+ },
+ Exception_Exception: function(message) {
+ return new P._Exception(message);
+ },
+ FormatException$: function(message, source, offset) {
+ return new P.FormatException(message, source, offset);
+ },
+ Map_castFrom: function(source, $K, $V, K2, V2) {
+ return new H.CastMap(source, $K._eval$1("@<0>")._bind$1($V)._bind$1(K2)._bind$1(V2)._eval$1("CastMap<1,2,3,4>"));
+ },
+ print: function(object) {
+ H.printString(J.toString$0$(object));
+ },
+ Stopwatch$: function() {
+ $.$get$Stopwatch__frequency();
+ return new P.Stopwatch();
+ },
+ _combineSurrogatePair: function(start, end) {
+ return 65536 + ((start & 1023) << 10) + (end & 1023);
+ },
+ Uri_parse: function(uri) {
+ var delta, indices, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, isSimple, scheme, t1, t2, schemeAuth, queryStart0, pathStart0, userInfoStart, userInfo, host, portNumber, port, path, query, _null = null,
+ end = uri.length;
+ if (end >= 5) {
+ delta = ((J._codeUnitAt$1$s(uri, 4) ^ 58) * 3 | C.JSString_methods._codeUnitAt$1(uri, 0) ^ 100 | C.JSString_methods._codeUnitAt$1(uri, 1) ^ 97 | C.JSString_methods._codeUnitAt$1(uri, 2) ^ 116 | C.JSString_methods._codeUnitAt$1(uri, 3) ^ 97) >>> 0;
+ if (delta === 0)
+ return P.UriData__parse(end < end ? C.JSString_methods.substring$2(uri, 0, end) : uri, 5, _null).get$uri();
+ else if (delta === 32)
+ return P.UriData__parse(C.JSString_methods.substring$2(uri, 5, end), 0, _null).get$uri();
+ }
+ indices = P.List_List$filled(8, 0, false, type$.int);
+ indices[0] = 0;
+ indices[1] = -1;
+ indices[2] = -1;
+ indices[7] = -1;
+ indices[3] = 0;
+ indices[4] = 0;
+ indices[5] = end;
+ indices[6] = end;
+ if (P._scan(uri, 0, end, 0, indices) >= 14)
+ indices[7] = end;
+ schemeEnd = indices[1];
+ if (schemeEnd >= 0)
+ if (P._scan(uri, 0, schemeEnd, 20, indices) === 20)
+ indices[7] = schemeEnd;
+ hostStart = indices[2] + 1;
+ portStart = indices[3];
+ pathStart = indices[4];
+ queryStart = indices[5];
+ fragmentStart = indices[6];
+ if (fragmentStart < queryStart)
+ queryStart = fragmentStart;
+ if (pathStart < hostStart)
+ pathStart = queryStart;
+ else if (pathStart <= schemeEnd)
+ pathStart = schemeEnd + 1;
+ if (portStart < hostStart)
+ portStart = pathStart;
+ isSimple = indices[7] < 0;
+ if (isSimple)
+ if (hostStart > schemeEnd + 3) {
+ scheme = _null;
+ isSimple = false;
+ } else {
+ t1 = portStart > 0;
+ if (t1 && portStart + 1 === pathStart) {
+ scheme = _null;
+ isSimple = false;
+ } else {
+ if (!(queryStart < end && queryStart === pathStart + 2 && J.startsWith$2$s(uri, "..", pathStart)))
+ t2 = queryStart > pathStart + 2 && J.startsWith$2$s(uri, "/..", queryStart - 3);
+ else
+ t2 = true;
+ if (t2) {
+ scheme = _null;
+ isSimple = false;
+ } else {
+ if (schemeEnd === 4)
+ if (J.startsWith$2$s(uri, "file", 0)) {
+ if (hostStart <= 0) {
+ if (!C.JSString_methods.startsWith$2(uri, "/", pathStart)) {
+ schemeAuth = "file:///";
+ delta = 3;
+ } else {
+ schemeAuth = "file://";
+ delta = 2;
+ }
+ uri = schemeAuth + C.JSString_methods.substring$2(uri, pathStart, end);
+ schemeEnd -= 0;
+ t1 = delta - 0;
+ queryStart += t1;
+ fragmentStart += t1;
+ end = uri.length;
+ hostStart = 7;
+ portStart = 7;
+ pathStart = 7;
+ } else if (pathStart === queryStart) {
+ ++fragmentStart;
+ queryStart0 = queryStart + 1;
+ uri = C.JSString_methods.replaceRange$3(uri, pathStart, queryStart, "/");
+ ++end;
+ queryStart = queryStart0;
+ }
+ scheme = "file";
+ } else if (C.JSString_methods.startsWith$2(uri, "http", 0)) {
+ if (t1 && portStart + 3 === pathStart && C.JSString_methods.startsWith$2(uri, "80", portStart + 1)) {
+ fragmentStart -= 3;
+ pathStart0 = pathStart - 3;
+ queryStart -= 3;
+ uri = C.JSString_methods.replaceRange$3(uri, portStart, pathStart, "");
+ end -= 3;
+ pathStart = pathStart0;
+ }
+ scheme = "http";
+ } else
+ scheme = _null;
+ else if (schemeEnd === 5 && J.startsWith$2$s(uri, "https", 0)) {
+ if (t1 && portStart + 4 === pathStart && J.startsWith$2$s(uri, "443", portStart + 1)) {
+ fragmentStart -= 4;
+ pathStart0 = pathStart - 4;
+ queryStart -= 4;
+ uri = J.replaceRange$3$asx(uri, portStart, pathStart, "");
+ end -= 3;
+ pathStart = pathStart0;
+ }
+ scheme = "https";
+ } else
+ scheme = _null;
+ isSimple = true;
+ }
+ }
+ }
+ else
+ scheme = _null;
+ if (isSimple) {
+ t1 = uri.length;
+ if (end < t1) {
+ uri = J.substring$2$s(uri, 0, end);
+ schemeEnd -= 0;
+ hostStart -= 0;
+ portStart -= 0;
+ pathStart -= 0;
+ queryStart -= 0;
+ fragmentStart -= 0;
+ }
+ return new P._SimpleUri(uri, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme);
+ }
+ if (scheme == null)
+ if (schemeEnd > 0)
+ scheme = P._Uri__makeScheme(uri, 0, schemeEnd);
+ else {
+ if (schemeEnd === 0) {
+ P._Uri__fail(uri, 0, "Invalid empty scheme");
+ H.ReachabilityError$(string$.x60null_t);
+ }
+ scheme = "";
+ }
+ if (hostStart > 0) {
+ userInfoStart = schemeEnd + 3;
+ userInfo = userInfoStart < hostStart ? P._Uri__makeUserInfo(uri, userInfoStart, hostStart - 1) : "";
+ host = P._Uri__makeHost(uri, hostStart, portStart, false);
+ t1 = portStart + 1;
+ if (t1 < pathStart) {
+ portNumber = H.Primitives_parseInt(J.substring$2$s(uri, t1, pathStart), _null);
+ port = P._Uri__makePort(portNumber == null ? H.throwExpression(P.FormatException$("Invalid port", uri, t1)) : portNumber, scheme);
+ } else
+ port = _null;
+ } else {
+ port = _null;
+ host = port;
+ userInfo = "";
+ }
+ path = P._Uri__makePath(uri, pathStart, queryStart, _null, scheme, host != null);
+ query = queryStart < fragmentStart ? P._Uri__makeQuery(uri, queryStart + 1, fragmentStart, _null) : _null;
+ return new P._Uri(scheme, userInfo, host, port, path, query, fragmentStart < end ? P._Uri__makeFragment(uri, fragmentStart + 1, end) : _null);
+ },
+ Uri_decodeComponent: function(encodedComponent) {
+ return P._Uri__uriDecode(encodedComponent, 0, encodedComponent.length, C.C_Utf8Codec, false);
+ },
+ Uri__parseIPv4Address: function(host, start, end) {
+ var i, partStart, partIndex, char, part, partIndex0,
+ _s43_ = "IPv4 address should contain exactly 4 parts",
+ _s37_ = "each part must be in the range 0..255",
+ error = new P.Uri__parseIPv4Address_error(host),
+ result = new Uint8Array(4);
+ for (i = start, partStart = i, partIndex = 0; i < end; ++i) {
+ char = C.JSString_methods.codeUnitAt$1(host, i);
+ if (char !== 46) {
+ if ((char ^ 48) > 9)
+ error.call$2("invalid character", i);
+ } else {
+ if (partIndex === 3)
+ error.call$2(_s43_, i);
+ part = P.int_parse(C.JSString_methods.substring$2(host, partStart, i), null);
+ if (part > 255)
+ error.call$2(_s37_, partStart);
+ partIndex0 = partIndex + 1;
+ result[partIndex] = part;
+ partStart = i + 1;
+ partIndex = partIndex0;
+ }
+ }
+ if (partIndex !== 3)
+ error.call$2(_s43_, end);
+ part = P.int_parse(C.JSString_methods.substring$2(host, partStart, end), null);
+ if (part > 255)
+ error.call$2(_s37_, partStart);
+ result[partIndex] = part;
+ return result;
+ },
+ Uri_parseIPv6Address: function(host, start, end) {
+ var parts, i, partStart, wildcardSeen, seenDot, char, atEnd, t1, last, bytes, wildCardLength, index, value, j,
+ error = new P.Uri_parseIPv6Address_error(host),
+ parseHex = new P.Uri_parseIPv6Address_parseHex(error, host);
+ if (host.length < 2)
+ error.call$1("address is too short");
+ parts = H.setRuntimeTypeInfo([], type$.JSArray_int);
+ for (i = start, partStart = i, wildcardSeen = false, seenDot = false; i < end; ++i) {
+ char = C.JSString_methods.codeUnitAt$1(host, i);
+ if (char === 58) {
+ if (i === start) {
+ ++i;
+ if (C.JSString_methods.codeUnitAt$1(host, i) !== 58)
+ error.call$2("invalid start colon.", i);
+ partStart = i;
+ }
+ if (i === partStart) {
+ if (wildcardSeen)
+ error.call$2("only one wildcard `::` is allowed", i);
+ parts.push(-1);
+ wildcardSeen = true;
+ } else
+ parts.push(parseHex.call$2(partStart, i));
+ partStart = i + 1;
+ } else if (char === 46)
+ seenDot = true;
+ }
+ if (parts.length === 0)
+ error.call$1("too few parts");
+ atEnd = partStart === end;
+ t1 = C.JSArray_methods.get$last(parts);
+ if (atEnd && t1 !== -1)
+ error.call$2("expected a part after last `:`", end);
+ if (!atEnd)
+ if (!seenDot)
+ parts.push(parseHex.call$2(partStart, end));
+ else {
+ last = P.Uri__parseIPv4Address(host, partStart, end);
+ parts.push((last[0] << 8 | last[1]) >>> 0);
+ parts.push((last[2] << 8 | last[3]) >>> 0);
+ }
+ if (wildcardSeen) {
+ if (parts.length > 7)
+ error.call$1("an address with a wildcard must have less than 7 parts");
+ } else if (parts.length !== 8)
+ error.call$1("an address without a wildcard must contain exactly 8 parts");
+ bytes = new Uint8Array(16);
+ for (t1 = parts.length, wildCardLength = 9 - t1, i = 0, index = 0; i < t1; ++i) {
+ value = parts[i];
+ if (value === -1)
+ for (j = 0; j < wildCardLength; ++j) {
+ bytes[index] = 0;
+ bytes[index + 1] = 0;
+ index += 2;
+ }
+ else {
+ bytes[index] = C.JSInt_methods._shrOtherPositive$1(value, 8);
+ bytes[index + 1] = value & 255;
+ index += 2;
+ }
+ }
+ return bytes;
+ },
+ _Uri__Uri: function(path) {
+ var t1, hasAuthority, t2, _null = null,
+ userInfo = P._Uri__makeUserInfo(_null, 0, 0),
+ host = P._Uri__makeHost(_null, 0, 0, false),
+ query = P._Uri__makeQuery(_null, 0, 0, _null),
+ fragment = P._Uri__makeFragment(_null, 0, 0),
+ port = P._Uri__makePort(_null, "");
+ if (host == null)
+ t1 = userInfo.length !== 0 || port != null || false;
+ else
+ t1 = false;
+ if (t1)
+ host = "";
+ t1 = host == null;
+ hasAuthority = !t1;
+ path = P._Uri__makePath(path, 0, path == null ? 0 : path.length, _null, "", hasAuthority);
+ t2 = t1 && !C.JSString_methods.startsWith$1(path, "/");
+ if (t2)
+ path = P._Uri__normalizeRelativePath(path, hasAuthority);
+ else
+ path = P._Uri__removeDotSegments(path);
+ return new P._Uri("", userInfo, t1 && C.JSString_methods.startsWith$1(path, "//") ? "" : host, port, path, query, fragment);
+ },
+ _Uri__defaultPort: function(scheme) {
+ if (scheme === "http")
+ return 80;
+ if (scheme === "https")
+ return 443;
+ return 0;
+ },
+ _Uri__fail: function(uri, index, message) {
+ throw H.wrapException(P.FormatException$(message, uri, index));
+ },
+ _Uri__checkNonWindowsPathReservedCharacters: function(segments, argumentError) {
+ var t1, _i, segment, t2, t3;
+ for (t1 = segments.length, _i = 0; _i < t1; ++_i) {
+ segment = segments[_i];
+ segment.toString;
+ t2 = J.getInterceptor$asx(segment);
+ t3 = t2.get$length(segment);
+ if (0 > t3)
+ H.throwExpression(P.RangeError$range(0, 0, t2.get$length(segment), null, null));
+ if (H.stringContainsUnchecked(segment, "/", 0)) {
+ t1 = P.UnsupportedError$("Illegal path character " + H.S(segment));
+ throw H.wrapException(t1);
+ }
+ }
+ },
+ _Uri__checkWindowsPathReservedCharacters: function(segments, argumentError, firstSegment) {
+ var t1, cur, t2;
+ for (t1 = H.SubListIterable$(segments, firstSegment, null, H._arrayInstanceType(segments)._precomputed1), t1 = new H.ListIterator(t1, t1.get$length(t1)); t1.moveNext$0();) {
+ cur = t1._current;
+ t2 = P.RegExp_RegExp('["*/:<>?\\\\|]', true);
+ cur.toString;
+ if (H.stringContainsUnchecked(cur, t2, 0)) {
+ t1 = P.UnsupportedError$("Illegal character in path: " + cur);
+ throw H.wrapException(t1);
+ }
+ }
+ },
+ _Uri__checkWindowsDriveLetter: function(charCode, argumentError) {
+ var t1;
+ if (!(65 <= charCode && charCode <= 90))
+ t1 = 97 <= charCode && charCode <= 122;
+ else
+ t1 = true;
+ if (t1)
+ return;
+ t1 = P.UnsupportedError$("Illegal drive letter " + P.String_String$fromCharCode(charCode));
+ throw H.wrapException(t1);
+ },
+ _Uri__makePort: function(port, scheme) {
+ if (port != null && port === P._Uri__defaultPort(scheme))
+ return null;
+ return port;
+ },
+ _Uri__makeHost: function(host, start, end, strictIPv6) {
+ var t1, t2, index, zoneIDstart, zoneID, i;
+ if (host == null)
+ return null;
+ if (start === end)
+ return "";
+ if (C.JSString_methods.codeUnitAt$1(host, start) === 91) {
+ t1 = end - 1;
+ if (C.JSString_methods.codeUnitAt$1(host, t1) !== 93) {
+ P._Uri__fail(host, start, "Missing end `]` to match `[` in host");
+ H.ReachabilityError$(string$.x60null_t);
+ }
+ t2 = start + 1;
+ index = P._Uri__checkZoneID(host, t2, t1);
+ if (index < t1) {
+ zoneIDstart = index + 1;
+ zoneID = P._Uri__normalizeZoneID(host, C.JSString_methods.startsWith$2(host, "25", zoneIDstart) ? index + 3 : zoneIDstart, t1, "%25");
+ } else
+ zoneID = "";
+ P.Uri_parseIPv6Address(host, t2, index);
+ return C.JSString_methods.substring$2(host, start, index).toLowerCase() + zoneID + "]";
+ }
+ for (i = start; i < end; ++i)
+ if (C.JSString_methods.codeUnitAt$1(host, i) === 58) {
+ index = C.JSString_methods.indexOf$2(host, "%", start);
+ index = index >= start && index < end ? index : end;
+ if (index < end) {
+ zoneIDstart = index + 1;
+ zoneID = P._Uri__normalizeZoneID(host, C.JSString_methods.startsWith$2(host, "25", zoneIDstart) ? index + 3 : zoneIDstart, end, "%25");
+ } else
+ zoneID = "";
+ P.Uri_parseIPv6Address(host, start, index);
+ return "[" + C.JSString_methods.substring$2(host, start, index) + zoneID + "]";
+ }
+ return P._Uri__normalizeRegName(host, start, end);
+ },
+ _Uri__checkZoneID: function(host, start, end) {
+ var index = C.JSString_methods.indexOf$2(host, "%", start);
+ return index >= start && index < end ? index : end;
+ },
+ _Uri__normalizeZoneID: function(host, start, end, prefix) {
+ var index, sectionStart, isNormalized, char, replacement, t1, t2, tail, sourceLength, slice,
+ buffer = prefix !== "" ? new P.StringBuffer(prefix) : null;
+ for (index = start, sectionStart = index, isNormalized = true; index < end;) {
+ char = C.JSString_methods.codeUnitAt$1(host, index);
+ if (char === 37) {
+ replacement = P._Uri__normalizeEscape(host, index, true);
+ t1 = replacement == null;
+ if (t1 && isNormalized) {
+ index += 3;
+ continue;
+ }
+ if (buffer == null)
+ buffer = new P.StringBuffer("");
+ t2 = buffer._contents += C.JSString_methods.substring$2(host, sectionStart, index);
+ if (t1)
+ replacement = C.JSString_methods.substring$2(host, index, index + 3);
+ else if (replacement === "%") {
+ P._Uri__fail(host, index, "ZoneID should not contain % anymore");
+ H.ReachabilityError$(string$.x60null_t);
+ }
+ buffer._contents = t2 + replacement;
+ index += 3;
+ sectionStart = index;
+ isNormalized = true;
+ } else if (char < 127 && (C.List_nxB[char >>> 4] & 1 << (char & 15)) !== 0) {
+ if (isNormalized && 65 <= char && 90 >= char) {
+ if (buffer == null)
+ buffer = new P.StringBuffer("");
+ if (sectionStart < index) {
+ buffer._contents += C.JSString_methods.substring$2(host, sectionStart, index);
+ sectionStart = index;
+ }
+ isNormalized = false;
+ }
+ ++index;
+ } else {
+ if ((char & 64512) === 55296 && index + 1 < end) {
+ tail = C.JSString_methods.codeUnitAt$1(host, index + 1);
+ if ((tail & 64512) === 56320) {
+ char = (char & 1023) << 10 | tail & 1023 | 65536;
+ sourceLength = 2;
+ } else
+ sourceLength = 1;
+ } else
+ sourceLength = 1;
+ slice = C.JSString_methods.substring$2(host, sectionStart, index);
+ if (buffer == null) {
+ buffer = new P.StringBuffer("");
+ t1 = buffer;
+ } else
+ t1 = buffer;
+ t1._contents += slice;
+ t1._contents += P._Uri__escapeChar(char);
+ index += sourceLength;
+ sectionStart = index;
+ }
+ }
+ if (buffer == null)
+ return C.JSString_methods.substring$2(host, start, end);
+ if (sectionStart < end)
+ buffer._contents += C.JSString_methods.substring$2(host, sectionStart, end);
+ t1 = buffer._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ _Uri__normalizeRegName: function(host, start, end) {
+ var index, sectionStart, buffer, isNormalized, char, replacement, t1, slice, t2, sourceLength, tail;
+ for (index = start, sectionStart = index, buffer = null, isNormalized = true; index < end;) {
+ char = C.JSString_methods.codeUnitAt$1(host, index);
+ if (char === 37) {
+ replacement = P._Uri__normalizeEscape(host, index, true);
+ t1 = replacement == null;
+ if (t1 && isNormalized) {
+ index += 3;
+ continue;
+ }
+ if (buffer == null)
+ buffer = new P.StringBuffer("");
+ slice = C.JSString_methods.substring$2(host, sectionStart, index);
+ t2 = buffer._contents += !isNormalized ? slice.toLowerCase() : slice;
+ if (t1) {
+ replacement = C.JSString_methods.substring$2(host, index, index + 3);
+ sourceLength = 3;
+ } else if (replacement === "%") {
+ replacement = "%25";
+ sourceLength = 1;
+ } else
+ sourceLength = 3;
+ buffer._contents = t2 + replacement;
+ index += sourceLength;
+ sectionStart = index;
+ isNormalized = true;
+ } else if (char < 127 && (C.List_qNA[char >>> 4] & 1 << (char & 15)) !== 0) {
+ if (isNormalized && 65 <= char && 90 >= char) {
+ if (buffer == null)
+ buffer = new P.StringBuffer("");
+ if (sectionStart < index) {
+ buffer._contents += C.JSString_methods.substring$2(host, sectionStart, index);
+ sectionStart = index;
+ }
+ isNormalized = false;
+ }
+ ++index;
+ } else if (char <= 93 && (C.List_2Vk[char >>> 4] & 1 << (char & 15)) !== 0) {
+ P._Uri__fail(host, index, "Invalid character");
+ H.ReachabilityError$(string$.x60null_t);
+ } else {
+ if ((char & 64512) === 55296 && index + 1 < end) {
+ tail = C.JSString_methods.codeUnitAt$1(host, index + 1);
+ if ((tail & 64512) === 56320) {
+ char = (char & 1023) << 10 | tail & 1023 | 65536;
+ sourceLength = 2;
+ } else
+ sourceLength = 1;
+ } else
+ sourceLength = 1;
+ slice = C.JSString_methods.substring$2(host, sectionStart, index);
+ if (!isNormalized)
+ slice = slice.toLowerCase();
+ if (buffer == null) {
+ buffer = new P.StringBuffer("");
+ t1 = buffer;
+ } else
+ t1 = buffer;
+ t1._contents += slice;
+ t1._contents += P._Uri__escapeChar(char);
+ index += sourceLength;
+ sectionStart = index;
+ }
+ }
+ if (buffer == null)
+ return C.JSString_methods.substring$2(host, start, end);
+ if (sectionStart < end) {
+ slice = C.JSString_methods.substring$2(host, sectionStart, end);
+ buffer._contents += !isNormalized ? slice.toLowerCase() : slice;
+ }
+ t1 = buffer._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ _Uri__makeScheme: function(scheme, start, end) {
+ var i, containsUpperCase, codeUnit,
+ _s67_ = string$.x60null_t;
+ if (start === end)
+ return "";
+ if (!P._Uri__isAlphabeticCharacter(J.getInterceptor$s(scheme)._codeUnitAt$1(scheme, start))) {
+ P._Uri__fail(scheme, start, "Scheme not starting with alphabetic character");
+ H.ReachabilityError$(_s67_);
+ }
+ for (i = start, containsUpperCase = false; i < end; ++i) {
+ codeUnit = C.JSString_methods._codeUnitAt$1(scheme, i);
+ if (!(codeUnit < 128 && (C.List_JYB[codeUnit >>> 4] & 1 << (codeUnit & 15)) !== 0)) {
+ P._Uri__fail(scheme, i, "Illegal scheme character");
+ H.ReachabilityError$(_s67_);
+ }
+ if (65 <= codeUnit && codeUnit <= 90)
+ containsUpperCase = true;
+ }
+ scheme = C.JSString_methods.substring$2(scheme, start, end);
+ return P._Uri__canonicalizeScheme(containsUpperCase ? scheme.toLowerCase() : scheme);
+ },
+ _Uri__canonicalizeScheme: function(scheme) {
+ if (scheme === "http")
+ return "http";
+ if (scheme === "file")
+ return "file";
+ if (scheme === "https")
+ return "https";
+ if (scheme === "package")
+ return "package";
+ return scheme;
+ },
+ _Uri__makeUserInfo: function(userInfo, start, end) {
+ if (userInfo == null)
+ return "";
+ return P._Uri__normalizeOrSubstring(userInfo, start, end, C.List_gRj, false);
+ },
+ _Uri__makePath: function(path, start, end, pathSegments, scheme, hasAuthority) {
+ var result,
+ isFile = scheme === "file",
+ ensureLeadingSlash = isFile || hasAuthority;
+ if (path == null)
+ return isFile ? "/" : "";
+ else
+ result = P._Uri__normalizeOrSubstring(path, start, end, C.List_qg4, true);
+ if (result.length === 0) {
+ if (isFile)
+ return "/";
+ } else if (ensureLeadingSlash && !C.JSString_methods.startsWith$1(result, "/"))
+ result = "/" + result;
+ return P._Uri__normalizePath(result, scheme, hasAuthority);
+ },
+ _Uri__normalizePath: function(path, scheme, hasAuthority) {
+ var t1 = scheme.length === 0;
+ if (t1 && !hasAuthority && !C.JSString_methods.startsWith$1(path, "/"))
+ return P._Uri__normalizeRelativePath(path, !t1 || hasAuthority);
+ return P._Uri__removeDotSegments(path);
+ },
+ _Uri__makeQuery: function(query, start, end, queryParameters) {
+ if (query != null)
+ return P._Uri__normalizeOrSubstring(query, start, end, C.List_CVk, true);
+ return null;
+ },
+ _Uri__makeFragment: function(fragment, start, end) {
+ if (fragment == null)
+ return null;
+ return P._Uri__normalizeOrSubstring(fragment, start, end, C.List_CVk, true);
+ },
+ _Uri__normalizeEscape: function(source, index, lowerCase) {
+ var firstDigit, secondDigit, firstDigitValue, secondDigitValue, value,
+ t1 = index + 2;
+ if (t1 >= source.length)
+ return "%";
+ firstDigit = C.JSString_methods.codeUnitAt$1(source, index + 1);
+ secondDigit = C.JSString_methods.codeUnitAt$1(source, t1);
+ firstDigitValue = H.hexDigitValue(firstDigit);
+ secondDigitValue = H.hexDigitValue(secondDigit);
+ if (firstDigitValue < 0 || secondDigitValue < 0)
+ return "%";
+ value = firstDigitValue * 16 + secondDigitValue;
+ if (value < 127 && (C.List_nxB[C.JSInt_methods._shrOtherPositive$1(value, 4)] & 1 << (value & 15)) !== 0)
+ return H.Primitives_stringFromCharCode(lowerCase && 65 <= value && 90 >= value ? (value | 32) >>> 0 : value);
+ if (firstDigit >= 97 || secondDigit >= 97)
+ return C.JSString_methods.substring$2(source, index, index + 3).toUpperCase();
+ return null;
+ },
+ _Uri__escapeChar: function(char) {
+ var codeUnits, flag, encodedBytes, index, byte,
+ _s16_ = "0123456789ABCDEF";
+ if (char < 128) {
+ codeUnits = new Uint8Array(3);
+ codeUnits[0] = 37;
+ codeUnits[1] = C.JSString_methods._codeUnitAt$1(_s16_, char >>> 4);
+ codeUnits[2] = C.JSString_methods._codeUnitAt$1(_s16_, char & 15);
+ } else {
+ if (char > 2047)
+ if (char > 65535) {
+ flag = 240;
+ encodedBytes = 4;
+ } else {
+ flag = 224;
+ encodedBytes = 3;
+ }
+ else {
+ flag = 192;
+ encodedBytes = 2;
+ }
+ codeUnits = new Uint8Array(3 * encodedBytes);
+ for (index = 0; --encodedBytes, encodedBytes >= 0; flag = 128) {
+ byte = C.JSInt_methods._shrReceiverPositive$1(char, 6 * encodedBytes) & 63 | flag;
+ codeUnits[index] = 37;
+ codeUnits[index + 1] = C.JSString_methods._codeUnitAt$1(_s16_, byte >>> 4);
+ codeUnits[index + 2] = C.JSString_methods._codeUnitAt$1(_s16_, byte & 15);
+ index += 3;
+ }
+ }
+ return P.String_String$fromCharCodes(codeUnits, 0, null);
+ },
+ _Uri__normalizeOrSubstring: function(component, start, end, charTable, escapeDelimiters) {
+ var t1 = P._Uri__normalize(component, start, end, charTable, escapeDelimiters);
+ return t1 == null ? C.JSString_methods.substring$2(component, start, end) : t1;
+ },
+ _Uri__normalize: function(component, start, end, charTable, escapeDelimiters) {
+ var t1, t2, index, sectionStart, buffer, char, replacement, sourceLength, t3, tail, _null = null;
+ for (t1 = !escapeDelimiters, t2 = J.getInterceptor$s(component), index = start, sectionStart = index, buffer = _null; index < end;) {
+ char = t2.codeUnitAt$1(component, index);
+ if (char < 127 && (charTable[char >>> 4] & 1 << (char & 15)) !== 0)
+ ++index;
+ else {
+ if (char === 37) {
+ replacement = P._Uri__normalizeEscape(component, index, false);
+ if (replacement == null) {
+ index += 3;
+ continue;
+ }
+ if ("%" === replacement) {
+ replacement = "%25";
+ sourceLength = 1;
+ } else
+ sourceLength = 3;
+ } else if (t1 && char <= 93 && (C.List_2Vk[char >>> 4] & 1 << (char & 15)) !== 0) {
+ P._Uri__fail(component, index, "Invalid character");
+ H.ReachabilityError$(string$.x60null_t);
+ sourceLength = _null;
+ replacement = sourceLength;
+ } else {
+ if ((char & 64512) === 55296) {
+ t3 = index + 1;
+ if (t3 < end) {
+ tail = C.JSString_methods.codeUnitAt$1(component, t3);
+ if ((tail & 64512) === 56320) {
+ char = (char & 1023) << 10 | tail & 1023 | 65536;
+ sourceLength = 2;
+ } else
+ sourceLength = 1;
+ } else
+ sourceLength = 1;
+ } else
+ sourceLength = 1;
+ replacement = P._Uri__escapeChar(char);
+ }
+ if (buffer == null) {
+ buffer = new P.StringBuffer("");
+ t3 = buffer;
+ } else
+ t3 = buffer;
+ t3._contents += C.JSString_methods.substring$2(component, sectionStart, index);
+ t3._contents += H.S(replacement);
+ index += sourceLength;
+ sectionStart = index;
+ }
+ }
+ if (buffer == null)
+ return _null;
+ if (sectionStart < end)
+ buffer._contents += t2.substring$2(component, sectionStart, end);
+ t1 = buffer._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ _Uri__mayContainDotSegments: function(path) {
+ if (C.JSString_methods.startsWith$1(path, "."))
+ return true;
+ return C.JSString_methods.indexOf$1(path, "/.") !== -1;
+ },
+ _Uri__removeDotSegments: function(path) {
+ var output, t1, t2, appendSlash, _i, segment;
+ if (!P._Uri__mayContainDotSegments(path))
+ return path;
+ output = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0; _i < t2; ++_i) {
+ segment = t1[_i];
+ if (J.$eq$(segment, "..")) {
+ if (output.length !== 0) {
+ output.pop();
+ if (output.length === 0)
+ output.push("");
+ }
+ appendSlash = true;
+ } else if ("." === segment)
+ appendSlash = true;
+ else {
+ output.push(segment);
+ appendSlash = false;
+ }
+ }
+ if (appendSlash)
+ output.push("");
+ return C.JSArray_methods.join$1(output, "/");
+ },
+ _Uri__normalizeRelativePath: function(path, allowScheme) {
+ var output, t1, t2, appendSlash, _i, segment;
+ if (!P._Uri__mayContainDotSegments(path))
+ return !allowScheme ? P._Uri__escapeScheme(path) : path;
+ output = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0; _i < t2; ++_i) {
+ segment = t1[_i];
+ if (".." === segment)
+ if (output.length !== 0 && C.JSArray_methods.get$last(output) !== "..") {
+ output.pop();
+ appendSlash = true;
+ } else {
+ output.push("..");
+ appendSlash = false;
+ }
+ else if ("." === segment)
+ appendSlash = true;
+ else {
+ output.push(segment);
+ appendSlash = false;
+ }
+ }
+ t1 = output.length;
+ if (t1 !== 0)
+ t1 = t1 === 1 && output[0].length === 0;
+ else
+ t1 = true;
+ if (t1)
+ return "./";
+ if (appendSlash || C.JSArray_methods.get$last(output) === "..")
+ output.push("");
+ if (!allowScheme)
+ output[0] = P._Uri__escapeScheme(output[0]);
+ return C.JSArray_methods.join$1(output, "/");
+ },
+ _Uri__escapeScheme: function(path) {
+ var i, char,
+ t1 = path.length;
+ if (t1 >= 2 && P._Uri__isAlphabeticCharacter(J._codeUnitAt$1$s(path, 0)))
+ for (i = 1; i < t1; ++i) {
+ char = C.JSString_methods._codeUnitAt$1(path, i);
+ if (char === 58)
+ return C.JSString_methods.substring$2(path, 0, i) + "%3A" + C.JSString_methods.substring$1(path, i + 1);
+ if (char > 127 || (C.List_JYB[char >>> 4] & 1 << (char & 15)) === 0)
+ break;
+ }
+ return path;
+ },
+ _Uri__toWindowsFilePath: function(uri) {
+ var hasDriveLetter, t2, host,
+ segments = uri.get$pathSegments(),
+ t1 = segments.length;
+ if (t1 > 0 && J.get$length$asx(segments[0]) === 2 && J.codeUnitAt$1$s(segments[0], 1) === 58) {
+ P._Uri__checkWindowsDriveLetter(J.codeUnitAt$1$s(segments[0], 0), false);
+ P._Uri__checkWindowsPathReservedCharacters(segments, false, 1);
+ hasDriveLetter = true;
+ } else {
+ P._Uri__checkWindowsPathReservedCharacters(segments, false, 0);
+ hasDriveLetter = false;
+ }
+ t2 = uri.get$hasAbsolutePath() && !hasDriveLetter ? "\\" : "";
+ if (uri.get$hasAuthority()) {
+ host = uri.get$host(uri);
+ if (host.length !== 0)
+ t2 = t2 + "\\" + host + "\\";
+ }
+ t2 = P.StringBuffer__writeAll(t2, segments, "\\");
+ t1 = hasDriveLetter && t1 === 1 ? t2 + "\\" : t2;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ _Uri__hexCharPairToByte: function(s, pos) {
+ var byte, i, charCode;
+ for (byte = 0, i = 0; i < 2; ++i) {
+ charCode = C.JSString_methods._codeUnitAt$1(s, pos + i);
+ if (48 <= charCode && charCode <= 57)
+ byte = byte * 16 + charCode - 48;
+ else {
+ charCode |= 32;
+ if (97 <= charCode && charCode <= 102)
+ byte = byte * 16 + charCode - 87;
+ else
+ throw H.wrapException(P.ArgumentError$("Invalid URL encoding"));
+ }
+ }
+ return byte;
+ },
+ _Uri__uriDecode: function(text, start, end, encoding, plusToSpace) {
+ var simple, codeUnit, t2, bytes,
+ t1 = J.getInterceptor$s(text),
+ i = start;
+ while (true) {
+ if (!(i < end)) {
+ simple = true;
+ break;
+ }
+ codeUnit = t1._codeUnitAt$1(text, i);
+ if (codeUnit <= 127)
+ if (codeUnit !== 37)
+ t2 = false;
+ else
+ t2 = true;
+ else
+ t2 = true;
+ if (t2) {
+ simple = false;
+ break;
+ }
+ ++i;
+ }
+ if (simple) {
+ if (C.C_Utf8Codec !== encoding)
+ t2 = false;
+ else
+ t2 = true;
+ if (t2)
+ return t1.substring$2(text, start, end);
+ else
+ bytes = new H.CodeUnits(t1.substring$2(text, start, end));
+ } else {
+ bytes = H.setRuntimeTypeInfo([], type$.JSArray_int);
+ for (i = start; i < end; ++i) {
+ codeUnit = t1._codeUnitAt$1(text, i);
+ if (codeUnit > 127)
+ throw H.wrapException(P.ArgumentError$("Illegal percent encoding in URI"));
+ if (codeUnit === 37) {
+ if (i + 3 > text.length)
+ throw H.wrapException(P.ArgumentError$("Truncated URI"));
+ bytes.push(P._Uri__hexCharPairToByte(text, i + 1));
+ i += 2;
+ } else
+ bytes.push(codeUnit);
+ }
+ }
+ return encoding.decode$1(0, bytes);
+ },
+ _Uri__isAlphabeticCharacter: function(codeUnit) {
+ var lowerCase = codeUnit | 32;
+ return 97 <= lowerCase && lowerCase <= 122;
+ },
+ UriData__parse: function(text, start, sourceUri) {
+ var t1, i, slashIndex, char, equalsIndex, lastSeparator, t2, data,
+ _s17_ = "Invalid MIME type",
+ indices = H.setRuntimeTypeInfo([start - 1], type$.JSArray_int);
+ for (t1 = text.length, i = start, slashIndex = -1, char = null; i < t1; ++i) {
+ char = C.JSString_methods._codeUnitAt$1(text, i);
+ if (char === 44 || char === 59)
+ break;
+ if (char === 47) {
+ if (slashIndex < 0) {
+ slashIndex = i;
+ continue;
+ }
+ throw H.wrapException(P.FormatException$(_s17_, text, i));
+ }
+ }
+ if (slashIndex < 0 && i > start)
+ throw H.wrapException(P.FormatException$(_s17_, text, i));
+ for (; char !== 44;) {
+ indices.push(i);
+ ++i;
+ for (equalsIndex = -1; i < t1; ++i) {
+ char = C.JSString_methods._codeUnitAt$1(text, i);
+ if (char === 61) {
+ if (equalsIndex < 0)
+ equalsIndex = i;
+ } else if (char === 59 || char === 44)
+ break;
+ }
+ if (equalsIndex >= 0)
+ indices.push(equalsIndex);
+ else {
+ lastSeparator = C.JSArray_methods.get$last(indices);
+ if (char !== 44 || i !== lastSeparator + 7 || !C.JSString_methods.startsWith$2(text, "base64", lastSeparator + 1))
+ throw H.wrapException(P.FormatException$("Expecting '='", text, i));
+ break;
+ }
+ }
+ indices.push(i);
+ t2 = i + 1;
+ if ((indices.length & 1) === 1)
+ text = C.C_Base64Codec.normalize$3(0, text, t2, t1);
+ else {
+ data = P._Uri__normalize(text, t2, t1, C.List_CVk, true);
+ if (data != null)
+ text = C.JSString_methods.replaceRange$3(text, t2, t1, data);
+ }
+ return new P.UriData(text, indices, sourceUri);
+ },
+ _createTables: function() {
+ var _s77_ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=",
+ _s1_ = ".", _s1_0 = ":", _s1_1 = "/", _s1_2 = "?", _s1_3 = "#",
+ tables = P.List_List$generate(22, new P._createTables_closure(), true, type$.Uint8List),
+ t1 = new P._createTables_build(tables),
+ t2 = new P._createTables_setChars(),
+ t3 = new P._createTables_setRange(),
+ b = t1.call$2(0, 225);
+ t2.call$3(b, _s77_, 1);
+ t2.call$3(b, _s1_, 14);
+ t2.call$3(b, _s1_0, 34);
+ t2.call$3(b, _s1_1, 3);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(14, 225);
+ t2.call$3(b, _s77_, 1);
+ t2.call$3(b, _s1_, 15);
+ t2.call$3(b, _s1_0, 34);
+ t2.call$3(b, _s1_1, 234);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(15, 225);
+ t2.call$3(b, _s77_, 1);
+ t2.call$3(b, "%", 225);
+ t2.call$3(b, _s1_0, 34);
+ t2.call$3(b, _s1_1, 9);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(1, 225);
+ t2.call$3(b, _s77_, 1);
+ t2.call$3(b, _s1_0, 34);
+ t2.call$3(b, _s1_1, 10);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(2, 235);
+ t2.call$3(b, _s77_, 139);
+ t2.call$3(b, _s1_1, 131);
+ t2.call$3(b, _s1_, 146);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(3, 235);
+ t2.call$3(b, _s77_, 11);
+ t2.call$3(b, _s1_1, 68);
+ t2.call$3(b, _s1_, 18);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(4, 229);
+ t2.call$3(b, _s77_, 5);
+ t3.call$3(b, "AZ", 229);
+ t2.call$3(b, _s1_0, 102);
+ t2.call$3(b, "@", 68);
+ t2.call$3(b, "[", 232);
+ t2.call$3(b, _s1_1, 138);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(5, 229);
+ t2.call$3(b, _s77_, 5);
+ t3.call$3(b, "AZ", 229);
+ t2.call$3(b, _s1_0, 102);
+ t2.call$3(b, "@", 68);
+ t2.call$3(b, _s1_1, 138);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(6, 231);
+ t3.call$3(b, "19", 7);
+ t2.call$3(b, "@", 68);
+ t2.call$3(b, _s1_1, 138);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(7, 231);
+ t3.call$3(b, "09", 7);
+ t2.call$3(b, "@", 68);
+ t2.call$3(b, _s1_1, 138);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ t2.call$3(t1.call$2(8, 8), "]", 5);
+ b = t1.call$2(9, 235);
+ t2.call$3(b, _s77_, 11);
+ t2.call$3(b, _s1_, 16);
+ t2.call$3(b, _s1_1, 234);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(16, 235);
+ t2.call$3(b, _s77_, 11);
+ t2.call$3(b, _s1_, 17);
+ t2.call$3(b, _s1_1, 234);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(17, 235);
+ t2.call$3(b, _s77_, 11);
+ t2.call$3(b, _s1_1, 9);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(10, 235);
+ t2.call$3(b, _s77_, 11);
+ t2.call$3(b, _s1_, 18);
+ t2.call$3(b, _s1_1, 234);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(18, 235);
+ t2.call$3(b, _s77_, 11);
+ t2.call$3(b, _s1_, 19);
+ t2.call$3(b, _s1_1, 234);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(19, 235);
+ t2.call$3(b, _s77_, 11);
+ t2.call$3(b, _s1_1, 234);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(11, 235);
+ t2.call$3(b, _s77_, 11);
+ t2.call$3(b, _s1_1, 10);
+ t2.call$3(b, _s1_2, 172);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(12, 236);
+ t2.call$3(b, _s77_, 12);
+ t2.call$3(b, _s1_2, 12);
+ t2.call$3(b, _s1_3, 205);
+ b = t1.call$2(13, 237);
+ t2.call$3(b, _s77_, 13);
+ t2.call$3(b, _s1_2, 13);
+ t3.call$3(t1.call$2(20, 245), "az", 21);
+ b = t1.call$2(21, 245);
+ t3.call$3(b, "az", 21);
+ t3.call$3(b, "09", 21);
+ t2.call$3(b, "+-.", 21);
+ return tables;
+ },
+ _scan: function(uri, start, end, state, indices) {
+ var t1, i, table, char, transition,
+ tables = $.$get$_scannerTables();
+ for (t1 = J.getInterceptor$s(uri), i = start; i < end; ++i) {
+ table = tables[state];
+ char = t1._codeUnitAt$1(uri, i) ^ 96;
+ transition = table[char > 95 ? 31 : char];
+ state = transition & 31;
+ indices[transition >>> 5] = i;
+ }
+ return state;
+ },
+ NoSuchMethodError_toString_closure: function NoSuchMethodError_toString_closure(t0, t1) {
+ this._box_0 = t0;
+ this.sb = t1;
+ },
+ Comparable: function Comparable() {
+ },
+ DateTime: function DateTime(t0, t1) {
+ this._core$_value = t0;
+ this.isUtc = t1;
+ },
+ Duration: function Duration(t0) {
+ this._duration = t0;
+ },
+ Duration_toString_sixDigits: function Duration_toString_sixDigits() {
+ },
+ Duration_toString_twoDigits: function Duration_toString_twoDigits() {
+ },
+ Error: function Error() {
+ },
+ AssertionError: function AssertionError(t0) {
+ this.message = t0;
+ },
+ TypeError: function TypeError() {
+ },
+ NullThrownError: function NullThrownError() {
+ },
+ ArgumentError: function ArgumentError(t0, t1, t2, t3) {
+ var _ = this;
+ _._hasValue = t0;
+ _.invalidValue = t1;
+ _.name = t2;
+ _.message = t3;
+ },
+ RangeError: function RangeError(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.start = t0;
+ _.end = t1;
+ _._hasValue = t2;
+ _.invalidValue = t3;
+ _.name = t4;
+ _.message = t5;
+ },
+ IndexError: function IndexError(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.length = t0;
+ _._hasValue = t1;
+ _.invalidValue = t2;
+ _.name = t3;
+ _.message = t4;
+ },
+ NoSuchMethodError: function NoSuchMethodError(t0, t1, t2, t3) {
+ var _ = this;
+ _._core$_receiver = t0;
+ _._memberName = t1;
+ _._core$_arguments = t2;
+ _._namedArguments = t3;
+ },
+ UnsupportedError: function UnsupportedError(t0) {
+ this.message = t0;
+ },
+ UnimplementedError: function UnimplementedError(t0) {
+ this.message = t0;
+ },
+ StateError: function StateError(t0) {
+ this.message = t0;
+ },
+ ConcurrentModificationError: function ConcurrentModificationError(t0) {
+ this.modifiedObject = t0;
+ },
+ OutOfMemoryError: function OutOfMemoryError() {
+ },
+ StackOverflowError: function StackOverflowError() {
+ },
+ CyclicInitializationError: function CyclicInitializationError(t0) {
+ this.variableName = t0;
+ },
+ _Exception: function _Exception(t0) {
+ this.message = t0;
+ },
+ FormatException: function FormatException(t0, t1, t2) {
+ this.message = t0;
+ this.source = t1;
+ this.offset = t2;
+ },
+ Expando: function Expando(t0, t1) {
+ this._jsWeakMapOrKey = t0;
+ this.$ti = t1;
+ },
+ Iterable: function Iterable() {
+ },
+ Iterator: function Iterator() {
+ },
+ MapEntry: function MapEntry(t0, t1, t2) {
+ this.key = t0;
+ this.value = t1;
+ this.$ti = t2;
+ },
+ Null: function Null() {
+ },
+ Object: function Object() {
+ },
+ _StringStackTrace: function _StringStackTrace() {
+ },
+ Stopwatch: function Stopwatch() {
+ this._stop = this._core$_start = 0;
+ },
+ Runes: function Runes(t0) {
+ this.string = t0;
+ },
+ RuneIterator: function RuneIterator(t0) {
+ var _ = this;
+ _.string = t0;
+ _._nextPosition = _._core$_position = 0;
+ _._currentCodePoint = -1;
+ },
+ StringBuffer: function StringBuffer(t0) {
+ this._contents = t0;
+ },
+ Uri__parseIPv4Address_error: function Uri__parseIPv4Address_error(t0) {
+ this.host = t0;
+ },
+ Uri_parseIPv6Address_error: function Uri_parseIPv6Address_error(t0) {
+ this.host = t0;
+ },
+ Uri_parseIPv6Address_parseHex: function Uri_parseIPv6Address_parseHex(t0, t1) {
+ this.error = t0;
+ this.host = t1;
+ },
+ _Uri: function _Uri(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.scheme = t0;
+ _._userInfo = t1;
+ _._host = t2;
+ _._port = t3;
+ _.path = t4;
+ _._query = t5;
+ _._fragment = t6;
+ _.___Uri__text = null;
+ _.___Uri__text_isSet = false;
+ _.___Uri_pathSegments = null;
+ _.___Uri_pathSegments_isSet = false;
+ _.___Uri_hashCode = null;
+ _.___Uri_hashCode_isSet = false;
+ },
+ UriData: function UriData(t0, t1, t2) {
+ this._text = t0;
+ this._separatorIndices = t1;
+ this._uriCache = t2;
+ },
+ _createTables_closure: function _createTables_closure() {
+ },
+ _createTables_build: function _createTables_build(t0) {
+ this.tables = t0;
+ },
+ _createTables_setChars: function _createTables_setChars() {
+ },
+ _createTables_setRange: function _createTables_setRange() {
+ },
+ _SimpleUri: function _SimpleUri(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._uri = t0;
+ _._schemeEnd = t1;
+ _._hostStart = t2;
+ _._portStart = t3;
+ _._pathStart = t4;
+ _._queryStart = t5;
+ _._fragmentStart = t6;
+ _._schemeCache = t7;
+ _._hashCodeCache = null;
+ },
+ _DataUri: function _DataUri(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._core$_data = t0;
+ _.scheme = t1;
+ _._userInfo = t2;
+ _._host = t3;
+ _._port = t4;
+ _.path = t5;
+ _._query = t6;
+ _._fragment = t7;
+ _.___Uri__text = null;
+ _.___Uri__text_isSet = false;
+ _.___Uri_pathSegments = null;
+ _.___Uri_pathSegments_isSet = false;
+ _.___Uri_hashCode = null;
+ _.___Uri_hashCode_isSet = false;
+ },
+ ServiceExtensionResponse$result: function(result) {
+ P.ArgumentError_checkNotNull(result, "result");
+ return new P.ServiceExtensionResponse();
+ },
+ ServiceExtensionResponse__validateErrorCode: function(errorCode) {
+ var _s9_ = "errorCode";
+ P.ArgumentError_checkNotNull(errorCode, _s9_);
+ if (errorCode === -32602)
+ return;
+ if (errorCode >= -32016 && errorCode <= -32000)
+ return;
+ throw H.wrapException(P.ArgumentError$value(errorCode, _s9_, "Out of range"));
+ },
+ registerExtension: function(method, handler) {
+ P.ArgumentError_checkNotNull(method, "method");
+ if (!C.JSString_methods.startsWith$1(method, "ext."))
+ throw H.wrapException(P.ArgumentError$value(method, "method", "Must begin with ext."));
+ if ($._extensions.$index(0, method) != null)
+ throw H.wrapException(P.ArgumentError$("Extension already registered: " + method));
+ P.ArgumentError_checkNotNull(handler, "handler");
+ $._extensions.$indexSet(0, method, handler);
+ },
+ postEvent: function(eventKind, eventData) {
+ P.ArgumentError_checkNotNull(eventKind, "eventKind");
+ P.ArgumentError_checkNotNull(eventData, "eventData");
+ C.C_JsonCodec.encode$1(eventData);
+ },
+ Timeline_startSync: function($name, $arguments, flow) {
+ P.ArgumentError_checkNotNull($name, "name");
+ $.Timeline__stack.push(null);
+ return;
+ },
+ Timeline_finishSync: function() {
+ var block, t1;
+ if ($.Timeline__stack.length === 0)
+ throw H.wrapException(P.StateError$("Uneven calls to startSync and finishSync"));
+ block = $.Timeline__stack.pop();
+ if (block == null)
+ return;
+ P._argumentsAsJson(block._developer$_arguments);
+ t1 = block._flow;
+ if (t1 != null) {
+ H.S(t1.id);
+ block._flow.toString;
+ P._argumentsAsJson(null);
+ }
+ },
+ Timeline_instantSync: function($name, $arguments) {
+ P.ArgumentError_checkNotNull($name, "name");
+ return;
+ },
+ Timeline_timeSync: function($name, $function, flow) {
+ var t1;
+ P.Timeline_startSync($name, null, flow);
+ try {
+ t1 = $function.call$0();
+ return t1;
+ } finally {
+ P.Timeline_finishSync();
+ }
+ },
+ _argumentsAsJson: function($arguments) {
+ if ($arguments == null || $arguments.get$length($arguments) === 0)
+ return "{}";
+ return C.C_JsonCodec.encode$1($arguments);
+ },
+ ServiceExtensionResponse: function ServiceExtensionResponse() {
+ },
+ TimelineTask: function TimelineTask(t0, t1) {
+ this._taskId = t0;
+ this._stack = t1;
+ },
+ _AsyncBlock: function _AsyncBlock(t0, t1) {
+ this.name = t0;
+ this._taskId = t1;
+ },
+ convertNativeToDart_Dictionary: function(object) {
+ var dict, keys, t1, _i, key;
+ if (object == null)
+ return null;
+ dict = P.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic);
+ keys = Object.getOwnPropertyNames(object);
+ for (t1 = keys.length, _i = 0; _i < keys.length; keys.length === t1 || (0, H.throwConcurrentModificationError)(keys), ++_i) {
+ key = keys[_i];
+ dict.$indexSet(0, key, object[key]);
+ }
+ return dict;
+ },
+ convertDartToNative_Dictionary: function(dict) {
+ var object;
+ if (dict == null)
+ return null;
+ object = {};
+ J.forEach$1$ax(dict, new P.convertDartToNative_Dictionary_closure(object));
+ return object;
+ },
+ Device_userAgent: function() {
+ return window.navigator.userAgent;
+ },
+ _StructuredClone: function _StructuredClone() {
+ },
+ _StructuredClone_walk_closure: function _StructuredClone_walk_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ _StructuredClone_walk_closure0: function _StructuredClone_walk_closure0(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ _AcceptStructuredClone: function _AcceptStructuredClone() {
+ },
+ _AcceptStructuredClone_walk_closure: function _AcceptStructuredClone_walk_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ convertDartToNative_Dictionary_closure: function convertDartToNative_Dictionary_closure(t0) {
+ this.object = t0;
+ },
+ _StructuredCloneDart2Js: function _StructuredCloneDart2Js(t0, t1) {
+ this.values = t0;
+ this.copies = t1;
+ },
+ _AcceptStructuredCloneDart2Js: function _AcceptStructuredCloneDart2Js(t0, t1) {
+ this.values = t0;
+ this.copies = t1;
+ this.mustCopy = false;
+ },
+ FilteredElementList: function FilteredElementList(t0, t1) {
+ this._html_common$_node = t0;
+ this._childNodes = t1;
+ },
+ FilteredElementList__iterable_closure: function FilteredElementList__iterable_closure() {
+ },
+ FilteredElementList__iterable_closure0: function FilteredElementList__iterable_closure0() {
+ },
+ FilteredElementList_removeRange_closure: function FilteredElementList_removeRange_closure() {
+ },
+ Database: function Database() {
+ },
+ Index: function Index() {
+ },
+ KeyRange: function KeyRange() {
+ },
+ ObjectStore: function ObjectStore() {
+ },
+ VersionChangeEvent: function VersionChangeEvent() {
+ },
+ _callDartFunction: function(callback, captureThis, $self, $arguments) {
+ var arguments0, t1;
+ if (captureThis) {
+ arguments0 = [$self];
+ C.JSArray_methods.addAll$1(arguments0, $arguments);
+ $arguments = arguments0;
+ }
+ t1 = type$.dynamic;
+ return P._convertToJS(P.Function_apply(callback, P.List_List$from(J.map$1$1$ax($arguments, P.js___convertToDart$closure(), t1), true, t1)));
+ },
+ JsObject__convertDataTree: function(data) {
+ return new P.JsObject__convertDataTree__convert(new P._IdentityHashMap(type$._IdentityHashMap_dynamic_dynamic)).call$1(data);
+ },
+ JsArray__checkRange: function(start, end, $length) {
+ var _null = null;
+ if (start > $length)
+ throw H.wrapException(P.RangeError$range(start, 0, $length, _null, _null));
+ if (end < start || end > $length)
+ throw H.wrapException(P.RangeError$range(end, start, $length, _null, _null));
+ },
+ _castToJsObject: function(o) {
+ return o;
+ },
+ _defineProperty: function(o, $name, value) {
+ var exception;
+ try {
+ if (Object.isExtensible(o) && !Object.prototype.hasOwnProperty.call(o, $name)) {
+ Object.defineProperty(o, $name, {value: value});
+ return true;
+ }
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ return false;
+ },
+ _getOwnProperty: function(o, $name) {
+ if (Object.prototype.hasOwnProperty.call(o, $name))
+ return o[$name];
+ return null;
+ },
+ _convertToJS: function(o) {
+ if (o == null || typeof o == "string" || typeof o == "number" || H._isBool(o))
+ return o;
+ if (o instanceof P.JsObject)
+ return o._js$_jsObject;
+ if (H.isBrowserObject(o))
+ return o;
+ if (type$.TypedData._is(o))
+ return o;
+ if (o instanceof P.DateTime)
+ return H.Primitives_lazyAsJsDate(o);
+ if (type$.Function._is(o))
+ return P._getJsProxy(o, "$dart_jsFunction", new P._convertToJS_closure());
+ return P._getJsProxy(o, "_$dart_jsObject", new P._convertToJS_closure0($.$get$_dartProxyCtor()));
+ },
+ _getJsProxy: function(o, propertyName, createProxy) {
+ var jsProxy = P._getOwnProperty(o, propertyName);
+ if (jsProxy == null) {
+ jsProxy = createProxy.call$1(o);
+ P._defineProperty(o, propertyName, jsProxy);
+ }
+ return jsProxy;
+ },
+ _convertToDart: function(o) {
+ if (o == null || typeof o == "string" || typeof o == "number" || typeof o == "boolean")
+ return o;
+ else if (o instanceof Object && H.isBrowserObject(o))
+ return o;
+ else if (o instanceof Object && type$.TypedData._is(o))
+ return o;
+ else if (o instanceof Date)
+ return P.DateTime$fromMillisecondsSinceEpoch(o.getTime(), false);
+ else if (o.constructor === $.$get$_dartProxyCtor())
+ return o.o;
+ else
+ return P._wrapToDart(o);
+ },
+ _wrapToDart: function(o) {
+ if (typeof o == "function")
+ return P._getDartProxy(o, $.$get$DART_CLOSURE_PROPERTY_NAME(), new P._wrapToDart_closure());
+ if (o instanceof Array)
+ return P._getDartProxy(o, $.$get$_DART_OBJECT_PROPERTY_NAME(), new P._wrapToDart_closure0());
+ return P._getDartProxy(o, $.$get$_DART_OBJECT_PROPERTY_NAME(), new P._wrapToDart_closure1());
+ },
+ _getDartProxy: function(o, propertyName, createProxy) {
+ var dartProxy = P._getOwnProperty(o, propertyName);
+ if (dartProxy == null || !(o instanceof Object)) {
+ dartProxy = createProxy.call$1(o);
+ P._defineProperty(o, propertyName, dartProxy);
+ }
+ return dartProxy;
+ },
+ _convertDartFunctionFast: function(f) {
+ var ret,
+ existing = f.$dart_jsFunction;
+ if (existing != null)
+ return existing;
+ ret = function(_call, f) {
+ return function() {
+ return _call(f, Array.prototype.slice.apply(arguments));
+ };
+ }(P._callDartFunctionFast, f);
+ ret[$.$get$DART_CLOSURE_PROPERTY_NAME()] = f;
+ f.$dart_jsFunction = ret;
+ return ret;
+ },
+ _callDartFunctionFast: function(callback, $arguments) {
+ return P.Function_apply(callback, $arguments);
+ },
+ allowInterop: function(f) {
+ if (typeof f == "function")
+ return f;
+ else
+ return P._convertDartFunctionFast(f);
+ },
+ JsObject__convertDataTree__convert: function JsObject__convertDataTree__convert(t0) {
+ this._convertedObjects = t0;
+ },
+ _convertToJS_closure: function _convertToJS_closure() {
+ },
+ _convertToJS_closure0: function _convertToJS_closure0(t0) {
+ this.ctor = t0;
+ },
+ _wrapToDart_closure: function _wrapToDart_closure() {
+ },
+ _wrapToDart_closure0: function _wrapToDart_closure0() {
+ },
+ _wrapToDart_closure1: function _wrapToDart_closure1() {
+ },
+ JsObject: function JsObject(t0) {
+ this._js$_jsObject = t0;
+ },
+ JsFunction: function JsFunction(t0) {
+ this._js$_jsObject = t0;
+ },
+ JsArray: function JsArray(t0, t1) {
+ this._js$_jsObject = t0;
+ this.$ti = t1;
+ },
+ _JsArray_JsObject_ListMixin: function _JsArray_JsObject_ListMixin() {
+ },
+ _convertDataTree: function(data) {
+ var t1 = new P._convertDataTree__convert(new P._IdentityHashMap(type$._IdentityHashMap_dynamic_dynamic)).call$1(data);
+ t1.toString;
+ return t1;
+ },
+ hasProperty: function(o, $name) {
+ return $name in o;
+ },
+ promiseToFuture: function(jsPromise, $T) {
+ var t1 = new P._Future($.Zone__current, $T._eval$1("_Future<0>")),
+ completer = new P._AsyncCompleter(t1, $T._eval$1("_AsyncCompleter<0>"));
+ jsPromise.then(H.convertDartClosureToJS(new P.promiseToFuture_closure(completer), 1), H.convertDartClosureToJS(new P.promiseToFuture_closure0(completer), 1));
+ return t1;
+ },
+ _convertDataTree__convert: function _convertDataTree__convert(t0) {
+ this._convertedObjects = t0;
+ },
+ promiseToFuture_closure: function promiseToFuture_closure(t0) {
+ this.completer = t0;
+ },
+ promiseToFuture_closure0: function promiseToFuture_closure0(t0) {
+ this.completer = t0;
+ },
+ max: function(a, b) {
+ return Math.max(H.checkNum(a), H.checkNum(b));
+ },
+ log: function(x) {
+ return Math.log(x);
+ },
+ _JSRandom: function _JSRandom() {
+ },
+ Point: function Point(t0, t1, t2) {
+ this.x = t0;
+ this.y = t1;
+ this.$ti = t2;
+ },
+ Length: function Length() {
+ },
+ LengthList: function LengthList() {
+ },
+ Number: function Number() {
+ },
+ NumberList: function NumberList() {
+ },
+ PointList: function PointList() {
+ },
+ Rect0: function Rect0() {
+ },
+ ScriptElement0: function ScriptElement0() {
+ },
+ StringList: function StringList() {
+ },
+ SvgElement: function SvgElement() {
+ },
+ Transform0: function Transform0() {
+ },
+ TransformList: function TransformList() {
+ },
+ _LengthList_Interceptor_ListMixin: function _LengthList_Interceptor_ListMixin() {
+ },
+ _LengthList_Interceptor_ListMixin_ImmutableListMixin: function _LengthList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _NumberList_Interceptor_ListMixin: function _NumberList_Interceptor_ListMixin() {
+ },
+ _NumberList_Interceptor_ListMixin_ImmutableListMixin: function _NumberList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _StringList_Interceptor_ListMixin: function _StringList_Interceptor_ListMixin() {
+ },
+ _StringList_Interceptor_ListMixin_ImmutableListMixin: function _StringList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _TransformList_Interceptor_ListMixin: function _TransformList_Interceptor_ListMixin() {
+ },
+ _TransformList_Interceptor_ListMixin_ImmutableListMixin: function _TransformList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ Endian: function Endian() {
+ },
+ PictureRecorder_PictureRecorder: function() {
+ return new H.EnginePictureRecorder();
+ },
+ Canvas_Canvas: function(recorder, cullRect) {
+ type$.EnginePictureRecorder._as(recorder);
+ if (recorder._isRecording)
+ H.throwExpression(P.ArgumentError$('"recorder" must not already be associated with another Canvas.'));
+ return new H.SurfaceCanvas(recorder.beginRecording$1(0, cullRect == null ? C.Rect_aha : cullRect));
+ },
+ SceneBuilder_SceneBuilder: function() {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_PersistedContainerSurface),
+ t2 = $.SurfaceSceneBuilder__lastFrameScene,
+ t3 = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface);
+ t2 = new H.FrameReference(t2 != null && t2.__engine$_state === C.PersistedSurfaceState_1 ? t2 : null);
+ $._frameReferences.push(t2);
+ t2 = new H.PersistedScene(t3, t2, C.PersistedSurfaceState_0);
+ t3 = new H.Matrix40(new Float32Array(16));
+ t3.setIdentity$0();
+ t2.__engine$_transform = t3;
+ t1.push(t2);
+ return new H.SurfaceSceneBuilder(t1);
+ },
+ Offset_lerp: function(a, b, t) {
+ if (b == null)
+ if (a == null)
+ return null;
+ else
+ return a.$mul(0, 1 - t);
+ else if (a == null)
+ return b.$mul(0, t);
+ else
+ return new P.Offset(P._lerpDouble(a._dx, b._dx, t), P._lerpDouble(a._dy, b._dy, t));
+ },
+ Size_lerp: function(a, b, t) {
+ if (b == null)
+ if (a == null)
+ return null;
+ else
+ return a.$mul(0, 1 - t);
+ else if (a == null)
+ return b.$mul(0, t);
+ else
+ return new P.Size(P._lerpDouble(a._dx, b._dx, t), P._lerpDouble(a._dy, b._dy, t));
+ },
+ Rect$fromCircle: function(center, radius) {
+ var t1 = center._dx,
+ t2 = radius * 2 / 2,
+ t3 = center._dy;
+ return new P.Rect(t1 - t2, t3 - t2, t1 + t2, t3 + t2);
+ },
+ Rect$fromCenter: function(center, height, width) {
+ var t1 = center._dx,
+ t2 = width / 2,
+ t3 = center._dy,
+ t4 = height / 2;
+ return new P.Rect(t1 - t2, t3 - t4, t1 + t2, t3 + t4);
+ },
+ Rect$fromPoints: function(a, b) {
+ var t1 = a._dx,
+ t2 = b._dx,
+ t3 = Math.min(H.checkNum(t1), H.checkNum(t2)),
+ t4 = a._dy,
+ t5 = b._dy;
+ return new P.Rect(t3, Math.min(H.checkNum(t4), H.checkNum(t5)), Math.max(H.checkNum(t1), H.checkNum(t2)), Math.max(H.checkNum(t4), H.checkNum(t5)));
+ },
+ Rect_lerp: function(a, b, t) {
+ var k, t1, t2, t3, t4;
+ if (b == null)
+ if (a == null)
+ return null;
+ else {
+ k = 1 - t;
+ return new P.Rect(a.left * k, a.top * k, a.right * k, a.bottom * k);
+ }
+ else {
+ t1 = b.left;
+ t2 = b.top;
+ t3 = b.right;
+ t4 = b.bottom;
+ if (a == null)
+ return new P.Rect(t1 * t, t2 * t, t3 * t, t4 * t);
+ else
+ return new P.Rect(P._lerpDouble(a.left, t1, t), P._lerpDouble(a.top, t2, t), P._lerpDouble(a.right, t3, t), P._lerpDouble(a.bottom, t4, t));
+ }
+ },
+ Radius_lerp: function(a, b, t) {
+ var k, t1, t2;
+ if (b == null)
+ if (a == null)
+ return null;
+ else {
+ k = 1 - t;
+ return new P.Radius(a.x * k, a.y * k);
+ }
+ else {
+ t1 = b.x;
+ t2 = b.y;
+ if (a == null)
+ return new P.Radius(t1 * t, t2 * t);
+ else
+ return new P.Radius(P._lerpDouble(a.x, t1, t), P._lerpDouble(a.y, t2, t));
+ }
+ },
+ RRect$fromRectAndRadius: function(rect, radius) {
+ var t1 = radius.x,
+ t2 = radius.y;
+ return new P.RRect(rect.left, rect.top, rect.right, rect.bottom, t1, t2, t1, t2, t1, t2, t1, t2, t1 === t2);
+ },
+ RRect$fromRectAndCorners: function(rect, bottomLeft, bottomRight, topLeft, topRight) {
+ var t1 = bottomLeft.x,
+ t2 = bottomLeft.y,
+ t3 = rect.bottom,
+ t4 = bottomRight.x,
+ t5 = bottomRight.y,
+ t6 = rect.left,
+ t7 = rect.right,
+ t8 = topLeft.x,
+ t9 = topLeft.y,
+ t10 = rect.top,
+ t11 = topRight.x,
+ t12 = topRight.y;
+ return new P.RRect(t6, t10, t7, t3, t8, t9, t11, t12, t4, t5, t1, t2, t8 === t9 && t8 === t11 && t8 === t12 && t8 === t1 && t8 === t2 && t8 === t4 && t8 === t5);
+ },
+ _Jenkins_combine: function(hash, o) {
+ hash = hash + J.get$hashCode$(o) & 536870911;
+ hash = hash + ((hash & 524287) << 10) & 536870911;
+ return hash ^ hash >>> 6;
+ },
+ _Jenkins_finish: function(hash) {
+ hash = hash + ((hash & 67108863) << 3) & 536870911;
+ hash ^= hash >>> 11;
+ return hash + ((hash & 16383) << 15) & 536870911;
+ },
+ hashValues: function(arg01, arg02, arg03, arg04, arg05, arg06, arg07, arg08, arg09, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) {
+ var result = P._Jenkins_combine(P._Jenkins_combine(0, arg01), arg02);
+ if (!J.$eq$(arg03, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg03);
+ if (!J.$eq$(arg04, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg04);
+ if (!J.$eq$(arg05, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg05);
+ if (!J.$eq$(arg06, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg06);
+ if (!J.$eq$(arg07, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg07);
+ if (!J.$eq$(arg08, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg08);
+ if (!J.$eq$(arg09, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg09);
+ if (!J.$eq$(arg10, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg10);
+ if (!J.$eq$(arg11, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg11);
+ if (!J.$eq$(arg12, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg12);
+ if (!J.$eq$(arg13, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg13);
+ if (!J.$eq$(arg14, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg14);
+ if (!J.$eq$(arg15, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg15);
+ if (!J.$eq$(arg16, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg16);
+ if (!J.$eq$(arg17, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg17);
+ if (!J.$eq$(arg18, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg18);
+ if (!J.$eq$(arg19, C.C__HashEnd)) {
+ result = P._Jenkins_combine(result, arg19);
+ if (!J.$eq$(arg20, C.C__HashEnd))
+ result = P._Jenkins_combine(result, arg20);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return P._Jenkins_finish(result);
+ },
+ hashList: function($arguments) {
+ var t1, result, _i;
+ if ($arguments != null)
+ for (t1 = $arguments.length, result = 0, _i = 0; _i < $arguments.length; $arguments.length === t1 || (0, H.throwConcurrentModificationError)($arguments), ++_i)
+ result = P._Jenkins_combine(result, $arguments[_i]);
+ else
+ result = 0;
+ return P._Jenkins_finish(result);
+ },
+ webOnlyInitializePlatform: function() {
+ var initializationFuture = P._initializePlatform(null);
+ P.scheduleMicrotask(new P.webOnlyInitializePlatform_closure());
+ return initializationFuture;
+ },
+ _initializePlatform: function(assetManager) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ t1;
+ var $async$_initializePlatform = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ H.initializeEngine();
+ $async$goto = 2;
+ return P._asyncAwait(P.webOnlySetAssetManager(C.C_AssetManager), $async$_initializePlatform);
+ case 2:
+ // returning from await.
+ t1 = $._fontCollection;
+ $async$goto = 3;
+ return P._asyncAwait(t1.ensureFontsLoaded$0(), $async$_initializePlatform);
+ case 3:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_initializePlatform, $async$completer);
+ },
+ webOnlySetAssetManager: function(assetManager) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, t1, t2;
+ var $async$webOnlySetAssetManager = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if (assetManager === $._assetManager) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $._assetManager = assetManager;
+ t1 = $._fontCollection;
+ if (t1 == null)
+ t1 = $._fontCollection = new H.FontCollection();
+ t1._testFontManager = t1._assetFontManager = null;
+ if ($.$get$supportsFontsClearApi())
+ document.fonts.clear();
+ t1 = $._assetManager;
+ $async$goto = t1 != null ? 3 : 4;
+ break;
+ case 3:
+ // then
+ t2 = $._fontCollection;
+ $async$goto = 5;
+ return P._asyncAwait(t2.registerFonts$1(t1), $async$webOnlySetAssetManager);
+ case 5:
+ // returning from await.
+ case 4:
+ // join
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$webOnlySetAssetManager, $async$completer);
+ },
+ lerpDouble: function(a, b, t) {
+ var t1;
+ if (a != b)
+ if ((a == null ? null : isNaN(a)) === true)
+ t1 = (b == null ? null : isNaN(b)) === true;
+ else
+ t1 = false;
+ else
+ t1 = true;
+ if (t1)
+ return a == null ? null : a;
+ if (a == null)
+ a = 0;
+ if (b == null)
+ b = 0;
+ return a * (1 - t) + b * t;
+ },
+ _lerpDouble: function(a, b, t) {
+ return a * (1 - t) + b * t;
+ },
+ _lerpInt: function(a, b, t) {
+ return a * (1 - t) + b * t;
+ },
+ _scaleAlpha: function(a, factor) {
+ return P.Color$fromARGB(H.clampInt(C.JSNumber_methods.round$0((a.get$value(a) >>> 24 & 255) * factor), 0, 255), a.get$value(a) >>> 16 & 255, a.get$value(a) >>> 8 & 255, a.get$value(a) & 255);
+ },
+ Color$fromARGB: function(a, r, g, b) {
+ return new P.Color(((a & 255) << 24 | (r & 255) << 16 | (g & 255) << 8 | b & 255) >>> 0);
+ },
+ Color__linearizeColorComponent: function(component) {
+ if (component <= 0.03928)
+ return component / 12.92;
+ return Math.pow((component + 0.055) / 1.055, 2.4);
+ },
+ Color_lerp: function(a, b, t) {
+ if (b == null)
+ if (a == null)
+ return null;
+ else
+ return P._scaleAlpha(a, 1 - t);
+ else if (a == null)
+ return P._scaleAlpha(b, t);
+ else
+ return P.Color$fromARGB(H.clampInt(C.JSNumber_methods.toInt$0(P._lerpInt(a.get$value(a) >>> 24 & 255, b.get$value(b) >>> 24 & 255, t)), 0, 255), H.clampInt(C.JSNumber_methods.toInt$0(P._lerpInt(a.get$value(a) >>> 16 & 255, b.get$value(b) >>> 16 & 255, t)), 0, 255), H.clampInt(C.JSNumber_methods.toInt$0(P._lerpInt(a.get$value(a) >>> 8 & 255, b.get$value(b) >>> 8 & 255, t)), 0, 255), H.clampInt(C.JSNumber_methods.toInt$0(P._lerpInt(a.get$value(a) & 255, b.get$value(b) & 255, t)), 0, 255));
+ },
+ Color_alphaBlend: function(foreground, background) {
+ var invAlpha, backAlpha, outAlpha,
+ alpha = foreground.get$value(foreground) >>> 24 & 255;
+ if (alpha === 0)
+ return background;
+ invAlpha = 255 - alpha;
+ backAlpha = background.get$value(background) >>> 24 & 255;
+ if (backAlpha === 255)
+ return P.Color$fromARGB(255, C.JSInt_methods._tdivFast$1(alpha * (foreground.get$value(foreground) >>> 16 & 255) + invAlpha * (background.get$value(background) >>> 16 & 255), 255), C.JSInt_methods._tdivFast$1(alpha * (foreground.get$value(foreground) >>> 8 & 255) + invAlpha * (background.get$value(background) >>> 8 & 255), 255), C.JSInt_methods._tdivFast$1(alpha * (foreground.get$value(foreground) & 255) + invAlpha * (background.get$value(background) & 255), 255));
+ else {
+ backAlpha = C.JSInt_methods._tdivFast$1(backAlpha * invAlpha, 255);
+ outAlpha = alpha + backAlpha;
+ return P.Color$fromARGB(outAlpha, C.JSInt_methods.$tdiv((foreground.get$value(foreground) >>> 16 & 255) * alpha + (background.get$value(background) >>> 16 & 255) * backAlpha, outAlpha), C.JSInt_methods.$tdiv((foreground.get$value(foreground) >>> 8 & 255) * alpha + (background.get$value(background) >>> 8 & 255) * backAlpha, outAlpha), C.JSInt_methods.$tdiv((foreground.get$value(foreground) & 255) * alpha + (background.get$value(background) & 255) * backAlpha, outAlpha));
+ }
+ },
+ Gradient_Gradient$linear: function(from, to, colors, colorStops, tileMode, matrix4) {
+ var t1 = new H.GradientLinear(from, to, colors, colorStops, null);
+ return t1;
+ },
+ Path_Path: function() {
+ var t1 = H.SurfacePath$();
+ return t1;
+ },
+ PlatformConfiguration$: function(accessibilityFeatures, alwaysUse24HourFormat, defaultRouteName, locales, platformBrightness, semanticsEnabled, textScaleFactor) {
+ return new P.PlatformConfiguration(accessibilityFeatures, false, semanticsEnabled, platformBrightness, textScaleFactor, locales, defaultRouteName);
+ },
+ ViewConfiguration$: function() {
+ return new P.ViewConfiguration();
+ },
+ PointerData$: function(buttons, change, device, distance, distanceMax, kind, obscured, orientation, physicalDeltaX, physicalDeltaY, physicalX, physicalY, platformData, pointerIdentifier, pressure, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, scrollDeltaX, scrollDeltaY, signalKind, size, synthesized, tilt, timeStamp) {
+ return new P.PointerData(timeStamp, change, kind, signalKind, device, pointerIdentifier, physicalX, physicalY, physicalDeltaX, physicalDeltaY, buttons, false, synthesized, pressure, pressureMin, pressureMax, distance, distanceMax, size, radiusMajor, radiusMinor, radiusMin, radiusMax, orientation, tilt, platformData, scrollDeltaX, scrollDeltaY);
+ },
+ FontWeight_lerp: function(a, b, t) {
+ var t2,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ t1 = t1 ? null : a.index;
+ if (t1 == null)
+ t1 = 3;
+ t2 = b == null ? null : b.index;
+ t1 = P.lerpDouble(t1, t2 == null ? 3 : t2, t);
+ t1.toString;
+ return C.List_27p[H.clampInt(C.JSNumber_methods.round$0(t1), 0, 8)];
+ },
+ TextStyle_TextStyle: function(background, color, decoration, decorationColor, decorationStyle, decorationThickness, fontFamily, fontFamilyFallback, fontFeatures, fontSize, fontStyle, fontWeight, foreground, height, letterSpacing, locale, shadows, textBaseline, wordSpacing) {
+ var t1 = H.EngineTextStyle$only(background, color, decoration, decorationColor, decorationStyle, decorationThickness, fontFamily, fontFamilyFallback, fontFeatures, fontSize, fontStyle, fontWeight, foreground, height, letterSpacing, locale, shadows, textBaseline, wordSpacing);
+ return t1;
+ },
+ ParagraphStyle_ParagraphStyle: function(ellipsis, fontFamily, fontSize, fontStyle, fontWeight, height, locale, maxLines, strutStyle, textAlign, textDirection, textHeightBehavior) {
+ return new H.EngineParagraphStyle(textAlign, textDirection, fontWeight, fontStyle, maxLines, fontFamily, fontSize, height, textHeightBehavior, strutStyle, ellipsis, locale);
+ },
+ ParagraphBuilder_ParagraphBuilder: function(style) {
+ var t1, t2, t3, strutFontFamilies, t4, cssStyle;
+ type$.EngineParagraphStyle._as(style);
+ t1 = type$.HtmlElement._as($.$get$domRenderer().createElement$1(0, "p"));
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_double);
+ t3 = style._strutStyle;
+ if (t3 != null) {
+ strutFontFamilies = H.setRuntimeTypeInfo([], type$.JSArray_nullable_String);
+ t4 = t3._fontFamily;
+ if (t4 != null)
+ strutFontFamilies.push(t4);
+ t3 = t3._fontFamilyFallback;
+ if (t3 != null)
+ C.JSArray_methods.addAll$1(strutFontFamilies, t3);
+ }
+ cssStyle = t1.style;
+ t3 = style._textAlign;
+ if (t3 != null) {
+ t4 = style._textDirection;
+ t3 = H.textAlignToCssValue(t3, t4 == null ? C.TextDirection_1 : t4);
+ cssStyle.textAlign = t3;
+ }
+ if (style.get$_lineHeight(style) != null) {
+ t3 = H.S(style.get$_lineHeight(style));
+ cssStyle.lineHeight = t3;
+ }
+ t3 = style._textDirection;
+ if (t3 != null) {
+ t3 = H._textDirectionToCss(t3);
+ cssStyle.toString;
+ cssStyle.direction = t3 == null ? "" : t3;
+ }
+ t3 = style._fontSize;
+ if (t3 != null) {
+ t3 = "" + C.JSNumber_methods.floor$0(t3) + "px";
+ cssStyle.fontSize = t3;
+ }
+ t3 = style._fontWeight;
+ if (t3 != null) {
+ t3 = H.fontWeightToCss(t3);
+ cssStyle.toString;
+ cssStyle.fontWeight = t3 == null ? "" : t3;
+ }
+ t3 = H.canonicalizeFontFamily(style.get$_effectiveFontFamily());
+ cssStyle.toString;
+ cssStyle.fontFamily = t3 == null ? "" : t3;
+ return new H.DomParagraphBuilder(t1, style, [], t2);
+ },
+ PluginUtilities_getCallbackHandle: function(callback) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ PluginUtilities_getCallbackFromHandle: function(handle) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ handlePlatformViewCall: function(data, callback) {
+ var id, t1, t2,
+ decoded = C.C_StandardMethodCodec.decodeMethodCall$1(data);
+ switch (decoded.method) {
+ case "create":
+ P._createPlatformView(decoded, callback);
+ return;
+ case "dispose":
+ id = decoded.$arguments;
+ t1 = $.$get$platformViewRegistry()._createdViews;
+ t2 = t1.$index(0, id);
+ if (t2 != null)
+ J.remove$0$ax(t2);
+ t1.remove$1(0, id);
+ callback.call$1(C.C_StandardMethodCodec.encodeSuccessEnvelope$1(null));
+ return;
+ }
+ callback.call$1(null);
+ },
+ _createPlatformView: function(methodCall, callback) {
+ var platformViewFactory, element,
+ args = methodCall.$arguments,
+ t1 = J.getInterceptor$asx(args),
+ id = t1.$index(args, "id"),
+ viewType = t1.$index(args, "viewType");
+ t1 = $.$get$platformViewRegistry();
+ platformViewFactory = t1.registeredFactories.$index(0, viewType);
+ if (platformViewFactory == null) {
+ callback.call$1(C.C_StandardMethodCodec.encodeErrorEnvelope$2$code$message("Unregistered factory", "No factory registered for viewtype '" + H.S(viewType) + "'"));
+ return;
+ }
+ element = platformViewFactory.call$1(id);
+ t1._createdViews.$indexSet(0, id, element);
+ callback.call$1(C.C_StandardMethodCodec.encodeSuccessEnvelope$1(null));
+ },
+ ClipOp: function ClipOp(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ PathFillType: function PathFillType(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ _StoredMessage: function _StoredMessage(t0, t1) {
+ this.data = t0;
+ this.callback = t1;
+ },
+ _Channel: function _Channel(t0, t1) {
+ this._ui$_queue = t0;
+ this.debugEnableDiscardWarnings = true;
+ this._capacity = t1;
+ },
+ ChannelBuffers: function ChannelBuffers(t0) {
+ this._channels = t0;
+ },
+ ChannelBuffers_push_closure: function ChannelBuffers_push_closure() {
+ },
+ OffsetBase: function OffsetBase() {
+ },
+ Offset: function Offset(t0, t1) {
+ this._dx = t0;
+ this._dy = t1;
+ },
+ Size: function Size(t0, t1) {
+ this._dx = t0;
+ this._dy = t1;
+ },
+ Rect: function Rect(t0, t1, t2, t3) {
+ var _ = this;
+ _.left = t0;
+ _.top = t1;
+ _.right = t2;
+ _.bottom = t3;
+ },
+ Radius: function Radius(t0, t1) {
+ this.x = t0;
+ this.y = t1;
+ },
+ RRect: function RRect(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
+ var _ = this;
+ _.left = t0;
+ _.top = t1;
+ _.right = t2;
+ _.bottom = t3;
+ _.tlRadiusX = t4;
+ _.tlRadiusY = t5;
+ _.trRadiusX = t6;
+ _.trRadiusY = t7;
+ _.brRadiusX = t8;
+ _.brRadiusY = t9;
+ _.blRadiusX = t10;
+ _.blRadiusY = t11;
+ _.webOnlyUniformRadii = t12;
+ },
+ _HashEnd: function _HashEnd() {
+ },
+ webOnlyInitializePlatform_closure: function webOnlyInitializePlatform_closure() {
+ },
+ Color: function Color(t0) {
+ this.value = t0;
+ },
+ StrokeCap: function StrokeCap(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ StrokeJoin: function StrokeJoin(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ PaintingStyle: function PaintingStyle(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ BlendMode: function BlendMode(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ Clip: function Clip(t0) {
+ this._ui$_name = t0;
+ },
+ BlurStyle: function BlurStyle(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ MaskFilter: function MaskFilter(t0, t1) {
+ this._ui$_style = t0;
+ this._sigma = t1;
+ },
+ Shadow: function Shadow() {
+ },
+ PlatformDispatcher: function PlatformDispatcher() {
+ },
+ PlatformConfiguration: function PlatformConfiguration(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.accessibilityFeatures = t0;
+ _.alwaysUse24HourFormat = t1;
+ _.semanticsEnabled = t2;
+ _.platformBrightness = t3;
+ _.textScaleFactor = t4;
+ _.locales = t5;
+ _.defaultRouteName = t6;
+ },
+ ViewConfiguration: function ViewConfiguration() {
+ },
+ FrameTiming: function FrameTiming(t0) {
+ this._timestamps = t0;
+ },
+ AppLifecycleState: function AppLifecycleState(t0) {
+ this._ui$_name = t0;
+ },
+ Locale: function Locale(t0, t1) {
+ this._languageCode = t0;
+ this._countryCode = t1;
+ },
+ PointerChange: function PointerChange(t0) {
+ this._ui$_name = t0;
+ },
+ PointerDeviceKind: function PointerDeviceKind(t0) {
+ this._ui$_name = t0;
+ },
+ PointerSignalKind: function PointerSignalKind(t0) {
+ this._ui$_name = t0;
+ },
+ PointerData: function PointerData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27) {
+ var _ = this;
+ _.timeStamp = t0;
+ _.change = t1;
+ _.kind = t2;
+ _.signalKind = t3;
+ _.device = t4;
+ _.pointerIdentifier = t5;
+ _.physicalX = t6;
+ _.physicalY = t7;
+ _.physicalDeltaX = t8;
+ _.physicalDeltaY = t9;
+ _.buttons = t10;
+ _.obscured = t11;
+ _.synthesized = t12;
+ _.pressure = t13;
+ _.pressureMin = t14;
+ _.pressureMax = t15;
+ _.distance = t16;
+ _.distanceMax = t17;
+ _.size = t18;
+ _.radiusMajor = t19;
+ _.radiusMinor = t20;
+ _.radiusMin = t21;
+ _.radiusMax = t22;
+ _.orientation = t23;
+ _.tilt = t24;
+ _.platformData = t25;
+ _.scrollDeltaX = t26;
+ _.scrollDeltaY = t27;
+ },
+ PointerDataPacket: function PointerDataPacket(t0) {
+ this.data = t0;
+ },
+ SemanticsAction: function SemanticsAction(t0) {
+ this.index = t0;
+ },
+ SemanticsFlag: function SemanticsFlag(t0) {
+ this.index = t0;
+ },
+ SemanticsUpdateBuilder: function SemanticsUpdateBuilder(t0) {
+ this._nodeUpdates = t0;
+ },
+ PlaceholderAlignment: function PlaceholderAlignment(t0) {
+ this._ui$_name = t0;
+ },
+ FontWeight: function FontWeight(t0) {
+ this.index = t0;
+ },
+ TextAlign: function TextAlign(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ TextBaseline: function TextBaseline(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ TextDecoration: function TextDecoration(t0) {
+ this._mask = t0;
+ },
+ TextDecorationStyle: function TextDecorationStyle(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ TextDirection: function TextDirection(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ TextBox: function TextBox(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.left = t0;
+ _.top = t1;
+ _.right = t2;
+ _.bottom = t3;
+ _.direction = t4;
+ },
+ TextAffinity: function TextAffinity(t0) {
+ this._ui$_name = t0;
+ },
+ TextPosition: function TextPosition(t0, t1) {
+ this.offset = t0;
+ this.affinity = t1;
+ },
+ TextRange: function TextRange(t0, t1) {
+ this.start = t0;
+ this.end = t1;
+ },
+ ParagraphConstraints: function ParagraphConstraints(t0) {
+ this.width = t0;
+ },
+ BoxHeightStyle: function BoxHeightStyle(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ BoxWidthStyle: function BoxWidthStyle() {
+ },
+ TileMode: function TileMode(t0, t1) {
+ this.index = t0;
+ this._ui$_name = t1;
+ },
+ FlutterView: function FlutterView() {
+ },
+ FlutterWindow: function FlutterWindow() {
+ },
+ SingletonFlutterWindow: function SingletonFlutterWindow() {
+ },
+ Window0: function Window0() {
+ },
+ AccessibilityFeatures: function AccessibilityFeatures() {
+ },
+ Brightness: function Brightness(t0) {
+ this._ui$_name = t0;
+ },
+ CallbackHandle: function CallbackHandle(t0) {
+ this._ui$_handle = t0;
+ },
+ PlatformViewRegistry: function PlatformViewRegistry(t0, t1) {
+ this.registeredFactories = t0;
+ this._createdViews = t1;
+ },
+ AudioBuffer: function AudioBuffer() {
+ },
+ AudioParamMap: function AudioParamMap() {
+ },
+ AudioParamMap_keys_closure: function AudioParamMap_keys_closure(t0) {
+ this.keys = t0;
+ },
+ AudioParamMap_values_closure: function AudioParamMap_values_closure(t0) {
+ this.values = t0;
+ },
+ AudioTrackList: function AudioTrackList() {
+ },
+ BaseAudioContext: function BaseAudioContext() {
+ },
+ OfflineAudioContext: function OfflineAudioContext() {
+ },
+ _AudioParamMap_Interceptor_MapMixin: function _AudioParamMap_Interceptor_MapMixin() {
+ },
+ ActiveInfo: function ActiveInfo() {
+ },
+ SqlResultSetRowList: function SqlResultSetRowList() {
+ },
+ _SqlResultSetRowList_Interceptor_ListMixin: function _SqlResultSetRowList_Interceptor_ListMixin() {
+ },
+ _SqlResultSetRowList_Interceptor_ListMixin_ImmutableListMixin: function _SqlResultSetRowList_Interceptor_ListMixin_ImmutableListMixin() {
+ }
+ },
+ W = {
+ window: function() {
+ return window;
+ },
+ document: function() {
+ return document;
+ },
+ Blob_Blob: function(blobParts) {
+ var t1 = new self.Blob(blobParts);
+ return t1;
+ },
+ CanvasElement_CanvasElement: function(height, width) {
+ var e = document.createElement("canvas");
+ if (width != null)
+ e.width = width;
+ if (height != null)
+ e.height = height;
+ return e;
+ },
+ _ChildrenElementList__remove: function(_element, object) {
+ return false;
+ },
+ _ChildrenElementList__first: function(_element) {
+ var result = _element.firstElementChild;
+ if (result == null)
+ throw H.wrapException(P.StateError$("No elements"));
+ return result;
+ },
+ Element_Element$html: function(html, treeSanitizer, validator) {
+ var fragment,
+ t1 = document.body;
+ t1.toString;
+ fragment = C.BodyElement_methods.createFragment$3$treeSanitizer$validator(t1, html, treeSanitizer, validator);
+ fragment.toString;
+ t1 = new H.WhereIterable(new W._ChildNodeListLazy(fragment), new W.Element_Element$html_closure(), type$._ChildNodeListLazy._eval$1("WhereIterable"));
+ return type$.Element._as(t1.get$single(t1));
+ },
+ Element__safeTagName: function(element) {
+ var t1, exception,
+ result = "element tag unavailable";
+ try {
+ t1 = J.getInterceptor$x(element);
+ if (typeof t1.get$tagName(element) == "string")
+ result = t1.get$tagName(element);
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ return result;
+ },
+ _ElementFactoryProvider_createElement_tag: function(tag, typeExtension) {
+ return document.createElement(tag);
+ },
+ FontFace_FontFace: function(family, source, descriptors) {
+ var t1 = new FontFace(family, source, P.convertDartToNative_Dictionary(descriptors));
+ return t1;
+ },
+ HttpRequest_request: function(url, responseType) {
+ var t2,
+ t1 = new P._Future($.Zone__current, type$._Future_HttpRequest),
+ completer = new P._AsyncCompleter(t1, type$._AsyncCompleter_HttpRequest),
+ xhr = new XMLHttpRequest();
+ C.HttpRequest_methods.open$3$async(xhr, "GET", url, true);
+ xhr.responseType = responseType;
+ t2 = type$.legacy_ProgressEvent;
+ W._EventStreamSubscription$(xhr, "load", new W.HttpRequest_request_closure(xhr, completer), false, t2);
+ W._EventStreamSubscription$(xhr, "error", completer.get$completeError(), false, t2);
+ xhr.send();
+ return t1;
+ },
+ InputElement_InputElement: function() {
+ var exception, type = null,
+ t1 = document.createElement("input"),
+ e = type$.InputElement._as(t1);
+ if (type != null)
+ try {
+ e.type = type;
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ return e;
+ },
+ RtcPeerConnection_RtcPeerConnection: function(rtcIceServers) {
+ var t1 = new window.RTCPeerConnection(new P._StructuredCloneDart2Js([], []).walk$1(rtcIceServers));
+ return t1;
+ },
+ WebSocket_WebSocket: function(url) {
+ return new WebSocket(url);
+ },
+ _JenkinsSmiHash_combine: function(hash, value) {
+ hash = hash + value & 536870911;
+ hash = hash + ((hash & 524287) << 10) & 536870911;
+ return hash ^ hash >>> 6;
+ },
+ _JenkinsSmiHash_hash4: function(a, b, c, d) {
+ var t1 = W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(0, a), b), c), d),
+ hash = t1 + ((t1 & 67108863) << 3) & 536870911;
+ hash ^= hash >>> 11;
+ return hash + ((hash & 16383) << 15) & 536870911;
+ },
+ _EventStreamSubscription$: function(_target, _eventType, onData, _useCapture, $T) {
+ var t1 = onData == null ? null : W._wrapZone(new W._EventStreamSubscription_closure(onData), type$.Event);
+ t1 = new W._EventStreamSubscription(_target, _eventType, t1, false, $T._eval$1("_EventStreamSubscription<0>"));
+ t1._tryResume$0();
+ return t1;
+ },
+ _Html5NodeValidator$: function(uriPolicy) {
+ var e = document.createElement("a"),
+ t1 = new W._SameOriginUriPolicy(e, window.location);
+ t1 = new W._Html5NodeValidator(t1);
+ t1._Html5NodeValidator$1$uriPolicy(uriPolicy);
+ return t1;
+ },
+ _Html5NodeValidator__standardAttributeValidator: function(element, attributeName, value, context) {
+ return true;
+ },
+ _Html5NodeValidator__uriAttributeValidator: function(element, attributeName, value, context) {
+ var t3,
+ t1 = context.uriPolicy,
+ t2 = t1._hiddenAnchor;
+ t2.href = value;
+ t3 = t2.hostname;
+ t1 = t1._loc;
+ if (!(t3 == t1.hostname && t2.port == t1.port && t2.protocol == t1.protocol))
+ if (t3 === "")
+ if (t2.port === "") {
+ t1 = t2.protocol;
+ t1 = t1 === ":" || t1 === "";
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = true;
+ return t1;
+ },
+ _TemplatingNodeValidator$: function() {
+ var t1 = type$.String,
+ t2 = P.LinkedHashSet_LinkedHashSet$from(C.List_wSV, t1),
+ t3 = H.setRuntimeTypeInfo(["TEMPLATE"], type$.JSArray_String);
+ t1 = new W._TemplatingNodeValidator(t2, P.LinkedHashSet_LinkedHashSet(t1), P.LinkedHashSet_LinkedHashSet(t1), P.LinkedHashSet_LinkedHashSet(t1), null);
+ t1._SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUriAttributes(null, new H.MappedListIterable(C.List_wSV, new W._TemplatingNodeValidator_closure(), type$.MappedListIterable_of_legacy_String_and_String), t3, null);
+ return t1;
+ },
+ _convertNativeToDart_EventTarget: function(e) {
+ var $window;
+ if ("postMessage" in e) {
+ $window = W._DOMWindowCrossFrame__createSafe(e);
+ return $window;
+ } else
+ return e;
+ },
+ _convertNativeToDart_XHR_Response: function(o) {
+ if (type$.Document._is(o))
+ return o;
+ return new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(o, true);
+ },
+ _DOMWindowCrossFrame__createSafe: function(w) {
+ if (w === window)
+ return w;
+ else
+ return new W._DOMWindowCrossFrame(w);
+ },
+ _wrapZone: function(callback, $T) {
+ var t1 = $.Zone__current;
+ if (t1 === C.C__RootZone)
+ return callback;
+ return t1.bindUnaryCallbackGuarded$1$1(callback, $T);
+ },
+ HtmlElement: function HtmlElement() {
+ },
+ AccessibleNodeList: function AccessibleNodeList() {
+ },
+ AnchorElement: function AnchorElement() {
+ },
+ ApplicationCacheErrorEvent: function ApplicationCacheErrorEvent() {
+ },
+ AreaElement: function AreaElement() {
+ },
+ BaseElement: function BaseElement() {
+ },
+ Blob: function Blob() {
+ },
+ BlobEvent: function BlobEvent() {
+ },
+ BodyElement: function BodyElement() {
+ },
+ BroadcastChannel: function BroadcastChannel() {
+ },
+ ButtonElement: function ButtonElement() {
+ },
+ CanvasElement: function CanvasElement() {
+ },
+ CanvasRenderingContext2D: function CanvasRenderingContext2D() {
+ },
+ CharacterData: function CharacterData() {
+ },
+ CloseEvent: function CloseEvent() {
+ },
+ CompositionEvent: function CompositionEvent() {
+ },
+ Credential: function Credential() {
+ },
+ CredentialUserData: function CredentialUserData() {
+ },
+ CssKeyframesRule: function CssKeyframesRule() {
+ },
+ CssPerspective: function CssPerspective() {
+ },
+ CssRule: function CssRule() {
+ },
+ CssStyleDeclaration: function CssStyleDeclaration() {
+ },
+ CssStyleDeclarationBase: function CssStyleDeclarationBase() {
+ },
+ CssStyleSheet: function CssStyleSheet() {
+ },
+ CssStyleValue: function CssStyleValue() {
+ },
+ CssTransformComponent: function CssTransformComponent() {
+ },
+ CssTransformValue: function CssTransformValue() {
+ },
+ CssUnparsedValue: function CssUnparsedValue() {
+ },
+ DataTransferItemList: function DataTransferItemList() {
+ },
+ DivElement: function DivElement() {
+ },
+ Document: function Document() {
+ },
+ DomError: function DomError() {
+ },
+ DomException: function DomException() {
+ },
+ DomRectList: function DomRectList() {
+ },
+ DomRectReadOnly: function DomRectReadOnly() {
+ },
+ DomStringList: function DomStringList() {
+ },
+ DomTokenList: function DomTokenList() {
+ },
+ _ChildrenElementList: function _ChildrenElementList(t0, t1) {
+ this._html$_element = t0;
+ this._html$_childElements = t1;
+ },
+ _FrozenElementList: function _FrozenElementList(t0, t1) {
+ this._nodeList = t0;
+ this.$ti = t1;
+ },
+ Element0: function Element0() {
+ },
+ Element_Element$html_closure: function Element_Element$html_closure() {
+ },
+ EmbedElement: function EmbedElement() {
+ },
+ Entry: function Entry() {
+ },
+ Entry_remove_closure: function Entry_remove_closure(t0) {
+ this.completer = t0;
+ },
+ Entry_remove_closure0: function Entry_remove_closure0(t0) {
+ this.completer = t0;
+ },
+ Event: function Event() {
+ },
+ EventTarget: function EventTarget() {
+ },
+ ExtendableEvent: function ExtendableEvent() {
+ },
+ ExtendableMessageEvent: function ExtendableMessageEvent() {
+ },
+ FederatedCredential: function FederatedCredential() {
+ },
+ FieldSetElement: function FieldSetElement() {
+ },
+ File: function File() {
+ },
+ FileList: function FileList() {
+ },
+ FileReader: function FileReader() {
+ },
+ FileSystem: function FileSystem() {
+ },
+ FileWriter: function FileWriter() {
+ },
+ FontFace: function FontFace() {
+ },
+ FormElement: function FormElement() {
+ },
+ Gamepad: function Gamepad() {
+ },
+ History: function History() {
+ },
+ HtmlCollection: function HtmlCollection() {
+ },
+ HttpRequest: function HttpRequest() {
+ },
+ HttpRequest_request_closure: function HttpRequest_request_closure(t0, t1) {
+ this.xhr = t0;
+ this.completer = t1;
+ },
+ HttpRequestEventTarget: function HttpRequestEventTarget() {
+ },
+ IFrameElement: function IFrameElement() {
+ },
+ ImageData: function ImageData() {
+ },
+ ImageElement: function ImageElement() {
+ },
+ InputElement: function InputElement() {
+ },
+ KeyboardEvent: function KeyboardEvent() {
+ },
+ LabelElement: function LabelElement() {
+ },
+ Location: function Location() {
+ },
+ MapElement: function MapElement() {
+ },
+ MediaElement: function MediaElement() {
+ },
+ MediaKeySession: function MediaKeySession() {
+ },
+ MediaList: function MediaList() {
+ },
+ MediaQueryList: function MediaQueryList() {
+ },
+ MediaQueryListEvent: function MediaQueryListEvent() {
+ },
+ MediaStream: function MediaStream() {
+ },
+ MediaStreamEvent: function MediaStreamEvent() {
+ },
+ MediaStreamTrack: function MediaStreamTrack() {
+ },
+ MediaStreamTrackEvent: function MediaStreamTrackEvent() {
+ },
+ MessageEvent: function MessageEvent() {
+ },
+ MessagePort: function MessagePort() {
+ },
+ MetaElement: function MetaElement() {
+ },
+ MidiInputMap: function MidiInputMap() {
+ },
+ MidiInputMap_keys_closure: function MidiInputMap_keys_closure(t0) {
+ this.keys = t0;
+ },
+ MidiInputMap_values_closure: function MidiInputMap_values_closure(t0) {
+ this.values = t0;
+ },
+ MidiMessageEvent: function MidiMessageEvent() {
+ },
+ MidiOutputMap: function MidiOutputMap() {
+ },
+ MidiOutputMap_keys_closure: function MidiOutputMap_keys_closure(t0) {
+ this.keys = t0;
+ },
+ MidiOutputMap_values_closure: function MidiOutputMap_values_closure(t0) {
+ this.values = t0;
+ },
+ MidiPort: function MidiPort() {
+ },
+ MimeType: function MimeType() {
+ },
+ MimeTypeArray: function MimeTypeArray() {
+ },
+ MouseEvent: function MouseEvent() {
+ },
+ Navigator0: function Navigator0() {
+ },
+ Navigator_getUserMedia_closure: function Navigator_getUserMedia_closure(t0) {
+ this.completer = t0;
+ },
+ Navigator_getUserMedia_closure0: function Navigator_getUserMedia_closure0(t0) {
+ this.completer = t0;
+ },
+ NavigatorConcurrentHardware: function NavigatorConcurrentHardware() {
+ },
+ NavigatorUserMediaError: function NavigatorUserMediaError() {
+ },
+ _ChildNodeListLazy: function _ChildNodeListLazy(t0) {
+ this._this = t0;
+ },
+ Node: function Node() {
+ },
+ NodeList: function NodeList() {
+ },
+ ObjectElement: function ObjectElement() {
+ },
+ OffscreenCanvas: function OffscreenCanvas() {
+ },
+ OutputElement: function OutputElement() {
+ },
+ OverconstrainedError: function OverconstrainedError() {
+ },
+ ParagraphElement: function ParagraphElement() {
+ },
+ ParamElement: function ParamElement() {
+ },
+ PasswordCredential: function PasswordCredential() {
+ },
+ PerformanceEntry: function PerformanceEntry() {
+ },
+ PerformanceServerTiming: function PerformanceServerTiming() {
+ },
+ Plugin: function Plugin() {
+ },
+ PluginArray: function PluginArray() {
+ },
+ PointerEvent: function PointerEvent() {
+ },
+ PresentationConnectionCloseEvent: function PresentationConnectionCloseEvent() {
+ },
+ ProgressEvent: function ProgressEvent() {
+ },
+ PromiseRejectionEvent: function PromiseRejectionEvent() {
+ },
+ PushEvent: function PushEvent() {
+ },
+ RtcDataChannelEvent: function RtcDataChannelEvent() {
+ },
+ RtcPeerConnection: function RtcPeerConnection() {
+ },
+ RtcPeerConnectionIceEvent: function RtcPeerConnectionIceEvent() {
+ },
+ RtcSessionDescription: function RtcSessionDescription() {
+ },
+ RtcStatsReport: function RtcStatsReport() {
+ },
+ RtcStatsReport_keys_closure: function RtcStatsReport_keys_closure(t0) {
+ this.keys = t0;
+ },
+ RtcStatsReport_values_closure: function RtcStatsReport_values_closure(t0) {
+ this.values = t0;
+ },
+ RtcTrackEvent: function RtcTrackEvent() {
+ },
+ ScreenOrientation: function ScreenOrientation() {
+ },
+ SelectElement: function SelectElement() {
+ },
+ SharedWorkerGlobalScope: function SharedWorkerGlobalScope() {
+ },
+ SlotElement: function SlotElement() {
+ },
+ SourceBuffer: function SourceBuffer() {
+ },
+ SourceBufferList: function SourceBufferList() {
+ },
+ SpanElement: function SpanElement() {
+ },
+ SpeechGrammar: function SpeechGrammar() {
+ },
+ SpeechGrammarList: function SpeechGrammarList() {
+ },
+ SpeechRecognitionResult: function SpeechRecognitionResult() {
+ },
+ SpeechSynthesisEvent: function SpeechSynthesisEvent() {
+ },
+ SpeechSynthesisVoice: function SpeechSynthesisVoice() {
+ },
+ Storage: function Storage() {
+ },
+ Storage_keys_closure: function Storage_keys_closure(t0) {
+ this.keys = t0;
+ },
+ Storage_values_closure: function Storage_values_closure(t0) {
+ this.values = t0;
+ },
+ StyleElement: function StyleElement() {
+ },
+ StyleSheet: function StyleSheet() {
+ },
+ TableElement: function TableElement() {
+ },
+ TableRowElement: function TableRowElement() {
+ },
+ TableSectionElement: function TableSectionElement() {
+ },
+ TemplateElement: function TemplateElement() {
+ },
+ TextAreaElement: function TextAreaElement() {
+ },
+ TextEvent: function TextEvent() {
+ },
+ TextTrack: function TextTrack() {
+ },
+ TextTrackCue: function TextTrackCue() {
+ },
+ TextTrackCueList: function TextTrackCueList() {
+ },
+ TextTrackList: function TextTrackList() {
+ },
+ TimeRanges: function TimeRanges() {
+ },
+ Touch: function Touch() {
+ },
+ TouchEvent: function TouchEvent() {
+ },
+ TouchList: function TouchList() {
+ },
+ TrackDefaultList: function TrackDefaultList() {
+ },
+ UIEvent: function UIEvent() {
+ },
+ Url: function Url() {
+ },
+ VRDisplayEvent: function VRDisplayEvent() {
+ },
+ VideoElement: function VideoElement() {
+ },
+ VideoTrackList: function VideoTrackList() {
+ },
+ VttRegion: function VttRegion() {
+ },
+ WheelEvent: function WheelEvent() {
+ },
+ Window: function Window() {
+ },
+ WorkerGlobalScope: function WorkerGlobalScope() {
+ },
+ _Attr: function _Attr() {
+ },
+ _CssRuleList: function _CssRuleList() {
+ },
+ _DomRect: function _DomRect() {
+ },
+ _GamepadList: function _GamepadList() {
+ },
+ _NamedNodeMap: function _NamedNodeMap() {
+ },
+ _SpeechRecognitionResultList: function _SpeechRecognitionResultList() {
+ },
+ _StyleSheetList: function _StyleSheetList() {
+ },
+ _AttributeMap: function _AttributeMap() {
+ },
+ _ElementAttributeMap: function _ElementAttributeMap(t0) {
+ this._html$_element = t0;
+ },
+ EventStreamProvider: function EventStreamProvider(t0, t1) {
+ this._eventType = t0;
+ this.$ti = t1;
+ },
+ _EventStream: function _EventStream(t0, t1, t2, t3) {
+ var _ = this;
+ _._html$_target = t0;
+ _._eventType = t1;
+ _._useCapture = t2;
+ _.$ti = t3;
+ },
+ _ElementEventStreamImpl: function _ElementEventStreamImpl(t0, t1, t2, t3) {
+ var _ = this;
+ _._html$_target = t0;
+ _._eventType = t1;
+ _._useCapture = t2;
+ _.$ti = t3;
+ },
+ _EventStreamSubscription: function _EventStreamSubscription(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._pauseCount = 0;
+ _._html$_target = t0;
+ _._eventType = t1;
+ _._onData = t2;
+ _._useCapture = t3;
+ _.$ti = t4;
+ },
+ _EventStreamSubscription_closure: function _EventStreamSubscription_closure(t0) {
+ this.onData = t0;
+ },
+ _EventStreamSubscription_onData_closure: function _EventStreamSubscription_onData_closure(t0) {
+ this.handleData = t0;
+ },
+ _Html5NodeValidator: function _Html5NodeValidator(t0) {
+ this.uriPolicy = t0;
+ },
+ ImmutableListMixin: function ImmutableListMixin() {
+ },
+ NodeValidatorBuilder: function NodeValidatorBuilder(t0) {
+ this._validators = t0;
+ },
+ NodeValidatorBuilder_allowsElement_closure: function NodeValidatorBuilder_allowsElement_closure(t0) {
+ this.element = t0;
+ },
+ NodeValidatorBuilder_allowsAttribute_closure: function NodeValidatorBuilder_allowsAttribute_closure(t0, t1, t2) {
+ this.element = t0;
+ this.attributeName = t1;
+ this.value = t2;
+ },
+ _SimpleNodeValidator: function _SimpleNodeValidator() {
+ },
+ _SimpleNodeValidator_closure: function _SimpleNodeValidator_closure() {
+ },
+ _SimpleNodeValidator_closure0: function _SimpleNodeValidator_closure0() {
+ },
+ _TemplatingNodeValidator: function _TemplatingNodeValidator(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._templateAttrs = t0;
+ _.allowedElements = t1;
+ _.allowedAttributes = t2;
+ _.allowedUriAttributes = t3;
+ _.uriPolicy = t4;
+ },
+ _TemplatingNodeValidator_closure: function _TemplatingNodeValidator_closure() {
+ },
+ _SvgNodeValidator: function _SvgNodeValidator() {
+ },
+ FixedSizeListIterator: function FixedSizeListIterator(t0, t1) {
+ var _ = this;
+ _._array = t0;
+ _._html$_length = t1;
+ _._html$_position = -1;
+ _._html$_current = null;
+ },
+ _DOMWindowCrossFrame: function _DOMWindowCrossFrame(t0) {
+ this._html$_window = t0;
+ },
+ _SameOriginUriPolicy: function _SameOriginUriPolicy(t0, t1) {
+ this._hiddenAnchor = t0;
+ this._loc = t1;
+ },
+ _ValidatingTreeSanitizer: function _ValidatingTreeSanitizer(t0) {
+ this.validator = t0;
+ this.modifiedTree = false;
+ },
+ _ValidatingTreeSanitizer_sanitizeTree_walk: function _ValidatingTreeSanitizer_sanitizeTree_walk(t0) {
+ this.$this = t0;
+ },
+ _CssStyleDeclaration_Interceptor_CssStyleDeclarationBase: function _CssStyleDeclaration_Interceptor_CssStyleDeclarationBase() {
+ },
+ _DomRectList_Interceptor_ListMixin: function _DomRectList_Interceptor_ListMixin() {
+ },
+ _DomRectList_Interceptor_ListMixin_ImmutableListMixin: function _DomRectList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _DomStringList_Interceptor_ListMixin: function _DomStringList_Interceptor_ListMixin() {
+ },
+ _DomStringList_Interceptor_ListMixin_ImmutableListMixin: function _DomStringList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _FileList_Interceptor_ListMixin: function _FileList_Interceptor_ListMixin() {
+ },
+ _FileList_Interceptor_ListMixin_ImmutableListMixin: function _FileList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _HtmlCollection_Interceptor_ListMixin: function _HtmlCollection_Interceptor_ListMixin() {
+ },
+ _HtmlCollection_Interceptor_ListMixin_ImmutableListMixin: function _HtmlCollection_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _MidiInputMap_Interceptor_MapMixin: function _MidiInputMap_Interceptor_MapMixin() {
+ },
+ _MidiOutputMap_Interceptor_MapMixin: function _MidiOutputMap_Interceptor_MapMixin() {
+ },
+ _MimeTypeArray_Interceptor_ListMixin: function _MimeTypeArray_Interceptor_ListMixin() {
+ },
+ _MimeTypeArray_Interceptor_ListMixin_ImmutableListMixin: function _MimeTypeArray_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _NodeList_Interceptor_ListMixin: function _NodeList_Interceptor_ListMixin() {
+ },
+ _NodeList_Interceptor_ListMixin_ImmutableListMixin: function _NodeList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _PluginArray_Interceptor_ListMixin: function _PluginArray_Interceptor_ListMixin() {
+ },
+ _PluginArray_Interceptor_ListMixin_ImmutableListMixin: function _PluginArray_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _RtcStatsReport_Interceptor_MapMixin: function _RtcStatsReport_Interceptor_MapMixin() {
+ },
+ _SourceBufferList_EventTarget_ListMixin: function _SourceBufferList_EventTarget_ListMixin() {
+ },
+ _SourceBufferList_EventTarget_ListMixin_ImmutableListMixin: function _SourceBufferList_EventTarget_ListMixin_ImmutableListMixin() {
+ },
+ _SpeechGrammarList_Interceptor_ListMixin: function _SpeechGrammarList_Interceptor_ListMixin() {
+ },
+ _SpeechGrammarList_Interceptor_ListMixin_ImmutableListMixin: function _SpeechGrammarList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _Storage_Interceptor_MapMixin: function _Storage_Interceptor_MapMixin() {
+ },
+ _TextTrackCueList_Interceptor_ListMixin: function _TextTrackCueList_Interceptor_ListMixin() {
+ },
+ _TextTrackCueList_Interceptor_ListMixin_ImmutableListMixin: function _TextTrackCueList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ _TextTrackList_EventTarget_ListMixin: function _TextTrackList_EventTarget_ListMixin() {
+ },
+ _TextTrackList_EventTarget_ListMixin_ImmutableListMixin: function _TextTrackList_EventTarget_ListMixin_ImmutableListMixin() {
+ },
+ _TouchList_Interceptor_ListMixin: function _TouchList_Interceptor_ListMixin() {
+ },
+ _TouchList_Interceptor_ListMixin_ImmutableListMixin: function _TouchList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ __CssRuleList_Interceptor_ListMixin: function __CssRuleList_Interceptor_ListMixin() {
+ },
+ __CssRuleList_Interceptor_ListMixin_ImmutableListMixin: function __CssRuleList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ __GamepadList_Interceptor_ListMixin: function __GamepadList_Interceptor_ListMixin() {
+ },
+ __GamepadList_Interceptor_ListMixin_ImmutableListMixin: function __GamepadList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ __NamedNodeMap_Interceptor_ListMixin: function __NamedNodeMap_Interceptor_ListMixin() {
+ },
+ __NamedNodeMap_Interceptor_ListMixin_ImmutableListMixin: function __NamedNodeMap_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ __SpeechRecognitionResultList_Interceptor_ListMixin: function __SpeechRecognitionResultList_Interceptor_ListMixin() {
+ },
+ __SpeechRecognitionResultList_Interceptor_ListMixin_ImmutableListMixin: function __SpeechRecognitionResultList_Interceptor_ListMixin_ImmutableListMixin() {
+ },
+ __StyleSheetList_Interceptor_ListMixin: function __StyleSheetList_Interceptor_ListMixin() {
+ },
+ __StyleSheetList_Interceptor_ListMixin_ImmutableListMixin: function __StyleSheetList_Interceptor_ListMixin_ImmutableListMixin() {
+ }
+ },
+ T = {
+ _indexOf: function(source, pattern, start, end) {
+ var realEnd, t1, index, t2,
+ patternLength = pattern.length;
+ if (patternLength === 0)
+ return start;
+ realEnd = end - patternLength;
+ if (realEnd < start)
+ return -1;
+ if (source.length - realEnd <= (realEnd - start) * 2) {
+ t1 = J.getInterceptor$asx(source);
+ index = 0;
+ while (true) {
+ if (start < realEnd) {
+ index = t1.indexOf$2(source, pattern, start);
+ t2 = index >= 0;
+ } else
+ t2 = false;
+ if (!t2)
+ break;
+ if (index > realEnd)
+ return -1;
+ if (A.isGraphemeClusterBoundary(source, start, end, index) && A.isGraphemeClusterBoundary(source, start, end, index + patternLength))
+ return index;
+ start = index + 1;
+ }
+ return -1;
+ }
+ return T._gcIndexOf(source, pattern, start, end);
+ },
+ _gcIndexOf: function(source, pattern, start, end) {
+ var t1, index, endIndex,
+ breaks = new A.Breaks(source, end, start, 0);
+ for (t1 = pattern.length; index = breaks.nextBreak$0(), index >= 0;) {
+ endIndex = index + t1;
+ if (endIndex > end)
+ break;
+ if (C.JSString_methods.startsWith$2(source, pattern, index) && A.isGraphemeClusterBoundary(source, start, end, endIndex))
+ return index;
+ }
+ return -1;
+ },
+ StringCharacters: function StringCharacters(t0) {
+ this.string = t0;
+ },
+ StringCharacterRange: function StringCharacterRange(t0, t1, t2) {
+ var _ = this;
+ _._characters_impl$_string = t0;
+ _._characters_impl$_start = t1;
+ _._characters_impl$_end = t2;
+ _._currentCache = null;
+ },
+ CupertinoIconThemeData: function CupertinoIconThemeData(t0, t1, t2) {
+ this.color = t0;
+ this._icon_theme_data$_opacity = t1;
+ this.size = t2;
+ },
+ _CupertinoIconThemeData_IconThemeData_Diagnosticable: function _CupertinoIconThemeData_IconThemeData_Diagnosticable() {
+ },
+ TargetPlatform: function TargetPlatform(t0) {
+ this._platform$_name = t0;
+ },
+ LongPressGestureRecognizer$: function(debugOwner, kind) {
+ var t1 = type$.int;
+ return new T.LongPressGestureRecognizer(C.Duration_500000, null, C.GestureRecognizerState_0, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), debugOwner, kind, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ LongPressStartDetails: function LongPressStartDetails(t0) {
+ this.globalPosition = t0;
+ },
+ LongPressMoveUpdateDetails: function LongPressMoveUpdateDetails(t0, t1) {
+ this.globalPosition = t0;
+ this.offsetFromOrigin = t1;
+ },
+ LongPressEndDetails: function LongPressEndDetails() {
+ },
+ LongPressGestureRecognizer: function LongPressGestureRecognizer(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._longPressAccepted = false;
+ _._velocityTracker = _.onSecondaryLongPressEnd = _.onSecondaryLongPressUp = _.onSecondaryLongPressMoveUpdate = _.onSecondaryLongPressStart = _.onSecondaryLongPress = _.onLongPressEnd = _.onLongPressUp = _.onLongPressMoveUpdate = _.onLongPressStart = _.onLongPress = _._long_press$_initialButtons = _._longPressOrigin = null;
+ _.deadline = t0;
+ _.postAcceptSlopTolerance = t1;
+ _.state = t2;
+ _.initialPosition = _.primaryPointer = null;
+ _._gestureAccepted = false;
+ _._recognizer$_timer = null;
+ _._recognizer$_entries = t3;
+ _._trackedPointers = t4;
+ _._team = null;
+ _.debugOwner = t5;
+ _._kindFilter = t6;
+ _._pointerToKind = t7;
+ },
+ LongPressGestureRecognizer__checkLongPressStart_closure: function LongPressGestureRecognizer__checkLongPressStart_closure(t0, t1) {
+ this.$this = t0;
+ this.details = t1;
+ },
+ LongPressGestureRecognizer__checkLongPressMoveUpdate_closure: function LongPressGestureRecognizer__checkLongPressMoveUpdate_closure(t0, t1) {
+ this.$this = t0;
+ this.details = t1;
+ },
+ LongPressGestureRecognizer__checkLongPressEnd_closure: function LongPressGestureRecognizer__checkLongPressEnd_closure(t0, t1) {
+ this.$this = t0;
+ this.details = t1;
+ },
+ ElevatedButtonThemeData_lerp: function(a, b, t) {
+ var t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ t1 = t1 ? null : a.style;
+ return new T.ElevatedButtonThemeData(A.ButtonStyle_lerp(t1, b == null ? null : b.style, t));
+ },
+ ElevatedButtonThemeData: function ElevatedButtonThemeData(t0) {
+ this.style = t0;
+ },
+ _ElevatedButtonThemeData_Object_Diagnosticable: function _ElevatedButtonThemeData_Object_Diagnosticable() {
+ },
+ TextButtonThemeData_lerp: function(a, b, t) {
+ var t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ t1 = t1 ? null : a.style;
+ return new T.TextButtonThemeData(A.ButtonStyle_lerp(t1, b == null ? null : b.style, t));
+ },
+ TextButtonThemeData: function TextButtonThemeData(t0) {
+ this.style = t0;
+ },
+ _TextButtonThemeData_Object_Diagnosticable: function _TextButtonThemeData_Object_Diagnosticable() {
+ },
+ TooltipThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.height;
+ t3 = b == null;
+ t2 = P.lerpDouble(t2, t3 ? _null : b.height, t);
+ t4 = t1 ? _null : a.padding;
+ t4 = V.EdgeInsetsGeometry_lerp(t4, t3 ? _null : b.padding, t);
+ t5 = t1 ? _null : a.margin;
+ t5 = V.EdgeInsetsGeometry_lerp(t5, t3 ? _null : b.margin, t);
+ t6 = t1 ? _null : a.verticalOffset;
+ t6 = P.lerpDouble(t6, t3 ? _null : b.verticalOffset, t);
+ t7 = t < 0.5;
+ if (t7)
+ t8 = t1 ? _null : a.preferBelow;
+ else
+ t8 = t3 ? _null : b.preferBelow;
+ if (t7)
+ t7 = t1 ? _null : a.excludeFromSemantics;
+ else
+ t7 = t3 ? _null : b.excludeFromSemantics;
+ t9 = t1 ? _null : a.decoration;
+ t9 = Z.Decoration_lerp(t9, t3 ? _null : b.decoration, t);
+ t1 = t1 ? _null : a.textStyle;
+ return new T.TooltipThemeData(t2, t4, t5, t6, t8, t7, t9, A.TextStyle_lerp(t1, t3 ? _null : b.textStyle, t));
+ },
+ TooltipThemeData: function TooltipThemeData(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.height = t0;
+ _.padding = t1;
+ _.margin = t2;
+ _.verticalOffset = t3;
+ _.preferBelow = t4;
+ _.excludeFromSemantics = t5;
+ _.decoration = t6;
+ _.textStyle = t7;
+ },
+ _TooltipThemeData_Object_Diagnosticable: function _TooltipThemeData_Object_Diagnosticable() {
+ },
+ _sample: function(colors, stops, t) {
+ var index, t1, t2, t3, t4;
+ if (t <= C.JSArray_methods.get$first(stops))
+ return C.JSArray_methods.get$first(colors);
+ if (t >= C.JSArray_methods.get$last(stops))
+ return C.JSArray_methods.get$last(colors);
+ index = C.JSArray_methods.lastIndexWhere$1(stops, new T._sample_closure(t));
+ t1 = colors[index];
+ t2 = index + 1;
+ t3 = colors[t2];
+ t4 = stops[index];
+ t4 = P.Color_lerp(t1, t3, (t - t4) / (stops[t2] - t4));
+ t4.toString;
+ return t4;
+ },
+ _interpolateColorsAndStops: function(aColors, aStops, bColors, bStops, t) {
+ var interpolatedStops, t1,
+ stops = P.SplayTreeSet$(null, null, type$.double);
+ stops.addAll$1(0, aStops);
+ stops.addAll$1(0, bStops);
+ interpolatedStops = P.List_List$of(stops, false, stops.$ti._eval$1("SetMixin.E"));
+ t1 = H._arrayInstanceType(interpolatedStops)._eval$1("MappedListIterable<1,Color>");
+ return new T._ColorsAndStops(P.List_List$of(new H.MappedListIterable(interpolatedStops, new T._interpolateColorsAndStops_closure(aColors, aStops, bColors, bStops, t), t1), false, t1._eval$1("ListIterable.E")), interpolatedStops);
+ },
+ Gradient_lerp: function(a, b, t) {
+ return null;
+ },
+ LinearGradient_lerp: function(a, b, t) {
+ var interpolated, t2, t3,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ return b.scale$1(0, t);
+ if (b == null)
+ return a.scale$1(0, 1 - t);
+ interpolated = T._interpolateColorsAndStops(a.colors, a._impliedStops$0(), b.colors, b._impliedStops$0(), t);
+ t1 = K.AlignmentGeometry_lerp(a.begin, b.begin, t);
+ t1.toString;
+ t2 = K.AlignmentGeometry_lerp(a.end, b.end, t);
+ t2.toString;
+ t3 = t < 0.5 ? a.tileMode : b.tileMode;
+ return new T.LinearGradient(t1, t2, t3, interpolated.colors, interpolated.stops, null);
+ },
+ _ColorsAndStops: function _ColorsAndStops(t0, t1) {
+ this.colors = t0;
+ this.stops = t1;
+ },
+ _sample_closure: function _sample_closure(t0) {
+ this.t = t0;
+ },
+ _interpolateColorsAndStops_closure: function _interpolateColorsAndStops_closure(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.aColors = t0;
+ _.aStops = t1;
+ _.bColors = t2;
+ _.bStops = t3;
+ _.t = t4;
+ },
+ Gradient: function Gradient() {
+ },
+ LinearGradient: function LinearGradient(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.begin = t0;
+ _.end = t1;
+ _.tileMode = t2;
+ _.colors = t3;
+ _.stops = t4;
+ _.transform = t5;
+ },
+ LinearGradient_scale_closure: function LinearGradient_scale_closure(t0) {
+ this.factor = t0;
+ },
+ Simulation: function Simulation() {
+ },
+ DebugOverflowIndicatorMixin: function DebugOverflowIndicatorMixin() {
+ },
+ PhysicalModelLayer$: function() {
+ return new T.PhysicalModelLayer(C.Clip_0);
+ },
+ FollowerLayer__collectTransformForLayerChain: function(layers) {
+ var index, t1,
+ result = new E.Matrix4(new Float64Array(16));
+ result.setIdentity$0();
+ for (index = layers.length - 1; index > 0; --index) {
+ t1 = layers[index];
+ if (t1 != null)
+ t1.applyTransform$2(layers[index - 1], result);
+ }
+ return result;
+ },
+ FollowerLayer__pathsToCommonAncestor: function(a, b, ancestorsA, ancestorsB) {
+ var t1, t2;
+ if (a == null || b == null)
+ return null;
+ if (a === b)
+ return a;
+ t1 = a._node$_depth;
+ t2 = b._node$_depth;
+ if (t1 < t2) {
+ t1 = type$.nullable_ContainerLayer;
+ ancestorsB.push(t1._as(B.AbstractNode.prototype.get$parent.call(b, b)));
+ return T.FollowerLayer__pathsToCommonAncestor(a, t1._as(B.AbstractNode.prototype.get$parent.call(b, b)), ancestorsA, ancestorsB);
+ } else if (t1 > t2) {
+ t1 = type$.nullable_ContainerLayer;
+ ancestorsA.push(t1._as(B.AbstractNode.prototype.get$parent.call(a, a)));
+ return T.FollowerLayer__pathsToCommonAncestor(t1._as(B.AbstractNode.prototype.get$parent.call(a, a)), b, ancestorsA, ancestorsB);
+ }
+ t1 = type$.nullable_ContainerLayer;
+ ancestorsA.push(t1._as(B.AbstractNode.prototype.get$parent.call(a, a)));
+ ancestorsB.push(t1._as(B.AbstractNode.prototype.get$parent.call(b, b)));
+ return T.FollowerLayer__pathsToCommonAncestor(t1._as(B.AbstractNode.prototype.get$parent.call(a, a)), t1._as(B.AbstractNode.prototype.get$parent.call(b, b)), ancestorsA, ancestorsB);
+ },
+ AnnotationEntry: function AnnotationEntry(t0, t1, t2) {
+ this.annotation = t0;
+ this.localPosition = t1;
+ this.$ti = t2;
+ },
+ AnnotationResult: function AnnotationResult(t0, t1) {
+ this._layer$_entries = t0;
+ this.$ti = t1;
+ },
+ Layer: function Layer() {
+ },
+ PictureLayer: function PictureLayer(t0) {
+ var _ = this;
+ _.canvasBounds = t0;
+ _._picture = null;
+ _._willChangeHint = _._isComplexHint = false;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ PlatformViewLayer: function PlatformViewLayer(t0, t1) {
+ var _ = this;
+ _.rect = t0;
+ _.viewId = t1;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ PerformanceOverlayLayer: function PerformanceOverlayLayer(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._overlayRect = t0;
+ _.optionsMask = t1;
+ _.rasterizerThreshold = t2;
+ _.checkerboardRasterCacheImages = t3;
+ _.checkerboardOffscreenLayers = t4;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ ContainerLayer: function ContainerLayer() {
+ },
+ OffsetLayer: function OffsetLayer(t0) {
+ var _ = this;
+ _._layer$_offset = t0;
+ _._lastChild = _._firstChild = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ ClipRectLayer: function ClipRectLayer(t0) {
+ var _ = this;
+ _._clipRect = null;
+ _._layer$_clipBehavior = t0;
+ _._lastChild = _._firstChild = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ ClipPathLayer: function ClipPathLayer(t0) {
+ var _ = this;
+ _._clipPath = null;
+ _._layer$_clipBehavior = t0;
+ _._lastChild = _._firstChild = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ TransformLayer: function TransformLayer(t0, t1) {
+ var _ = this;
+ _._layer$_transform = t0;
+ _._invertedTransform = _._lastEffectiveTransform = null;
+ _._inverseDirty = true;
+ _._layer$_offset = t1;
+ _._lastChild = _._firstChild = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ OpacityLayer: function OpacityLayer(t0) {
+ var _ = this;
+ _._layer$_alpha = null;
+ _._layer$_offset = t0;
+ _._lastChild = _._firstChild = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ PhysicalModelLayer: function PhysicalModelLayer(t0) {
+ var _ = this;
+ _._clipPath = null;
+ _._layer$_clipBehavior = t0;
+ _._lastChild = _._firstChild = _._layer$_shadowColor = _._layer$_color = _._layer$_elevation = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ LayerLink: function LayerLink() {
+ this.leaderSize = this._leader = null;
+ },
+ LeaderLayer: function LeaderLayer(t0, t1) {
+ var _ = this;
+ _._layer$_link = t0;
+ _.offset = t1;
+ _._lastChild = _._firstChild = _._lastOffset = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ FollowerLayer: function FollowerLayer(t0, t1, t2, t3) {
+ var _ = this;
+ _._layer$_link = t0;
+ _.showWhenUnlinked = t1;
+ _.unlinkedOffset = t2;
+ _.linkedOffset = t3;
+ _._invertedTransform = _._layer$_lastTransform = _._lastOffset = null;
+ _._inverseDirty = true;
+ _._lastChild = _._firstChild = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ AnnotatedRegionLayer: function AnnotatedRegionLayer(t0, t1, t2, t3) {
+ var _ = this;
+ _.value = t0;
+ _.size = t1;
+ _.offset = t2;
+ _._lastChild = _._firstChild = null;
+ _._needsAddToScene = true;
+ _.debugCreator = _._previousSibling = _._nextSibling = _._engineLayer = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ _.$ti = t3;
+ },
+ _Layer_AbstractNode_DiagnosticableTreeMixin: function _Layer_AbstractNode_DiagnosticableTreeMixin() {
+ },
+ RenderShiftedBox: function RenderShiftedBox() {
+ },
+ RenderShiftedBox_hitTestChildren_closure: function RenderShiftedBox_hitTestChildren_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.position = t1;
+ this.childParentData = t2;
+ },
+ RenderPadding: function RenderPadding(t0, t1, t2) {
+ var _ = this;
+ _._resolvedPadding = null;
+ _._shifted_box$_padding = t0;
+ _._shifted_box$_textDirection = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderAligningShiftedBox: function RenderAligningShiftedBox() {
+ },
+ RenderPositionedBox: function RenderPositionedBox(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._widthFactor = t0;
+ _._heightFactor = t1;
+ _._shifted_box$_resolvedAlignment = null;
+ _._shifted_box$_alignment = t2;
+ _._shifted_box$_textDirection = t3;
+ _.RenderObjectWithChildMixin__child = t4;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ SingleChildLayoutDelegate: function SingleChildLayoutDelegate() {
+ },
+ RenderCustomSingleChildLayoutBox: function RenderCustomSingleChildLayoutBox(t0, t1) {
+ var _ = this;
+ _._shifted_box$_delegate = t0;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderShiftedBox_RenderBox_RenderObjectWithChildMixin: function _RenderShiftedBox_RenderBox_RenderObjectWithChildMixin() {
+ },
+ RenderSliverEdgeInsetsPadding: function RenderSliverEdgeInsetsPadding() {
+ },
+ RenderSliverPadding: function RenderSliverPadding(t0, t1, t2) {
+ var _ = this;
+ _._sliver_padding$_resolvedPadding = null;
+ _._sliver_padding$_padding = t0;
+ _._sliver_padding$_textDirection = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _.debugCreator = _.parentData = _._sliver$_geometry = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderSliverEdgeInsetsPadding_RenderSliver_RenderObjectWithChildMixin: function _RenderSliverEdgeInsetsPadding_RenderSliver_RenderObjectWithChildMixin() {
+ },
+ Clipboard_setData: function(data) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$Clipboard_setData = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(C.OptionalMethodChannel_cWd.invokeMethod$1$2("Clipboard.setData", P.LinkedHashMap_LinkedHashMap$_literal(["text", data.text], type$.String, type$.dynamic), type$.void), $async$Clipboard_setData);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$Clipboard_setData, $async$completer);
+ },
+ Clipboard_getData: function(format) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.nullable_ClipboardData),
+ $async$returnValue, result;
+ var $async$Clipboard_getData = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait(C.OptionalMethodChannel_cWd.invokeMethod$1$2("Clipboard.getData", format, type$.Map_String_dynamic), $async$Clipboard_getData);
+ case 3:
+ // returning from await.
+ result = $async$result;
+ if (result == null) {
+ $async$returnValue = null;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $async$returnValue = new T.ClipboardData(H._asStringQ(J.$index$asx(result, "text")));
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$Clipboard_getData, $async$completer);
+ },
+ ClipboardData: function ClipboardData(t0) {
+ this.text = t0;
+ },
+ Directionality$: function(child, textDirection) {
+ return new T.Directionality(textDirection, child, null);
+ },
+ Directionality_maybeOf: function(context) {
+ var widget = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ return widget == null ? null : widget.textDirection;
+ },
+ Opacity$: function(alwaysIncludeSemantics, child, opacity) {
+ return new T.Opacity(opacity, false, child, null);
+ },
+ CustomPaint$: function(child, foregroundPainter, painter) {
+ return new T.CustomPaint(painter, foregroundPainter, child, null);
+ },
+ ClipPath$: function(child, clipBehavior, clipper) {
+ return new T.ClipPath(clipper, clipBehavior, child, null);
+ },
+ Transform$: function(alignment, child, transform, transformHitTests) {
+ return new T.Transform(transform, alignment, transformHitTests, child, null);
+ },
+ Transform$rotate: function(angle, child) {
+ return new T.Transform(E.Matrix4_Matrix4$rotationZ(angle), C.Alignment_0_0, true, child, null);
+ },
+ CompositedTransformFollower$: function(child, link, offset, showWhenUnlinked) {
+ return new T.CompositedTransformFollower(link, false, offset, child, null);
+ },
+ FractionalTranslation$: function(child, transformHitTests, translation) {
+ return new T.FractionalTranslation(translation, transformHitTests, child, null);
+ },
+ Center$: function(child, heightFactor, widthFactor) {
+ return new T.Center(C.Alignment_0_0, widthFactor, heightFactor, child, null);
+ },
+ LayoutId$: function(child, id) {
+ return new T.LayoutId(id, child, new D.ValueKey(id, type$.ValueKey_Object));
+ },
+ SizedBox$: function(child, height, width) {
+ return new T.SizedBox(width, height, child, null);
+ },
+ getAxisDirectionFromAxisReverseAndDirectionality: function(context, axis, reverse) {
+ var t1, axisDirection;
+ switch (axis) {
+ case C.Axis_0:
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ axisDirection = G.textDirectionToAxisDirection(t1.textDirection);
+ return axisDirection;
+ case C.Axis_1:
+ return C.AxisDirection_2;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ ListBody$: function(children) {
+ return new T.ListBody(children, null);
+ },
+ Stack$: function(alignment, children, fit) {
+ return new T.Stack(alignment, fit, children, null);
+ },
+ Positioned$: function(bottom, child, height, key, left, right, $top, width) {
+ return new T.Positioned(left, $top, right, bottom, width, height, child, key);
+ },
+ Row$: function(children, crossAxisAlignment, mainAxisAlignment, mainAxisSize) {
+ return new T.Row(C.Axis_0, mainAxisAlignment, mainAxisSize, crossAxisAlignment, null, C.VerticalDirection_1, null, children, null);
+ },
+ Column$: function(children, crossAxisAlignment, mainAxisAlignment, mainAxisSize) {
+ return new T.Column(C.Axis_1, mainAxisAlignment, mainAxisSize, crossAxisAlignment, null, C.VerticalDirection_1, null, children, null);
+ },
+ Flexible$: function(child) {
+ return new T.Flexible(child, null);
+ },
+ RichText$: function(locale, maxLines, overflow, softWrap, strutStyle, text, textAlign, textDirection, textHeightBehavior, textScaleFactor, textWidthBasis) {
+ return new T.RichText(text, textAlign, textDirection, softWrap, overflow, textScaleFactor, maxLines, locale, strutStyle, textWidthBasis, textHeightBehavior, T.RichText__extractChildren(text), null);
+ },
+ RichText__extractChildren: function(span) {
+ var result, t1 = {};
+ t1.index = 0;
+ result = H.setRuntimeTypeInfo([], type$.JSArray_Widget);
+ span.visitChildren$1(new T.RichText__extractChildren_closure(t1, result));
+ return result;
+ },
+ Listener$: function(behavior, child, onPointerCancel, onPointerDown, onPointerSignal, onPointerUp) {
+ return new T.Listener(onPointerDown, onPointerUp, onPointerCancel, onPointerSignal, behavior, child, null);
+ },
+ MouseRegion$: function(child, cursor, onEnter, onExit, opaque) {
+ return new T.MouseRegion(onEnter, onExit, cursor, true, child, null);
+ },
+ Semantics$: function(button, child, container, currentValueLength, enabled, explicitChildNodes, focusable, focused, header, label, liveRegion, maxValueLength, namesRoute, onCopy, onCut, onDismiss, onLongPress, onPaste, onTap, scopesRoute, selected, sortKey, tagForChildren, textDirection) {
+ var _null = null;
+ return new T.Semantics(new A.SemanticsProperties(enabled, _null, _null, selected, button, _null, header, _null, _null, _null, focusable, focused, _null, _null, _null, _null, scopesRoute, namesRoute, _null, liveRegion, maxValueLength, currentValueLength, label, _null, _null, _null, _null, _null, textDirection, sortKey, tagForChildren, onTap, onLongPress, _null, _null, _null, _null, _null, _null, onCopy, onCut, onPaste, _null, _null, _null, _null, _null, onDismiss, _null), container, explicitChildNodes, false, child, _null);
+ },
+ BlockSemantics$: function(child) {
+ return new T.BlockSemantics(child, null);
+ },
+ Directionality: function Directionality(t0, t1, t2) {
+ this.textDirection = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ Opacity: function Opacity(t0, t1, t2, t3) {
+ var _ = this;
+ _.opacity = t0;
+ _.alwaysIncludeSemantics = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ CustomPaint: function CustomPaint(t0, t1, t2, t3) {
+ var _ = this;
+ _.painter = t0;
+ _.foregroundPainter = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ ClipRect: function ClipRect(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ ClipPath: function ClipPath(t0, t1, t2, t3) {
+ var _ = this;
+ _.clipper = t0;
+ _.clipBehavior = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ PhysicalModel: function PhysicalModel(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.shape = t0;
+ _.clipBehavior = t1;
+ _.borderRadius = t2;
+ _.elevation = t3;
+ _.color = t4;
+ _.shadowColor = t5;
+ _.child = t6;
+ _.key = t7;
+ },
+ PhysicalShape: function PhysicalShape(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.clipper = t0;
+ _.clipBehavior = t1;
+ _.elevation = t2;
+ _.color = t3;
+ _.shadowColor = t4;
+ _.child = t5;
+ _.key = t6;
+ },
+ Transform: function Transform(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.transform = t0;
+ _.alignment = t1;
+ _.transformHitTests = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ CompositedTransformTarget: function CompositedTransformTarget(t0, t1, t2) {
+ this.link = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ CompositedTransformFollower: function CompositedTransformFollower(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.link = t0;
+ _.showWhenUnlinked = t1;
+ _.offset = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ FractionalTranslation: function FractionalTranslation(t0, t1, t2, t3) {
+ var _ = this;
+ _.translation = t0;
+ _.transformHitTests = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ Padding: function Padding(t0, t1, t2) {
+ this.padding = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ Align: function Align(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.alignment = t0;
+ _.widthFactor = t1;
+ _.heightFactor = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ Center: function Center(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.alignment = t0;
+ _.widthFactor = t1;
+ _.heightFactor = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ CustomSingleChildLayout: function CustomSingleChildLayout(t0, t1, t2) {
+ this.delegate = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ LayoutId: function LayoutId(t0, t1, t2) {
+ this.id = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ CustomMultiChildLayout: function CustomMultiChildLayout(t0, t1, t2) {
+ this.delegate = t0;
+ this.children = t1;
+ this.key = t2;
+ },
+ SizedBox: function SizedBox(t0, t1, t2, t3) {
+ var _ = this;
+ _.width = t0;
+ _.height = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ ConstrainedBox: function ConstrainedBox(t0, t1, t2) {
+ this.constraints = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ LimitedBox: function LimitedBox(t0, t1, t2, t3) {
+ var _ = this;
+ _.maxWidth = t0;
+ _.maxHeight = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ Offstage: function Offstage(t0, t1, t2) {
+ this.offstage = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _OffstageElement: function _OffstageElement(t0, t1, t2, t3) {
+ var _ = this;
+ _.__RenderObjectElement__renderObject = _._framework$_child = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t0;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t1;
+ _._owner = null;
+ _._lifecycleState = t2;
+ _._debugForgottenChildrenWithGlobalKey = t3;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ IntrinsicWidth: function IntrinsicWidth(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ SliverPadding: function SliverPadding(t0, t1, t2) {
+ this.padding = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ ListBody: function ListBody(t0, t1) {
+ this.children = t0;
+ this.key = t1;
+ },
+ Stack: function Stack(t0, t1, t2, t3) {
+ var _ = this;
+ _.alignment = t0;
+ _.fit = t1;
+ _.children = t2;
+ _.key = t3;
+ },
+ Positioned: function Positioned(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.left = t0;
+ _.top = t1;
+ _.right = t2;
+ _.bottom = t3;
+ _.width = t4;
+ _.height = t5;
+ _.child = t6;
+ _.key = t7;
+ },
+ PositionedDirectional: function PositionedDirectional(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.start = t0;
+ _.top = t1;
+ _.bottom = t2;
+ _.width = t3;
+ _.child = t4;
+ _.key = t5;
+ },
+ Flex: function Flex() {
+ },
+ Row: function Row(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.direction = t0;
+ _.mainAxisAlignment = t1;
+ _.mainAxisSize = t2;
+ _.crossAxisAlignment = t3;
+ _.textDirection = t4;
+ _.verticalDirection = t5;
+ _.textBaseline = t6;
+ _.children = t7;
+ _.key = t8;
+ },
+ Column: function Column(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.direction = t0;
+ _.mainAxisAlignment = t1;
+ _.mainAxisSize = t2;
+ _.crossAxisAlignment = t3;
+ _.textDirection = t4;
+ _.verticalDirection = t5;
+ _.textBaseline = t6;
+ _.children = t7;
+ _.key = t8;
+ },
+ Flexible: function Flexible(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ RichText: function RichText(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
+ var _ = this;
+ _.text = t0;
+ _.textAlign = t1;
+ _.textDirection = t2;
+ _.softWrap = t3;
+ _.overflow = t4;
+ _.textScaleFactor = t5;
+ _.maxLines = t6;
+ _.locale = t7;
+ _.strutStyle = t8;
+ _.textWidthBasis = t9;
+ _.textHeightBehavior = t10;
+ _.children = t11;
+ _.key = t12;
+ },
+ RichText__extractChildren_closure: function RichText__extractChildren_closure(t0, t1) {
+ this._box_0 = t0;
+ this.result = t1;
+ },
+ Listener: function Listener(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.onPointerDown = t0;
+ _.onPointerUp = t1;
+ _.onPointerCancel = t2;
+ _.onPointerSignal = t3;
+ _.behavior = t4;
+ _.child = t5;
+ _.key = t6;
+ },
+ MouseRegion: function MouseRegion(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.onEnter = t0;
+ _.onExit = t1;
+ _.cursor = t2;
+ _.opaque = t3;
+ _.child = t4;
+ _.key = t5;
+ },
+ _MouseRegionState: function _MouseRegionState(t0) {
+ this._widget = null;
+ this._debugLifecycleState = t0;
+ this._framework$_element = null;
+ },
+ _RawMouseRegion: function _RawMouseRegion(t0, t1, t2) {
+ this.owner = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ RepaintBoundary: function RepaintBoundary(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ IgnorePointer: function IgnorePointer(t0, t1, t2, t3) {
+ var _ = this;
+ _.ignoring = t0;
+ _.ignoringSemantics = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ AbsorbPointer: function AbsorbPointer(t0, t1, t2) {
+ this.absorbing = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ Semantics: function Semantics(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.properties = t0;
+ _.container = t1;
+ _.explicitChildNodes = t2;
+ _.excludeSemantics = t3;
+ _.child = t4;
+ _.key = t5;
+ },
+ MergeSemantics: function MergeSemantics(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ BlockSemantics: function BlockSemantics(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ ExcludeSemantics: function ExcludeSemantics(t0, t1, t2) {
+ this.excluding = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ IndexedSemantics: function IndexedSemantics(t0, t1, t2) {
+ this.index = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ KeyedSubtree: function KeyedSubtree(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ Builder: function Builder(t0, t1) {
+ this.builder = t0;
+ this.key = t1;
+ },
+ ColoredBox: function ColoredBox(t0, t1, t2) {
+ this.color = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _RenderColoredBox: function _RenderColoredBox(t0, t1, t2) {
+ var _ = this;
+ _._basic$_color = t0;
+ _.behavior = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _boundingBoxFor: function(context, ancestorContext) {
+ var t2,
+ t1 = context.get$renderObject();
+ t1.toString;
+ type$.RenderBox._as(t1);
+ t2 = t1.getTransformTo$1(0, ancestorContext == null ? null : ancestorContext.get$renderObject());
+ t1 = t1._size;
+ return T.MatrixUtils_transformRect(t2, new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy));
+ },
+ Hero__allHeroesFor: function(context, isUserGestureTransition, $navigator) {
+ var result = P.LinkedHashMap_LinkedHashMap$_empty(type$.Object, type$._HeroState);
+ context.visitChildren$1(new T.Hero__allHeroesFor_visitor($navigator, new T.Hero__allHeroesFor_inviteHero(result, isUserGestureTransition)));
+ return result;
+ },
+ HeroFlightDirection: function HeroFlightDirection(t0) {
+ this._heroes$_name = t0;
+ },
+ Hero: function Hero(t0, t1, t2) {
+ this.tag = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ Hero__allHeroesFor_inviteHero: function Hero__allHeroesFor_inviteHero(t0, t1) {
+ this.result = t0;
+ this.isUserGestureTransition = t1;
+ },
+ Hero__allHeroesFor_visitor: function Hero__allHeroesFor_visitor(t0, t1) {
+ this.navigator = t0;
+ this.inviteHero = t1;
+ },
+ _HeroState: function _HeroState(t0, t1) {
+ var _ = this;
+ _._heroes$_key = t0;
+ _._placeholderSize = null;
+ _._shouldIncludeChild = true;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _HeroState_startFlight_closure: function _HeroState_startFlight_closure(t0, t1) {
+ this.$this = t0;
+ this.box = t1;
+ },
+ _HeroState_ensurePlaceholderIsHidden_closure: function _HeroState_ensurePlaceholderIsHidden_closure(t0) {
+ this.$this = t0;
+ },
+ _HeroFlightManifest: function _HeroFlightManifest(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.type = t0;
+ _.overlay = t1;
+ _.navigatorRect = t2;
+ _.fromRoute = t3;
+ _.toRoute = t4;
+ _.fromHero = t5;
+ _.toHero = t6;
+ _.createRectTween = t7;
+ _.shuttleBuilder = t8;
+ _.isUserGestureTransition = t9;
+ _.isDiverted = t10;
+ },
+ _HeroFlight: function _HeroFlight(t0, t1) {
+ var _ = this;
+ _.onFlightEnded = t0;
+ _.___HeroFlight_heroRectTween = null;
+ _.___HeroFlight_heroRectTween_isSet = false;
+ _.shuttle = null;
+ _._heroOpacity = t1;
+ _.___HeroFlight__proxyAnimation = null;
+ _.___HeroFlight__proxyAnimation_isSet = false;
+ _.overlayEntry = _.manifest = null;
+ _._scheduledPerformAnimtationUpdate = _._aborted = false;
+ },
+ _HeroFlight__buildOverlay_closure: function _HeroFlight__buildOverlay_closure(t0) {
+ this.$this = t0;
+ },
+ _HeroFlight__handleAnimationUpdate_delayedPerformAnimtationUpdate: function _HeroFlight__handleAnimationUpdate_delayedPerformAnimtationUpdate(t0, t1) {
+ this.$this = t0;
+ this.navigator = t1;
+ },
+ HeroController: function HeroController(t0, t1) {
+ this.createRectTween = t0;
+ this._flights = t1;
+ this._navigator$_navigator = null;
+ },
+ HeroController_didStopUserGesture_isInvalidFlight: function HeroController_didStopUserGesture_isInvalidFlight() {
+ },
+ HeroController__maybeStartHeroTransition_closure: function HeroController__maybeStartHeroTransition_closure(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.$this = t0;
+ _.from = t1;
+ _.to = t2;
+ _.animation = t3;
+ _.flightType = t4;
+ _.isUserGestureTransition = t5;
+ },
+ HeroController_closure: function HeroController_closure() {
+ },
+ IconThemeData_lerp: function(a, b, t) {
+ var t4, _null = null,
+ t1 = a == null,
+ t2 = t1 ? _null : a.color,
+ t3 = b == null;
+ t2 = P.Color_lerp(t2, t3 ? _null : b.color, t);
+ t4 = t1 ? _null : a.get$opacity(a);
+ t4 = P.lerpDouble(t4, t3 ? _null : b.get$opacity(b), t);
+ t1 = t1 ? _null : a.size;
+ return new T.IconThemeData(t2, t4, P.lerpDouble(t1, t3 ? _null : b.size, t));
+ },
+ IconThemeData: function IconThemeData(t0, t1, t2) {
+ this.color = t0;
+ this._icon_theme_data$_opacity = t1;
+ this.size = t2;
+ },
+ _IconThemeData_Object_Diagnosticable: function _IconThemeData_Object_Diagnosticable() {
+ },
+ ModalRoute_of: function(context, $T) {
+ var widget = context.dependOnInheritedWidgetOfExactType$1$0(type$._ModalScopeStatus),
+ t1 = widget == null ? null : widget.route;
+ return $T._eval$1("ModalRoute<0>?")._as(t1);
+ },
+ OverlayRoute: function OverlayRoute() {
+ },
+ TransitionRoute: function TransitionRoute() {
+ },
+ TransitionRoute__updateSecondaryAnimation__jumpOnAnimationEnd: function TransitionRoute__updateSecondaryAnimation__jumpOnAnimationEnd(t0, t1, t2) {
+ this.$this = t0;
+ this.nextTrain = t1;
+ this.nextRoute = t2;
+ },
+ TransitionRoute__updateSecondaryAnimation_closure: function TransitionRoute__updateSecondaryAnimation_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.nextTrain = t1;
+ this._jumpOnAnimationEnd = t2;
+ },
+ TransitionRoute__updateSecondaryAnimation_closure0: function TransitionRoute__updateSecondaryAnimation_closure0(t0, t1, t2) {
+ this._box_0 = t0;
+ this.$this = t1;
+ this.nextRoute = t2;
+ },
+ TransitionRoute__setSecondaryAnimation_closure: function TransitionRoute__setSecondaryAnimation_closure(t0, t1) {
+ this.$this = t0;
+ this.animation = t1;
+ },
+ LocalHistoryRoute: function LocalHistoryRoute() {
+ },
+ _DismissModalAction: function _DismissModalAction(t0) {
+ this._actions$_listeners = t0;
+ },
+ _ModalScopeStatus: function _ModalScopeStatus(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.isCurrent = t0;
+ _.canPop = t1;
+ _.route = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ _ModalScope: function _ModalScope(t0, t1, t2) {
+ this.route = t0;
+ this.key = t1;
+ this.$ti = t2;
+ },
+ _ModalScopeState: function _ModalScopeState(t0, t1, t2) {
+ var _ = this;
+ _.___ModalScopeState__listenable = _._page = null;
+ _.___ModalScopeState__listenable_isSet = false;
+ _.focusScopeNode = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ _.$ti = t2;
+ },
+ _ModalScopeState__forceRebuildPage_closure: function _ModalScopeState__forceRebuildPage_closure(t0) {
+ this.$this = t0;
+ },
+ _ModalScopeState_build_closure0: function _ModalScopeState_build_closure0(t0) {
+ this.$this = t0;
+ },
+ _ModalScopeState_build_closure1: function _ModalScopeState_build_closure1(t0) {
+ this.$this = t0;
+ },
+ _ModalScopeState_build__closure: function _ModalScopeState_build__closure(t0) {
+ this.$this = t0;
+ },
+ _ModalScopeState_build_closure: function _ModalScopeState_build_closure(t0) {
+ this.$this = t0;
+ },
+ ModalRoute: function ModalRoute() {
+ },
+ ModalRoute_offstage_closure: function ModalRoute_offstage_closure(t0, t1) {
+ this.$this = t0;
+ this.value = t1;
+ },
+ ModalRoute_changedInternalState_closure: function ModalRoute_changedInternalState_closure() {
+ },
+ PopupRoute: function PopupRoute() {
+ },
+ _DialogRoute: function _DialogRoute(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18) {
+ var _ = this;
+ _._pageBuilder = t0;
+ _._barrierDismissible = t1;
+ _._barrierLabel = t2;
+ _._barrierColor = t3;
+ _._transitionDuration = t4;
+ _._transitionBuilder = t5;
+ _._routes$_filter = t6;
+ _._offstage = false;
+ _._secondaryAnimationProxy = _._animationProxy = null;
+ _._willPopCallbacks = t7;
+ _._scopeKey = t8;
+ _._subtreeKey = t9;
+ _._storageBucket = t10;
+ _.__ModalRoute__modalBarrier = null;
+ _.__ModalRoute__modalBarrier_isSet = false;
+ _.__ModalRoute__modalScope = _._modalScopeCache = null;
+ _.__ModalRoute__modalScope_isSet = false;
+ _.LocalHistoryRoute__localHistory = t11;
+ _._transitionCompleter = t12;
+ _._routes$_controller = _._routes$_animation = null;
+ _._secondaryAnimation = t13;
+ _._trainHoppingListenerRemover = _._result = null;
+ _._overlayEntries = t14;
+ _._navigator$_navigator = null;
+ _._settings = t15;
+ _._restorationScopeId = t16;
+ _._popCompleter = t17;
+ _.$ti = t18;
+ },
+ _ModalRoute_TransitionRoute_LocalHistoryRoute: function _ModalRoute_TransitionRoute_LocalHistoryRoute() {
+ },
+ RTCRtpTransceiverWeb: function RTCRtpTransceiverWeb() {
+ },
+ DataChannelSample: function DataChannelSample(t0, t1) {
+ this.host = t0;
+ this.key = t1;
+ },
+ _DataChannelSampleState: function _DataChannelSampleState(t0) {
+ var _ = this;
+ _._data_channel_sample$_selfId = _._data_channel_sample$_peers = _._data_channel_sample$_signaling = null;
+ _._data_channel_sample$_inCalling = false;
+ _._data_channel_sample$_timer = _._data_channel_sample$_session = _._dataChannel = null;
+ _._data_channel_sample$_text = "";
+ _._widget = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _DataChannelSampleState__connect_closure: function _DataChannelSampleState__connect_closure(t0) {
+ this.$this = t0;
+ },
+ _DataChannelSampleState__connect__closure2: function _DataChannelSampleState__connect__closure2(t0, t1) {
+ this.$this = t0;
+ this.data = t1;
+ },
+ _DataChannelSampleState__connect_closure0: function _DataChannelSampleState__connect_closure0(t0) {
+ this.$this = t0;
+ },
+ _DataChannelSampleState__connect_closure1: function _DataChannelSampleState__connect_closure1() {
+ },
+ _DataChannelSampleState__connect_closure2: function _DataChannelSampleState__connect_closure2(t0) {
+ this.$this = t0;
+ },
+ _DataChannelSampleState__connect__closure0: function _DataChannelSampleState__connect__closure0(t0, t1) {
+ this.$this = t0;
+ this.session = t1;
+ },
+ _DataChannelSampleState__connect__closure1: function _DataChannelSampleState__connect__closure1(t0) {
+ this.$this = t0;
+ },
+ _DataChannelSampleState__connect_closure3: function _DataChannelSampleState__connect_closure3(t0) {
+ this.$this = t0;
+ },
+ _DataChannelSampleState__connect__closure: function _DataChannelSampleState__connect__closure(t0, t1) {
+ this.$this = t0;
+ this.event = t1;
+ },
+ _DataChannelSampleState__buildRow_closure: function _DataChannelSampleState__buildRow_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.context = t1;
+ this.peer = t2;
+ },
+ _DataChannelSampleState_build_closure: function _DataChannelSampleState_build_closure(t0) {
+ this.$this = t0;
+ },
+ BaseResponse: function BaseResponse() {
+ },
+ MatrixUtils_getAsTranslation: function(transform) {
+ var values = transform._m4storage;
+ if (values[0] === 1 && values[1] === 0 && values[2] === 0 && values[3] === 0 && values[4] === 0 && values[5] === 1 && values[6] === 0 && values[7] === 0 && values[8] === 0 && values[9] === 0 && values[10] === 1 && values[11] === 0 && values[14] === 0 && values[15] === 1)
+ return new P.Offset(values[12], values[13]);
+ return null;
+ },
+ MatrixUtils_matrixEquals: function(a, b) {
+ var t1, t2, t3;
+ if (a == b)
+ return true;
+ if (a == null) {
+ b.toString;
+ return T.MatrixUtils_isIdentity(b);
+ }
+ if (b == null)
+ return T.MatrixUtils_isIdentity(a);
+ t1 = a._m4storage;
+ t2 = t1[0];
+ t3 = b._m4storage;
+ return t2 === t3[0] && t1[1] === t3[1] && t1[2] === t3[2] && t1[3] === t3[3] && t1[4] === t3[4] && t1[5] === t3[5] && t1[6] === t3[6] && t1[7] === t3[7] && t1[8] === t3[8] && t1[9] === t3[9] && t1[10] === t3[10] && t1[11] === t3[11] && t1[12] === t3[12] && t1[13] === t3[13] && t1[14] === t3[14] && t1[15] === t3[15];
+ },
+ MatrixUtils_isIdentity: function(a) {
+ var t1 = a._m4storage;
+ return t1[0] === 1 && t1[1] === 0 && t1[2] === 0 && t1[3] === 0 && t1[4] === 0 && t1[5] === 1 && t1[6] === 0 && t1[7] === 0 && t1[8] === 0 && t1[9] === 0 && t1[10] === 1 && t1[11] === 0 && t1[12] === 0 && t1[13] === 0 && t1[14] === 0 && t1[15] === 1;
+ },
+ MatrixUtils_transformPoint: function(transform, point) {
+ var storage = transform._m4storage,
+ x = point._dx,
+ y = point._dy,
+ rx = storage[0] * x + storage[4] * y + storage[12],
+ ry = storage[1] * x + storage[5] * y + storage[13],
+ rw = storage[3] * x + storage[7] * y + storage[15];
+ if (rw === 1)
+ return new P.Offset(rx, ry);
+ else
+ return new P.Offset(rx / rw, ry / rw);
+ },
+ MatrixUtils__minMax: function() {
+ if (!$.MatrixUtils____minMax_isSet) {
+ var t1 = new Float64Array(4);
+ if ($.MatrixUtils____minMax_isSet)
+ throw H.wrapException(H.LateError$fieldADI("_minMax"));
+ $.MatrixUtils____minMax = t1;
+ $.MatrixUtils____minMax_isSet = true;
+ }
+ return $.MatrixUtils____minMax;
+ },
+ MatrixUtils__accumulate: function(m, x, y, first, isAffine) {
+ var t1,
+ w = isAffine ? 1 : 1 / (m[3] * x + m[7] * y + m[15]),
+ tx = (m[0] * x + m[4] * y + m[12]) * w,
+ ty = (m[1] * x + m[5] * y + m[13]) * w;
+ if (first) {
+ t1 = T.MatrixUtils__minMax();
+ T.MatrixUtils__minMax()[2] = tx;
+ t1[0] = tx;
+ t1 = T.MatrixUtils__minMax();
+ T.MatrixUtils__minMax()[3] = ty;
+ t1[1] = ty;
+ } else {
+ if (tx < T.MatrixUtils__minMax()[0])
+ T.MatrixUtils__minMax()[0] = tx;
+ if (ty < T.MatrixUtils__minMax()[1])
+ T.MatrixUtils__minMax()[1] = ty;
+ if (tx > T.MatrixUtils__minMax()[2])
+ T.MatrixUtils__minMax()[2] = tx;
+ if (ty > T.MatrixUtils__minMax()[3])
+ T.MatrixUtils__minMax()[3] = ty;
+ }
+ },
+ MatrixUtils_transformRect: function(transform, rect) {
+ var isAffine, wx, hx, rx, wy, hy, ry, left, right, $top, bottom, hw, rw, ulx, uly, urx, t3, ury, t4, llx, lly, lrx, lry,
+ storage = transform._m4storage,
+ x = rect.left,
+ y = rect.top,
+ t1 = rect.right,
+ w = t1 - x,
+ t2 = rect.bottom,
+ h = t2 - y;
+ if (!isFinite(w) || !isFinite(h)) {
+ isAffine = storage[3] === 0 && storage[7] === 0 && storage[15] === 1;
+ T.MatrixUtils__accumulate(storage, x, y, true, isAffine);
+ T.MatrixUtils__accumulate(storage, t1, y, false, isAffine);
+ T.MatrixUtils__accumulate(storage, x, t2, false, isAffine);
+ T.MatrixUtils__accumulate(storage, t1, t2, false, isAffine);
+ return new P.Rect(T.MatrixUtils__minMax()[0], T.MatrixUtils__minMax()[1], T.MatrixUtils__minMax()[2], T.MatrixUtils__minMax()[3]);
+ }
+ t1 = storage[0];
+ wx = t1 * w;
+ t2 = storage[4];
+ hx = t2 * h;
+ rx = t1 * x + t2 * y + storage[12];
+ t2 = storage[1];
+ wy = t2 * w;
+ t1 = storage[5];
+ hy = t1 * h;
+ ry = t2 * x + t1 * y + storage[13];
+ t1 = storage[3];
+ if (t1 === 0 && storage[7] === 0 && storage[15] === 1) {
+ left = rx + wx;
+ if (wx < 0)
+ right = rx;
+ else {
+ right = left;
+ left = rx;
+ }
+ if (hx < 0)
+ left += hx;
+ else
+ right += hx;
+ $top = ry + wy;
+ if (wy < 0)
+ bottom = ry;
+ else {
+ bottom = $top;
+ $top = ry;
+ }
+ if (hy < 0)
+ $top += hy;
+ else
+ bottom += hy;
+ return new P.Rect(left, $top, right, bottom);
+ } else {
+ t2 = storage[7];
+ hw = t2 * h;
+ rw = t1 * x + t2 * y + storage[15];
+ ulx = rx / rw;
+ uly = ry / rw;
+ t2 = rx + wx;
+ t1 = rw + t1 * w;
+ urx = t2 / t1;
+ t3 = ry + wy;
+ ury = t3 / t1;
+ t4 = rw + hw;
+ llx = (rx + hx) / t4;
+ lly = (ry + hy) / t4;
+ t1 += hw;
+ lrx = (t2 + hx) / t1;
+ lry = (t3 + hy) / t1;
+ return new P.Rect(T.MatrixUtils__min4(ulx, urx, llx, lrx), T.MatrixUtils__min4(uly, ury, lly, lry), T.MatrixUtils__max4(ulx, urx, llx, lrx), T.MatrixUtils__max4(uly, ury, lly, lry));
+ }
+ },
+ MatrixUtils__min4: function(a, b, c, d) {
+ var e = a < b ? a : b,
+ f = c < d ? c : d;
+ return e < f ? e : f;
+ },
+ MatrixUtils__max4: function(a, b, c, d) {
+ var e = a > b ? a : b,
+ f = c > d ? c : d;
+ return e > f ? e : f;
+ },
+ MatrixUtils_inverseTransformRect: function(transform, rect) {
+ var transform0;
+ if (T.MatrixUtils_isIdentity(transform))
+ return rect;
+ transform0 = new E.Matrix4(new Float64Array(16));
+ transform0.setFrom$1(transform);
+ transform0.copyInverse$1(transform0);
+ return T.MatrixUtils_transformRect(transform0, rect);
+ },
+ MatrixUtils_forceToPoint: function(offset) {
+ var t2,
+ t1 = new E.Matrix4(new Float64Array(16));
+ t1.setIdentity$0();
+ t2 = new E.Vector4(new Float64Array(4));
+ t2.setValues$4(0, 0, 0, offset._dx);
+ t1.setRow$2(0, t2);
+ t2 = new E.Vector4(new Float64Array(4));
+ t2.setValues$4(0, 0, 0, offset._dy);
+ t1.setRow$2(1, t2);
+ return t1;
+ }
+ },
+ A = {
+ lookAhead: function(base, start, cursor, state) {
+ if (state === 208)
+ return A.lookAheadRegional(base, start, cursor);
+ if (state === 224) {
+ if (A.lookAheadPictorgraphicExtend(base, start, cursor) >= 0)
+ return 145;
+ return 64;
+ }
+ throw H.wrapException(P.StateError$("Unexpected state: " + C.JSInt_methods.toRadixString$1(state, 16)));
+ },
+ lookAheadRegional: function(base, start, cursor) {
+ var t1, index, count, index0, tail, lead;
+ for (t1 = J.getInterceptor$s(base), index = cursor, count = 0; index0 = index - 2, index0 >= start; index = index0) {
+ tail = t1.codeUnitAt$1(base, index - 1);
+ if ((tail & 64512) !== 56320)
+ break;
+ lead = C.JSString_methods.codeUnitAt$1(base, index0);
+ if ((lead & 64512) !== 55296)
+ break;
+ if (S.high(lead, tail) !== 6)
+ break;
+ count ^= 1;
+ }
+ if (count === 0)
+ return 193;
+ else
+ return 144;
+ },
+ lookAheadPictorgraphicExtend: function(base, start, cursor) {
+ var t1, index, char, category, prevChar, t2;
+ for (t1 = J.getInterceptor$s(base), index = cursor; index > start;) {
+ --index;
+ char = t1.codeUnitAt$1(base, index);
+ if ((char & 64512) !== 56320)
+ category = S.low(char);
+ else {
+ if (index > start) {
+ --index;
+ prevChar = C.JSString_methods.codeUnitAt$1(base, index);
+ t2 = (prevChar & 64512) === 55296;
+ } else {
+ prevChar = 0;
+ t2 = false;
+ }
+ if (t2)
+ category = S.high(prevChar, char);
+ else
+ break;
+ }
+ if (category === 7)
+ return index;
+ if (category !== 4)
+ break;
+ }
+ return -1;
+ },
+ isGraphemeClusterBoundary: function(text, start, end, index) {
+ var char, index0, prevChar, catAfter, t1, nextChar, catBefore, prevPrevChar, state,
+ _s208_ = string$.x10__0__;
+ if (start < index && index < end) {
+ char = C.JSString_methods.codeUnitAt$1(text, index);
+ index0 = index - 1;
+ prevChar = C.JSString_methods.codeUnitAt$1(text, index0);
+ if ((char & 63488) !== 55296)
+ catAfter = S.low(char);
+ else if ((char & 64512) === 55296) {
+ t1 = index + 1;
+ if (t1 >= end)
+ return true;
+ nextChar = C.JSString_methods.codeUnitAt$1(text, t1);
+ if ((nextChar & 64512) !== 56320)
+ return true;
+ catAfter = S.high(char, nextChar);
+ } else
+ return (prevChar & 64512) !== 55296;
+ if ((prevChar & 64512) !== 56320) {
+ catBefore = S.low(prevChar);
+ index = index0;
+ } else {
+ index -= 2;
+ if (start <= index) {
+ prevPrevChar = C.JSString_methods.codeUnitAt$1(text, index);
+ if ((prevPrevChar & 64512) !== 55296)
+ return true;
+ catBefore = S.high(prevPrevChar, prevChar);
+ } else
+ return true;
+ }
+ state = C.JSString_methods._codeUnitAt$1(_s208_, C.JSString_methods._codeUnitAt$1(_s208_, catAfter | 176) & 240 | catBefore);
+ return ((state >= 208 ? A.lookAhead(text, start, index, state) : state) & 1) === 0;
+ }
+ return start !== end;
+ },
+ Breaks: function Breaks(t0, t1, t2, t3) {
+ var _ = this;
+ _.base = t0;
+ _.end = t1;
+ _.cursor = t2;
+ _.state = t3;
+ },
+ BackBreaks: function BackBreaks(t0, t1, t2, t3) {
+ var _ = this;
+ _.base = t0;
+ _.start = t1;
+ _.cursor = t2;
+ _.state = t3;
+ },
+ ButtonStyle$: function(animationDuration, backgroundColor, elevation, enableFeedback, foregroundColor, minimumSize, mouseCursor, overlayColor, padding, shadowColor, shape, side, tapTargetSize, textStyle, visualDensity) {
+ return new A.ButtonStyle(textStyle, backgroundColor, foregroundColor, overlayColor, shadowColor, elevation, padding, minimumSize, side, shape, mouseCursor, visualDensity, tapTargetSize, animationDuration, enableFeedback);
+ },
+ ButtonStyle_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.textStyle;
+ t3 = b == null;
+ t4 = t3 ? _null : b.textStyle;
+ t4 = A.ButtonStyle__lerpProperties(t2, t4, t, A.text_style_TextStyle_lerp$closure(), type$.nullable_TextStyle);
+ t2 = t1 ? _null : a.backgroundColor;
+ t5 = t3 ? _null : b.backgroundColor;
+ t6 = type$.nullable_Color;
+ t5 = A.ButtonStyle__lerpProperties(t2, t5, t, P.ui_Color_lerp$closure(), t6);
+ t2 = t1 ? _null : a.foregroundColor;
+ t2 = A.ButtonStyle__lerpProperties(t2, t3 ? _null : b.foregroundColor, t, P.ui_Color_lerp$closure(), t6);
+ t7 = t1 ? _null : a.overlayColor;
+ t7 = A.ButtonStyle__lerpProperties(t7, t3 ? _null : b.overlayColor, t, P.ui_Color_lerp$closure(), t6);
+ t8 = t1 ? _null : a.shadowColor;
+ t6 = A.ButtonStyle__lerpProperties(t8, t3 ? _null : b.shadowColor, t, P.ui_Color_lerp$closure(), t6);
+ t8 = t1 ? _null : a.elevation;
+ t9 = t3 ? _null : b.elevation;
+ t9 = A.ButtonStyle__lerpProperties(t8, t9, t, P.ui__lerpDouble$closure(), type$.nullable_double);
+ t8 = t1 ? _null : a.padding;
+ t10 = t3 ? _null : b.padding;
+ t10 = A.ButtonStyle__lerpProperties(t8, t10, t, V.edge_insets_EdgeInsetsGeometry_lerp$closure(), type$.nullable_EdgeInsetsGeometry);
+ t8 = t1 ? _null : a.minimumSize;
+ t11 = t3 ? _null : b.minimumSize;
+ t11 = A.ButtonStyle__lerpProperties(t8, t11, t, P.ui_Size_lerp$closure(), type$.nullable_Size);
+ t8 = t1 ? _null : a.side;
+ t8 = A.ButtonStyle__lerpSides(t8, t3 ? _null : b.side, t);
+ t12 = t1 ? _null : a.shape;
+ t12 = A.ButtonStyle__lerpShapes(t12, t3 ? _null : b.shape, t);
+ t13 = t < 0.5;
+ if (t13)
+ t14 = t1 ? _null : a.mouseCursor;
+ else
+ t14 = t3 ? _null : b.mouseCursor;
+ if (t13)
+ t15 = t1 ? _null : a.visualDensity;
+ else
+ t15 = t3 ? _null : b.visualDensity;
+ if (t13)
+ t16 = t1 ? _null : a.tapTargetSize;
+ else
+ t16 = t3 ? _null : b.tapTargetSize;
+ if (t13)
+ t17 = t1 ? _null : a.animationDuration;
+ else
+ t17 = t3 ? _null : b.animationDuration;
+ if (t13)
+ t1 = t1 ? _null : a.enableFeedback;
+ else
+ t1 = t3 ? _null : b.enableFeedback;
+ return A.ButtonStyle$(t17, t5, t9, t1, t2, t11, t14, t7, t10, t6, t12, t8, t16, t4, t15);
+ },
+ ButtonStyle__lerpProperties: function(a, b, t, lerpFunction, $T) {
+ if (a == null && b == null)
+ return null;
+ return new A._LerpProperties0(a, b, t, lerpFunction, $T._eval$1("_LerpProperties0<0>"));
+ },
+ ButtonStyle__lerpSides: function(a, b, t) {
+ if (a == null && b == null)
+ return null;
+ return new A._LerpSides(a, b, t);
+ },
+ ButtonStyle__lerpShapes: function(a, b, t) {
+ if (a == null && b == null)
+ return null;
+ return new A._LerpShapes(a, b, t);
+ },
+ ButtonStyle: function ButtonStyle(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.textStyle = t0;
+ _.backgroundColor = t1;
+ _.foregroundColor = t2;
+ _.overlayColor = t3;
+ _.shadowColor = t4;
+ _.elevation = t5;
+ _.padding = t6;
+ _.minimumSize = t7;
+ _.side = t8;
+ _.shape = t9;
+ _.mouseCursor = t10;
+ _.visualDensity = t11;
+ _.tapTargetSize = t12;
+ _.animationDuration = t13;
+ _.enableFeedback = t14;
+ },
+ _LerpProperties0: function _LerpProperties0(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.a = t0;
+ _.b = t1;
+ _.t = t2;
+ _.lerpFunction = t3;
+ _.$ti = t4;
+ },
+ _LerpSides: function _LerpSides(t0, t1, t2) {
+ this.a = t0;
+ this.b = t1;
+ this.t = t2;
+ },
+ _LerpShapes: function _LerpShapes(t0, t1, t2) {
+ this.a = t0;
+ this.b = t1;
+ this.t = t2;
+ },
+ _ButtonStyle_Object_Diagnosticable: function _ButtonStyle_Object_Diagnosticable() {
+ },
+ CardTheme: function CardTheme(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.clipBehavior = t0;
+ _.color = t1;
+ _.shadowColor = t2;
+ _.elevation = t3;
+ _.margin = t4;
+ _.shape = t5;
+ },
+ _CardTheme_Object_Diagnosticable: function _CardTheme_Object_Diagnosticable() {
+ },
+ ColorScheme: function ColorScheme(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
+ var _ = this;
+ _.primary = t0;
+ _.primaryVariant = t1;
+ _.secondary = t2;
+ _.secondaryVariant = t3;
+ _.surface = t4;
+ _.background = t5;
+ _.error = t6;
+ _.onPrimary = t7;
+ _.onSecondary = t8;
+ _.onSurface = t9;
+ _.onBackground = t10;
+ _.onError = t11;
+ _.brightness = t12;
+ },
+ _ColorScheme_Object_Diagnosticable: function _ColorScheme_Object_Diagnosticable() {
+ },
+ _AnimationSwap$: function(first, next, $parent, swapThreshold, $T) {
+ return new A._AnimationSwap($parent, swapThreshold, first, next, new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_AnimationStatus), type$.ObserverList_of_void_Function_AnimationStatus), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function), type$.ObserverList_of_void_Function), 0, $T._eval$1("_AnimationSwap<0>"));
+ },
+ FloatingActionButtonLocation: function FloatingActionButtonLocation() {
+ },
+ StandardFabLocation: function StandardFabLocation() {
+ },
+ FabFloatOffsetY: function FabFloatOffsetY() {
+ },
+ FabCenterOffsetX: function FabCenterOffsetX() {
+ },
+ FabEndOffsetX: function FabEndOffsetX() {
+ },
+ _CenterFloatFabLocation: function _CenterFloatFabLocation() {
+ },
+ _EndFloatFabLocation: function _EndFloatFabLocation() {
+ },
+ FloatingActionButtonAnimator: function FloatingActionButtonAnimator() {
+ },
+ _ScalingFabMotionAnimator: function _ScalingFabMotionAnimator() {
+ },
+ _AnimationSwap: function _AnimationSwap(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.parent = t0;
+ _.swapThreshold = t1;
+ _.first = t2;
+ _.next = t3;
+ _._lastValue = _._lastStatus = null;
+ _.AnimationLocalStatusListenersMixin__statusListeners = t4;
+ _.AnimationLocalListenersMixin__listeners = t5;
+ _.AnimationLazyListenerMixin__listenerCounter = t6;
+ _.$ti = t7;
+ },
+ __CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX: function __CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX() {
+ },
+ __CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX_FabFloatOffsetY: function __CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX_FabFloatOffsetY() {
+ },
+ __EndFloatFabLocation_StandardFabLocation_FabEndOffsetX: function __EndFloatFabLocation_StandardFabLocation_FabEndOffsetX() {
+ },
+ __EndFloatFabLocation_StandardFabLocation_FabEndOffsetX_FabFloatOffsetY: function __EndFloatFabLocation_StandardFabLocation_FabEndOffsetX_FabFloatOffsetY() {
+ },
+ TimePickerThemeData: function TimePickerThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.hourMinuteTextColor = t1;
+ _.hourMinuteColor = t2;
+ _.dayPeriodTextColor = t3;
+ _.dayPeriodColor = t4;
+ _.dialHandColor = t5;
+ _.dialBackgroundColor = t6;
+ _.dialTextColor = t7;
+ _.entryModeIconColor = t8;
+ _.hourMinuteTextStyle = t9;
+ _.dayPeriodTextStyle = t10;
+ _.helpTextStyle = t11;
+ _.shape = t12;
+ _.hourMinuteShape = t13;
+ _.dayPeriodShape = t14;
+ _.dayPeriodBorderSide = t15;
+ _.inputDecorationTheme = t16;
+ },
+ _TimePickerThemeData_Object_Diagnosticable: function _TimePickerThemeData_Object_Diagnosticable() {
+ },
+ TextStyle$: function(background, backgroundColor, color, debugLabel, decoration, decorationColor, decorationStyle, decorationThickness, fontFamily, fontFamilyFallback, fontFeatures, fontSize, fontStyle, fontWeight, foreground, height, inherit, letterSpacing, locale, $package, shadows, textBaseline, wordSpacing) {
+ return new A.TextStyle(inherit, color, backgroundColor, fontFamily, fontFamilyFallback, $package, fontSize, fontWeight, fontStyle, letterSpacing, wordSpacing, textBaseline, height, locale, foreground, background, decoration, decorationColor, decorationStyle, decorationThickness, debugLabel, shadows, fontFeatures);
+ },
+ TextStyle_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ if (t1) {
+ t1 = b.inherit;
+ t2 = P.Color_lerp(_null, b.color, t);
+ t3 = P.Color_lerp(_null, b.backgroundColor, t);
+ t4 = t < 0.5;
+ t5 = t4 ? _null : b.fontFamily;
+ t6 = t4 ? _null : b.get$fontFamilyFallback();
+ t7 = t4 ? _null : b.fontSize;
+ t8 = P.FontWeight_lerp(_null, b.fontWeight, t);
+ t9 = t4 ? _null : b.fontStyle;
+ t10 = t4 ? _null : b.letterSpacing;
+ t11 = t4 ? _null : b.wordSpacing;
+ t12 = t4 ? _null : b.textBaseline;
+ t13 = t4 ? _null : b.height;
+ t14 = t4 ? _null : b.locale;
+ t15 = t4 ? _null : b.foreground;
+ t16 = t4 ? _null : b.background;
+ t17 = t4 ? _null : b.decoration;
+ t18 = t4 ? _null : b.shadows;
+ t19 = t4 ? _null : b.fontFeatures;
+ t20 = P.Color_lerp(_null, b.decorationColor, t);
+ t21 = t4 ? _null : b.decorationStyle;
+ return A.TextStyle$(t16, t3, t2, _null, t17, t20, t21, t4 ? _null : b.decorationThickness, t5, t6, t19, t7, t9, t8, t15, t13, t1, t10, t14, _null, t18, t12, t11);
+ }
+ if (b == null) {
+ t1 = a.inherit;
+ t2 = P.Color_lerp(a.color, _null, t);
+ t3 = P.Color_lerp(_null, a.backgroundColor, t);
+ t4 = t < 0.5;
+ t5 = t4 ? a.fontFamily : _null;
+ t6 = t4 ? a.get$fontFamilyFallback() : _null;
+ t7 = t4 ? a.fontSize : _null;
+ t8 = P.FontWeight_lerp(a.fontWeight, _null, t);
+ t9 = t4 ? a.fontStyle : _null;
+ t10 = t4 ? a.letterSpacing : _null;
+ t11 = t4 ? a.wordSpacing : _null;
+ t12 = t4 ? a.textBaseline : _null;
+ t13 = t4 ? a.height : _null;
+ t14 = t4 ? a.locale : _null;
+ t15 = t4 ? a.foreground : _null;
+ t16 = t4 ? a.background : _null;
+ t17 = t4 ? a.shadows : _null;
+ t18 = t4 ? a.fontFeatures : _null;
+ t19 = t4 ? a.decoration : _null;
+ t20 = P.Color_lerp(a.decorationColor, _null, t);
+ t21 = t4 ? a.decorationStyle : _null;
+ return A.TextStyle$(t16, t3, t2, _null, t19, t20, t21, t4 ? a.decorationThickness : _null, t5, t6, t18, t7, t9, t8, t15, t13, t1, t10, t14, _null, t17, t12, t11);
+ }
+ t1 = b.inherit;
+ t2 = a.foreground;
+ t3 = t2 == null;
+ t4 = t3 && b.foreground == null ? P.Color_lerp(a.color, b.color, t) : _null;
+ t5 = a.background;
+ t6 = t5 == null;
+ t7 = t6 && b.background == null ? P.Color_lerp(a.backgroundColor, b.backgroundColor, t) : _null;
+ t8 = t < 0.5;
+ t9 = t8 ? a.fontFamily : b.fontFamily;
+ t10 = t8 ? a.get$fontFamilyFallback() : b.get$fontFamilyFallback();
+ t11 = a.fontSize;
+ t12 = t11 == null ? b.fontSize : t11;
+ t13 = b.fontSize;
+ t11 = P.lerpDouble(t12, t13 == null ? t11 : t13, t);
+ t12 = P.FontWeight_lerp(a.fontWeight, b.fontWeight, t);
+ t13 = t8 ? a.fontStyle : b.fontStyle;
+ t14 = a.letterSpacing;
+ t15 = t14 == null ? b.letterSpacing : t14;
+ t16 = b.letterSpacing;
+ t14 = P.lerpDouble(t15, t16 == null ? t14 : t16, t);
+ t15 = a.wordSpacing;
+ t16 = t15 == null ? b.wordSpacing : t15;
+ t17 = b.wordSpacing;
+ t15 = P.lerpDouble(t16, t17 == null ? t15 : t17, t);
+ t16 = t8 ? a.textBaseline : b.textBaseline;
+ t17 = a.height;
+ t18 = t17 == null ? b.height : t17;
+ t19 = b.height;
+ t17 = P.lerpDouble(t18, t19 == null ? t17 : t19, t);
+ t18 = t8 ? a.locale : b.locale;
+ if (!t3 || b.foreground != null)
+ if (t8) {
+ if (t3) {
+ t2 = new H.SurfacePaint(new H.SurfacePaintData());
+ t3 = a.color;
+ t3.toString;
+ t2.set$color(0, t3);
+ }
+ } else {
+ t2 = b.foreground;
+ if (t2 == null) {
+ t2 = new H.SurfacePaint(new H.SurfacePaintData());
+ t3 = b.color;
+ t3.toString;
+ t2.set$color(0, t3);
+ }
+ }
+ else
+ t2 = _null;
+ if (!t6 || b.background != null)
+ if (t8)
+ if (t6) {
+ t3 = new H.SurfacePaint(new H.SurfacePaintData());
+ t5 = a.backgroundColor;
+ t5.toString;
+ t3.set$color(0, t5);
+ } else
+ t3 = t5;
+ else {
+ t3 = b.background;
+ if (t3 == null) {
+ t3 = new H.SurfacePaint(new H.SurfacePaintData());
+ t5 = b.backgroundColor;
+ t5.toString;
+ t3.set$color(0, t5);
+ }
+ }
+ else
+ t3 = _null;
+ t5 = t8 ? a.shadows : b.shadows;
+ t6 = t8 ? a.fontFeatures : b.fontFeatures;
+ t19 = t8 ? a.decoration : b.decoration;
+ t20 = P.Color_lerp(a.decorationColor, b.decorationColor, t);
+ t8 = t8 ? a.decorationStyle : b.decorationStyle;
+ t21 = a.decorationThickness;
+ t22 = t21 == null ? b.decorationThickness : t21;
+ t23 = b.decorationThickness;
+ return A.TextStyle$(t3, t7, t4, _null, t19, t20, t8, P.lerpDouble(t22, t23 == null ? t21 : t23, t), t9, t10, t6, t11, t13, t12, t2, t17, t1, t14, t18, _null, t5, t16, t15);
+ },
+ TextStyle: function TextStyle(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22) {
+ var _ = this;
+ _.inherit = t0;
+ _.color = t1;
+ _.backgroundColor = t2;
+ _.fontFamily = t3;
+ _._text_style$_fontFamilyFallback = t4;
+ _._text_style$_package = t5;
+ _.fontSize = t6;
+ _.fontWeight = t7;
+ _.fontStyle = t8;
+ _.letterSpacing = t9;
+ _.wordSpacing = t10;
+ _.textBaseline = t11;
+ _.height = t12;
+ _.locale = t13;
+ _.foreground = t14;
+ _.background = t15;
+ _.decoration = t16;
+ _.decorationColor = t17;
+ _.decorationStyle = t18;
+ _.decorationThickness = t19;
+ _.debugLabel = t20;
+ _.shadows = t21;
+ _.fontFeatures = t22;
+ },
+ _TextStyle_Object_Diagnosticable: function _TextStyle_Object_Diagnosticable() {
+ },
+ _DeferringMouseCursor_firstNonDeferred: function(cursors) {
+ var t1, cur;
+ for (t1 = new H.MappedIterator(J.get$iterator$ax(cursors._iterable), cursors._f); t1.moveNext$0();) {
+ cur = t1._current;
+ if (!J.$eq$(cur, C.C__DeferringMouseCursor))
+ return cur;
+ }
+ return null;
+ },
+ MouseTrackerCursorMixin: function MouseTrackerCursorMixin() {
+ },
+ MouseTrackerCursorMixin__findFirstCursor_closure: function MouseTrackerCursorMixin__findFirstCursor_closure() {
+ },
+ MouseCursorSession: function MouseCursorSession() {
+ },
+ MouseCursor0: function MouseCursor0() {
+ },
+ _DeferringMouseCursor: function _DeferringMouseCursor() {
+ },
+ _NoopMouseCursorSession: function _NoopMouseCursorSession(t0, t1) {
+ this.cursor = t0;
+ this.device = t1;
+ },
+ _NoopMouseCursor: function _NoopMouseCursor() {
+ },
+ _SystemMouseCursorSession: function _SystemMouseCursorSession(t0, t1) {
+ this.cursor = t0;
+ this.device = t1;
+ },
+ SystemMouseCursor: function SystemMouseCursor(t0) {
+ this.kind = t0;
+ },
+ _MouseCursor_Object_Diagnosticable: function _MouseCursor_Object_Diagnosticable() {
+ },
+ ViewConfiguration0: function ViewConfiguration0(t0, t1) {
+ this.size = t0;
+ this.devicePixelRatio = t1;
+ },
+ RenderView: function RenderView(t0, t1, t2, t3) {
+ var _ = this;
+ _._view$_size = t0;
+ _._view$_configuration = t1;
+ _._window = t2;
+ _._rootTransform = null;
+ _.RenderObjectWithChildMixin__child = t3;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderView_RenderObject_RenderObjectWithChildMixin: function _RenderView_RenderObject_RenderObjectWithChildMixin() {
+ },
+ CustomSemanticsAction_getIdentifier: function(action) {
+ var result = $.CustomSemanticsAction__ids.$index(0, action);
+ if (result == null) {
+ result = $.CustomSemanticsAction__nextId;
+ $.CustomSemanticsAction__nextId = result + 1;
+ $.CustomSemanticsAction__ids.$indexSet(0, action, result);
+ $.CustomSemanticsAction__actions.$indexSet(0, result, action);
+ }
+ return result;
+ },
+ SemanticsData__sortedListsEqual: function(left, right) {
+ var i;
+ if (left.length !== right.length)
+ return false;
+ for (i = 0; i < left.length; ++i)
+ if (!J.$eq$(left[i], right[i]))
+ return false;
+ return true;
+ },
+ _SemanticsDiagnosticableNode$: function(childOrder, $name, style, value) {
+ return new A._SemanticsDiagnosticableNode(childOrder, value, $name, true, true, null, style);
+ },
+ SemanticsNode$: function(key, showOnScreen) {
+ var t14,
+ t1 = $.$get$SemanticsNode__kEmptyConfig(),
+ t2 = t1._isMergingSemanticsOfDescendants,
+ t3 = t1._actions,
+ t4 = t1._customSemanticsActions,
+ t5 = t1._actionsAsBits,
+ t6 = t1._flags,
+ t7 = t1._semantics$_label,
+ t8 = t1._semantics$_value,
+ t9 = t1._decreasedValue,
+ t10 = t1._increasedValue,
+ t11 = t1._semantics$_hint,
+ t12 = t1._semantics$_elevation,
+ t13 = t1._thickness;
+ t1 = t1._semantics$_textDirection;
+ t14 = ($.SemanticsNode__lastIdentifier + 1) % 65535;
+ $.SemanticsNode__lastIdentifier = t14;
+ return new A.SemanticsNode(key, t14, showOnScreen, C.Rect_0_0_0_0, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t1);
+ },
+ _pointInParentCoordinates: function(node, point) {
+ var t1, vector;
+ if (node._semantics$_transform == null)
+ return point;
+ t1 = new Float64Array(3);
+ vector = new E.Vector3(t1);
+ vector.setValues$3(point._dx, point._dy, 0);
+ node._semantics$_transform.transform3$1(vector);
+ return new P.Offset(t1[0], t1[1]);
+ },
+ _childrenInDefaultOrder: function(children, textDirection) {
+ var t1, _i, child, t2, t3, t4, t5, verticalGroups, group, depth, edge,
+ edges = H.setRuntimeTypeInfo([], type$.JSArray__BoxEdge);
+ for (t1 = children.length, _i = 0; _i < children.length; children.length === t1 || (0, H.throwConcurrentModificationError)(children), ++_i) {
+ child = children[_i];
+ t2 = child._semantics$_rect;
+ t3 = t2.left;
+ t4 = t2.top;
+ t5 = t2.right;
+ t2 = t2.bottom;
+ edges.push(new A._BoxEdge(true, A._pointInParentCoordinates(child, new P.Offset(t3 - -0.1, t4 - -0.1))._dy, child));
+ edges.push(new A._BoxEdge(false, A._pointInParentCoordinates(child, new P.Offset(t5 + -0.1, t2 + -0.1))._dy, child));
+ }
+ C.JSArray_methods.sort$0(edges);
+ verticalGroups = H.setRuntimeTypeInfo([], type$.JSArray__SemanticsSortGroup);
+ for (t1 = edges.length, t2 = type$.JSArray_SemanticsNode, group = null, depth = 0, _i = 0; _i < edges.length; edges.length === t1 || (0, H.throwConcurrentModificationError)(edges), ++_i) {
+ edge = edges[_i];
+ if (edge.isLeadingEdge) {
+ ++depth;
+ if (group == null)
+ group = new A._SemanticsSortGroup(edge.offset, textDirection, H.setRuntimeTypeInfo([], t2));
+ group.nodes.push(edge.node);
+ } else
+ --depth;
+ if (depth === 0) {
+ group.toString;
+ verticalGroups.push(group);
+ group = null;
+ }
+ }
+ C.JSArray_methods.sort$0(verticalGroups);
+ t1 = type$.ExpandIterable__SemanticsSortGroup_SemanticsNode;
+ return P.List_List$of(new H.ExpandIterable(verticalGroups, new A._childrenInDefaultOrder_closure(), t1), true, t1._eval$1("Iterable.E"));
+ },
+ SemanticsConfiguration$: function() {
+ return new A.SemanticsConfiguration(P.LinkedHashMap_LinkedHashMap$_empty(type$.SemanticsAction, type$.void_Function_dynamic), P.LinkedHashMap_LinkedHashMap$_empty(type$.CustomSemanticsAction, type$.void_Function));
+ },
+ _concatStrings: function(otherString, otherTextDirection, thisString, thisTextDirection) {
+ var nestedLabel;
+ if (otherString.length === 0)
+ return thisString;
+ if (thisTextDirection != otherTextDirection && otherTextDirection != null)
+ switch (otherTextDirection) {
+ case C.TextDirection_0:
+ nestedLabel = "\u202b" + otherString + "\u202c";
+ break;
+ case C.TextDirection_1:
+ nestedLabel = "\u202a" + otherString + "\u202c";
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ else
+ nestedLabel = otherString;
+ if (thisString.length === 0)
+ return nestedLabel;
+ return thisString + "\n" + nestedLabel;
+ },
+ SemanticsTag: function SemanticsTag(t0) {
+ this.name = t0;
+ },
+ SemanticsData: function SemanticsData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22) {
+ var _ = this;
+ _.flags = t0;
+ _.actions = t1;
+ _.label = t2;
+ _.value = t3;
+ _.increasedValue = t4;
+ _.decreasedValue = t5;
+ _.hint = t6;
+ _.textDirection = t7;
+ _.textSelection = t8;
+ _.scrollChildCount = t9;
+ _.scrollIndex = t10;
+ _.scrollPosition = t11;
+ _.scrollExtentMax = t12;
+ _.scrollExtentMin = t13;
+ _.platformViewId = t14;
+ _.maxValueLength = t15;
+ _.currentValueLength = t16;
+ _.rect = t17;
+ _.tags = t18;
+ _.transform = t19;
+ _.elevation = t20;
+ _.thickness = t21;
+ _.customSemanticsActionIds = t22;
+ },
+ _SemanticsDiagnosticableNode: function _SemanticsDiagnosticableNode(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.childOrder = t0;
+ _.value = t1;
+ _._cachedBuilder = null;
+ _.name = t2;
+ _.showSeparator = t3;
+ _.showName = t4;
+ _.linePrefix = t5;
+ _.style = t6;
+ },
+ SemanticsProperties: function SemanticsProperties(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48) {
+ var _ = this;
+ _.enabled = t0;
+ _.checked = t1;
+ _.toggled = t2;
+ _.selected = t3;
+ _.button = t4;
+ _.link = t5;
+ _.header = t6;
+ _.textField = t7;
+ _.slider = t8;
+ _.readOnly = t9;
+ _.focusable = t10;
+ _.focused = t11;
+ _.inMutuallyExclusiveGroup = t12;
+ _.hidden = t13;
+ _.obscured = t14;
+ _.multiline = t15;
+ _.scopesRoute = t16;
+ _.namesRoute = t17;
+ _.image = t18;
+ _.liveRegion = t19;
+ _.maxValueLength = t20;
+ _.currentValueLength = t21;
+ _.label = t22;
+ _.value = t23;
+ _.increasedValue = t24;
+ _.decreasedValue = t25;
+ _.hint = t26;
+ _.hintOverrides = t27;
+ _.textDirection = t28;
+ _.sortKey = t29;
+ _.tagForChildren = t30;
+ _.onTap = t31;
+ _.onLongPress = t32;
+ _.onScrollLeft = t33;
+ _.onScrollRight = t34;
+ _.onScrollUp = t35;
+ _.onScrollDown = t36;
+ _.onIncrease = t37;
+ _.onDecrease = t38;
+ _.onCopy = t39;
+ _.onCut = t40;
+ _.onPaste = t41;
+ _.onMoveCursorForwardByCharacter = t42;
+ _.onMoveCursorBackwardByCharacter = t43;
+ _.onSetSelection = t44;
+ _.onDidGainAccessibilityFocus = t45;
+ _.onDidLoseAccessibilityFocus = t46;
+ _.onDismiss = t47;
+ _.customSemanticsActions = t48;
+ },
+ SemanticsNode: function SemanticsNode(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16) {
+ var _ = this;
+ _.key = t0;
+ _.id = t1;
+ _._showOnScreen = t2;
+ _._semantics$_transform = null;
+ _._semantics$_rect = t3;
+ _.indexInParent = _.elevationAdjustment = _.parentPaintClipRect = _.parentSemanticsClipRect = null;
+ _._isMergedIntoParent = false;
+ _._mergeAllDescendantsIntoThisNode = t4;
+ _.__SemanticsNode__debugPreviousSnapshot = _._semantics$_children = null;
+ _._semantics$_dirty = _._dead = _.__SemanticsNode__debugPreviousSnapshot_isSet = false;
+ _._actions = t5;
+ _._customSemanticsActions = t6;
+ _._actionsAsBits = t7;
+ _.tags = null;
+ _._flags = t8;
+ _._semantics$_label = t9;
+ _._semantics$_value = t10;
+ _._decreasedValue = t11;
+ _._increasedValue = t12;
+ _._semantics$_hint = t13;
+ _._semantics$_elevation = t14;
+ _._thickness = t15;
+ _._semantics$_hintOverrides = null;
+ _._semantics$_textDirection = t16;
+ _._semantics$_currentValueLength = _._maxValueLength = _._platformViewId = _._scrollExtentMin = _._scrollExtentMax = _._scrollPosition = _._scrollIndex = _._scrollChildCount = _._textSelection = _._semantics$_sortKey = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ SemanticsNode_getSemanticsData_closure: function SemanticsNode_getSemanticsData_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.$this = t1;
+ this.customSemanticsActionIds = t2;
+ },
+ SemanticsNode__childrenInTraversalOrder_closure: function SemanticsNode__childrenInTraversalOrder_closure() {
+ },
+ SemanticsNode_debugDescribeChildren_closure: function SemanticsNode_debugDescribeChildren_closure(t0) {
+ this.childOrder = t0;
+ },
+ _BoxEdge: function _BoxEdge(t0, t1, t2) {
+ this.isLeadingEdge = t0;
+ this.offset = t1;
+ this.node = t2;
+ },
+ _SemanticsSortGroup: function _SemanticsSortGroup(t0, t1, t2) {
+ this.startOffset = t0;
+ this.textDirection = t1;
+ this.nodes = t2;
+ },
+ _SemanticsSortGroup_sortedWithinVerticalGroup_closure: function _SemanticsSortGroup_sortedWithinVerticalGroup_closure() {
+ },
+ _SemanticsSortGroup_sortedWithinKnot_closure: function _SemanticsSortGroup_sortedWithinKnot_closure() {
+ },
+ _SemanticsSortGroup_sortedWithinKnot_search: function _SemanticsSortGroup_sortedWithinKnot_search(t0, t1, t2) {
+ this.visitedIds = t0;
+ this.edges = t1;
+ this.sortedIds = t2;
+ },
+ _SemanticsSortGroup_sortedWithinKnot_closure0: function _SemanticsSortGroup_sortedWithinKnot_closure0() {
+ },
+ _SemanticsSortGroup_sortedWithinKnot_closure1: function _SemanticsSortGroup_sortedWithinKnot_closure1(t0) {
+ this.nodeMap = t0;
+ },
+ _childrenInDefaultOrder_closure: function _childrenInDefaultOrder_closure() {
+ },
+ _TraversalSortNode: function _TraversalSortNode(t0, t1, t2) {
+ this.node = t0;
+ this.sortKey = t1;
+ this.position = t2;
+ },
+ SemanticsOwner: function SemanticsOwner(t0, t1, t2, t3) {
+ var _ = this;
+ _._semantics$_dirtyNodes = t0;
+ _._nodes = t1;
+ _._detachedNodes = t2;
+ _.ChangeNotifier__listeners = t3;
+ },
+ SemanticsOwner_sendSemanticsUpdate_closure: function SemanticsOwner_sendSemanticsUpdate_closure(t0) {
+ this.$this = t0;
+ },
+ SemanticsOwner_sendSemanticsUpdate_closure0: function SemanticsOwner_sendSemanticsUpdate_closure0() {
+ },
+ SemanticsOwner_sendSemanticsUpdate_closure1: function SemanticsOwner_sendSemanticsUpdate_closure1() {
+ },
+ SemanticsOwner__getSemanticsActionHandlerForId_closure: function SemanticsOwner__getSemanticsActionHandlerForId_closure(t0, t1) {
+ this._box_0 = t0;
+ this.action = t1;
+ },
+ SemanticsConfiguration: function SemanticsConfiguration(t0, t1) {
+ var _ = this;
+ _._hasBeenAnnotated = _.isBlockingSemanticsOfPreviouslyPaintedNodes = _.explicitChildNodes = _._isSemanticBoundary = false;
+ _._actions = t0;
+ _._actionsAsBits = 0;
+ _._semantics$_currentValueLength = _._maxValueLength = _._platformViewId = _._scrollIndex = _._scrollChildCount = _._indexInParent = _._semantics$_sortKey = null;
+ _._isMergingSemanticsOfDescendants = false;
+ _._customSemanticsActions = t1;
+ _._semantics$_hint = _._increasedValue = _._decreasedValue = _._semantics$_value = _._semantics$_label = "";
+ _._semantics$_hintOverrides = null;
+ _._thickness = _._semantics$_elevation = 0;
+ _._tagsForChildren = _._scrollExtentMin = _._scrollExtentMax = _._scrollPosition = _._textSelection = _._semantics$_textDirection = null;
+ _._flags = 0;
+ },
+ SemanticsConfiguration__addArgumentlessAction_closure: function SemanticsConfiguration__addArgumentlessAction_closure(t0) {
+ this.handler = t0;
+ },
+ SemanticsConfiguration_onMoveCursorForwardByCharacter_closure: function SemanticsConfiguration_onMoveCursorForwardByCharacter_closure(t0) {
+ this.value = t0;
+ },
+ SemanticsConfiguration_onMoveCursorBackwardByCharacter_closure: function SemanticsConfiguration_onMoveCursorBackwardByCharacter_closure(t0) {
+ this.value = t0;
+ },
+ SemanticsConfiguration_onMoveCursorForwardByWord_closure: function SemanticsConfiguration_onMoveCursorForwardByWord_closure(t0) {
+ this.value = t0;
+ },
+ SemanticsConfiguration_onMoveCursorBackwardByWord_closure: function SemanticsConfiguration_onMoveCursorBackwardByWord_closure(t0) {
+ this.value = t0;
+ },
+ SemanticsConfiguration_onSetSelection_closure: function SemanticsConfiguration_onSetSelection_closure(t0) {
+ this.value = t0;
+ },
+ DebugSemanticsDumpOrder: function DebugSemanticsDumpOrder(t0) {
+ this._semantics$_name = t0;
+ },
+ SemanticsSortKey: function SemanticsSortKey() {
+ },
+ OrdinalSortKey: function OrdinalSortKey(t0, t1) {
+ this.order = t0;
+ this.name = t1;
+ },
+ _SemanticsData_Object_Diagnosticable: function _SemanticsData_Object_Diagnosticable() {
+ },
+ _SemanticsNode_AbstractNode_DiagnosticableTreeMixin: function _SemanticsNode_AbstractNode_DiagnosticableTreeMixin() {
+ },
+ _SemanticsSortKey_Object_Diagnosticable: function _SemanticsSortKey_Object_Diagnosticable() {
+ },
+ BasicMessageChannel: function BasicMessageChannel(t0, t1, t2) {
+ this.name = t0;
+ this.codec = t1;
+ this.$ti = t2;
+ },
+ BasicMessageChannel_setMessageHandler_closure: function BasicMessageChannel_setMessageHandler_closure(t0, t1) {
+ this.$this = t0;
+ this.handler = t1;
+ },
+ MethodChannel: function MethodChannel(t0, t1) {
+ this.name = t0;
+ this.codec = t1;
+ },
+ MethodChannel_setMethodCallHandler_closure: function MethodChannel_setMethodCallHandler_closure(t0, t1) {
+ this.$this = t0;
+ this.handler = t1;
+ },
+ OptionalMethodChannel: function OptionalMethodChannel(t0, t1) {
+ this.name = t0;
+ this.codec = t1;
+ },
+ RawKeyEventDataWeb: function RawKeyEventDataWeb(t0, t1, t2) {
+ this.code = t0;
+ this.key = t1;
+ this.metaState = t2;
+ },
+ _debugReportException0: function(context, exception, stack, informationCollector) {
+ var details = new U.FlutterErrorDetails(exception, stack, "widgets library", context, informationCollector, false),
+ t1 = $.$get$FlutterError_onError();
+ if (t1 != null)
+ t1.call$1(details);
+ return details;
+ },
+ ConstrainedLayoutBuilder: function ConstrainedLayoutBuilder() {
+ },
+ _LayoutBuilderElement: function _LayoutBuilderElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.__RenderObjectElement__renderObject = _._layout_builder$_child = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t0;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t1;
+ _._owner = null;
+ _._lifecycleState = t2;
+ _._debugForgottenChildrenWithGlobalKey = t3;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ _.$ti = t4;
+ },
+ _LayoutBuilderElement__layout_closure: function _LayoutBuilderElement__layout_closure(t0, t1) {
+ this.$this = t0;
+ this.constraints = t1;
+ },
+ _LayoutBuilderElement__layout__closure: function _LayoutBuilderElement__layout__closure(t0) {
+ this.$this = t0;
+ },
+ _LayoutBuilderElement__layout__closure0: function _LayoutBuilderElement__layout__closure0(t0) {
+ this.$this = t0;
+ },
+ RenderConstrainedLayoutBuilder: function RenderConstrainedLayoutBuilder() {
+ },
+ LayoutBuilder: function LayoutBuilder(t0, t1) {
+ this.builder = t0;
+ this.key = t1;
+ },
+ _RenderLayoutBuilder: function _RenderLayoutBuilder(t0, t1, t2, t3) {
+ var _ = this;
+ _.RenderConstrainedLayoutBuilder__callback = t0;
+ _.RenderConstrainedLayoutBuilder__needsBuild = t1;
+ _.RenderConstrainedLayoutBuilder__previousConstraints = t2;
+ _.RenderObjectWithChildMixin__child = t3;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ __RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin: function __RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin() {
+ },
+ __RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin_RenderConstrainedLayoutBuilder: function __RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin_RenderConstrainedLayoutBuilder() {
+ },
+ ScrollPositionAlignmentPolicy: function ScrollPositionAlignmentPolicy(t0) {
+ this._scroll_position$_name = t0;
+ },
+ ScrollPosition: function ScrollPosition() {
+ },
+ ScrollPosition_forcePixels_closure: function ScrollPosition_forcePixels_closure(t0) {
+ this.$this = t0;
+ },
+ _ScrollPosition_ViewportOffset_ScrollMetrics: function _ScrollPosition_ViewportOffset_ScrollMetrics() {
+ },
+ hashObjects: function(objects) {
+ var t1 = C.NativeFloat64List_methods.fold$2(objects, 0, new A.hashObjects_closure()),
+ hash = t1 + ((t1 & 67108863) << 3) & 536870911;
+ hash ^= hash >>> 11;
+ return hash + ((hash & 16383) << 15) & 536870911;
+ },
+ hashObjects_closure: function hashObjects_closure() {
+ }
+ },
+ M = {CanonicalizedMap: function CanonicalizedMap() {
+ }, CanonicalizedMap_addAll_closure: function CanonicalizedMap_addAll_closure(t0) {
+ this.$this = t0;
+ }, CanonicalizedMap_forEach_closure: function CanonicalizedMap_forEach_closure(t0, t1) {
+ this.$this = t0;
+ this.f = t1;
+ }, CanonicalizedMap_keys_closure: function CanonicalizedMap_keys_closure(t0) {
+ this.$this = t0;
+ }, CanonicalizedMap_map_closure: function CanonicalizedMap_map_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.$this = t0;
+ _.transform = t1;
+ _.K2 = t2;
+ _.V2 = t3;
+ }, CanonicalizedMap_putIfAbsent_closure: function CanonicalizedMap_putIfAbsent_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.key = t1;
+ this.ifAbsent = t2;
+ }, CanonicalizedMap_values_closure: function CanonicalizedMap_values_closure(t0) {
+ this.$this = t0;
+ }, BottomNavigationBarThemeData: function BottomNavigationBarThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.elevation = t1;
+ _.selectedIconTheme = t2;
+ _.unselectedIconTheme = t3;
+ _.selectedItemColor = t4;
+ _.unselectedItemColor = t5;
+ _.selectedLabelStyle = t6;
+ _.unselectedLabelStyle = t7;
+ _.showSelectedLabels = t8;
+ _.showUnselectedLabels = t9;
+ _.type = t10;
+ }, _BottomNavigationBarThemeData_Object_Diagnosticable: function _BottomNavigationBarThemeData_Object_Diagnosticable() {
+ },
+ ButtonBarThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t < 0.5;
+ if (t2)
+ t3 = t1 ? _null : a.alignment;
+ else
+ t3 = b == null ? _null : b.alignment;
+ if (t2)
+ t4 = t1 ? _null : a.mainAxisSize;
+ else
+ t4 = b == null ? _null : b.mainAxisSize;
+ if (t2)
+ t5 = t1 ? _null : a.buttonTextTheme;
+ else
+ t5 = b == null ? _null : b.buttonTextTheme;
+ t6 = t1 ? _null : a.buttonMinWidth;
+ t7 = b == null;
+ t6 = P.lerpDouble(t6, t7 ? _null : b.buttonMinWidth, t);
+ t8 = t1 ? _null : a.buttonHeight;
+ t8 = P.lerpDouble(t8, t7 ? _null : b.buttonHeight, t);
+ t9 = t1 ? _null : a.buttonPadding;
+ t9 = V.EdgeInsetsGeometry_lerp(t9, t7 ? _null : b.buttonPadding, t);
+ if (t2)
+ t10 = t1 ? _null : a.buttonAlignedDropdown;
+ else
+ t10 = t7 ? _null : b.buttonAlignedDropdown;
+ if (t2)
+ t11 = t1 ? _null : a.layoutBehavior;
+ else
+ t11 = t7 ? _null : b.layoutBehavior;
+ if (t2)
+ t1 = t1 ? _null : a.overflowDirection;
+ else
+ t1 = t7 ? _null : b.overflowDirection;
+ return new M.ButtonBarThemeData(t3, t4, t5, t6, t8, t9, t10, t11, t1);
+ },
+ ButtonBarThemeData: function ButtonBarThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.alignment = t0;
+ _.mainAxisSize = t1;
+ _.buttonTextTheme = t2;
+ _.buttonMinWidth = t3;
+ _.buttonHeight = t4;
+ _.buttonPadding = t5;
+ _.buttonAlignedDropdown = t6;
+ _.layoutBehavior = t7;
+ _.overflowDirection = t8;
+ },
+ _ButtonBarThemeData_Object_Diagnosticable: function _ButtonBarThemeData_Object_Diagnosticable() {
+ },
+ ButtonTheme$fromButtonThemeData: function(child, data) {
+ return new M.ButtonTheme(data, child, null);
+ },
+ ButtonTheme_of: function(context) {
+ var theme,
+ inheritedButtonTheme = context.dependOnInheritedWidgetOfExactType$1$0(type$.ButtonTheme),
+ buttonTheme = inheritedButtonTheme == null ? null : inheritedButtonTheme.data,
+ t1 = buttonTheme == null;
+ if ((t1 ? null : buttonTheme.colorScheme) == null) {
+ theme = K.Theme_of(context);
+ if (t1)
+ buttonTheme = theme.buttonTheme;
+ if (buttonTheme.colorScheme == null) {
+ t1 = theme.buttonTheme.colorScheme;
+ buttonTheme = buttonTheme.copyWith$1$colorScheme(t1 == null ? theme.colorScheme : t1);
+ }
+ }
+ buttonTheme.toString;
+ return buttonTheme;
+ },
+ ButtonThemeData$: function(alignedDropdown, buttonColor, colorScheme, disabledColor, focusColor, height, highlightColor, hoverColor, layoutBehavior, materialTapTargetSize, minWidth, padding, shape, splashColor, textTheme) {
+ return new M.ButtonThemeData(minWidth, height, textTheme, layoutBehavior, padding, shape, false, buttonColor, disabledColor, focusColor, hoverColor, highlightColor, splashColor, colorScheme, materialTapTargetSize);
+ },
+ ButtonTextTheme: function ButtonTextTheme(t0) {
+ this._button_theme$_name = t0;
+ },
+ ButtonBarLayoutBehavior: function ButtonBarLayoutBehavior(t0) {
+ this._button_theme$_name = t0;
+ },
+ ButtonTheme: function ButtonTheme(t0, t1, t2) {
+ this.data = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ ButtonThemeData: function ButtonThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.minWidth = t0;
+ _.height = t1;
+ _.textTheme = t2;
+ _.layoutBehavior = t3;
+ _._padding = t4;
+ _._shape = t5;
+ _.alignedDropdown = t6;
+ _._buttonColor = t7;
+ _._disabledColor = t8;
+ _._focusColor = t9;
+ _._hoverColor = t10;
+ _._highlightColor = t11;
+ _._splashColor = t12;
+ _.colorScheme = t13;
+ _._materialTapTargetSize = t14;
+ },
+ _ButtonThemeData_Object_Diagnosticable: function _ButtonThemeData_Object_Diagnosticable() {
+ },
+ Material$: function(animationDuration, borderRadius, child, clipBehavior, color, elevation, key, shadowColor, shape, textStyle, type) {
+ return new M.Material(child, type, elevation, color, shadowColor, textStyle, shape, clipBehavior, animationDuration, borderRadius, key);
+ },
+ _MaterialState__transparentInterior: function(clipBehavior, contents, context, shape) {
+ var child = new M._ShapeBorderPaint(contents, shape, true, null);
+ if (clipBehavior === C.Clip_0)
+ return child;
+ return T.ClipPath$(child, clipBehavior, new E.ShapeBorderClipper(shape, T.Directionality_maybeOf(context)));
+ },
+ MaterialType: function MaterialType(t0) {
+ this._material$_name = t0;
+ },
+ Material: function Material(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.child = t0;
+ _.type = t1;
+ _.elevation = t2;
+ _.color = t3;
+ _.shadowColor = t4;
+ _.textStyle = t5;
+ _.shape = t6;
+ _.clipBehavior = t7;
+ _.animationDuration = t8;
+ _.borderRadius = t9;
+ _.key = t10;
+ },
+ _MaterialState: function _MaterialState(t0, t1, t2) {
+ var _ = this;
+ _._inkFeatureRenderer = t0;
+ _.TickerProviderStateMixin__tickers = t1;
+ _._widget = null;
+ _._debugLifecycleState = t2;
+ _._framework$_element = null;
+ },
+ _MaterialState_build_closure: function _MaterialState_build_closure(t0) {
+ this.$this = t0;
+ },
+ _RenderInkFeatures: function _RenderInkFeatures(t0, t1, t2) {
+ var _ = this;
+ _.vsync = t0;
+ _.absorbHitTest = t1;
+ _._inkFeatures = null;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _InkFeatures: function _InkFeatures(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.color = t0;
+ _.vsync = t1;
+ _.absorbHitTest = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ InkFeature: function InkFeature() {
+ },
+ ShapeBorderTween: function ShapeBorderTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ _MaterialInterior: function _MaterialInterior(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.child = t0;
+ _.shape = t1;
+ _.borderOnForeground = t2;
+ _.clipBehavior = t3;
+ _.elevation = t4;
+ _.color = t5;
+ _.shadowColor = t6;
+ _.curve = t7;
+ _.duration = t8;
+ _.onEnd = t9;
+ _.key = t10;
+ },
+ _MaterialInteriorState: function _MaterialInteriorState(t0, t1) {
+ var _ = this;
+ _._animation = _._implicit_animations$_controller = _._border = _._shadowColor = _._elevation = null;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _MaterialInteriorState_forEachTween_closure: function _MaterialInteriorState_forEachTween_closure() {
+ },
+ _MaterialInteriorState_forEachTween_closure0: function _MaterialInteriorState_forEachTween_closure0() {
+ },
+ _MaterialInteriorState_forEachTween_closure1: function _MaterialInteriorState_forEachTween_closure1() {
+ },
+ _ShapeBorderPaint: function _ShapeBorderPaint(t0, t1, t2, t3) {
+ var _ = this;
+ _.child = t0;
+ _.shape = t1;
+ _.borderOnForeground = t2;
+ _.key = t3;
+ },
+ _ShapeBorderPainter: function _ShapeBorderPainter(t0, t1, t2) {
+ this.border = t0;
+ this.textDirection = t1;
+ this._repaint = t2;
+ },
+ __MaterialState_State_TickerProviderStateMixin: function __MaterialState_State_TickerProviderStateMixin() {
+ },
+ Scaffold$: function(appBar, body, floatingActionButton, floatingActionButtonLocation) {
+ return new M.Scaffold(appBar, body, floatingActionButton, floatingActionButtonLocation, null);
+ },
+ Scaffold_of: function(context) {
+ var result = context.findAncestorStateOfType$1$0(type$.ScaffoldState);
+ if (result != null)
+ return result;
+ throw H.wrapException(U.FlutterError$fromParts(H.setRuntimeTypeInfo([U.ErrorSummary$("Scaffold.of() called with a context that does not contain a Scaffold."), U.ErrorDescription$("No Scaffold ancestor could be found starting from the context that was passed to Scaffold.of(). This usually happens when the context provided is from the same StatefulWidget as that whose build function actually creates the Scaffold widget being sought."), U.ErrorHint$('There are several ways to avoid this problem. The simplest is to use a Builder to get a context that is "under" the Scaffold. For an example of this, please see the documentation for Scaffold.of():\n https://api.flutter.dev/flutter/material/Scaffold/of.html'), U.ErrorHint$("A more efficient solution is to split your build function into several widgets. This introduces a new context from which you can obtain the Scaffold. In this solution, you would have an outer widget that creates the Scaffold populated by instances of your new inner widgets, and then in these inner widgets you would use Scaffold.of().\nA less elegant but more expedient solution is assign a GlobalKey to the Scaffold, then use the key.currentState property to obtain the ScaffoldState rather than using the Scaffold.of() function."), context.describeElement$1("The context used was")], type$.JSArray_DiagnosticsNode)));
+ },
+ _ScaffoldSlot: function _ScaffoldSlot(t0) {
+ this._scaffold$_name = t0;
+ },
+ ScaffoldMessenger: function ScaffoldMessenger(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ ScaffoldMessengerState: function ScaffoldMessengerState(t0, t1, t2, t3) {
+ var _ = this;
+ _._scaffolds = t0;
+ _._snackBars = t1;
+ _._accessibleNavigation = _._snackBarTimer = null;
+ _.TickerProviderStateMixin__tickers = t2;
+ _._widget = null;
+ _._debugLifecycleState = t3;
+ _._framework$_element = null;
+ },
+ ScaffoldMessengerState_hideCurrentSnackBar_closure: function ScaffoldMessengerState_hideCurrentSnackBar_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.completer = t1;
+ this.reason = t2;
+ },
+ _ScaffoldMessengerScope: function _ScaffoldMessengerScope(t0, t1, t2) {
+ this._scaffoldMessengerState = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ ScaffoldPrelayoutGeometry: function ScaffoldPrelayoutGeometry(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.floatingActionButtonSize = t0;
+ _.bottomSheetSize = t1;
+ _.contentBottom = t2;
+ _.minInsets = t3;
+ _.minViewPadding = t4;
+ _.scaffoldSize = t5;
+ _.snackBarSize = t6;
+ _.textDirection = t7;
+ },
+ _TransitionSnapshotFabLocation: function _TransitionSnapshotFabLocation(t0, t1, t2, t3) {
+ var _ = this;
+ _.begin = t0;
+ _.end = t1;
+ _.animator = t2;
+ _.progress = t3;
+ },
+ ScaffoldGeometry: function ScaffoldGeometry(t0, t1) {
+ this.bottomNavigationBarTop = t0;
+ this.floatingActionButtonArea = t1;
+ },
+ _ScaffoldGeometryNotifier: function _ScaffoldGeometryNotifier(t0, t1, t2) {
+ var _ = this;
+ _.context = t0;
+ _.floatingActionButtonScale = null;
+ _.geometry = t1;
+ _.ChangeNotifier__listeners = t2;
+ },
+ _BodyBoxConstraints: function _BodyBoxConstraints(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.bottomWidgetsHeight = t0;
+ _.appBarHeight = t1;
+ _.minWidth = t2;
+ _.maxWidth = t3;
+ _.minHeight = t4;
+ _.maxHeight = t5;
+ },
+ _BodyBuilder: function _BodyBuilder(t0, t1, t2, t3) {
+ var _ = this;
+ _.body = t0;
+ _.extendBody = t1;
+ _.extendBodyBehindAppBar = t2;
+ _.key = t3;
+ },
+ _ScaffoldLayout: function _ScaffoldLayout(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) {
+ var _ = this;
+ _.extendBody = t0;
+ _.extendBodyBehindAppBar = t1;
+ _.minInsets = t2;
+ _.minViewPadding = t3;
+ _.textDirection = t4;
+ _.geometryNotifier = t5;
+ _.previousFloatingActionButtonLocation = t6;
+ _.currentFloatingActionButtonLocation = t7;
+ _.floatingActionButtonMoveAnimationProgress = t8;
+ _.floatingActionButtonMotionAnimator = t9;
+ _.isSnackBarFloating = t10;
+ _.snackBarWidth = t11;
+ _._debugChildrenNeedingLayout = _._idToChild = null;
+ },
+ _ScaffoldLayout_performLayout__floatingActionButtonRect_set: function _ScaffoldLayout_performLayout__floatingActionButtonRect_set(t0) {
+ this._box_0 = t0;
+ },
+ _ScaffoldLayout_performLayout__floatingActionButtonRect_get: function _ScaffoldLayout_performLayout__floatingActionButtonRect_get(t0) {
+ this._box_0 = t0;
+ },
+ _FloatingActionButtonTransition: function _FloatingActionButtonTransition(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.child = t0;
+ _.fabMoveAnimation = t1;
+ _.fabMotionAnimator = t2;
+ _.geometryNotifier = t3;
+ _.currentController = t4;
+ _.key = t5;
+ },
+ _FloatingActionButtonTransitionState: function _FloatingActionButtonTransitionState(t0, t1) {
+ var _ = this;
+ _.___FloatingActionButtonTransitionState__previousController = null;
+ _.___FloatingActionButtonTransitionState__previousController_isSet = false;
+ _.___FloatingActionButtonTransitionState__previousScaleAnimation = null;
+ _.___FloatingActionButtonTransitionState__previousScaleAnimation_isSet = false;
+ _.___FloatingActionButtonTransitionState__previousRotationAnimation = null;
+ _.___FloatingActionButtonTransitionState__previousRotationAnimation_isSet = false;
+ _.___FloatingActionButtonTransitionState__currentScaleAnimation = null;
+ _.___FloatingActionButtonTransitionState__currentScaleAnimation_isSet = false;
+ _.___FloatingActionButtonTransitionState__extendedCurrentScaleAnimation = null;
+ _.___FloatingActionButtonTransitionState__extendedCurrentScaleAnimation_isSet = false;
+ _.___FloatingActionButtonTransitionState__currentRotationAnimation = null;
+ _.___FloatingActionButtonTransitionState__currentRotationAnimation_isSet = false;
+ _._previousChild = null;
+ _.TickerProviderStateMixin__tickers = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _FloatingActionButtonTransitionState__handlePreviousAnimationStatusChanged_closure: function _FloatingActionButtonTransitionState__handlePreviousAnimationStatusChanged_closure(t0, t1) {
+ this.$this = t0;
+ this.status = t1;
+ },
+ Scaffold: function Scaffold(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.appBar = t0;
+ _.body = t1;
+ _.floatingActionButton = t2;
+ _.floatingActionButtonLocation = t3;
+ _.key = t4;
+ },
+ ScaffoldState: function ScaffoldState(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._drawerKey = t0;
+ _._endDrawerKey = t1;
+ _._appBarMaxHeight = null;
+ _._endDrawerOpened = _._drawerOpened = false;
+ _._snackBars = t2;
+ _._messengerSnackBar = _._scaffoldMessenger = _._accessibleNavigation = _._snackBarTimer = null;
+ _._dismissedBottomSheets = t3;
+ _.__ScaffoldState__floatingActionButtonMoveController = _._currentBottomSheet = null;
+ _.__ScaffoldState__floatingActionButtonMoveController_isSet = false;
+ _.__ScaffoldState__floatingActionButtonAnimator = null;
+ _.__ScaffoldState__floatingActionButtonAnimator_isSet = false;
+ _.__ScaffoldState__floatingActionButtonVisibilityController = _._floatingActionButtonLocation = _._previousFloatingActionButtonLocation = null;
+ _.__ScaffoldState__floatingActionButtonVisibilityController_isSet = false;
+ _._primaryScrollController = t4;
+ _.__ScaffoldState__geometryNotifier = null;
+ _._showBodyScrim = _.__ScaffoldState__geometryNotifier_isSet = false;
+ _._bodyScrimColor = t5;
+ _.TickerProviderStateMixin__tickers = t6;
+ _._widget = null;
+ _._debugLifecycleState = t7;
+ _._framework$_element = null;
+ },
+ ScaffoldState_hideCurrentSnackBar_closure: function ScaffoldState_hideCurrentSnackBar_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.completer = t1;
+ this.reason = t2;
+ },
+ ScaffoldState__updateSnackBar_closure: function ScaffoldState__updateSnackBar_closure(t0) {
+ this.$this = t0;
+ },
+ ScaffoldState__moveFloatingActionButton_closure: function ScaffoldState__moveFloatingActionButton_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.$this = t1;
+ this.newLocation = t2;
+ },
+ ScaffoldState_build_closure: function ScaffoldState_build_closure(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._box_0 = t0;
+ _.$this = t1;
+ _.children = t2;
+ _._extendBody = t3;
+ _.minInsets = t4;
+ _.minViewPadding = t5;
+ _.textDirection = t6;
+ },
+ _ScaffoldScope: function _ScaffoldScope(t0, t1, t2) {
+ this.hasDrawer = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _ScaffoldMessengerState_State_TickerProviderStateMixin: function _ScaffoldMessengerState_State_TickerProviderStateMixin() {
+ },
+ _ScaffoldState_State_TickerProviderStateMixin: function _ScaffoldState_State_TickerProviderStateMixin() {
+ },
+ __FloatingActionButtonTransitionState_State_TickerProviderStateMixin: function __FloatingActionButtonTransitionState_State_TickerProviderStateMixin() {
+ },
+ ImageConfiguration: function ImageConfiguration(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.bundle = t0;
+ _.devicePixelRatio = t1;
+ _.locale = t2;
+ _.textDirection = t3;
+ _.size = t4;
+ _.platform = t5;
+ },
+ StrutStyle: function StrutStyle(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.fontFamily = t0;
+ _._strut_style$_fontFamilyFallback = t1;
+ _.fontSize = t2;
+ _.height = t3;
+ _.fontWeight = t4;
+ _.fontStyle = t5;
+ _.leading = t6;
+ _.forceStrutHeight = t7;
+ _.debugLabel = t8;
+ },
+ _StrutStyle_Object_Diagnosticable: function _StrutStyle_Object_Diagnosticable() {
+ },
+ SpringDescription$withDampingRatio: function(mass, ratio, stiffness) {
+ return new M.SpringDescription(mass, stiffness, ratio * 2 * Math.sqrt(mass * stiffness));
+ },
+ _SpringSolution__SpringSolution: function(spring, initialPosition, initialVelocity) {
+ var r, r1, r2, c2, w,
+ t1 = spring.damping,
+ t2 = t1 * t1,
+ t3 = spring.mass,
+ t4 = 4 * t3 * spring.stiffness,
+ cmk = t2 - t4;
+ if (cmk === 0) {
+ r = -t1 / (2 * t3);
+ return new M._CriticalSolution(r, initialPosition, initialVelocity / (r * initialPosition));
+ }
+ if (cmk > 0) {
+ t1 = -t1;
+ t3 = 2 * t3;
+ r1 = (t1 - Math.sqrt(cmk)) / t3;
+ r2 = (t1 + Math.sqrt(cmk)) / t3;
+ c2 = (initialVelocity - r1 * initialPosition) / (r2 - r1);
+ return new M._OverdampedSolution(r1, r2, initialPosition - c2, c2);
+ }
+ w = Math.sqrt(t4 - t2) / (2 * t3);
+ r = -(t1 / 2 * t3);
+ return new M._UnderdampedSolution(w, r, initialPosition, (initialVelocity - r * initialPosition) / w);
+ },
+ SpringDescription: function SpringDescription(t0, t1, t2) {
+ this.mass = t0;
+ this.stiffness = t1;
+ this.damping = t2;
+ },
+ SpringType: function SpringType(t0) {
+ this._spring_simulation$_name = t0;
+ },
+ SpringSimulation: function SpringSimulation() {
+ },
+ ScrollSpringSimulation: function ScrollSpringSimulation(t0, t1, t2) {
+ this._endPosition = t0;
+ this._solution = t1;
+ this.tolerance = t2;
+ },
+ _CriticalSolution: function _CriticalSolution(t0, t1, t2) {
+ this._r = t0;
+ this._c1 = t1;
+ this._c2 = t2;
+ },
+ _OverdampedSolution: function _OverdampedSolution(t0, t1, t2, t3) {
+ var _ = this;
+ _._r1 = t0;
+ _._r2 = t1;
+ _._c1 = t2;
+ _._c2 = t3;
+ },
+ _UnderdampedSolution: function _UnderdampedSolution(t0, t1, t2, t3) {
+ var _ = this;
+ _._spring_simulation$_w = t0;
+ _._r = t1;
+ _._c1 = t2;
+ _._c2 = t3;
+ },
+ TickerFuture$complete: function() {
+ var t1 = new M.TickerFuture(new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void));
+ t1._ticker$_complete$0();
+ return t1;
+ },
+ Ticker: function Ticker(t0, t1) {
+ var _ = this;
+ _._ticker$_future = null;
+ _._muted = false;
+ _._startTime = null;
+ _._onTick = t0;
+ _._animationId = null;
+ _.debugLabel = t1;
+ _.__Ticker__debugCreationStack = null;
+ _.__Ticker__debugCreationStack_isSet = false;
+ },
+ TickerFuture: function TickerFuture(t0) {
+ this._primaryCompleter = t0;
+ this._completed = this._secondaryCompleter = null;
+ },
+ TickerFuture_whenCompleteOrCancel_thunk: function TickerFuture_whenCompleteOrCancel_thunk(t0) {
+ this.callback = t0;
+ },
+ TickerCanceled: function TickerCanceled(t0) {
+ this.ticker = t0;
+ },
+ DecoratedBox$: function(child, decoration, position) {
+ return new M.DecoratedBox(decoration, position, child, null);
+ },
+ Container$: function(alignment, child, color, constraints, decoration, height, margin, padding, width) {
+ var t1;
+ if (width != null || height != null) {
+ t1 = constraints == null ? null : constraints.tighten$2$height$width(height, width);
+ if (t1 == null)
+ t1 = S.BoxConstraints$tightFor(height, width);
+ } else
+ t1 = constraints;
+ return new M.Container(child, alignment, padding, color, decoration, t1, margin, null);
+ },
+ DecoratedBox: function DecoratedBox(t0, t1, t2, t3) {
+ var _ = this;
+ _.decoration = t0;
+ _.position = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ Container: function Container(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.child = t0;
+ _.alignment = t1;
+ _.padding = t2;
+ _.color = t3;
+ _.decoration = t4;
+ _.constraints = t5;
+ _.margin = t6;
+ _.key = t7;
+ },
+ InheritedTheme_capture: function(from, to) {
+ var themes, t1 = {};
+ if (J.$eq$(from, to))
+ return new M.CapturedThemes(C.List_empty6);
+ themes = H.setRuntimeTypeInfo([], type$.JSArray_InheritedTheme);
+ t1.debugDidFindAncestor = null;
+ t1._debugDidFindAncestor_isSet = false;
+ from.visitAncestorElements$1(new M.InheritedTheme_capture_closure(to, new M.InheritedTheme_capture__debugDidFindAncestor_set(t1), P.LinkedHashSet_LinkedHashSet$_empty(type$.Type), themes));
+ return new M.CapturedThemes(themes);
+ },
+ InheritedTheme: function InheritedTheme() {
+ },
+ InheritedTheme_capture__debugDidFindAncestor_set: function InheritedTheme_capture__debugDidFindAncestor_set(t0) {
+ this._box_0 = t0;
+ },
+ InheritedTheme_capture_closure: function InheritedTheme_capture_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.to = t0;
+ _._debugDidFindAncestor_set = t1;
+ _.themeTypes = t2;
+ _.themes = t3;
+ },
+ CapturedThemes: function CapturedThemes(t0) {
+ this._themes = t0;
+ },
+ _CaptureAll: function _CaptureAll(t0, t1, t2) {
+ this.themes = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ ScrollActivity: function ScrollActivity() {
+ },
+ IdleScrollActivity: function IdleScrollActivity(t0) {
+ this._delegate = t0;
+ },
+ HoldScrollActivity: function HoldScrollActivity(t0, t1) {
+ this.onHoldCanceled = t0;
+ this._delegate = t1;
+ },
+ ScrollDragController: function ScrollDragController(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._delegate = t0;
+ _.onDragCanceled = t1;
+ _.carriedVelocity = t2;
+ _.motionStartDistanceThreshold = t3;
+ _._lastNonStationaryTimestamp = t4;
+ _._retainMomentum = t5;
+ _._offsetSinceLastStop = t6;
+ _._lastDetails = t7;
+ },
+ DragScrollActivity: function DragScrollActivity(t0, t1) {
+ this._controller = t0;
+ this._delegate = t1;
+ },
+ BallisticScrollActivity: function BallisticScrollActivity(t0) {
+ this.__BallisticScrollActivity__controller = null;
+ this.__BallisticScrollActivity__controller_isSet = false;
+ this._delegate = t0;
+ },
+ DrivenScrollActivity: function DrivenScrollActivity(t0) {
+ var _ = this;
+ _.__DrivenScrollActivity__completer = null;
+ _.__DrivenScrollActivity__completer_isSet = false;
+ _.__DrivenScrollActivity__controller = null;
+ _.__DrivenScrollActivity__controller_isSet = false;
+ _._delegate = t0;
+ },
+ ScrollMetrics: function ScrollMetrics() {
+ },
+ FixedScrollMetrics: function FixedScrollMetrics(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._scroll_metrics$_minScrollExtent = t0;
+ _._scroll_metrics$_maxScrollExtent = t1;
+ _._scroll_metrics$_pixels = t2;
+ _._viewportDimension = t3;
+ _.axisDirection = t4;
+ },
+ SimpleWebSocket: function SimpleWebSocket(t0) {
+ var _ = this;
+ _._url = t0;
+ _.onClose = _.onMessage = _.onOpen = _._websocket_web$_socket = null;
+ },
+ SimpleWebSocket_connect_closure: function SimpleWebSocket_connect_closure(t0) {
+ this.$this = t0;
+ },
+ SimpleWebSocket_connect_closure0: function SimpleWebSocket_connect_closure0(t0) {
+ this.$this = t0;
+ },
+ SimpleWebSocket_connect_closure1: function SimpleWebSocket_connect_closure1(t0) {
+ this.$this = t0;
+ },
+ _parseUri: function(uri) {
+ if (type$.Uri._is(uri))
+ return uri;
+ throw H.wrapException(P.ArgumentError$value(uri, "uri", "Value must be a String or a Uri"));
+ },
+ _validateArgList: function(method, args) {
+ var numArgs, i, numArgs0, message, t1, t2, t3, t4;
+ for (numArgs = args.length, i = 1; i < numArgs; ++i) {
+ if (args[i] == null || args[i - 1] != null)
+ continue;
+ for (; numArgs >= 1; numArgs = numArgs0) {
+ numArgs0 = numArgs - 1;
+ if (args[numArgs0] != null)
+ break;
+ }
+ message = new P.StringBuffer("");
+ t1 = method + "(";
+ message._contents = t1;
+ t2 = H._arrayInstanceType(args);
+ t3 = t2._eval$1("SubListIterable<1>");
+ t4 = new H.SubListIterable(args, 0, numArgs, t3);
+ t4.SubListIterable$3(args, 0, numArgs, t2._precomputed1);
+ t3 = t1 + new H.MappedListIterable(t4, new M._validateArgList_closure(), t3._eval$1("MappedListIterable")).join$1(0, ", ");
+ message._contents = t3;
+ message._contents = t3 + ("): part " + (i - 1) + " was null, but part " + i + " was not.");
+ throw H.wrapException(P.ArgumentError$(message.toString$0(0)));
+ }
+ },
+ Context: function Context(t0, t1) {
+ this.style = t0;
+ this._context$_current = t1;
+ },
+ Context_joinAll_closure: function Context_joinAll_closure() {
+ },
+ Context_split_closure: function Context_split_closure() {
+ },
+ _validateArgList_closure: function _validateArgList_closure() {
+ },
+ Feedback_forTap: function(context) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue;
+ var $async$Feedback_forTap = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ $async$outer:
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ context.get$renderObject().sendSemanticsEvent$1(C.TapSemanticEvent_tap);
+ switch (K.Theme_of(context).platform) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ $async$returnValue = V.SystemSound_play(C.SystemSoundType_0);
+ // goto return
+ $async$goto = 1;
+ break $async$outer;
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_5:
+ $async$returnValue = P.Future_Future$value(null, type$.void);
+ // goto return
+ $async$goto = 1;
+ break $async$outer;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$Feedback_forTap, $async$completer);
+ },
+ Feedback_forLongPress: function(context) {
+ context.get$renderObject().sendSemanticsEvent$1(C.LongPressSemanticsEvent_longPress);
+ switch (K.Theme_of(context).platform) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ return X.HapticFeedback_vibrate();
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_5:
+ return P.Future_Future$value(null, type$.void);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ SystemNavigator_pop: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$SystemNavigator_pop = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(C.OptionalMethodChannel_cWd.invokeMethod$1$2("SystemNavigator.pop", null, type$.void), $async$SystemNavigator_pop);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$SystemNavigator_pop, $async$completer);
+ }
+ },
+ Y = {HeapPriorityQueue: function HeapPriorityQueue(t0, t1, t2) {
+ var _ = this;
+ _.comparison = t0;
+ _._priority_queue$_queue = t1;
+ _._priority_queue$_modificationCount = _._priority_queue$_length = 0;
+ _.$ti = t2;
+ },
+ TextTreeConfiguration$: function(addBlankLineIfNoChildren, afterDescriptionIfBody, afterName, afterProperties, beforeName, beforeProperties, bodyIndent, footer, isBlankLineBetweenPropertiesAndChildren, isNameOnOwnLine, lineBreak, lineBreakProperties, linkCharacter, mandatoryFooter, prefixLastChildLineOne, prefixLineOne, prefixOtherLines, prefixOtherLinesRootNode, propertyPrefixIfChildren, propertyPrefixNoChildren, propertySeparator, showChildren, suffixLineOne) {
+ return new Y.TextTreeConfiguration(prefixLineOne, suffixLineOne, prefixOtherLines, prefixLastChildLineOne, prefixOtherLinesRootNode, propertyPrefixIfChildren, propertyPrefixNoChildren, linkCharacter, C.JSString_methods.$mul(" ", linkCharacter.length), lineBreak, lineBreakProperties, beforeName, afterName, afterDescriptionIfBody, beforeProperties, afterProperties, propertySeparator, bodyIndent, showChildren, addBlankLineIfNoChildren, isNameOnOwnLine, footer, mandatoryFooter, isBlankLineBetweenPropertiesAndChildren);
+ },
+ _PrefixedStringBuilder__wordWrapLine: function(message, wrapRanges, width, otherLineOffset, startOffset) {
+ return Y._PrefixedStringBuilder__wordWrapLine$body(message, wrapRanges, width, otherLineOffset, startOffset);
+ },
+ _PrefixedStringBuilder__wordWrapLine$body: function($async$message, $async$wrapRanges, $async$width, $async$otherLineOffset, $async$startOffset) {
+ return P._makeSyncStarIterable(function() {
+ var message = $async$message,
+ wrapRanges = $async$wrapRanges,
+ width = $async$width,
+ otherLineOffset = $async$otherLineOffset,
+ startOffset = $async$startOffset;
+ var $async$goto = 0, $async$handler = 2, $async$currentError, startForLengthCalculations, _lastWordStart_get, _lastWordStart_set, noWrap, addPrefix, index, mode, lastWordEnd, start, t2, _box_0, t1;
+ return function $async$_PrefixedStringBuilder__wordWrapLine($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ _box_0 = {};
+ t1 = message.length;
+ $async$goto = t1 + startOffset < width ? 3 : 4;
+ break;
+ case 3:
+ // then
+ $async$goto = 5;
+ return message;
+ case 5:
+ // after yield
+ // goto return
+ $async$goto = 1;
+ break;
+ case 4:
+ // join
+ startForLengthCalculations = -startOffset;
+ _box_0.lastWordStart = null;
+ _box_0._lastWordStart_isSet = false;
+ _lastWordStart_get = new Y._PrefixedStringBuilder__wordWrapLine__lastWordStart_get(_box_0);
+ _lastWordStart_set = new Y._PrefixedStringBuilder__wordWrapLine__lastWordStart_set(_box_0);
+ _box_0.currentChunk = 0;
+ noWrap = new Y._PrefixedStringBuilder__wordWrapLine_noWrap(_box_0, wrapRanges);
+ addPrefix = false, index = 0, mode = C._WordWrapParseMode_0, lastWordEnd = null, start = 0;
+ case 6:
+ // for condition
+ // trivial condition
+ case 8:
+ // switch
+ switch (mode) {
+ case C._WordWrapParseMode_0:
+ // goto case
+ $async$goto = 10;
+ break;
+ case C._WordWrapParseMode_1:
+ // goto case
+ $async$goto = 11;
+ break;
+ case C._WordWrapParseMode_2:
+ // goto case
+ $async$goto = 12;
+ break;
+ default:
+ // goto default
+ $async$goto = 13;
+ break;
+ }
+ break;
+ case 10:
+ // case
+ while (true) {
+ if (!(index < t1 && message[index] === " "))
+ break;
+ ++index;
+ }
+ _lastWordStart_set.call$1(index);
+ mode = C._WordWrapParseMode_1;
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 11:
+ // case
+ while (true) {
+ if (index < t1)
+ t2 = message[index] !== " " || noWrap.call$1(index);
+ else
+ t2 = false;
+ if (!t2)
+ break;
+ ++index;
+ }
+ mode = C._WordWrapParseMode_2;
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 12:
+ // case
+ t2 = index - startForLengthCalculations;
+ $async$goto = t2 > width || index === t1 ? 14 : 16;
+ break;
+ case 14:
+ // then
+ if (t2 <= width || lastWordEnd == null)
+ lastWordEnd = index;
+ $async$goto = 17;
+ return C.JSString_methods.substring$2(message, start, lastWordEnd);
+ case 17:
+ // after yield
+ if (lastWordEnd >= t1) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ if (lastWordEnd === index) {
+ while (true) {
+ if (!(index < t1 && message[index] === " "))
+ break;
+ ++index;
+ }
+ start = index;
+ mode = C._WordWrapParseMode_1;
+ } else {
+ start = _lastWordStart_get.call$0();
+ mode = C._WordWrapParseMode_2;
+ }
+ startForLengthCalculations = start - otherLineOffset;
+ addPrefix = true;
+ lastWordEnd = null;
+ // goto join
+ $async$goto = 15;
+ break;
+ case 16:
+ // else
+ lastWordEnd = index;
+ mode = C._WordWrapParseMode_0;
+ case 15:
+ // join
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 13:
+ // default
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ case 9:
+ // after switch
+ // goto for condition
+ $async$goto = 6;
+ break;
+ case 7:
+ // after for
+ case 1:
+ // return
+ return P._IterationMarker_endOfIteration();
+ case 2:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.String);
+ },
+ DiagnosticsNode_DiagnosticsNode$message: function(message, allowWrap, style) {
+ var _null = null;
+ return Y.DiagnosticsProperty$("", _null, allowWrap, C.C__NoDefaultValue, message, false, _null, _null, C.DiagnosticLevel_3, _null, false, false, true, style, _null, type$.void);
+ },
+ DiagnosticsProperty$: function($name, value, allowWrap, defaultValue, description, expandableValue, ifEmpty, ifNull, level, linePrefix, missingIfNull, showName, showSeparator, style, tooltip, $T) {
+ var t1;
+ if (ifNull == null)
+ t1 = missingIfNull ? "MISSING" : null;
+ else
+ t1 = ifNull;
+ return new Y.DiagnosticsProperty(description, false, allowWrap, t1, ifEmpty, tooltip, missingIfNull, value, defaultValue, level, $name, showSeparator, showName, linePrefix, style, $T._eval$1("DiagnosticsProperty<0>"));
+ },
+ DiagnosticableTreeNode$: function($name, style, value) {
+ return new Y.DiagnosticableTreeNode(value, $name, true, true, null, style);
+ },
+ shortHash: function(object) {
+ var t1 = J.get$hashCode$(object);
+ t1.toString;
+ return C.JSString_methods.padLeft$2(C.JSInt_methods.toRadixString$1(t1 & 1048575, 16), 5, "0");
+ },
+ describeEnum: function(enumEntry) {
+ var description = J.toString$0$(enumEntry);
+ return C.JSString_methods.substring$1(description, J.getInterceptor$asx(description).indexOf$1(description, ".") + 1);
+ },
+ DiagnosticLevel: function DiagnosticLevel(t0, t1) {
+ this.index = t0;
+ this._diagnostics$_name = t1;
+ },
+ DiagnosticsTreeStyle: function DiagnosticsTreeStyle(t0) {
+ this._diagnostics$_name = t0;
+ },
+ TextTreeConfiguration: function TextTreeConfiguration(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23) {
+ var _ = this;
+ _.prefixLineOne = t0;
+ _.suffixLineOne = t1;
+ _.prefixOtherLines = t2;
+ _.prefixLastChildLineOne = t3;
+ _.prefixOtherLinesRootNode = t4;
+ _.propertyPrefixIfChildren = t5;
+ _.propertyPrefixNoChildren = t6;
+ _.linkCharacter = t7;
+ _.childLinkSpace = t8;
+ _.lineBreak = t9;
+ _.lineBreakProperties = t10;
+ _.beforeName = t11;
+ _.afterName = t12;
+ _.afterDescriptionIfBody = t13;
+ _.beforeProperties = t14;
+ _.afterProperties = t15;
+ _.propertySeparator = t16;
+ _.bodyIndent = t17;
+ _.showChildren = t18;
+ _.addBlankLineIfNoChildren = t19;
+ _.isNameOnOwnLine = t20;
+ _.footer = t21;
+ _.mandatoryFooter = t22;
+ _.isBlankLineBetweenPropertiesAndChildren = t23;
+ },
+ _WordWrapParseMode: function _WordWrapParseMode(t0) {
+ this._diagnostics$_name = t0;
+ },
+ _PrefixedStringBuilder: function _PrefixedStringBuilder(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.prefixLineOne = t0;
+ _._prefixOtherLines = t1;
+ _._nextPrefixOtherLines = null;
+ _.wrapWidth = t2;
+ _._diagnostics$_buffer = t3;
+ _._currentLine = t4;
+ _._wrappableRanges = t5;
+ _._numLines = 0;
+ },
+ _PrefixedStringBuilder__wordWrapLine__lastWordStart_set: function _PrefixedStringBuilder__wordWrapLine__lastWordStart_set(t0) {
+ this._box_0 = t0;
+ },
+ _PrefixedStringBuilder__wordWrapLine__lastWordStart_get: function _PrefixedStringBuilder__wordWrapLine__lastWordStart_get(t0) {
+ this._box_0 = t0;
+ },
+ _PrefixedStringBuilder__wordWrapLine_noWrap: function _PrefixedStringBuilder__wordWrapLine_noWrap(t0, t1) {
+ this._box_0 = t0;
+ this.wrapRanges = t1;
+ },
+ _NoDefaultValue: function _NoDefaultValue() {
+ },
+ TextTreeRenderer: function TextTreeRenderer(t0, t1, t2, t3) {
+ var _ = this;
+ _._wrapWidth = t0;
+ _._wrapWidthProperties = t1;
+ _._minLevel = t2;
+ _._maxDescendentsTruncatableNode = t3;
+ },
+ TextTreeRenderer__debugRender_visitor: function TextTreeRenderer__debugRender_visitor(t0, t1) {
+ this._box_0 = t0;
+ this.descendants = t1;
+ },
+ TextTreeRenderer__debugRender_closure: function TextTreeRenderer__debugRender_closure(t0) {
+ this.$this = t0;
+ },
+ DiagnosticsNode: function DiagnosticsNode() {
+ },
+ DiagnosticsProperty: function DiagnosticsProperty(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15) {
+ var _ = this;
+ _._description = t0;
+ _.expandableValue = t1;
+ _.allowWrap = t2;
+ _.ifNull = t3;
+ _.ifEmpty = t4;
+ _.tooltip = t5;
+ _.missingIfNull = t6;
+ _._value = t7;
+ _._valueComputed = true;
+ _._diagnostics$_exception = null;
+ _.defaultValue = t8;
+ _._defaultLevel = t9;
+ _.name = t10;
+ _.showSeparator = t11;
+ _.showName = t12;
+ _.linePrefix = t13;
+ _.style = t14;
+ _.$ti = t15;
+ },
+ DiagnosticableNode: function DiagnosticableNode() {
+ },
+ DiagnosticableTreeNode: function DiagnosticableTreeNode(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.value = t0;
+ _._cachedBuilder = null;
+ _.name = t1;
+ _.showSeparator = t2;
+ _.showName = t3;
+ _.linePrefix = t4;
+ _.style = t5;
+ },
+ DiagnosticPropertiesBuilder: function DiagnosticPropertiesBuilder(t0, t1) {
+ this.properties = t0;
+ this.defaultDiagnosticsTreeStyle = t1;
+ this.emptyBodyDescription = null;
+ },
+ Diagnosticable: function Diagnosticable() {
+ },
+ DiagnosticableTree: function DiagnosticableTree() {
+ },
+ DiagnosticableTreeMixin: function DiagnosticableTreeMixin() {
+ },
+ DiagnosticsBlock: function DiagnosticsBlock() {
+ },
+ _DiagnosticableTree_Object_Diagnosticable: function _DiagnosticableTree_Object_Diagnosticable() {
+ },
+ DialogTheme: function DialogTheme(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.elevation = t1;
+ _.shape = t2;
+ _.titleTextStyle = t3;
+ _.contentTextStyle = t4;
+ },
+ _DialogTheme_Object_Diagnosticable: function _DialogTheme_Object_Diagnosticable() {
+ },
+ InkHighlight: function InkHighlight(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _._ink_highlight$_shape = t0;
+ _._ink_highlight$_radius = t1;
+ _._ink_highlight$_borderRadius = t2;
+ _._ink_highlight$_customBorder = t3;
+ _._rectCallback = t4;
+ _._ink_highlight$_textDirection = t5;
+ _.__InkHighlight__alpha = null;
+ _.__InkHighlight__alpha_isSet = false;
+ _.__InkHighlight__alphaController = null;
+ _.__InkHighlight__alphaController_isSet = false;
+ _._active = true;
+ _._ink_well$_color = t6;
+ _._material$_controller = t7;
+ _.referenceBox = t8;
+ _.onRemoved = t9;
+ _._material$_debugDisposed = false;
+ },
+ BorderSide_merge: function(a, b) {
+ var t1 = a.style,
+ aIsNone = t1 === C.BorderStyle_0 && a.width === 0,
+ bIsNone = b.style === C.BorderStyle_0 && b.width === 0;
+ if (aIsNone && bIsNone)
+ return C.BorderSide_m7u;
+ if (aIsNone)
+ return b;
+ if (bIsNone)
+ return a;
+ return new Y.BorderSide(a.color, a.width + b.width, t1);
+ },
+ BorderSide_canMerge: function(a, b) {
+ var t2,
+ t1 = a.style;
+ if (!(t1 === C.BorderStyle_0 && a.width === 0))
+ t2 = b.style === C.BorderStyle_0 && b.width === 0;
+ else
+ t2 = true;
+ if (t2)
+ return true;
+ return t1 === b.style && J.$eq$(a.color, b.color);
+ },
+ BorderSide_lerp: function(a, b, t) {
+ var t1, t2, t3, colorA, colorB,
+ _s80_ = string$.x60null_c;
+ if (t === 0)
+ return a;
+ if (t === 1)
+ return b;
+ t1 = P.lerpDouble(a.width, b.width, t);
+ t1.toString;
+ if (t1 < 0)
+ return C.BorderSide_m7u;
+ t2 = a.style;
+ t3 = b.style;
+ if (t2 === t3) {
+ t3 = P.Color_lerp(a.color, b.color, t);
+ t3.toString;
+ return new Y.BorderSide(t3, t1, t2);
+ }
+ switch (t2) {
+ case C.BorderStyle_1:
+ colorA = a.color;
+ break;
+ case C.BorderStyle_0:
+ t2 = a.color;
+ colorA = P.Color$fromARGB(0, t2.get$value(t2) >>> 16 & 255, t2.get$value(t2) >>> 8 & 255, t2.get$value(t2) & 255);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ switch (t3) {
+ case C.BorderStyle_1:
+ colorB = b.color;
+ break;
+ case C.BorderStyle_0:
+ t2 = b.color;
+ colorB = P.Color$fromARGB(0, t2.get$value(t2) >>> 16 & 255, t2.get$value(t2) >>> 8 & 255, t2.get$value(t2) & 255);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ t2 = P.Color_lerp(colorA, colorB, t);
+ t2.toString;
+ return new Y.BorderSide(t2, t1, C.BorderStyle_1);
+ },
+ ShapeBorder_lerp: function(a, b, t) {
+ var t1,
+ result = b != null ? b.lerpFrom$2(a, t) : null;
+ if (result == null && a != null)
+ result = a.lerpTo$2(b, t);
+ if (result == null)
+ t1 = t < 0.5 ? a : b;
+ else
+ t1 = result;
+ return t1;
+ },
+ _CompoundBorder_lerp: function(a, b, t) {
+ var index, localA, localB, t1, localResult,
+ aList = a instanceof Y._CompoundBorder ? a.borders : H.setRuntimeTypeInfo([a], type$.JSArray_nullable_ShapeBorder),
+ bList = b instanceof Y._CompoundBorder ? b.borders : H.setRuntimeTypeInfo([b], type$.JSArray_nullable_ShapeBorder),
+ results = H.setRuntimeTypeInfo([], type$.JSArray_ShapeBorder),
+ $length = Math.max(aList.length, bList.length);
+ for (index = 0; index < $length; ++index) {
+ localA = index < aList.length ? aList[index] : null;
+ localB = index < bList.length ? bList[index] : null;
+ t1 = localA != null;
+ if (t1 && localB != null) {
+ localResult = localA.lerpTo$2(localB, t);
+ if (localResult == null)
+ localResult = localB.lerpFrom$2(localA, t);
+ if (localResult != null) {
+ results.push(localResult);
+ continue;
+ }
+ }
+ if (localB != null)
+ results.push(localB.scale$1(0, t));
+ if (t1)
+ results.push(localA.scale$1(0, 1 - t));
+ }
+ return new Y._CompoundBorder(results);
+ },
+ paintBorder: function(canvas, rect, bottom, left, right, $top) {
+ var path, t1, t2, t3, t4,
+ _s80_ = string$.x60null_c,
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$strokeWidth(0);
+ path = P.Path_Path();
+ switch ($top.style) {
+ case C.BorderStyle_1:
+ paint.set$color(0, $top.color);
+ path.reset$0(0);
+ t1 = rect.left;
+ t2 = rect.top;
+ path.moveTo$2(0, t1, t2);
+ t3 = rect.right;
+ path.lineTo$2(0, t3, t2);
+ t4 = $top.width;
+ if (t4 === 0)
+ paint.set$style(0, C.PaintingStyle_1);
+ else {
+ paint.set$style(0, C.PaintingStyle_0);
+ t2 += t4;
+ path.lineTo$2(0, t3 - right.width, t2);
+ path.lineTo$2(0, t1 + left.width, t2);
+ }
+ canvas.drawPath$2(0, path, paint);
+ break;
+ case C.BorderStyle_0:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ switch (right.style) {
+ case C.BorderStyle_1:
+ paint.set$color(0, right.color);
+ path.reset$0(0);
+ t1 = rect.right;
+ t2 = rect.top;
+ path.moveTo$2(0, t1, t2);
+ t3 = rect.bottom;
+ path.lineTo$2(0, t1, t3);
+ t4 = right.width;
+ if (t4 === 0)
+ paint.set$style(0, C.PaintingStyle_1);
+ else {
+ paint.set$style(0, C.PaintingStyle_0);
+ t1 -= t4;
+ path.lineTo$2(0, t1, t3 - bottom.width);
+ path.lineTo$2(0, t1, t2 + $top.width);
+ }
+ canvas.drawPath$2(0, path, paint);
+ break;
+ case C.BorderStyle_0:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ switch (bottom.style) {
+ case C.BorderStyle_1:
+ paint.set$color(0, bottom.color);
+ path.reset$0(0);
+ t1 = rect.right;
+ t2 = rect.bottom;
+ path.moveTo$2(0, t1, t2);
+ t3 = rect.left;
+ path.lineTo$2(0, t3, t2);
+ t4 = bottom.width;
+ if (t4 === 0)
+ paint.set$style(0, C.PaintingStyle_1);
+ else {
+ paint.set$style(0, C.PaintingStyle_0);
+ t2 -= t4;
+ path.lineTo$2(0, t3 + left.width, t2);
+ path.lineTo$2(0, t1 - right.width, t2);
+ }
+ canvas.drawPath$2(0, path, paint);
+ break;
+ case C.BorderStyle_0:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ switch (left.style) {
+ case C.BorderStyle_1:
+ paint.set$color(0, left.color);
+ path.reset$0(0);
+ t1 = rect.left;
+ t2 = rect.bottom;
+ path.moveTo$2(0, t1, t2);
+ t3 = rect.top;
+ path.lineTo$2(0, t1, t3);
+ t4 = left.width;
+ if (t4 === 0)
+ paint.set$style(0, C.PaintingStyle_1);
+ else {
+ paint.set$style(0, C.PaintingStyle_0);
+ t1 += t4;
+ path.lineTo$2(0, t1, t3 + $top.width);
+ path.lineTo$2(0, t1, t2 - bottom.width);
+ }
+ canvas.drawPath$2(0, path, paint);
+ break;
+ case C.BorderStyle_0:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ },
+ BorderStyle: function BorderStyle(t0) {
+ this._borders$_name = t0;
+ },
+ BorderSide: function BorderSide(t0, t1, t2) {
+ this.color = t0;
+ this.width = t1;
+ this.style = t2;
+ },
+ ShapeBorder: function ShapeBorder() {
+ },
+ OutlinedBorder: function OutlinedBorder() {
+ },
+ _CompoundBorder: function _CompoundBorder(t0) {
+ this.borders = t0;
+ },
+ _CompoundBorder_dimensions_closure: function _CompoundBorder_dimensions_closure() {
+ },
+ _CompoundBorder_scale_closure: function _CompoundBorder_scale_closure(t0) {
+ this.t = t0;
+ },
+ _CompoundBorder_toString_closure: function _CompoundBorder_toString_closure() {
+ },
+ BaseMouseTracker__shouldMarkStateDirty: function(state, $event) {
+ var lastEvent;
+ if (state == null)
+ return true;
+ lastEvent = state._latestEvent;
+ if (type$.PointerSignalEvent._is($event))
+ return false;
+ return type$.PointerAddedEvent._is(lastEvent) || type$.PointerRemovedEvent._is($event) || !lastEvent.get$position(lastEvent).$eq(0, $event.get$position($event));
+ },
+ _MouseTrackerEventMixin__handleDeviceUpdateMouseEvents: function(details) {
+ var lastAnnotations, nextAnnotations, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, enteringAnnotations, baseEnterEvent, cur,
+ result = details.triggeringEvent;
+ if (result == null)
+ result = details.previousEvent;
+ lastAnnotations = details.lastAnnotations;
+ nextAnnotations = details.nextAnnotations;
+ t1 = result.get$timeStamp(result);
+ t2 = result.get$pointer();
+ t3 = result.get$kind(result);
+ t4 = result.get$device(result);
+ t5 = result.get$position(result);
+ t6 = result.get$delta();
+ t7 = result.get$buttons(result);
+ result.get$obscured();
+ t8 = result.get$pressureMin();
+ t9 = result.get$pressureMax();
+ t10 = result.get$distance();
+ t11 = result.get$distanceMax();
+ t12 = result.get$size(result);
+ t13 = result.get$radiusMajor();
+ t14 = result.get$radiusMinor();
+ t15 = result.get$radiusMin();
+ t16 = result.get$radiusMax();
+ t17 = result.get$orientation(result);
+ t18 = result.get$tilt();
+ lastAnnotations.forEach$1(0, new Y._MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure(nextAnnotations, F.PointerExitEvent$(t7, t6, t4, t10, t11, result.get$down(), 0, t3, false, t17, t2, t5, t9, t8, t13, t16, t15, t14, t12, result.get$synthesized(), t18, t1).transformed$1(result.get$transform(result)), lastAnnotations));
+ t1 = nextAnnotations.get$keys(nextAnnotations);
+ t18 = H._instanceType(t1)._eval$1("WhereIterable");
+ enteringAnnotations = P.List_List$of(new H.WhereIterable(t1, new Y._MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure0(lastAnnotations), t18), true, t18._eval$1("Iterable.E"));
+ t18 = result.get$timeStamp(result);
+ t1 = result.get$pointer();
+ t12 = result.get$kind(result);
+ t14 = result.get$device(result);
+ t15 = result.get$position(result);
+ t16 = result.get$delta();
+ t13 = result.get$buttons(result);
+ result.get$obscured();
+ t8 = result.get$pressureMin();
+ t9 = result.get$pressureMax();
+ t5 = result.get$distance();
+ t2 = result.get$distanceMax();
+ t17 = result.get$size(result);
+ t3 = result.get$radiusMajor();
+ t11 = result.get$radiusMinor();
+ t10 = result.get$radiusMin();
+ t4 = result.get$radiusMax();
+ t6 = result.get$orientation(result);
+ t7 = result.get$tilt();
+ baseEnterEvent = F.PointerEnterEvent$(t13, t16, t14, t5, t2, result.get$down(), 0, t12, false, t6, t1, t15, t9, t8, t3, t4, t10, t11, t17, result.get$synthesized(), t7, t18).transformed$1(result.get$transform(result));
+ for (t1 = new H.ReversedListIterable(enteringAnnotations, H._arrayInstanceType(enteringAnnotations)._eval$1("ReversedListIterable<1>")), t1 = new H.ListIterator(t1, t1.get$length(t1)); t1.moveNext$0();) {
+ cur = t1._current;
+ if (cur.get$onEnter(cur) != null) {
+ t2 = cur.get$onEnter(cur);
+ t2.toString;
+ t2.call$1(baseEnterEvent.transformed$1(nextAnnotations.$index(0, cur)));
+ }
+ }
+ },
+ _MouseState: function _MouseState(t0, t1) {
+ this._annotations = t0;
+ this._latestEvent = t1;
+ },
+ MouseTrackerUpdateDetails: function MouseTrackerUpdateDetails(t0, t1, t2, t3) {
+ var _ = this;
+ _.lastAnnotations = t0;
+ _.nextAnnotations = t1;
+ _.previousEvent = t2;
+ _.triggeringEvent = t3;
+ },
+ BaseMouseTracker: function BaseMouseTracker() {
+ },
+ BaseMouseTracker_updateWithEvent_closure: function BaseMouseTracker_updateWithEvent_closure(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.$this = t0;
+ _.existingState = t1;
+ _.event = t2;
+ _.device = t3;
+ _.result = t4;
+ },
+ BaseMouseTracker_updateWithEvent__closure: function BaseMouseTracker_updateWithEvent__closure(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.$this = t0;
+ _.existingState = t1;
+ _.event = t2;
+ _.device = t3;
+ _.result = t4;
+ },
+ BaseMouseTracker_updateAllDevices_closure: function BaseMouseTracker_updateAllDevices_closure(t0, t1) {
+ this.$this = t0;
+ this.hitTest = t1;
+ },
+ _MouseTrackerEventMixin: function _MouseTrackerEventMixin() {
+ },
+ _MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure: function _MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure(t0, t1, t2) {
+ this.nextAnnotations = t0;
+ this.baseExitEvent = t1;
+ this.lastAnnotations = t2;
+ },
+ _MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure0: function _MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure0(t0) {
+ this.lastAnnotations = t0;
+ },
+ MouseTracker: function MouseTracker(t0, t1, t2) {
+ var _ = this;
+ _.MouseTrackerCursorMixin__lastSession = t0;
+ _._mouseStates = t1;
+ _._debugDuringDeviceUpdate = false;
+ _.ChangeNotifier__listeners = t2;
+ },
+ _MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin: function _MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin() {
+ },
+ _MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin__MouseTrackerEventMixin: function _MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin__MouseTrackerEventMixin() {
+ },
+ _MouseTrackerUpdateDetails_Object_Diagnosticable: function _MouseTrackerUpdateDetails_Object_Diagnosticable() {
+ },
+ IconTheme$: function(child, data, key) {
+ return new Y.IconTheme(data, child, key);
+ },
+ IconTheme_merge: function(child, data) {
+ return new T.Builder(new Y.IconTheme_merge_closure(null, data, child), null);
+ },
+ IconTheme__getInheritedIconThemeData: function(context) {
+ var iconTheme = context.dependOnInheritedWidgetOfExactType$1$0(type$.IconTheme),
+ t1 = iconTheme == null ? null : iconTheme.data;
+ return t1 == null ? C.IconThemeData_Color_4278190080_1_24 : t1;
+ },
+ IconTheme: function IconTheme(t0, t1, t2) {
+ this.data = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ IconTheme_merge_closure: function IconTheme_merge_closure(t0, t1, t2) {
+ this.key = t0;
+ this.data = t1;
+ this.child = t2;
+ },
+ BouncingScrollSimulation: function BouncingScrollSimulation(t0, t1, t2, t3) {
+ var _ = this;
+ _.leadingExtent = t0;
+ _.trailingExtent = t1;
+ _.spring = t2;
+ _.__BouncingScrollSimulation__frictionSimulation = null;
+ _.__BouncingScrollSimulation__frictionSimulation_isSet = false;
+ _.__BouncingScrollSimulation__springSimulation = null;
+ _.__BouncingScrollSimulation__springSimulation_isSet = false;
+ _.__BouncingScrollSimulation__springTime = null;
+ _.__BouncingScrollSimulation__springTime_isSet = false;
+ _._timeOffset = 0;
+ _.tolerance = t3;
+ },
+ ClampingScrollSimulation: function ClampingScrollSimulation(t0, t1, t2) {
+ var _ = this;
+ _.position = t0;
+ _.velocity = t1;
+ _.__ClampingScrollSimulation__duration = null;
+ _.__ClampingScrollSimulation__duration_isSet = false;
+ _.__ClampingScrollSimulation__distance = null;
+ _.__ClampingScrollSimulation__distance_isSet = false;
+ _.tolerance = t2;
+ },
+ FileLocation$_: function(file, offset) {
+ if (offset < 0)
+ H.throwExpression(P.RangeError$("Offset may not be negative, was " + offset + "."));
+ else if (offset > file._decodedChars.length)
+ H.throwExpression(P.RangeError$("Offset " + offset + string$.x20must_ + file.get$length(file) + "."));
+ return new Y.FileLocation(file, offset);
+ },
+ SourceFile: function SourceFile(t0, t1, t2) {
+ var _ = this;
+ _.url = t0;
+ _._lineStarts = t1;
+ _._decodedChars = t2;
+ _._cachedLine = null;
+ },
+ FileLocation: function FileLocation(t0, t1) {
+ this.file = t0;
+ this.offset = t1;
+ },
+ _FileSpan: function _FileSpan(t0, t1, t2) {
+ this.file = t0;
+ this._file$_start = t1;
+ this._file$_end = t2;
+ },
+ SourceSpanMixin: function SourceSpanMixin() {
+ },
+ groupBy: function(values, key, $S, $T) {
+ var t1, _i, element, t2, t3,
+ map = P.LinkedHashMap_LinkedHashMap$_empty($T, $S._eval$1("List<0>"));
+ for (t1 = $S._eval$1("JSArray<0>"), _i = 0; _i < 1; ++_i) {
+ element = values[_i];
+ t2 = key.call$1(element);
+ t3 = map.$index(0, t2);
+ if (t3 == null) {
+ t3 = H.setRuntimeTypeInfo([], t1);
+ map.$indexSet(0, t2, t3);
+ t2 = t3;
+ } else
+ t2 = t3;
+ t2.push(element);
+ }
+ return map;
+ }
+ },
+ X = {AnimationStatus: function AnimationStatus(t0) {
+ this._animation$_name = t0;
+ }, Animation0: function Animation0() {
+ },
+ BottomSheetThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.backgroundColor;
+ t3 = b == null;
+ t2 = P.Color_lerp(t2, t3 ? _null : b.backgroundColor, t);
+ t4 = t1 ? _null : a.elevation;
+ t4 = P.lerpDouble(t4, t3 ? _null : b.elevation, t);
+ t5 = t1 ? _null : a.modalBackgroundColor;
+ t5 = P.Color_lerp(t5, t3 ? _null : b.modalBackgroundColor, t);
+ t6 = t1 ? _null : a.modalElevation;
+ t6 = P.lerpDouble(t6, t3 ? _null : b.modalElevation, t);
+ t7 = t1 ? _null : a.shape;
+ t7 = Y.ShapeBorder_lerp(t7, t3 ? _null : b.shape, t);
+ if (t < 0.5)
+ t1 = t1 ? _null : a.clipBehavior;
+ else
+ t1 = t3 ? _null : b.clipBehavior;
+ return new X.BottomSheetThemeData(t2, t4, t5, t6, t7, t1);
+ },
+ BottomSheetThemeData: function BottomSheetThemeData(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.elevation = t1;
+ _.modalBackgroundColor = t2;
+ _.modalElevation = t3;
+ _.shape = t4;
+ _.clipBehavior = t5;
+ },
+ _BottomSheetThemeData_Object_Diagnosticable: function _BottomSheetThemeData_Object_Diagnosticable() {
+ },
+ ThemeData_ThemeData: function(brightness) {
+ var t1, primaryColor, primaryColorBrightness, primaryColorLight, primaryColorDark, primaryIsDark, toggleableActiveColor, accentColor, accentColorBrightness, accentIsDark, canvasColor, bottomAppBarColor, cardColor, dividerColor, primaryIsDark0, t2, t3, t4, t5, t6, t7, colorScheme, selectedRowColor, unselectedWidgetColor, secondaryHeaderColor, textSelectionColor, textSelectionHandleColor, backgroundColor, dialogBackgroundColor, indicatorColor, hintColor, errorColor, primaryIconTheme, accentIconTheme, iconTheme, platform, typography, defaultTextTheme, defaultPrimaryTextTheme, defaultAccentTextTheme, textTheme, primaryTextTheme, accentTextTheme, materialTapTargetSize, buttonColor, focusColor, hoverColor, buttonTheme, disabledColor, highlightColor, splashColor, chipTheme, _null = null,
+ _brightness = brightness,
+ isDark = _brightness === C.Brightness_0,
+ visualDensity = X.VisualDensity_adaptivePlatformDensity();
+ if (isDark) {
+ t1 = C.Map_HFpTk.$index(0, 900);
+ t1.toString;
+ primaryColor = t1;
+ } else
+ primaryColor = C.MaterialColor_Map_JNwaj_4280391411;
+ primaryColorBrightness = X.ThemeData_estimateBrightnessForColor(primaryColor);
+ if (isDark) {
+ t1 = C.Map_HFpTk.$index(0, 500);
+ t1.toString;
+ primaryColorLight = t1;
+ } else {
+ t1 = C.Map_JNwaj.$index(0, 100);
+ t1.toString;
+ primaryColorLight = t1;
+ }
+ if (isDark)
+ primaryColorDark = C.Color_4278190080;
+ else {
+ t1 = C.Map_JNwaj.$index(0, 700);
+ t1.toString;
+ primaryColorDark = t1;
+ }
+ primaryIsDark = primaryColorBrightness === C.Brightness_0;
+ if (isDark) {
+ t1 = C.Map_iTYZn.$index(0, 200);
+ t1.toString;
+ toggleableActiveColor = t1;
+ } else {
+ t1 = C.Map_JNwaj.$index(0, 600);
+ t1.toString;
+ toggleableActiveColor = t1;
+ }
+ if (isDark) {
+ t1 = C.Map_iTYZn.$index(0, 200);
+ t1.toString;
+ accentColor = t1;
+ } else {
+ t1 = C.Map_JNwaj.$index(0, 500);
+ t1.toString;
+ accentColor = t1;
+ }
+ accentColorBrightness = X.ThemeData_estimateBrightnessForColor(accentColor);
+ accentIsDark = accentColorBrightness === C.Brightness_0;
+ if (isDark) {
+ t1 = C.Map_HFpTk.$index(0, 850);
+ t1.toString;
+ canvasColor = t1;
+ } else {
+ t1 = C.Map_HFpTk.$index(0, 50);
+ t1.toString;
+ canvasColor = t1;
+ }
+ if (isDark) {
+ t1 = C.Map_HFpTk.$index(0, 800);
+ t1.toString;
+ bottomAppBarColor = t1;
+ } else
+ bottomAppBarColor = C.Color_4294967295;
+ if (isDark) {
+ t1 = C.Map_HFpTk.$index(0, 800);
+ t1.toString;
+ cardColor = t1;
+ } else
+ cardColor = C.Color_4294967295;
+ dividerColor = isDark ? C.Color_536870911 : C.Color_520093696;
+ primaryIsDark0 = X.ThemeData_estimateBrightnessForColor(C.MaterialColor_Map_JNwaj_4280391411) === C.Brightness_0;
+ t1 = X.ThemeData_estimateBrightnessForColor(accentColor);
+ if (isDark) {
+ t2 = C.Map_iTYZn.$index(0, 700);
+ t2.toString;
+ } else {
+ t2 = C.Map_JNwaj.$index(0, 700);
+ t2.toString;
+ }
+ if (isDark) {
+ t3 = C.Map_HFpTk.$index(0, 700);
+ t3.toString;
+ } else {
+ t3 = C.Map_JNwaj.$index(0, 200);
+ t3.toString;
+ }
+ t4 = C.Map_JNc9P.$index(0, 700);
+ t4.toString;
+ t5 = primaryIsDark0 ? C.Color_4294967295 : C.Color_4278190080;
+ t1 = t1 === C.Brightness_0 ? C.Color_4294967295 : C.Color_4278190080;
+ t6 = isDark ? C.Color_4294967295 : C.Color_4278190080;
+ t7 = primaryIsDark0 ? C.Color_4294967295 : C.Color_4278190080;
+ colorScheme = new A.ColorScheme(C.MaterialColor_Map_JNwaj_4280391411, primaryColorDark, accentColor, t2, cardColor, t3, t4, t5, t1, t6, t7, isDark ? C.Color_4278190080 : C.Color_4294967295, _brightness);
+ t1 = C.Map_HFpTk.$index(0, 100);
+ t1.toString;
+ selectedRowColor = t1;
+ unselectedWidgetColor = isDark ? C.Color_3019898879 : C.Color_2315255808;
+ if (isDark) {
+ t1 = C.Map_HFpTk.$index(0, 700);
+ t1.toString;
+ secondaryHeaderColor = t1;
+ } else {
+ t1 = C.Map_JNwaj.$index(0, 50);
+ t1.toString;
+ secondaryHeaderColor = t1;
+ }
+ if (isDark)
+ textSelectionColor = accentColor;
+ else {
+ t1 = C.Map_JNwaj.$index(0, 200);
+ t1.toString;
+ textSelectionColor = t1;
+ }
+ if (isDark) {
+ t1 = C.Map_iTYZn.$index(0, 400);
+ t1.toString;
+ textSelectionHandleColor = t1;
+ } else {
+ t1 = C.Map_JNwaj.$index(0, 300);
+ t1.toString;
+ textSelectionHandleColor = t1;
+ }
+ if (isDark) {
+ t1 = C.Map_HFpTk.$index(0, 700);
+ t1.toString;
+ backgroundColor = t1;
+ } else {
+ t1 = C.Map_JNwaj.$index(0, 200);
+ t1.toString;
+ backgroundColor = t1;
+ }
+ if (isDark) {
+ t1 = C.Map_HFpTk.$index(0, 800);
+ t1.toString;
+ dialogBackgroundColor = t1;
+ } else
+ dialogBackgroundColor = C.Color_4294967295;
+ indicatorColor = accentColor.$eq(0, primaryColor) ? C.Color_4294967295 : accentColor;
+ hintColor = isDark ? C.Color_2583691263 : P.Color$fromARGB(153, 0, 0, 0);
+ t1 = C.Map_JNc9P.$index(0, 700);
+ t1.toString;
+ errorColor = t1;
+ primaryIconTheme = primaryIsDark ? C.IconThemeData_Color_4294967295_null_null : C.IconThemeData_Color_4278190080_null_null;
+ accentIconTheme = accentIsDark ? C.IconThemeData_Color_4294967295_null_null : C.IconThemeData_Color_4278190080_null_null;
+ iconTheme = isDark ? C.IconThemeData_Color_4294967295_null_null : C.IconThemeData_Color_3707764736_null_null;
+ platform = U.defaultTargetPlatform();
+ typography = U.Typography_Typography$material2014(platform);
+ defaultTextTheme = isDark ? typography.white : typography.black;
+ defaultPrimaryTextTheme = primaryIsDark ? typography.white : typography.black;
+ defaultAccentTextTheme = accentIsDark ? typography.white : typography.black;
+ textTheme = defaultTextTheme.merge$1(_null);
+ primaryTextTheme = defaultPrimaryTextTheme.merge$1(_null);
+ accentTextTheme = defaultAccentTextTheme.merge$1(_null);
+ switch (platform) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_2:
+ materialTapTargetSize = C.MaterialTapTargetSize_0;
+ break;
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_5:
+ materialTapTargetSize = C.MaterialTapTargetSize_1;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ if (isDark) {
+ t1 = C.Map_JNwaj.$index(0, 600);
+ t1.toString;
+ buttonColor = t1;
+ } else {
+ t1 = C.Map_HFpTk.$index(0, 300);
+ t1.toString;
+ buttonColor = t1;
+ }
+ focusColor = isDark ? P.Color$fromARGB(31, 255, 255, 255) : P.Color$fromARGB(31, 0, 0, 0);
+ hoverColor = isDark ? P.Color$fromARGB(10, 255, 255, 255) : P.Color$fromARGB(10, 0, 0, 0);
+ buttonTheme = M.ButtonThemeData$(false, buttonColor, colorScheme, _null, focusColor, 36, _null, hoverColor, C.ButtonBarLayoutBehavior_1, materialTapTargetSize, 88, _null, _null, _null, C.ButtonTextTheme_0);
+ disabledColor = isDark ? C.Color_1660944383 : C.Color_1627389952;
+ highlightColor = isDark ? C.Color_1087163596 : C.Color_1723645116;
+ splashColor = isDark ? C.Color_1087163596 : C.Color_1724434632;
+ t1 = textTheme.bodyText1;
+ t1.toString;
+ chipTheme = K.ChipThemeData_ChipThemeData$fromDefaults(colorScheme.brightness, t1, primaryColor);
+ return X.ThemeData$raw(accentColor, accentColorBrightness, accentIconTheme, accentTextTheme, C.AppBarTheme_Drw, false, backgroundColor, C.MaterialBannerThemeData_null_null_null_null, bottomAppBarColor, C.BottomAppBarTheme_null_null_null, C.BottomNavigationBarThemeData_ABh, C.BottomSheetThemeData_M2D, C.ButtonBarThemeData_A0t, buttonColor, buttonTheme, canvasColor, cardColor, C.CardTheme_hKX, chipTheme, colorScheme, _null, C.Color_4282549748, C.DataTableThemeData_w8O, dialogBackgroundColor, C.DialogTheme_maI, disabledColor, dividerColor, C.DividerThemeData_Tnu, C.ElevatedButtonThemeData_null, errorColor, false, C.FloatingActionButtonThemeData_IWY, focusColor, highlightColor, hintColor, hoverColor, iconTheme, indicatorColor, C.C_InputDecorationTheme, materialTapTargetSize, C.NavigationRailThemeData_U06, C.OutlinedButtonThemeData_null, C.C_PageTransitionsTheme, platform, C.PopupMenuThemeData_null_null_null_null, primaryColor, primaryColorBrightness, primaryColorDark, primaryColorLight, primaryIconTheme, primaryTextTheme, canvasColor, secondaryHeaderColor, selectedRowColor, C.Color_4278190080, C.SliderThemeData_Q5Z, C.SnackBarThemeData_gc6, splashColor, C.C__InkSplashFactory, C.TabBarTheme_Srx, C.TextButtonThemeData_null, textSelectionColor, textSelectionHandleColor, C.TextSelectionThemeData_null_null_null, textTheme, C.TimePickerThemeData_10O, C.ToggleButtonsThemeData_UsI, toggleableActiveColor, C.TooltipThemeData_kSE, typography, unselectedWidgetColor, true, visualDensity);
+ },
+ ThemeData$raw: function(accentColor, accentColorBrightness, accentIconTheme, accentTextTheme, appBarTheme, applyElevationOverlayColor, backgroundColor, bannerTheme, bottomAppBarColor, bottomAppBarTheme, bottomNavigationBarTheme, bottomSheetTheme, buttonBarTheme, buttonColor, buttonTheme, canvasColor, cardColor, cardTheme, chipTheme, colorScheme, cupertinoOverrideTheme, cursorColor, dataTableTheme, dialogBackgroundColor, dialogTheme, disabledColor, dividerColor, dividerTheme, elevatedButtonTheme, errorColor, fixTextFieldOutlineLabel, floatingActionButtonTheme, focusColor, highlightColor, hintColor, hoverColor, iconTheme, indicatorColor, inputDecorationTheme, materialTapTargetSize, navigationRailTheme, outlinedButtonTheme, pageTransitionsTheme, platform, popupMenuTheme, primaryColor, primaryColorBrightness, primaryColorDark, primaryColorLight, primaryIconTheme, primaryTextTheme, scaffoldBackgroundColor, secondaryHeaderColor, selectedRowColor, shadowColor, sliderTheme, snackBarTheme, splashColor, splashFactory, tabBarTheme, textButtonTheme, textSelectionColor, textSelectionHandleColor, textSelectionTheme, textTheme, timePickerTheme, toggleButtonsTheme, toggleableActiveColor, tooltipTheme, typography, unselectedWidgetColor, useTextSelectionTheme, visualDensity) {
+ return new X.ThemeData(visualDensity, primaryColor, primaryColorBrightness, primaryColorLight, primaryColorDark, canvasColor, shadowColor, accentColor, accentColorBrightness, scaffoldBackgroundColor, bottomAppBarColor, cardColor, dividerColor, focusColor, hoverColor, highlightColor, splashColor, splashFactory, selectedRowColor, unselectedWidgetColor, disabledColor, buttonTheme, toggleButtonsTheme, buttonColor, secondaryHeaderColor, textSelectionColor, cursorColor, textSelectionHandleColor, backgroundColor, dialogBackgroundColor, indicatorColor, hintColor, errorColor, toggleableActiveColor, textTheme, primaryTextTheme, accentTextTheme, inputDecorationTheme, iconTheme, primaryIconTheme, accentIconTheme, sliderTheme, tabBarTheme, tooltipTheme, cardTheme, chipTheme, platform, materialTapTargetSize, false, pageTransitionsTheme, appBarTheme, bottomAppBarTheme, colorScheme, snackBarTheme, dialogTheme, floatingActionButtonTheme, navigationRailTheme, typography, cupertinoOverrideTheme, bottomSheetTheme, popupMenuTheme, bannerTheme, dividerTheme, buttonBarTheme, bottomNavigationBarTheme, timePickerTheme, textButtonTheme, elevatedButtonTheme, outlinedButtonTheme, textSelectionTheme, dataTableTheme, false, true);
+ },
+ ThemeData_ThemeData$fallback: function() {
+ return X.ThemeData_ThemeData(C.Brightness_1);
+ },
+ ThemeData_localize: function(baseTheme, localTextGeometry) {
+ return $.$get$ThemeData__localizedThemeDataCache().putIfAbsent$2(0, new X._IdentityThemeDataCacheKey(baseTheme, localTextGeometry), new X.ThemeData_localize_closure(baseTheme, localTextGeometry));
+ },
+ ThemeData_estimateBrightnessForColor: function(color) {
+ var t1 = 0.2126 * P.Color__linearizeColorComponent((color.get$value(color) >>> 16 & 255) / 255) + 0.7152 * P.Color__linearizeColorComponent((color.get$value(color) >>> 8 & 255) / 255) + 0.0722 * P.Color__linearizeColorComponent((color.get$value(color) & 255) / 255) + 0.05;
+ if (t1 * t1 > 0.15)
+ return C.Brightness_1;
+ return C.Brightness_0;
+ },
+ MaterialBasedCupertinoThemeData$_: function(_materialTheme, _cupertinoOverrideTheme) {
+ return new X.MaterialBasedCupertinoThemeData(_materialTheme, _cupertinoOverrideTheme, C._CupertinoThemeDefaults_iF8, _cupertinoOverrideTheme.brightness, _cupertinoOverrideTheme.primaryColor, _cupertinoOverrideTheme.primaryContrastingColor, _cupertinoOverrideTheme.textTheme, _cupertinoOverrideTheme.barBackgroundColor, _cupertinoOverrideTheme.scaffoldBackgroundColor);
+ },
+ VisualDensity_adaptivePlatformDensity: function() {
+ switch (U.defaultTargetPlatform()) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_1:
+ break;
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_5:
+ return C.VisualDensity_m2_m2;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return C.VisualDensity_0_0;
+ },
+ MaterialTapTargetSize: function MaterialTapTargetSize(t0) {
+ this._theme_data$_name = t0;
+ },
+ ThemeData: function ThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72) {
+ var _ = this;
+ _.visualDensity = t0;
+ _.primaryColor = t1;
+ _.primaryColorBrightness = t2;
+ _.primaryColorLight = t3;
+ _.primaryColorDark = t4;
+ _.canvasColor = t5;
+ _.shadowColor = t6;
+ _.accentColor = t7;
+ _.accentColorBrightness = t8;
+ _.scaffoldBackgroundColor = t9;
+ _.bottomAppBarColor = t10;
+ _.cardColor = t11;
+ _.dividerColor = t12;
+ _.focusColor = t13;
+ _.hoverColor = t14;
+ _.highlightColor = t15;
+ _.splashColor = t16;
+ _.splashFactory = t17;
+ _.selectedRowColor = t18;
+ _.unselectedWidgetColor = t19;
+ _.disabledColor = t20;
+ _.buttonTheme = t21;
+ _.toggleButtonsTheme = t22;
+ _.buttonColor = t23;
+ _.secondaryHeaderColor = t24;
+ _.textSelectionColor = t25;
+ _.cursorColor = t26;
+ _.textSelectionHandleColor = t27;
+ _.backgroundColor = t28;
+ _.dialogBackgroundColor = t29;
+ _.indicatorColor = t30;
+ _.hintColor = t31;
+ _.errorColor = t32;
+ _.toggleableActiveColor = t33;
+ _.textTheme = t34;
+ _.primaryTextTheme = t35;
+ _.accentTextTheme = t36;
+ _.inputDecorationTheme = t37;
+ _.iconTheme = t38;
+ _.primaryIconTheme = t39;
+ _.accentIconTheme = t40;
+ _.sliderTheme = t41;
+ _.tabBarTheme = t42;
+ _.tooltipTheme = t43;
+ _.cardTheme = t44;
+ _.chipTheme = t45;
+ _.platform = t46;
+ _.materialTapTargetSize = t47;
+ _.applyElevationOverlayColor = t48;
+ _.pageTransitionsTheme = t49;
+ _.appBarTheme = t50;
+ _.bottomAppBarTheme = t51;
+ _.colorScheme = t52;
+ _.snackBarTheme = t53;
+ _.dialogTheme = t54;
+ _.floatingActionButtonTheme = t55;
+ _.navigationRailTheme = t56;
+ _.typography = t57;
+ _.cupertinoOverrideTheme = t58;
+ _.bottomSheetTheme = t59;
+ _.popupMenuTheme = t60;
+ _.bannerTheme = t61;
+ _.dividerTheme = t62;
+ _.buttonBarTheme = t63;
+ _.bottomNavigationBarTheme = t64;
+ _.timePickerTheme = t65;
+ _.textButtonTheme = t66;
+ _.elevatedButtonTheme = t67;
+ _.outlinedButtonTheme = t68;
+ _.textSelectionTheme = t69;
+ _.dataTableTheme = t70;
+ _.fixTextFieldOutlineLabel = t71;
+ _.useTextSelectionTheme = t72;
+ },
+ ThemeData_localize_closure: function ThemeData_localize_closure(t0, t1) {
+ this.baseTheme = t0;
+ this.localTextGeometry = t1;
+ },
+ MaterialBasedCupertinoThemeData: function MaterialBasedCupertinoThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _._materialTheme = t0;
+ _._cupertinoOverrideTheme = t1;
+ _._defaults = t2;
+ _.brightness = t3;
+ _.primaryColor = t4;
+ _.primaryContrastingColor = t5;
+ _.textTheme = t6;
+ _.barBackgroundColor = t7;
+ _.scaffoldBackgroundColor = t8;
+ },
+ _IdentityThemeDataCacheKey: function _IdentityThemeDataCacheKey(t0, t1) {
+ this.baseTheme = t0;
+ this.localTextGeometry = t1;
+ },
+ _FifoCache: function _FifoCache(t0, t1, t2) {
+ this._cache = t0;
+ this._maximumSize = t1;
+ this.$ti = t2;
+ },
+ VisualDensity: function VisualDensity(t0, t1) {
+ this.horizontal = t0;
+ this.vertical = t1;
+ },
+ _ThemeData_Object_Diagnosticable: function _ThemeData_Object_Diagnosticable() {
+ },
+ _VisualDensity_Object_Diagnosticable: function _VisualDensity_Object_Diagnosticable() {
+ },
+ CircleBorder: function CircleBorder(t0) {
+ this.side = t0;
+ },
+ RoundedRectangleBorder: function RoundedRectangleBorder(t0, t1) {
+ this.borderRadius = t0;
+ this.side = t1;
+ },
+ _RoundedRectangleToCircleBorder: function _RoundedRectangleToCircleBorder(t0, t1, t2) {
+ this.borderRadius = t0;
+ this.circleness = t1;
+ this.side = t2;
+ },
+ SystemChrome_setApplicationSwitcherDescription: function(description) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$SystemChrome_setApplicationSwitcherDescription = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(C.OptionalMethodChannel_cWd.invokeMethod$1$2(string$.System, P.LinkedHashMap_LinkedHashMap$_literal(["label", description.label, "primaryColor", description.primaryColor], type$.String, type$.dynamic), type$.void), $async$SystemChrome_setApplicationSwitcherDescription);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$SystemChrome_setApplicationSwitcherDescription, $async$completer);
+ },
+ SystemChrome_setSystemUIOverlayStyle: function(style) {
+ if ($.SystemChrome__pendingStyle != null) {
+ $.SystemChrome__pendingStyle = style;
+ return;
+ }
+ if (style.$eq(0, $.SystemChrome__latestStyle))
+ return;
+ $.SystemChrome__pendingStyle = style;
+ P.scheduleMicrotask(new X.SystemChrome_setSystemUIOverlayStyle_closure());
+ },
+ ApplicationSwitcherDescription: function ApplicationSwitcherDescription(t0, t1) {
+ this.label = t0;
+ this.primaryColor = t1;
+ },
+ SystemUiOverlayStyle: function SystemUiOverlayStyle(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.systemNavigationBarColor = t0;
+ _.systemNavigationBarDividerColor = t1;
+ _.systemNavigationBarIconBrightness = t2;
+ _.statusBarColor = t3;
+ _.statusBarBrightness = t4;
+ _.statusBarIconBrightness = t5;
+ },
+ SystemChrome_setSystemUIOverlayStyle_closure: function SystemChrome_setSystemUIOverlayStyle_closure() {
+ },
+ TextSelection$: function(affinity, baseOffset, extentOffset, isDirectional) {
+ var t1 = baseOffset < extentOffset,
+ t2 = t1 ? extentOffset : baseOffset;
+ return new X.TextSelection(baseOffset, extentOffset, affinity, isDirectional, t1 ? baseOffset : extentOffset, t2);
+ },
+ TextSelection$collapsed: function(affinity, offset) {
+ return new X.TextSelection(offset, offset, affinity, false, offset, offset);
+ },
+ TextSelection$fromPosition: function(position) {
+ var t1 = position.offset;
+ return new X.TextSelection(t1, t1, position.affinity, false, t1, t1);
+ },
+ TextSelection: function TextSelection(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.baseOffset = t0;
+ _.extentOffset = t1;
+ _.affinity = t2;
+ _.isDirectional = t3;
+ _.start = t4;
+ _.end = t5;
+ },
+ AnnotatedRegion: function AnnotatedRegion(t0, t1, t2, t3) {
+ var _ = this;
+ _.value = t0;
+ _.child = t1;
+ _.key = t2;
+ _.$ti = t3;
+ },
+ IconData: function IconData(t0, t1) {
+ this.codePoint = t0;
+ this.matchTextDirection = t1;
+ },
+ ModalBarrier: function ModalBarrier(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.color = t0;
+ _.dismissible = t1;
+ _.barrierSemanticsDismissible = t2;
+ _.semanticsLabel = t3;
+ _.key = t4;
+ },
+ ModalBarrier_build_closure: function ModalBarrier_build_closure(t0, t1) {
+ this.$this = t0;
+ this.context = t1;
+ },
+ AnimatedModalBarrier: function AnimatedModalBarrier(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.dismissible = t0;
+ _.semanticsLabel = t1;
+ _.barrierSemanticsDismissible = t2;
+ _.listenable = t3;
+ _.key = t4;
+ },
+ _AnyTapGestureRecognizer: function _AnyTapGestureRecognizer(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.onAnyTapUp = null;
+ _._wonArenaForPrimaryPointer = _._sentTapDown = false;
+ _._up = _._down = null;
+ _.deadline = t0;
+ _.postAcceptSlopTolerance = t1;
+ _.state = t2;
+ _.initialPosition = _.primaryPointer = null;
+ _._gestureAccepted = false;
+ _._recognizer$_timer = null;
+ _._recognizer$_entries = t3;
+ _._trackedPointers = t4;
+ _._team = null;
+ _.debugOwner = t5;
+ _._kindFilter = t6;
+ _._pointerToKind = t7;
+ },
+ _ModalBarrierSemanticsDelegate: function _ModalBarrierSemanticsDelegate(t0) {
+ this.onDismiss = t0;
+ },
+ _AnyTapGestureRecognizerFactory: function _AnyTapGestureRecognizerFactory(t0) {
+ this.onAnyTapUp = t0;
+ },
+ _ModalBarrierGestureDetector: function _ModalBarrierGestureDetector(t0, t1, t2) {
+ this.child = t0;
+ this.onDismiss = t1;
+ this.key = t2;
+ },
+ OverlayEntry$: function(builder, maintainState) {
+ return new X.OverlayEntry(builder, maintainState, new N.LabeledGlobalKey(null, type$.LabeledGlobalKey__OverlayEntryWidgetState), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ OverlayEntry: function OverlayEntry(t0, t1, t2, t3) {
+ var _ = this;
+ _.builder = t0;
+ _._opaque = false;
+ _._maintainState = t1;
+ _._mounted = false;
+ _._overlay = null;
+ _._key = t2;
+ _.ChangeNotifier__listeners = t3;
+ },
+ OverlayEntry_remove_closure: function OverlayEntry_remove_closure(t0) {
+ this.overlay = t0;
+ },
+ _OverlayEntryWidget: function _OverlayEntryWidget(t0, t1, t2) {
+ this.entry = t0;
+ this.tickerEnabled = t1;
+ this.key = t2;
+ },
+ _OverlayEntryWidgetState: function _OverlayEntryWidgetState(t0) {
+ this._widget = null;
+ this._debugLifecycleState = t0;
+ this._framework$_element = null;
+ },
+ _OverlayEntryWidgetState__markNeedsBuild_closure: function _OverlayEntryWidgetState__markNeedsBuild_closure() {
+ },
+ Overlay: function Overlay(t0, t1) {
+ this.initialEntries = t0;
+ this.key = t1;
+ },
+ OverlayState: function OverlayState(t0, t1, t2) {
+ var _ = this;
+ _._entries = t0;
+ _.TickerProviderStateMixin__tickers = t1;
+ _._widget = null;
+ _._debugLifecycleState = t2;
+ _._framework$_element = null;
+ },
+ OverlayState_insert_closure: function OverlayState_insert_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.$this = t0;
+ _.below = t1;
+ _.above = t2;
+ _.entry = t3;
+ },
+ OverlayState_insertAll_closure: function OverlayState_insertAll_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.$this = t0;
+ _.below = t1;
+ _.above = t2;
+ _.entries = t3;
+ },
+ OverlayState_rearrange_closure: function OverlayState_rearrange_closure(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.$this = t0;
+ _.newEntriesList = t1;
+ _.old = t2;
+ _.below = t3;
+ _.above = t4;
+ },
+ OverlayState__markDirty_closure: function OverlayState__markDirty_closure() {
+ },
+ OverlayState__didChangeEntryOpacity_closure: function OverlayState__didChangeEntryOpacity_closure() {
+ },
+ _Theatre: function _Theatre(t0, t1, t2, t3) {
+ var _ = this;
+ _.skipCount = t0;
+ _.clipBehavior = t1;
+ _.children = t2;
+ _.key = t3;
+ },
+ _TheatreElement: function _TheatreElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.__MultiChildRenderObjectElement__children = null;
+ _.__MultiChildRenderObjectElement__children_isSet = false;
+ _._forgottenChildren = t0;
+ _.__RenderObjectElement__renderObject = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t1;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t2;
+ _._owner = null;
+ _._lifecycleState = t3;
+ _._debugForgottenChildrenWithGlobalKey = t4;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ _RenderTheatre: function _RenderTheatre(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._overlay$_hasVisualOverflow = false;
+ _._overlay$_resolvedAlignment = null;
+ _._overlay$_textDirection = t0;
+ _._overlay$_skipCount = t1;
+ _._overlay$_clipBehavior = t2;
+ _._overlay$_clipRectLayer = null;
+ _.ContainerRenderObjectMixin__childCount = t3;
+ _.ContainerRenderObjectMixin__firstChild = t4;
+ _.ContainerRenderObjectMixin__lastChild = t5;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderTheatre_computeMinIntrinsicWidth_closure: function _RenderTheatre_computeMinIntrinsicWidth_closure(t0) {
+ this.height = t0;
+ },
+ _RenderTheatre_computeMaxIntrinsicWidth_closure: function _RenderTheatre_computeMaxIntrinsicWidth_closure(t0) {
+ this.height = t0;
+ },
+ _RenderTheatre_computeMinIntrinsicHeight_closure: function _RenderTheatre_computeMinIntrinsicHeight_closure(t0) {
+ this.width = t0;
+ },
+ _RenderTheatre_computeMaxIntrinsicHeight_closure: function _RenderTheatre_computeMaxIntrinsicHeight_closure(t0) {
+ this.width = t0;
+ },
+ _RenderTheatre_hitTestChildren_closure: function _RenderTheatre_hitTestChildren_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.position = t1;
+ this.childParentData = t2;
+ },
+ _OverlayState_State_TickerProviderStateMixin: function _OverlayState_State_TickerProviderStateMixin() {
+ },
+ __RenderTheatre_RenderBox_ContainerRenderObjectMixin: function __RenderTheatre_RenderBox_ContainerRenderObjectMixin() {
+ },
+ LogicalKeySet$: function(key1, key2) {
+ var t1 = type$.LogicalKeyboardKey,
+ t2 = P.HashSet_HashSet(t1);
+ t2.add$1(0, key1);
+ t2 = new X.LogicalKeySet(t2);
+ t2.KeySet$4(key1, key2, null, null, {}, t1);
+ return t2;
+ },
+ ShortcutManager$: function() {
+ return new X.ShortcutManager(C.Map_empty1, new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ KeySet: function KeySet() {
+ },
+ LogicalKeySet: function LogicalKeySet(t0) {
+ this._shortcuts$_keys = t0;
+ this._shortcuts$_hashCode = null;
+ },
+ ShortcutManager: function ShortcutManager(t0, t1) {
+ this._shortcuts = t0;
+ this.ChangeNotifier__listeners = t1;
+ },
+ Shortcuts: function Shortcuts(t0, t1, t2, t3) {
+ var _ = this;
+ _.shortcuts = t0;
+ _.child = t1;
+ _.debugLabel = t2;
+ _.key = t3;
+ },
+ _ShortcutsState: function _ShortcutsState(t0) {
+ var _ = this;
+ _._widget = _._internalManager = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _ShortcutsMarker: function _ShortcutsMarker(t0, t1, t2) {
+ this.notifier = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _LogicalKeySet_KeySet_Diagnosticable: function _LogicalKeySet_KeySet_Diagnosticable() {
+ },
+ _ShortcutManager_ChangeNotifier_Diagnosticable: function _ShortcutManager_ChangeNotifier_Diagnosticable() {
+ },
+ RTCDataChannelMessage: function RTCDataChannelMessage() {
+ this._isBinary = this._rtc_data_channel$_data = null;
+ },
+ RTCDataChannel: function RTCDataChannel() {
+ },
+ StreamedResponse: function StreamedResponse(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.stream = t0;
+ _.request = t1;
+ _.statusCode = t2;
+ _.reasonPhrase = t3;
+ _.contentLength = t4;
+ _.headers = t5;
+ _.isRedirect = t6;
+ _.persistentConnection = t7;
+ },
+ ParsedPath_ParsedPath$parse: function(path, style) {
+ var t1, parts, separators, start, i,
+ root = style.getRoot$1(path);
+ style.isRootRelative$1(path);
+ if (root != null)
+ path = J.substring$1$s(path, root.length);
+ t1 = type$.JSArray_String;
+ parts = H.setRuntimeTypeInfo([], t1);
+ separators = H.setRuntimeTypeInfo([], t1);
+ t1 = path.length;
+ if (t1 !== 0 && style.isSeparator$1(C.JSString_methods._codeUnitAt$1(path, 0))) {
+ separators.push(path[0]);
+ start = 1;
+ } else {
+ separators.push("");
+ start = 0;
+ }
+ for (i = start; i < t1; ++i)
+ if (style.isSeparator$1(C.JSString_methods._codeUnitAt$1(path, i))) {
+ parts.push(C.JSString_methods.substring$2(path, start, i));
+ separators.push(path[i]);
+ start = i + 1;
+ }
+ if (start < t1) {
+ parts.push(C.JSString_methods.substring$1(path, start));
+ separators.push("");
+ }
+ return new X.ParsedPath(style, root, parts, separators);
+ },
+ ParsedPath: function ParsedPath(t0, t1, t2, t3) {
+ var _ = this;
+ _.style = t0;
+ _.root = t1;
+ _.parts = t2;
+ _.separators = t3;
+ },
+ PathException$: function(message) {
+ return new X.PathException(message);
+ },
+ PathException: function PathException(t0) {
+ this.message = t0;
+ },
+ SourceSpanWithContext$: function(start, end, text, _context) {
+ var t1 = new X.SourceSpanWithContext(_context, start, end, text);
+ t1.SourceSpanBase$3(start, end, text);
+ if (!C.JSString_methods.contains$1(_context, text))
+ H.throwExpression(P.ArgumentError$('The context line "' + _context + '" must contain "' + text + '".'));
+ if (B.findLineStart(_context, text, start.get$column()) == null)
+ H.throwExpression(P.ArgumentError$('The span text "' + text + '" must start at column ' + (start.get$column() + 1) + ' in a line within "' + _context + '".'));
+ return t1;
+ },
+ SourceSpanWithContext: function SourceSpanWithContext(t0, t1, t2, t3) {
+ var _ = this;
+ _._span_with_context$_context = t0;
+ _.start = t1;
+ _.end = t2;
+ _.text = t3;
+ },
+ StringScanner: function StringScanner(t0, t1) {
+ var _ = this;
+ _.sourceUrl = t0;
+ _.string = t1;
+ _._string_scanner$_position = 0;
+ _._lastMatchPosition = _._lastMatch = null;
+ },
+ HapticFeedback_vibrate: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$HapticFeedback_vibrate = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(C.OptionalMethodChannel_cWd.invokeMethod$1$1("HapticFeedback.vibrate", type$.void), $async$HapticFeedback_vibrate);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$HapticFeedback_vibrate, $async$completer);
+ }
+ },
+ G = {
+ AnimationController$: function(debugLabel, duration, lowerBound, reverseDuration, upperBound, value, vsync) {
+ var t1 = new G.AnimationController(lowerBound, upperBound, debugLabel, C.AnimationBehavior_0, duration, reverseDuration, C._AnimationDirection_0, C.AnimationStatus_0, new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_AnimationStatus), type$.ObserverList_of_void_Function_AnimationStatus), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function), type$.ObserverList_of_void_Function));
+ t1._ticker = vsync.createTicker$1(t1.get$_animation_controller$_tick());
+ t1._internalSetValue$1(value == null ? lowerBound : value);
+ return t1;
+ },
+ AnimationController$unbounded: function(debugLabel, value, vsync) {
+ var t1 = new G.AnimationController(-1 / 0, 1 / 0, debugLabel, C.AnimationBehavior_1, null, null, C._AnimationDirection_0, C.AnimationStatus_0, new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_AnimationStatus), type$.ObserverList_of_void_Function_AnimationStatus), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function), type$.ObserverList_of_void_Function));
+ t1._ticker = vsync.createTicker$1(t1.get$_animation_controller$_tick());
+ t1._internalSetValue$1(value);
+ return t1;
+ },
+ _AnimationDirection: function _AnimationDirection(t0) {
+ this._animation_controller$_name = t0;
+ },
+ AnimationBehavior: function AnimationBehavior(t0) {
+ this._animation_controller$_name = t0;
+ },
+ AnimationController: function AnimationController(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _.lowerBound = t0;
+ _.upperBound = t1;
+ _.debugLabel = t2;
+ _.animationBehavior = t3;
+ _.duration = t4;
+ _.reverseDuration = t5;
+ _.__AnimationController__value = _._simulation = _._ticker = null;
+ _.__AnimationController__value_isSet = false;
+ _._lastElapsedDuration = null;
+ _._direction = t6;
+ _.__AnimationController__status = null;
+ _.__AnimationController__status_isSet = false;
+ _._lastReportedStatus = t7;
+ _.AnimationLocalStatusListenersMixin__statusListeners = t8;
+ _.AnimationLocalListenersMixin__listeners = t9;
+ },
+ _InterpolationSimulation: function _InterpolationSimulation(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._durationInSeconds = t0;
+ _._begin = t1;
+ _._animation_controller$_end = t2;
+ _._curve = t3;
+ _.tolerance = t4;
+ },
+ _AnimationController_Animation_AnimationEagerListenerMixin: function _AnimationController_Animation_AnimationEagerListenerMixin() {
+ },
+ _AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin: function _AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin() {
+ },
+ _AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin: function _AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin() {
+ },
+ WriteBuffer$: function() {
+ var t1 = new Uint8Array(0),
+ t2 = new DataView(new ArrayBuffer(8));
+ t1 = new G.WriteBuffer(new E.Uint8Buffer(t1, 0), t2);
+ t2 = H.NativeUint8List_NativeUint8List$view(t2.buffer, 0, null);
+ t1.__WriteBuffer__eightBytesAsList_isSet = true;
+ t1.__WriteBuffer__eightBytesAsList = t2;
+ return t1;
+ },
+ WriteBuffer: function WriteBuffer(t0, t1) {
+ var _ = this;
+ _._buffer = t0;
+ _._eightBytes = t1;
+ _.__WriteBuffer__eightBytesAsList = null;
+ _.__WriteBuffer__eightBytesAsList_isSet = false;
+ },
+ ReadBuffer: function ReadBuffer(t0) {
+ this.data = t0;
+ this._serialization$_position = 0;
+ },
+ PointerSignalResolver: function PointerSignalResolver() {
+ this._currentEvent = this._firstRegisteredCallback = null;
+ },
+ DividerTheme_of: function(context) {
+ var t1;
+ context.dependOnInheritedWidgetOfExactType$1$0(type$.DividerTheme);
+ t1 = K.Theme_of(context);
+ return t1.dividerTheme;
+ },
+ DividerThemeData: function DividerThemeData(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.color = t0;
+ _.space = t1;
+ _.thickness = t2;
+ _.indent = t3;
+ _.endIndent = t4;
+ },
+ _DividerThemeData_Object_Diagnosticable: function _DividerThemeData_Object_Diagnosticable() {
+ },
+ flipAxis: function(direction) {
+ switch (direction) {
+ case C.Axis_0:
+ return C.Axis_1;
+ case C.Axis_1:
+ return C.Axis_0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ axisDirectionToAxis: function(axisDirection) {
+ switch (axisDirection) {
+ case C.AxisDirection_0:
+ case C.AxisDirection_2:
+ return C.Axis_1;
+ case C.AxisDirection_3:
+ case C.AxisDirection_1:
+ return C.Axis_0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ textDirectionToAxisDirection: function(textDirection) {
+ switch (textDirection) {
+ case C.TextDirection_0:
+ return C.AxisDirection_3;
+ case C.TextDirection_1:
+ return C.AxisDirection_1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ flipAxisDirection: function(axisDirection) {
+ switch (axisDirection) {
+ case C.AxisDirection_0:
+ return C.AxisDirection_2;
+ case C.AxisDirection_1:
+ return C.AxisDirection_3;
+ case C.AxisDirection_2:
+ return C.AxisDirection_0;
+ case C.AxisDirection_3:
+ return C.AxisDirection_1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ axisDirectionIsReversed: function(axisDirection) {
+ switch (axisDirection) {
+ case C.AxisDirection_0:
+ case C.AxisDirection_3:
+ return true;
+ case C.AxisDirection_2:
+ case C.AxisDirection_1:
+ return false;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ RenderComparison: function RenderComparison(t0, t1) {
+ this.index = t0;
+ this._basic_types$_name = t1;
+ },
+ Axis: function Axis(t0) {
+ this._basic_types$_name = t0;
+ },
+ VerticalDirection: function VerticalDirection(t0) {
+ this._basic_types$_name = t0;
+ },
+ AxisDirection: function AxisDirection(t0) {
+ this._basic_types$_name = t0;
+ },
+ InlineSpanSemanticsInformation$: function(text, recognizer, semanticsLabel) {
+ return new G.InlineSpanSemanticsInformation(text, semanticsLabel, recognizer, false);
+ },
+ Accumulator: function Accumulator() {
+ this._inline_span$_value = 0;
+ },
+ InlineSpanSemanticsInformation: function InlineSpanSemanticsInformation(t0, t1, t2, t3) {
+ var _ = this;
+ _.text = t0;
+ _.semanticsLabel = t1;
+ _.recognizer = t2;
+ _.requiresOwnNode = t3;
+ },
+ InlineSpan: function InlineSpan() {
+ },
+ InlineSpan_getSpanForPosition_closure: function InlineSpan_getSpanForPosition_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.position = t1;
+ this.offset = t2;
+ },
+ InlineSpan_codeUnitAt_closure: function InlineSpan_codeUnitAt_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.index = t1;
+ this.offset = t2;
+ },
+ _factoryTypesSetEquals: function(a, b, $T) {
+ if (a === b)
+ return true;
+ if (b == null)
+ return false;
+ return S.setEquals(G._factoriesTypeSet(a, $T), G._factoriesTypeSet(b, $T));
+ },
+ _factoriesTypeSet: function(factories, $T) {
+ var t1 = factories.$ti._eval$1("EfficientLengthMappedIterable");
+ return P.LinkedHashSet_LinkedHashSet$of(new H.EfficientLengthMappedIterable(factories, new G._factoriesTypeSet_closure($T), t1), t1._eval$1("Iterable.E"));
+ },
+ _PlatformViewGestureRecognizer$: function(handlePointerEvent, gestureRecognizerFactories) {
+ var t1 = type$.int;
+ t1 = new G._PlatformViewGestureRecognizer(P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.List_PointerEvent), P.LinkedHashSet_LinkedHashSet$_empty(t1), gestureRecognizerFactories, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), null, null, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ t1._PlatformViewGestureRecognizer$3$kind(handlePointerEvent, gestureRecognizerFactories, null);
+ return t1;
+ },
+ PlatformViewHitTestBehavior: function PlatformViewHitTestBehavior(t0) {
+ this._platform_view0$_name = t0;
+ },
+ _factoriesTypeSet_closure: function _factoriesTypeSet_closure(t0) {
+ this.T = t0;
+ },
+ _PlatformViewGestureRecognizer: function _PlatformViewGestureRecognizer(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.___PlatformViewGestureRecognizer__handlePointerEvent = null;
+ _.___PlatformViewGestureRecognizer__handlePointerEvent_isSet = false;
+ _.cachedEvents = t0;
+ _.forwardedPointers = t1;
+ _.gestureRecognizerFactories = t2;
+ _.___PlatformViewGestureRecognizer__gestureRecognizers = null;
+ _.___PlatformViewGestureRecognizer__gestureRecognizers_isSet = false;
+ _._recognizer$_entries = t3;
+ _._trackedPointers = t4;
+ _._team = null;
+ _.debugOwner = t5;
+ _._kindFilter = t6;
+ _._pointerToKind = t7;
+ },
+ _PlatformViewGestureRecognizer_closure: function _PlatformViewGestureRecognizer_closure(t0) {
+ this.$this = t0;
+ },
+ PlatformViewRenderBox: function PlatformViewRenderBox(t0, t1, t2, t3) {
+ var _ = this;
+ _._platform_view0$_controller = t0;
+ _._PlatformViewGestureMixin__hitTestBehavior = t1;
+ _._PlatformViewGestureMixin__handlePointerEvent = t2;
+ _._PlatformViewGestureMixin__gestureRecognizer = t3;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _PlatformViewGestureMixin: function _PlatformViewGestureMixin() {
+ },
+ _PlatformViewRenderBox_RenderBox__PlatformViewGestureMixin: function _PlatformViewRenderBox_RenderBox__PlatformViewGestureMixin() {
+ },
+ applyGrowthDirectionToAxisDirection: function(axisDirection, growthDirection) {
+ switch (growthDirection) {
+ case C.GrowthDirection_0:
+ return axisDirection;
+ case C.GrowthDirection_1:
+ return G.flipAxisDirection(axisDirection);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ applyGrowthDirectionToScrollDirection: function(scrollDirection, growthDirection) {
+ switch (growthDirection) {
+ case C.GrowthDirection_0:
+ return scrollDirection;
+ case C.GrowthDirection_1:
+ return N.flipScrollDirection(scrollDirection);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ SliverGeometry$: function(cacheExtent, hasVisualOverflow, hitTestExtent, layoutExtent, maxPaintExtent, paintExtent, paintOrigin, scrollExtent, scrollOffsetCorrection) {
+ var t1 = layoutExtent == null ? paintExtent : layoutExtent,
+ t2 = hitTestExtent == null ? paintExtent : hitTestExtent,
+ t3 = cacheExtent == null ? layoutExtent : cacheExtent;
+ if (t3 == null)
+ t3 = paintExtent;
+ return new G.SliverGeometry(scrollExtent, paintOrigin, paintExtent, t1, maxPaintExtent, t2, paintExtent > 0, hasVisualOverflow, scrollOffsetCorrection, t3);
+ },
+ GrowthDirection: function GrowthDirection(t0) {
+ this._sliver$_name = t0;
+ },
+ SliverConstraints: function SliverConstraints(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) {
+ var _ = this;
+ _.axisDirection = t0;
+ _.growthDirection = t1;
+ _.userScrollDirection = t2;
+ _.scrollOffset = t3;
+ _.precedingScrollExtent = t4;
+ _.overlap = t5;
+ _.remainingPaintExtent = t6;
+ _.crossAxisExtent = t7;
+ _.crossAxisDirection = t8;
+ _.viewportMainAxisExtent = t9;
+ _.cacheOrigin = t10;
+ _.remainingCacheExtent = t11;
+ },
+ SliverGeometry: function SliverGeometry(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _.scrollExtent = t0;
+ _.paintOrigin = t1;
+ _.paintExtent = t2;
+ _.layoutExtent = t3;
+ _.maxPaintExtent = t4;
+ _.hitTestExtent = t5;
+ _.visible = t6;
+ _.hasVisualOverflow = t7;
+ _.scrollOffsetCorrection = t8;
+ _.cacheExtent = t9;
+ },
+ SliverHitTestResult: function SliverHitTestResult(t0, t1, t2) {
+ this._path = t0;
+ this._transforms = t1;
+ this._localTransforms = t2;
+ },
+ SliverHitTestEntry: function SliverHitTestEntry(t0, t1, t2) {
+ var _ = this;
+ _.mainAxisPosition = t0;
+ _.crossAxisPosition = t1;
+ _.target = t2;
+ _._transform = null;
+ },
+ SliverLogicalParentData: function SliverLogicalParentData() {
+ },
+ SliverLogicalContainerParentData: function SliverLogicalContainerParentData(t0, t1) {
+ this.ContainerParentDataMixin_previousSibling = t0;
+ this.ContainerParentDataMixin_nextSibling = t1;
+ this.layoutOffset = null;
+ },
+ SliverPhysicalParentData: function SliverPhysicalParentData(t0) {
+ this.paintOffset = t0;
+ },
+ RenderSliver: function RenderSliver() {
+ },
+ RenderSliverHelpers: function RenderSliverHelpers() {
+ },
+ RenderSliverHelpers_hitTestBoxChild_closure: function RenderSliverHelpers_hitTestBoxChild_closure(t0, t1) {
+ this._box_0 = t0;
+ this.child = t1;
+ },
+ _SliverGeometry_Object_Diagnosticable: function _SliverGeometry_Object_Diagnosticable() {
+ },
+ _SliverLogicalContainerParentData_SliverLogicalParentData_ContainerParentDataMixin: function _SliverLogicalContainerParentData_SliverLogicalParentData_ContainerParentDataMixin() {
+ },
+ LogicalKeyboardKey_isControlCharacter: function(label) {
+ var codeUnit, t1;
+ if (label.length !== 1)
+ return false;
+ codeUnit = C.JSString_methods._codeUnitAt$1(label, 0);
+ if (!(codeUnit <= 31 && true))
+ t1 = codeUnit >= 127 && codeUnit <= 159;
+ else
+ t1 = true;
+ return t1;
+ },
+ KeyboardKey: function KeyboardKey() {
+ },
+ LogicalKeyboardKey: function LogicalKeyboardKey(t0, t1, t2) {
+ this.keyId = t0;
+ this.debugName = t1;
+ this.keyLabel = t2;
+ },
+ PhysicalKeyboardKey: function PhysicalKeyboardKey(t0, t1) {
+ this.usbHidUsage = t0;
+ this.debugName = t1;
+ },
+ _KeyboardKey_Object_Diagnosticable: function _KeyboardKey_Object_Diagnosticable() {
+ },
+ AnimatedOpacity$: function(alwaysIncludeSemantics, child, curve, duration, opacity) {
+ return new G.AnimatedOpacity(child, opacity, alwaysIncludeSemantics, curve, duration, null, null);
+ },
+ AnimatedDefaultTextStyle$: function(child, curve, duration, style) {
+ return new G.AnimatedDefaultTextStyle(child, style, curve, duration, null, null);
+ },
+ DecorationTween: function DecorationTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ EdgeInsetsGeometryTween: function EdgeInsetsGeometryTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ BorderRadiusTween: function BorderRadiusTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ TextStyleTween: function TextStyleTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ ImplicitlyAnimatedWidget: function ImplicitlyAnimatedWidget() {
+ },
+ ImplicitlyAnimatedWidgetState: function ImplicitlyAnimatedWidgetState() {
+ },
+ ImplicitlyAnimatedWidgetState_initState_closure: function ImplicitlyAnimatedWidgetState_initState_closure(t0) {
+ this.$this = t0;
+ },
+ ImplicitlyAnimatedWidgetState_didUpdateWidget_closure: function ImplicitlyAnimatedWidgetState_didUpdateWidget_closure(t0) {
+ this.$this = t0;
+ },
+ ImplicitlyAnimatedWidgetState__constructTweens_closure: function ImplicitlyAnimatedWidgetState__constructTweens_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ AnimatedWidgetBaseState: function AnimatedWidgetBaseState() {
+ },
+ AnimatedWidgetBaseState__handleAnimationChanged_closure: function AnimatedWidgetBaseState__handleAnimationChanged_closure() {
+ },
+ AnimatedPadding: function AnimatedPadding(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.padding = t0;
+ _.child = t1;
+ _.curve = t2;
+ _.duration = t3;
+ _.onEnd = t4;
+ _.key = t5;
+ },
+ _AnimatedPaddingState: function _AnimatedPaddingState(t0, t1) {
+ var _ = this;
+ _._animation = _._implicit_animations$_controller = _._implicit_animations$_padding = null;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _AnimatedPaddingState_forEachTween_closure: function _AnimatedPaddingState_forEachTween_closure() {
+ },
+ AnimatedOpacity: function AnimatedOpacity(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.child = t0;
+ _.opacity = t1;
+ _.alwaysIncludeSemantics = t2;
+ _.curve = t3;
+ _.duration = t4;
+ _.onEnd = t5;
+ _.key = t6;
+ },
+ _AnimatedOpacityState: function _AnimatedOpacityState(t0, t1) {
+ var _ = this;
+ _.___AnimatedOpacityState__opacityAnimation = _._implicit_animations$_opacity = null;
+ _.___AnimatedOpacityState__opacityAnimation_isSet = false;
+ _._animation = _._implicit_animations$_controller = null;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _AnimatedOpacityState_forEachTween_closure: function _AnimatedOpacityState_forEachTween_closure() {
+ },
+ AnimatedDefaultTextStyle: function AnimatedDefaultTextStyle(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.child = t0;
+ _.style = t1;
+ _.curve = t2;
+ _.duration = t3;
+ _.onEnd = t4;
+ _.key = t5;
+ },
+ _AnimatedDefaultTextStyleState: function _AnimatedDefaultTextStyleState(t0, t1) {
+ var _ = this;
+ _._animation = _._implicit_animations$_controller = _._implicit_animations$_style = null;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _AnimatedDefaultTextStyleState_forEachTween_closure: function _AnimatedDefaultTextStyleState_forEachTween_closure() {
+ },
+ AnimatedPhysicalModel: function AnimatedPhysicalModel(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) {
+ var _ = this;
+ _.child = t0;
+ _.shape = t1;
+ _.clipBehavior = t2;
+ _.borderRadius = t3;
+ _.elevation = t4;
+ _.color = t5;
+ _.animateColor = t6;
+ _.shadowColor = t7;
+ _.curve = t8;
+ _.duration = t9;
+ _.onEnd = t10;
+ _.key = t11;
+ },
+ _AnimatedPhysicalModelState: function _AnimatedPhysicalModelState(t0, t1) {
+ var _ = this;
+ _._animation = _._implicit_animations$_controller = _._implicit_animations$_shadowColor = _._implicit_animations$_color = _._implicit_animations$_elevation = _._borderRadius = null;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _AnimatedPhysicalModelState_forEachTween_closure: function _AnimatedPhysicalModelState_forEachTween_closure() {
+ },
+ _AnimatedPhysicalModelState_forEachTween_closure0: function _AnimatedPhysicalModelState_forEachTween_closure0() {
+ },
+ _AnimatedPhysicalModelState_forEachTween_closure1: function _AnimatedPhysicalModelState_forEachTween_closure1() {
+ },
+ _AnimatedPhysicalModelState_forEachTween_closure2: function _AnimatedPhysicalModelState_forEachTween_closure2() {
+ },
+ _ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin: function _ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin() {
+ },
+ HtmlElementView: function HtmlElementView(t0, t1) {
+ this.viewType = t0;
+ this.key = t1;
+ },
+ HtmlElementView_build_closure: function HtmlElementView_build_closure() {
+ },
+ HtmlElementView__createHtmlElementView_closure: function HtmlElementView__createHtmlElementView_closure(t0) {
+ this.params = t0;
+ },
+ _HtmlElementViewController: function _HtmlElementViewController(t0, t1) {
+ this.viewId = t0;
+ this.viewType = t1;
+ this._initialized = false;
+ },
+ PlatformViewCreationParams: function PlatformViewCreationParams(t0, t1) {
+ this.id = t0;
+ this.onPlatformViewCreated = t1;
+ },
+ PlatformViewLink: function PlatformViewLink(t0, t1, t2, t3) {
+ var _ = this;
+ _._surfaceFactory = t0;
+ _._onCreatePlatformView = t1;
+ _.viewType = t2;
+ _.key = t3;
+ },
+ _PlatformViewLinkState: function _PlatformViewLinkState(t0) {
+ var _ = this;
+ _._platform_view$_controller = _._platform_view$_id = null;
+ _._platformViewCreated = false;
+ _._widget = _._platform_view$_focusNode = _._surface = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _PlatformViewLinkState__onPlatformViewCreated_closure: function _PlatformViewLinkState__onPlatformViewCreated_closure(t0) {
+ this.$this = t0;
+ },
+ PlatformViewSurface: function PlatformViewSurface(t0, t1, t2, t3) {
+ var _ = this;
+ _.controller = t0;
+ _.gestureRecognizers = t1;
+ _.hitTestBehavior = t2;
+ _.key = t3;
+ },
+ defaultScrollNotificationPredicate: function(notification) {
+ return notification.ViewportNotificationMixin__depth === 0;
+ },
+ ViewportNotificationMixin: function ViewportNotificationMixin() {
+ },
+ ScrollNotification: function ScrollNotification() {
+ },
+ ScrollStartNotification: function ScrollStartNotification(t0, t1, t2, t3) {
+ var _ = this;
+ _.dragDetails = t0;
+ _.metrics = t1;
+ _.context = t2;
+ _.ViewportNotificationMixin__depth = t3;
+ },
+ ScrollUpdateNotification: function ScrollUpdateNotification(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.dragDetails = t0;
+ _.scrollDelta = t1;
+ _.metrics = t2;
+ _.context = t3;
+ _.ViewportNotificationMixin__depth = t4;
+ },
+ OverscrollNotification: function OverscrollNotification(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.dragDetails = t0;
+ _.overscroll = t1;
+ _.velocity = t2;
+ _.metrics = t3;
+ _.context = t4;
+ _.ViewportNotificationMixin__depth = t5;
+ },
+ ScrollEndNotification: function ScrollEndNotification(t0, t1, t2, t3) {
+ var _ = this;
+ _.dragDetails = t0;
+ _.metrics = t1;
+ _.context = t2;
+ _.ViewportNotificationMixin__depth = t3;
+ },
+ UserScrollNotification: function UserScrollNotification(t0, t1, t2, t3) {
+ var _ = this;
+ _.direction = t0;
+ _.metrics = t1;
+ _.context = t2;
+ _.ViewportNotificationMixin__depth = t3;
+ },
+ _ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin: function _ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin() {
+ },
+ _kDefaultSemanticIndexCallback: function(_, localIndex) {
+ return localIndex;
+ },
+ SliverMultiBoxAdaptorElement$: function(widget, replaceMovedChildren) {
+ var t1 = P.SplayTreeMap$(type$.int, type$.nullable_Element),
+ t2 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t2;
+ return new G.SliverMultiBoxAdaptorElement(replaceMovedChildren, t1, t2, widget, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2));
+ },
+ SliverMultiBoxAdaptorElement__extrapolateMaxScrollOffset: function(firstIndex, lastIndex, leadingScrollOffset, trailingScrollOffset, childCount) {
+ if (lastIndex === childCount - 1)
+ return trailingScrollOffset;
+ return trailingScrollOffset + (trailingScrollOffset - leadingScrollOffset) / (lastIndex - firstIndex + 1) * (childCount - lastIndex - 1);
+ },
+ KeepAlive$: function(child, keepAlive) {
+ return new G.KeepAlive(keepAlive, child, null);
+ },
+ SliverChildDelegate: function SliverChildDelegate() {
+ },
+ _SaltedValueKey: function _SaltedValueKey(t0) {
+ this.value = t0;
+ },
+ SliverChildBuilderDelegate: function SliverChildBuilderDelegate(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.builder = t0;
+ _.childCount = t1;
+ _.addAutomaticKeepAlives = t2;
+ _.addRepaintBoundaries = t3;
+ _.addSemanticIndexes = t4;
+ },
+ SliverWithKeepAliveWidget: function SliverWithKeepAliveWidget() {
+ },
+ SliverMultiBoxAdaptorWidget: function SliverMultiBoxAdaptorWidget() {
+ },
+ SliverList: function SliverList(t0, t1) {
+ this.delegate = t0;
+ this.key = t1;
+ },
+ SliverMultiBoxAdaptorElement: function SliverMultiBoxAdaptorElement(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._replaceMovedChildren = t0;
+ _._childElements = t1;
+ _._currentlyUpdatingChildIndex = _._currentBeforeChild = null;
+ _._didUnderflow = false;
+ _.__RenderObjectElement__renderObject = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t2;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t3;
+ _._owner = null;
+ _._lifecycleState = t4;
+ _._debugForgottenChildrenWithGlobalKey = t5;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ SliverMultiBoxAdaptorElement_performRebuild_processElement: function SliverMultiBoxAdaptorElement_performRebuild_processElement(t0, t1, t2) {
+ this.$this = t0;
+ this.newChildren = t1;
+ this.indexToLayoutOffset = t2;
+ },
+ SliverMultiBoxAdaptorElement_performRebuild_closure: function SliverMultiBoxAdaptorElement_performRebuild_closure() {
+ },
+ SliverMultiBoxAdaptorElement_performRebuild_closure0: function SliverMultiBoxAdaptorElement_performRebuild_closure0(t0, t1) {
+ this.$this = t0;
+ this.index = t1;
+ },
+ SliverMultiBoxAdaptorElement_createChild_closure: function SliverMultiBoxAdaptorElement_createChild_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.after = t1;
+ this.index = t2;
+ },
+ SliverMultiBoxAdaptorElement_removeChild_closure: function SliverMultiBoxAdaptorElement_removeChild_closure(t0, t1) {
+ this.$this = t0;
+ this.index = t1;
+ },
+ KeepAlive: function KeepAlive(t0, t1, t2) {
+ this.keepAlive = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ MediaDevicesWeb: function MediaDevicesWeb() {
+ },
+ MediaDevicesWeb_getUserMedia_closure: function MediaDevicesWeb_getUserMedia_closure() {
+ },
+ MediaDevicesWeb_getUserMedia_closure0: function MediaDevicesWeb_getUserMedia_closure0() {
+ },
+ get: function(url) {
+ return G._withClient(new G.get_closure(url, null), type$.legacy_Response);
+ },
+ _withClient: function(fn, $T) {
+ return G._withClient$body(fn, $T, $T._eval$1("0*"));
+ },
+ _withClient$body: function(fn, $T, $async$type) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter($async$type),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], t1, client;
+ var $async$_withClient = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ client = new O.BrowserClient(P.LinkedHashSet_LinkedHashSet$_empty(type$.legacy_HttpRequest));
+ $async$handler = 3;
+ $async$goto = 6;
+ return P._asyncAwait(fn.call$1(client), $async$_withClient);
+ case 6:
+ // returning from await.
+ t1 = $async$result;
+ $async$returnValue = t1;
+ $async$next = [1];
+ // goto finally
+ $async$goto = 4;
+ break;
+ $async$next.push(5);
+ // goto finally
+ $async$goto = 4;
+ break;
+ case 3:
+ // uncaught
+ $async$next = [2];
+ case 4:
+ // finally
+ $async$handler = 2;
+ J.close$0$x(client);
+ // goto the next finally handler
+ $async$goto = $async$next.pop();
+ break;
+ case 5:
+ // after finally
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_withClient, $async$completer);
+ },
+ get_closure: function get_closure(t0, t1) {
+ this.url = t0;
+ this.headers = t1;
+ },
+ BaseRequest: function BaseRequest() {
+ },
+ BaseRequest_closure: function BaseRequest_closure() {
+ },
+ BaseRequest_closure0: function BaseRequest_closure0() {
+ },
+ SourceSpanFormatException$: function(message, span, source) {
+ return new G.SourceSpanFormatException(source, message, span);
+ },
+ SourceSpanException: function SourceSpanException() {
+ },
+ SourceSpanFormatException: function SourceSpanFormatException(t0, t1, t2) {
+ this.source = t0;
+ this._span_exception$_message = t1;
+ this._span = t2;
+ },
+ _synthesiseDownButtons: function(buttons, kind) {
+ switch (kind) {
+ case C.PointerDeviceKind_1:
+ return buttons;
+ case C.PointerDeviceKind_0:
+ case C.PointerDeviceKind_2:
+ case C.PointerDeviceKind_3:
+ return (buttons | 1) >>> 0;
+ case C.PointerDeviceKind_4:
+ return buttons === 0 ? 1 : buttons;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ PointerEventConverter_expand: function($async$data, $async$devicePixelRatio) {
+ return P._makeSyncStarIterable(function() {
+ var data = $async$data,
+ devicePixelRatio = $async$devicePixelRatio;
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1, _i, datum, position, delta, radiusMinor, radiusMajor, radiusMin, radiusMax, timeStamp, kind, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11;
+ return function $async$PointerEventConverter_expand($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = data.length, _i = 0;
+ case 2:
+ // for condition
+ if (!(_i < data.length)) {
+ // goto after for
+ $async$goto = 4;
+ break;
+ }
+ datum = data[_i];
+ position = new P.Offset(datum.physicalX / devicePixelRatio, datum.physicalY / devicePixelRatio);
+ delta = new P.Offset(datum.physicalDeltaX / devicePixelRatio, datum.physicalDeltaY / devicePixelRatio);
+ radiusMinor = datum.radiusMinor / devicePixelRatio;
+ radiusMajor = datum.radiusMajor / devicePixelRatio;
+ radiusMin = datum.radiusMin / devicePixelRatio;
+ radiusMax = datum.radiusMax / devicePixelRatio;
+ timeStamp = datum.timeStamp;
+ kind = datum.kind;
+ t2 = datum.signalKind;
+ $async$goto = t2 == null || t2 === C.PointerSignalKind_0 ? 5 : 7;
+ break;
+ case 5:
+ // then
+ case 8:
+ // switch
+ switch (datum.change) {
+ case C.PointerChange_1:
+ // goto case
+ $async$goto = 10;
+ break;
+ case C.PointerChange_3:
+ // goto case
+ $async$goto = 11;
+ break;
+ case C.PointerChange_4:
+ // goto case
+ $async$goto = 12;
+ break;
+ case C.PointerChange_5:
+ // goto case
+ $async$goto = 13;
+ break;
+ case C.PointerChange_6:
+ // goto case
+ $async$goto = 14;
+ break;
+ case C.PointerChange_0:
+ // goto case
+ $async$goto = 15;
+ break;
+ case C.PointerChange_2:
+ // goto case
+ $async$goto = 16;
+ break;
+ default:
+ // goto default
+ $async$goto = 17;
+ break;
+ }
+ break;
+ case 10:
+ // case
+ t2 = datum.device;
+ t3 = datum.pressureMin;
+ t4 = datum.pressureMax;
+ $async$goto = 18;
+ return F.PointerAddedEvent$(t2, datum.distance, datum.distanceMax, 0, kind, false, datum.orientation, position, t4, t3, radiusMax, radiusMin, datum.tilt, timeStamp);
+ case 18:
+ // after yield
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 11:
+ // case
+ t2 = datum.device;
+ t3 = datum.buttons;
+ t4 = datum.pressureMin;
+ t5 = datum.pressureMax;
+ t6 = datum.distance;
+ t7 = datum.distanceMax;
+ t8 = datum.size;
+ t9 = datum.orientation;
+ t10 = datum.tilt;
+ $async$goto = 19;
+ return F.PointerHoverEvent$(t3, delta, t2, t6, t7, 0, kind, false, t9, position, t5, t4, radiusMajor, radiusMax, radiusMin, radiusMinor, t8, datum.synthesized, t10, timeStamp);
+ case 19:
+ // after yield
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 12:
+ // case
+ t2 = datum.pointerIdentifier;
+ t3 = datum.device;
+ t4 = G._synthesiseDownButtons(datum.buttons, kind);
+ t5 = datum.pressure;
+ t6 = datum.pressureMin;
+ t7 = datum.pressureMax;
+ t8 = datum.distanceMax;
+ t9 = datum.size;
+ $async$goto = 20;
+ return F.PointerDownEvent$(t4, t3, t8, 0, kind, false, datum.orientation, t2, position, t5, t7, t6, radiusMajor, radiusMax, radiusMin, radiusMinor, t9, datum.tilt, timeStamp);
+ case 20:
+ // after yield
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 13:
+ // case
+ t2 = datum.pointerIdentifier;
+ t3 = datum.device;
+ t4 = G._synthesiseDownButtons(datum.buttons, kind);
+ t5 = datum.pressure;
+ t6 = datum.pressureMin;
+ t7 = datum.pressureMax;
+ t8 = datum.distanceMax;
+ t9 = datum.size;
+ t10 = datum.orientation;
+ t11 = datum.tilt;
+ $async$goto = 21;
+ return F.PointerMoveEvent$(t4, delta, t3, t8, 0, kind, false, t10, datum.platformData, t2, position, t5, t7, t6, radiusMajor, radiusMax, radiusMin, radiusMinor, t9, datum.synthesized, t11, timeStamp);
+ case 21:
+ // after yield
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 14:
+ // case
+ t2 = datum.pointerIdentifier;
+ t3 = datum.device;
+ t4 = datum.buttons;
+ t5 = datum.pressure;
+ t6 = datum.pressureMin;
+ t7 = datum.pressureMax;
+ t8 = datum.distance;
+ t9 = datum.distanceMax;
+ t10 = datum.size;
+ $async$goto = 22;
+ return F.PointerUpEvent$(t4, t3, t8, t9, 0, kind, false, datum.orientation, t2, position, t5, t7, t6, radiusMajor, radiusMax, radiusMin, radiusMinor, t10, datum.tilt, timeStamp);
+ case 22:
+ // after yield
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 15:
+ // case
+ t2 = datum.pointerIdentifier;
+ t3 = datum.device;
+ t4 = datum.buttons;
+ t5 = datum.pressureMin;
+ t6 = datum.pressureMax;
+ t7 = datum.distance;
+ t8 = datum.distanceMax;
+ t9 = datum.size;
+ $async$goto = 23;
+ return F.PointerCancelEvent$(t4, t3, t7, t8, 0, kind, false, datum.orientation, t2, position, t6, t5, radiusMajor, radiusMax, radiusMin, radiusMinor, t9, datum.tilt, timeStamp);
+ case 23:
+ // after yield
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 16:
+ // case
+ t2 = datum.device;
+ t3 = datum.pressureMin;
+ t4 = datum.pressureMax;
+ $async$goto = 24;
+ return F.PointerRemovedEvent$(t2, datum.distanceMax, 0, kind, false, position, t4, t3, radiusMax, radiusMin, timeStamp);
+ case 24:
+ // after yield
+ // goto after switch
+ $async$goto = 9;
+ break;
+ case 17:
+ // default
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ case 9:
+ // after switch
+ // goto join
+ $async$goto = 6;
+ break;
+ case 7:
+ // else
+ t2.toString;
+ case 25:
+ // switch
+ switch (t2) {
+ case C.PointerSignalKind_1:
+ // goto case
+ $async$goto = 27;
+ break;
+ case C.PointerSignalKind_0:
+ // goto case
+ $async$goto = 28;
+ break;
+ case C.PointerSignalKind_2:
+ // goto case
+ $async$goto = 29;
+ break;
+ default:
+ // goto default
+ $async$goto = 30;
+ break;
+ }
+ break;
+ case 27:
+ // case
+ t2 = datum.scrollDeltaX;
+ t3 = datum.scrollDeltaY;
+ $async$goto = 31;
+ return F.PointerScrollEvent$(datum.device, 0, kind, position, new P.Offset(t2 / devicePixelRatio, t3 / devicePixelRatio), timeStamp);
+ case 31:
+ // after yield
+ // goto after switch
+ $async$goto = 26;
+ break;
+ case 28:
+ // case
+ // goto after switch
+ $async$goto = 26;
+ break;
+ case 29:
+ // case
+ // goto after switch
+ $async$goto = 26;
+ break;
+ case 30:
+ // default
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ case 26:
+ // after switch
+ case 6:
+ // join
+ case 3:
+ // for update
+ data.length === t1 || (0, H.throwConcurrentModificationError)(data), ++_i;
+ // goto for condition
+ $async$goto = 2;
+ break;
+ case 4:
+ // after for
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.PointerEvent);
+ }
+ },
+ S = {
+ ProxyAnimation$: function(animation) {
+ var t1 = new S.ProxyAnimation(new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_AnimationStatus), type$.ObserverList_of_void_Function_AnimationStatus), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function), type$.ObserverList_of_void_Function), 0);
+ t1._animations$_parent = animation;
+ if (animation == null) {
+ t1._status = C.AnimationStatus_0;
+ t1._animations$_value = 0;
+ }
+ return t1;
+ },
+ CurvedAnimation$: function(curve, $parent, reverseCurve) {
+ var t1 = new S.CurvedAnimation($parent, curve, reverseCurve);
+ t1._updateCurveDirection$1($parent.get$status($parent));
+ $parent.addStatusListener$1(t1.get$_updateCurveDirection());
+ return t1;
+ },
+ TrainHoppingAnimation$: function(_currentTrain, _nextTrain, onSwitchedTrain) {
+ var t2, t3,
+ t1 = new S.TrainHoppingAnimation(_currentTrain, _nextTrain, onSwitchedTrain, new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_AnimationStatus), type$.ObserverList_of_void_Function_AnimationStatus), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function), type$.ObserverList_of_void_Function));
+ if (J.$eq$(_currentTrain.get$value(_currentTrain), _nextTrain.get$value(_nextTrain))) {
+ t1._currentTrain = _nextTrain;
+ t1._nextTrain = null;
+ t2 = _nextTrain;
+ } else {
+ if (_currentTrain.get$value(_currentTrain) > _nextTrain.get$value(_nextTrain))
+ t1._mode = C._TrainHoppingMode_1;
+ else
+ t1._mode = C._TrainHoppingMode_0;
+ t2 = _currentTrain;
+ }
+ t2.addStatusListener$1(t1.get$_statusChangeHandler());
+ t2 = t1.get$_valueChangeHandler();
+ t1._currentTrain.addListener$1(0, t2);
+ t3 = t1._nextTrain;
+ if (t3 != null) {
+ t3.didRegisterListener$0();
+ t3 = t3.AnimationLocalListenersMixin__listeners;
+ t3._isDirty = true;
+ t3._observer_list$_list.push(t2);
+ }
+ return t1;
+ },
+ AnimationMin$: function(first, next, $T) {
+ return new S.AnimationMin(first, next, new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_AnimationStatus), type$.ObserverList_of_void_Function_AnimationStatus), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function), type$.ObserverList_of_void_Function), 0, $T._eval$1("AnimationMin<0>"));
+ },
+ _AlwaysCompleteAnimation: function _AlwaysCompleteAnimation() {
+ },
+ _AlwaysDismissedAnimation: function _AlwaysDismissedAnimation() {
+ },
+ AnimationWithParentMixin: function AnimationWithParentMixin() {
+ },
+ ProxyAnimation: function ProxyAnimation(t0, t1, t2) {
+ var _ = this;
+ _._animations$_parent = _._animations$_value = _._status = null;
+ _.AnimationLocalStatusListenersMixin__statusListeners = t0;
+ _.AnimationLocalListenersMixin__listeners = t1;
+ _.AnimationLazyListenerMixin__listenerCounter = t2;
+ },
+ ReverseAnimation: function ReverseAnimation(t0, t1, t2) {
+ this.parent = t0;
+ this.AnimationLocalStatusListenersMixin__statusListeners = t1;
+ this.AnimationLazyListenerMixin__listenerCounter = t2;
+ },
+ CurvedAnimation: function CurvedAnimation(t0, t1, t2) {
+ var _ = this;
+ _.parent = t0;
+ _.curve = t1;
+ _.reverseCurve = t2;
+ _._curveDirection = null;
+ },
+ _TrainHoppingMode: function _TrainHoppingMode(t0) {
+ this._animations$_name = t0;
+ },
+ TrainHoppingAnimation: function TrainHoppingAnimation(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._currentTrain = t0;
+ _._nextTrain = t1;
+ _._mode = null;
+ _.onSwitchedTrain = t2;
+ _._lastValue = _._lastStatus = null;
+ _.AnimationLocalStatusListenersMixin__statusListeners = t3;
+ _.AnimationLocalListenersMixin__listeners = t4;
+ },
+ CompoundAnimation: function CompoundAnimation() {
+ },
+ AnimationMin: function AnimationMin(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.first = t0;
+ _.next = t1;
+ _._lastValue = _._lastStatus = null;
+ _.AnimationLocalStatusListenersMixin__statusListeners = t2;
+ _.AnimationLocalListenersMixin__listeners = t3;
+ _.AnimationLazyListenerMixin__listenerCounter = t4;
+ _.$ti = t5;
+ },
+ _CompoundAnimation_Animation_AnimationLazyListenerMixin: function _CompoundAnimation_Animation_AnimationLazyListenerMixin() {
+ },
+ _CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin: function _CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin() {
+ },
+ _CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin: function _CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin() {
+ },
+ _CurvedAnimation_Animation_AnimationWithParentMixin: function _CurvedAnimation_Animation_AnimationWithParentMixin() {
+ },
+ _ProxyAnimation_Animation_AnimationLazyListenerMixin: function _ProxyAnimation_Animation_AnimationLazyListenerMixin() {
+ },
+ _ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin: function _ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin() {
+ },
+ _ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin: function _ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin() {
+ },
+ _ReverseAnimation_Animation_AnimationLazyListenerMixin: function _ReverseAnimation_Animation_AnimationLazyListenerMixin() {
+ },
+ _ReverseAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalStatusListenersMixin: function _ReverseAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalStatusListenersMixin() {
+ },
+ _TrainHoppingAnimation_Animation_AnimationEagerListenerMixin: function _TrainHoppingAnimation_Animation_AnimationEagerListenerMixin() {
+ },
+ _TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin: function _TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin() {
+ },
+ _TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin: function _TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin() {
+ },
+ AnimationLazyListenerMixin: function AnimationLazyListenerMixin() {
+ },
+ AnimationEagerListenerMixin: function AnimationEagerListenerMixin() {
+ },
+ AnimationLocalListenersMixin: function AnimationLocalListenersMixin() {
+ },
+ AnimationLocalStatusListenersMixin: function AnimationLocalStatusListenersMixin() {
+ },
+ DragStartBehavior: function DragStartBehavior(t0) {
+ this._recognizer$_name = t0;
+ },
+ GestureRecognizer: function GestureRecognizer() {
+ },
+ OneSequenceGestureRecognizer: function OneSequenceGestureRecognizer() {
+ },
+ GestureRecognizerState: function GestureRecognizerState(t0) {
+ this._recognizer$_name = t0;
+ },
+ PrimaryPointerGestureRecognizer: function PrimaryPointerGestureRecognizer() {
+ },
+ PrimaryPointerGestureRecognizer_addAllowedPointer_closure: function PrimaryPointerGestureRecognizer_addAllowedPointer_closure(t0, t1) {
+ this.$this = t0;
+ this.event = t1;
+ },
+ OffsetPair: function OffsetPair(t0, t1) {
+ this.local = t0;
+ this.global = t1;
+ },
+ _GestureRecognizer_GestureArenaMember_DiagnosticableTreeMixin: function _GestureRecognizer_GestureArenaMember_DiagnosticableTreeMixin() {
+ },
+ MaterialApp_createMaterialHeroController: function() {
+ return new T.HeroController(new S.MaterialApp_createMaterialHeroController_closure(), P.LinkedHashMap_LinkedHashMap$_empty(type$.Object, type$._HeroFlight));
+ },
+ ThemeMode: function ThemeMode(t0) {
+ this._app0$_name = t0;
+ },
+ MaterialApp: function MaterialApp(t0, t1) {
+ this.home = t0;
+ this.key = t1;
+ },
+ MaterialApp_createMaterialHeroController_closure: function MaterialApp_createMaterialHeroController_closure() {
+ },
+ _MaterialScrollBehavior: function _MaterialScrollBehavior() {
+ },
+ _MaterialAppState: function _MaterialAppState(t0) {
+ var _ = this;
+ _.___MaterialAppState__heroController = null;
+ _.___MaterialAppState__heroController_isSet = false;
+ _._widget = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _MaterialAppState__buildWidgetApp_closure: function _MaterialAppState__buildWidgetApp_closure() {
+ },
+ FloatingActionButtonThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.foregroundColor;
+ t3 = b == null;
+ t2 = P.Color_lerp(t2, t3 ? _null : b.foregroundColor, t);
+ t4 = t1 ? _null : a.backgroundColor;
+ t4 = P.Color_lerp(t4, t3 ? _null : b.backgroundColor, t);
+ t5 = t1 ? _null : a.focusColor;
+ t5 = P.Color_lerp(t5, t3 ? _null : b.focusColor, t);
+ t6 = t1 ? _null : a.hoverColor;
+ t6 = P.Color_lerp(t6, t3 ? _null : b.hoverColor, t);
+ t7 = t1 ? _null : a.splashColor;
+ t7 = P.Color_lerp(t7, t3 ? _null : b.splashColor, t);
+ t8 = t1 ? _null : a.elevation;
+ t8 = P.lerpDouble(t8, t3 ? _null : b.elevation, t);
+ t9 = t1 ? _null : a.focusElevation;
+ t9 = P.lerpDouble(t9, t3 ? _null : b.focusElevation, t);
+ t10 = t1 ? _null : a.hoverElevation;
+ t10 = P.lerpDouble(t10, t3 ? _null : b.hoverElevation, t);
+ t11 = t1 ? _null : a.disabledElevation;
+ t11 = P.lerpDouble(t11, t3 ? _null : b.disabledElevation, t);
+ t12 = t1 ? _null : a.highlightElevation;
+ t12 = P.lerpDouble(t12, t3 ? _null : b.highlightElevation, t);
+ t1 = t1 ? _null : a.shape;
+ return new S.FloatingActionButtonThemeData(t2, t4, t5, t6, t7, t8, t9, t10, t11, t12, Y.ShapeBorder_lerp(t1, t3 ? _null : b.shape, t));
+ },
+ FloatingActionButtonThemeData: function FloatingActionButtonThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.foregroundColor = t0;
+ _.backgroundColor = t1;
+ _.focusColor = t2;
+ _.hoverColor = t3;
+ _.splashColor = t4;
+ _.elevation = t5;
+ _.focusElevation = t6;
+ _.hoverElevation = t7;
+ _.disabledElevation = t8;
+ _.highlightElevation = t9;
+ _.shape = t10;
+ },
+ _FloatingActionButtonThemeData_Object_Diagnosticable: function _FloatingActionButtonThemeData_Object_Diagnosticable() {
+ },
+ ToggleButtonsThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.textStyle;
+ t3 = b == null;
+ t2 = A.TextStyle_lerp(t2, t3 ? _null : b.textStyle, t);
+ t4 = t1 ? _null : a.constraints;
+ t4 = S.BoxConstraints_lerp(t4, t3 ? _null : b.constraints, t);
+ t5 = t1 ? _null : a.color;
+ t5 = P.Color_lerp(t5, t3 ? _null : b.color, t);
+ t6 = t1 ? _null : a.selectedColor;
+ t6 = P.Color_lerp(t6, t3 ? _null : b.selectedColor, t);
+ t7 = t1 ? _null : a.disabledColor;
+ t7 = P.Color_lerp(t7, t3 ? _null : b.disabledColor, t);
+ t8 = t1 ? _null : a.fillColor;
+ t8 = P.Color_lerp(t8, t3 ? _null : b.fillColor, t);
+ t9 = t1 ? _null : a.focusColor;
+ t9 = P.Color_lerp(t9, t3 ? _null : b.focusColor, t);
+ t10 = t1 ? _null : a.highlightColor;
+ t10 = P.Color_lerp(t10, t3 ? _null : b.highlightColor, t);
+ t11 = t1 ? _null : a.hoverColor;
+ t11 = P.Color_lerp(t11, t3 ? _null : b.hoverColor, t);
+ t12 = t1 ? _null : a.splashColor;
+ t12 = P.Color_lerp(t12, t3 ? _null : b.splashColor, t);
+ t13 = t1 ? _null : a.borderColor;
+ t13 = P.Color_lerp(t13, t3 ? _null : b.borderColor, t);
+ t14 = t1 ? _null : a.selectedBorderColor;
+ t14 = P.Color_lerp(t14, t3 ? _null : b.selectedBorderColor, t);
+ t15 = t1 ? _null : a.disabledBorderColor;
+ t15 = P.Color_lerp(t15, t3 ? _null : b.disabledBorderColor, t);
+ t16 = t1 ? _null : a.borderRadius;
+ t16 = K.BorderRadius_lerp(t16, t3 ? _null : b.borderRadius, t);
+ t1 = t1 ? _null : a.borderWidth;
+ return new S.ToggleButtonsThemeData(t2, t4, t5, t6, t7, t8, t9, t10, t12, t11, t13, t14, t15, P.lerpDouble(t1, t3 ? _null : b.borderWidth, t), t16);
+ },
+ ToggleButtonsThemeData: function ToggleButtonsThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.textStyle = t0;
+ _.constraints = t1;
+ _.color = t2;
+ _.selectedColor = t3;
+ _.disabledColor = t4;
+ _.fillColor = t5;
+ _.focusColor = t6;
+ _.highlightColor = t7;
+ _.splashColor = t8;
+ _.hoverColor = t9;
+ _.borderColor = t10;
+ _.selectedBorderColor = t11;
+ _.disabledBorderColor = t12;
+ _.borderWidth = t13;
+ _.borderRadius = t14;
+ },
+ _ToggleButtonsThemeData_Object_Diagnosticable: function _ToggleButtonsThemeData_Object_Diagnosticable() {
+ },
+ Tooltip$: function(child, message) {
+ return new S.Tooltip(message, child, null);
+ },
+ Tooltip: function Tooltip(t0, t1, t2) {
+ this.message = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _TooltipState: function _TooltipState(t0, t1) {
+ var _ = this;
+ _.___TooltipState_height = null;
+ _.___TooltipState_height_isSet = false;
+ _.___TooltipState_padding = null;
+ _.___TooltipState_padding_isSet = false;
+ _.___TooltipState_margin = null;
+ _.___TooltipState_margin_isSet = false;
+ _.___TooltipState_decoration = null;
+ _.___TooltipState_decoration_isSet = false;
+ _.___TooltipState_textStyle = null;
+ _.___TooltipState_textStyle_isSet = false;
+ _.___TooltipState_verticalOffset = null;
+ _.___TooltipState_verticalOffset_isSet = false;
+ _.___TooltipState_preferBelow = null;
+ _.___TooltipState_preferBelow_isSet = false;
+ _.___TooltipState_excludeFromSemantics = null;
+ _.___TooltipState_excludeFromSemantics_isSet = false;
+ _.___TooltipState__controller = null;
+ _.___TooltipState__controller_isSet = false;
+ _.___TooltipState_showDuration = _._showTimer = _._hideTimer = _._tooltip$_entry = null;
+ _.___TooltipState_showDuration_isSet = false;
+ _.___TooltipState_waitDuration = null;
+ _.___TooltipState_waitDuration_isSet = false;
+ _.___TooltipState__mouseIsConnected = null;
+ _._longPressActivated = _.___TooltipState__mouseIsConnected_isSet = false;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _TooltipState__handleMouseTrackerChange_closure: function _TooltipState__handleMouseTrackerChange_closure(t0, t1) {
+ this.$this = t0;
+ this.mouseIsConnected = t1;
+ },
+ _TooltipState__createNewEntry_closure: function _TooltipState__createNewEntry_closure(t0) {
+ this.overlay = t0;
+ },
+ _TooltipState_build_closure: function _TooltipState_build_closure(t0) {
+ this.$this = t0;
+ },
+ _TooltipState_build_closure0: function _TooltipState_build_closure0(t0) {
+ this.$this = t0;
+ },
+ _TooltipPositionDelegate: function _TooltipPositionDelegate(t0, t1, t2) {
+ this.target = t0;
+ this.verticalOffset = t1;
+ this.preferBelow = t2;
+ },
+ _TooltipOverlay: function _TooltipOverlay(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.message = t0;
+ _.height = t1;
+ _.padding = t2;
+ _.margin = t3;
+ _.decoration = t4;
+ _.textStyle = t5;
+ _.animation = t6;
+ _.target = t7;
+ _.verticalOffset = t8;
+ _.preferBelow = t9;
+ _.key = t10;
+ },
+ __TooltipState_State_SingleTickerProviderStateMixin: function __TooltipState_State_SingleTickerProviderStateMixin() {
+ },
+ BoxDecoration_lerp: function(a, b, t) {
+ var t1, t2, t3, t4, t5, t6, t7;
+ if (t === 0)
+ return a;
+ if (t === 1)
+ return b;
+ t1 = P.Color_lerp(a.color, b.color, t);
+ t2 = t < 0.5;
+ t3 = t2 ? a.image : b.image;
+ t4 = F.BoxBorder_lerp(a.border, b.border, t);
+ t5 = K.BorderRadiusGeometry_lerp(a.borderRadius, b.borderRadius, t);
+ t6 = O.BoxShadow_lerpList(a.boxShadow, b.boxShadow, t);
+ t7 = T.Gradient_lerp(a.gradient, b.gradient, t);
+ return new S.BoxDecoration(t1, t3, t4, t5, t6, t7, t2 ? a.shape : b.shape);
+ },
+ BoxDecoration: function BoxDecoration(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.color = t0;
+ _.image = t1;
+ _.border = t2;
+ _.borderRadius = t3;
+ _.boxShadow = t4;
+ _.gradient = t5;
+ _.shape = t6;
+ },
+ _BoxDecorationPainter: function _BoxDecorationPainter(t0, t1) {
+ var _ = this;
+ _._box_decoration$_decoration = t0;
+ _._imagePainter = _._rectForCachedBackgroundPaint = _._cachedBackgroundPaint = null;
+ _.onChanged = t1;
+ },
+ BoxConstraints$tight: function(size) {
+ var t1 = size._dx,
+ t2 = size._dy;
+ return new S.BoxConstraints(t1, t1, t2, t2);
+ },
+ BoxConstraints$tightFor: function(height, width) {
+ var t3, t4,
+ t1 = width == null,
+ t2 = t1 ? 0 : width;
+ t1 = t1 ? 1 / 0 : width;
+ t3 = height == null;
+ t4 = t3 ? 0 : height;
+ return new S.BoxConstraints(t2, t1, t4, t3 ? 1 / 0 : height);
+ },
+ BoxConstraints$tightForFinite: function(height, width) {
+ var t3, t4,
+ t1 = width !== 1 / 0,
+ t2 = t1 ? width : 0;
+ t1 = t1 ? width : 1 / 0;
+ t3 = height !== 1 / 0;
+ t4 = t3 ? height : 0;
+ return new S.BoxConstraints(t2, t1, t4, t3 ? height : 1 / 0);
+ },
+ BoxConstraints$loose: function(size) {
+ return new S.BoxConstraints(0, size._dx, 0, size._dy);
+ },
+ BoxConstraints_lerp: function(a, b, t) {
+ var t2, t3, t4,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ return b.$mul(0, t);
+ if (b == null)
+ return a.$mul(0, 1 - t);
+ t1 = a.minWidth;
+ t1.toString;
+ if (isFinite(t1)) {
+ t1 = P.lerpDouble(t1, b.minWidth, t);
+ t1.toString;
+ } else
+ t1 = 1 / 0;
+ t2 = a.maxWidth;
+ t2.toString;
+ if (isFinite(t2)) {
+ t2 = P.lerpDouble(t2, b.maxWidth, t);
+ t2.toString;
+ } else
+ t2 = 1 / 0;
+ t3 = a.minHeight;
+ t3.toString;
+ if (isFinite(t3)) {
+ t3 = P.lerpDouble(t3, b.minHeight, t);
+ t3.toString;
+ } else
+ t3 = 1 / 0;
+ t4 = a.maxHeight;
+ t4.toString;
+ if (isFinite(t4)) {
+ t4 = P.lerpDouble(t4, b.maxHeight, t);
+ t4.toString;
+ } else
+ t4 = 1 / 0;
+ return new S.BoxConstraints(t1, t2, t3, t4);
+ },
+ BoxHitTestResult$: function() {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_HitTestEntry),
+ t2 = new E.Matrix4(new Float64Array(16));
+ t2.setIdentity$0();
+ return new S.BoxHitTestResult(t1, H.setRuntimeTypeInfo([t2], type$.JSArray_Matrix4), H.setRuntimeTypeInfo([], type$.JSArray__TransformPart));
+ },
+ BoxHitTestResult$wrap: function(result) {
+ return new S.BoxHitTestResult(result._path, result._transforms, result._localTransforms);
+ },
+ BoxConstraints: function BoxConstraints(t0, t1, t2, t3) {
+ var _ = this;
+ _.minWidth = t0;
+ _.maxWidth = t1;
+ _.minHeight = t2;
+ _.maxHeight = t3;
+ },
+ BoxConstraints_toString_describe: function BoxConstraints_toString_describe() {
+ },
+ BoxHitTestResult: function BoxHitTestResult(t0, t1, t2) {
+ this._path = t0;
+ this._transforms = t1;
+ this._localTransforms = t2;
+ },
+ BoxHitTestEntry: function BoxHitTestEntry(t0, t1) {
+ this.localPosition = t0;
+ this.target = t1;
+ this._transform = null;
+ },
+ BoxParentData: function BoxParentData(t0) {
+ this.offset = t0;
+ },
+ ContainerBoxParentData: function ContainerBoxParentData() {
+ },
+ _IntrinsicDimension: function _IntrinsicDimension(t0) {
+ this._box$_name = t0;
+ },
+ _IntrinsicDimensionsCacheEntry: function _IntrinsicDimensionsCacheEntry(t0, t1) {
+ this.dimension = t0;
+ this.argument = t1;
+ },
+ RenderBox: function RenderBox() {
+ },
+ RenderBox__computeIntrinsicDimension_closure: function RenderBox__computeIntrinsicDimension_closure(t0, t1) {
+ this.computer = t0;
+ this.argument = t1;
+ },
+ RenderBox_getDistanceToActualBaseline_closure: function RenderBox_getDistanceToActualBaseline_closure(t0, t1) {
+ this.$this = t0;
+ this.baseline = t1;
+ },
+ RenderBoxContainerDefaultsMixin: function RenderBoxContainerDefaultsMixin() {
+ },
+ RenderBoxContainerDefaultsMixin_defaultHitTestChildren_closure: function RenderBoxContainerDefaultsMixin_defaultHitTestChildren_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.position = t1;
+ this.childParentData = t2;
+ },
+ _ContainerBoxParentData_BoxParentData_ContainerParentDataMixin: function _ContainerBoxParentData_BoxParentData_ContainerParentDataMixin() {
+ },
+ WidgetsApp_defaultShortcuts: function() {
+ var t1 = $.$get$WidgetsApp__defaultWebShortcuts();
+ return t1;
+ },
+ _WidgetsAppState_basicLocaleListResolution: function(preferredLocales, supportedLocales) {
+ var t1, t2, allSupportedLocales, languageAndCountryLocales, languageAndScriptLocales, languageLocales, countryLocales, _i, locale, t3, t4, matchesLanguageCode, matchesCountryCode, localeIndex, userLocale, match, resolvedLocale;
+ if (preferredLocales == null || preferredLocales.length === 0)
+ return C.JSArray_methods.get$first(supportedLocales);
+ t1 = type$.String;
+ t2 = type$.Locale;
+ allSupportedLocales = P.HashMap_HashMap(t1, t2);
+ languageAndCountryLocales = P.HashMap_HashMap(t1, t2);
+ languageAndScriptLocales = P.HashMap_HashMap(t1, t2);
+ languageLocales = P.HashMap_HashMap(t1, t2);
+ countryLocales = P.HashMap_HashMap(type$.nullable_String, t2);
+ for (_i = 0; _i < 1; ++_i) {
+ locale = supportedLocales[_i];
+ t1 = locale._languageCode;
+ t2 = C.Map_YCOho.$index(0, t1);
+ t2 = H.S(t2 == null ? t1 : t2) + "_null_";
+ t3 = locale._countryCode;
+ t4 = C.Map_0Agg9.$index(0, t3);
+ t2 += H.S(t4 == null ? t3 : t4);
+ if (allSupportedLocales.$index(0, t2) == null)
+ allSupportedLocales.$indexSet(0, t2, locale);
+ t2 = C.Map_YCOho.$index(0, t1);
+ t2 = H.S(t2 == null ? t1 : t2) + "_null";
+ if (languageAndScriptLocales.$index(0, t2) == null)
+ languageAndScriptLocales.$indexSet(0, t2, locale);
+ t2 = C.Map_YCOho.$index(0, t1);
+ t2 = H.S(t2 == null ? t1 : t2) + "_";
+ t4 = C.Map_0Agg9.$index(0, t3);
+ t2 += H.S(t4 == null ? t3 : t4);
+ if (languageAndCountryLocales.$index(0, t2) == null)
+ languageAndCountryLocales.$indexSet(0, t2, locale);
+ t2 = C.Map_YCOho.$index(0, t1);
+ t1 = t2 == null ? t1 : t2;
+ if (languageLocales.$index(0, t1) == null)
+ languageLocales.$indexSet(0, t1, locale);
+ t1 = C.Map_0Agg9.$index(0, t3);
+ if (t1 == null)
+ t1 = t3;
+ if (countryLocales.$index(0, t1) == null)
+ countryLocales.$indexSet(0, t1, locale);
+ }
+ for (matchesLanguageCode = null, matchesCountryCode = null, localeIndex = 0; localeIndex < preferredLocales.length; ++localeIndex) {
+ userLocale = preferredLocales[localeIndex];
+ t1 = userLocale._languageCode;
+ t2 = C.Map_YCOho.$index(0, t1);
+ t2 = H.S(t2 == null ? t1 : t2) + "_null_";
+ t3 = userLocale._countryCode;
+ t4 = C.Map_0Agg9.$index(0, t3);
+ if (allSupportedLocales.containsKey$1(0, t2 + H.S(t4 == null ? t3 : t4)))
+ return userLocale;
+ t2 = C.Map_0Agg9.$index(0, t3);
+ if ((t2 == null ? t3 : t2) != null) {
+ t2 = C.Map_YCOho.$index(0, t1);
+ t2 = H.S(t2 == null ? t1 : t2) + "_";
+ t4 = C.Map_0Agg9.$index(0, t3);
+ match = languageAndCountryLocales.$index(0, t2 + H.S(t4 == null ? t3 : t4));
+ if (match != null)
+ return match;
+ }
+ if (matchesLanguageCode != null)
+ return matchesLanguageCode;
+ t2 = C.Map_YCOho.$index(0, t1);
+ match = languageLocales.$index(0, t2 == null ? t1 : t2);
+ if (match != null) {
+ if (localeIndex === 0) {
+ t2 = localeIndex + 1;
+ if (t2 < preferredLocales.length) {
+ t2 = preferredLocales[t2]._languageCode;
+ t4 = C.Map_YCOho.$index(0, t2);
+ t2 = t4 == null ? t2 : t4;
+ t4 = C.Map_YCOho.$index(0, t1);
+ t1 = t2 == (t4 == null ? t1 : t4);
+ } else
+ t1 = false;
+ t1 = !t1;
+ } else
+ t1 = false;
+ if (t1)
+ return match;
+ matchesLanguageCode = match;
+ }
+ if (matchesCountryCode == null) {
+ t1 = C.Map_0Agg9.$index(0, t3);
+ t1 = (t1 == null ? t3 : t1) != null;
+ } else
+ t1 = false;
+ if (t1) {
+ t1 = C.Map_0Agg9.$index(0, t3);
+ match = countryLocales.$index(0, t1 == null ? t3 : t1);
+ if (match != null)
+ matchesCountryCode = match;
+ }
+ }
+ resolvedLocale = matchesLanguageCode == null ? matchesCountryCode : matchesLanguageCode;
+ return resolvedLocale == null ? C.JSArray_methods.get$first(supportedLocales) : resolvedLocale;
+ },
+ WidgetsApp: function WidgetsApp(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32) {
+ var _ = this;
+ _.navigatorKey = t0;
+ _.onGenerateRoute = t1;
+ _.onGenerateInitialRoutes = t2;
+ _.pageRouteBuilder = t3;
+ _.routeInformationParser = t4;
+ _.routerDelegate = t5;
+ _.backButtonDispatcher = t6;
+ _.routeInformationProvider = t7;
+ _.home = t8;
+ _.routes = t9;
+ _.onUnknownRoute = t10;
+ _.initialRoute = t11;
+ _.navigatorObservers = t12;
+ _.builder = t13;
+ _.title = t14;
+ _.onGenerateTitle = t15;
+ _.textStyle = t16;
+ _.color = t17;
+ _.locale = t18;
+ _.localizationsDelegates = t19;
+ _.localeListResolutionCallback = t20;
+ _.localeResolutionCallback = t21;
+ _.supportedLocales = t22;
+ _.showPerformanceOverlay = t23;
+ _.checkerboardRasterCacheImages = t24;
+ _.checkerboardOffscreenLayers = t25;
+ _.showSemanticsDebugger = t26;
+ _.inspectorSelectButtonBuilder = t27;
+ _.debugShowCheckedModeBanner = t28;
+ _.shortcuts = t29;
+ _.actions = t30;
+ _.restorationScopeId = t31;
+ _.key = t32;
+ },
+ _WidgetsAppState: function _WidgetsAppState(t0) {
+ var _ = this;
+ _._widget = _._app$_locale = _._navigator = _._defaultRouteInformationProvider = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _WidgetsAppState__onGenerateRoute_closure: function _WidgetsAppState__onGenerateRoute_closure(t0) {
+ this.$this = t0;
+ },
+ _WidgetsAppState_didChangeLocales_closure: function _WidgetsAppState_didChangeLocales_closure(t0, t1) {
+ this.$this = t0;
+ this.newLocale = t1;
+ },
+ _WidgetsAppState_build_closure: function _WidgetsAppState_build_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ _MediaQueryFromWindow: function _MediaQueryFromWindow(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ _MediaQueryFromWindowsState: function _MediaQueryFromWindowsState(t0) {
+ this._widget = null;
+ this._debugLifecycleState = t0;
+ this._framework$_element = null;
+ },
+ _MediaQueryFromWindowsState_didChangeMetrics_closure: function _MediaQueryFromWindowsState_didChangeMetrics_closure() {
+ },
+ _MediaQueryFromWindowsState_didChangePlatformBrightness_closure: function _MediaQueryFromWindowsState_didChangePlatformBrightness_closure() {
+ },
+ __MediaQueryFromWindowsState_State_WidgetsBindingObserver: function __MediaQueryFromWindowsState_State_WidgetsBindingObserver() {
+ },
+ __WidgetsAppState_State_WidgetsBindingObserver: function __WidgetsAppState_State_WidgetsBindingObserver() {
+ },
+ InheritedNotifier: function InheritedNotifier() {
+ },
+ _InheritedNotifierElement: function _InheritedNotifierElement(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._inherited_notifier$_dirty = false;
+ _._dependents = t0;
+ _._framework$_parent = _._framework$_child = null;
+ _._cachedHash = t1;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t2;
+ _._owner = null;
+ _._lifecycleState = t3;
+ _._debugForgottenChildrenWithGlobalKey = t4;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ _.$ti = t5;
+ },
+ PageStorageBucket__maybeAddKey: function(context, keys) {
+ var widget = context.get$widget();
+ widget.toString;
+ return !(widget instanceof S.PageStorage);
+ },
+ PageStorage_of: function(context) {
+ var widget = context.findAncestorWidgetOfExactType$1$0(type$.PageStorage);
+ return widget == null ? null : widget.bucket;
+ },
+ _StorageEntryIdentifier: function _StorageEntryIdentifier(t0) {
+ this.keys = t0;
+ },
+ PageStorageBucket: function PageStorageBucket() {
+ this._storage = null;
+ },
+ PageStorageBucket__allKeys_closure: function PageStorageBucket__allKeys_closure(t0) {
+ this.keys = t0;
+ },
+ PageStorage: function PageStorage(t0, t1, t2) {
+ this.child = t0;
+ this.bucket = t1;
+ this.key = t2;
+ },
+ RTCRtpSenderWeb: function RTCRtpSenderWeb() {
+ },
+ low: function(codeUnit) {
+ var index = C.JSString_methods._codeUnitAt$1(string$.u0e3b_____, codeUnit >>> 6) + (codeUnit & 63),
+ bit = index & 1,
+ pair = C.JSString_methods._codeUnitAt$1(string$.x22_____, index >>> 1);
+ return pair >>> 4 & -bit | pair & 15 & bit - 1;
+ },
+ high: function(lead, tail) {
+ var index = C.JSString_methods._codeUnitAt$1(string$.u0e3b_____, 1024 + (lead & 1023)) + (tail & 1023),
+ bit = index & 1,
+ pair = C.JSString_methods._codeUnitAt$1(string$.x22_____, index >>> 1);
+ return pair >>> 4 & -bit | pair & 15 & bit - 1;
+ },
+ setEquals: function(a, b) {
+ var t1;
+ if (a == null)
+ return b == null;
+ if (b == null || a.get$length(a) !== b.get$length(b))
+ return false;
+ if (a === b)
+ return true;
+ for (t1 = a.get$iterator(a); t1.moveNext$0();)
+ if (!b.contains$1(0, t1.get$current(t1)))
+ return false;
+ return true;
+ },
+ listEquals: function(a, b) {
+ var t1, t2, index;
+ if (a == null)
+ return b == null;
+ if (b == null || J.get$length$asx(a) != J.get$length$asx(b))
+ return false;
+ if (a === b)
+ return true;
+ for (t1 = J.getInterceptor$asx(a), t2 = J.getInterceptor$asx(b), index = 0; index < t1.get$length(a); ++index)
+ if (!J.$eq$(t1.$index(a, index), t2.$index(b, index)))
+ return false;
+ return true;
+ },
+ mapEquals: function(a, b) {
+ var t1, key;
+ if (a == null)
+ return b == null;
+ if (b == null || a.get$length(a) != b.get$length(b))
+ return false;
+ if (a === b)
+ return true;
+ for (t1 = a.get$keys(a), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
+ key = t1.get$current(t1);
+ if (!b.containsKey$1(0, key) || !J.$eq$(b.$index(0, key), a.$index(0, key)))
+ return false;
+ }
+ return true;
+ },
+ mergeSort: function(list, compare, $T) {
+ var middle, secondLength, scratchSpace, firstTarget,
+ end = list.length,
+ $length = end - 0;
+ if ($length < 2)
+ return;
+ if ($length < 32) {
+ S._insertionSort(list, compare, end, 0, $T);
+ return;
+ }
+ middle = C.JSInt_methods._shrOtherPositive$1($length, 1);
+ secondLength = end - middle;
+ scratchSpace = P.List_List$filled(secondLength, list[0], false, $T);
+ S._mergeSort(list, compare, middle, end, scratchSpace, 0);
+ firstTarget = end - (middle - 0);
+ S._mergeSort(list, compare, 0, middle, list, firstTarget);
+ S._merge(compare, list, firstTarget, end, scratchSpace, 0, secondLength, list, 0);
+ },
+ _insertionSort: function(list, compare, end, start, $T) {
+ var pos, element, max, min, mid;
+ for (pos = start + 1; pos < end;) {
+ element = list[pos];
+ for (max = pos, min = start; min < max;) {
+ mid = min + C.JSInt_methods._shrOtherPositive$1(max - min, 1);
+ if (compare.call$2(element, list[mid]) < 0)
+ max = mid;
+ else
+ min = mid + 1;
+ }
+ ++pos;
+ C.JSArray_methods.setRange$4(list, min + 1, pos, list, min);
+ list[min] = element;
+ }
+ },
+ _movingInsertionSort: function(list, compare, start, end, target, targetOffset) {
+ var i, element, max, max0, min, mid,
+ $length = end - start;
+ if ($length === 0)
+ return;
+ target[targetOffset] = list[start];
+ for (i = 1; i < $length; ++i) {
+ element = list[start + i];
+ max = targetOffset + i;
+ for (max0 = max, min = targetOffset; min < max0;) {
+ mid = min + C.JSInt_methods._shrOtherPositive$1(max0 - min, 1);
+ if (compare.call$2(element, target[mid]) < 0)
+ max0 = mid;
+ else
+ min = mid + 1;
+ }
+ C.JSArray_methods.setRange$4(target, min + 1, max + 1, target, min);
+ target[min] = element;
+ }
+ },
+ _mergeSort: function(list, compare, start, end, target, targetOffset) {
+ var middle, firstLength, targetMiddle,
+ $length = end - start;
+ if ($length < 32) {
+ S._movingInsertionSort(list, compare, start, end, target, targetOffset);
+ return;
+ }
+ middle = start + C.JSInt_methods._shrOtherPositive$1($length, 1);
+ firstLength = middle - start;
+ targetMiddle = targetOffset + firstLength;
+ S._mergeSort(list, compare, middle, end, target, targetMiddle);
+ S._mergeSort(list, compare, start, middle, list, middle);
+ S._merge(compare, list, middle, middle + firstLength, target, targetMiddle, targetMiddle + (end - middle), target, targetOffset);
+ },
+ _merge: function(compare, firstList, firstStart, firstEnd, secondList, secondStart, secondEnd, target, targetOffset) {
+ var targetOffset0, cursor10, cursor20,
+ cursor1 = firstStart + 1,
+ firstElement = firstList[firstStart],
+ cursor2 = secondStart + 1,
+ secondElement = secondList[secondStart];
+ for (; true; targetOffset = targetOffset0) {
+ targetOffset0 = targetOffset + 1;
+ if (compare.call$2(firstElement, secondElement) <= 0) {
+ target[targetOffset] = firstElement;
+ if (cursor1 === firstEnd) {
+ targetOffset = targetOffset0;
+ break;
+ }
+ cursor10 = cursor1 + 1;
+ firstElement = firstList[cursor1];
+ } else {
+ target[targetOffset] = secondElement;
+ if (cursor2 !== secondEnd) {
+ cursor20 = cursor2 + 1;
+ secondElement = secondList[cursor2];
+ cursor2 = cursor20;
+ continue;
+ }
+ targetOffset = targetOffset0 + 1;
+ target[targetOffset0] = firstElement;
+ C.JSArray_methods.setRange$4(target, targetOffset, targetOffset + (firstEnd - cursor1), firstList, cursor1);
+ return;
+ }
+ cursor1 = cursor10;
+ }
+ targetOffset0 = targetOffset + 1;
+ target[targetOffset] = secondElement;
+ C.JSArray_methods.setRange$4(target, targetOffset0, targetOffset0 + (secondEnd - cursor2), secondList, cursor2);
+ },
+ SemanticsService_tooltip: function(message) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$SemanticsService_tooltip = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(C.BasicMessageChannel_8hp.send$1(0, new E.TooltipSemanticsEvent(message, "tooltip").toMap$0()), $async$SemanticsService_tooltip);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$SemanticsService_tooltip, $async$completer);
+ }
+ },
+ Z = {ParametricCurve: function ParametricCurve() {
+ }, Curve: function Curve() {
+ }, _Linear: function _Linear() {
+ }, Interval: function Interval(t0, t1, t2) {
+ this.begin = t0;
+ this.end = t1;
+ this.curve = t2;
+ }, Threshold: function Threshold() {
+ }, Cubic: function Cubic(t0, t1, t2, t3) {
+ var _ = this;
+ _.a = t0;
+ _.b = t1;
+ _.c = t2;
+ _.d = t3;
+ }, FlippedCurve: function FlippedCurve(t0) {
+ this.curve = t0;
+ }, _DecelerateCurve: function _DecelerateCurve() {
+ },
+ RawMaterialButton$: function(animationDuration, autofocus, child, clipBehavior, constraints, disabledElevation, elevation, enableFeedback, fillColor, focusColor, focusElevation, focusNode, highlightColor, highlightElevation, hoverColor, hoverElevation, materialTapTargetSize, mouseCursor, onHighlightChanged, onLongPress, onPressed, padding, shape, splashColor, textStyle, visualDensity) {
+ return new Z.RawMaterialButton(onPressed, onLongPress, onHighlightChanged, mouseCursor, textStyle, fillColor, focusColor, hoverColor, highlightColor, splashColor, elevation, hoverElevation, focusElevation, highlightElevation, disabledElevation, padding, visualDensity, constraints, shape, animationDuration, child, materialTapTargetSize, focusNode, false, clipBehavior, true, null);
+ },
+ RawMaterialButton: function RawMaterialButton(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26) {
+ var _ = this;
+ _.onPressed = t0;
+ _.onLongPress = t1;
+ _.onHighlightChanged = t2;
+ _.mouseCursor = t3;
+ _.textStyle = t4;
+ _.fillColor = t5;
+ _.focusColor = t6;
+ _.hoverColor = t7;
+ _.highlightColor = t8;
+ _.splashColor = t9;
+ _.elevation = t10;
+ _.hoverElevation = t11;
+ _.focusElevation = t12;
+ _.highlightElevation = t13;
+ _.disabledElevation = t14;
+ _.padding = t15;
+ _.visualDensity = t16;
+ _.constraints = t17;
+ _.shape = t18;
+ _.animationDuration = t19;
+ _.child = t20;
+ _.materialTapTargetSize = t21;
+ _.focusNode = t22;
+ _.autofocus = t23;
+ _.clipBehavior = t24;
+ _.enableFeedback = t25;
+ _.key = t26;
+ },
+ _RawMaterialButtonState: function _RawMaterialButtonState(t0, t1) {
+ var _ = this;
+ _._states = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _RawMaterialButtonState__handleHighlightChanged_closure: function _RawMaterialButtonState__handleHighlightChanged_closure(t0, t1) {
+ this.$this = t0;
+ this.value = t1;
+ },
+ _RawMaterialButtonState__handleHoveredChanged_closure: function _RawMaterialButtonState__handleHoveredChanged_closure(t0, t1) {
+ this.$this = t0;
+ this.value = t1;
+ },
+ _RawMaterialButtonState__handleFocusedChanged_closure: function _RawMaterialButtonState__handleFocusedChanged_closure(t0, t1) {
+ this.$this = t0;
+ this.value = t1;
+ },
+ _InputPadding: function _InputPadding(t0, t1, t2) {
+ this.minSize = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _RenderInputPadding: function _RenderInputPadding(t0, t1) {
+ var _ = this;
+ _._minSize = t0;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderInputPadding_hitTest_closure: function _RenderInputPadding_hitTest_closure(t0, t1) {
+ this.$this = t0;
+ this.center = t1;
+ },
+ DataTableThemeData__lerpProperties: function(a, b, t, lerpFunction, $T) {
+ if (a == null && b == null)
+ return null;
+ return new Z._LerpProperties(a, b, t, lerpFunction, $T._eval$1("_LerpProperties<0>"));
+ },
+ DataTableThemeData: function DataTableThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _.decoration = t0;
+ _.dataRowColor = t1;
+ _.dataRowHeight = t2;
+ _.dataTextStyle = t3;
+ _.headingRowColor = t4;
+ _.headingRowHeight = t5;
+ _.headingTextStyle = t6;
+ _.horizontalMargin = t7;
+ _.columnSpacing = t8;
+ _.dividerThickness = t9;
+ },
+ _LerpProperties: function _LerpProperties(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.a = t0;
+ _.b = t1;
+ _.t = t2;
+ _.lerpFunction = t3;
+ _.$ti = t4;
+ },
+ _DataTableThemeData_Object_Diagnosticable: function _DataTableThemeData_Object_Diagnosticable() {
+ },
+ Divider$: function() {
+ return new Z.Divider(null);
+ },
+ Divider_createBorderSide: function(context, color, width) {
+ var effectiveColor, effectiveWidth,
+ t1 = G.DividerTheme_of(context).color;
+ if (t1 == null)
+ t1 = K.Theme_of(context).dividerColor;
+ effectiveColor = t1;
+ effectiveWidth = width;
+ if (effectiveColor == null)
+ return new Y.BorderSide(C.Color_4278190080, effectiveWidth, C.BorderStyle_1);
+ return new Y.BorderSide(effectiveColor, effectiveWidth, C.BorderStyle_1);
+ },
+ Divider: function Divider(t0) {
+ this.key = t0;
+ },
+ FlexibleSpaceBarSettings: function FlexibleSpaceBarSettings(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.toolbarOpacity = t0;
+ _.minExtent = t1;
+ _.maxExtent = t2;
+ _.currentExtent = t3;
+ _.child = t4;
+ _.key = t5;
+ },
+ _TextFieldSelectionGestureDetectorBuilder: function _TextFieldSelectionGestureDetectorBuilder(t0, t1) {
+ this._text_field$_state = t0;
+ this.delegate = t1;
+ this._shouldShowSelectionToolbar = true;
+ },
+ TextField: function TextField(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.decoration = t0;
+ _.keyboardType = t1;
+ _.textAlign = t2;
+ _.smartDashesType = t3;
+ _.smartQuotesType = t4;
+ _.toolbarOptions = t5;
+ _.onChanged = t6;
+ _.key = t7;
+ },
+ _TextFieldState: function _TextFieldState(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._focusNode = _._text_field$_controller = null;
+ _._showSelectionHandles = _._isHovering = false;
+ _.___TextFieldState__selectionGestureDetectorBuilder = null;
+ _.___TextFieldState__selectionGestureDetectorBuilder_isSet = false;
+ _.___TextFieldState_forcePressEnabled = null;
+ _.___TextFieldState_forcePressEnabled_isSet = false;
+ _.editableTextKey = t0;
+ _.RestorationMixin__bucket = t1;
+ _.RestorationMixin__properties = t2;
+ _.RestorationMixin__debugPropertiesWaitingForReregistration = t3;
+ _.RestorationMixin__firstRestorePending = t4;
+ _.RestorationMixin__currentParent = t5;
+ _._widget = null;
+ _._debugLifecycleState = t6;
+ _._framework$_element = null;
+ },
+ _TextFieldState__handleSelectionChanged_closure: function _TextFieldState__handleSelectionChanged_closure(t0, t1) {
+ this.$this = t0;
+ this.willShowSelectionHandles = t1;
+ },
+ _TextFieldState__handleHover_closure: function _TextFieldState__handleHover_closure(t0, t1) {
+ this.$this = t0;
+ this.hovering = t1;
+ },
+ _TextFieldState_build_closure: function _TextFieldState_build_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.focusNode = t1;
+ this.controller = t2;
+ },
+ _TextFieldState_build_closure1: function _TextFieldState_build_closure1(t0) {
+ this.$this = t0;
+ },
+ _TextFieldState_build_closure2: function _TextFieldState_build_closure2(t0) {
+ this.$this = t0;
+ },
+ _TextFieldState_build_closure0: function _TextFieldState_build_closure0(t0) {
+ this.$this = t0;
+ },
+ _TextFieldState_build__closure: function _TextFieldState_build__closure(t0) {
+ this.$this = t0;
+ },
+ __TextFieldState_State_RestorationMixin_dispose_closure: function __TextFieldState_State_RestorationMixin_dispose_closure() {
+ },
+ __TextFieldState_State_RestorationMixin: function __TextFieldState_State_RestorationMixin() {
+ },
+ ClipContext: function ClipContext() {
+ },
+ ClipContext_clipPathAndPaint_closure: function ClipContext_clipPathAndPaint_closure(t0, t1) {
+ this.$this = t0;
+ this.path = t1;
+ },
+ ClipContext_clipRectAndPaint_closure: function ClipContext_clipRectAndPaint_closure(t0, t1) {
+ this.$this = t0;
+ this.rect = t1;
+ },
+ Decoration_lerp: function(a, b, t) {
+ var _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ if (t1) {
+ t1 = b.lerpFrom$2(_null, t);
+ return t1 == null ? b : t1;
+ }
+ if (b == null) {
+ t1 = a.lerpTo$2(_null, t);
+ return t1 == null ? a : t1;
+ }
+ if (t === 0)
+ return a;
+ if (t === 1)
+ return b;
+ t1 = b.lerpFrom$2(a, t);
+ if (t1 == null)
+ t1 = a.lerpTo$2(b, t);
+ if (t1 == null)
+ if (t < 0.5) {
+ t1 = a.lerpTo$2(_null, t * 2);
+ if (t1 == null)
+ t1 = a;
+ } else {
+ t1 = b.lerpFrom$2(_null, (t - 0.5) * 2);
+ if (t1 == null)
+ t1 = b;
+ }
+ return t1;
+ },
+ Decoration: function Decoration() {
+ },
+ BoxPainter: function BoxPainter() {
+ },
+ _Decoration_Object_Diagnosticable: function _Decoration_Object_Diagnosticable() {
+ },
+ RouteInformation: function RouteInformation(t0, t1) {
+ this.location = t0;
+ this.state = t1;
+ },
+ MediaStreamTrack0: function MediaStreamTrack0() {
+ },
+ RTCDataChannelWeb$: function(_jsDc) {
+ var t1 = new Z.RTCDataChannelWeb(_jsDc, C.RTCDataChannelState_0, P.StreamController_StreamController$broadcast(true, type$.legacy_RTCDataChannelState), P.StreamController_StreamController$broadcast(true, type$.legacy_RTCDataChannelMessage));
+ t1.RTCDataChannelWeb$1(_jsDc);
+ return t1;
+ },
+ RTCDataChannelWeb: function RTCDataChannelWeb(t0, t1, t2, t3) {
+ var _ = this;
+ _._jsDc = t0;
+ _._rtc_data_channel_impl$_state = t1;
+ _._stateChangeController = t2;
+ _._messageController = t3;
+ _.onMessage = _.onDataChannelState = null;
+ },
+ RTCDataChannelWeb_closure: function RTCDataChannelWeb_closure(t0) {
+ this.$this = t0;
+ },
+ RTCDataChannelWeb_closure0: function RTCDataChannelWeb_closure0(t0) {
+ this.$this = t0;
+ },
+ RTCDataChannelWeb_closure1: function RTCDataChannelWeb_closure1(t0) {
+ this.$this = t0;
+ },
+ ByteStream: function ByteStream(t0) {
+ this._stream = t0;
+ },
+ ByteStream_toBytes_closure: function ByteStream_toBytes_closure(t0) {
+ this.completer = t0;
+ },
+ CaseInsensitiveMap$from: function(other, $V) {
+ var t1 = new Z.CaseInsensitiveMap(new Z.CaseInsensitiveMap$from_closure(), new Z.CaseInsensitiveMap$from_closure0(), P.LinkedHashMap_LinkedHashMap$_empty(type$.legacy_String, $V._eval$1("MapEntry")), $V._eval$1("CaseInsensitiveMap<0>"));
+ t1.addAll$1(0, other);
+ return t1;
+ },
+ CaseInsensitiveMap: function CaseInsensitiveMap(t0, t1, t2, t3) {
+ var _ = this;
+ _._canonicalize = t0;
+ _._isValidKeyFn = t1;
+ _._base = t2;
+ _.$ti = t3;
+ },
+ CaseInsensitiveMap$from_closure: function CaseInsensitiveMap$from_closure() {
+ },
+ CaseInsensitiveMap$from_closure0: function CaseInsensitiveMap$from_closure0() {
+ }
+ },
+ R = {
+ Tween$: function(begin, end, $T) {
+ return new R.Tween(begin, end, $T._eval$1("Tween<0>"));
+ },
+ CurveTween$: function(curve) {
+ return new R.CurveTween(curve);
+ },
+ Animatable: function Animatable() {
+ },
+ _AnimatedEvaluation: function _AnimatedEvaluation(t0, t1, t2) {
+ this.parent = t0;
+ this._evaluatable = t1;
+ this.$ti = t2;
+ },
+ _ChainedEvaluation: function _ChainedEvaluation(t0, t1, t2) {
+ this._tween$_parent = t0;
+ this._evaluatable = t1;
+ this.$ti = t2;
+ },
+ Tween: function Tween(t0, t1, t2) {
+ this.begin = t0;
+ this.end = t1;
+ this.$ti = t2;
+ },
+ ReverseTween: function ReverseTween(t0, t1, t2, t3) {
+ var _ = this;
+ _.parent = t0;
+ _.begin = t1;
+ _.end = t2;
+ _.$ti = t3;
+ },
+ ColorTween: function ColorTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ RectTween: function RectTween() {
+ },
+ IntTween: function IntTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ CurveTween: function CurveTween(t0) {
+ this.curve = t0;
+ },
+ __AnimatedEvaluation_Animation_AnimationWithParentMixin: function __AnimatedEvaluation_Animation_AnimationWithParentMixin() {
+ },
+ _resolveTextStyle: function(style, context) {
+ return null;
+ },
+ CupertinoTextThemeData: function CupertinoTextThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _._text_theme$_defaults = t0;
+ _._primaryColor = t1;
+ _._textStyle = t2;
+ _._actionTextStyle = t3;
+ _._tabLabelTextStyle = t4;
+ _._navTitleTextStyle = t5;
+ _._navLargeTitleTextStyle = t6;
+ _._navActionTextStyle = t7;
+ _._pickerTextStyle = t8;
+ _._dateTimePickerTextStyle = t9;
+ },
+ _TextThemeDefaultsBuilder: function _TextThemeDefaultsBuilder(t0, t1) {
+ this.labelColor = t0;
+ this.inactiveGrayColor = t1;
+ },
+ _CupertinoTextThemeData_Object_Diagnosticable: function _CupertinoTextThemeData_Object_Diagnosticable() {
+ },
+ ObserverList$: function($T) {
+ return new R.ObserverList(H.setRuntimeTypeInfo([], $T._eval$1("JSArray<0>")), $T._eval$1("ObserverList<0>"));
+ },
+ ObserverList: function ObserverList(t0, t1) {
+ var _ = this;
+ _._observer_list$_list = t0;
+ _._isDirty = false;
+ _.__ObserverList__set = null;
+ _.__ObserverList__set_isSet = false;
+ _.$ti = t1;
+ },
+ HashedObserverList: function HashedObserverList(t0, t1) {
+ this._observer_list$_map = t0;
+ this.$ti = t1;
+ },
+ StackFrame_fromStackString: function(stack) {
+ var t1 = type$.WhereTypeIterable_StackFrame;
+ return P.List_List$of(new H.WhereTypeIterable(new H.MappedIterable(new H.WhereIterable(H.setRuntimeTypeInfo(C.JSString_methods.trim$0(stack).split("\n"), type$.JSArray_String), new R.StackFrame_fromStackString_closure(), type$.WhereIterable_String), R.stack_frame_StackFrame_fromStackTraceLine$closure(), type$.MappedIterable_of_String_and_nullable_StackFrame), t1), true, t1._eval$1("Iterable.E"));
+ },
+ StackFrame__parseWebFrame: function(line) {
+ var t1 = R.StackFrame__parseWebNonDebugFrame(line);
+ return t1;
+ },
+ StackFrame__parseWebNonDebugFrame: function(line) {
+ var classAndMethod, className,
+ _s9_ = "",
+ match = $.$get$StackFrame__webNonDebugFramePattern().firstMatch$1(line);
+ if (match == null)
+ return null;
+ classAndMethod = H.setRuntimeTypeInfo(match._match[1].split("."), type$.JSArray_String);
+ className = classAndMethod.length > 1 ? C.JSArray_methods.get$first(classAndMethod) : _s9_;
+ return new R.StackFrame(line, -1, _s9_, _s9_, _s9_, -1, -1, className, classAndMethod.length > 1 ? H.SubListIterable$(classAndMethod, 1, null, type$.String).join$1(0, ".") : C.JSArray_methods.get$single(classAndMethod));
+ },
+ StackFrame_fromStackTraceLine: function(line) {
+ var t1, t2, method, className, parts, packageUri, packagePath, $package, t3, t4,
+ _s9_ = "";
+ if (line === "")
+ return C.StackFrame_SOW;
+ else if (line === "...")
+ return C.StackFrame_8sg;
+ if (!J.startsWith$1$s(line, "#"))
+ return R.StackFrame__parseWebFrame(line);
+ t1 = P.RegExp_RegExp("^#(\\d+) +(.+) \\((.+?):?(\\d+){0,1}:?(\\d+){0,1}\\)$", true).firstMatch$1(line)._match;
+ t2 = t1[2];
+ t2.toString;
+ method = H.stringReplaceAllUnchecked(t2, ".", "");
+ if (C.JSString_methods.startsWith$1(method, "new")) {
+ className = method.split(" ").length > 1 ? method.split(" ")[1] : _s9_;
+ if (J.contains$1$asx(className, ".")) {
+ parts = className.split(".");
+ className = parts[0];
+ method = parts[1];
+ } else
+ method = "";
+ } else if (C.JSString_methods.contains$1(method, ".")) {
+ parts = method.split(".");
+ className = parts[0];
+ method = parts[1];
+ } else
+ className = "";
+ t2 = t1[3];
+ t2.toString;
+ packageUri = P.Uri_parse(t2);
+ packagePath = packageUri.get$path(packageUri);
+ if (packageUri.get$scheme() === "dart" || packageUri.get$scheme() === "package") {
+ $package = packageUri.get$pathSegments()[0];
+ packagePath = C.JSString_methods.replaceFirst$2(packageUri.get$path(packageUri), J.$add$ansx(packageUri.get$pathSegments()[0], "/"), "");
+ } else
+ $package = _s9_;
+ t2 = t1[1];
+ t2.toString;
+ t2 = P.int_parse(t2, null);
+ t3 = packageUri.get$scheme();
+ t4 = t1[4];
+ if (t4 == null)
+ t4 = -1;
+ else {
+ t4 = t4;
+ t4.toString;
+ t4 = P.int_parse(t4, null);
+ }
+ t1 = t1[5];
+ if (t1 == null)
+ t1 = -1;
+ else {
+ t1 = t1;
+ t1.toString;
+ t1 = P.int_parse(t1, null);
+ }
+ return new R.StackFrame(line, t2, t3, $package, packagePath, t4, t1, className, method);
+ },
+ StackFrame: function StackFrame(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.source = t0;
+ _.number = t1;
+ _.packageScheme = t2;
+ _.$package = t3;
+ _.packagePath = t4;
+ _.line = t5;
+ _.column = t6;
+ _.className = t7;
+ _.method = t8;
+ },
+ StackFrame_fromStackString_closure: function StackFrame_fromStackString_closure() {
+ },
+ Velocity: function Velocity(t0) {
+ this.pixelsPerSecond = t0;
+ },
+ VelocityEstimate: function VelocityEstimate(t0, t1, t2, t3) {
+ var _ = this;
+ _.pixelsPerSecond = t0;
+ _.confidence = t1;
+ _.duration = t2;
+ _.offset = t3;
+ },
+ _PointAtTime: function _PointAtTime(t0, t1) {
+ this.time = t0;
+ this.point = t1;
+ },
+ VelocityTracker: function VelocityTracker(t0, t1) {
+ this.kind = t0;
+ this._samples = t1;
+ this._velocity_tracker$_index = 0;
+ },
+ IOSScrollViewFlingVelocityTracker: function IOSScrollViewFlingVelocityTracker(t0, t1, t2) {
+ var _ = this;
+ _._touchSamples = t0;
+ _.kind = t1;
+ _._samples = t2;
+ _._velocity_tracker$_index = 0;
+ },
+ BackButtonIcon__getIconData: function(platform) {
+ switch (platform) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ return C.IconData_58791_true;
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ return C.IconData_58792_true;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ BackButtonIcon: function BackButtonIcon(t0) {
+ this.key = t0;
+ },
+ BackButton: function BackButton(t0) {
+ this.key = t0;
+ },
+ BackButton_build_closure: function BackButton_build_closure(t0, t1) {
+ this.$this = t0;
+ this.context = t1;
+ },
+ InkResponse$: function(autofocus, borderRadius, canRequestFocus, child, containedInkWell, customBorder, enableFeedback, excludeFromSemantics, focusColor, focusNode, highlightColor, highlightShape, hoverColor, key, mouseCursor, onDoubleTap, onFocusChange, onHighlightChanged, onHover, onLongPress, onTap, onTapCancel, onTapDown, overlayColor, radius, splashColor, splashFactory) {
+ return new R.InkResponse(child, onTap, onTapDown, onTapCancel, onDoubleTap, onLongPress, onHighlightChanged, onHover, mouseCursor, containedInkWell, highlightShape, radius, borderRadius, customBorder, focusColor, hoverColor, highlightColor, overlayColor, splashColor, splashFactory, enableFeedback, false, onFocusChange, false, focusNode, canRequestFocus, key);
+ },
+ InkWell$: function(autofocus, canRequestFocus, child, customBorder, enableFeedback, focusColor, focusNode, highlightColor, hoverColor, mouseCursor, onFocusChange, onHighlightChanged, onHover, onLongPress, onTap, overlayColor, splashColor, splashFactory) {
+ var _null = null;
+ return new R.InkWell(child, onTap, _null, _null, _null, onLongPress, onHighlightChanged, onHover, mouseCursor, true, C.BoxShape_0, _null, _null, customBorder, focusColor, hoverColor, highlightColor, overlayColor, splashColor, splashFactory, enableFeedback !== false, false, onFocusChange, false, focusNode, canRequestFocus, _null);
+ },
+ InteractiveInkFeature: function InteractiveInkFeature() {
+ },
+ InteractiveInkFeatureFactory: function InteractiveInkFeatureFactory() {
+ },
+ _ParentInkResponseProvider: function _ParentInkResponseProvider(t0, t1, t2) {
+ this.state = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ InkResponse: function InkResponse(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26) {
+ var _ = this;
+ _.child = t0;
+ _.onTap = t1;
+ _.onTapDown = t2;
+ _.onTapCancel = t3;
+ _.onDoubleTap = t4;
+ _.onLongPress = t5;
+ _.onHighlightChanged = t6;
+ _.onHover = t7;
+ _.mouseCursor = t8;
+ _.containedInkWell = t9;
+ _.highlightShape = t10;
+ _.radius = t11;
+ _.borderRadius = t12;
+ _.customBorder = t13;
+ _.focusColor = t14;
+ _.hoverColor = t15;
+ _.highlightColor = t16;
+ _.overlayColor = t17;
+ _.splashColor = t18;
+ _.splashFactory = t19;
+ _.enableFeedback = t20;
+ _.excludeFromSemantics = t21;
+ _.onFocusChange = t22;
+ _.autofocus = t23;
+ _.focusNode = t24;
+ _.canRequestFocus = t25;
+ _.key = t26;
+ },
+ _InkResponseStateWidget: function _InkResponseStateWidget(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29) {
+ var _ = this;
+ _.child = t0;
+ _.onTap = t1;
+ _.onTapDown = t2;
+ _.onTapCancel = t3;
+ _.onDoubleTap = t4;
+ _.onLongPress = t5;
+ _.onHighlightChanged = t6;
+ _.onHover = t7;
+ _.mouseCursor = t8;
+ _.containedInkWell = t9;
+ _.highlightShape = t10;
+ _.radius = t11;
+ _.borderRadius = t12;
+ _.customBorder = t13;
+ _.focusColor = t14;
+ _.hoverColor = t15;
+ _.highlightColor = t16;
+ _.overlayColor = t17;
+ _.splashColor = t18;
+ _.splashFactory = t19;
+ _.enableFeedback = t20;
+ _.excludeFromSemantics = t21;
+ _.onFocusChange = t22;
+ _.autofocus = t23;
+ _.focusNode = t24;
+ _.canRequestFocus = t25;
+ _.parentState = t26;
+ _.getRectCallback = t27;
+ _.debugCheckContext = t28;
+ _.key = t29;
+ },
+ _HighlightType: function _HighlightType(t0) {
+ this._ink_well$_name = t0;
+ },
+ _InkResponseState: function _InkResponseState(t0, t1, t2, t3) {
+ var _ = this;
+ _._currentSplash = _._splashes = null;
+ _._hovering = false;
+ _._highlights = t0;
+ _.___InkResponseState__actionMap = null;
+ _.___InkResponseState__actionMap_isSet = false;
+ _._activeChildren = t1;
+ _._hasFocus = false;
+ _.AutomaticKeepAliveClientMixin__keepAliveHandle = t2;
+ _._widget = null;
+ _._debugLifecycleState = t3;
+ _._framework$_element = null;
+ },
+ _InkResponseState_highlightsExist_closure: function _InkResponseState_highlightsExist_closure() {
+ },
+ _InkResponseState_updateHighlight_handleInkRemoval: function _InkResponseState_updateHighlight_handleInkRemoval(t0, t1) {
+ this.$this = t0;
+ this.type = t1;
+ },
+ _InkResponseState__createInkFeature_onRemoved: function _InkResponseState__createInkFeature_onRemoved(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ _InkResponseState__handleFocusHighlightModeChange_closure: function _InkResponseState__handleFocusHighlightModeChange_closure(t0) {
+ this.$this = t0;
+ },
+ InkWell: function InkWell(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26) {
+ var _ = this;
+ _.child = t0;
+ _.onTap = t1;
+ _.onTapDown = t2;
+ _.onTapCancel = t3;
+ _.onDoubleTap = t4;
+ _.onLongPress = t5;
+ _.onHighlightChanged = t6;
+ _.onHover = t7;
+ _.mouseCursor = t8;
+ _.containedInkWell = t9;
+ _.highlightShape = t10;
+ _.radius = t11;
+ _.borderRadius = t12;
+ _.customBorder = t13;
+ _.focusColor = t14;
+ _.hoverColor = t15;
+ _.highlightColor = t16;
+ _.overlayColor = t17;
+ _.splashColor = t18;
+ _.splashFactory = t19;
+ _.enableFeedback = t20;
+ _.excludeFromSemantics = t21;
+ _.onFocusChange = t22;
+ _.autofocus = t23;
+ _.focusNode = t24;
+ _.canRequestFocus = t25;
+ _.key = t26;
+ },
+ __InkResponseState_State_AutomaticKeepAliveClientMixin: function __InkResponseState_State_AutomaticKeepAliveClientMixin() {
+ },
+ PopupMenuThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.color;
+ t3 = b == null;
+ t2 = P.Color_lerp(t2, t3 ? _null : b.color, t);
+ t4 = t1 ? _null : a.shape;
+ t4 = Y.ShapeBorder_lerp(t4, t3 ? _null : b.shape, t);
+ t5 = t1 ? _null : a.elevation;
+ t5 = P.lerpDouble(t5, t3 ? _null : b.elevation, t);
+ t1 = t1 ? _null : a.textStyle;
+ return new R.PopupMenuThemeData(t2, t4, t5, A.TextStyle_lerp(t1, t3 ? _null : b.textStyle, t));
+ },
+ PopupMenuThemeData: function PopupMenuThemeData(t0, t1, t2, t3) {
+ var _ = this;
+ _.color = t0;
+ _.shape = t1;
+ _.elevation = t2;
+ _.textStyle = t3;
+ },
+ _PopupMenuThemeData_Object_Diagnosticable: function _PopupMenuThemeData_Object_Diagnosticable() {
+ },
+ TextSelectionThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.cursorColor;
+ t3 = b == null;
+ t2 = P.Color_lerp(t2, t3 ? _null : b.cursorColor, t);
+ t4 = t1 ? _null : a.selectionColor;
+ t4 = P.Color_lerp(t4, t3 ? _null : b.selectionColor, t);
+ t1 = t1 ? _null : a.selectionHandleColor;
+ return new R.TextSelectionThemeData(t2, t4, P.Color_lerp(t1, t3 ? _null : b.selectionHandleColor, t));
+ },
+ TextSelectionTheme_of: function(context) {
+ var t1;
+ context.dependOnInheritedWidgetOfExactType$1$0(type$.TextSelectionTheme);
+ t1 = K.Theme_of(context);
+ return t1.textSelectionTheme;
+ },
+ TextSelectionThemeData: function TextSelectionThemeData(t0, t1, t2) {
+ this.cursorColor = t0;
+ this.selectionColor = t1;
+ this.selectionHandleColor = t2;
+ },
+ _TextSelectionThemeData_Object_Diagnosticable: function _TextSelectionThemeData_Object_Diagnosticable() {
+ },
+ TextTheme$: function(bodyText1, bodyText2, button, caption, headline1, headline2, headline3, headline4, headline5, headline6, overline, subtitle1, subtitle2) {
+ var _null = null,
+ t1 = headline1 == null ? _null : headline1,
+ t2 = headline2 == null ? _null : headline2,
+ t3 = headline3 == null ? _null : headline3,
+ t4 = headline4 == null ? _null : headline4,
+ t5 = headline5 == null ? _null : headline5,
+ t6 = headline6 == null ? _null : headline6,
+ t7 = subtitle1 == null ? _null : subtitle1,
+ t8 = subtitle2 == null ? _null : subtitle2,
+ t9 = bodyText1 == null ? _null : bodyText1;
+ return new R.TextTheme(t1, t2, t3, t4, t5, t6, t7, t8, t9, bodyText2 == null ? _null : bodyText2, caption, button, overline);
+ },
+ TextTheme_lerp: function(a, b, t) {
+ var t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, _null = null,
+ t1 = a == null,
+ t2 = t1 ? _null : a.headline1,
+ t3 = b == null;
+ t2 = A.TextStyle_lerp(t2, t3 ? _null : b.headline1, t);
+ t4 = t1 ? _null : a.headline2;
+ t4 = A.TextStyle_lerp(t4, t3 ? _null : b.headline2, t);
+ t5 = t1 ? _null : a.headline3;
+ t5 = A.TextStyle_lerp(t5, t3 ? _null : b.headline3, t);
+ t6 = t1 ? _null : a.headline4;
+ t6 = A.TextStyle_lerp(t6, t3 ? _null : b.headline4, t);
+ t7 = t1 ? _null : a.headline5;
+ t7 = A.TextStyle_lerp(t7, t3 ? _null : b.headline5, t);
+ t8 = t1 ? _null : a.headline6;
+ t8 = A.TextStyle_lerp(t8, t3 ? _null : b.headline6, t);
+ t9 = t1 ? _null : a.subtitle1;
+ t9 = A.TextStyle_lerp(t9, t3 ? _null : b.subtitle1, t);
+ t10 = t1 ? _null : a.subtitle2;
+ t10 = A.TextStyle_lerp(t10, t3 ? _null : b.subtitle2, t);
+ t11 = t1 ? _null : a.bodyText1;
+ t11 = A.TextStyle_lerp(t11, t3 ? _null : b.bodyText1, t);
+ t12 = t1 ? _null : a.bodyText2;
+ t12 = A.TextStyle_lerp(t12, t3 ? _null : b.bodyText2, t);
+ t13 = t1 ? _null : a.caption;
+ t13 = A.TextStyle_lerp(t13, t3 ? _null : b.caption, t);
+ t14 = t1 ? _null : a.button;
+ t14 = A.TextStyle_lerp(t14, t3 ? _null : b.button, t);
+ t1 = t1 ? _null : a.overline;
+ return R.TextTheme$(t11, t12, t14, t13, t2, t4, t5, t6, t7, t8, A.TextStyle_lerp(t1, t3 ? _null : b.overline, t), t9, t10);
+ },
+ TextTheme: function TextTheme(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
+ var _ = this;
+ _.headline1 = t0;
+ _.headline2 = t1;
+ _.headline3 = t2;
+ _.headline4 = t3;
+ _.headline5 = t4;
+ _.headline6 = t5;
+ _.subtitle1 = t6;
+ _.subtitle2 = t7;
+ _.bodyText1 = t8;
+ _.bodyText2 = t9;
+ _.caption = t10;
+ _.button = t11;
+ _.overline = t12;
+ },
+ _TextTheme_Object_Diagnosticable: function _TextTheme_Object_Diagnosticable() {
+ },
+ ListBodyParentData: function ListBodyParentData(t0, t1, t2) {
+ this.ContainerParentDataMixin_previousSibling = t0;
+ this.ContainerParentDataMixin_nextSibling = t1;
+ this.offset = t2;
+ },
+ RenderListBody: function RenderListBody(t0, t1, t2, t3) {
+ var _ = this;
+ _._list_body$_axisDirection = t0;
+ _.ContainerRenderObjectMixin__childCount = t1;
+ _.ContainerRenderObjectMixin__firstChild = t2;
+ _.ContainerRenderObjectMixin__lastChild = t3;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderListBody_computeMinIntrinsicWidth_closure: function RenderListBody_computeMinIntrinsicWidth_closure(t0) {
+ this.height = t0;
+ },
+ RenderListBody_computeMinIntrinsicWidth_closure0: function RenderListBody_computeMinIntrinsicWidth_closure0(t0) {
+ this.height = t0;
+ },
+ RenderListBody_computeMaxIntrinsicWidth_closure: function RenderListBody_computeMaxIntrinsicWidth_closure(t0) {
+ this.height = t0;
+ },
+ RenderListBody_computeMaxIntrinsicWidth_closure0: function RenderListBody_computeMaxIntrinsicWidth_closure0(t0) {
+ this.height = t0;
+ },
+ RenderListBody_computeMinIntrinsicHeight_closure: function RenderListBody_computeMinIntrinsicHeight_closure(t0) {
+ this.width = t0;
+ },
+ RenderListBody_computeMinIntrinsicHeight_closure0: function RenderListBody_computeMinIntrinsicHeight_closure0(t0) {
+ this.width = t0;
+ },
+ RenderListBody_computeMaxIntrinsicHeight_closure: function RenderListBody_computeMaxIntrinsicHeight_closure(t0) {
+ this.width = t0;
+ },
+ RenderListBody_computeMaxIntrinsicHeight_closure0: function RenderListBody_computeMaxIntrinsicHeight_closure0(t0) {
+ this.width = t0;
+ },
+ _RenderListBody_RenderBox_ContainerRenderObjectMixin: function _RenderListBody_RenderBox_ContainerRenderObjectMixin() {
+ },
+ _RenderListBody_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin: function _RenderListBody_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin() {
+ },
+ PlatformViewsRegistry: function PlatformViewsRegistry() {
+ this._nextPlatformViewId = 0;
+ },
+ PlatformViewController: function PlatformViewController() {
+ },
+ RawKeyEventDataIos: function RawKeyEventDataIos(t0, t1, t2, t3) {
+ var _ = this;
+ _.characters = t0;
+ _.charactersIgnoringModifiers = t1;
+ _.keyCode = t2;
+ _.modifiers = t3;
+ },
+ RawKeyEventDataIos_getModifierSide_findSide: function RawKeyEventDataIos_getModifierSide_findSide(t0) {
+ this.$this = t0;
+ },
+ RawKeyEventDataWindows: function RawKeyEventDataWindows(t0, t1, t2, t3) {
+ var _ = this;
+ _.keyCode = t0;
+ _.scanCode = t1;
+ _.characterCodePoint = t2;
+ _.modifiers = t3;
+ },
+ RawKeyEventDataWindows_getModifierSide_findSide: function RawKeyEventDataWindows_getModifierSide_findSide(t0) {
+ this.$this = t0;
+ },
+ ScrollPositionWithSingleContext$: function(context, debugLabel, initialPixels, keepScrollOffset, oldPosition, physics) {
+ var t1 = type$.LinkedList__ListenerEntry;
+ t1 = new R.ScrollPositionWithSingleContext(C.ScrollDirection_0, physics, context, true, debugLabel, new B.ValueNotifier(false, new P.LinkedList(t1)), new P.LinkedList(t1));
+ t1.ScrollPosition$5$context$debugLabel$keepScrollOffset$oldPosition$physics(context, debugLabel, true, oldPosition, physics);
+ if (t1._pixels == null && true)
+ t1._pixels = initialPixels;
+ if (t1._activity == null)
+ t1.beginActivity$1(new M.IdleScrollActivity(t1));
+ return t1;
+ },
+ ScrollPositionWithSingleContext: function ScrollPositionWithSingleContext(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._heldPreviousVelocity = 0;
+ _._userScrollDirection = t0;
+ _._currentDrag = null;
+ _.physics = t1;
+ _.context = t2;
+ _.keepScrollOffset = t3;
+ _.debugLabel = t4;
+ _._scroll_position$_viewportDimension = _._pixels = _._maxScrollExtent = _._minScrollExtent = null;
+ _._haveDimensions = false;
+ _._didChangeViewportDimensionOrReceiveCorrection = true;
+ _._pendingDimensions = false;
+ _._semanticActions = _._lastMetrics = null;
+ _.isScrollingNotifier = t5;
+ _._activity = null;
+ _.ChangeNotifier__listeners = t6;
+ },
+ MediaStreamWeb: function MediaStreamWeb(t0, t1, t2) {
+ this.jsStream = t0;
+ this._media_stream$_id = t1;
+ this._ownerTag = t2;
+ },
+ MediaStreamWeb_getAudioTracks_closure: function MediaStreamWeb_getAudioTracks_closure(t0) {
+ this.audioTracks = t0;
+ },
+ MediaStreamWeb_getVideoTracks_closure: function MediaStreamWeb_getVideoTracks_closure(t0) {
+ this.audioTracks = t0;
+ },
+ MediaStreamWeb_dispose_closure: function MediaStreamWeb_dispose_closure() {
+ },
+ RTCVideoView$: function(_renderer, mirror) {
+ return new R.RTCVideoView(_renderer, mirror, null);
+ },
+ RTCVideoView: function RTCVideoView(t0, t1, t2) {
+ this._renderer = t0;
+ this.mirror = t1;
+ this.key = t2;
+ },
+ _RTCVideoViewState: function _RTCVideoViewState(t0) {
+ this._widget = null;
+ this._debugLifecycleState = t0;
+ this._framework$_element = null;
+ },
+ _RTCVideoViewState_initState_closure: function _RTCVideoViewState_initState_closure(t0) {
+ this.$this = t0;
+ },
+ _RTCVideoViewState_initState__closure: function _RTCVideoViewState_initState__closure() {
+ },
+ _RTCVideoViewState_build_closure: function _RTCVideoViewState_build_closure(t0) {
+ this.$this = t0;
+ },
+ MediaType_MediaType$parse: function(mediaType) {
+ return B.wrapFormatException("media type", mediaType, new R.MediaType_MediaType$parse_closure(mediaType));
+ },
+ MediaType$: function(type, subtype, parameters) {
+ var t1 = type.toLowerCase(),
+ t2 = subtype.toLowerCase(),
+ t3 = type$.legacy_String;
+ t3 = parameters == null ? P.LinkedHashMap_LinkedHashMap$_empty(t3, t3) : Z.CaseInsensitiveMap$from(parameters, t3);
+ return new R.MediaType(t1, t2, new P.UnmodifiableMapView(t3, type$.UnmodifiableMapView_of_legacy_String_and_legacy_String));
+ },
+ MediaType: function MediaType(t0, t1, t2) {
+ this.type = t0;
+ this.subtype = t1;
+ this.parameters = t2;
+ },
+ MediaType_MediaType$parse_closure: function MediaType_MediaType$parse_closure(t0) {
+ this.mediaType = t0;
+ },
+ MediaType_toString_closure: function MediaType_toString_closure(t0) {
+ this.buffer = t0;
+ },
+ MediaType_toString__closure: function MediaType_toString__closure() {
+ },
+ ElevationOverlay_applyOverlay: function(context, color, elevation) {
+ var theme = K.Theme_of(context);
+ if (elevation > 0)
+ theme.toString;
+ return color;
+ }
+ },
+ E = {
+ CupertinoDynamicColor_maybeResolve: function(resolvable, context) {
+ if (resolvable == null)
+ return null;
+ return resolvable instanceof E.CupertinoDynamicColor ? resolvable.resolveFrom$1(context) : resolvable;
+ },
+ CupertinoDynamicColor: function CupertinoDynamicColor(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) {
+ var _ = this;
+ _._effectiveColor = t0;
+ _._colors$_debugLabel = t1;
+ _._debugResolveContext = t2;
+ _.color = t3;
+ _.darkColor = t4;
+ _.highContrastColor = t5;
+ _.darkHighContrastColor = t6;
+ _.elevatedColor = t7;
+ _.darkElevatedColor = t8;
+ _.highContrastElevatedColor = t9;
+ _.darkHighContrastElevatedColor = t10;
+ _.value = t11;
+ },
+ CupertinoDynamicColor_toString_toString: function CupertinoDynamicColor_toString_toString(t0) {
+ this.$this = t0;
+ },
+ _CupertinoDynamicColor_Color_Diagnosticable: function _CupertinoDynamicColor_Color_Diagnosticable() {
+ },
+ AppBar$: function(actions, title) {
+ return new E.AppBar(title, actions, new P.Size(1 / 0, 56), null);
+ },
+ _ToolbarContainerLayout: function _ToolbarContainerLayout(t0) {
+ this.toolbarHeight = t0;
+ },
+ AppBar: function AppBar(t0, t1, t2, t3) {
+ var _ = this;
+ _.title = t0;
+ _.actions = t1;
+ _.preferredSize = t2;
+ _.key = t3;
+ },
+ _AppBarState: function _AppBarState(t0) {
+ this._widget = null;
+ this._debugLifecycleState = t0;
+ this._framework$_element = null;
+ },
+ _AppBarTitleBox: function _AppBarTitleBox(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ _RenderAppBarTitleBox: function _RenderAppBarTitleBox(t0, t1, t2) {
+ var _ = this;
+ _._shifted_box$_resolvedAlignment = null;
+ _._shifted_box$_alignment = t0;
+ _._shifted_box$_textDirection = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ MaterialColor: function MaterialColor(t0, t1) {
+ this._swatch = t0;
+ this.value = t1;
+ },
+ _buildMaterialDialogTransitions: function(context, animation, secondaryAnimation, child) {
+ return K.FadeTransition$(false, child, S.CurvedAnimation$(C.Cubic_xDo0, animation, null));
+ },
+ showDialog: function(builder, context, $T) {
+ var themes, t2, t3, t4, t5, t6, _null = null,
+ t1 = K.Navigator_of(context, true)._framework$_element;
+ t1.toString;
+ themes = M.InheritedTheme_capture(context, t1);
+ L.Localizations_of(context, C.Type_MaterialLocalizations_flR, type$.MaterialLocalizations).toString;
+ t1 = K.Navigator_of(context, true);
+ t1.toString;
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_of_Future_bool_Function);
+ t3 = $.Zone__current;
+ t4 = S.ProxyAnimation$(C.C__AlwaysDismissedAnimation);
+ t5 = H.setRuntimeTypeInfo([], type$.JSArray_OverlayEntry);
+ t6 = $.Zone__current;
+ return t1.push$1(new T._DialogRoute(new E.showDialog_closure(_null, builder, themes, true), true, "Dismiss", C.Color_2315255808, C.Duration_150000, E.dialog___buildMaterialDialogTransitions$closure(), _null, t2, new N.LabeledGlobalKey(_null, $T._eval$1("LabeledGlobalKey<_ModalScopeState<0>>")), new N.LabeledGlobalKey(_null, type$.LabeledGlobalKey_State_StatefulWidget), new S.PageStorageBucket(), _null, new P._AsyncCompleter(new P._Future(t3, $T._eval$1("_Future<0?>")), $T._eval$1("_AsyncCompleter<0?>")), t4, t5, C.RouteSettings_null_null, new B.ValueNotifier(_null, new P.LinkedList(type$.LinkedList__ListenerEntry)), new P._AsyncCompleter(new P._Future(t6, $T._eval$1("_Future<0?>")), $T._eval$1("_AsyncCompleter<0?>")), $T._eval$1("_DialogRoute<0>")));
+ },
+ Dialog: function Dialog(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.elevation = t1;
+ _.insetPadding = t2;
+ _.clipBehavior = t3;
+ _.shape = t4;
+ _.child = t5;
+ _.key = t6;
+ },
+ AlertDialog: function AlertDialog(t0, t1, t2, t3) {
+ var _ = this;
+ _.title = t0;
+ _.content = t1;
+ _.actions = t2;
+ _.key = t3;
+ },
+ showDialog_closure: function showDialog_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.child = t0;
+ _.builder = t1;
+ _.themes = t2;
+ _.useSafeArea = t3;
+ },
+ FloatingActionButton$: function(backgroundColor, child, mini, onPressed, tooltip) {
+ return new E.FloatingActionButton(child, tooltip, backgroundColor, onPressed, mini ? C.BoxConstraints_40_40_40_40 : C.BoxConstraints_56_56_56_56, null);
+ },
+ _DefaultHeroTag: function _DefaultHeroTag() {
+ },
+ FloatingActionButton: function FloatingActionButton(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.child = t0;
+ _.tooltip = t1;
+ _.backgroundColor = t2;
+ _.onPressed = t3;
+ _._sizeConstraints = t4;
+ _.key = t5;
+ },
+ NavigationRailThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.backgroundColor;
+ t3 = b == null;
+ t2 = P.Color_lerp(t2, t3 ? _null : b.backgroundColor, t);
+ t4 = t1 ? _null : a.elevation;
+ t4 = P.lerpDouble(t4, t3 ? _null : b.elevation, t);
+ t5 = t1 ? _null : a.unselectedLabelTextStyle;
+ t5 = A.TextStyle_lerp(t5, t3 ? _null : b.unselectedLabelTextStyle, t);
+ t6 = t1 ? _null : a.selectedLabelTextStyle;
+ t6 = A.TextStyle_lerp(t6, t3 ? _null : b.selectedLabelTextStyle, t);
+ t7 = t1 ? _null : a.unselectedIconTheme;
+ t7 = T.IconThemeData_lerp(t7, t3 ? _null : b.unselectedIconTheme, t);
+ t8 = t1 ? _null : a.selectedIconTheme;
+ t8 = T.IconThemeData_lerp(t8, t3 ? _null : b.selectedIconTheme, t);
+ t9 = t1 ? _null : a.groupAlignment;
+ t9 = P.lerpDouble(t9, t3 ? _null : b.groupAlignment, t);
+ if (t < 0.5)
+ t1 = t1 ? _null : a.labelType;
+ else
+ t1 = t3 ? _null : b.labelType;
+ return new E.NavigationRailThemeData(t2, t4, t5, t6, t7, t8, t9, t1);
+ },
+ NavigationRailThemeData: function NavigationRailThemeData(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.elevation = t1;
+ _.unselectedLabelTextStyle = t2;
+ _.selectedLabelTextStyle = t3;
+ _.unselectedIconTheme = t4;
+ _.selectedIconTheme = t5;
+ _.groupAlignment = t6;
+ _.labelType = t7;
+ },
+ _NavigationRailThemeData_Object_Diagnosticable: function _NavigationRailThemeData_Object_Diagnosticable() {
+ },
+ ColorSwatch: function ColorSwatch() {
+ },
+ ImageCache: function ImageCache(t0, t1, t2) {
+ var _ = this;
+ _._pendingImages = t0;
+ _._image_cache$_cache = t1;
+ _._liveImages = t2;
+ _._currentSizeBytes = 0;
+ },
+ RenderConstrainedBox$: function(additionalConstraints) {
+ var t1 = new E.RenderConstrainedBox(additionalConstraints, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ RenderIntrinsicWidth__applyStep: function(input, step) {
+ return input;
+ },
+ RenderProxyBox: function RenderProxyBox() {
+ },
+ RenderProxyBoxMixin: function RenderProxyBoxMixin() {
+ },
+ HitTestBehavior: function HitTestBehavior(t0) {
+ this._proxy_box$_name = t0;
+ },
+ RenderProxyBoxWithHitTestBehavior: function RenderProxyBoxWithHitTestBehavior() {
+ },
+ RenderConstrainedBox: function RenderConstrainedBox(t0, t1) {
+ var _ = this;
+ _._additionalConstraints = t0;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderLimitedBox: function RenderLimitedBox(t0, t1, t2) {
+ var _ = this;
+ _._proxy_box$_maxWidth = t0;
+ _._maxHeight = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderIntrinsicWidth: function RenderIntrinsicWidth(t0, t1, t2) {
+ var _ = this;
+ _._stepWidth = t0;
+ _._stepHeight = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderOpacity: function RenderOpacity(t0, t1, t2, t3) {
+ var _ = this;
+ _._alpha = t0;
+ _._opacity = t1;
+ _._alwaysIncludeSemantics = t2;
+ _.RenderObjectWithChildMixin__child = t3;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderAnimatedOpacityMixin: function RenderAnimatedOpacityMixin() {
+ },
+ RenderAnimatedOpacity: function RenderAnimatedOpacity(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.RenderAnimatedOpacityMixin__alpha = t0;
+ _.RenderAnimatedOpacityMixin__currentlyNeedsCompositing = t1;
+ _.RenderAnimatedOpacityMixin__opacity = t2;
+ _.RenderAnimatedOpacityMixin__alwaysIncludeSemantics = t3;
+ _.RenderObjectWithChildMixin__child = t4;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ CustomClipper: function CustomClipper() {
+ },
+ ShapeBorderClipper: function ShapeBorderClipper(t0, t1) {
+ this.shape = t0;
+ this.textDirection = t1;
+ },
+ _RenderCustomClip: function _RenderCustomClip() {
+ },
+ RenderClipRect: function RenderClipRect(t0, t1, t2) {
+ var _ = this;
+ _._clipper = t0;
+ _._clip = null;
+ _._proxy_box$_clipBehavior = t1;
+ _._debugText = _._debugPaint = null;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderClipPath: function RenderClipPath(t0, t1, t2) {
+ var _ = this;
+ _._clipper = t0;
+ _._clip = null;
+ _._proxy_box$_clipBehavior = t1;
+ _._debugText = _._debugPaint = null;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderPhysicalModelBase: function _RenderPhysicalModelBase() {
+ },
+ RenderPhysicalModel: function RenderPhysicalModel(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._proxy_box$_shape = t0;
+ _._proxy_box$_borderRadius = t1;
+ _._proxy_box$_elevation = t2;
+ _._proxy_box$_shadowColor = t3;
+ _._proxy_box$_color = t4;
+ _._clipper = t5;
+ _._clip = null;
+ _._proxy_box$_clipBehavior = t6;
+ _._debugText = _._debugPaint = null;
+ _.RenderObjectWithChildMixin__child = t7;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderPhysicalShape: function RenderPhysicalShape(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._proxy_box$_elevation = t0;
+ _._proxy_box$_shadowColor = t1;
+ _._proxy_box$_color = t2;
+ _._clipper = t3;
+ _._clip = null;
+ _._proxy_box$_clipBehavior = t4;
+ _._debugText = _._debugPaint = null;
+ _.RenderObjectWithChildMixin__child = t5;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ DecorationPosition: function DecorationPosition(t0) {
+ this._proxy_box$_name = t0;
+ },
+ RenderDecoratedBox: function RenderDecoratedBox(t0, t1, t2, t3) {
+ var _ = this;
+ _._proxy_box$_painter = null;
+ _._proxy_box$_decoration = t0;
+ _._proxy_box$_position = t1;
+ _._proxy_box$_configuration = t2;
+ _.RenderObjectWithChildMixin__child = t3;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderTransform: function RenderTransform(t0, t1) {
+ var _ = this;
+ _._proxy_box$_textDirection = _._proxy_box$_alignment = _._origin = null;
+ _.transformHitTests = t0;
+ _._proxy_box$_transform = null;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderTransform_hitTestChildren_closure: function RenderTransform_hitTestChildren_closure(t0) {
+ this.$this = t0;
+ },
+ RenderFractionalTranslation: function RenderFractionalTranslation(t0, t1, t2) {
+ var _ = this;
+ _._translation = t0;
+ _.transformHitTests = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderFractionalTranslation_hitTestChildren_closure: function RenderFractionalTranslation_hitTestChildren_closure(t0) {
+ this.$this = t0;
+ },
+ RenderPointerListener: function RenderPointerListener(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.onPointerDown = t0;
+ _.onPointerMove = t1;
+ _.onPointerUp = t2;
+ _.onPointerHover = t3;
+ _.onPointerCancel = t4;
+ _.onPointerSignal = t5;
+ _.behavior = t6;
+ _.RenderObjectWithChildMixin__child = t7;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderMouseRegion: function RenderMouseRegion(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._proxy_box$_opaque = t0;
+ _.onEnter = t1;
+ _.onHover = t2;
+ _.onExit = t3;
+ _._cursor = t4;
+ _.RenderObjectWithChildMixin__child = t5;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderRepaintBoundary: function RenderRepaintBoundary(t0) {
+ var _ = this;
+ _._debugAsymmetricPaintCount = _._debugSymmetricPaintCount = 0;
+ _.RenderObjectWithChildMixin__child = t0;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderIgnorePointer: function RenderIgnorePointer(t0, t1, t2) {
+ var _ = this;
+ _._ignoring = t0;
+ _._ignoringSemantics = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderOffstage: function RenderOffstage(t0, t1) {
+ var _ = this;
+ _._proxy_box$_offstage = t0;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderAbsorbPointer: function RenderAbsorbPointer(t0, t1, t2) {
+ var _ = this;
+ _._absorbing = t0;
+ _._ignoringSemantics = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderSemanticsGestureHandler: function RenderSemanticsGestureHandler(t0) {
+ var _ = this;
+ _._onVerticalDragUpdate = _._onHorizontalDragUpdate = _._onLongPress = _._onTap = _._validActions = null;
+ _.RenderObjectWithChildMixin__child = t0;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderSemanticsAnnotations: function RenderSemanticsAnnotations(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54) {
+ var _ = this;
+ _._container = t0;
+ _._explicitChildNodes = t1;
+ _._excludeSemantics = t2;
+ _._checked = t3;
+ _._enabled = t4;
+ _._selected = t5;
+ _._button = t6;
+ _._slider = t7;
+ _._link = t8;
+ _._header = t9;
+ _._textField = t10;
+ _._proxy_box$_readOnly = t11;
+ _._focusable = t12;
+ _._focused = t13;
+ _._inMutuallyExclusiveGroup = t14;
+ _._obscured = t15;
+ _._multiline = t16;
+ _._scopesRoute = t17;
+ _._namesRoute = t18;
+ _._hidden = t19;
+ _._image = t20;
+ _._liveRegion = t21;
+ _._proxy_box$_maxValueLength = t22;
+ _._currentValueLength = t23;
+ _._toggled = t24;
+ _._label = t25;
+ _._proxy_box$_value = t26;
+ _._proxy_box$_increasedValue = t27;
+ _._proxy_box$_decreasedValue = t28;
+ _._proxy_box$_hint = t29;
+ _._hintOverrides = t30;
+ _._proxy_box$_textDirection = t31;
+ _._sortKey = t32;
+ _._tagForChildren = t33;
+ _._onTap = t34;
+ _._onDismiss = t35;
+ _._onLongPress = t36;
+ _._onScrollLeft = t37;
+ _._onScrollRight = t38;
+ _._onScrollUp = t39;
+ _._onScrollDown = t40;
+ _._onIncrease = t41;
+ _._onDecrease = t42;
+ _._onCopy = t43;
+ _._onCut = t44;
+ _._onPaste = t45;
+ _._onMoveCursorForwardByCharacter = t46;
+ _._onMoveCursorBackwardByCharacter = t47;
+ _._onMoveCursorForwardByWord = t48;
+ _._onMoveCursorBackwardByWord = t49;
+ _._onSetSelection = t50;
+ _._onDidGainAccessibilityFocus = t51;
+ _._onDidLoseAccessibilityFocus = t52;
+ _._proxy_box$_customSemanticsActions = t53;
+ _.RenderObjectWithChildMixin__child = t54;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderBlockSemantics: function RenderBlockSemantics(t0, t1) {
+ var _ = this;
+ _._blocking = t0;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderMergeSemantics: function RenderMergeSemantics(t0) {
+ var _ = this;
+ _.RenderObjectWithChildMixin__child = t0;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderExcludeSemantics: function RenderExcludeSemantics(t0, t1) {
+ var _ = this;
+ _._excluding = t0;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderIndexedSemantics: function RenderIndexedSemantics(t0, t1) {
+ var _ = this;
+ _._proxy_box$_index = t0;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderLeaderLayer: function RenderLeaderLayer(t0, t1) {
+ var _ = this;
+ _._link = t0;
+ _._previousLayoutSize = null;
+ _.RenderObjectWithChildMixin__child = t1;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderFollowerLayer: function RenderFollowerLayer(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._link = t0;
+ _._showWhenUnlinked = t1;
+ _._proxy_box$_offset = t2;
+ _._leaderAnchor = t3;
+ _._followerAnchor = t4;
+ _.RenderObjectWithChildMixin__child = t5;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderFollowerLayer_hitTestChildren_closure: function RenderFollowerLayer_hitTestChildren_closure(t0) {
+ this.$this = t0;
+ },
+ RenderAnnotatedRegion: function RenderAnnotatedRegion(t0, t1, t2, t3) {
+ var _ = this;
+ _._proxy_box$_value = t0;
+ _._sized = t1;
+ _.RenderObjectWithChildMixin__child = t2;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ _.$ti = t3;
+ },
+ _RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin: function _RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin() {
+ },
+ _RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin_RenderAnimatedOpacityMixin: function _RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin_RenderAnimatedOpacityMixin() {
+ },
+ _RenderProxyBox_RenderBox_RenderObjectWithChildMixin: function _RenderProxyBox_RenderBox_RenderObjectWithChildMixin() {
+ },
+ _RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin: function _RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin() {
+ },
+ SemanticsEvent: function SemanticsEvent() {
+ },
+ TooltipSemanticsEvent: function TooltipSemanticsEvent(t0, t1) {
+ this.message = t0;
+ this.type = t1;
+ },
+ LongPressSemanticsEvent: function LongPressSemanticsEvent(t0) {
+ this.type = t0;
+ },
+ TapSemanticEvent: function TapSemanticEvent(t0) {
+ this.type = t0;
+ },
+ NavigationToolbar: function NavigationToolbar(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.leading = t0;
+ _.middle = t1;
+ _.trailing = t2;
+ _.centerMiddle = t3;
+ _.middleSpacing = t4;
+ _.key = t5;
+ },
+ _ToolbarSlot: function _ToolbarSlot(t0) {
+ this._navigation_toolbar$_name = t0;
+ },
+ _ToolbarLayout: function _ToolbarLayout(t0, t1, t2) {
+ var _ = this;
+ _.centerMiddle = t0;
+ _.middleSpacing = t1;
+ _.textDirection = t2;
+ _._debugChildrenNeedingLayout = _._idToChild = null;
+ },
+ PrimaryScrollController$none: function(child) {
+ return new E.PrimaryScrollController(null, child, null);
+ },
+ PrimaryScrollController_of: function(context) {
+ var result = context.dependOnInheritedWidgetOfExactType$1$0(type$.PrimaryScrollController);
+ return result == null ? null : result.controller;
+ },
+ PrimaryScrollController: function PrimaryScrollController(t0, t1, t2) {
+ this.controller = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ RTCVideoValue: function RTCVideoValue(t0, t1, t2, t3) {
+ var _ = this;
+ _.width = t0;
+ _.height = t1;
+ _.rotation = t2;
+ _.renderVideo = t3;
+ },
+ VideoRenderer: function VideoRenderer() {
+ },
+ RTCVideoRenderer: function RTCVideoRenderer(t0) {
+ this._rtc_video_renderer$_delegate = t0;
+ },
+ BaseClient: function BaseClient() {
+ },
+ ClientException: function ClientException(t0) {
+ this.message = t0;
+ },
+ PosixStyle: function PosixStyle(t0, t1, t2) {
+ this.separatorPattern = t0;
+ this.needsSeparatorPattern = t1;
+ this.rootPattern = t2;
+ },
+ SharedPreferencesStorePlatform_instance: function(value) {
+ var exception;
+ try {
+ } catch (exception) {
+ if (type$.legacy_NoSuchMethodError._is(H.unwrapException(exception)))
+ throw H.wrapException(P.AssertionError$("Platform interfaces must not be implemented with `implements`"));
+ else
+ throw exception;
+ }
+ $.SharedPreferencesStorePlatform__instance = value;
+ },
+ SharedPreferencesStorePlatform: function SharedPreferencesStorePlatform() {
+ },
+ StringScannerException: function StringScannerException(t0, t1, t2) {
+ this.source = t0;
+ this._span_exception$_message = t1;
+ this._span = t2;
+ },
+ TypedDataBuffer: function TypedDataBuffer() {
+ },
+ _IntBuffer0: function _IntBuffer0() {
+ },
+ Uint8Buffer: function Uint8Buffer(t0, t1) {
+ this._typed_buffer$_buffer = t0;
+ this._typed_buffer$_length = t1;
+ },
+ Matrix4_tryInvert: function(other) {
+ var r = new E.Matrix4(new Float64Array(16));
+ if (r.copyInverse$1(other) === 0)
+ return null;
+ return r;
+ },
+ Matrix4$zero: function() {
+ return new E.Matrix4(new Float64Array(16));
+ },
+ Matrix4_Matrix4$identity: function() {
+ var t1 = new E.Matrix4(new Float64Array(16));
+ t1.setIdentity$0();
+ return t1;
+ },
+ Matrix4_Matrix4$rotationZ: function(radians) {
+ var c, s,
+ t1 = new Float64Array(16);
+ t1[15] = 1;
+ c = Math.cos(radians);
+ s = Math.sin(radians);
+ t1[0] = c;
+ t1[1] = s;
+ t1[2] = 0;
+ t1[4] = -s;
+ t1[5] = c;
+ t1[6] = 0;
+ t1[8] = 0;
+ t1[9] = 0;
+ t1[10] = 1;
+ t1[3] = 0;
+ t1[7] = 0;
+ t1[11] = 0;
+ return new E.Matrix4(t1);
+ },
+ Matrix4_Matrix4$translationValues: function(x, y, z) {
+ var t1 = new Float64Array(16),
+ t2 = new E.Matrix4(t1);
+ t2.setIdentity$0();
+ t1[14] = z;
+ t1[13] = y;
+ t1[12] = x;
+ return t2;
+ },
+ Matrix4_Matrix4$diagonal3Values: function(x, y, z) {
+ var t1 = new Float64Array(16);
+ t1[15] = 1;
+ t1[10] = z;
+ t1[5] = y;
+ t1[0] = x;
+ return new E.Matrix4(t1);
+ },
+ Matrix4: function Matrix4(t0) {
+ this._m4storage = t0;
+ },
+ Vector3: function Vector3(t0) {
+ this._v3storage = t0;
+ },
+ Vector4: function Vector4(t0) {
+ this._v4storage = t0;
+ },
+ debugInstrumentAction: function(description, action, $T) {
+ return E.debugInstrumentAction$body(description, action, $T, $T);
+ },
+ debugInstrumentAction$body: function(description, action, $T, $async$type) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter($async$type),
+ $async$returnValue, t1;
+ var $async$debugInstrumentAction = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = action.call$0();
+ $async$returnValue = t1;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$debugInstrumentAction, $async$completer);
+ },
+ debugFormatDouble: function(value) {
+ if (value == null)
+ return "null";
+ return C.JSNumber_methods.toStringAsFixed$1(value, 1);
+ }
+ },
+ K = {
+ CupertinoUserInterfaceLevel_maybeOf: function(context) {
+ context.dependOnInheritedWidgetOfExactType$1$0(type$.CupertinoUserInterfaceLevel);
+ return null;
+ },
+ CupertinoUserInterfaceLevelData: function CupertinoUserInterfaceLevelData(t0) {
+ this._interface_level$_name = t0;
+ },
+ CupertinoTheme_of: function(context) {
+ var inheritedTheme = context.dependOnInheritedWidgetOfExactType$1$0(type$._InheritedCupertinoTheme),
+ t1 = inheritedTheme == null ? null : inheritedTheme.theme.data;
+ return (t1 == null ? C.CupertinoThemeData_KQb : t1).resolveFrom$1(context);
+ },
+ CupertinoThemeData$_rawWithDefaults: function(brightness, primaryColor, primaryContrastingColor, textTheme, barBackgroundColor, scaffoldBackgroundColor, _defaults) {
+ return new K.CupertinoThemeData(_defaults, brightness, primaryColor, primaryContrastingColor, textTheme, barBackgroundColor, scaffoldBackgroundColor);
+ },
+ CupertinoTheme: function CupertinoTheme(t0, t1, t2) {
+ this.data = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _InheritedCupertinoTheme: function _InheritedCupertinoTheme(t0, t1, t2) {
+ this.theme = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ CupertinoThemeData: function CupertinoThemeData(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._defaults = t0;
+ _.brightness = t1;
+ _.primaryColor = t2;
+ _.primaryContrastingColor = t3;
+ _.textTheme = t4;
+ _.barBackgroundColor = t5;
+ _.scaffoldBackgroundColor = t6;
+ },
+ CupertinoThemeData_resolveFrom_convertColor: function CupertinoThemeData_resolveFrom_convertColor(t0) {
+ this.context = t0;
+ },
+ NoDefaultCupertinoThemeData: function NoDefaultCupertinoThemeData(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.brightness = t0;
+ _.primaryColor = t1;
+ _.primaryContrastingColor = t2;
+ _.textTheme = t3;
+ _.barBackgroundColor = t4;
+ _.scaffoldBackgroundColor = t5;
+ },
+ NoDefaultCupertinoThemeData_resolveFrom_convertColor: function NoDefaultCupertinoThemeData_resolveFrom_convertColor(t0) {
+ this.context = t0;
+ },
+ _CupertinoThemeDefaults: function _CupertinoThemeDefaults(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.brightness = t0;
+ _.primaryColor = t1;
+ _.primaryContrastingColor = t2;
+ _.barBackgroundColor = t3;
+ _.scaffoldBackgroundColor = t4;
+ _.textThemeDefaults = t5;
+ },
+ _CupertinoThemeDefaults_resolveFrom_convertColor: function _CupertinoThemeDefaults_resolveFrom_convertColor(t0) {
+ this.context = t0;
+ },
+ _CupertinoTextThemeDefaults: function _CupertinoTextThemeDefaults(t0, t1) {
+ this.labelColor = t0;
+ this.inactiveGray = t1;
+ },
+ _DefaultCupertinoTextThemeData: function _DefaultCupertinoTextThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) {
+ var _ = this;
+ _.labelColor = t0;
+ _.inactiveGray = t1;
+ _._text_theme$_defaults = t2;
+ _._primaryColor = t3;
+ _._textStyle = t4;
+ _._actionTextStyle = t5;
+ _._tabLabelTextStyle = t6;
+ _._navTitleTextStyle = t7;
+ _._navLargeTitleTextStyle = t8;
+ _._navActionTextStyle = t9;
+ _._pickerTextStyle = t10;
+ _._dateTimePickerTextStyle = t11;
+ },
+ _CupertinoThemeData_NoDefaultCupertinoThemeData_Diagnosticable: function _CupertinoThemeData_NoDefaultCupertinoThemeData_Diagnosticable() {
+ },
+ ForcePressGestureRecognizer$: function(debugOwner) {
+ var t1 = type$.int;
+ return new K.ForcePressGestureRecognizer(C._ForceState_0, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), debugOwner, null, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ ForcePressGestureRecognizer__inverseLerp: function(min, max, t) {
+ var value = (t - min) / (max - min);
+ return !isNaN(value) ? C.JSDouble_methods.clamp$2(value, 0, 1) : value;
+ },
+ _ForceState: function _ForceState(t0) {
+ this._force_press$_name = t0;
+ },
+ ForcePressDetails: function ForcePressDetails(t0) {
+ this.globalPosition = t0;
+ },
+ ForcePressGestureRecognizer: function ForcePressGestureRecognizer(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.__ForcePressGestureRecognizer__lastPosition = _.onEnd = _.onPeak = _.onUpdate = _.onStart = null;
+ _.__ForcePressGestureRecognizer__lastPosition_isSet = false;
+ _.__ForcePressGestureRecognizer__lastPressure = null;
+ _.__ForcePressGestureRecognizer__lastPressure_isSet = false;
+ _._force_press$_state = t0;
+ _._recognizer$_entries = t1;
+ _._trackedPointers = t2;
+ _._team = null;
+ _.debugOwner = t3;
+ _._kindFilter = t4;
+ _._pointerToKind = t5;
+ },
+ ForcePressGestureRecognizer_handleEvent_closure: function ForcePressGestureRecognizer_handleEvent_closure(t0, t1) {
+ this.$this = t0;
+ this.pressure = t1;
+ },
+ ForcePressGestureRecognizer_acceptGesture_closure: function ForcePressGestureRecognizer_acceptGesture_closure(t0) {
+ this.$this = t0;
+ },
+ ForcePressGestureRecognizer_didStopTrackingLastPointer_closure: function ForcePressGestureRecognizer_didStopTrackingLastPointer_closure(t0) {
+ this.$this = t0;
+ },
+ ButtonBar$: function(buttonPadding, children, overflowButtonSpacing, overflowDirection) {
+ return new K.ButtonBar(buttonPadding, overflowDirection, overflowButtonSpacing, children, null);
+ },
+ ButtonBar: function ButtonBar(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.buttonPadding = t0;
+ _.overflowDirection = t1;
+ _.overflowButtonSpacing = t2;
+ _.children = t3;
+ _.key = t4;
+ },
+ ButtonBar_build_closure: function ButtonBar_build_closure(t0) {
+ this.paddingUnit = t0;
+ },
+ _ButtonBarRow: function _ButtonBarRow(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _.overflowButtonSpacing = t0;
+ _.direction = t1;
+ _.mainAxisAlignment = t2;
+ _.mainAxisSize = t3;
+ _.crossAxisAlignment = t4;
+ _.textDirection = t5;
+ _.verticalDirection = t6;
+ _.textBaseline = t7;
+ _.children = t8;
+ _.key = t9;
+ },
+ _RenderButtonBarRow: function _RenderButtonBarRow(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13) {
+ var _ = this;
+ _._hasCheckedLayoutWidth = false;
+ _.overflowButtonSpacing = t0;
+ _._flex$_direction = t1;
+ _._mainAxisAlignment = t2;
+ _._mainAxisSize = t3;
+ _._crossAxisAlignment = t4;
+ _._flex$_textDirection = t5;
+ _._verticalDirection = t6;
+ _._flex$_textBaseline = t7;
+ _._flex$_overflow = null;
+ _._flex$_clipBehavior = t8;
+ _._flex$_clipRectLayer = null;
+ _.DebugOverflowIndicatorMixin__indicatorLabel = t9;
+ _.DebugOverflowIndicatorMixin__overflowReportNeeded = t10;
+ _.ContainerRenderObjectMixin__childCount = t11;
+ _.ContainerRenderObjectMixin__firstChild = t12;
+ _.ContainerRenderObjectMixin__lastChild = t13;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ ChipThemeData$: function(backgroundColor, brightness, checkmarkColor, deleteIconColor, disabledColor, elevation, labelPadding, labelStyle, padding, pressElevation, secondaryLabelStyle, secondarySelectedColor, selectedColor, selectedShadowColor, shadowColor, shape, side) {
+ return new K.ChipThemeData(backgroundColor, deleteIconColor, disabledColor, selectedColor, secondarySelectedColor, shadowColor, selectedShadowColor, checkmarkColor, labelPadding, padding, side, shape, labelStyle, secondaryLabelStyle, brightness, elevation, pressElevation);
+ },
+ ChipThemeData_ChipThemeData$fromDefaults: function(brightness, labelStyle, secondaryColor) {
+ var backgroundColor, deleteIconColor, disabledColor, selectedColor, secondarySelectedColor, secondaryLabelStyle, _null = null,
+ primaryColor = brightness === C.Brightness_1 ? C.Color_4278190080 : C.Color_4294967295,
+ t1 = primaryColor.value,
+ t2 = t1 >>> 16 & 255,
+ t3 = t1 >>> 8 & 255;
+ t1 &= 255;
+ backgroundColor = P.Color$fromARGB(31, t2, t3, t1);
+ deleteIconColor = P.Color$fromARGB(222, t2, t3, t1);
+ disabledColor = P.Color$fromARGB(12, t2, t3, t1);
+ selectedColor = P.Color$fromARGB(61, t2, t3, t1);
+ secondarySelectedColor = P.Color$fromARGB(61, secondaryColor.get$value(secondaryColor) >>> 16 & 255, secondaryColor.get$value(secondaryColor) >>> 8 & 255, secondaryColor.get$value(secondaryColor) & 255);
+ secondaryLabelStyle = labelStyle.copyWith$1$color(P.Color$fromARGB(222, secondaryColor.get$value(secondaryColor) >>> 16 & 255, secondaryColor.get$value(secondaryColor) >>> 8 & 255, secondaryColor.get$value(secondaryColor) & 255));
+ return K.ChipThemeData$(backgroundColor, brightness, _null, deleteIconColor, disabledColor, _null, _null, labelStyle.copyWith$1$color(P.Color$fromARGB(222, t2, t3, t1)), C.EdgeInsets_4_4_4_4, _null, secondaryLabelStyle, secondarySelectedColor, selectedColor, _null, _null, _null, _null);
+ },
+ ChipThemeData_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, _null = null,
+ t1 = a == null;
+ if (t1 && b == null)
+ return _null;
+ t2 = t1 ? _null : a.backgroundColor;
+ t3 = b == null;
+ t2 = P.Color_lerp(t2, t3 ? _null : b.backgroundColor, t);
+ t2.toString;
+ t4 = t1 ? _null : a.deleteIconColor;
+ t4 = P.Color_lerp(t4, t3 ? _null : b.deleteIconColor, t);
+ t5 = t1 ? _null : a.disabledColor;
+ t5 = P.Color_lerp(t5, t3 ? _null : b.disabledColor, t);
+ t5.toString;
+ t6 = t1 ? _null : a.selectedColor;
+ t6 = P.Color_lerp(t6, t3 ? _null : b.selectedColor, t);
+ t6.toString;
+ t7 = t1 ? _null : a.secondarySelectedColor;
+ t7 = P.Color_lerp(t7, t3 ? _null : b.secondarySelectedColor, t);
+ t7.toString;
+ t8 = t1 ? _null : a.shadowColor;
+ t8 = P.Color_lerp(t8, t3 ? _null : b.shadowColor, t);
+ t9 = t1 ? _null : a.selectedShadowColor;
+ t9 = P.Color_lerp(t9, t3 ? _null : b.selectedShadowColor, t);
+ t10 = t1 ? _null : a.checkmarkColor;
+ t10 = P.Color_lerp(t10, t3 ? _null : b.checkmarkColor, t);
+ t11 = t1 ? _null : a.labelPadding;
+ t11 = V.EdgeInsetsGeometry_lerp(t11, t3 ? _null : b.labelPadding, t);
+ t12 = t1 ? _null : a.padding;
+ t12 = V.EdgeInsetsGeometry_lerp(t12, t3 ? _null : b.padding, t);
+ t12.toString;
+ t13 = t1 ? _null : a.side;
+ t13 = K.ChipThemeData__lerpSides(t13, t3 ? _null : b.side, t);
+ t14 = t1 ? _null : a.shape;
+ t14 = K.ChipThemeData__lerpShapes(t14, t3 ? _null : b.shape, t);
+ t15 = t1 ? _null : a.labelStyle;
+ t15 = A.TextStyle_lerp(t15, t3 ? _null : b.labelStyle, t);
+ t15.toString;
+ t16 = t1 ? _null : a.secondaryLabelStyle;
+ t16 = A.TextStyle_lerp(t16, t3 ? _null : b.secondaryLabelStyle, t);
+ t16.toString;
+ if (t < 0.5) {
+ t17 = t1 ? _null : a.brightness;
+ if (t17 == null)
+ t17 = C.Brightness_1;
+ } else {
+ t17 = t3 ? _null : b.brightness;
+ if (t17 == null)
+ t17 = C.Brightness_1;
+ }
+ t18 = t1 ? _null : a.elevation;
+ t18 = P.lerpDouble(t18, t3 ? _null : b.elevation, t);
+ t1 = t1 ? _null : a.pressElevation;
+ return K.ChipThemeData$(t2, t17, t10, t4, t5, t18, t11, t15, t12, P.lerpDouble(t1, t3 ? _null : b.pressElevation, t), t16, t7, t6, t9, t8, t14, t13);
+ },
+ ChipThemeData__lerpSides: function(a, b, t) {
+ var t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1) {
+ t1 = b.color;
+ return Y.BorderSide_lerp(new Y.BorderSide(P.Color$fromARGB(0, t1.get$value(t1) >>> 16 & 255, t1.get$value(t1) >>> 8 & 255, t1.get$value(t1) & 255), 0, C.BorderStyle_1), b, t);
+ }
+ if (b == null) {
+ t1 = a.color;
+ return Y.BorderSide_lerp(new Y.BorderSide(P.Color$fromARGB(0, t1.get$value(t1) >>> 16 & 255, t1.get$value(t1) >>> 8 & 255, t1.get$value(t1) & 255), 0, C.BorderStyle_1), a, t);
+ }
+ return Y.BorderSide_lerp(a, b, t);
+ },
+ ChipThemeData__lerpShapes: function(a, b, t) {
+ if (a == null && b == null)
+ return null;
+ return type$.nullable_OutlinedBorder._as(Y.ShapeBorder_lerp(a, b, t));
+ },
+ ChipThemeData: function ChipThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.deleteIconColor = t1;
+ _.disabledColor = t2;
+ _.selectedColor = t3;
+ _.secondarySelectedColor = t4;
+ _.shadowColor = t5;
+ _.selectedShadowColor = t6;
+ _.checkmarkColor = t7;
+ _.labelPadding = t8;
+ _.padding = t9;
+ _.side = t10;
+ _.shape = t11;
+ _.labelStyle = t12;
+ _.secondaryLabelStyle = t13;
+ _.brightness = t14;
+ _.elevation = t15;
+ _.pressElevation = t16;
+ },
+ _ChipThemeData_Object_Diagnosticable: function _ChipThemeData_Object_Diagnosticable() {
+ },
+ _FadeUpwardsPageTransition: function _FadeUpwardsPageTransition(t0, t1, t2, t3) {
+ var _ = this;
+ _._positionAnimation = t0;
+ _._opacityAnimation = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ PageTransitionsBuilder: function PageTransitionsBuilder() {
+ },
+ FadeUpwardsPageTransitionsBuilder: function FadeUpwardsPageTransitionsBuilder() {
+ },
+ CupertinoPageTransitionsBuilder: function CupertinoPageTransitionsBuilder() {
+ },
+ PageTransitionsTheme: function PageTransitionsTheme() {
+ },
+ PageTransitionsTheme__all_closure: function PageTransitionsTheme__all_closure(t0) {
+ this.builders = t0;
+ },
+ _PageTransitionsTheme_Object_Diagnosticable: function _PageTransitionsTheme_Object_Diagnosticable() {
+ },
+ SnackBarThemeData: function SnackBarThemeData(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.actionTextColor = t1;
+ _.disabledActionTextColor = t2;
+ _.contentTextStyle = t3;
+ _.elevation = t4;
+ _.shape = t5;
+ _.behavior = t6;
+ },
+ _SnackBarThemeData_Object_Diagnosticable: function _SnackBarThemeData_Object_Diagnosticable() {
+ },
+ Theme_of: function(context) {
+ var theme,
+ inheritedTheme = context.dependOnInheritedWidgetOfExactType$1$0(type$._InheritedTheme),
+ category = L.Localizations_of(context, C.Type_MaterialLocalizations_flR, type$.MaterialLocalizations) == null ? null : C.ScriptCategory_0;
+ if (category == null)
+ category = C.ScriptCategory_0;
+ theme = inheritedTheme == null ? null : inheritedTheme.theme.data;
+ if (theme == null)
+ theme = $.$get$Theme__kFallbackTheme();
+ return X.ThemeData_localize(theme, theme.typography.geometryThemeFor$1(category));
+ },
+ Theme: function Theme(t0, t1, t2) {
+ this.data = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _InheritedTheme: function _InheritedTheme(t0, t1, t2) {
+ this.theme = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ ThemeDataTween: function ThemeDataTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ AnimatedTheme: function AnimatedTheme(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.data = t0;
+ _.isMaterialAppTheme = t1;
+ _.child = t2;
+ _.curve = t3;
+ _.duration = t4;
+ _.onEnd = t5;
+ _.key = t6;
+ },
+ _AnimatedThemeState: function _AnimatedThemeState(t0, t1) {
+ var _ = this;
+ _._animation = _._implicit_animations$_controller = _._theme$_data = null;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _AnimatedThemeState_forEachTween_closure: function _AnimatedThemeState_forEachTween_closure() {
+ },
+ AlignmentGeometry_lerp: function(a, b, t) {
+ var t2, t3,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ return b.$mul(0, t);
+ if (b == null)
+ return a.$mul(0, 1 - t);
+ if (a instanceof K.Alignment && b instanceof K.Alignment)
+ return K.Alignment_lerp(a, b, t);
+ if (a instanceof K.AlignmentDirectional && b instanceof K.AlignmentDirectional)
+ return K.AlignmentDirectional_lerp(a, b, t);
+ t1 = P.lerpDouble(a.get$_x(), b.get$_x(), t);
+ t1.toString;
+ t2 = P.lerpDouble(a.get$_alignment$_start(a), b.get$_alignment$_start(b), t);
+ t2.toString;
+ t3 = P.lerpDouble(a.get$_y(), b.get$_y(), t);
+ t3.toString;
+ return new K._MixedAlignment(t1, t2, t3);
+ },
+ Alignment_lerp: function(a, b, t) {
+ var t2,
+ t1 = P.lerpDouble(a.x, b.x, t);
+ t1.toString;
+ t2 = P.lerpDouble(a.y, b.y, t);
+ t2.toString;
+ return new K.Alignment(t1, t2);
+ },
+ Alignment__stringify: function(x, y) {
+ var t2, t3,
+ t1 = x === -1;
+ if (t1 && y === -1)
+ return "Alignment.topLeft";
+ t2 = x === 0;
+ if (t2 && y === -1)
+ return "Alignment.topCenter";
+ t3 = x === 1;
+ if (t3 && y === -1)
+ return "Alignment.topRight";
+ if (t1 && y === 0)
+ return "Alignment.centerLeft";
+ if (t2 && y === 0)
+ return "Alignment.center";
+ if (t3 && y === 0)
+ return "Alignment.centerRight";
+ if (t1 && y === 1)
+ return "Alignment.bottomLeft";
+ if (t2 && y === 1)
+ return "Alignment.bottomCenter";
+ if (t3 && y === 1)
+ return "Alignment.bottomRight";
+ return "Alignment(" + J.toStringAsFixed$1$n(x, 1) + ", " + J.toStringAsFixed$1$n(y, 1) + ")";
+ },
+ AlignmentDirectional_lerp: function(a, b, t) {
+ var t2,
+ t1 = P.lerpDouble(a.start, b.start, t);
+ t1.toString;
+ t2 = P.lerpDouble(a.y, b.y, t);
+ t2.toString;
+ return new K.AlignmentDirectional(t1, t2);
+ },
+ AlignmentDirectional__stringify: function(start, y) {
+ var t2, t3,
+ t1 = start === -1;
+ if (t1 && y === -1)
+ return "AlignmentDirectional.topStart";
+ t2 = start === 0;
+ if (t2 && y === -1)
+ return "AlignmentDirectional.topCenter";
+ t3 = start === 1;
+ if (t3 && y === -1)
+ return "AlignmentDirectional.topEnd";
+ if (t1 && y === 0)
+ return "AlignmentDirectional.centerStart";
+ if (t2 && y === 0)
+ return "AlignmentDirectional.center";
+ if (t3 && y === 0)
+ return "AlignmentDirectional.centerEnd";
+ if (t1 && y === 1)
+ return "AlignmentDirectional.bottomStart";
+ if (t2 && y === 1)
+ return "AlignmentDirectional.bottomCenter";
+ if (t3 && y === 1)
+ return "AlignmentDirectional.bottomEnd";
+ return "AlignmentDirectional(" + J.toStringAsFixed$1$n(start, 1) + ", " + J.toStringAsFixed$1$n(y, 1) + ")";
+ },
+ AlignmentGeometry: function AlignmentGeometry() {
+ },
+ Alignment: function Alignment(t0, t1) {
+ this.x = t0;
+ this.y = t1;
+ },
+ AlignmentDirectional: function AlignmentDirectional(t0, t1) {
+ this.start = t0;
+ this.y = t1;
+ },
+ _MixedAlignment: function _MixedAlignment(t0, t1, t2) {
+ this._x = t0;
+ this._alignment$_start = t1;
+ this._y = t2;
+ },
+ TextAlignVertical: function TextAlignVertical(t0) {
+ this.y = t0;
+ },
+ BorderRadiusGeometry_lerp: function(a, b, t) {
+ var t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ a = C.BorderRadius_tLn;
+ return a.add$1(0, (b == null ? C.BorderRadius_tLn : b).subtract$1(a).$mul(0, t));
+ },
+ BorderRadius$circular: function(radius) {
+ var t1 = new P.Radius(radius, radius);
+ return new K.BorderRadius(t1, t1, t1, t1);
+ },
+ BorderRadius_lerp: function(a, b, t) {
+ var t2, t3, t4,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ return b.$mul(0, t);
+ if (b == null)
+ return a.$mul(0, 1 - t);
+ t1 = P.Radius_lerp(a.topLeft, b.topLeft, t);
+ t1.toString;
+ t2 = P.Radius_lerp(a.topRight, b.topRight, t);
+ t2.toString;
+ t3 = P.Radius_lerp(a.bottomLeft, b.bottomLeft, t);
+ t3.toString;
+ t4 = P.Radius_lerp(a.bottomRight, b.bottomRight, t);
+ t4.toString;
+ return new K.BorderRadius(t1, t2, t3, t4);
+ },
+ BorderRadiusGeometry: function BorderRadiusGeometry() {
+ },
+ BorderRadius: function BorderRadius(t0, t1, t2, t3) {
+ var _ = this;
+ _.topLeft = t0;
+ _.topRight = t1;
+ _.bottomLeft = t2;
+ _.bottomRight = t3;
+ },
+ _MixedBorderRadius: function _MixedBorderRadius(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._topLeft = t0;
+ _._topRight = t1;
+ _._bottomLeft = t2;
+ _._bottomRight = t3;
+ _._topStart = t4;
+ _._topEnd = t5;
+ _._bottomStart = t6;
+ _._bottomEnd = t7;
+ },
+ PaintingContext__repaintCompositedChild: function(child, childContext, debugAlsoPaintedParent) {
+ var t1,
+ childLayer = type$.nullable_OffsetLayer._as(child._layer);
+ if (childLayer == null)
+ child._layer = new T.OffsetLayer(C.Offset_0_0);
+ else
+ childLayer.removeAllChildren$0();
+ t1 = child._layer;
+ t1.toString;
+ childContext = new K.PaintingContext(t1, child.get$paintBounds());
+ child._paintWithContext$2(childContext, C.Offset_0_0);
+ childContext.stopRecordingIfNeeded$0();
+ },
+ RenderObject__cleanChildRelayoutBoundary: function(child) {
+ child._cleanRelayoutBoundary$0();
+ },
+ _SemanticsGeometry__transformRect: function(rect, transform) {
+ var t1;
+ if (rect == null)
+ return null;
+ if (!rect.get$isEmpty(rect)) {
+ t1 = transform._m4storage;
+ t1 = t1[0] === 0 && t1[1] === 0 && t1[2] === 0 && t1[3] === 0 && t1[4] === 0 && t1[5] === 0 && t1[6] === 0 && t1[7] === 0 && t1[8] === 0 && t1[9] === 0 && t1[10] === 0 && t1[11] === 0 && t1[12] === 0 && t1[13] === 0 && t1[14] === 0 && t1[15] === 0;
+ } else
+ t1 = true;
+ if (t1)
+ return C.Rect_0_0_0_0;
+ return T.MatrixUtils_inverseTransformRect(transform, rect);
+ },
+ _SemanticsGeometry__applyIntermediatePaintTransforms: function(ancestor, child, transform, clipRectTransform) {
+ var t2, intermediateParent, t3,
+ t1 = child._node$_parent;
+ t1.toString;
+ t2 = type$.RenderObject;
+ t2._as(t1);
+ for (intermediateParent = t1; intermediateParent !== ancestor; intermediateParent = t1, child = t3) {
+ intermediateParent.applyPaintTransform$2(child, transform);
+ t1 = intermediateParent._node$_parent;
+ t1.toString;
+ t2._as(t1);
+ t3 = child._node$_parent;
+ t3.toString;
+ t2._as(t3);
+ }
+ ancestor.applyPaintTransform$2(child, transform);
+ ancestor.applyPaintTransform$2(child, clipRectTransform);
+ },
+ _SemanticsGeometry__intersectRects: function(a, b) {
+ if (a == null)
+ return b;
+ if (b == null)
+ return a;
+ return a.intersect$1(b);
+ },
+ DiagnosticsDebugCreator$: function(value) {
+ var _null = null;
+ return new K.DiagnosticsDebugCreator(_null, false, true, _null, _null, _null, false, value, C.C__NoDefaultValue, C.DiagnosticLevel_0, "debugCreator", true, true, _null, C.DiagnosticsTreeStyle_8);
+ },
+ ParentData: function ParentData() {
+ },
+ PaintingContext: function PaintingContext(t0, t1) {
+ var _ = this;
+ _._containerLayer = t0;
+ _.estimatedBounds = t1;
+ _._canvas = _._recorder = _._currentLayer = null;
+ },
+ PaintingContext_pushClipRect_closure: function PaintingContext_pushClipRect_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.painter = t1;
+ this.offset = t2;
+ },
+ PaintingContext_pushClipPath_closure: function PaintingContext_pushClipPath_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.painter = t1;
+ this.offset = t2;
+ },
+ Constraints: function Constraints() {
+ },
+ SemanticsHandle: function SemanticsHandle(t0, t1) {
+ this._object$_owner = t0;
+ this.listener = t1;
+ },
+ PipelineOwner: function PipelineOwner(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.onNeedVisualUpdate = t0;
+ _.onSemanticsOwnerCreated = t1;
+ _.onSemanticsOwnerDisposed = t2;
+ _._rootNode = null;
+ _._nodesNeedingLayout = t3;
+ _._debugAllowMutationsToDirtySubtrees = _._debugDoingLayout = false;
+ _._nodesNeedingCompositingBitsUpdate = t4;
+ _._nodesNeedingPaint = t5;
+ _._debugDoingPaint = false;
+ _._semanticsOwner = null;
+ _._outstandingSemanticsHandles = 0;
+ _._debugDoingSemantics = false;
+ _._nodesNeedingSemantics = t6;
+ },
+ PipelineOwner_flushLayout_closure: function PipelineOwner_flushLayout_closure() {
+ },
+ PipelineOwner_flushCompositingBits_closure: function PipelineOwner_flushCompositingBits_closure() {
+ },
+ PipelineOwner_flushPaint_closure: function PipelineOwner_flushPaint_closure() {
+ },
+ PipelineOwner_flushSemantics_closure: function PipelineOwner_flushSemantics_closure() {
+ },
+ RenderObject: function RenderObject() {
+ },
+ RenderObject__debugReportException_closure: function RenderObject__debugReportException_closure(t0) {
+ this.$this = t0;
+ },
+ RenderObject_invokeLayoutCallback_closure: function RenderObject_invokeLayoutCallback_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.callback = t1;
+ this.T = t2;
+ },
+ RenderObject__updateCompositingBits_closure: function RenderObject__updateCompositingBits_closure(t0) {
+ this.$this = t0;
+ },
+ RenderObject_clearSemantics_closure: function RenderObject_clearSemantics_closure() {
+ },
+ RenderObject__getSemanticsForParent_closure: function RenderObject__getSemanticsForParent_closure(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._box_0 = t0;
+ _.$this = t1;
+ _.childrenMergeIntoParent = t2;
+ _.fragments = t3;
+ _.toBeMarkedExplicit = t4;
+ _.config = t5;
+ _.producesForkingFragment = t6;
+ },
+ RenderObjectWithChildMixin: function RenderObjectWithChildMixin() {
+ },
+ ContainerParentDataMixin: function ContainerParentDataMixin() {
+ },
+ ContainerRenderObjectMixin: function ContainerRenderObjectMixin() {
+ },
+ RelayoutWhenSystemFontsChangeMixin: function RelayoutWhenSystemFontsChangeMixin() {
+ },
+ _SemanticsFragment: function _SemanticsFragment() {
+ },
+ _ContainerSemanticsFragment: function _ContainerSemanticsFragment(t0, t1) {
+ this.interestingFragments = t0;
+ this.dropsSemanticsOfPreviousSiblings = t1;
+ },
+ _InterestingSemanticsFragment: function _InterestingSemanticsFragment() {
+ },
+ _RootSemanticsFragment: function _RootSemanticsFragment(t0, t1, t2) {
+ var _ = this;
+ _._object$_children = t0;
+ _._ancestorChain = t1;
+ _._object$_tagsForChildren = null;
+ _.dropsSemanticsOfPreviousSiblings = t2;
+ },
+ _SwitchableSemanticsFragment: function _SwitchableSemanticsFragment(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._mergeIntoParent = t0;
+ _._object$_config = t1;
+ _._isConfigWritable = false;
+ _._object$_children = t2;
+ _._isExplicit = false;
+ _._ancestorChain = t3;
+ _._object$_tagsForChildren = null;
+ _.dropsSemanticsOfPreviousSiblings = t4;
+ },
+ _AbortingSemanticsFragment: function _AbortingSemanticsFragment(t0, t1) {
+ this._ancestorChain = t0;
+ this._object$_tagsForChildren = null;
+ this.dropsSemanticsOfPreviousSiblings = t1;
+ },
+ _SemanticsGeometry: function _SemanticsGeometry() {
+ var _ = this;
+ _.___SemanticsGeometry__transform = _._semanticsClipRect = _._paintClipRect = null;
+ _.___SemanticsGeometry__transform_isSet = false;
+ _.___SemanticsGeometry__rect = null;
+ _._markAsHidden = _.___SemanticsGeometry__rect_isSet = false;
+ },
+ DiagnosticsDebugCreator: function DiagnosticsDebugCreator(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _._description = t0;
+ _.expandableValue = t1;
+ _.allowWrap = t2;
+ _.ifNull = t3;
+ _.ifEmpty = t4;
+ _.tooltip = t5;
+ _.missingIfNull = t6;
+ _._value = t7;
+ _._valueComputed = true;
+ _._diagnostics$_exception = null;
+ _.defaultValue = t8;
+ _._defaultLevel = t9;
+ _.name = t10;
+ _.showSeparator = t11;
+ _.showName = t12;
+ _.linePrefix = t13;
+ _.style = t14;
+ },
+ _RenderObject_AbstractNode_DiagnosticableTreeMixin: function _RenderObject_AbstractNode_DiagnosticableTreeMixin() {
+ },
+ RenderStack_getIntrinsicDimension: function(firstChild, mainChildSizeGetter) {
+ var t1, child, extent, t2;
+ for (t1 = type$.StackParentData, child = firstChild, extent = 0; child != null;) {
+ t2 = child.parentData;
+ t2.toString;
+ t1._as(t2);
+ if (!t2.get$isPositioned())
+ extent = Math.max(extent, H.checkNum(mainChildSizeGetter.call$1(child)));
+ child = t2.ContainerParentDataMixin_nextSibling;
+ }
+ return extent;
+ },
+ RenderStack_layoutPositionedChild: function(child, childParentData, size, alignment) {
+ var t3, t4, childConstraints, t5, hasVisualOverflow, t1 = {},
+ t2 = childParentData.left;
+ if (t2 != null && childParentData.right != null) {
+ t3 = size._dx;
+ t4 = childParentData.right;
+ t4.toString;
+ t2.toString;
+ childConstraints = C.BoxConstraints_mlX2.tighten$1$width(t3 - t4 - t2);
+ } else {
+ t2 = childParentData.width;
+ childConstraints = t2 != null ? C.BoxConstraints_mlX2.tighten$1$width(t2) : C.BoxConstraints_mlX2;
+ }
+ t2 = childParentData.top;
+ if (t2 != null && childParentData.bottom != null) {
+ t3 = size._dy;
+ t4 = childParentData.bottom;
+ t4.toString;
+ t2.toString;
+ childConstraints = childConstraints.tighten$1$height(t3 - t4 - t2);
+ } else {
+ t2 = childParentData.height;
+ if (t2 != null)
+ childConstraints = childConstraints.tighten$1$height(t2);
+ }
+ child.layout$2$parentUsesSize(0, childConstraints, true);
+ t1.x = null;
+ t1._x_isSet = false;
+ t2 = new K.RenderStack_layoutPositionedChild__x_get(t1);
+ t3 = new K.RenderStack_layoutPositionedChild__x_set(t1);
+ t4 = childParentData.left;
+ if (t4 != null)
+ t3.call$1(t4);
+ else {
+ t4 = childParentData.right;
+ t5 = child._size;
+ if (t4 != null)
+ t3.call$1(size._dx - t4 - t5._dx);
+ else {
+ t5.toString;
+ t3.call$1(alignment.alongOffset$1(type$.Offset._as(size.$sub(0, t5)))._dx);
+ }
+ }
+ hasVisualOverflow = (t2.call$0() < 0 || t2.call$0() + child._size._dx > size._dx) && true;
+ t1.y = null;
+ t1._y_isSet = false;
+ t3 = new K.RenderStack_layoutPositionedChild__y_get(t1);
+ t1 = new K.RenderStack_layoutPositionedChild__y_set(t1);
+ t4 = childParentData.top;
+ if (t4 != null)
+ t1.call$1(t4);
+ else {
+ t4 = childParentData.bottom;
+ t5 = child._size;
+ if (t4 != null)
+ t1.call$1(size._dy - t4 - t5._dy);
+ else {
+ t5.toString;
+ t1.call$1(alignment.alongOffset$1(type$.Offset._as(size.$sub(0, t5)))._dy);
+ }
+ }
+ if (t3.call$0() < 0 || t3.call$0() + child._size._dy > size._dy)
+ hasVisualOverflow = true;
+ childParentData.offset = new P.Offset(t2.call$0(), t3.call$0());
+ return hasVisualOverflow;
+ },
+ RelativeRect: function RelativeRect(t0, t1, t2, t3) {
+ var _ = this;
+ _.left = t0;
+ _.top = t1;
+ _.right = t2;
+ _.bottom = t3;
+ },
+ StackParentData: function StackParentData(t0, t1, t2) {
+ var _ = this;
+ _.height = _.width = _.left = _.bottom = _.right = _.top = null;
+ _.ContainerParentDataMixin_previousSibling = t0;
+ _.ContainerParentDataMixin_nextSibling = t1;
+ _.offset = t2;
+ },
+ StackFit: function StackFit(t0) {
+ this._stack$_name = t0;
+ },
+ Overflow: function Overflow(t0) {
+ this._stack$_name = t0;
+ },
+ RenderStack: function RenderStack(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._stack$_hasVisualOverflow = false;
+ _._resolvedAlignment = null;
+ _._alignment = t0;
+ _._stack$_textDirection = t1;
+ _._fit = t2;
+ _._clipBehavior = t3;
+ _._stack$_clipRectLayer = null;
+ _.ContainerRenderObjectMixin__childCount = t4;
+ _.ContainerRenderObjectMixin__firstChild = t5;
+ _.ContainerRenderObjectMixin__lastChild = t6;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderStack_computeMinIntrinsicWidth_closure: function RenderStack_computeMinIntrinsicWidth_closure(t0) {
+ this.height = t0;
+ },
+ RenderStack_computeMaxIntrinsicWidth_closure: function RenderStack_computeMaxIntrinsicWidth_closure(t0) {
+ this.height = t0;
+ },
+ RenderStack_computeMinIntrinsicHeight_closure: function RenderStack_computeMinIntrinsicHeight_closure(t0) {
+ this.width = t0;
+ },
+ RenderStack_computeMaxIntrinsicHeight_closure: function RenderStack_computeMaxIntrinsicHeight_closure(t0) {
+ this.width = t0;
+ },
+ RenderStack_layoutPositionedChild__x_set: function RenderStack_layoutPositionedChild__x_set(t0) {
+ this._box_0 = t0;
+ },
+ RenderStack_layoutPositionedChild__y_set: function RenderStack_layoutPositionedChild__y_set(t0) {
+ this._box_0 = t0;
+ },
+ RenderStack_layoutPositionedChild__x_get: function RenderStack_layoutPositionedChild__x_get(t0) {
+ this._box_0 = t0;
+ },
+ RenderStack_layoutPositionedChild__y_get: function RenderStack_layoutPositionedChild__y_get(t0) {
+ this._box_0 = t0;
+ },
+ _RenderStack_RenderBox_ContainerRenderObjectMixin: function _RenderStack_RenderBox_ContainerRenderObjectMixin() {
+ },
+ _RenderStack_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin: function _RenderStack_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin() {
+ },
+ RestorationManager: function RestorationManager(t0, t1) {
+ var _ = this;
+ _._pendingRootBucket = _._restoration$_rootBucket = null;
+ _._serializationScheduled = _._debugDoingUpdate = _._isReplacing = _._rootBucketIsValid = false;
+ _._bucketsNeedingSerialization = t0;
+ _.ChangeNotifier__listeners = t1;
+ },
+ RestorationManager_handleRestorationUpdateFromEngine_closure: function RestorationManager_handleRestorationUpdateFromEngine_closure(t0) {
+ this.$this = t0;
+ },
+ RestorationManager_scheduleSerializationFor_closure: function RestorationManager_scheduleSerializationFor_closure(t0) {
+ this.$this = t0;
+ },
+ RestorationBucket: function RestorationBucket(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._rawData = t0;
+ _._debugOwner = null;
+ _._manager = t1;
+ _._restoration$_parent = t2;
+ _._restorationId = t3;
+ _._claimedChildren = t4;
+ _._childrenToAdd = t5;
+ _._debugDisposed = _._needsSerialization = false;
+ },
+ RestorationBucket__rawChildren_closure: function RestorationBucket__rawChildren_closure() {
+ },
+ RestorationBucket__rawValues_closure: function RestorationBucket__rawValues_closure() {
+ },
+ RestorationBucket__addChildData_closure: function RestorationBucket__addChildData_closure() {
+ },
+ RestorationBucket__visitChildren_closure: function RestorationBucket__visitChildren_closure() {
+ },
+ Navigator_maybePop: function(context) {
+ return K.Navigator_of(context, false).maybePop$1(null);
+ },
+ Navigator_of: function(context, rootNavigator) {
+ var navigator0, t1,
+ $navigator = context instanceof N.StatefulElement && context.state instanceof K.NavigatorState ? type$.NavigatorState._as(context.state) : null;
+ if (rootNavigator) {
+ navigator0 = context.findRootAncestorStateOfType$1$0(type$.NavigatorState);
+ $navigator = navigator0 == null ? $navigator : navigator0;
+ t1 = $navigator;
+ } else {
+ if ($navigator == null)
+ $navigator = context.findAncestorStateOfType$1$0(type$.NavigatorState);
+ t1 = $navigator;
+ }
+ return t1;
+ },
+ Navigator_defaultGenerateInitialRoutes: function($navigator, initialRouteName) {
+ var t1, routeParts, t2, _i, t3, routeName, _null = null,
+ result = H.setRuntimeTypeInfo([], type$.JSArray_nullable_Route_dynamic);
+ if (C.JSString_methods.startsWith$1(initialRouteName, "/") && initialRouteName.length > 1) {
+ initialRouteName = C.JSString_methods.substring$1(initialRouteName, 1);
+ t1 = type$.dynamic;
+ result.push($navigator._routeNamed$1$3$allowNull$arguments("/", true, _null, t1));
+ routeParts = initialRouteName.split("/");
+ if (initialRouteName.length !== 0)
+ for (t2 = routeParts.length, _i = 0, t3 = ""; _i < t2; ++_i, t3 = routeName) {
+ routeName = t3 + ("/" + H.S(routeParts[_i]));
+ result.push($navigator._routeNamed$1$3$allowNull$arguments(routeName, true, _null, t1));
+ }
+ if (C.JSArray_methods.get$last(result) == null)
+ C.JSArray_methods.set$length(result, 0);
+ } else if (initialRouteName !== "/")
+ result.push($navigator._routeNamed$1$3$allowNull$arguments(initialRouteName, true, _null, type$.dynamic));
+ if (!!result.fixed$length)
+ H.throwExpression(P.UnsupportedError$("removeWhere"));
+ C.JSArray_methods._removeWhere$2(result, new K.Navigator_defaultGenerateInitialRoutes_closure(), true);
+ if (result.length === 0)
+ result.push($navigator._routeNamed$1$2$arguments("/", _null, type$.dynamic));
+ return new H.CastList(result, type$.CastList_of_nullable_Route_dynamic_and_Route_dynamic);
+ },
+ _RouteEntry$: function(route, initialState, restorationInformation) {
+ var t1 = $.$get$_RouteEntry_notAnnounced();
+ return new K._RouteEntry(route, restorationInformation, initialState, t1, t1, t1);
+ },
+ _RouteEntry_isRoutePredicate: function(route) {
+ return new K._RouteEntry_isRoutePredicate_closure(route);
+ },
+ _RestorationInformation__RestorationInformation$fromSerializableData: function(data) {
+ var t1, t2, t3;
+ type$.List_nullable_Object._as(data);
+ t1 = J.getInterceptor$asx(data);
+ t2 = t1.$index(data, 0);
+ t2.toString;
+ switch (C.List_ato[H._asIntS(t2)]) {
+ case C._RouteRestorationType_0:
+ t1 = t1.sublist$1(data, 1);
+ t2 = t1[0];
+ t2.toString;
+ H._asIntS(t2);
+ t3 = t1[1];
+ t3.toString;
+ H._asStringS(t3);
+ return new K._NamedRestorationInformation(t2, t3, t1.length > 2 ? t1[2] : null, C._RouteRestorationType_0);
+ case C._RouteRestorationType_1:
+ t1 = t1.sublist$1(data, 1)[1];
+ t1.toString;
+ type$.Route_dynamic_Function_2_BuildContext_and_nullable_Object._as(P.PluginUtilities_getCallbackFromHandle(new P.CallbackHandle(H._asIntS(t1))));
+ return null;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ RoutePopDisposition: function RoutePopDisposition(t0) {
+ this._navigator$_name = t0;
+ },
+ Route: function Route() {
+ },
+ Route_didPush_closure: function Route_didPush_closure(t0) {
+ this.$this = t0;
+ },
+ Route_didAdd_closure: function Route_didAdd_closure(t0) {
+ this.$this = t0;
+ },
+ Route_isCurrent_closure: function Route_isCurrent_closure() {
+ },
+ Route_isCurrent_closure0: function Route_isCurrent_closure0() {
+ },
+ Route_isFirst_closure: function Route_isFirst_closure() {
+ },
+ Route_isFirst_closure0: function Route_isFirst_closure0() {
+ },
+ Route_isActive_closure: function Route_isActive_closure(t0) {
+ this.$this = t0;
+ },
+ Route_isActive_closure0: function Route_isActive_closure0() {
+ },
+ RouteSettings: function RouteSettings(t0, t1) {
+ this.name = t0;
+ this.$arguments = t1;
+ },
+ NavigatorObserver: function NavigatorObserver() {
+ },
+ HeroControllerScope: function HeroControllerScope(t0, t1, t2) {
+ this.controller = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ RouteTransitionRecord: function RouteTransitionRecord() {
+ },
+ TransitionDelegate: function TransitionDelegate() {
+ },
+ DefaultTransitionDelegate: function DefaultTransitionDelegate() {
+ },
+ Navigator: function Navigator(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.initialRoute = t0;
+ _.onGenerateRoute = t1;
+ _.onUnknownRoute = t2;
+ _.observers = t3;
+ _.restorationScopeId = t4;
+ _.onGenerateInitialRoutes = t5;
+ _.reportsRouteUpdateToEngine = t6;
+ _.key = t7;
+ },
+ Navigator_defaultGenerateInitialRoutes_closure: function Navigator_defaultGenerateInitialRoutes_closure() {
+ },
+ _RouteLifecycle: function _RouteLifecycle(t0, t1) {
+ this.index = t0;
+ this._navigator$_name = t1;
+ },
+ _NotAnnounced: function _NotAnnounced(t0, t1, t2) {
+ var _ = this;
+ _._navigator$_navigator = null;
+ _._settings = t0;
+ _._restorationScopeId = t1;
+ _._popCompleter = t2;
+ },
+ _RouteEntry: function _RouteEntry(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.route = t0;
+ _.restorationInformation = t1;
+ _.currentState = t2;
+ _.lastAnnouncedPreviousRoute = t3;
+ _.lastAnnouncedPoppedNextRoute = t4;
+ _.lastAnnouncedNextRoute = t5;
+ _.doingPop = false;
+ _._reportRemovalToObserver = true;
+ _._isWaitingForExitingDecision = false;
+ },
+ _RouteEntry_handlePush_closure: function _RouteEntry_handlePush_closure(t0, t1) {
+ this.$this = t0;
+ this.navigator = t1;
+ },
+ _RouteEntry_dispose_closure: function _RouteEntry_dispose_closure() {
+ },
+ _RouteEntry_dispose__listener_set: function _RouteEntry_dispose__listener_set(t0) {
+ this._box_0 = t0;
+ },
+ _RouteEntry_dispose__listener_get: function _RouteEntry_dispose__listener_get(t0) {
+ this._box_0 = t0;
+ },
+ _RouteEntry_dispose_closure0: function _RouteEntry_dispose_closure0(t0, t1, t2, t3) {
+ var _ = this;
+ _._box_1 = t0;
+ _.$this = t1;
+ _.entry = t2;
+ _._listener_get = t3;
+ },
+ _RouteEntry_closure1: function _RouteEntry_closure1() {
+ },
+ _RouteEntry_closure: function _RouteEntry_closure() {
+ },
+ _RouteEntry_closure0: function _RouteEntry_closure0() {
+ },
+ _RouteEntry_isRoutePredicate_closure: function _RouteEntry_isRoutePredicate_closure(t0) {
+ this.route = t0;
+ },
+ _NavigatorObservation: function _NavigatorObservation() {
+ },
+ _NavigatorPushObservation: function _NavigatorPushObservation(t0, t1) {
+ this.primaryRoute = t0;
+ this.secondaryRoute = t1;
+ },
+ _NavigatorPopObservation: function _NavigatorPopObservation(t0, t1) {
+ this.primaryRoute = t0;
+ this.secondaryRoute = t1;
+ },
+ _NavigatorRemoveObservation: function _NavigatorRemoveObservation(t0, t1) {
+ this.primaryRoute = t0;
+ this.secondaryRoute = t1;
+ },
+ _NavigatorReplaceObservation: function _NavigatorReplaceObservation(t0, t1) {
+ this.primaryRoute = t0;
+ this.secondaryRoute = t1;
+ },
+ NavigatorState: function NavigatorState(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.__NavigatorState__overlayKey = null;
+ _.__NavigatorState__overlayKey_isSet = false;
+ _._history = t0;
+ _._serializableHistory = t1;
+ _._observedRouteAdditions = t2;
+ _._observedRouteDeletions = t3;
+ _.focusScopeNode = t4;
+ _._debugLocked = false;
+ _.__NavigatorState__effectiveObservers = _._heroControllerFromScope = null;
+ _.__NavigatorState__effectiveObservers_isSet = false;
+ _._rawNextPagelessRestorationScopeId = t5;
+ _._lastAnnouncedRouteName = null;
+ _._debugUpdatingPage = false;
+ _._userGesturesInProgressCount = 0;
+ _.userGestureInProgressNotifier = t6;
+ _._activePointers = t7;
+ _.RestorationMixin__bucket = t8;
+ _.RestorationMixin__properties = t9;
+ _.RestorationMixin__debugPropertiesWaitingForReregistration = t10;
+ _.RestorationMixin__firstRestorePending = t11;
+ _.RestorationMixin__currentParent = t12;
+ _.TickerProviderStateMixin__tickers = t13;
+ _._widget = null;
+ _._debugLifecycleState = t14;
+ _._framework$_element = null;
+ },
+ NavigatorState_restoreState_closure: function NavigatorState_restoreState_closure(t0) {
+ this.$this = t0;
+ },
+ NavigatorState__flushHistoryUpdates_closure: function NavigatorState__flushHistoryUpdates_closure() {
+ },
+ NavigatorState__flushHistoryUpdates_closure0: function NavigatorState__flushHistoryUpdates_closure0() {
+ },
+ NavigatorState__afterNavigation_closure: function NavigatorState__afterNavigation_closure() {
+ },
+ NavigatorState_maybePop_closure: function NavigatorState_maybePop_closure() {
+ },
+ NavigatorState_maybePop_closure0: function NavigatorState_maybePop_closure0() {
+ },
+ NavigatorState_maybePop_closure1: function NavigatorState_maybePop_closure1() {
+ },
+ NavigatorState_maybePop_closure2: function NavigatorState_maybePop_closure2() {
+ },
+ NavigatorState__cancelActivePointers_closure: function NavigatorState__cancelActivePointers_closure(t0) {
+ this.absorber = t0;
+ },
+ _RouteRestorationType: function _RouteRestorationType(t0, t1) {
+ this.index = t0;
+ this._navigator$_name = t1;
+ },
+ _RestorationInformation: function _RestorationInformation() {
+ },
+ _NamedRestorationInformation: function _NamedRestorationInformation(t0, t1, t2, t3) {
+ var _ = this;
+ _.restorationScopeId = t0;
+ _.name = t1;
+ _.$arguments = t2;
+ _.type = t3;
+ _._serializableData = null;
+ },
+ _AnonymousRestorationInformation: function _AnonymousRestorationInformation(t0, t1, t2, t3) {
+ var _ = this;
+ _.restorationScopeId = t0;
+ _.routeBuilder = t1;
+ _.$arguments = t2;
+ _.type = t3;
+ _._serializableData = null;
+ },
+ _HistoryProperty: function _HistoryProperty(t0) {
+ var _ = this;
+ _._pageToPagelessRoutes = null;
+ _._disposed = false;
+ _._restoration0$_owner = _._restoration0$_restorationId = null;
+ _.ChangeNotifier__listeners = t0;
+ },
+ _HistoryProperty_fromPrimitives_closure: function _HistoryProperty_fromPrimitives_closure() {
+ },
+ _NavigatorState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure: function _NavigatorState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure() {
+ },
+ _NavigatorState_State_TickerProviderStateMixin: function _NavigatorState_State_TickerProviderStateMixin() {
+ },
+ _NavigatorState_State_TickerProviderStateMixin_RestorationMixin: function _NavigatorState_State_TickerProviderStateMixin_RestorationMixin() {
+ },
+ RestorationScope_of: function(context) {
+ var t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.UnmanagedRestorationScope);
+ return t1 == null ? null : t1.bucket;
+ },
+ UnmanagedRestorationScope$: function(bucket, child) {
+ return new K.UnmanagedRestorationScope(bucket, child, null);
+ },
+ RestorationScope: function RestorationScope(t0, t1, t2) {
+ this.child = t0;
+ this.restorationId = t1;
+ this.key = t2;
+ },
+ _RestorationScopeState: function _RestorationScopeState(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.RestorationMixin__bucket = t0;
+ _.RestorationMixin__properties = t1;
+ _.RestorationMixin__debugPropertiesWaitingForReregistration = t2;
+ _.RestorationMixin__firstRestorePending = t3;
+ _.RestorationMixin__currentParent = t4;
+ _._widget = null;
+ _._debugLifecycleState = t5;
+ _._framework$_element = null;
+ },
+ UnmanagedRestorationScope: function UnmanagedRestorationScope(t0, t1, t2) {
+ this.bucket = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ RootRestorationScope: function RootRestorationScope(t0, t1, t2) {
+ this.child = t0;
+ this.restorationId = t1;
+ this.key = t2;
+ },
+ _RootRestorationScopeState: function _RootRestorationScopeState(t0) {
+ var _ = this;
+ _._okToRenderBlankContainer = null;
+ _._rootBucketValid = false;
+ _._ancestorBucket = _._rootBucket = null;
+ _._isLoadingRootBucket = false;
+ _._widget = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _RootRestorationScopeState__loadRootBucketIfNecessary_closure: function _RootRestorationScopeState__loadRootBucketIfNecessary_closure(t0) {
+ this.$this = t0;
+ },
+ _RootRestorationScopeState__loadRootBucketIfNecessary__closure: function _RootRestorationScopeState__loadRootBucketIfNecessary__closure(t0, t1) {
+ this.$this = t0;
+ this.bucket = t1;
+ },
+ RestorableProperty: function RestorableProperty() {
+ },
+ RestorationMixin: function RestorationMixin() {
+ },
+ RestorationMixin_registerForRestoration_closure: function RestorationMixin_registerForRestoration_closure(t0, t1) {
+ this.$this = t0;
+ this.property = t1;
+ },
+ __RestorationScopeState_State_RestorationMixin_dispose_closure: function __RestorationScopeState_State_RestorationMixin_dispose_closure() {
+ },
+ __RestorationScopeState_State_RestorationMixin: function __RestorationScopeState_State_RestorationMixin() {
+ },
+ ScrollBehavior: function ScrollBehavior() {
+ },
+ ScrollBehavior_velocityTrackerBuilder_closure: function ScrollBehavior_velocityTrackerBuilder_closure() {
+ },
+ ScrollBehavior_velocityTrackerBuilder_closure0: function ScrollBehavior_velocityTrackerBuilder_closure0() {
+ },
+ ScrollConfiguration: function ScrollConfiguration(t0, t1, t2) {
+ this.behavior = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ SlideTransition$: function(child, position, textDirection, transformHitTests) {
+ return new K.SlideTransition(textDirection, transformHitTests, child, position, null);
+ },
+ ScaleTransition$: function(child, scale) {
+ return new K.ScaleTransition(child, scale, null);
+ },
+ RotationTransition$: function(child, turns) {
+ return new K.RotationTransition(child, turns, null);
+ },
+ FadeTransition$: function(alwaysIncludeSemantics, child, opacity) {
+ return new K.FadeTransition(opacity, alwaysIncludeSemantics, child, null);
+ },
+ AnimatedBuilder$: function(animation, builder, child) {
+ return new K.AnimatedBuilder(builder, child, animation, null);
+ },
+ AnimatedWidget: function AnimatedWidget() {
+ },
+ _AnimatedState: function _AnimatedState(t0) {
+ this._widget = null;
+ this._debugLifecycleState = t0;
+ this._framework$_element = null;
+ },
+ _AnimatedState__handleChange_closure: function _AnimatedState__handleChange_closure() {
+ },
+ SlideTransition: function SlideTransition(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.textDirection = t0;
+ _.transformHitTests = t1;
+ _.child = t2;
+ _.listenable = t3;
+ _.key = t4;
+ },
+ ScaleTransition: function ScaleTransition(t0, t1, t2) {
+ this.child = t0;
+ this.listenable = t1;
+ this.key = t2;
+ },
+ RotationTransition: function RotationTransition(t0, t1, t2) {
+ this.child = t0;
+ this.listenable = t1;
+ this.key = t2;
+ },
+ FadeTransition: function FadeTransition(t0, t1, t2, t3) {
+ var _ = this;
+ _.opacity = t0;
+ _.alwaysIncludeSemantics = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ DecoratedBoxTransition: function DecoratedBoxTransition(t0, t1, t2, t3) {
+ var _ = this;
+ _.decoration = t0;
+ _.child = t1;
+ _.listenable = t2;
+ _.key = t3;
+ },
+ AnimatedBuilder: function AnimatedBuilder(t0, t1, t2, t3) {
+ var _ = this;
+ _.builder = t0;
+ _.child = t1;
+ _.listenable = t2;
+ _.key = t3;
+ },
+ RTCIceCandidate: function RTCIceCandidate(t0, t1, t2) {
+ this.candidate = t0;
+ this.sdpMid = t1;
+ this.sdpMlineIndex = t2;
+ }
+ },
+ L = {_CupertinoLocalizationsDelegate: function _CupertinoLocalizationsDelegate() {
+ }, DefaultCupertinoLocalizations: function DefaultCupertinoLocalizations() {
+ },
+ InputDecoration$: function(alignLabelWithHint, border, contentPadding, counter, counterStyle, counterText, disabledBorder, enabled, enabledBorder, errorBorder, errorMaxLines, errorStyle, errorText, fillColor, filled, floatingLabelBehavior, focusColor, focusedBorder, focusedErrorBorder, hasFloatingPlaceholder, helperMaxLines, helperStyle, helperText, hintMaxLines, hintStyle, hintText, hoverColor, icon, isCollapsed, isDense, labelStyle, labelText, prefix, prefixIcon, prefixIconConstraints, prefixStyle, prefixText, semanticCounterText, suffix, suffixIcon, suffixIconConstraints, suffixStyle, suffixText) {
+ return new L.InputDecoration(icon, labelText, labelStyle, helperText, helperStyle, helperMaxLines, hintText, hintStyle, hintMaxLines, errorText, errorStyle, errorMaxLines, true, floatingLabelBehavior, isDense, contentPadding, false, prefixIcon, prefixIconConstraints, prefix, prefixText, prefixStyle, suffixIcon, suffix, suffixText, suffixStyle, suffixIconConstraints, counterText, counter, counterStyle, filled, fillColor, focusColor, hoverColor, errorBorder, focusedBorder, focusedErrorBorder, disabledBorder, enabledBorder, border, true, semanticCounterText, alignLabelWithHint);
+ },
+ _InputBorderGap: function _InputBorderGap(t0) {
+ this._input_decorator$_start = null;
+ this._extent = 0;
+ this.ChangeNotifier__listeners = t0;
+ },
+ _InputBorderTween: function _InputBorderTween(t0, t1) {
+ this.begin = t0;
+ this.end = t1;
+ },
+ _InputBorderPainter: function _InputBorderPainter(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.borderAnimation = t0;
+ _.border = t1;
+ _.gapAnimation = t2;
+ _.gap = t3;
+ _.textDirection = t4;
+ _.fillColor = t5;
+ _.hoverColorTween = t6;
+ _.hoverAnimation = t7;
+ _._repaint = t8;
+ },
+ _BorderContainer: function _BorderContainer(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.border = t0;
+ _.gap = t1;
+ _.gapAnimation = t2;
+ _.fillColor = t3;
+ _.hoverColor = t4;
+ _.isHovering = t5;
+ _.key = t6;
+ },
+ _BorderContainerState: function _BorderContainerState(t0, t1) {
+ var _ = this;
+ _.___BorderContainerState__controller = null;
+ _.___BorderContainerState__controller_isSet = false;
+ _.___BorderContainerState__hoverColorController = null;
+ _.___BorderContainerState__hoverColorController_isSet = false;
+ _.___BorderContainerState__borderAnimation = null;
+ _.___BorderContainerState__borderAnimation_isSet = false;
+ _.___BorderContainerState__border = null;
+ _.___BorderContainerState__border_isSet = false;
+ _.___BorderContainerState__hoverAnimation = null;
+ _.___BorderContainerState__hoverAnimation_isSet = false;
+ _.___BorderContainerState__hoverColorTween = null;
+ _.___BorderContainerState__hoverColorTween_isSet = false;
+ _.TickerProviderStateMixin__tickers = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _HelperError: function _HelperError(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.textAlign = t0;
+ _.helperText = t1;
+ _.helperStyle = t2;
+ _.helperMaxLines = t3;
+ _.errorText = t4;
+ _.errorStyle = t5;
+ _.errorMaxLines = t6;
+ _.key = t7;
+ },
+ _HelperErrorState: function _HelperErrorState(t0, t1) {
+ var _ = this;
+ _.___HelperErrorState__controller = null;
+ _.___HelperErrorState__controller_isSet = false;
+ _._error = _._helper = null;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _HelperErrorState__handleChange_closure: function _HelperErrorState__handleChange_closure() {
+ },
+ FloatingLabelBehavior: function FloatingLabelBehavior(t0) {
+ this._input_decorator$_name = t0;
+ },
+ _DecorationSlot: function _DecorationSlot(t0) {
+ this._input_decorator$_name = t0;
+ },
+ _Decoration: function _Decoration(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20) {
+ var _ = this;
+ _.contentPadding = t0;
+ _.isCollapsed = t1;
+ _.floatingLabelHeight = t2;
+ _.floatingLabelProgress = t3;
+ _.border = t4;
+ _.borderGap = t5;
+ _.alignLabelWithHint = t6;
+ _.isDense = t7;
+ _.visualDensity = t8;
+ _.icon = t9;
+ _.input = t10;
+ _.label = t11;
+ _.hint = t12;
+ _.prefix = t13;
+ _.suffix = t14;
+ _.prefixIcon = t15;
+ _.suffixIcon = t16;
+ _.helperError = t17;
+ _.counter = t18;
+ _.container = t19;
+ _.fixTextFieldOutlineLabel = t20;
+ },
+ _RenderDecorationLayout: function _RenderDecorationLayout(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.boxToBaseline = t0;
+ _.inputBaseline = t1;
+ _.outlineBaseline = t2;
+ _.subtextBaseline = t3;
+ _.containerHeight = t4;
+ _.subtextHeight = t5;
+ },
+ _RenderDecoration: function _RenderDecoration(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.children = t0;
+ _._input_decorator$_container = _._counter = _._helperError = _._suffixIcon = _._prefixIcon = _._suffix = _._prefix = _._hint = _._input_decorator$_label = _._input_decorator$_input = _._icon = null;
+ _._input_decorator$_decoration = t1;
+ _._input_decorator$_textDirection = t2;
+ _._input_decorator$_textBaseline = t3;
+ _._textAlignVertical = t4;
+ _._isFocused = t5;
+ _._expands = t6;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = _._transformLayer = _._labelTransform = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderDecoration_debugDescribeChildren_add: function _RenderDecoration_debugDescribeChildren_add(t0) {
+ this.value = t0;
+ },
+ _RenderDecoration_performLayout_centerLayout: function _RenderDecoration_performLayout_centerLayout(t0) {
+ this._box_0 = t0;
+ },
+ _RenderDecoration_performLayout_baselineLayout: function _RenderDecoration_performLayout_baselineLayout(t0, t1) {
+ this._box_0 = t0;
+ this.layout = t1;
+ },
+ _RenderDecoration_paint_doPaint: function _RenderDecoration_paint_doPaint(t0, t1) {
+ this.context = t0;
+ this.offset = t1;
+ },
+ _RenderDecoration_hitTestChildren_closure: function _RenderDecoration_hitTestChildren_closure(t0, t1, t2) {
+ this.position = t0;
+ this.offset = t1;
+ this.child = t2;
+ },
+ _DecorationElement: function _DecorationElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.slotToChild = t0;
+ _.__RenderObjectElement__renderObject = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t1;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t2;
+ _._owner = null;
+ _._lifecycleState = t3;
+ _._debugForgottenChildrenWithGlobalKey = t4;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ _Decorator: function _Decorator(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.decoration = t0;
+ _.textDirection = t1;
+ _.textBaseline = t2;
+ _.textAlignVertical = t3;
+ _.isFocused = t4;
+ _.expands = t5;
+ _.key = t6;
+ },
+ InputDecorator: function InputDecorator(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _.decoration = t0;
+ _.baseStyle = t1;
+ _.textAlign = t2;
+ _.textAlignVertical = t3;
+ _.isFocused = t4;
+ _.isHovering = t5;
+ _.expands = t6;
+ _.isEmpty = t7;
+ _.child = t8;
+ _.key = t9;
+ },
+ _InputDecoratorState: function _InputDecoratorState(t0, t1, t2) {
+ var _ = this;
+ _.___InputDecoratorState__floatingLabelController = null;
+ _.___InputDecoratorState__floatingLabelController_isSet = false;
+ _.___InputDecoratorState__shakingLabelController = null;
+ _.___InputDecoratorState__shakingLabelController_isSet = false;
+ _._borderGap = t0;
+ _._effectiveDecoration = null;
+ _.TickerProviderStateMixin__tickers = t1;
+ _._widget = null;
+ _._debugLifecycleState = t2;
+ _._framework$_element = null;
+ },
+ _InputDecoratorState__handleChange_closure: function _InputDecoratorState__handleChange_closure() {
+ },
+ InputDecoration: function InputDecoration(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42) {
+ var _ = this;
+ _.icon = t0;
+ _.labelText = t1;
+ _.labelStyle = t2;
+ _.helperText = t3;
+ _.helperStyle = t4;
+ _.helperMaxLines = t5;
+ _.hintText = t6;
+ _.hintStyle = t7;
+ _.hintMaxLines = t8;
+ _.errorText = t9;
+ _.errorStyle = t10;
+ _.errorMaxLines = t11;
+ _.hasFloatingPlaceholder = t12;
+ _.floatingLabelBehavior = t13;
+ _.isDense = t14;
+ _.contentPadding = t15;
+ _.isCollapsed = t16;
+ _.prefixIcon = t17;
+ _.prefixIconConstraints = t18;
+ _.prefix = t19;
+ _.prefixText = t20;
+ _.prefixStyle = t21;
+ _.suffixIcon = t22;
+ _.suffix = t23;
+ _.suffixText = t24;
+ _.suffixStyle = t25;
+ _.suffixIconConstraints = t26;
+ _.counterText = t27;
+ _.counter = t28;
+ _.counterStyle = t29;
+ _.filled = t30;
+ _.fillColor = t31;
+ _.focusColor = t32;
+ _.hoverColor = t33;
+ _.errorBorder = t34;
+ _.focusedBorder = t35;
+ _.focusedErrorBorder = t36;
+ _.disabledBorder = t37;
+ _.enabledBorder = t38;
+ _.border = t39;
+ _.enabled = t40;
+ _.semanticCounterText = t41;
+ _.alignLabelWithHint = t42;
+ },
+ InputDecorationTheme: function InputDecorationTheme() {
+ },
+ _InputDecorationTheme_Object_Diagnosticable: function _InputDecorationTheme_Object_Diagnosticable() {
+ },
+ __BorderContainerState_State_TickerProviderStateMixin: function __BorderContainerState_State_TickerProviderStateMixin() {
+ },
+ __HelperErrorState_State_SingleTickerProviderStateMixin: function __HelperErrorState_State_SingleTickerProviderStateMixin() {
+ },
+ __InputDecoratorState_State_TickerProviderStateMixin: function __InputDecoratorState_State_TickerProviderStateMixin() {
+ },
+ RenderPerformanceOverlay: function RenderPerformanceOverlay(t0, t1, t2, t3) {
+ var _ = this;
+ _._optionsMask = t0;
+ _._rasterizerThreshold = t1;
+ _._checkerboardRasterCacheImages = t2;
+ _._checkerboardOffscreenLayers = t3;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ AutomaticKeepAlive: function AutomaticKeepAlive(t0, t1) {
+ this.child = t0;
+ this.key = t1;
+ },
+ _AutomaticKeepAliveState: function _AutomaticKeepAliveState(t0) {
+ var _ = this;
+ _._automatic_keep_alive$_child = _._handles = null;
+ _._keepingAlive = false;
+ _._widget = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _AutomaticKeepAliveState__addClient_closure: function _AutomaticKeepAliveState__addClient_closure(t0) {
+ this.$this = t0;
+ },
+ _AutomaticKeepAliveState__getChildElement_closure: function _AutomaticKeepAliveState__getChildElement_closure(t0) {
+ this._box_0 = t0;
+ },
+ _AutomaticKeepAliveState__createCallback_closure: function _AutomaticKeepAliveState__createCallback_closure(t0, t1) {
+ this.$this = t0;
+ this.handle = t1;
+ },
+ _AutomaticKeepAliveState__createCallback__closure: function _AutomaticKeepAliveState__createCallback__closure(t0) {
+ this.$this = t0;
+ },
+ _AutomaticKeepAliveState__createCallback__closure0: function _AutomaticKeepAliveState__createCallback__closure0(t0) {
+ this.$this = t0;
+ },
+ _AutomaticKeepAliveState__createCallback___closure: function _AutomaticKeepAliveState__createCallback___closure(t0) {
+ this.$this = t0;
+ },
+ KeepAliveNotification: function KeepAliveNotification(t0) {
+ this.handle = t0;
+ },
+ KeepAliveHandle: function KeepAliveHandle(t0) {
+ this.ChangeNotifier__listeners = t0;
+ },
+ AutomaticKeepAliveClientMixin: function AutomaticKeepAliveClientMixin() {
+ },
+ _NullWidget0: function _NullWidget0(t0) {
+ this.key = t0;
+ },
+ Focus$: function(autofocus, canRequestFocus, child, debugLabel, descendantsAreFocusable, focusNode, includeSemantics, key, onFocusChange, onKey, skipTraversal) {
+ return new L.Focus(debugLabel, child, onKey, onFocusChange, autofocus, focusNode, skipTraversal, includeSemantics, canRequestFocus, true, key);
+ },
+ Focus_maybeOf: function(context, scopeOk) {
+ var marker = context.dependOnInheritedWidgetOfExactType$1$0(type$._FocusMarker),
+ node = marker == null ? null : marker.notifier;
+ if (node == null)
+ return null;
+ return node;
+ },
+ FocusScope$: function(autofocus, child, key, node) {
+ var _null = null;
+ return new L.FocusScope(_null, child, _null, _null, autofocus, node, _null, true, _null, true, key);
+ },
+ FocusScope_of: function(context) {
+ var t1,
+ marker = context.dependOnInheritedWidgetOfExactType$1$0(type$._FocusMarker);
+ if (marker == null)
+ t1 = null;
+ else {
+ t1 = marker.notifier;
+ t1 = t1 == null ? null : t1.get$nearestScope();
+ }
+ return t1 == null ? context._owner.focusManager.rootScope : t1;
+ },
+ _FocusMarker$: function(child, node) {
+ return new L._FocusMarker(node, child, null);
+ },
+ Focus: function Focus(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.debugLabel = t0;
+ _.child = t1;
+ _.onKey = t2;
+ _.onFocusChange = t3;
+ _.autofocus = t4;
+ _.focusNode = t5;
+ _.skipTraversal = t6;
+ _.includeSemantics = t7;
+ _.canRequestFocus = t8;
+ _.descendantsAreFocusable = t9;
+ _.key = t10;
+ },
+ _FocusState: function _FocusState(t0) {
+ var _ = this;
+ _._descendantsAreFocusable = _._canRequestFocus = _._hasPrimaryFocus = _._internalNode = null;
+ _._didAutofocus = false;
+ _._widget = _._focusAttachment = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _FocusState__handleFocusChanged_closure: function _FocusState__handleFocusChanged_closure(t0, t1) {
+ this.$this = t0;
+ this.hasPrimaryFocus = t1;
+ },
+ _FocusState__handleFocusChanged_closure0: function _FocusState__handleFocusChanged_closure0(t0, t1) {
+ this.$this = t0;
+ this.canRequestFocus = t1;
+ },
+ _FocusState__handleFocusChanged_closure1: function _FocusState__handleFocusChanged_closure1(t0, t1) {
+ this.$this = t0;
+ this.descendantsAreFocusable = t1;
+ },
+ FocusScope: function FocusScope(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.debugLabel = t0;
+ _.child = t1;
+ _.onKey = t2;
+ _.onFocusChange = t3;
+ _.autofocus = t4;
+ _.focusNode = t5;
+ _.skipTraversal = t6;
+ _.includeSemantics = t7;
+ _.canRequestFocus = t8;
+ _.descendantsAreFocusable = t9;
+ _.key = t10;
+ },
+ _FocusScopeState: function _FocusScopeState(t0) {
+ var _ = this;
+ _._descendantsAreFocusable = _._canRequestFocus = _._hasPrimaryFocus = _._internalNode = null;
+ _._didAutofocus = false;
+ _._widget = _._focusAttachment = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _FocusMarker: function _FocusMarker(t0, t1, t2) {
+ this.notifier = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ Icon$: function(icon) {
+ return new L.Icon(icon, null);
+ },
+ Icon: function Icon(t0, t1) {
+ this.icon = t0;
+ this.key = t1;
+ },
+ _loadAll: function(locale, allDelegates) {
+ var types, delegates, _i, delegate, t3, t4, inputValue, futureValue, _box_1 = {},
+ t1 = type$.Type,
+ t2 = type$.dynamic,
+ output = P.LinkedHashMap_LinkedHashMap$_empty(t1, t2);
+ _box_1.pendingList = null;
+ types = P.LinkedHashSet_LinkedHashSet$_empty(t1);
+ delegates = H.setRuntimeTypeInfo([], type$.JSArray_LocalizationsDelegate_dynamic);
+ for (t1 = allDelegates.length, _i = 0; _i < allDelegates.length; allDelegates.length === t1 || (0, H.throwConcurrentModificationError)(allDelegates), ++_i) {
+ delegate = allDelegates[_i];
+ delegate.toString;
+ t3 = H.instanceType(delegate)._eval$1("LocalizationsDelegate.T");
+ if (!types.contains$1(0, H.createRuntimeType(t3)) && delegate.isSupported$1(locale)) {
+ types.add$1(0, H.createRuntimeType(t3));
+ delegates.push(delegate);
+ }
+ }
+ for (t1 = delegates.length, t3 = type$.JSArray__Pending, _i = 0; _i < delegates.length; delegates.length === t1 || (0, H.throwConcurrentModificationError)(delegates), ++_i) {
+ t4 = {};
+ delegate = delegates[_i];
+ inputValue = delegate.load$1(0, locale);
+ t4.completedValue = null;
+ futureValue = inputValue.then$1$1(0, new L._loadAll_closure(t4), t2);
+ if (t4.completedValue != null)
+ output.$indexSet(0, H.createRuntimeType(H._instanceType(delegate)._eval$1("LocalizationsDelegate.T")), t4.completedValue);
+ else {
+ t4 = _box_1.pendingList;
+ if (t4 == null)
+ t4 = _box_1.pendingList = H.setRuntimeTypeInfo([], t3);
+ t4.push(new L._Pending(delegate, futureValue));
+ }
+ }
+ t1 = _box_1.pendingList;
+ if (t1 == null)
+ return new O.SynchronousFuture(output, type$.SynchronousFuture_Map_Type_dynamic);
+ return P.Future_wait(new H.MappedListIterable(t1, new L._loadAll_closure0(), H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,Future<@>>")), t2).then$1$1(0, new L._loadAll_closure1(_box_1, output), type$.Map_Type_dynamic);
+ },
+ Localizations_maybeLocaleOf: function(context) {
+ var scope = context.dependOnInheritedWidgetOfExactType$1$0(type$._LocalizationsScope);
+ return scope == null ? null : scope.localizationsState._localizations$_locale;
+ },
+ Localizations_of: function(context, type, $T) {
+ var scope = context.dependOnInheritedWidgetOfExactType$1$0(type$._LocalizationsScope);
+ return scope == null ? null : $T._eval$1("0?")._as(J.$index$asx(scope.localizationsState._typeToResources, type));
+ },
+ _Pending: function _Pending(t0, t1) {
+ this.delegate = t0;
+ this.futureValue = t1;
+ },
+ _loadAll_closure: function _loadAll_closure(t0) {
+ this._box_0 = t0;
+ },
+ _loadAll_closure0: function _loadAll_closure0() {
+ },
+ _loadAll_closure1: function _loadAll_closure1(t0, t1) {
+ this._box_1 = t0;
+ this.output = t1;
+ },
+ LocalizationsDelegate: function LocalizationsDelegate() {
+ },
+ _WidgetsLocalizationsDelegate: function _WidgetsLocalizationsDelegate() {
+ },
+ DefaultWidgetsLocalizations: function DefaultWidgetsLocalizations() {
+ },
+ _LocalizationsScope: function _LocalizationsScope(t0, t1, t2, t3) {
+ var _ = this;
+ _.localizationsState = t0;
+ _.typeToResources = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ Localizations: function Localizations(t0, t1, t2, t3) {
+ var _ = this;
+ _.locale = t0;
+ _.delegates = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ _LocalizationsState: function _LocalizationsState(t0, t1, t2) {
+ var _ = this;
+ _._localizedResourcesScopeKey = t0;
+ _._typeToResources = t1;
+ _._widget = _._localizations$_locale = null;
+ _._debugLifecycleState = t2;
+ _._framework$_element = null;
+ },
+ _LocalizationsState_load_closure: function _LocalizationsState_load_closure(t0) {
+ this._box_0 = t0;
+ },
+ _LocalizationsState_load_closure0: function _LocalizationsState_load_closure0(t0, t1) {
+ this.$this = t0;
+ this.locale = t1;
+ },
+ _LocalizationsState_load__closure: function _LocalizationsState_load__closure(t0, t1, t2) {
+ this.$this = t0;
+ this.value = t1;
+ this.locale = t2;
+ },
+ GlowingOverscrollIndicator$: function(axisDirection, child, color) {
+ return new L.GlowingOverscrollIndicator(axisDirection, color, child, null);
+ },
+ _GlowController$: function(axis, color, vsync) {
+ var decelerator, _null = null,
+ t1 = type$.Tween_double,
+ t2 = new R.Tween(0, 0, t1),
+ t3 = new R.Tween(0, 0, t1),
+ t4 = new L._GlowController(C._GlowState_0, t2, t3, 0.5, 0.5, color, axis, new P.LinkedList(type$.LinkedList__ListenerEntry)),
+ t5 = G.AnimationController$(_null, _null, 0, _null, 1, _null, vsync);
+ t5.addStatusListener$1(t4.get$_changePhase());
+ if (t4.___GlowController__glowController_isSet)
+ H.throwExpression(H.LateError$fieldAI("_glowController"));
+ else {
+ t4.___GlowController__glowController_isSet = true;
+ t4.___GlowController__glowController = t5;
+ }
+ decelerator = S.CurvedAnimation$(C.C__DecelerateCurve, t4.get$_glowController(), _null);
+ decelerator.parent.addListener$1(0, t4.get$notifyListeners());
+ type$.Animation_double._as(decelerator);
+ if (t4.___GlowController__glowOpacity_isSet)
+ H.throwExpression(H.LateError$fieldAI("_glowOpacity"));
+ else {
+ t4.___GlowController__glowOpacity_isSet = true;
+ t4.___GlowController__glowOpacity = new R._AnimatedEvaluation(decelerator, t2, t1._eval$1("_AnimatedEvaluation"));
+ }
+ if (t4.___GlowController__glowSize_isSet)
+ H.throwExpression(H.LateError$fieldAI("_glowSize"));
+ else {
+ t4.___GlowController__glowSize_isSet = true;
+ t4.___GlowController__glowSize = new R._AnimatedEvaluation(decelerator, t3, t1._eval$1("_AnimatedEvaluation"));
+ }
+ t1 = vsync.createTicker$1(t4.get$_tickDisplacement());
+ if (t4.___GlowController__displacementTicker_isSet)
+ H.throwExpression(H.LateError$fieldAI("_displacementTicker"));
+ else {
+ t4.___GlowController__displacementTicker_isSet = true;
+ t4.___GlowController__displacementTicker = t1;
+ }
+ return t4;
+ },
+ GlowingOverscrollIndicator: function GlowingOverscrollIndicator(t0, t1, t2, t3) {
+ var _ = this;
+ _.axisDirection = t0;
+ _.color = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ _GlowingOverscrollIndicatorState: function _GlowingOverscrollIndicatorState(t0, t1, t2) {
+ var _ = this;
+ _._lastNotificationType = _._leadingAndTrailingListener = _._trailingController = _._leadingController = null;
+ _._accepted = t0;
+ _.TickerProviderStateMixin__tickers = t1;
+ _._widget = null;
+ _._debugLifecycleState = t2;
+ _._framework$_element = null;
+ },
+ _GlowState: function _GlowState(t0) {
+ this._overscroll_indicator$_name = t0;
+ },
+ _GlowController: function _GlowController(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._overscroll_indicator$_state = t0;
+ _.___GlowController__glowController = null;
+ _.___GlowController__glowController_isSet = false;
+ _._pullRecedeTimer = null;
+ _._paintOffsetScrollPixels = _._paintOffset = 0;
+ _._glowOpacityTween = t1;
+ _.___GlowController__glowOpacity = null;
+ _.___GlowController__glowOpacity_isSet = false;
+ _._glowSizeTween = t2;
+ _.___GlowController__glowSize = null;
+ _.___GlowController__glowSize_isSet = false;
+ _.___GlowController__displacementTicker = null;
+ _.___GlowController__displacementTicker_isSet = false;
+ _._displacementTickerLastElapsed = null;
+ _._displacementTarget = t3;
+ _._displacement = t4;
+ _._pullDistance = 0;
+ _._overscroll_indicator$_color = t5;
+ _._axis = t6;
+ _.ChangeNotifier__listeners = t7;
+ },
+ _GlowController_pull_closure: function _GlowController_pull_closure(t0) {
+ this.$this = t0;
+ },
+ _GlowingOverscrollIndicatorPainter: function _GlowingOverscrollIndicatorPainter(t0, t1, t2, t3) {
+ var _ = this;
+ _.leadingController = t0;
+ _.trailingController = t1;
+ _.axisDirection = t2;
+ _._repaint = t3;
+ },
+ OverscrollIndicatorNotification: function OverscrollIndicatorNotification(t0, t1) {
+ this.leading = t0;
+ this.ViewportNotificationMixin__depth = t1;
+ },
+ _OverscrollIndicatorNotification_Notification_ViewportNotificationMixin: function _OverscrollIndicatorNotification_Notification_ViewportNotificationMixin() {
+ },
+ __GlowingOverscrollIndicatorState_State_TickerProviderStateMixin: function __GlowingOverscrollIndicatorState_State_TickerProviderStateMixin() {
+ },
+ PerformanceOverlay: function PerformanceOverlay(t0, t1, t2, t3) {
+ var _ = this;
+ _.optionsMask = t0;
+ _.checkerboardRasterCacheImages = t1;
+ _.checkerboardOffscreenLayers = t2;
+ _.key = t3;
+ },
+ BouncingScrollPhysics__applyFriction: function(extentOutside, absDelta, gamma) {
+ var deltaToLimit, total;
+ if (extentOutside > 0) {
+ deltaToLimit = extentOutside / gamma;
+ if (absDelta < deltaToLimit)
+ return absDelta * gamma;
+ total = 0 + extentOutside;
+ absDelta -= deltaToLimit;
+ } else
+ total = 0;
+ return total + absDelta;
+ },
+ ScrollPhysics: function ScrollPhysics() {
+ },
+ RangeMaintainingScrollPhysics: function RangeMaintainingScrollPhysics(t0) {
+ this.parent = t0;
+ },
+ BouncingScrollPhysics: function BouncingScrollPhysics(t0) {
+ this.parent = t0;
+ },
+ ClampingScrollPhysics: function ClampingScrollPhysics(t0) {
+ this.parent = t0;
+ },
+ AlwaysScrollableScrollPhysics: function AlwaysScrollableScrollPhysics(t0) {
+ this.parent = t0;
+ },
+ DefaultTextStyle$: function(child, key, maxLines, overflow, softWrap, style, textAlign, textHeightBehavior, textWidthBasis) {
+ return new L.DefaultTextStyle(style, textAlign, softWrap, overflow, maxLines, textWidthBasis, textHeightBehavior, child, key);
+ },
+ DefaultTextStyle_of: function(context) {
+ var t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.DefaultTextStyle);
+ return t1 == null ? C.DefaultTextStyle_Z4e : t1;
+ },
+ DefaultTextHeightBehavior_of: function(context) {
+ var t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.DefaultTextHeightBehavior);
+ return t1 == null ? null : t1.get$textHeightBehavior(t1);
+ },
+ Text$: function(data, maxLines, overflow, semanticsLabel, style, textAlign) {
+ return new L.Text(data, style, textAlign, overflow, maxLines, semanticsLabel, null);
+ },
+ DefaultTextStyle: function DefaultTextStyle(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.style = t0;
+ _.textAlign = t1;
+ _.softWrap = t2;
+ _.overflow = t3;
+ _.maxLines = t4;
+ _.textWidthBasis = t5;
+ _.textHeightBehavior = t6;
+ _.child = t7;
+ _.key = t8;
+ },
+ _NullWidget1: function _NullWidget1(t0) {
+ this.key = t0;
+ },
+ Text: function Text(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.data = t0;
+ _.style = t1;
+ _.textAlign = t2;
+ _.overflow = t3;
+ _.maxLines = t4;
+ _.semanticsLabel = t5;
+ _.key = t6;
+ },
+ Visibility: function Visibility(t0, t1, t2) {
+ this.child = t0;
+ this.visible = t1;
+ this.key = t2;
+ },
+ JsUrlStrategy0: function JsUrlStrategy0() {
+ },
+ Signaling$: function(_host) {
+ var t1 = type$.legacy_String,
+ t2 = type$.dynamic,
+ t3 = type$.legacy_bool;
+ return new L.Signaling(new P.JsonEncoder(null), new P.JsonDecoder(null), Q.randomString(6, 48, 57), _host, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.legacy_Session), H.setRuntimeTypeInfo([], type$.JSArray_legacy_MediaStream), P.LinkedHashMap_LinkedHashMap$_literal(["iceServers", H.setRuntimeTypeInfo([P.LinkedHashMap_LinkedHashMap$_literal(["url", "stun:stun.l.google.com:19302"], t1, t1)], type$.JSArray_legacy_Map_of_legacy_String_and_legacy_String)], t1, t2), P.LinkedHashMap_LinkedHashMap$_literal(["mandatory", P.LinkedHashMap_LinkedHashMap$_empty(t2, t2), "optional", H.setRuntimeTypeInfo([P.LinkedHashMap_LinkedHashMap$_literal(["DtlsSrtpKeyAgreement", true], t1, t3)], type$.JSArray_legacy_Map_of_legacy_String_and_legacy_bool)], t1, t2), P.LinkedHashMap_LinkedHashMap$_literal(["mandatory", P.LinkedHashMap_LinkedHashMap$_literal(["OfferToReceiveAudio", false, "OfferToReceiveVideo", false], t1, t3), "optional", []], t1, t2));
+ },
+ SignalingState: function SignalingState(t0) {
+ this._signaling$_name = t0;
+ },
+ CallState: function CallState(t0) {
+ this._signaling$_name = t0;
+ },
+ Session: function Session(t0, t1, t2) {
+ var _ = this;
+ _.pid = t0;
+ _.sid = t1;
+ _.dc = _.pc = null;
+ _.remoteCandidates = t2;
+ },
+ Signaling: function Signaling(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _._encoder = t0;
+ _._decoder = t1;
+ _._selfId = t2;
+ _._socket = null;
+ _._signaling$_host = t3;
+ _._turnCredential = null;
+ _._sessions = t4;
+ _._localStream = null;
+ _._remoteStreams = t5;
+ _.onDataChannel = _.onDataChannelMessage = _.onPeersUpdate = _.onRemoveRemoteStream = _.onAddRemoteStream = _.onLocalStream = _.onCallStateChange = _.onSignalingStateChange = null;
+ _._iceServers = t6;
+ _._config = t7;
+ _._dcConstraints = t8;
+ },
+ Signaling_onMessage_closure: function Signaling_onMessage_closure(t0) {
+ this.newSession = t0;
+ },
+ Signaling_connect_closure: function Signaling_connect_closure(t0) {
+ this.$this = t0;
+ },
+ Signaling_connect_closure0: function Signaling_connect_closure0(t0) {
+ this.$this = t0;
+ },
+ Signaling_connect_closure1: function Signaling_connect_closure1(t0) {
+ this.$this = t0;
+ },
+ Signaling__createSession_closure: function Signaling__createSession_closure(t0, t1) {
+ this.$this = t0;
+ this.pc = t1;
+ },
+ Signaling__createSession_closure0: function Signaling__createSession_closure0(t0, t1, t2) {
+ this.$this = t0;
+ this.peerId = t1;
+ this.sessionId = t2;
+ },
+ Signaling__createSession_closure1: function Signaling__createSession_closure1() {
+ },
+ Signaling__createSession_closure2: function Signaling__createSession_closure2(t0, t1) {
+ this.$this = t0;
+ this.newSession = t1;
+ },
+ Signaling__createSession_closure3: function Signaling__createSession_closure3(t0, t1) {
+ this.$this = t0;
+ this.newSession = t1;
+ },
+ Signaling__createSession__closure: function Signaling__createSession__closure(t0) {
+ this.stream = t0;
+ },
+ Signaling__createSession_closure4: function Signaling__createSession_closure4(t0, t1) {
+ this.$this = t0;
+ this.newSession = t1;
+ },
+ Signaling__addDataChannel_closure: function Signaling__addDataChannel_closure() {
+ },
+ Signaling__addDataChannel_closure0: function Signaling__addDataChannel_closure0(t0, t1, t2) {
+ this.$this = t0;
+ this.session = t1;
+ this.channel = t2;
+ },
+ Signaling__cleanSessions_closure: function Signaling__cleanSessions_closure() {
+ },
+ Signaling__cleanSessions_closure0: function Signaling__cleanSessions_closure0() {
+ },
+ Signaling__closeSessionByPeerId_closure: function Signaling__closeSessionByPeerId_closure(t0, t1) {
+ this._box_0 = t0;
+ this.peerId = t1;
+ },
+ Signaling__closeSession_closure: function Signaling__closeSession_closure() {
+ },
+ RouteItem: function RouteItem(t0, t1) {
+ this.title = t0;
+ this.push = t1;
+ },
+ WindowsStyle: function WindowsStyle(t0, t1, t2, t3) {
+ var _ = this;
+ _.separatorPattern = t0;
+ _.needsSeparatorPattern = t1;
+ _.rootPattern = t2;
+ _.relativeRootPattern = t3;
+ },
+ getTurnCredential: function(host, port) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_Map_dynamic_dynamic),
+ $async$returnValue, data, t1, res;
+ var $async$getTurnCredential = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait(G.get("https://" + H.S(host) + ":" + port + "/api/turn?service=turn&username=flutter-webrtc"), $async$getTurnCredential);
+ case 3:
+ // returning from await.
+ res = $async$result;
+ if (res.statusCode === 200) {
+ data = C.C_JsonCodec.decode$1(0, B.encodingForCharset(U._contentTypeForHeaders(res.headers).parameters._collection$_map.$index(0, "charset")).decode$1(0, res.bodyBytes));
+ P.print("getTurnCredential:response => " + H.S(data) + ".");
+ $async$returnValue = data;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ t1 = type$.dynamic;
+ $async$returnValue = P.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$getTurnCredential, $async$completer);
+ }
+ },
+ D = {
+ CupertinoRouteTransitionMixin__isPopGestureEnabled: function(route) {
+ var t1;
+ if (route.get$isFirst())
+ return false;
+ if (route.get$willHandlePopInternally())
+ return false;
+ t1 = route._animationProxy;
+ if (t1.get$status(t1) !== C.AnimationStatus_3)
+ return false;
+ t1 = route._secondaryAnimationProxy;
+ if (t1.get$status(t1) !== C.AnimationStatus_0)
+ return false;
+ if (route._navigator$_navigator.userGestureInProgressNotifier._change_notifier$_value)
+ return false;
+ return true;
+ },
+ CupertinoRouteTransitionMixin_buildPageTransitions: function(route, context, animation, secondaryAnimation, child, $T) {
+ var t4, t5, t6, t7,
+ t1 = route._navigator$_navigator.userGestureInProgressNotifier._change_notifier$_value,
+ t2 = t1 ? animation : S.CurvedAnimation$(C.Cubic_izR, animation, C.Cubic_OcD),
+ t3 = $.$get$_kRightMiddleTween();
+ t2.toString;
+ t4 = type$.Animation_double;
+ t4._as(t2);
+ t3.toString;
+ t5 = t1 ? secondaryAnimation : S.CurvedAnimation$(C.Cubic_izR, secondaryAnimation, C.Cubic_OcD);
+ t6 = $.$get$_kMiddleLeftTween();
+ t5.toString;
+ t4._as(t5);
+ t6.toString;
+ t1 = t1 ? animation : S.CurvedAnimation$(C.Cubic_izR, animation, null);
+ t7 = $.$get$_kGradientShadowTween();
+ t1.toString;
+ t4._as(t1);
+ t7.toString;
+ return new D.CupertinoPageTransition(new R._AnimatedEvaluation(t2, t3, t3.$ti._eval$1("_AnimatedEvaluation")), new R._AnimatedEvaluation(t5, t6, t6.$ti._eval$1("_AnimatedEvaluation")), new R._AnimatedEvaluation(t1, t7, H._instanceType(t7)._eval$1("_AnimatedEvaluation")), new D._CupertinoBackGestureDetector(child, new D.CupertinoRouteTransitionMixin_buildPageTransitions_closure(route), new D.CupertinoRouteTransitionMixin_buildPageTransitions_closure0(route, $T), null, $T._eval$1("_CupertinoBackGestureDetector<0>")), null);
+ },
+ _CupertinoEdgeShadowDecoration_lerp: function(a, b, t) {
+ var t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ t1 = t1 ? null : a.edgeGradient;
+ return new D._CupertinoEdgeShadowDecoration(T.LinearGradient_lerp(t1, b == null ? null : b.edgeGradient, t));
+ },
+ CupertinoRouteTransitionMixin_buildPageTransitions_closure: function CupertinoRouteTransitionMixin_buildPageTransitions_closure(t0) {
+ this.route = t0;
+ },
+ CupertinoRouteTransitionMixin_buildPageTransitions_closure0: function CupertinoRouteTransitionMixin_buildPageTransitions_closure0(t0, t1) {
+ this.route = t0;
+ this.T = t1;
+ },
+ CupertinoPageTransition: function CupertinoPageTransition(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._primaryPositionAnimation = t0;
+ _._secondaryPositionAnimation = t1;
+ _._primaryShadowAnimation = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ _CupertinoBackGestureDetector: function _CupertinoBackGestureDetector(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.child = t0;
+ _.enabledCallback = t1;
+ _.onStartPopGesture = t2;
+ _.key = t3;
+ _.$ti = t4;
+ },
+ _CupertinoBackGestureDetectorState: function _CupertinoBackGestureDetectorState(t0, t1) {
+ var _ = this;
+ _.___CupertinoBackGestureDetectorState__recognizer = _._backGestureController = null;
+ _.___CupertinoBackGestureDetectorState__recognizer_isSet = false;
+ _._widget = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ _.$ti = t1;
+ },
+ _CupertinoBackGestureController: function _CupertinoBackGestureController(t0, t1) {
+ this.controller = t0;
+ this.navigator = t1;
+ },
+ _CupertinoBackGestureController_dragEnd__animationStatusCallback_set: function _CupertinoBackGestureController_dragEnd__animationStatusCallback_set(t0) {
+ this._box_0 = t0;
+ },
+ _CupertinoBackGestureController_dragEnd__animationStatusCallback_get: function _CupertinoBackGestureController_dragEnd__animationStatusCallback_get(t0) {
+ this._box_0 = t0;
+ },
+ _CupertinoBackGestureController_dragEnd_closure: function _CupertinoBackGestureController_dragEnd_closure(t0, t1) {
+ this.$this = t0;
+ this._animationStatusCallback_get = t1;
+ },
+ _CupertinoEdgeShadowDecoration: function _CupertinoEdgeShadowDecoration(t0) {
+ this.edgeGradient = t0;
+ },
+ _CupertinoEdgeShadowPainter: function _CupertinoEdgeShadowPainter(t0, t1) {
+ this._route$_decoration = t0;
+ this.onChanged = t1;
+ },
+ Key: function Key() {
+ },
+ LocalKey: function LocalKey() {
+ },
+ ValueKey: function ValueKey(t0, t1) {
+ this.value = t0;
+ this.$ti = t1;
+ },
+ _TypeLiteral: function _TypeLiteral(t0) {
+ this.$ti = t0;
+ },
+ GestureDisposition: function GestureDisposition(t0) {
+ this._arena$_name = t0;
+ },
+ GestureArenaMember: function GestureArenaMember() {
+ },
+ GestureArenaEntry: function GestureArenaEntry(t0, t1, t2) {
+ this._arena = t0;
+ this._arena$_pointer = t1;
+ this._member = t2;
+ },
+ _GestureArena: function _GestureArena(t0) {
+ var _ = this;
+ _.members = t0;
+ _.isOpen = true;
+ _.hasPendingSweep = _.isHeld = false;
+ _.eagerWinner = null;
+ },
+ _GestureArena_toString_closure: function _GestureArena_toString_closure(t0) {
+ this.$this = t0;
+ },
+ GestureArenaManager: function GestureArenaManager(t0) {
+ this._arenas = t0;
+ },
+ GestureArenaManager_add_closure: function GestureArenaManager_add_closure(t0, t1) {
+ this.$this = t0;
+ this.pointer = t1;
+ },
+ GestureArenaManager__tryToResolveArena_closure: function GestureArenaManager__tryToResolveArena_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.pointer = t1;
+ this.state = t2;
+ },
+ _maxBy: function(input, keyFunc, $T) {
+ var _maxValue_set, maxKey, _i, value, key, _box_0 = {};
+ _box_0.maxValue = null;
+ _box_0._maxValue_isSet = false;
+ _maxValue_set = new D._maxBy__maxValue_set(_box_0, $T);
+ for (maxKey = null, _i = 0; _i < 4; ++_i) {
+ value = input[_i];
+ key = keyFunc.call$1(value);
+ if (maxKey == null || key > maxKey) {
+ _maxValue_set.call$1(value);
+ maxKey = key;
+ }
+ }
+ return new D._maxBy__maxValue_get(_box_0, $T).call$0();
+ },
+ MaterialPointArcTween: function MaterialPointArcTween(t0, t1) {
+ var _ = this;
+ _._arc$_dirty = true;
+ _._endAngle = _._beginAngle = _._radius = _._center = null;
+ _.begin = t0;
+ _.end = t1;
+ },
+ MaterialPointArcTween__initialize_sweepAngle: function MaterialPointArcTween__initialize_sweepAngle(t0, t1) {
+ this.$this = t0;
+ this.distanceFromAtoB = t1;
+ },
+ _CornerId: function _CornerId(t0) {
+ this._arc$_name = t0;
+ },
+ _Diagonal: function _Diagonal(t0, t1) {
+ this.beginId = t0;
+ this.endId = t1;
+ },
+ _maxBy__maxValue_set: function _maxBy__maxValue_set(t0, t1) {
+ this._box_0 = t0;
+ this.T = t1;
+ },
+ _maxBy__maxValue_get: function _maxBy__maxValue_get(t0, t1) {
+ this._box_0 = t0;
+ this.T = t1;
+ },
+ MaterialRectArcTween: function MaterialRectArcTween(t0, t1) {
+ var _ = this;
+ _._arc$_dirty = true;
+ _.__MaterialRectArcTween__beginArc = null;
+ _.__MaterialRectArcTween__beginArc_isSet = false;
+ _.__MaterialRectArcTween__endArc = null;
+ _.__MaterialRectArcTween__endArc_isSet = false;
+ _.begin = t0;
+ _.end = t1;
+ },
+ MaterialRectArcTween__initialize_closure: function MaterialRectArcTween__initialize_closure(t0, t1) {
+ this.$this = t0;
+ this.centersVector = t1;
+ },
+ BottomAppBarTheme: function BottomAppBarTheme(t0, t1, t2) {
+ this.color = t0;
+ this.elevation = t1;
+ this.shape = t2;
+ },
+ _BottomAppBarTheme_Object_Diagnosticable: function _BottomAppBarTheme_Object_Diagnosticable() {
+ },
+ ShaderWarmUp: function ShaderWarmUp() {
+ },
+ DefaultShaderWarmUp: function DefaultShaderWarmUp() {
+ },
+ FrictionSimulation: function FrictionSimulation(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._drag = t0;
+ _._dragLog = t1;
+ _._friction_simulation$_x = t2;
+ _._v = t3;
+ _.tolerance = t4;
+ },
+ _isWhitespace: function(codeUnit) {
+ switch (codeUnit) {
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 28:
+ case 29:
+ case 30:
+ case 31:
+ case 32:
+ case 160:
+ case 5760:
+ case 8192:
+ case 8193:
+ case 8194:
+ case 8195:
+ case 8196:
+ case 8197:
+ case 8198:
+ case 8199:
+ case 8200:
+ case 8201:
+ case 8202:
+ case 8239:
+ case 8287:
+ case 12288:
+ break;
+ default:
+ return false;
+ }
+ return true;
+ },
+ SelectionChangedCause: function SelectionChangedCause(t0) {
+ this._editable$_name = t0;
+ },
+ TextSelectionPoint: function TextSelectionPoint(t0, t1) {
+ this.point = t0;
+ this.direction = t1;
+ },
+ RenderEditable: function RenderEditable(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34) {
+ var _ = this;
+ _.onSelectionChanged = t0;
+ _._textLayoutLastMinWidth = _._textLayoutLastMaxWidth = null;
+ _.onCaretChanged = t1;
+ _.ignorePointer = t2;
+ _._devicePixelRatio = t3;
+ _._obscuringCharacter = t4;
+ _._obscureText = t5;
+ _.textSelectionDelegate = t6;
+ _._lastCaretRect = null;
+ _._selectionStartInViewport = t7;
+ _._selectionEndInViewport = t8;
+ _._cursorResetLocation = -1;
+ _._wasSelectingVerticallyWithKeyboard = false;
+ _._cachedPlainText = null;
+ _._editable$_textPainter = t9;
+ _._cursorColor = t10;
+ _._backgroundCursorColor = t11;
+ _._showCursor = t12;
+ _._listenerAttached = _._editable$_hasFocus = false;
+ _._forceLine = t13;
+ _._readOnly = t14;
+ _._editable$_maxLines = t15;
+ _._minLines = t16;
+ _._editable$_expands = t17;
+ _._selectionColor = t18;
+ _._selectionRects = null;
+ _._selection = t19;
+ _._editable$_offset = t20;
+ _._cursorWidth = t21;
+ _._cursorHeight = t22;
+ _._paintCursorOnTop = t23;
+ _._cursorOffset = t24;
+ _._cursorRadius = t25;
+ _._editable$_startHandleLayerLink = t26;
+ _._editable$_endHandleLayerLink = t27;
+ _._floatingCursorOn = false;
+ _.__RenderEditable__floatingCursorOffset = null;
+ _.__RenderEditable__floatingCursorOffset_isSet = false;
+ _.__RenderEditable__floatingCursorTextPosition = null;
+ _.__RenderEditable__floatingCursorTextPosition_isSet = false;
+ _._selectionHeightStyle = t28;
+ _._selectionWidthStyle = t29;
+ _._enableInteractiveSelection = t30;
+ _._promptRectRange = t31;
+ _._editable$_maxScrollExtent = 0;
+ _._editable$_clipBehavior = t32;
+ _.__RenderEditable__tap = null;
+ _.__RenderEditable__tap_isSet = false;
+ _.__RenderEditable__longPress = null;
+ _.__RenderEditable__longPress_isSet = false;
+ _.__RenderEditable__caretPrototype = _._lastTapDownPosition = null;
+ _.__RenderEditable__caretPrototype_isSet = false;
+ _._relativeOrigin = t33;
+ _._previousOffset = null;
+ _._resetOriginOnBottom = _._resetOriginOnTop = _._resetOriginOnRight = _._resetOriginOnLeft = false;
+ _._resetFloatingCursorAnimationValue = null;
+ _._promptRectPaint = t34;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = _._clipRectLayer = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderEditable_getRectForComposingRange_closure: function RenderEditable_getRectForComposingRange_closure() {
+ },
+ _RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin: function _RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin() {
+ },
+ EditableText$: function(autocorrect, autocorrectionTextRectColor, autofillHints, autofocus, backgroundCursorColor, controller, cursorColor, cursorHeight, cursorOffset, cursorOpacityAnimates, cursorRadius, cursorWidth, dragStartBehavior, enableInteractiveSelection, enableSuggestions, expands, focusNode, inputFormatters, key, keyboardAppearance, keyboardType, maxLines, minLines, mouseCursor, obscureText, obscuringCharacter, onAppPrivateCommand, onChanged, onEditingComplete, onSelectionChanged, onSelectionHandleTapped, onSubmitted, paintCursorAboveText, readOnly, rendererIgnoresPointer, restorationId, scrollController, scrollPadding, scrollPhysics, selectionColor, selectionControls, selectionHeightStyle, selectionWidthStyle, showCursor, showSelectionHandles, smartDashesType, smartQuotesType, strutStyle, style, textAlign, textCapitalization, textDirection, textInputAction, toolbarOptions) {
+ var t1, t2;
+ if (maxLines === 1) {
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_TextInputFormatter);
+ t1.push($.$get$FilteringTextInputFormatter_singleLineFormatter());
+ t2 = C.JSArray_methods.get$iterator(inputFormatters);
+ for (; t2.moveNext$0();)
+ t1.push(t2.get$current(t2));
+ } else
+ t1 = inputFormatters;
+ return new D.EditableText(controller, focusNode, obscuringCharacter, false, readOnly, toolbarOptions, showSelectionHandles, !readOnly, true, smartDashesType, smartQuotesType, true, style, strutStyle, textAlign, textDirection, textCapitalization, cursorColor, autocorrectionTextRectColor, backgroundCursorColor, maxLines, minLines, false, false, selectionColor, selectionControls, keyboardType, textInputAction, onChanged, onEditingComplete, onSubmitted, onAppPrivateCommand, onSelectionChanged, onSelectionHandleTapped, t1, mouseCursor, true, cursorWidth, cursorHeight, cursorRadius, cursorOpacityAnimates, cursorOffset, paintCursorAboveText, selectionHeightStyle, selectionWidthStyle, keyboardAppearance, scrollPadding, true, dragStartBehavior, scrollController, scrollPhysics, autofillHints, restorationId, key);
+ },
+ TextEditingController: function TextEditingController(t0, t1) {
+ this._change_notifier$_value = t0;
+ this.ChangeNotifier__listeners = t1;
+ },
+ ToolbarOptions: function ToolbarOptions(t0, t1) {
+ this.copy = t0;
+ this.cut = t1;
+ },
+ EditableText: function EditableText(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53) {
+ var _ = this;
+ _.controller = t0;
+ _.focusNode = t1;
+ _.obscuringCharacter = t2;
+ _.obscureText = t3;
+ _.readOnly = t4;
+ _.toolbarOptions = t5;
+ _.showSelectionHandles = t6;
+ _.showCursor = t7;
+ _.autocorrect = t8;
+ _.smartDashesType = t9;
+ _.smartQuotesType = t10;
+ _.enableSuggestions = t11;
+ _.style = t12;
+ _._editable_text$_strutStyle = t13;
+ _.textAlign = t14;
+ _.textDirection = t15;
+ _.textCapitalization = t16;
+ _.cursorColor = t17;
+ _.autocorrectionTextRectColor = t18;
+ _.backgroundCursorColor = t19;
+ _.maxLines = t20;
+ _.minLines = t21;
+ _.expands = t22;
+ _.autofocus = t23;
+ _.selectionColor = t24;
+ _.selectionControls = t25;
+ _.keyboardType = t26;
+ _.textInputAction = t27;
+ _.onChanged = t28;
+ _.onEditingComplete = t29;
+ _.onSubmitted = t30;
+ _.onAppPrivateCommand = t31;
+ _.onSelectionChanged = t32;
+ _.onSelectionHandleTapped = t33;
+ _.inputFormatters = t34;
+ _.mouseCursor = t35;
+ _.rendererIgnoresPointer = t36;
+ _.cursorWidth = t37;
+ _.cursorHeight = t38;
+ _.cursorRadius = t39;
+ _.cursorOpacityAnimates = t40;
+ _.cursorOffset = t41;
+ _.paintCursorAboveText = t42;
+ _.selectionHeightStyle = t43;
+ _.selectionWidthStyle = t44;
+ _.keyboardAppearance = t45;
+ _.scrollPadding = t46;
+ _.enableInteractiveSelection = t47;
+ _.dragStartBehavior = t48;
+ _.scrollController = t49;
+ _.scrollPhysics = t50;
+ _.autofillHints = t51;
+ _.restorationId = t52;
+ _.key = t53;
+ },
+ EditableTextState: function EditableTextState(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _._cursorTimer = null;
+ _._targetCursorVisibility = false;
+ _._cursorVisibilityNotifier = t0;
+ _._editableKey = t1;
+ _.__EditableTextState__cursorBlinkOpacityController = _._scrollController = _._selectionOverlay = _._textInputConnection = null;
+ _.__EditableTextState__cursorBlinkOpacityController_isSet = false;
+ _._toolbarLayerLink = t2;
+ _._startHandleLayerLink = t3;
+ _._endHandleLayerLink = t4;
+ _._didAutoFocus = false;
+ _._currentAutofillScope = _._editable_text$_focusAttachment = null;
+ _._isInAutofillContext = false;
+ _.__EditableTextState__floatingCursorResetController = null;
+ _.__EditableTextState__floatingCursorResetController_isSet = false;
+ _._lastBoundedOffset = _._pointOffsetOrigin = _._lastTextPosition = _._startCaretRect = _._lastKnownRemoteTextEditingValue = null;
+ _._batchEditDepth = 0;
+ _._textChangedSinceLastCaretUpdate = false;
+ _._currentCaretRect = null;
+ _._showCaretOnScreenScheduled = false;
+ _.__EditableTextState__lastBottomViewInset = null;
+ _.__EditableTextState__lastBottomViewInset_isSet = false;
+ _.__EditableTextState__whitespaceFormatter = null;
+ _.__EditableTextState__whitespaceFormatter_isSet = false;
+ _._obscureShowCharTicksPending = 0;
+ _._currentPromptRectRange = _._obscureLatestCharIndex = null;
+ _.TickerProviderStateMixin__tickers = t5;
+ _.AutomaticKeepAliveClientMixin__keepAliveHandle = t6;
+ _._widget = null;
+ _._debugLifecycleState = t7;
+ _._framework$_element = null;
+ },
+ EditableTextState_initState_closure: function EditableTextState_initState_closure(t0) {
+ this.$this = t0;
+ },
+ EditableTextState__showCaretOnScreen_closure: function EditableTextState__showCaretOnScreen_closure(t0) {
+ this.$this = t0;
+ },
+ EditableTextState__formatAndSetValue_closure: function EditableTextState__formatAndSetValue_closure(t0) {
+ this.$this = t0;
+ },
+ EditableTextState__cursorTick_closure: function EditableTextState__cursorTick_closure(t0) {
+ this.$this = t0;
+ },
+ EditableTextState__didChangeTextEditingValue_closure: function EditableTextState__didChangeTextEditingValue_closure() {
+ },
+ EditableTextState__updateSizeAndTransform_closure: function EditableTextState__updateSizeAndTransform_closure(t0) {
+ this.$this = t0;
+ },
+ EditableTextState__updateComposingRectIfNeeded_closure: function EditableTextState__updateComposingRectIfNeeded_closure(t0) {
+ this.$this = t0;
+ },
+ EditableTextState_showAutocorrectionPromptRect_closure: function EditableTextState_showAutocorrectionPromptRect_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.start = t1;
+ this.end = t2;
+ },
+ EditableTextState__semanticsOnCopy_closure: function EditableTextState__semanticsOnCopy_closure(t0, t1) {
+ this.$this = t0;
+ this.controls = t1;
+ },
+ EditableTextState__semanticsOnCut_closure: function EditableTextState__semanticsOnCut_closure(t0, t1) {
+ this.$this = t0;
+ this.controls = t1;
+ },
+ EditableTextState__semanticsOnPaste_closure: function EditableTextState__semanticsOnPaste_closure(t0, t1) {
+ this.$this = t0;
+ this.controls = t1;
+ },
+ EditableTextState_build_closure: function EditableTextState_build_closure(t0, t1) {
+ this.$this = t0;
+ this.controls = t1;
+ },
+ _Editable: function _Editable(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40) {
+ var _ = this;
+ _.textSpan = t0;
+ _.value = t1;
+ _.cursorColor = t2;
+ _.startHandleLayerLink = t3;
+ _.endHandleLayerLink = t4;
+ _.backgroundCursorColor = t5;
+ _.showCursor = t6;
+ _.forceLine = t7;
+ _.readOnly = t8;
+ _.hasFocus = t9;
+ _.maxLines = t10;
+ _.minLines = t11;
+ _.expands = t12;
+ _.strutStyle = t13;
+ _.selectionColor = t14;
+ _.textScaleFactor = t15;
+ _.textAlign = t16;
+ _.textDirection = t17;
+ _.locale = t18;
+ _.obscuringCharacter = t19;
+ _.obscureText = t20;
+ _.textHeightBehavior = t21;
+ _.textWidthBasis = t22;
+ _.offset = t23;
+ _.onSelectionChanged = t24;
+ _.onCaretChanged = t25;
+ _.rendererIgnoresPointer = t26;
+ _.cursorWidth = t27;
+ _.cursorHeight = t28;
+ _.cursorRadius = t29;
+ _.cursorOffset = t30;
+ _.paintCursorAboveText = t31;
+ _.selectionHeightStyle = t32;
+ _.selectionWidthStyle = t33;
+ _.enableInteractiveSelection = t34;
+ _.textSelectionDelegate = t35;
+ _.devicePixelRatio = t36;
+ _.promptRectRange = t37;
+ _.promptRectColor = t38;
+ _.clipBehavior = t39;
+ _.key = t40;
+ },
+ _WhitespaceDirectionalityFormatter: function _WhitespaceDirectionalityFormatter(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._ltrRegExp = t0;
+ _._rtlRegExp = t1;
+ _._whitespaceRegExp = t2;
+ _._baseDirection = t3;
+ _._previousNonWhitespaceDirection = t4;
+ _._hasOpposingDirection = false;
+ },
+ _WhitespaceDirectionalityFormatter_formatEditUpdate_addToLength: function _WhitespaceDirectionalityFormatter_formatEditUpdate_addToLength(t0, t1) {
+ this._box_0 = t0;
+ this.outputCodepoints = t1;
+ },
+ _WhitespaceDirectionalityFormatter_formatEditUpdate_subtractFromLength: function _WhitespaceDirectionalityFormatter_formatEditUpdate_subtractFromLength(t0, t1) {
+ this._box_0 = t0;
+ this.outputCodepoints = t1;
+ },
+ _EditableTextState_State_AutomaticKeepAliveClientMixin: function _EditableTextState_State_AutomaticKeepAliveClientMixin() {
+ },
+ _EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver: function _EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver() {
+ },
+ _EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin: function _EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin() {
+ },
+ GestureDetector$: function(behavior, child, dragStartBehavior, excludeFromSemantics, key, onDoubleTap, onHorizontalDragCancel, onHorizontalDragDown, onHorizontalDragEnd, onHorizontalDragUpdate, onLongPress, onPanDown, onPanEnd, onPanStart, onPanUpdate, onTap, onTapCancel, onTapDown, onTapUp, onVerticalDragEnd, onVerticalDragStart, onVerticalDragUpdate) {
+ return new D.GestureDetector(child, onTapDown, onTapUp, onTap, onTapCancel, onDoubleTap, onLongPress, onVerticalDragStart, onVerticalDragUpdate, onVerticalDragEnd, onHorizontalDragDown, onHorizontalDragUpdate, onHorizontalDragEnd, onHorizontalDragCancel, onPanDown, onPanStart, onPanUpdate, onPanEnd, behavior, excludeFromSemantics, dragStartBehavior, key);
+ },
+ GestureRecognizerFactory: function GestureRecognizerFactory() {
+ },
+ GestureRecognizerFactoryWithHandlers: function GestureRecognizerFactoryWithHandlers(t0, t1, t2) {
+ this._constructor = t0;
+ this._initializer = t1;
+ this.$ti = t2;
+ },
+ GestureDetector: function GestureDetector(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21) {
+ var _ = this;
+ _.child = t0;
+ _.onTapDown = t1;
+ _.onTapUp = t2;
+ _.onTap = t3;
+ _.onTapCancel = t4;
+ _.onDoubleTap = t5;
+ _.onLongPress = t6;
+ _.onVerticalDragStart = t7;
+ _.onVerticalDragUpdate = t8;
+ _.onVerticalDragEnd = t9;
+ _.onHorizontalDragDown = t10;
+ _.onHorizontalDragUpdate = t11;
+ _.onHorizontalDragEnd = t12;
+ _.onHorizontalDragCancel = t13;
+ _.onPanDown = t14;
+ _.onPanStart = t15;
+ _.onPanUpdate = t16;
+ _.onPanEnd = t17;
+ _.behavior = t18;
+ _.excludeFromSemantics = t19;
+ _.dragStartBehavior = t20;
+ _.key = t21;
+ },
+ GestureDetector_build_closure: function GestureDetector_build_closure(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure0: function GestureDetector_build_closure0(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure1: function GestureDetector_build_closure1(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure2: function GestureDetector_build_closure2(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure3: function GestureDetector_build_closure3(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure4: function GestureDetector_build_closure4(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure5: function GestureDetector_build_closure5(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure6: function GestureDetector_build_closure6(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure7: function GestureDetector_build_closure7(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure8: function GestureDetector_build_closure8(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure9: function GestureDetector_build_closure9(t0) {
+ this.$this = t0;
+ },
+ GestureDetector_build_closure10: function GestureDetector_build_closure10(t0) {
+ this.$this = t0;
+ },
+ RawGestureDetector: function RawGestureDetector(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.child = t0;
+ _.gestures = t1;
+ _.behavior = t2;
+ _.excludeFromSemantics = t3;
+ _.semantics = t4;
+ _.key = t5;
+ },
+ RawGestureDetectorState: function RawGestureDetectorState(t0, t1) {
+ var _ = this;
+ _._recognizers = t0;
+ _._widget = _._gesture_detector$_semantics = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ _GestureSemantics: function _GestureSemantics(t0, t1, t2) {
+ this.assignSemantics = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ SemanticsGestureDelegate: function SemanticsGestureDelegate() {
+ },
+ _DefaultSemanticsGestureDelegate: function _DefaultSemanticsGestureDelegate(t0) {
+ this.detectorState = t0;
+ },
+ _DefaultSemanticsGestureDelegate__getTapHandler_closure: function _DefaultSemanticsGestureDelegate__getTapHandler_closure(t0) {
+ this.tap = t0;
+ },
+ _DefaultSemanticsGestureDelegate__getLongPressHandler_closure: function _DefaultSemanticsGestureDelegate__getLongPressHandler_closure(t0) {
+ this.longPress = t0;
+ },
+ _DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure: function _DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure(t0) {
+ this.horizontal = t0;
+ },
+ _DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure0: function _DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure0(t0) {
+ this.pan = t0;
+ },
+ _DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure1: function _DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure1(t0, t1) {
+ this.horizontalHandler = t0;
+ this.panHandler = t1;
+ },
+ _DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure: function _DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure(t0) {
+ this.vertical = t0;
+ },
+ _DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure0: function _DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure0(t0) {
+ this.pan = t0;
+ },
+ _DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure1: function _DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure1(t0, t1) {
+ this.verticalHandler = t0;
+ this.panHandler = t1;
+ },
+ PluginRegistry: function PluginRegistry(t0) {
+ this._binaryMessenger = t0;
+ },
+ _PlatformBinaryMessenger: function _PlatformBinaryMessenger(t0) {
+ this._handlers = t0;
+ },
+ RTCRtpSender: function RTCRtpSender() {
+ },
+ RTCTrackEvent: function RTCTrackEvent(t0, t1) {
+ this.streams = t0;
+ this.track = t1;
+ },
+ SourceLocationMixin: function SourceLocationMixin() {
+ },
+ debugPrintThrottled: function(message, wrapWidth) {
+ var messageLines = H.setRuntimeTypeInfo(message.split("\n"), type$.JSArray_String);
+ $.$get$_debugPrintBuffer().addAll$1(0, messageLines);
+ if (!$._debugPrintScheduled)
+ D._debugPrintTask();
+ },
+ _debugPrintTask: function() {
+ var t3, line,
+ t1 = $._debugPrintScheduled = false,
+ t2 = $.$get$_debugPrintStopwatch();
+ if (P.Duration$(t2.get$elapsedMicroseconds(), 0, 0)._duration > 1000000) {
+ t2.stop$0(0);
+ t3 = t2._stop;
+ t2._core$_start = t3 == null ? $.Primitives_timerTicks.call$0() : t3;
+ $._debugPrintedCharacters = 0;
+ }
+ while (true) {
+ if ($._debugPrintedCharacters < 12288) {
+ t2 = $.$get$_debugPrintBuffer();
+ t2 = !t2.get$isEmpty(t2);
+ } else
+ t2 = t1;
+ if (!t2)
+ break;
+ line = $.$get$_debugPrintBuffer().removeFirst$0();
+ $._debugPrintedCharacters = $._debugPrintedCharacters + line.length;
+ H.printString(J.toString$0$(line));
+ }
+ t1 = $.$get$_debugPrintBuffer();
+ if (!t1.get$isEmpty(t1)) {
+ $._debugPrintScheduled = true;
+ $._debugPrintedCharacters = 0;
+ P.Timer_Timer(C.Duration_1000000, D.print___debugPrintTask$closure());
+ if ($._debugPrintCompleter == null)
+ $._debugPrintCompleter = new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void);
+ } else {
+ $.$get$_debugPrintStopwatch().start$0(0);
+ t1 = $._debugPrintCompleter;
+ if (t1 != null)
+ t1.complete$0(0);
+ $._debugPrintCompleter = null;
+ }
+ },
+ debugPrintDone: function() {
+ var t1 = $._debugPrintCompleter;
+ t1 = t1 == null ? null : t1.future;
+ return t1 == null ? P.Future_Future$value(null, type$.void) : t1;
+ },
+ current: function() {
+ var exception, t1, path, lastIndex, uri = null;
+ try {
+ uri = P.Uri_base();
+ } catch (exception) {
+ if (type$.Exception._is(H.unwrapException(exception))) {
+ t1 = $._current;
+ if (t1 != null)
+ return t1;
+ throw exception;
+ } else
+ throw exception;
+ }
+ if (J.$eq$(uri, $._currentUriBase)) {
+ t1 = $._current;
+ t1.toString;
+ return t1;
+ }
+ $._currentUriBase = uri;
+ if ($.$get$Style_platform() == $.$get$Style_url())
+ t1 = $._current = uri.resolve$1(".").toString$0(0);
+ else {
+ path = uri.toFilePath$0();
+ lastIndex = path.length - 1;
+ t1 = $._current = lastIndex === 0 ? path : C.JSString_methods.substring$2(path, 0, lastIndex);
+ }
+ t1.toString;
+ return t1;
+ }
+ },
+ F = {_TextSelectionHandlePainter0: function _TextSelectionHandlePainter0(t0, t1) {
+ this.color = t0;
+ this._repaint = t1;
+ }, _CupertinoTextSelectionControls: function _CupertinoTextSelectionControls() {
+ }, LicenseEntry: function LicenseEntry() {
+ }, LicenseEntryWithLineBreaks: function LicenseEntryWithLineBreaks() {
+ },
+ PointerEvent_transformPosition: function(transform, position) {
+ var t1, t2, position3;
+ if (transform == null)
+ return position;
+ t1 = position._dx;
+ t2 = position._dy;
+ position3 = new E.Vector3(new Float64Array(3));
+ position3.setValues$3(t1, t2, 0);
+ t1 = transform.perspectiveTransform$1(position3)._v3storage;
+ return new P.Offset(t1[0], t1[1]);
+ },
+ PointerEvent_transformDeltaViaPositions: function(transform, transformedEndPosition, untransformedDelta, untransformedEndPosition) {
+ if (transform == null)
+ return untransformedDelta;
+ if (transformedEndPosition == null)
+ transformedEndPosition = F.PointerEvent_transformPosition(transform, untransformedEndPosition);
+ return transformedEndPosition.$sub(0, F.PointerEvent_transformPosition(transform, untransformedEndPosition.$sub(0, untransformedDelta)));
+ },
+ PointerEvent_removePerspectiveTransform: function(transform) {
+ var t2, t3,
+ t1 = new Float64Array(4),
+ vector = new E.Vector4(t1);
+ vector.setValues$4(0, 0, 1, 0);
+ transform.toString;
+ t2 = new Float64Array(16);
+ t3 = new E.Matrix4(t2);
+ t3.setFrom$1(transform);
+ t2[11] = t1[3];
+ t2[10] = t1[2];
+ t2[9] = t1[1];
+ t2[8] = t1[0];
+ t3.setRow$2(2, vector);
+ return t3;
+ },
+ PointerAddedEvent$: function(device, distance, distanceMax, embedderId, kind, obscured, orientation, position, pressureMax, pressureMin, radiusMax, radiusMin, tilt, timeStamp) {
+ return new F.PointerAddedEvent(embedderId, timeStamp, 0, kind, device, position, C.Offset_0_0, 0, false, false, 0, pressureMin, pressureMax, distance, distanceMax, 0, 0, 0, radiusMin, radiusMax, orientation, tilt, 0, false, null, null);
+ },
+ PointerRemovedEvent$: function(device, distanceMax, embedderId, kind, obscured, position, pressureMax, pressureMin, radiusMax, radiusMin, timeStamp) {
+ return new F.PointerRemovedEvent(embedderId, timeStamp, 0, kind, device, position, C.Offset_0_0, 0, false, false, 0, pressureMin, pressureMax, 0, distanceMax, 0, 0, 0, radiusMin, radiusMax, 0, 0, 0, false, null, null);
+ },
+ PointerHoverEvent$: function(buttons, delta, device, distance, distanceMax, embedderId, kind, obscured, orientation, position, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, size, synthesized, tilt, timeStamp) {
+ return new F.PointerHoverEvent(embedderId, timeStamp, 0, kind, device, position, delta, buttons, false, false, 0, pressureMin, pressureMax, distance, distanceMax, size, radiusMajor, radiusMinor, radiusMin, radiusMax, orientation, tilt, 0, synthesized, null, null);
+ },
+ PointerEnterEvent$: function(buttons, delta, device, distance, distanceMax, down, embedderId, kind, obscured, orientation, pointer, position, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, size, synthesized, tilt, timeStamp) {
+ return new F.PointerEnterEvent(embedderId, timeStamp, pointer, kind, device, position, delta, buttons, down, false, 0, pressureMin, pressureMax, distance, distanceMax, size, radiusMajor, radiusMinor, radiusMin, radiusMax, orientation, tilt, 0, synthesized, null, null);
+ },
+ PointerExitEvent$: function(buttons, delta, device, distance, distanceMax, down, embedderId, kind, obscured, orientation, pointer, position, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, size, synthesized, tilt, timeStamp) {
+ return new F.PointerExitEvent(embedderId, timeStamp, pointer, kind, device, position, delta, buttons, down, false, 0, pressureMin, pressureMax, distance, distanceMax, size, radiusMajor, radiusMinor, radiusMin, radiusMax, orientation, tilt, 0, synthesized, null, null);
+ },
+ PointerDownEvent$: function(buttons, device, distanceMax, embedderId, kind, obscured, orientation, pointer, position, pressure, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, size, tilt, timeStamp) {
+ return new F.PointerDownEvent(embedderId, timeStamp, pointer, kind, device, position, C.Offset_0_0, buttons, true, false, pressure, pressureMin, pressureMax, 0, distanceMax, size, radiusMajor, radiusMinor, radiusMin, radiusMax, orientation, tilt, 0, false, null, null);
+ },
+ PointerMoveEvent$: function(buttons, delta, device, distanceMax, embedderId, kind, obscured, orientation, platformData, pointer, position, pressure, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, size, synthesized, tilt, timeStamp) {
+ return new F.PointerMoveEvent(embedderId, timeStamp, pointer, kind, device, position, delta, buttons, true, false, pressure, pressureMin, pressureMax, 0, distanceMax, size, radiusMajor, radiusMinor, radiusMin, radiusMax, orientation, tilt, platformData, synthesized, null, null);
+ },
+ PointerUpEvent$: function(buttons, device, distance, distanceMax, embedderId, kind, obscured, orientation, pointer, position, pressure, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, size, tilt, timeStamp) {
+ return new F.PointerUpEvent(embedderId, timeStamp, pointer, kind, device, position, C.Offset_0_0, buttons, false, false, pressure, pressureMin, pressureMax, distance, distanceMax, size, radiusMajor, radiusMinor, radiusMin, radiusMax, orientation, tilt, 0, false, null, null);
+ },
+ PointerScrollEvent$: function(device, embedderId, kind, position, scrollDelta, timeStamp) {
+ return new F.PointerScrollEvent(scrollDelta, embedderId, timeStamp, 0, kind, device, position, C.Offset_0_0, 0, false, false, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, null, null);
+ },
+ PointerCancelEvent$: function(buttons, device, distance, distanceMax, embedderId, kind, obscured, orientation, pointer, position, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, size, tilt, timeStamp) {
+ return new F.PointerCancelEvent(embedderId, timeStamp, pointer, kind, device, position, C.Offset_0_0, buttons, false, false, 0, pressureMin, pressureMax, distance, distanceMax, size, radiusMajor, radiusMinor, radiusMin, radiusMax, orientation, tilt, 0, false, null, null);
+ },
+ computeHitSlop: function(kind) {
+ switch (kind) {
+ case C.PointerDeviceKind_1:
+ return 1;
+ case C.PointerDeviceKind_2:
+ case C.PointerDeviceKind_3:
+ case C.PointerDeviceKind_4:
+ case C.PointerDeviceKind_0:
+ return 18;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ computePanSlop: function(kind) {
+ switch (kind) {
+ case C.PointerDeviceKind_1:
+ return 2;
+ case C.PointerDeviceKind_2:
+ case C.PointerDeviceKind_3:
+ case C.PointerDeviceKind_4:
+ case C.PointerDeviceKind_0:
+ return 36;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ PointerEvent0: function PointerEvent0() {
+ },
+ _PointerEventDescription: function _PointerEventDescription() {
+ },
+ _AbstractPointerEvent: function _AbstractPointerEvent() {
+ },
+ _TransformedPointerEvent: function _TransformedPointerEvent() {
+ },
+ _CopyPointerAddedEvent: function _CopyPointerAddedEvent() {
+ },
+ PointerAddedEvent: function PointerAddedEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerAddedEvent: function _TransformedPointerAddedEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _CopyPointerRemovedEvent: function _CopyPointerRemovedEvent() {
+ },
+ PointerRemovedEvent: function PointerRemovedEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerRemovedEvent: function _TransformedPointerRemovedEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _CopyPointerHoverEvent: function _CopyPointerHoverEvent() {
+ },
+ PointerHoverEvent: function PointerHoverEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerHoverEvent: function _TransformedPointerHoverEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _CopyPointerEnterEvent: function _CopyPointerEnterEvent() {
+ },
+ PointerEnterEvent: function PointerEnterEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerEnterEvent: function _TransformedPointerEnterEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _CopyPointerExitEvent: function _CopyPointerExitEvent() {
+ },
+ PointerExitEvent: function PointerExitEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerExitEvent: function _TransformedPointerExitEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _CopyPointerDownEvent: function _CopyPointerDownEvent() {
+ },
+ PointerDownEvent: function PointerDownEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerDownEvent: function _TransformedPointerDownEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _CopyPointerMoveEvent: function _CopyPointerMoveEvent() {
+ },
+ PointerMoveEvent: function PointerMoveEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerMoveEvent: function _TransformedPointerMoveEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _CopyPointerUpEvent: function _CopyPointerUpEvent() {
+ },
+ PointerUpEvent: function PointerUpEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerUpEvent: function _TransformedPointerUpEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ PointerSignalEvent: function PointerSignalEvent() {
+ },
+ _CopyPointerScrollEvent: function _CopyPointerScrollEvent() {
+ },
+ PointerScrollEvent: function PointerScrollEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26) {
+ var _ = this;
+ _.scrollDelta = t0;
+ _.embedderId = t1;
+ _.timeStamp = t2;
+ _.pointer = t3;
+ _.kind = t4;
+ _.device = t5;
+ _.position = t6;
+ _.delta = t7;
+ _.buttons = t8;
+ _.down = t9;
+ _.obscured = t10;
+ _.pressure = t11;
+ _.pressureMin = t12;
+ _.pressureMax = t13;
+ _.distance = t14;
+ _.distanceMax = t15;
+ _.size = t16;
+ _.radiusMajor = t17;
+ _.radiusMinor = t18;
+ _.radiusMin = t19;
+ _.radiusMax = t20;
+ _.orientation = t21;
+ _.tilt = t22;
+ _.platformData = t23;
+ _.synthesized = t24;
+ _.transform = t25;
+ _.original = t26;
+ },
+ _TransformedPointerScrollEvent: function _TransformedPointerScrollEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _CopyPointerCancelEvent: function _CopyPointerCancelEvent() {
+ },
+ PointerCancelEvent: function PointerCancelEvent(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25) {
+ var _ = this;
+ _.embedderId = t0;
+ _.timeStamp = t1;
+ _.pointer = t2;
+ _.kind = t3;
+ _.device = t4;
+ _.position = t5;
+ _.delta = t6;
+ _.buttons = t7;
+ _.down = t8;
+ _.obscured = t9;
+ _.pressure = t10;
+ _.pressureMin = t11;
+ _.pressureMax = t12;
+ _.distance = t13;
+ _.distanceMax = t14;
+ _.size = t15;
+ _.radiusMajor = t16;
+ _.radiusMinor = t17;
+ _.radiusMin = t18;
+ _.radiusMax = t19;
+ _.orientation = t20;
+ _.tilt = t21;
+ _.platformData = t22;
+ _.synthesized = t23;
+ _.transform = t24;
+ _.original = t25;
+ },
+ _TransformedPointerCancelEvent: function _TransformedPointerCancelEvent(t0, t1) {
+ var _ = this;
+ _.original = t0;
+ _.transform = t1;
+ _.___TransformedPointerEvent_localPosition = null;
+ _.___TransformedPointerEvent_localPosition_isSet = false;
+ _.___TransformedPointerEvent_localDelta = null;
+ _.___TransformedPointerEvent_localDelta_isSet = false;
+ },
+ _PointerAddedEvent_PointerEvent__PointerEventDescription: function _PointerAddedEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerAddedEvent_PointerEvent__PointerEventDescription__CopyPointerAddedEvent: function _PointerAddedEvent_PointerEvent__PointerEventDescription__CopyPointerAddedEvent() {
+ },
+ _PointerCancelEvent_PointerEvent__PointerEventDescription: function _PointerCancelEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerCancelEvent_PointerEvent__PointerEventDescription__CopyPointerCancelEvent: function _PointerCancelEvent_PointerEvent__PointerEventDescription__CopyPointerCancelEvent() {
+ },
+ _PointerDownEvent_PointerEvent__PointerEventDescription: function _PointerDownEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerDownEvent_PointerEvent__PointerEventDescription__CopyPointerDownEvent: function _PointerDownEvent_PointerEvent__PointerEventDescription__CopyPointerDownEvent() {
+ },
+ _PointerEnterEvent_PointerEvent__PointerEventDescription: function _PointerEnterEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerEnterEvent_PointerEvent__PointerEventDescription__CopyPointerEnterEvent: function _PointerEnterEvent_PointerEvent__PointerEventDescription__CopyPointerEnterEvent() {
+ },
+ _PointerEvent_Object_Diagnosticable: function _PointerEvent_Object_Diagnosticable() {
+ },
+ _PointerExitEvent_PointerEvent__PointerEventDescription: function _PointerExitEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerExitEvent_PointerEvent__PointerEventDescription__CopyPointerExitEvent: function _PointerExitEvent_PointerEvent__PointerEventDescription__CopyPointerExitEvent() {
+ },
+ _PointerHoverEvent_PointerEvent__PointerEventDescription: function _PointerHoverEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerHoverEvent_PointerEvent__PointerEventDescription__CopyPointerHoverEvent: function _PointerHoverEvent_PointerEvent__PointerEventDescription__CopyPointerHoverEvent() {
+ },
+ _PointerMoveEvent_PointerEvent__PointerEventDescription: function _PointerMoveEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerMoveEvent_PointerEvent__PointerEventDescription__CopyPointerMoveEvent: function _PointerMoveEvent_PointerEvent__PointerEventDescription__CopyPointerMoveEvent() {
+ },
+ _PointerRemovedEvent_PointerEvent__PointerEventDescription: function _PointerRemovedEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerRemovedEvent_PointerEvent__PointerEventDescription__CopyPointerRemovedEvent: function _PointerRemovedEvent_PointerEvent__PointerEventDescription__CopyPointerRemovedEvent() {
+ },
+ _PointerScrollEvent_PointerSignalEvent__PointerEventDescription: function _PointerScrollEvent_PointerSignalEvent__PointerEventDescription() {
+ },
+ _PointerScrollEvent_PointerSignalEvent__PointerEventDescription__CopyPointerScrollEvent: function _PointerScrollEvent_PointerSignalEvent__PointerEventDescription__CopyPointerScrollEvent() {
+ },
+ _PointerUpEvent_PointerEvent__PointerEventDescription: function _PointerUpEvent_PointerEvent__PointerEventDescription() {
+ },
+ _PointerUpEvent_PointerEvent__PointerEventDescription__CopyPointerUpEvent: function _PointerUpEvent_PointerEvent__PointerEventDescription__CopyPointerUpEvent() {
+ },
+ __TransformedPointerAddedEvent__TransformedPointerEvent__CopyPointerAddedEvent: function __TransformedPointerAddedEvent__TransformedPointerEvent__CopyPointerAddedEvent() {
+ },
+ __TransformedPointerCancelEvent__TransformedPointerEvent__CopyPointerCancelEvent: function __TransformedPointerCancelEvent__TransformedPointerEvent__CopyPointerCancelEvent() {
+ },
+ __TransformedPointerDownEvent__TransformedPointerEvent__CopyPointerDownEvent: function __TransformedPointerDownEvent__TransformedPointerEvent__CopyPointerDownEvent() {
+ },
+ __TransformedPointerEnterEvent__TransformedPointerEvent__CopyPointerEnterEvent: function __TransformedPointerEnterEvent__TransformedPointerEvent__CopyPointerEnterEvent() {
+ },
+ __TransformedPointerEvent__AbstractPointerEvent_Diagnosticable: function __TransformedPointerEvent__AbstractPointerEvent_Diagnosticable() {
+ },
+ __TransformedPointerEvent__AbstractPointerEvent_Diagnosticable__PointerEventDescription: function __TransformedPointerEvent__AbstractPointerEvent_Diagnosticable__PointerEventDescription() {
+ },
+ __TransformedPointerExitEvent__TransformedPointerEvent__CopyPointerExitEvent: function __TransformedPointerExitEvent__TransformedPointerEvent__CopyPointerExitEvent() {
+ },
+ __TransformedPointerHoverEvent__TransformedPointerEvent__CopyPointerHoverEvent: function __TransformedPointerHoverEvent__TransformedPointerEvent__CopyPointerHoverEvent() {
+ },
+ __TransformedPointerMoveEvent__TransformedPointerEvent__CopyPointerMoveEvent: function __TransformedPointerMoveEvent__TransformedPointerEvent__CopyPointerMoveEvent() {
+ },
+ __TransformedPointerRemovedEvent__TransformedPointerEvent__CopyPointerRemovedEvent: function __TransformedPointerRemovedEvent__TransformedPointerEvent__CopyPointerRemovedEvent() {
+ },
+ __TransformedPointerScrollEvent__TransformedPointerEvent__CopyPointerScrollEvent: function __TransformedPointerScrollEvent__TransformedPointerEvent__CopyPointerScrollEvent() {
+ },
+ __TransformedPointerUpEvent__TransformedPointerEvent__CopyPointerUpEvent: function __TransformedPointerUpEvent__TransformedPointerEvent__CopyPointerUpEvent() {
+ },
+ _CountdownZoned: function _CountdownZoned() {
+ this._timeout = false;
+ },
+ _TapTracker: function _TapTracker(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.pointer = t0;
+ _.entry = t1;
+ _._initialGlobalPosition = t2;
+ _.initialButtons = t3;
+ _._doubleTapMinTimeCountdown = t4;
+ _._isTrackingPointer = false;
+ },
+ DoubleTapGestureRecognizer: function DoubleTapGestureRecognizer(t0, t1, t2, t3) {
+ var _ = this;
+ _._firstTap = _._doubleTapTimer = _.onDoubleTapCancel = _.onDoubleTap = _.onDoubleTapDown = null;
+ _._trackers = t0;
+ _.debugOwner = t1;
+ _._kindFilter = t2;
+ _._pointerToKind = t3;
+ },
+ InputBorder: function InputBorder() {
+ },
+ UnderlineInputBorder: function UnderlineInputBorder(t0, t1) {
+ this.borderRadius = t0;
+ this.borderSide = t1;
+ },
+ _TextSelectionHandlePainter: function _TextSelectionHandlePainter(t0, t1) {
+ this.color = t0;
+ this._repaint = t1;
+ },
+ _MaterialTextSelectionControls: function _MaterialTextSelectionControls() {
+ },
+ BoxBorder_lerp: function(a, b, t) {
+ var t0, t2,
+ t1 = type$.nullable_Border;
+ if (t1._is(a) && t1._is(b))
+ return F.Border_lerp(a, b, t);
+ t1 = type$.nullable_BorderDirectional;
+ if (t1._is(a) && t1._is(b))
+ return F.BorderDirectional_lerp(a, b, t);
+ if (b instanceof F.Border && a instanceof F.BorderDirectional) {
+ t = 1 - t;
+ t0 = b;
+ b = a;
+ a = t0;
+ }
+ if (a instanceof F.Border && b instanceof F.BorderDirectional) {
+ t1 = b.start;
+ if (J.$eq$(t1, C.BorderSide_m7u) && J.$eq$(b.end, C.BorderSide_m7u))
+ return new F.Border(Y.BorderSide_lerp(a.top, b.top, t), Y.BorderSide_lerp(a.right, C.BorderSide_m7u, t), Y.BorderSide_lerp(a.bottom, b.bottom, t), Y.BorderSide_lerp(a.left, C.BorderSide_m7u, t));
+ t2 = a.left;
+ if (J.$eq$(t2, C.BorderSide_m7u) && J.$eq$(a.right, C.BorderSide_m7u))
+ return new F.BorderDirectional(Y.BorderSide_lerp(a.top, b.top, t), Y.BorderSide_lerp(C.BorderSide_m7u, t1, t), Y.BorderSide_lerp(C.BorderSide_m7u, b.end, t), Y.BorderSide_lerp(a.bottom, b.bottom, t));
+ if (t < 0.5) {
+ t1 = t * 2;
+ return new F.Border(Y.BorderSide_lerp(a.top, b.top, t), Y.BorderSide_lerp(a.right, C.BorderSide_m7u, t1), Y.BorderSide_lerp(a.bottom, b.bottom, t), Y.BorderSide_lerp(t2, C.BorderSide_m7u, t1));
+ }
+ t2 = (t - 0.5) * 2;
+ return new F.BorderDirectional(Y.BorderSide_lerp(a.top, b.top, t), Y.BorderSide_lerp(C.BorderSide_m7u, t1, t2), Y.BorderSide_lerp(C.BorderSide_m7u, b.end, t2), Y.BorderSide_lerp(a.bottom, b.bottom, t));
+ }
+ throw H.wrapException(U.FlutterError$fromParts(H.setRuntimeTypeInfo([U.ErrorSummary$("BoxBorder.lerp can only interpolate Border and BorderDirectional classes."), U.ErrorDescription$("BoxBorder.lerp() was called with two objects of type " + J.get$runtimeType$(a).toString$0(0) + " and " + J.get$runtimeType$(b).toString$0(0) + ":\n " + H.S(a) + "\n " + H.S(b) + "\nHowever, only Border and BorderDirectional classes are supported by this method."), U.ErrorHint$("For a more general interpolation method, consider using ShapeBorder.lerp instead.")], type$.JSArray_DiagnosticsNode)));
+ },
+ BoxBorder__paintUniformBorderWithRadius: function(canvas, rect, side, borderRadius) {
+ var outer, width,
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$color(0, side.color);
+ outer = borderRadius.toRRect$1(rect);
+ width = side.width;
+ if (width === 0) {
+ paint.set$style(0, C.PaintingStyle_1);
+ paint.set$strokeWidth(0);
+ canvas.drawRRect$2(0, outer, paint);
+ } else
+ canvas.drawDRRect$3(0, outer, outer.inflate$1(-width), paint);
+ },
+ BoxBorder__paintUniformBorderWithCircle: function(canvas, rect, side) {
+ var width = side.width,
+ paint = side.toPaint$0(),
+ t1 = rect.get$shortestSide();
+ canvas.drawCircle$3(0, rect.get$center(), (t1 - width) / 2, paint);
+ },
+ BoxBorder__paintUniformBorderWithRectangle: function(canvas, rect, side) {
+ var width = side.width,
+ paint = side.toPaint$0();
+ canvas.drawRect$2(0, rect.inflate$1(-(width / 2)), paint);
+ },
+ Border_lerp: function(a, b, t) {
+ var t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ return b.scale$1(0, t);
+ if (b == null)
+ return a.scale$1(0, 1 - t);
+ return new F.Border(Y.BorderSide_lerp(a.top, b.top, t), Y.BorderSide_lerp(a.right, b.right, t), Y.BorderSide_lerp(a.bottom, b.bottom, t), Y.BorderSide_lerp(a.left, b.left, t));
+ },
+ BorderDirectional_lerp: function(a, b, t) {
+ var t2, t3,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ return b.scale$1(0, t);
+ if (b == null)
+ return a.scale$1(0, 1 - t);
+ t1 = Y.BorderSide_lerp(a.top, b.top, t);
+ t2 = Y.BorderSide_lerp(a.end, b.end, t);
+ t3 = Y.BorderSide_lerp(a.bottom, b.bottom, t);
+ return new F.BorderDirectional(t1, Y.BorderSide_lerp(a.start, b.start, t), t2, t3);
+ },
+ BoxShape: function BoxShape(t0) {
+ this._box_border$_name = t0;
+ },
+ BoxBorder: function BoxBorder() {
+ },
+ Border: function Border(t0, t1, t2, t3) {
+ var _ = this;
+ _.top = t0;
+ _.right = t1;
+ _.bottom = t2;
+ _.left = t3;
+ },
+ BorderDirectional: function BorderDirectional(t0, t1, t2, t3) {
+ var _ = this;
+ _.top = t0;
+ _.start = t1;
+ _.end = t2;
+ _.bottom = t3;
+ },
+ _startIsTopLeft: function(direction, textDirection, verticalDirection) {
+ var _s80_ = string$.x60null_c;
+ switch (direction) {
+ case C.Axis_0:
+ switch (textDirection) {
+ case C.TextDirection_1:
+ return true;
+ case C.TextDirection_0:
+ return false;
+ case null:
+ return null;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ case C.Axis_1:
+ switch (verticalDirection) {
+ case C.VerticalDirection_1:
+ return true;
+ case C.VerticalDirection_0:
+ return false;
+ case null:
+ return null;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ },
+ RenderFlex$: function(children, clipBehavior, crossAxisAlignment, direction, mainAxisAlignment, mainAxisSize, textBaseline, textDirection, verticalDirection) {
+ var _null = null,
+ t1 = new F.RenderFlex(direction, mainAxisAlignment, mainAxisSize, crossAxisAlignment, textDirection, verticalDirection, textBaseline, clipBehavior, P.List_List$filled(4, new U.TextPainter(_null, C.TextAlign_4, C.TextDirection_1, 1, _null, _null, _null, _null, C.TextWidthBasis_0, _null), false, type$.TextPainter), true, 0, _null, _null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.addAll$1(0, children);
+ return t1;
+ },
+ FlexFit: function FlexFit(t0) {
+ this._flex$_name = t0;
+ },
+ FlexParentData: function FlexParentData(t0, t1, t2) {
+ var _ = this;
+ _.fit = _.flex = null;
+ _.ContainerParentDataMixin_previousSibling = t0;
+ _.ContainerParentDataMixin_nextSibling = t1;
+ _.offset = t2;
+ },
+ MainAxisSize: function MainAxisSize(t0) {
+ this._flex$_name = t0;
+ },
+ MainAxisAlignment: function MainAxisAlignment(t0) {
+ this._flex$_name = t0;
+ },
+ CrossAxisAlignment: function CrossAxisAlignment(t0) {
+ this._flex$_name = t0;
+ },
+ RenderFlex: function RenderFlex(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
+ var _ = this;
+ _._flex$_direction = t0;
+ _._mainAxisAlignment = t1;
+ _._mainAxisSize = t2;
+ _._crossAxisAlignment = t3;
+ _._flex$_textDirection = t4;
+ _._verticalDirection = t5;
+ _._flex$_textBaseline = t6;
+ _._flex$_overflow = null;
+ _._flex$_clipBehavior = t7;
+ _._flex$_clipRectLayer = null;
+ _.DebugOverflowIndicatorMixin__indicatorLabel = t8;
+ _.DebugOverflowIndicatorMixin__overflowReportNeeded = t9;
+ _.ContainerRenderObjectMixin__childCount = t10;
+ _.ContainerRenderObjectMixin__firstChild = t11;
+ _.ContainerRenderObjectMixin__lastChild = t12;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderFlex__getIntrinsicSize__crossSize_set: function RenderFlex__getIntrinsicSize__crossSize_set(t0) {
+ this._box_0 = t0;
+ },
+ RenderFlex__getIntrinsicSize__mainSize_set: function RenderFlex__getIntrinsicSize__mainSize_set(t0) {
+ this._box_0 = t0;
+ },
+ RenderFlex__getIntrinsicSize__mainSize_get: function RenderFlex__getIntrinsicSize__mainSize_get(t0) {
+ this._box_0 = t0;
+ },
+ RenderFlex__getIntrinsicSize__crossSize_get: function RenderFlex__getIntrinsicSize__crossSize_get(t0) {
+ this._box_0 = t0;
+ },
+ RenderFlex_computeMinIntrinsicWidth_closure: function RenderFlex_computeMinIntrinsicWidth_closure() {
+ },
+ RenderFlex_computeMaxIntrinsicWidth_closure: function RenderFlex_computeMaxIntrinsicWidth_closure() {
+ },
+ RenderFlex_computeMinIntrinsicHeight_closure: function RenderFlex_computeMinIntrinsicHeight_closure() {
+ },
+ RenderFlex_computeMaxIntrinsicHeight_closure: function RenderFlex_computeMaxIntrinsicHeight_closure() {
+ },
+ RenderFlex_performLayout__betweenSpace_set: function RenderFlex_performLayout__betweenSpace_set(t0) {
+ this._box_1 = t0;
+ },
+ RenderFlex_performLayout__leadingSpace_set: function RenderFlex_performLayout__leadingSpace_set(t0) {
+ this._box_1 = t0;
+ },
+ RenderFlex_performLayout__minChildExtent_set: function RenderFlex_performLayout__minChildExtent_set(t0) {
+ this._box_0 = t0;
+ },
+ RenderFlex_performLayout__minChildExtent_get: function RenderFlex_performLayout__minChildExtent_get(t0) {
+ this._box_0 = t0;
+ },
+ RenderFlex_performLayout__leadingSpace_get: function RenderFlex_performLayout__leadingSpace_get(t0) {
+ this._box_1 = t0;
+ },
+ RenderFlex_performLayout__betweenSpace_get: function RenderFlex_performLayout__betweenSpace_get(t0) {
+ this._box_1 = t0;
+ },
+ _RenderFlex_RenderBox_ContainerRenderObjectMixin: function _RenderFlex_RenderBox_ContainerRenderObjectMixin() {
+ },
+ _RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin: function _RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin() {
+ },
+ _RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_DebugOverflowIndicatorMixin: function _RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_DebugOverflowIndicatorMixin() {
+ },
+ KeepAliveParentDataMixin: function KeepAliveParentDataMixin() {
+ },
+ RenderSliverWithKeepAliveMixin: function RenderSliverWithKeepAliveMixin() {
+ },
+ SliverMultiBoxAdaptorParentData: function SliverMultiBoxAdaptorParentData(t0, t1, t2) {
+ var _ = this;
+ _.index = null;
+ _._keptAlive = false;
+ _.KeepAliveParentDataMixin_keepAlive = t0;
+ _.ContainerParentDataMixin_previousSibling = t1;
+ _.ContainerParentDataMixin_nextSibling = t2;
+ _.layoutOffset = null;
+ },
+ RenderSliverMultiBoxAdaptor: function RenderSliverMultiBoxAdaptor() {
+ },
+ RenderSliverMultiBoxAdaptor__createOrObtainChild_closure: function RenderSliverMultiBoxAdaptor__createOrObtainChild_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.index = t1;
+ this.after = t2;
+ },
+ RenderSliverMultiBoxAdaptor_collectGarbage_closure: function RenderSliverMultiBoxAdaptor_collectGarbage_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ RenderSliverMultiBoxAdaptor_collectGarbage__closure: function RenderSliverMultiBoxAdaptor_collectGarbage__closure() {
+ },
+ _RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin: function _RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin() {
+ },
+ _RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers: function _RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers() {
+ },
+ _RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers_RenderSliverWithKeepAliveMixin: function _RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers_RenderSliverWithKeepAliveMixin() {
+ },
+ _SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin: function _SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin() {
+ },
+ _SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin_KeepAliveParentDataMixin: function _SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin_KeepAliveParentDataMixin() {
+ },
+ AutofillConfiguration: function AutofillConfiguration(t0, t1, t2) {
+ this.uniqueIdentifier = t0;
+ this.autofillHints = t1;
+ this.currentEditingValue = t2;
+ },
+ PlatformException$: function(code, details, message, stacktrace) {
+ return new F.PlatformException(code, message, details, stacktrace);
+ },
+ MissingPluginException$: function(message) {
+ return new F.MissingPluginException(message);
+ },
+ MethodCall: function MethodCall(t0, t1) {
+ this.method = t0;
+ this.$arguments = t1;
+ },
+ PlatformException: function PlatformException(t0, t1, t2, t3) {
+ var _ = this;
+ _.code = t0;
+ _.message = t1;
+ _.details = t2;
+ _.stacktrace = t3;
+ },
+ MissingPluginException: function MissingPluginException(t0) {
+ this.message = t0;
+ },
+ MediaQuery_maybeOf: function(context) {
+ var t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery);
+ return t1 == null ? null : t1.data;
+ },
+ MediaQuery_textScaleFactorOf: function(context) {
+ var t1 = F.MediaQuery_maybeOf(context);
+ t1 = t1 == null ? null : t1.textScaleFactor;
+ return t1 == null ? 1 : t1;
+ },
+ Orientation: function Orientation(t0) {
+ this._media_query$_name = t0;
+ },
+ MediaQueryData: function MediaQueryData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.size = t0;
+ _.devicePixelRatio = t1;
+ _.textScaleFactor = t2;
+ _.platformBrightness = t3;
+ _.viewInsets = t4;
+ _.padding = t5;
+ _.viewPadding = t6;
+ _.systemGestureInsets = t7;
+ _.alwaysUse24HourFormat = t8;
+ _.accessibleNavigation = t9;
+ _.invertColors = t10;
+ _.highContrast = t11;
+ _.disableAnimations = t12;
+ _.boldText = t13;
+ _.navigationMode = t14;
+ },
+ MediaQuery: function MediaQuery(t0, t1, t2) {
+ this.data = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ NavigationMode: function NavigationMode(t0) {
+ this._media_query$_name = t0;
+ },
+ ScrollController$: function() {
+ return new F.ScrollController(H.setRuntimeTypeInfo([], type$.JSArray_ScrollPosition), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ ScrollController: function ScrollController(t0, t1) {
+ this._positions = t0;
+ this.ChangeNotifier__listeners = t1;
+ },
+ Scrollable$: function(axisDirection, controller, dragStartBehavior, excludeFromSemantics, physics, restorationId, semanticChildCount, viewportBuilder) {
+ return new F.Scrollable(axisDirection, controller, physics, viewportBuilder, excludeFromSemantics, semanticChildCount, dragStartBehavior, restorationId, null);
+ },
+ Scrollable_of: function(context) {
+ var widget = context.dependOnInheritedWidgetOfExactType$1$0(type$._ScrollableScope);
+ return widget == null ? null : widget.scrollable;
+ },
+ Scrollable_ensureVisible: function(context, alignment, alignmentPolicy) {
+ var t1, targetRenderObject, t2, t3, widget,
+ futures = H.setRuntimeTypeInfo([], type$.JSArray_Future_void),
+ scrollable = F.Scrollable_of(context);
+ for (t1 = type$._ScrollableScope, targetRenderObject = null; scrollable != null;) {
+ t2 = scrollable._scrollable$_position;
+ t2.toString;
+ t3 = context.get$renderObject();
+ t3.toString;
+ futures.push(t2.ensureVisible$6$alignment$alignmentPolicy$curve$duration$targetRenderObject(t3, alignment, alignmentPolicy, C.Cubic_JUR, C.Duration_0, targetRenderObject));
+ if (targetRenderObject == null)
+ targetRenderObject = context.get$renderObject();
+ context = scrollable._framework$_element;
+ widget = context.dependOnInheritedWidgetOfExactType$1$0(t1);
+ scrollable = widget == null ? null : widget.scrollable;
+ }
+ futures.length !== 0;
+ t1 = P.Future_Future$value(null, type$.void);
+ return t1;
+ },
+ _ScrollableState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure: function _ScrollableState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure() {
+ },
+ Scrollable: function Scrollable(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.axisDirection = t0;
+ _.controller = t1;
+ _.physics = t2;
+ _.viewportBuilder = t3;
+ _.excludeFromSemantics = t4;
+ _.semanticChildCount = t5;
+ _.dragStartBehavior = t6;
+ _.restorationId = t7;
+ _.key = t8;
+ },
+ _ScrollableScope: function _ScrollableScope(t0, t1, t2, t3) {
+ var _ = this;
+ _.scrollable = t0;
+ _.position = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ ScrollableState: function ScrollableState(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) {
+ var _ = this;
+ _._scrollable$_position = null;
+ _._persistedScrollOffset = t0;
+ _.__ScrollableState__configuration = null;
+ _.__ScrollableState__configuration_isSet = false;
+ _._physics = null;
+ _._scrollSemanticsKey = t1;
+ _._gestureDetectorKey = t2;
+ _._ignorePointerKey = t3;
+ _._gestureRecognizers = t4;
+ _._shouldIgnorePointer = false;
+ _._hold = _._scrollable$_drag = _._lastAxisDirection = _._lastCanDrag = null;
+ _.RestorationMixin__bucket = t5;
+ _.RestorationMixin__properties = t6;
+ _.RestorationMixin__debugPropertiesWaitingForReregistration = t7;
+ _.RestorationMixin__firstRestorePending = t8;
+ _.RestorationMixin__currentParent = t9;
+ _.TickerProviderStateMixin__tickers = t10;
+ _._widget = null;
+ _._debugLifecycleState = t11;
+ _._framework$_element = null;
+ },
+ ScrollableState_setCanDrag_closure: function ScrollableState_setCanDrag_closure() {
+ },
+ ScrollableState_setCanDrag_closure0: function ScrollableState_setCanDrag_closure0(t0) {
+ this.$this = t0;
+ },
+ ScrollableState_setCanDrag_closure1: function ScrollableState_setCanDrag_closure1() {
+ },
+ ScrollableState_setCanDrag_closure2: function ScrollableState_setCanDrag_closure2(t0) {
+ this.$this = t0;
+ },
+ _ScrollSemantics: function _ScrollSemantics(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.position = t0;
+ _.allowImplicitScrolling = t1;
+ _.semanticChildCount = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ _RenderScrollSemantics: function _RenderScrollSemantics(t0, t1, t2, t3) {
+ var _ = this;
+ _._scrollable$_position = t0;
+ _._allowImplicitScrolling = t1;
+ _._semanticChildCount = t2;
+ _._innerNode = null;
+ _.RenderObjectWithChildMixin__child = t3;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ ScrollIncrementType: function ScrollIncrementType(t0) {
+ this._scrollable$_name = t0;
+ },
+ ScrollIntent: function ScrollIntent(t0, t1) {
+ this.direction = t0;
+ this.type = t1;
+ },
+ ScrollAction: function ScrollAction(t0) {
+ this._actions$_listeners = t0;
+ },
+ _RestorableScrollOffset: function _RestorableScrollOffset(t0) {
+ var _ = this;
+ _._restoration_properties$_value = null;
+ _._disposed = false;
+ _._restoration0$_owner = _._restoration0$_restorationId = null;
+ _.ChangeNotifier__listeners = t0;
+ },
+ _ScrollableState_State_TickerProviderStateMixin: function _ScrollableState_State_TickerProviderStateMixin() {
+ },
+ _ScrollableState_State_TickerProviderStateMixin_RestorationMixin: function _ScrollableState_State_TickerProviderStateMixin_RestorationMixin() {
+ },
+ TextSelectionHandleType: function TextSelectionHandleType(t0) {
+ this._text_selection$_name = t0;
+ },
+ _TextSelectionHandlePosition: function _TextSelectionHandlePosition(t0) {
+ this._text_selection$_name = t0;
+ },
+ TextSelectionControls: function TextSelectionControls() {
+ },
+ TextSelectionOverlay: function TextSelectionOverlay(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) {
+ var _ = this;
+ _.context = t0;
+ _.debugRequiredFor = t1;
+ _.toolbarLayerLink = t2;
+ _.startHandleLayerLink = t3;
+ _.endHandleLayerLink = t4;
+ _.renderObject = t5;
+ _.selectionControls = t6;
+ _.selectionDelegate = t7;
+ _.dragStartBehavior = t8;
+ _.onSelectionHandleTapped = t9;
+ _.clipboardStatus = t10;
+ _.__TextSelectionOverlay__toolbarController = null;
+ _.__TextSelectionOverlay__toolbarController_isSet = false;
+ _._text_selection$_value = t11;
+ _._toolbar = _._text_selection$_handles = null;
+ _._handlesVisible = false;
+ },
+ TextSelectionOverlay_showHandles_closure: function TextSelectionOverlay_showHandles_closure(t0) {
+ this.$this = t0;
+ },
+ TextSelectionOverlay_showHandles_closure0: function TextSelectionOverlay_showHandles_closure0(t0) {
+ this.$this = t0;
+ },
+ TextSelectionOverlay__buildHandle_closure: function TextSelectionOverlay__buildHandle_closure(t0, t1) {
+ this.$this = t0;
+ this.position = t1;
+ },
+ _TextSelectionHandleOverlay: function _TextSelectionHandleOverlay(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _.selection = t0;
+ _.position = t1;
+ _.startHandleLayerLink = t2;
+ _.endHandleLayerLink = t3;
+ _.renderObject = t4;
+ _.onSelectionHandleChanged = t5;
+ _.onSelectionHandleTapped = t6;
+ _.selectionControls = t7;
+ _.dragStartBehavior = t8;
+ _.key = t9;
+ },
+ _TextSelectionHandleOverlayState: function _TextSelectionHandleOverlayState(t0, t1) {
+ var _ = this;
+ _.___TextSelectionHandleOverlayState__dragPosition = null;
+ _.___TextSelectionHandleOverlayState__dragPosition_isSet = false;
+ _.___TextSelectionHandleOverlayState__controller = null;
+ _.___TextSelectionHandleOverlayState__controller_isSet = false;
+ _.SingleTickerProviderStateMixin__ticker = t0;
+ _._widget = null;
+ _._debugLifecycleState = t1;
+ _._framework$_element = null;
+ },
+ TextSelectionGestureDetectorBuilder: function TextSelectionGestureDetectorBuilder() {
+ },
+ TextSelectionGestureDetector: function TextSelectionGestureDetector(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.onTapDown = t0;
+ _.onForcePressStart = t1;
+ _.onForcePressEnd = t2;
+ _.onSingleTapUp = t3;
+ _.onSingleTapCancel = t4;
+ _.onSingleLongTapStart = t5;
+ _.onSingleLongTapMoveUpdate = t6;
+ _.onSingleLongTapEnd = t7;
+ _.onDoubleTapDown = t8;
+ _.onDragSelectionStart = t9;
+ _.onDragSelectionUpdate = t10;
+ _.onDragSelectionEnd = t11;
+ _.behavior = t12;
+ _.child = t13;
+ _.key = t14;
+ },
+ _TextSelectionGestureDetectorState: function _TextSelectionGestureDetectorState(t0) {
+ var _ = this;
+ _._lastTapOffset = _._text_selection$_doubleTapTimer = null;
+ _._isDoubleTap = false;
+ _._widget = _._dragUpdateThrottleTimer = _._lastDragUpdateDetails = _._lastDragStartDetails = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _TextSelectionGestureDetectorState_build_closure: function _TextSelectionGestureDetectorState_build_closure(t0) {
+ this.$this = t0;
+ },
+ _TextSelectionGestureDetectorState_build_closure0: function _TextSelectionGestureDetectorState_build_closure0(t0) {
+ this.$this = t0;
+ },
+ _TextSelectionGestureDetectorState_build_closure1: function _TextSelectionGestureDetectorState_build_closure1(t0) {
+ this.$this = t0;
+ },
+ _TextSelectionGestureDetectorState_build_closure2: function _TextSelectionGestureDetectorState_build_closure2(t0) {
+ this.$this = t0;
+ },
+ _TextSelectionGestureDetectorState_build_closure3: function _TextSelectionGestureDetectorState_build_closure3(t0) {
+ this.$this = t0;
+ },
+ _TextSelectionGestureDetectorState_build_closure4: function _TextSelectionGestureDetectorState_build_closure4(t0) {
+ this.$this = t0;
+ },
+ _TextSelectionGestureDetectorState_build_closure5: function _TextSelectionGestureDetectorState_build_closure5(t0) {
+ this.$this = t0;
+ },
+ _TextSelectionGestureDetectorState_build_closure6: function _TextSelectionGestureDetectorState_build_closure6(t0) {
+ this.$this = t0;
+ },
+ _TransparentTapGestureRecognizer: function _TransparentTapGestureRecognizer(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.onTertiaryTapCancel = _.onTertiaryTapUp = _.onTertiaryTapDown = _.onSecondaryTapCancel = _.onSecondaryTapUp = _.onSecondaryTapDown = _.onSecondaryTap = _.onTapCancel = _.onTap = _.onTapUp = _.onTapDown = null;
+ _._wonArenaForPrimaryPointer = _._sentTapDown = false;
+ _._up = _._down = null;
+ _.deadline = t0;
+ _.postAcceptSlopTolerance = t1;
+ _.state = t2;
+ _.initialPosition = _.primaryPointer = null;
+ _._gestureAccepted = false;
+ _._recognizer$_timer = null;
+ _._recognizer$_entries = t3;
+ _._trackedPointers = t4;
+ _._team = null;
+ _.debugOwner = t5;
+ _._kindFilter = t6;
+ _._pointerToKind = t7;
+ },
+ __TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin: function __TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin() {
+ },
+ RTCFactoryWeb: function RTCFactoryWeb() {
+ },
+ MyApp: function MyApp(t0) {
+ this.key = t0;
+ },
+ DialogDemoAction: function DialogDemoAction(t0) {
+ this._main$_name = t0;
+ },
+ _MyAppState: function _MyAppState(t0) {
+ var _ = this;
+ _.items = null;
+ _._server = "";
+ _._prefs = null;
+ _._datachannel = false;
+ _._widget = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _MyAppState__buildRow_closure: function _MyAppState__buildRow_closure(t0, t1) {
+ this.item = t0;
+ this.context = t1;
+ },
+ _MyAppState_build_closure: function _MyAppState_build_closure(t0) {
+ this.$this = t0;
+ },
+ _MyAppState__initData_closure: function _MyAppState__initData_closure(t0) {
+ this.$this = t0;
+ },
+ _MyAppState_showDemoDialog_closure: function _MyAppState_showDemoDialog_closure(t0) {
+ this.child = t0;
+ },
+ _MyAppState_showDemoDialog_closure0: function _MyAppState_showDemoDialog_closure0(t0, t1, t2) {
+ this.$this = t0;
+ this.context = t1;
+ this.T = t2;
+ },
+ _MyAppState_showDemoDialog__closure: function _MyAppState_showDemoDialog__closure(t0) {
+ this.$this = t0;
+ },
+ _MyAppState__showAddressDialog_closure: function _MyAppState__showAddressDialog_closure(t0) {
+ this.$this = t0;
+ },
+ _MyAppState__showAddressDialog__closure: function _MyAppState__showAddressDialog__closure(t0, t1) {
+ this.$this = t0;
+ this.text = t1;
+ },
+ _MyAppState__showAddressDialog_closure0: function _MyAppState__showAddressDialog_closure0(t0) {
+ this.context = t0;
+ },
+ _MyAppState__showAddressDialog_closure1: function _MyAppState__showAddressDialog_closure1(t0) {
+ this.context = t0;
+ },
+ _MyAppState__initItems_closure: function _MyAppState__initItems_closure(t0) {
+ this.$this = t0;
+ },
+ _MyAppState__initItems_closure0: function _MyAppState__initItems_closure0(t0) {
+ this.$this = t0;
+ },
+ UrlStyle: function UrlStyle(t0, t1, t2, t3) {
+ var _ = this;
+ _.separatorPattern = t0;
+ _.needsSeparatorPattern = t1;
+ _.rootPattern = t2;
+ _.relativeRootPattern = t3;
+ },
+ MethodChannelSharedPreferencesStore: function MethodChannelSharedPreferencesStore() {
+ },
+ MethodChannelSharedPreferencesStore__invokeBoolMethod_closure: function MethodChannelSharedPreferencesStore__invokeBoolMethod_closure() {
+ },
+ main: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ t2, t3, t4, t5, t6, t1;
+ var $async$main = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $.$get$webPluginRegistry();
+ t1.toString;
+ E.SharedPreferencesStorePlatform_instance(new V.SharedPreferencesPlugin());
+ $.pluginMessageCallHandler = t1._binaryMessenger.get$handlePlatformMessage();
+ $async$goto = 2;
+ return P._asyncAwait(P.webOnlyInitializePlatform(), $async$main);
+ case 2:
+ // returning from await.
+ if ($.WidgetsBinding__instance == null) {
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_WidgetsBindingObserver);
+ t2 = $.Zone__current;
+ t3 = H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_List_FrameTiming);
+ t4 = P.List_List$filled(7, null, false, type$.nullable__TaskEntry_dynamic);
+ t5 = type$.int;
+ t6 = type$.JSArray_of_void_Function_Duration;
+ new N.WidgetsFlutterBinding(null, t1, true, new P._AsyncCompleter(new P._Future(t2, type$._Future_void), type$._AsyncCompleter_void), false, null, false, false, null, null, false, null, false, 0, false, null, false, null, new N._SystemFontsNotifier(P.LinkedHashSet_LinkedHashSet$_empty(type$.void_Function)), null, false, null, false, t3, null, N.binding__defaultSchedulingStrategy$closure(), new Y.HeapPriorityQueue(N.binding_SchedulerBinding__taskSorter$closure(), t4, type$.HeapPriorityQueue__TaskEntry_dynamic), false, 0, P.LinkedHashMap_LinkedHashMap$_empty(t5, type$._FrameCallbackEntry), P.HashSet_HashSet(t5), H.setRuntimeTypeInfo([], t6), H.setRuntimeTypeInfo([], t6), null, false, C.SchedulerPhase_0, true, false, null, C.Duration_0, C.Duration_0, null, 0, null, false, P.ListQueue$(null, type$.PointerEvent), new O.PointerRouter(P.LinkedHashMap_LinkedHashMap$_empty(t5, type$.Map_of_void_Function_PointerEvent_and_nullable_Matrix4), P.LinkedHashMap_LinkedHashMap$_empty(type$.void_Function_PointerEvent, type$.nullable_Matrix4)), new D.GestureArenaManager(P.LinkedHashMap_LinkedHashMap$_empty(t5, type$._GestureArena)), new G.PointerSignalResolver(), P.LinkedHashMap_LinkedHashMap$_empty(t5, type$.HitTestResult), null, false, false, C.Duration_m38000).BindingBase$0();
+ }
+ t1 = $.WidgetsBinding__instance;
+ t1.scheduleAttachRootWidget$1(new F.MyApp(null));
+ t1.scheduleWarmUpFrame$0();
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$main, $async$completer);
+ }
+ },
+ U = {
+ ErrorDescription$: function(message) {
+ var _null = null,
+ t1 = H.setRuntimeTypeInfo([message], type$.JSArray_Object);
+ return new U.ErrorDescription(_null, false, true, _null, _null, _null, false, t1, _null, C.DiagnosticLevel_3, _null, false, false, _null, C.DiagnosticsTreeStyle_7);
+ },
+ ErrorSummary$: function(message) {
+ var _null = null,
+ t1 = H.setRuntimeTypeInfo([message], type$.JSArray_Object);
+ return new U.ErrorSummary(_null, false, true, _null, _null, _null, false, t1, _null, C.DiagnosticLevel_6, _null, false, false, _null, C.DiagnosticsTreeStyle_7);
+ },
+ ErrorHint$: function(message) {
+ var _null = null,
+ t1 = H.setRuntimeTypeInfo([message], type$.JSArray_Object);
+ return new U.ErrorHint(_null, false, true, _null, _null, _null, false, t1, _null, C.DiagnosticLevel_5, _null, false, false, _null, C.DiagnosticsTreeStyle_7);
+ },
+ ErrorSpacer$: function() {
+ var _null = null;
+ return new U.ErrorSpacer("", false, true, _null, _null, _null, false, _null, C.C__NoDefaultValue, C.DiagnosticLevel_3, "", true, false, _null, C.DiagnosticsTreeStyle_8);
+ },
+ FlutterError_FlutterError: function(message) {
+ var t2, cur,
+ lines = H.setRuntimeTypeInfo(message.split("\n"), type$.JSArray_String),
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode);
+ t1.push(U.ErrorSummary$(C.JSArray_methods.get$first(lines)));
+ for (t2 = H.SubListIterable$(lines, 1, null, type$.String), t2 = new H.MappedListIterable(t2, new U.FlutterError_FlutterError_closure(), t2.$ti._eval$1("MappedListIterable")), t2 = new H.ListIterator(t2, t2.get$length(t2)); t2.moveNext$0();) {
+ cur = t2._current;
+ t1.push(cur);
+ }
+ return new U.FlutterError(t1);
+ },
+ FlutterError$fromParts: function(diagnostics) {
+ return new U.FlutterError(diagnostics);
+ },
+ FlutterError_dumpErrorToConsole: function(details, forceReport) {
+ if ($.FlutterError__errorCount === 0 || false)
+ U.debugPrintStack(J.toString$0$(details.exception), 100, details.stack);
+ else
+ D.print__debugPrintThrottled$closure().call$1("Another exception was thrown: " + details.get$summary().toString$0(0));
+ $.FlutterError__errorCount = $.FlutterError__errorCount + 1;
+ },
+ FlutterError_defaultStackFilter: function($frames) {
+ var skipped, index, t1, frame, className, $package, reasons, t2, _i, result, index0, t3, suffix,
+ removedPackagesAndClasses = P.LinkedHashMap_LinkedHashMap$_literal(["dart:async-patch", 0, "dart:async", 0, "package:stack_trace", 0, "class _AssertionError", 0, "class _FakeAsync", 0, "class _FrameCallbackEntry", 0, "class _Timer", 0, "class _RawReceivePortImpl", 0], type$.String, type$.int),
+ parsedFrames = R.StackFrame_fromStackString(J.join$1$ax($frames, "\n"));
+ for (skipped = 0, index = 0; t1 = parsedFrames.length, index < t1; ++index) {
+ frame = parsedFrames[index];
+ className = "class " + H.S(frame.className);
+ $package = frame.packageScheme + ":" + H.S(frame.$package);
+ if (removedPackagesAndClasses.containsKey$1(0, className)) {
+ ++skipped;
+ removedPackagesAndClasses.update$2(removedPackagesAndClasses, className, new U.FlutterError_defaultStackFilter_closure());
+ C.JSArray_methods.removeAt$1(parsedFrames, index);
+ --index;
+ } else if (removedPackagesAndClasses.containsKey$1(0, $package)) {
+ ++skipped;
+ removedPackagesAndClasses.update$2(removedPackagesAndClasses, $package, new U.FlutterError_defaultStackFilter_closure0());
+ C.JSArray_methods.removeAt$1(parsedFrames, index);
+ --index;
+ }
+ }
+ reasons = P.List_List$filled(t1, null, false, type$.nullable_String);
+ for (t2 = $.FlutterError__stackFilters.length, _i = 0; _i < $.FlutterError__stackFilters.length; $.FlutterError__stackFilters.length === t2 || (0, H.throwConcurrentModificationError)($.FlutterError__stackFilters), ++_i)
+ $.FlutterError__stackFilters[_i].filter$2(0, parsedFrames, reasons);
+ t2 = type$.JSArray_String;
+ result = H.setRuntimeTypeInfo([], t2);
+ for (--t1, index = 0; index < parsedFrames.length; index = index0 + 1) {
+ index0 = index;
+ while (true) {
+ if (index0 < t1) {
+ t3 = reasons[index0];
+ t3 = t3 != null && J.$eq$(reasons[index0 + 1], t3);
+ } else
+ t3 = false;
+ if (!t3)
+ break;
+ ++index0;
+ }
+ if (reasons[index0] != null)
+ suffix = index0 !== index ? " (" + (index0 - index + 2) + " frames)" : " (1 frame)";
+ else
+ suffix = "";
+ t3 = reasons[index0];
+ result.push(H.S(t3 == null ? parsedFrames[index0].source : t3) + suffix);
+ }
+ t1 = H.setRuntimeTypeInfo([], t2);
+ for (t2 = removedPackagesAndClasses.get$entries(removedPackagesAndClasses), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ if (t3.value > 0)
+ t1.push(t3.key);
+ }
+ C.JSArray_methods.sort$0(t1);
+ if (skipped === 1)
+ result.push("(elided one frame from " + H.S(C.JSArray_methods.get$single(t1)) + ")");
+ else if (skipped > 1) {
+ t2 = t1.length;
+ if (t2 > 1)
+ t1[t2 - 1] = "and " + H.S(C.JSArray_methods.get$last(t1));
+ if (t1.length > 2)
+ result.push("(elided " + skipped + " frames from " + C.JSArray_methods.join$1(t1, ", ") + ")");
+ else
+ result.push("(elided " + skipped + " frames from " + C.JSArray_methods.join$1(t1, " ") + ")");
+ }
+ return result;
+ },
+ debugPrintStack: function(label, maxFrames, stackTrace) {
+ var lines, t1;
+ if (label != null)
+ D.print__debugPrintThrottled$closure().call$1(label);
+ lines = H.setRuntimeTypeInfo(C.JSString_methods.trimRight$0(J.toString$0$(stackTrace == null ? P.StackTrace_current() : $.$get$FlutterError_demangleStackTrace().call$1(stackTrace))).split("\n"), type$.JSArray_String);
+ t1 = lines.length;
+ lines = J.take$1$ax(t1 !== 0 ? new H.SkipWhileIterable(lines, new U.debugPrintStack_closure(), type$.SkipWhileIterable_String) : lines, maxFrames);
+ D.print__debugPrintThrottled$closure().call$1(C.JSArray_methods.join$1(U.FlutterError_defaultStackFilter(lines), "\n"));
+ },
+ DiagnosticsStackTrace$: function($name, stack, stackFilter) {
+ var t1 = U.DiagnosticsStackTrace__applyStackFilter(stack, stackFilter);
+ return new U.DiagnosticsStackTrace(C.List_empty, t1, stack, true, $name, true, true, null, C.DiagnosticsTreeStyle_7);
+ },
+ DiagnosticsStackTrace__applyStackFilter: function(stack, stackFilter) {
+ if (stack == null)
+ return H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode);
+ return J.map$1$1$ax(U.FlutterError_defaultStackFilter(H.setRuntimeTypeInfo(C.JSString_methods.trimRight$0(H.S($.$get$FlutterError_demangleStackTrace().call$1(stack))).split("\n"), type$.JSArray_String)), U.assertions_DiagnosticsStackTrace__createStackFrame$closure(), type$.DiagnosticsNode).toList$0(0);
+ },
+ DiagnosticsStackTrace__createStackFrame: function(frame) {
+ return Y.DiagnosticsNode_DiagnosticsNode$message(frame, false, C.DiagnosticsTreeStyle_8);
+ },
+ _FlutterErrorDetailsNode$: function($name, style, value) {
+ return new U._FlutterErrorDetailsNode(value, $name, true, true, null, style);
+ },
+ _ErrorDiagnostic: function _ErrorDiagnostic() {
+ },
+ ErrorDescription: function ErrorDescription(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _._description = t0;
+ _.expandableValue = t1;
+ _.allowWrap = t2;
+ _.ifNull = t3;
+ _.ifEmpty = t4;
+ _.tooltip = t5;
+ _.missingIfNull = t6;
+ _._value = t7;
+ _._valueComputed = true;
+ _._diagnostics$_exception = null;
+ _.defaultValue = t8;
+ _._defaultLevel = t9;
+ _.name = t10;
+ _.showSeparator = t11;
+ _.showName = t12;
+ _.linePrefix = t13;
+ _.style = t14;
+ },
+ ErrorSummary: function ErrorSummary(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _._description = t0;
+ _.expandableValue = t1;
+ _.allowWrap = t2;
+ _.ifNull = t3;
+ _.ifEmpty = t4;
+ _.tooltip = t5;
+ _.missingIfNull = t6;
+ _._value = t7;
+ _._valueComputed = true;
+ _._diagnostics$_exception = null;
+ _.defaultValue = t8;
+ _._defaultLevel = t9;
+ _.name = t10;
+ _.showSeparator = t11;
+ _.showName = t12;
+ _.linePrefix = t13;
+ _.style = t14;
+ },
+ ErrorHint: function ErrorHint(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _._description = t0;
+ _.expandableValue = t1;
+ _.allowWrap = t2;
+ _.ifNull = t3;
+ _.ifEmpty = t4;
+ _.tooltip = t5;
+ _.missingIfNull = t6;
+ _._value = t7;
+ _._valueComputed = true;
+ _._diagnostics$_exception = null;
+ _.defaultValue = t8;
+ _._defaultLevel = t9;
+ _.name = t10;
+ _.showSeparator = t11;
+ _.showName = t12;
+ _.linePrefix = t13;
+ _.style = t14;
+ },
+ ErrorSpacer: function ErrorSpacer(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _._description = t0;
+ _.expandableValue = t1;
+ _.allowWrap = t2;
+ _.ifNull = t3;
+ _.ifEmpty = t4;
+ _.tooltip = t5;
+ _.missingIfNull = t6;
+ _._value = t7;
+ _._valueComputed = true;
+ _._diagnostics$_exception = null;
+ _.defaultValue = t8;
+ _._defaultLevel = t9;
+ _.name = t10;
+ _.showSeparator = t11;
+ _.showName = t12;
+ _.linePrefix = t13;
+ _.style = t14;
+ },
+ FlutterErrorDetails: function FlutterErrorDetails(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.exception = t0;
+ _.stack = t1;
+ _.library = t2;
+ _.context = t3;
+ _.informationCollector = t4;
+ _.silent = t5;
+ },
+ FlutterErrorDetails_summary_formatException: function FlutterErrorDetails_summary_formatException(t0) {
+ this.$this = t0;
+ },
+ FlutterErrorDetails_summary_closure: function FlutterErrorDetails_summary_closure() {
+ },
+ FlutterErrorDetails_summary_closure0: function FlutterErrorDetails_summary_closure0() {
+ },
+ FlutterErrorDetails_debugFillProperties_closure: function FlutterErrorDetails_debugFillProperties_closure() {
+ },
+ FlutterError: function FlutterError(t0) {
+ this.diagnostics = t0;
+ },
+ FlutterError_FlutterError_closure: function FlutterError_FlutterError_closure() {
+ },
+ FlutterError_closure: function FlutterError_closure() {
+ },
+ FlutterError_closure0: function FlutterError_closure0() {
+ },
+ FlutterError_defaultStackFilter_closure: function FlutterError_defaultStackFilter_closure() {
+ },
+ FlutterError_defaultStackFilter_closure0: function FlutterError_defaultStackFilter_closure0() {
+ },
+ FlutterError_toString_closure: function FlutterError_toString_closure(t0) {
+ this.renderer = t0;
+ },
+ debugPrintStack_closure: function debugPrintStack_closure() {
+ },
+ DiagnosticsStackTrace: function DiagnosticsStackTrace(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _._diagnostics$_children = t0;
+ _._properties = t1;
+ _.value = t2;
+ _.allowTruncate = t3;
+ _.name = t4;
+ _.showSeparator = t5;
+ _.showName = t6;
+ _.linePrefix = t7;
+ _.style = t8;
+ },
+ _FlutterErrorDetailsNode: function _FlutterErrorDetailsNode(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.value = t0;
+ _._cachedBuilder = null;
+ _.name = t1;
+ _.showSeparator = t2;
+ _.showName = t3;
+ _.linePrefix = t4;
+ _.style = t5;
+ },
+ _FlutterError_Error_DiagnosticableTreeMixin: function _FlutterError_Error_DiagnosticableTreeMixin() {
+ },
+ _FlutterErrorDetails_Object_Diagnosticable: function _FlutterErrorDetails_Object_Diagnosticable() {
+ },
+ _getClipCallback: function(referenceBox, containedInkWell, rectCallback) {
+ if (rectCallback != null)
+ return rectCallback;
+ if (containedInkWell)
+ return new U._getClipCallback_closure(referenceBox);
+ return null;
+ },
+ _getTargetRadius: function(referenceBox, containedInkWell, rectCallback, position) {
+ var t1, size, d1, d2, d3, d4;
+ if (containedInkWell) {
+ if (rectCallback != null) {
+ t1 = rectCallback.call$0();
+ size = new P.Size(t1.right - t1.left, t1.bottom - t1.top);
+ } else {
+ t1 = referenceBox._size;
+ t1.toString;
+ size = t1;
+ }
+ d1 = position.$sub(0, C.Offset_0_0).get$distance();
+ d2 = position.$sub(0, new P.Offset(0 + size._dx, 0)).get$distance();
+ d3 = position.$sub(0, new P.Offset(0, 0 + size._dy)).get$distance();
+ d4 = position.$sub(0, size.bottomRight$1(0, C.Offset_0_0)).get$distance();
+ return Math.ceil(Math.max(Math.max(d1, d2), Math.max(d3, d4)));
+ }
+ return 35;
+ },
+ _getClipCallback_closure: function _getClipCallback_closure(t0) {
+ this.referenceBox = t0;
+ },
+ _InkSplashFactory: function _InkSplashFactory() {
+ },
+ InkSplash: function InkSplash(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _._ink_splash$_position = t0;
+ _._ink_splash$_borderRadius = t1;
+ _._customBorder = t2;
+ _._targetRadius = t3;
+ _._clipCallback = t4;
+ _._repositionToReferenceBox = t5;
+ _._ink_splash$_textDirection = t6;
+ _.__InkSplash__radius = null;
+ _.__InkSplash__radius_isSet = false;
+ _.__InkSplash__radiusController = null;
+ _.__InkSplash__radiusController_isSet = false;
+ _.__InkSplash__alpha = null;
+ _.__InkSplash__alpha_isSet = false;
+ _._ink_splash$_alphaController = null;
+ _._ink_well$_color = t7;
+ _._material$_controller = t8;
+ _.referenceBox = t9;
+ _.onRemoved = t10;
+ _._material$_debugDisposed = false;
+ },
+ _MaterialLocalizationsDelegate: function _MaterialLocalizationsDelegate() {
+ },
+ DefaultMaterialLocalizations: function DefaultMaterialLocalizations() {
+ },
+ OutlinedButtonThemeData_lerp: function(a, b, t) {
+ var t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ t1 = t1 ? null : a.style;
+ return new U.OutlinedButtonThemeData(A.ButtonStyle_lerp(t1, b == null ? null : b.style, t));
+ },
+ OutlinedButtonThemeData: function OutlinedButtonThemeData(t0) {
+ this.style = t0;
+ },
+ _OutlinedButtonThemeData_Object_Diagnosticable: function _OutlinedButtonThemeData_Object_Diagnosticable() {
+ },
+ TabBarTheme: function TabBarTheme(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.indicator = t0;
+ _.indicatorSize = t1;
+ _.labelColor = t2;
+ _.labelPadding = t3;
+ _.labelStyle = t4;
+ _.unselectedLabelColor = t5;
+ _.unselectedLabelStyle = t6;
+ },
+ _TabBarTheme_Object_Diagnosticable: function _TabBarTheme_Object_Diagnosticable() {
+ },
+ Typography_Typography$material2014: function(platform) {
+ return U.Typography_Typography$_withPlatform(platform, null, null, C.TextTheme_wM5, C.TextTheme_ER2, C.TextTheme_IAC);
+ },
+ Typography_Typography$_withPlatform: function(platform, black, white, englishLike, dense, tall) {
+ switch (platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ black = C.TextTheme_k4X;
+ white = C.TextTheme_tEM;
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ black = C.TextTheme_cAf;
+ white = C.TextTheme_Z0t;
+ break;
+ case C.TargetPlatform_5:
+ black = C.TextTheme_EOZ;
+ white = C.TextTheme_mGH;
+ break;
+ case C.TargetPlatform_3:
+ black = C.TextTheme_CZR;
+ white = C.TextTheme_efs;
+ break;
+ case null:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ black.toString;
+ white.toString;
+ return new U.Typography(black, white, englishLike, dense, tall);
+ },
+ ScriptCategory: function ScriptCategory(t0) {
+ this._typography$_name = t0;
+ },
+ Typography: function Typography(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.black = t0;
+ _.white = t1;
+ _.englishLike = t2;
+ _.dense = t3;
+ _.tall = t4;
+ },
+ _Typography_Object_Diagnosticable: function _Typography_Object_Diagnosticable() {
+ },
+ PlaceholderDimensions: function PlaceholderDimensions(t0, t1) {
+ this.size = t0;
+ this.baseline = t1;
+ },
+ TextWidthBasis: function TextWidthBasis(t0) {
+ this._text_painter$_name = t0;
+ },
+ _CaretMetrics: function _CaretMetrics(t0, t1) {
+ this.offset = t0;
+ this.fullHeight = t1;
+ },
+ TextPainter: function TextPainter(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _._text_painter$_paragraph = null;
+ _._text_painter$_needsLayout = true;
+ _._text_painter$_text = t0;
+ _._text_painter$_textAlign = t1;
+ _._text_painter$_textDirection = t2;
+ _._textScaleFactor = t3;
+ _._text_painter$_ellipsis = t4;
+ _._text_painter$_locale = t5;
+ _._text_painter$_maxLines = t6;
+ _._text_painter$_strutStyle = t7;
+ _._textWidthBasis = t8;
+ _._text_painter$_textHeightBehavior = t9;
+ _.__TextPainter__caretMetrics = _._lastMaxWidth = _._lastMinWidth = _._text_painter$_placeholderDimensions = _._inlinePlaceholderScales = _._inlinePlaceholderBoxes = _._layoutTemplate = null;
+ _.__TextPainter__caretMetrics_isSet = false;
+ _._previousCaretPrototype = _._previousCaretPosition = null;
+ },
+ RenderSliverList: function RenderSliverList(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._childManager = t0;
+ _._keepAliveBucket = t1;
+ _.__RenderSliverMultiBoxAdaptor__debugDanglingKeepAlives = null;
+ _.__RenderSliverMultiBoxAdaptor__debugDanglingKeepAlives_isSet = false;
+ _._debugChildIntegrityEnabled = true;
+ _.ContainerRenderObjectMixin__childCount = t2;
+ _.ContainerRenderObjectMixin__firstChild = t3;
+ _.ContainerRenderObjectMixin__lastChild = t4;
+ _.debugCreator = _.parentData = _._sliver$_geometry = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderSliverList_performLayout_advance: function RenderSliverList_performLayout_advance(t0, t1, t2) {
+ this._box_0 = t0;
+ this.$this = t1;
+ this.childConstraints = t2;
+ },
+ StringCodec: function StringCodec() {
+ },
+ JSONMessageCodec0: function JSONMessageCodec0() {
+ },
+ JSONMethodCodec0: function JSONMethodCodec0() {
+ },
+ StandardMessageCodec0: function StandardMessageCodec0() {
+ },
+ StandardMessageCodec_writeValue_closure: function StandardMessageCodec_writeValue_closure(t0, t1) {
+ this.$this = t0;
+ this.buffer = t1;
+ },
+ StandardMethodCodec0: function StandardMethodCodec0() {
+ },
+ _getParent: function(context) {
+ var t1 = {};
+ t1.parent = null;
+ t1._parent_isSet = false;
+ context.visitAncestorElements$1(new U._getParent_closure(new U._getParent__parent_set(t1)));
+ return new U._getParent__parent_get(t1).call$0();
+ },
+ Actions$: function(actions, child) {
+ return new U.Actions(actions, child, null);
+ },
+ Actions__visitActionsAncestors: function(context, visitor) {
+ var t2, ancestor,
+ t1 = type$._ActionsMarker,
+ actionsElement = context.getElementForInheritedWidgetOfExactType$1$0(t1);
+ for (; t2 = actionsElement != null, t2; actionsElement = ancestor) {
+ if (J.$eq$(visitor.call$1(actionsElement), true))
+ break;
+ t2 = U._getParent(actionsElement)._inheritedWidgets;
+ ancestor = t2 == null ? null : t2.$index(0, H.createRuntimeType(t1));
+ }
+ return t2;
+ },
+ Actions__findDispatcher: function(context) {
+ var t1 = {};
+ t1.dispatcher = null;
+ U.Actions__visitActionsAncestors(context, new U.Actions__findDispatcher_closure(t1));
+ return C.C_ActionDispatcher;
+ },
+ Actions_maybeFind: function(context, intent, $T) {
+ var type, t1 = {};
+ t1.action = null;
+ type = H.getRuntimeType(intent);
+ U.Actions__visitActionsAncestors(context, new U.Actions_maybeFind_closure(t1, type, $T, context));
+ return t1.action;
+ },
+ DoNothingAction$: function(consumesKey) {
+ return new U.DoNothingAction(consumesKey, new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_Action_Intent), type$.ObserverList_of_void_Function_Action_Intent));
+ },
+ _getParent__parent_set: function _getParent__parent_set(t0) {
+ this._box_0 = t0;
+ },
+ _getParent__parent_get: function _getParent__parent_get(t0) {
+ this._box_0 = t0;
+ },
+ _getParent_closure: function _getParent_closure(t0) {
+ this._parent_set = t0;
+ },
+ Intent: function Intent() {
+ },
+ Action: function Action() {
+ },
+ CallbackAction: function CallbackAction(t0, t1, t2) {
+ this.onInvoke = t0;
+ this._actions$_listeners = t1;
+ this.$ti = t2;
+ },
+ ActionDispatcher: function ActionDispatcher() {
+ },
+ Actions: function Actions(t0, t1, t2) {
+ this.actions = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ Actions__findDispatcher_closure: function Actions__findDispatcher_closure(t0) {
+ this._box_0 = t0;
+ },
+ Actions_maybeFind_closure: function Actions_maybeFind_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _._box_0 = t0;
+ _.type = t1;
+ _.T = t2;
+ _.context = t3;
+ },
+ _ActionsState: function _ActionsState(t0, t1, t2) {
+ var _ = this;
+ _.listenedActions = t0;
+ _.rebuildKey = t1;
+ _._widget = null;
+ _._debugLifecycleState = t2;
+ _._framework$_element = null;
+ },
+ _ActionsState__handleActionChanged_closure: function _ActionsState__handleActionChanged_closure(t0) {
+ this.$this = t0;
+ },
+ _ActionsMarker: function _ActionsMarker(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.dispatcher = t0;
+ _.actions = t1;
+ _.rebuildKey = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ DoNothingAction: function DoNothingAction(t0, t1) {
+ this._consumesKey = t0;
+ this._actions$_listeners = t1;
+ },
+ ActivateIntent: function ActivateIntent() {
+ },
+ DismissIntent: function DismissIntent() {
+ },
+ DismissAction: function DismissAction() {
+ },
+ _Action_Object_Diagnosticable: function _Action_Object_Diagnosticable() {
+ },
+ _ActionDispatcher_Object_Diagnosticable: function _ActionDispatcher_Object_Diagnosticable() {
+ },
+ _Intent_Object_Diagnosticable: function _Intent_Object_Diagnosticable() {
+ },
+ _getAncestor: function(context, count) {
+ var t1 = {};
+ t1.count = count;
+ t1.target = null;
+ context.visitAncestorElements$1(new U._getAncestor_closure(t1));
+ return t1.target;
+ },
+ _focusAndEnsureVisible: function(node, alignmentPolicy) {
+ var t1;
+ node.requestFocus$0();
+ t1 = node._context;
+ t1.toString;
+ F.Scrollable_ensureVisible(t1, 1, alignmentPolicy);
+ },
+ _FocusTraversalGroupInfo$: function(marker, defaultPolicy, members) {
+ var t1 = marker == null ? null : marker.policy;
+ if (t1 == null)
+ t1 = defaultPolicy;
+ return new U._FocusTraversalGroupInfo(t1, members);
+ },
+ _ReadingOrderSortData_commonDirectionalityOf: function(list) {
+ var t1, common, cur,
+ allAncestors = new H.MappedListIterable(list, new U._ReadingOrderSortData_commonDirectionalityOf_closure(), H._arrayInstanceType(list)._eval$1("MappedListIterable<1,Set>"));
+ for (t1 = new H.ListIterator(allAncestors, allAncestors.get$length(allAncestors)), common = null; t1.moveNext$0();) {
+ cur = t1._current;
+ common = (common == null ? cur : common).intersection$1(0, cur);
+ }
+ if (common.get$isEmpty(common))
+ return C.JSArray_methods.get$first(list).directionality;
+ t1 = C.JSArray_methods.get$first(list).get$directionalAncestors();
+ return (t1 && C.JSArray_methods).firstWhere$1(t1, common.get$contains(common)).textDirection;
+ },
+ _ReadingOrderSortData_sortWithDirectionality: function(list, directionality) {
+ S.mergeSort(list, new U._ReadingOrderSortData_sortWithDirectionality_closure(directionality), type$._ReadingOrderSortData);
+ },
+ _ReadingOrderDirectionalGroupData_sortWithDirectionality: function(list, directionality) {
+ S.mergeSort(list, new U._ReadingOrderDirectionalGroupData_sortWithDirectionality_closure(directionality), type$._ReadingOrderDirectionalGroupData);
+ },
+ _getAncestor_closure: function _getAncestor_closure(t0) {
+ this._box_0 = t0;
+ },
+ _FocusTraversalGroupInfo: function _FocusTraversalGroupInfo(t0, t1) {
+ this.policy = t0;
+ this.members = t1;
+ },
+ TraversalDirection: function TraversalDirection(t0) {
+ this._focus_traversal$_name = t0;
+ },
+ FocusTraversalPolicy: function FocusTraversalPolicy() {
+ },
+ FocusTraversalPolicy__sortAllDescendants_visitGroups: function FocusTraversalPolicy__sortAllDescendants_visitGroups(t0, t1, t2) {
+ this.groupKeys = t0;
+ this.groups = t1;
+ this.sortedDescendants = t2;
+ },
+ _DirectionalPolicyDataEntry: function _DirectionalPolicyDataEntry(t0, t1) {
+ this.direction = t0;
+ this.node = t1;
+ },
+ _DirectionalPolicyData: function _DirectionalPolicyData(t0) {
+ this.history = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin: function DirectionalFocusTraversalPolicyMixin() {
+ },
+ _ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin_changedScope_closure: function _ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin_changedScope_closure(t0) {
+ this.node = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin__sortAndFindInitial_closure: function DirectionalFocusTraversalPolicyMixin__sortAndFindInitial_closure(t0, t1) {
+ this.vertical = t0;
+ this.first = t1;
+ },
+ DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure: function DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure() {
+ },
+ DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure0: function DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure0(t0) {
+ this.target = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure1: function DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure1(t0) {
+ this.target = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure: function DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure() {
+ },
+ DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure0: function DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure0(t0) {
+ this.target = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure1: function DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure1(t0) {
+ this.target = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin__popPolicyDataIfNeeded_popOrInvalidate: function DirectionalFocusTraversalPolicyMixin__popPolicyDataIfNeeded_popOrInvalidate(t0, t1, t2) {
+ this.$this = t0;
+ this.policyData = t1;
+ this.nearestScope = t2;
+ },
+ DirectionalFocusTraversalPolicyMixin_inDirection_closure: function DirectionalFocusTraversalPolicyMixin_inDirection_closure(t0) {
+ this.focusedScrollable = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin_inDirection_closure0: function DirectionalFocusTraversalPolicyMixin_inDirection_closure0(t0) {
+ this.band = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin_inDirection_closure1: function DirectionalFocusTraversalPolicyMixin_inDirection_closure1(t0) {
+ this.focusedChild = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin_inDirection_closure2: function DirectionalFocusTraversalPolicyMixin_inDirection_closure2(t0) {
+ this.focusedScrollable = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin_inDirection_closure3: function DirectionalFocusTraversalPolicyMixin_inDirection_closure3(t0) {
+ this.band = t0;
+ },
+ DirectionalFocusTraversalPolicyMixin_inDirection_closure4: function DirectionalFocusTraversalPolicyMixin_inDirection_closure4(t0) {
+ this.focusedChild = t0;
+ },
+ _ReadingOrderSortData: function _ReadingOrderSortData(t0, t1, t2) {
+ var _ = this;
+ _.directionality = t0;
+ _.rect = t1;
+ _.node = t2;
+ _._directionalAncestors = null;
+ },
+ _ReadingOrderSortData_commonDirectionalityOf_closure: function _ReadingOrderSortData_commonDirectionalityOf_closure() {
+ },
+ _ReadingOrderSortData_sortWithDirectionality_closure: function _ReadingOrderSortData_sortWithDirectionality_closure(t0) {
+ this.directionality = t0;
+ },
+ _ReadingOrderSortData_directionalAncestors_getDirectionalityAncestors: function _ReadingOrderSortData_directionalAncestors_getDirectionalityAncestors() {
+ },
+ _ReadingOrderDirectionalGroupData: function _ReadingOrderDirectionalGroupData(t0) {
+ this.members = t0;
+ this._rect = null;
+ },
+ _ReadingOrderDirectionalGroupData_rect_closure: function _ReadingOrderDirectionalGroupData_rect_closure() {
+ },
+ _ReadingOrderDirectionalGroupData_sortWithDirectionality_closure: function _ReadingOrderDirectionalGroupData_sortWithDirectionality_closure(t0) {
+ this.directionality = t0;
+ },
+ ReadingOrderTraversalPolicy: function ReadingOrderTraversalPolicy(t0) {
+ this.DirectionalFocusTraversalPolicyMixin__policyData = t0;
+ },
+ ReadingOrderTraversalPolicy__pickNext_closure: function ReadingOrderTraversalPolicy__pickNext_closure() {
+ },
+ ReadingOrderTraversalPolicy__pickNext_inBand: function ReadingOrderTraversalPolicy__pickNext_inBand() {
+ },
+ ReadingOrderTraversalPolicy__pickNext_inBand_closure: function ReadingOrderTraversalPolicy__pickNext_inBand_closure(t0) {
+ this.band = t0;
+ },
+ FocusTraversalGroup: function FocusTraversalGroup(t0, t1, t2) {
+ this.policy = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _FocusTraversalGroupState: function _FocusTraversalGroupState(t0) {
+ var _ = this;
+ _._widget = _.focusNode = null;
+ _._debugLifecycleState = t0;
+ _._framework$_element = null;
+ },
+ _FocusTraversalGroupMarker: function _FocusTraversalGroupMarker(t0, t1, t2, t3) {
+ var _ = this;
+ _.policy = t0;
+ _.focusNode = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ RequestFocusAction: function RequestFocusAction(t0) {
+ this._actions$_listeners = t0;
+ },
+ NextFocusIntent: function NextFocusIntent() {
+ },
+ NextFocusAction: function NextFocusAction(t0) {
+ this._actions$_listeners = t0;
+ },
+ PreviousFocusIntent: function PreviousFocusIntent() {
+ },
+ PreviousFocusAction: function PreviousFocusAction(t0) {
+ this._actions$_listeners = t0;
+ },
+ DirectionalFocusAction: function DirectionalFocusAction(t0) {
+ this._actions$_listeners = t0;
+ },
+ _FocusTraversalPolicy_Object_Diagnosticable: function _FocusTraversalPolicy_Object_Diagnosticable() {
+ },
+ _ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin: function _ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin() {
+ },
+ __ReadingOrderDirectionalGroupData_Object_Diagnosticable: function __ReadingOrderDirectionalGroupData_Object_Diagnosticable() {
+ },
+ __ReadingOrderSortData_Object_Diagnosticable: function __ReadingOrderSortData_Object_Diagnosticable() {
+ },
+ Notification0: function Notification0() {
+ },
+ NotificationListener: function NotificationListener(t0, t1, t2, t3) {
+ var _ = this;
+ _.child = t0;
+ _.onNotification = t1;
+ _.key = t2;
+ _.$ti = t3;
+ },
+ LayoutChangedNotification: function LayoutChangedNotification() {
+ },
+ RestorableValue: function RestorableValue() {
+ },
+ _RestorablePrimitiveValue: function _RestorablePrimitiveValue() {
+ },
+ RestorableNum: function RestorableNum(t0, t1, t2) {
+ var _ = this;
+ _._defaultValue = t0;
+ _._restoration_properties$_value = null;
+ _._disposed = false;
+ _._restoration0$_owner = _._restoration0$_restorationId = null;
+ _.ChangeNotifier__listeners = t1;
+ _.$ti = t2;
+ },
+ RestorableListenable: function RestorableListenable() {
+ },
+ RestorableChangeNotifier: function RestorableChangeNotifier() {
+ },
+ RestorableTextEditingController: function RestorableTextEditingController(t0, t1) {
+ var _ = this;
+ _._initialValue = t0;
+ _._restoration_properties$_value = null;
+ _._disposed = false;
+ _._restoration0$_owner = _._restoration0$_restorationId = null;
+ _.ChangeNotifier__listeners = t1;
+ },
+ TickerMode_of: function(context) {
+ var widget = context.dependOnInheritedWidgetOfExactType$1$0(type$._EffectiveTickerMode),
+ t1 = widget == null ? null : widget.enabled;
+ return t1 !== false;
+ },
+ TickerMode: function TickerMode(t0, t1, t2) {
+ this.enabled = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ _EffectiveTickerMode: function _EffectiveTickerMode(t0, t1, t2) {
+ this.enabled = t0;
+ this.child = t1;
+ this.key = t2;
+ },
+ SingleTickerProviderStateMixin: function SingleTickerProviderStateMixin() {
+ },
+ TickerProviderStateMixin: function TickerProviderStateMixin() {
+ },
+ _WidgetTicker: function _WidgetTicker(t0, t1, t2) {
+ var _ = this;
+ _._creator = t0;
+ _._ticker$_future = null;
+ _._muted = false;
+ _._startTime = null;
+ _._onTick = t1;
+ _._animationId = null;
+ _.debugLabel = t2;
+ _.__Ticker__debugCreationStack = null;
+ _.__Ticker__debugCreationStack_isSet = false;
+ },
+ Title: function Title(t0, t1, t2, t3) {
+ var _ = this;
+ _.title = t0;
+ _.color = t1;
+ _.child = t2;
+ _.key = t3;
+ },
+ RTCPeerConnectionWeb$: function(_peerConnectionId, _jsPc) {
+ var t1 = type$.legacy_String,
+ t2 = type$.legacy_MediaStream;
+ t1 = new U.RTCPeerConnectionWeb(_peerConnectionId, _jsPc, P.LinkedHashMap_LinkedHashMap$_empty(t1, t2), P.LinkedHashMap_LinkedHashMap$_empty(t1, t2), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.dynamic));
+ t1.RTCPeerConnectionWeb$2(_peerConnectionId, _jsPc);
+ return t1;
+ },
+ RTCPeerConnectionWeb: function RTCPeerConnectionWeb(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._peerConnectionId = t0;
+ _._jsPc = t1;
+ _._localStreams = t2;
+ _._rtc_peerconnection_impl$_remoteStreams = t3;
+ _._rtc_peerconnection_impl$_configuration = t4;
+ _.onTrack = _.onDataChannel = _.onRemoveStream = _.onIceCandidate = _.onIceConnectionState = _._connectionState = _._iceConnectionState = _._iceGatheringState = _._signalingState = null;
+ },
+ RTCPeerConnectionWeb_closure: function RTCPeerConnectionWeb_closure(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb__closure0: function RTCPeerConnectionWeb__closure0(t0, t1) {
+ this.$this = t0;
+ this.jsStream = t1;
+ },
+ RTCPeerConnectionWeb__closure1: function RTCPeerConnectionWeb__closure1(t0, t1) {
+ this.$this = t0;
+ this._remoteStream = t1;
+ },
+ RTCPeerConnectionWeb___closure0: function RTCPeerConnectionWeb___closure0(t0, t1, t2) {
+ this.$this = t0;
+ this._remoteStream = t1;
+ this.track = t2;
+ },
+ RTCPeerConnectionWeb__closure2: function RTCPeerConnectionWeb__closure2(t0, t1) {
+ this.$this = t0;
+ this._remoteStream = t1;
+ },
+ RTCPeerConnectionWeb___closure: function RTCPeerConnectionWeb___closure(t0, t1, t2) {
+ this.$this = t0;
+ this._remoteStream = t1;
+ this.track = t2;
+ },
+ RTCPeerConnectionWeb_closure0: function RTCPeerConnectionWeb_closure0(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_closure1: function RTCPeerConnectionWeb_closure1(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_closure2: function RTCPeerConnectionWeb_closure2(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_closure3: function RTCPeerConnectionWeb_closure3(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_closure4: function RTCPeerConnectionWeb_closure4(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_closure5: function RTCPeerConnectionWeb_closure5(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_closure6: function RTCPeerConnectionWeb_closure6(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_closure7: function RTCPeerConnectionWeb_closure7(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_closure8: function RTCPeerConnectionWeb_closure8(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb__closure: function RTCPeerConnectionWeb__closure(t0) {
+ this.$this = t0;
+ },
+ RTCPeerConnectionWeb_addCandidate_closure: function RTCPeerConnectionWeb_addCandidate_closure(t0) {
+ this.completer = t0;
+ },
+ RTCPeerConnectionWeb_addCandidate_closure0: function RTCPeerConnectionWeb_addCandidate_closure0(t0) {
+ this.completer = t0;
+ },
+ Response_fromStream: function(response) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_Response),
+ $async$returnValue, body, t1, t2, t3, t4, t5, t6;
+ var $async$Response_fromStream = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait(response.stream.toBytes$0(), $async$Response_fromStream);
+ case 3:
+ // returning from await.
+ body = $async$result;
+ t1 = response.statusCode;
+ t2 = response.request;
+ t3 = response.headers;
+ t4 = response.reasonPhrase;
+ t5 = B.toUint8List(body);
+ t6 = body.length;
+ t5 = new U.Response(t5, t2, t1, t4, t6, t3, false, true);
+ t5.BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request(t1, t6, t3, false, true, t4, t2);
+ $async$returnValue = t5;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$Response_fromStream, $async$completer);
+ },
+ _contentTypeForHeaders: function(headers) {
+ var contentType = headers.$index(0, "content-type");
+ if (contentType != null)
+ return R.MediaType_MediaType$parse(contentType);
+ return R.MediaType$("application", "octet-stream", null);
+ },
+ Response: function Response(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.bodyBytes = t0;
+ _.request = t1;
+ _.statusCode = t2;
+ _.reasonPhrase = t3;
+ _.contentLength = t4;
+ _.headers = t5;
+ _.isRedirect = t6;
+ _.persistentConnection = t7;
+ },
+ Highlighter$: function(span, color) {
+ var t1 = U.Highlighter__collateLines(H.setRuntimeTypeInfo([U._Highlight$(span, true)], type$.JSArray__Highlight)),
+ t2 = new U.Highlighter_closure(color).call$0(),
+ t3 = C.JSInt_methods.toString$0(C.JSArray_methods.get$last(t1).number + 1),
+ t4 = U.Highlighter__contiguous(t1) ? 0 : 3,
+ t5 = H._arrayInstanceType(t1);
+ return new U.Highlighter(t1, t2, null, 1 + Math.max(t3.length, t4), new H.MappedListIterable(t1, new U.Highlighter$__closure(), t5._eval$1("MappedListIterable<1,int>")).reduce$1(0, C.CONSTANT), !B.isAllTheSame(new H.WhereTypeIterable(new H.MappedListIterable(t1, new U.Highlighter$__closure0(), t5._eval$1("MappedListIterable<1,Uri?>")), type$.WhereTypeIterable_Uri)), new P.StringBuffer(""));
+ },
+ Highlighter__contiguous: function(lines) {
+ var i, thisLine, nextLine;
+ for (i = 0; i < lines.length - 1;) {
+ thisLine = lines[i];
+ ++i;
+ nextLine = lines[i];
+ if (thisLine.number + 1 !== nextLine.number && J.$eq$(thisLine.url, nextLine.url))
+ return false;
+ }
+ return true;
+ },
+ Highlighter__collateLines: function(highlights) {
+ var t1, t2,
+ highlightsByUrl = Y.groupBy(highlights, new U.Highlighter__collateLines_closure(), type$._Highlight, type$.nullable_Uri);
+ for (t1 = highlightsByUrl.get$values(highlightsByUrl), t1 = t1.get$iterator(t1); t1.moveNext$0();)
+ J.sort$1$ax(t1.get$current(t1), new U.Highlighter__collateLines_closure0());
+ t1 = highlightsByUrl.get$values(highlightsByUrl);
+ t2 = H._instanceType(t1)._eval$1("ExpandIterable");
+ return P.List_List$of(new H.ExpandIterable(t1, new U.Highlighter__collateLines_closure1(), t2), true, t2._eval$1("Iterable.E"));
+ },
+ _Highlight$: function(span, primary) {
+ return new U._Highlight(new U._Highlight_closure(span).call$0(), true);
+ },
+ _Highlight__normalizeNewlines: function(span) {
+ var t1, endOffset, i, t2, t3, t4,
+ text = span.get$text(span);
+ if (!C.JSString_methods.contains$1(text, "\r\n"))
+ return span;
+ t1 = span.get$end(span);
+ endOffset = t1.get$offset(t1);
+ for (t1 = text.length - 1, i = 0; i < t1; ++i)
+ if (C.JSString_methods._codeUnitAt$1(text, i) === 13 && C.JSString_methods._codeUnitAt$1(text, i + 1) === 10)
+ --endOffset;
+ t1 = span.get$start(span);
+ t2 = span.get$sourceUrl();
+ t3 = span.get$end(span);
+ t3 = t3.get$line(t3);
+ t2 = V.SourceLocation$(endOffset, span.get$end(span).get$column(), t3, t2);
+ t3 = H.stringReplaceAllUnchecked(text, "\r\n", "\n");
+ t4 = span.get$context(span);
+ return X.SourceSpanWithContext$(t1, t2, t3, H.stringReplaceAllUnchecked(t4, "\r\n", "\n"));
+ },
+ _Highlight__normalizeTrailingNewline: function(span) {
+ var context, text, start, end, t1, t2, t3;
+ if (!C.JSString_methods.endsWith$1(span.get$context(span), "\n"))
+ return span;
+ if (C.JSString_methods.endsWith$1(span.get$text(span), "\n\n"))
+ return span;
+ context = C.JSString_methods.substring$2(span.get$context(span), 0, span.get$context(span).length - 1);
+ text = span.get$text(span);
+ start = span.get$start(span);
+ end = span.get$end(span);
+ if (C.JSString_methods.endsWith$1(span.get$text(span), "\n")) {
+ t1 = B.findLineStart(span.get$context(span), span.get$text(span), span.get$start(span).get$column());
+ t1.toString;
+ t1 = t1 + span.get$start(span).get$column() + span.get$length(span) === span.get$context(span).length;
+ } else
+ t1 = false;
+ if (t1) {
+ text = C.JSString_methods.substring$2(span.get$text(span), 0, span.get$text(span).length - 1);
+ if (text.length === 0)
+ end = start;
+ else {
+ t1 = span.get$end(span);
+ t1 = t1.get$offset(t1);
+ t2 = span.get$sourceUrl();
+ t3 = span.get$end(span);
+ t3 = t3.get$line(t3);
+ end = V.SourceLocation$(t1 - 1, U._Highlight__lastLineLength(context), t3 - 1, t2);
+ t1 = span.get$start(span);
+ t1 = t1.get$offset(t1);
+ t2 = span.get$end(span);
+ start = t1 === t2.get$offset(t2) ? end : span.get$start(span);
+ }
+ }
+ return X.SourceSpanWithContext$(start, end, text, context);
+ },
+ _Highlight__normalizeEndOfLine: function(span) {
+ var t1, t2, text, t3, t4;
+ if (span.get$end(span).get$column() !== 0)
+ return span;
+ t1 = span.get$end(span);
+ t1 = t1.get$line(t1);
+ t2 = span.get$start(span);
+ if (t1 == t2.get$line(t2))
+ return span;
+ text = C.JSString_methods.substring$2(span.get$text(span), 0, span.get$text(span).length - 1);
+ t1 = span.get$start(span);
+ t2 = span.get$end(span);
+ t2 = t2.get$offset(t2);
+ t3 = span.get$sourceUrl();
+ t4 = span.get$end(span);
+ t4 = t4.get$line(t4);
+ t3 = V.SourceLocation$(t2 - 1, text.length - C.JSString_methods.lastIndexOf$1(text, "\n") - 1, t4 - 1, t3);
+ return X.SourceSpanWithContext$(t1, t3, text, C.JSString_methods.endsWith$1(span.get$context(span), "\n") ? C.JSString_methods.substring$2(span.get$context(span), 0, span.get$context(span).length - 1) : span.get$context(span));
+ },
+ _Highlight__lastLineLength: function(text) {
+ var t1 = text.length;
+ if (t1 === 0)
+ return 0;
+ else if (C.JSString_methods.codeUnitAt$1(text, t1 - 1) === 10)
+ return t1 === 1 ? 0 : t1 - C.JSString_methods.lastIndexOf$2(text, "\n", t1 - 2) - 1;
+ else
+ return t1 - C.JSString_methods.lastIndexOf$1(text, "\n") - 1;
+ },
+ Highlighter: function Highlighter(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._lines = t0;
+ _._highlighter$_primaryColor = t1;
+ _._secondaryColor = t2;
+ _._paddingBeforeSidebar = t3;
+ _._maxMultilineSpans = t4;
+ _._multipleFiles = t5;
+ _._highlighter$_buffer = t6;
+ },
+ Highlighter_closure: function Highlighter_closure(t0) {
+ this.color = t0;
+ },
+ Highlighter$__closure: function Highlighter$__closure() {
+ },
+ Highlighter$___closure: function Highlighter$___closure() {
+ },
+ Highlighter$__closure0: function Highlighter$__closure0() {
+ },
+ Highlighter__collateLines_closure: function Highlighter__collateLines_closure() {
+ },
+ Highlighter__collateLines_closure0: function Highlighter__collateLines_closure0() {
+ },
+ Highlighter__collateLines_closure1: function Highlighter__collateLines_closure1() {
+ },
+ Highlighter__collateLines__closure: function Highlighter__collateLines__closure(t0) {
+ this.line = t0;
+ },
+ Highlighter_highlight_closure: function Highlighter_highlight_closure() {
+ },
+ Highlighter__writeFileStart_closure: function Highlighter__writeFileStart_closure(t0) {
+ this.$this = t0;
+ },
+ Highlighter__writeMultilineHighlights_closure: function Highlighter__writeMultilineHighlights_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.startLine = t1;
+ this.line = t2;
+ },
+ Highlighter__writeMultilineHighlights_closure0: function Highlighter__writeMultilineHighlights_closure0(t0, t1) {
+ this.$this = t0;
+ this.highlight = t1;
+ },
+ Highlighter__writeMultilineHighlights_closure1: function Highlighter__writeMultilineHighlights_closure1(t0) {
+ this.$this = t0;
+ },
+ Highlighter__writeMultilineHighlights_closure2: function Highlighter__writeMultilineHighlights_closure2(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._box_0 = t0;
+ _.$this = t1;
+ _.current = t2;
+ _.startLine = t3;
+ _.line = t4;
+ _.highlight = t5;
+ _.endLine = t6;
+ },
+ Highlighter__writeMultilineHighlights__closure: function Highlighter__writeMultilineHighlights__closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ Highlighter__writeMultilineHighlights__closure0: function Highlighter__writeMultilineHighlights__closure0(t0, t1) {
+ this.$this = t0;
+ this.vertical = t1;
+ },
+ Highlighter__writeHighlightedText_closure: function Highlighter__writeHighlightedText_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.$this = t0;
+ _.text = t1;
+ _.startColumn = t2;
+ _.endColumn = t3;
+ },
+ Highlighter__writeIndicator_closure: function Highlighter__writeIndicator_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.line = t1;
+ this.highlight = t2;
+ },
+ Highlighter__writeIndicator_closure0: function Highlighter__writeIndicator_closure0(t0, t1, t2) {
+ this.$this = t0;
+ this.line = t1;
+ this.highlight = t2;
+ },
+ Highlighter__writeIndicator_closure1: function Highlighter__writeIndicator_closure1(t0, t1, t2, t3) {
+ var _ = this;
+ _.$this = t0;
+ _.coversWholeLine = t1;
+ _.line = t2;
+ _.highlight = t3;
+ },
+ Highlighter__writeSidebar_closure: function Highlighter__writeSidebar_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.$this = t1;
+ this.end = t2;
+ },
+ _Highlight: function _Highlight(t0, t1) {
+ this.span = t0;
+ this.isPrimary = t1;
+ },
+ _Highlight_closure: function _Highlight_closure(t0) {
+ this.span = t0;
+ },
+ _Line: function _Line(t0, t1, t2, t3) {
+ var _ = this;
+ _.text = t0;
+ _.number = t1;
+ _.url = t2;
+ _.highlights = t3;
+ },
+ compute: function(callback, message, debugLabel, $Q, $R) {
+ return U.compute$body(callback, message, debugLabel, $Q, $R, $R);
+ },
+ compute$body: function(callback, message, debugLabel, $Q, $R, $async$type) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter($async$type),
+ $async$returnValue;
+ var $async$compute = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait(null, $async$compute);
+ case 3:
+ // returning from await.
+ $async$returnValue = callback.call$1(message);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$compute, $async$completer);
+ },
+ defaultTargetPlatform: function() {
+ var result = U._browserPlatform();
+ return result;
+ },
+ _browserPlatform: function() {
+ var t1 = window.navigator.platform,
+ navigatorPlatform = t1 == null ? null : t1.toLowerCase();
+ if (navigatorPlatform == null)
+ navigatorPlatform = "";
+ if (C.JSString_methods.startsWith$1(navigatorPlatform, "mac"))
+ return C.TargetPlatform_4;
+ if (C.JSString_methods.startsWith$1(navigatorPlatform, "win"))
+ return C.TargetPlatform_5;
+ if (C.JSString_methods.contains$1(navigatorPlatform, "iphone") || C.JSString_methods.contains$1(navigatorPlatform, "ipad") || C.JSString_methods.contains$1(navigatorPlatform, "ipod"))
+ return C.TargetPlatform_2;
+ if (C.JSString_methods.contains$1(navigatorPlatform, "android"))
+ return C.TargetPlatform_0;
+ if (window.matchMedia("only screen and (pointer: fine)").matches)
+ return C.TargetPlatform_3;
+ return C.TargetPlatform_0;
+ },
+ createLocalImageConfiguration: function(context) {
+ var t1, t2;
+ context.dependOnInheritedWidgetOfExactType$1$0(type$.DefaultAssetBundle);
+ t1 = $.$get$rootBundle();
+ t2 = F.MediaQuery_maybeOf(context);
+ t2 = t2 == null ? null : t2.devicePixelRatio;
+ if (t2 == null)
+ t2 = 1;
+ return new M.ImageConfiguration(t1, t2, L.Localizations_maybeLocaleOf(context), T.Directionality_maybeOf(context), null, U.defaultTargetPlatform());
+ }
+ },
+ N = {BindingBase: function BindingBase() {
+ }, BindingBase_lockEvents_closure: function BindingBase_lockEvents_closure(t0) {
+ this.$this = t0;
+ }, BindingBase_registerSignalServiceExtension_closure: function BindingBase_registerSignalServiceExtension_closure(t0) {
+ this.callback = t0;
+ }, BindingBase_registerBoolServiceExtension_closure: function BindingBase_registerBoolServiceExtension_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.$this = t0;
+ _.setter = t1;
+ _.name = t2;
+ _.getter = t3;
+ }, BindingBase_registerNumericServiceExtension_closure: function BindingBase_registerNumericServiceExtension_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.$this = t0;
+ _.name = t1;
+ _.setter = t2;
+ _.getter = t3;
+ }, BindingBase_registerServiceExtension_closure: function BindingBase_registerServiceExtension_closure(t0, t1) {
+ this.methodName = t0;
+ this.callback = t1;
+ }, BindingBase_registerServiceExtension_closure__result_set: function BindingBase_registerServiceExtension_closure__result_set(t0) {
+ this._box_0 = t0;
+ }, BindingBase_registerServiceExtension__closure: function BindingBase_registerServiceExtension__closure() {
+ }, BindingBase_registerServiceExtension_closure__result_get: function BindingBase_registerServiceExtension_closure__result_get(t0) {
+ this._box_0 = t0;
+ },
+ FlutterErrorDetailsForPointerEventDispatcher$: function(context, $event, exception, hitTestEntry, informationCollector, library, stack) {
+ return new N.FlutterErrorDetailsForPointerEventDispatcher(exception, stack, library, context, informationCollector, false);
+ },
+ _Resampler: function _Resampler(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._resamplers = t0;
+ _._frameCallbackScheduled = false;
+ _._frameTime = t1;
+ _._lastSampleTime = t2;
+ _._lastEventTime = t3;
+ _._handlePointerEvent = t4;
+ _._handleSampleTimeChanged = t5;
+ },
+ GestureBinding: function GestureBinding() {
+ },
+ GestureBinding_dispatchEvent_closure: function GestureBinding_dispatchEvent_closure(t0) {
+ this.event = t0;
+ },
+ GestureBinding_dispatchEvent_closure0: function GestureBinding_dispatchEvent_closure0(t0, t1) {
+ this.event = t0;
+ this.entry = t1;
+ },
+ FlutterErrorDetailsForPointerEventDispatcher: function FlutterErrorDetailsForPointerEventDispatcher(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.exception = t0;
+ _.stack = t1;
+ _.library = t2;
+ _.context = t3;
+ _.informationCollector = t4;
+ _.silent = t5;
+ },
+ TapGestureRecognizer$: function(debugOwner) {
+ var t1 = type$.int;
+ return new N.TapGestureRecognizer(C.Duration_100000, 18, C.GestureRecognizerState_0, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), debugOwner, null, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ TapDownDetails: function TapDownDetails(t0, t1) {
+ this.globalPosition = t0;
+ this.kind = t1;
+ },
+ TapUpDetails: function TapUpDetails(t0, t1) {
+ this.globalPosition = t0;
+ this.kind = t1;
+ },
+ BaseTapGestureRecognizer: function BaseTapGestureRecognizer() {
+ },
+ TapGestureRecognizer: function TapGestureRecognizer(t0, t1, t2, t3, t4, t5, t6, t7) {
+ var _ = this;
+ _.onTertiaryTapCancel = _.onTertiaryTapUp = _.onTertiaryTapDown = _.onSecondaryTapCancel = _.onSecondaryTapUp = _.onSecondaryTapDown = _.onSecondaryTap = _.onTapCancel = _.onTap = _.onTapUp = _.onTapDown = null;
+ _._wonArenaForPrimaryPointer = _._sentTapDown = false;
+ _._up = _._down = null;
+ _.deadline = t0;
+ _.postAcceptSlopTolerance = t1;
+ _.state = t2;
+ _.initialPosition = _.primaryPointer = null;
+ _._gestureAccepted = false;
+ _._recognizer$_timer = null;
+ _._recognizer$_entries = t3;
+ _._trackedPointers = t4;
+ _._team = null;
+ _.debugOwner = t5;
+ _._kindFilter = t6;
+ _._pointerToKind = t7;
+ },
+ TapGestureRecognizer_handleTapDown_closure: function TapGestureRecognizer_handleTapDown_closure(t0, t1) {
+ this.$this = t0;
+ this.details = t1;
+ },
+ TapGestureRecognizer_handleTapUp_closure: function TapGestureRecognizer_handleTapUp_closure(t0, t1) {
+ this.$this = t0;
+ this.details = t1;
+ },
+ FlatButton$: function(child, onPressed) {
+ var _null = null;
+ return new N.FlatButton(onPressed, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, child, _null, _null, _null, C.Clip_0, _null, false, _null, _null, _null, _null);
+ },
+ FlatButton: function FlatButton(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24) {
+ var _ = this;
+ _.onPressed = t0;
+ _.onLongPress = t1;
+ _.onHighlightChanged = t2;
+ _.mouseCursor = t3;
+ _.textTheme = t4;
+ _.textColor = t5;
+ _.disabledTextColor = t6;
+ _.color = t7;
+ _.disabledColor = t8;
+ _.splashColor = t9;
+ _.focusColor = t10;
+ _.hoverColor = t11;
+ _.highlightColor = t12;
+ _.colorBrightness = t13;
+ _.child = t14;
+ _.padding = t15;
+ _.visualDensity = t16;
+ _.shape = t17;
+ _.clipBehavior = t18;
+ _.focusNode = t19;
+ _.autofocus = t20;
+ _.materialTapTargetSize = t21;
+ _.minWidth = t22;
+ _.height = t23;
+ _.key = t24;
+ },
+ SnackBarClosedReason: function SnackBarClosedReason(t0) {
+ this._snack_bar$_name = t0;
+ },
+ PaintingBinding: function PaintingBinding() {
+ },
+ _SystemFontsNotifier: function _SystemFontsNotifier(t0) {
+ this._systemFontsCallbacks = t0;
+ },
+ Tolerance: function Tolerance(t0, t1) {
+ this.distance = t0;
+ this.velocity = t1;
+ },
+ debugDumpSemanticsTree: function(childOrder) {
+ var t1 = $.RendererBinding__instance;
+ if (t1 == null)
+ t1 = null;
+ else {
+ t1 = t1.get$_pipelineOwner()._rootNode.get$debugSemantics();
+ if (t1 == null)
+ t1 = null;
+ else {
+ A._SemanticsDiagnosticableNode$(childOrder, null, C.DiagnosticsTreeStyle_1, t1);
+ t1 = "";
+ }
+ }
+ D.print__debugPrintThrottled$closure().call$1(t1 == null ? "Semantics not collected." : t1);
+ },
+ RendererBinding: function RendererBinding() {
+ },
+ RendererBinding__scheduleMouseTrackerUpdate_closure: function RendererBinding__scheduleMouseTrackerUpdate_closure(t0) {
+ this.$this = t0;
+ },
+ flipScrollDirection: function(direction) {
+ switch (direction) {
+ case C.ScrollDirection_0:
+ return C.ScrollDirection_0;
+ case C.ScrollDirection_1:
+ return C.ScrollDirection_2;
+ case C.ScrollDirection_2:
+ return C.ScrollDirection_1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ ScrollDirection: function ScrollDirection(t0) {
+ this._viewport_offset$_name = t0;
+ },
+ ViewportOffset: function ViewportOffset() {
+ },
+ timeDilation: function(value) {
+ var t1;
+ if ($._timeDilation === value)
+ return;
+ t1 = $.SchedulerBinding__instance;
+ if (t1 != null)
+ t1.resetEpoch$0();
+ $._timeDilation = value;
+ },
+ SchedulerBinding__taskSorter: function(e1, e2) {
+ return -C.JSInt_methods.compareTo$1(e1.priority, e2.priority);
+ },
+ defaultSchedulingStrategy: function(priority, scheduler) {
+ var t1 = scheduler.SchedulerBinding__transientCallbacks;
+ if (t1.get$length(t1) > 0)
+ return priority >= 100000;
+ return true;
+ },
+ _TaskEntry: function _TaskEntry(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.task = t0;
+ _.priority = t1;
+ _.debugLabel = t2;
+ _.flow = t3;
+ _.___TaskEntry_debugStack = null;
+ _.___TaskEntry_debugStack_isSet = false;
+ _.completer = t4;
+ _.$ti = t5;
+ },
+ _TaskEntry_run_closure: function _TaskEntry_run_closure(t0) {
+ this.$this = t0;
+ },
+ _FrameCallbackEntry: function _FrameCallbackEntry(t0) {
+ this.callback = t0;
+ this.debugStack = null;
+ },
+ SchedulerPhase: function SchedulerPhase(t0, t1) {
+ this.index = t0;
+ this._name = t1;
+ },
+ SchedulerBinding: function SchedulerBinding() {
+ },
+ SchedulerBinding_endOfFrame_closure: function SchedulerBinding_endOfFrame_closure(t0) {
+ this.$this = t0;
+ },
+ SchedulerBinding_scheduleWarmUpFrame_closure: function SchedulerBinding_scheduleWarmUpFrame_closure(t0) {
+ this.$this = t0;
+ },
+ SchedulerBinding_scheduleWarmUpFrame_closure0: function SchedulerBinding_scheduleWarmUpFrame_closure0(t0, t1) {
+ this.$this = t0;
+ this.hadScheduledFrame = t1;
+ },
+ SchedulerBinding_scheduleWarmUpFrame_closure1: function SchedulerBinding_scheduleWarmUpFrame_closure1(t0) {
+ this.$this = t0;
+ },
+ SchedulerBinding_handleBeginFrame_closure: function SchedulerBinding_handleBeginFrame_closure(t0) {
+ this.$this = t0;
+ },
+ SemanticsBinding: function SemanticsBinding() {
+ },
+ ServicesBinding__parseLicenses: function(rawLicenses) {
+ var t1, _i, license, t2, split,
+ _licenseSeparator = "\n" + C.JSString_methods.$mul("-", 80) + "\n",
+ result = H.setRuntimeTypeInfo([], type$.JSArray_LicenseEntry),
+ licenses = rawLicenses.split(_licenseSeparator);
+ for (t1 = licenses.length, _i = 0; _i < t1; ++_i) {
+ license = licenses[_i];
+ t2 = J.getInterceptor$asx(license);
+ split = t2.indexOf$1(license, "\n\n");
+ if (split >= 0) {
+ t2.substring$2(license, 0, split).split("\n");
+ t2.substring$1(license, split + 2);
+ result.push(new F.LicenseEntryWithLineBreaks());
+ } else
+ result.push(new F.LicenseEntryWithLineBreaks());
+ }
+ return result;
+ },
+ ServicesBinding__parseAppLifecycleMessage: function(message) {
+ switch (message) {
+ case "AppLifecycleState.paused":
+ return C.AppLifecycleState_2;
+ case "AppLifecycleState.resumed":
+ return C.AppLifecycleState_0;
+ case "AppLifecycleState.inactive":
+ return C.AppLifecycleState_1;
+ case "AppLifecycleState.detached":
+ return C.AppLifecycleState_3;
+ }
+ return null;
+ },
+ ServicesBinding: function ServicesBinding() {
+ },
+ ServicesBinding__addLicenses_closure: function ServicesBinding__addLicenses_closure(t0) {
+ this.rawLicenses = t0;
+ },
+ ServicesBinding__addLicenses_closure0: function ServicesBinding__addLicenses_closure0(t0, t1) {
+ this.parsedLicenses = t0;
+ this.rawLicenses = t1;
+ },
+ _DefaultBinaryMessenger: function _DefaultBinaryMessenger() {
+ },
+ _DefaultBinaryMessenger__sendPlatformMessage_closure: function _DefaultBinaryMessenger__sendPlatformMessage_closure(t0) {
+ this.completer = t0;
+ },
+ _DefaultBinaryMessenger_setMessageHandler_closure: function _DefaultBinaryMessenger_setMessageHandler_closure(t0, t1) {
+ this.$this = t0;
+ this.channel = t1;
+ },
+ _toTextAffinity: function(affinity) {
+ switch (affinity) {
+ case "TextAffinity.downstream":
+ return C.TextAffinity_1;
+ case "TextAffinity.upstream":
+ return C.TextAffinity_0;
+ }
+ return null;
+ },
+ TextEditingValue_TextEditingValue$fromJSON: function(encoded) {
+ var t4, t5, t6,
+ t1 = J.getInterceptor$asx(encoded),
+ t2 = H._asStringS(t1.$index(encoded, "text")),
+ t3 = H._asIntQ(t1.$index(encoded, "selectionBase"));
+ if (t3 == null)
+ t3 = -1;
+ t4 = H._asIntQ(t1.$index(encoded, "selectionExtent"));
+ if (t4 == null)
+ t4 = -1;
+ t5 = N._toTextAffinity(H._asStringQ(t1.$index(encoded, "selectionAffinity")));
+ if (t5 == null)
+ t5 = C.TextAffinity_1;
+ t6 = H._asBoolQ(t1.$index(encoded, "selectionIsDirectional"));
+ t3 = X.TextSelection$(t5, t3, t4, t6 === true);
+ t4 = H._asIntQ(t1.$index(encoded, "composingBase"));
+ if (t4 == null)
+ t4 = -1;
+ t1 = H._asIntQ(t1.$index(encoded, "composingExtent"));
+ return new N.TextEditingValue(t2, t3, new P.TextRange(t4, t1 == null ? -1 : t1));
+ },
+ _toTextInputAction: function(action) {
+ switch (action) {
+ case "TextInputAction.none":
+ return C.TextInputAction_0;
+ case "TextInputAction.unspecified":
+ return C.TextInputAction_1;
+ case "TextInputAction.go":
+ return C.TextInputAction_3;
+ case "TextInputAction.search":
+ return C.TextInputAction_4;
+ case "TextInputAction.send":
+ return C.TextInputAction_5;
+ case "TextInputAction.next":
+ return C.TextInputAction_6;
+ case "TextInputAction.previous":
+ return C.TextInputAction_7;
+ case "TextInputAction.continue_action":
+ return C.TextInputAction_8;
+ case "TextInputAction.join":
+ return C.TextInputAction_9;
+ case "TextInputAction.route":
+ return C.TextInputAction_10;
+ case "TextInputAction.emergencyCall":
+ return C.TextInputAction_11;
+ case "TextInputAction.done":
+ return C.TextInputAction_2;
+ case "TextInputAction.newline":
+ return C.TextInputAction_12;
+ }
+ throw H.wrapException(U.FlutterError$fromParts(H.setRuntimeTypeInfo([U.ErrorSummary$("Unknown text input action: " + H.S(action))], type$.JSArray_DiagnosticsNode)));
+ },
+ _toTextCursorAction: function(state) {
+ switch (state) {
+ case "FloatingCursorDragState.start":
+ return C.FloatingCursorDragState_0;
+ case "FloatingCursorDragState.update":
+ return C.FloatingCursorDragState_1;
+ case "FloatingCursorDragState.end":
+ return C.FloatingCursorDragState_2;
+ }
+ throw H.wrapException(U.FlutterError$fromParts(H.setRuntimeTypeInfo([U.ErrorSummary$("Unknown text cursor action: " + H.S(state))], type$.JSArray_DiagnosticsNode)));
+ },
+ SmartDashesType: function SmartDashesType(t0, t1) {
+ this.index = t0;
+ this._text_input$_name = t1;
+ },
+ SmartQuotesType: function SmartQuotesType(t0, t1) {
+ this.index = t0;
+ this._text_input$_name = t1;
+ },
+ TextInputType: function TextInputType(t0, t1, t2) {
+ this.index = t0;
+ this.signed = t1;
+ this.decimal = t2;
+ },
+ TextInputAction: function TextInputAction(t0) {
+ this._text_input$_name = t0;
+ },
+ TextCapitalization0: function TextCapitalization0() {
+ },
+ TextInputConfiguration: function TextInputConfiguration(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) {
+ var _ = this;
+ _.inputType = t0;
+ _.readOnly = t1;
+ _.obscureText = t2;
+ _.autocorrect = t3;
+ _.autofillConfiguration = t4;
+ _.smartDashesType = t5;
+ _.smartQuotesType = t6;
+ _.enableSuggestions = t7;
+ _.inputAction = t8;
+ _.textCapitalization = t9;
+ _.keyboardAppearance = t10;
+ },
+ FloatingCursorDragState: function FloatingCursorDragState(t0) {
+ this._text_input$_name = t0;
+ },
+ TextEditingValue: function TextEditingValue(t0, t1, t2) {
+ this.text = t0;
+ this.selection = t1;
+ this.composing = t2;
+ },
+ TextInputConnection: function TextInputConnection(t0, t1) {
+ var _ = this;
+ _._cachedRect = _._cachedTransform = _._cachedSize = null;
+ _._id = t0;
+ _._client = t1;
+ },
+ TextInput: function TextInput() {
+ var _ = this;
+ _.__TextInput__channel = null;
+ _.__TextInput__channel_isSet = false;
+ _.__TextInput__currentConfiguration = _._currentConnection = null;
+ _._hidePending = _.__TextInput__currentConfiguration_isSet = false;
+ },
+ TextInput__scheduleHide_closure: function TextInput__scheduleHide_closure(t0) {
+ this.$this = t0;
+ },
+ RenderObjectToWidgetElement$: function(widget, $T) {
+ var t1 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t1;
+ return new N.RenderObjectToWidgetElement(t1, widget, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2), $T._eval$1("RenderObjectToWidgetElement<0>"));
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure0: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure0() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure1: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure1() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_dispatchEvent_closure: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_dispatchEvent_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.hitTestResult = t1;
+ this.event = t2;
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initInstances_closure: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initInstances_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure0: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure0() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_initInstances_closure: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_initInstances_closure(t0) {
+ this.$this = t0;
+ },
+ WidgetsBindingObserver: function WidgetsBindingObserver() {
+ },
+ WidgetsBinding: function WidgetsBinding() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure0: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure0(t0) {
+ this.$this = t0;
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure1: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure1(t0) {
+ this.$this = t0;
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure2: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure2(t0) {
+ this.$this = t0;
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure_markElementsDirty: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure_markElementsDirty(t0) {
+ this.className = t0;
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure3: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure3() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure4: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure4() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_drawFrame_closure: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_drawFrame_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ WidgetsBinding_scheduleAttachRootWidget_closure: function WidgetsBinding_scheduleAttachRootWidget_closure(t0, t1) {
+ this.$this = t0;
+ this.rootWidget = t1;
+ },
+ RenderObjectToWidgetAdapter: function RenderObjectToWidgetAdapter(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.child = t0;
+ _.container = t1;
+ _.debugShortDescription = t2;
+ _.key = t3;
+ _.$ti = t4;
+ },
+ RenderObjectToWidgetAdapter_attachToRenderTree_closure: function RenderObjectToWidgetAdapter_attachToRenderTree_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.$this = t1;
+ this.owner = t2;
+ },
+ RenderObjectToWidgetAdapter_attachToRenderTree_closure0: function RenderObjectToWidgetAdapter_attachToRenderTree_closure0(t0) {
+ this._box_0 = t0;
+ },
+ RenderObjectToWidgetElement: function RenderObjectToWidgetElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.__RenderObjectElement__renderObject = _._newWidget = _._child = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t0;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t1;
+ _._owner = null;
+ _._lifecycleState = t2;
+ _._debugForgottenChildrenWithGlobalKey = t3;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ _.$ti = t4;
+ },
+ WidgetsFlutterBinding: function WidgetsFlutterBinding(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53) {
+ var _ = this;
+ _.WidgetsBinding__buildOwner = t0;
+ _.WidgetsBinding__observers = t1;
+ _.WidgetsBinding__needToReportFirstFrame = t2;
+ _.WidgetsBinding__firstFrameCompleter = t3;
+ _.WidgetsBinding_debugBuildingDirtyElements = t4;
+ _.WidgetsBinding__renderViewElement = t5;
+ _.WidgetsBinding__readyToProduceFrames = t6;
+ _.RendererBinding__debugIsRenderViewInitialized = t7;
+ _.RendererBinding__mouseTracker = t8;
+ _.RendererBinding___RendererBinding__pipelineOwner = t9;
+ _.RendererBinding___RendererBinding__pipelineOwner_isSet = t10;
+ _.RendererBinding__semanticsHandle = t11;
+ _.RendererBinding__debugMouseTrackerUpdateScheduled = t12;
+ _.RendererBinding__firstFrameDeferredCount = t13;
+ _.RendererBinding__firstFrameSent = t14;
+ _.SemanticsBinding___SemanticsBinding__accessibilityFeatures = t15;
+ _.SemanticsBinding___SemanticsBinding__accessibilityFeatures_isSet = t16;
+ _.PaintingBinding__imageCache = t17;
+ _.PaintingBinding__systemFonts = t18;
+ _.ServicesBinding___ServicesBinding__defaultBinaryMessenger = t19;
+ _.ServicesBinding___ServicesBinding__defaultBinaryMessenger_isSet = t20;
+ _.ServicesBinding___ServicesBinding__restorationManager = t21;
+ _.ServicesBinding___ServicesBinding__restorationManager_isSet = t22;
+ _.SchedulerBinding__timingsCallbacks = t23;
+ _.SchedulerBinding__lifecycleState = t24;
+ _.SchedulerBinding_schedulingStrategy = t25;
+ _.SchedulerBinding__taskQueue = t26;
+ _.SchedulerBinding__hasRequestedAnEventLoopCallback = t27;
+ _.SchedulerBinding__nextFrameCallbackId = t28;
+ _.SchedulerBinding__transientCallbacks = t29;
+ _.SchedulerBinding__removedIds = t30;
+ _.SchedulerBinding__persistentCallbacks = t31;
+ _.SchedulerBinding__postFrameCallbacks = t32;
+ _.SchedulerBinding__nextFrameCompleter = t33;
+ _.SchedulerBinding__hasScheduledFrame = t34;
+ _.SchedulerBinding__schedulerPhase = t35;
+ _.SchedulerBinding__framesEnabled = t36;
+ _.SchedulerBinding__warmUpFrame = t37;
+ _.SchedulerBinding__firstRawTimeStampInEpoch = t38;
+ _.SchedulerBinding__epochStart = t39;
+ _.SchedulerBinding__lastRawTimeStamp = t40;
+ _.SchedulerBinding__currentFrameTimeStamp = t41;
+ _.SchedulerBinding__debugFrameNumber = t42;
+ _.SchedulerBinding__debugBanner = t43;
+ _.SchedulerBinding__ignoreNextEngineDrawFrame = t44;
+ _.GestureBinding__pendingPointerEvents = t45;
+ _.GestureBinding_pointerRouter = t46;
+ _.GestureBinding_gestureArena = t47;
+ _.GestureBinding_pointerSignalResolver = t48;
+ _.GestureBinding__hitTests = t49;
+ _.GestureBinding___GestureBinding__resampler = t50;
+ _.GestureBinding___GestureBinding__resampler_isSet = t51;
+ _.GestureBinding_resamplingEnabled = t52;
+ _.GestureBinding_samplingOffset = t53;
+ _._lockCount = 0;
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding: function _WidgetsFlutterBinding_BindingBase_GestureBinding() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding() {
+ },
+ _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding: function _WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding() {
+ },
+ Widget_canUpdate: function(oldWidget, newWidget) {
+ return J.get$runtimeType$(oldWidget) === J.get$runtimeType$(newWidget) && J.$eq$(oldWidget.key, newWidget.key);
+ },
+ _InactiveElements__deactivateRecursively: function(element) {
+ element.deactivate$0();
+ element.visitChildren$1(N.framework__InactiveElements__deactivateRecursively$closure());
+ },
+ Element__sort: function(a, b) {
+ var t1;
+ if (a.get$_depth() < b.get$_depth())
+ return -1;
+ if (b.get$_depth() < a.get$_depth())
+ return 1;
+ t1 = b._dirty;
+ if (t1 && !a._dirty)
+ return -1;
+ if (a._dirty && !t1)
+ return 1;
+ return 0;
+ },
+ Element__activateRecursively: function(element) {
+ element.activate$0();
+ element.visitChildren$1(N.framework_Element__activateRecursively$closure());
+ },
+ _ElementDiagnosticableTreeNode$: function($name, stateful, style, value) {
+ return new N._ElementDiagnosticableTreeNode(stateful, value, $name, true, true, null, style);
+ },
+ ErrorWidget__defaultErrorWidgetBuilder: function(details) {
+ var exception = details.exception,
+ t1 = exception instanceof U.FlutterError ? exception : null;
+ return new N.ErrorWidget("", t1, new N.UniqueKey());
+ },
+ StatefulElement$: function(widget) {
+ var t1 = widget.createState$0(),
+ t2 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t2;
+ t2 = new N.StatefulElement(t1, t2, widget, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2));
+ t1._framework$_element = t2;
+ t1._widget = widget;
+ return t2;
+ },
+ InheritedElement$: function(widget) {
+ var t1 = type$.Element_2,
+ t2 = P.HashMap_HashMap(t1, type$.nullable_Object),
+ t3 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t3;
+ return new N.InheritedElement(t2, t3, widget, C._ElementLifecycle_0, P.HashSet_HashSet(t1));
+ },
+ SingleChildRenderObjectElement$: function(widget) {
+ var t1 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t1;
+ return new N.SingleChildRenderObjectElement(t1, widget, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2));
+ },
+ MultiChildRenderObjectElement$: function(widget) {
+ var t1 = type$.Element_2,
+ t2 = P.HashSet_HashSet(t1),
+ t3 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t3;
+ return new N.MultiChildRenderObjectElement(t2, t3, widget, C._ElementLifecycle_0, P.HashSet_HashSet(t1));
+ },
+ _debugReportException: function(context, exception, stack, informationCollector) {
+ var details = new U.FlutterErrorDetails(exception, stack, "widgets library", context, informationCollector, false),
+ t1 = $.$get$FlutterError_onError();
+ if (t1 != null)
+ t1.call$1(details);
+ return details;
+ },
+ UniqueKey: function UniqueKey() {
+ },
+ GlobalKey: function GlobalKey() {
+ },
+ LabeledGlobalKey: function LabeledGlobalKey(t0, t1) {
+ this._debugLabel = t0;
+ this.$ti = t1;
+ },
+ GlobalObjectKey: function GlobalObjectKey(t0, t1) {
+ this.value = t0;
+ this.$ti = t1;
+ },
+ Widget: function Widget() {
+ },
+ StatelessWidget: function StatelessWidget() {
+ },
+ StatefulWidget: function StatefulWidget() {
+ },
+ _StateLifecycle: function _StateLifecycle(t0) {
+ this._framework$_name = t0;
+ },
+ State: function State() {
+ },
+ ProxyWidget: function ProxyWidget() {
+ },
+ ParentDataWidget: function ParentDataWidget() {
+ },
+ InheritedWidget: function InheritedWidget() {
+ },
+ RenderObjectWidget: function RenderObjectWidget() {
+ },
+ LeafRenderObjectWidget: function LeafRenderObjectWidget() {
+ },
+ SingleChildRenderObjectWidget: function SingleChildRenderObjectWidget() {
+ },
+ MultiChildRenderObjectWidget: function MultiChildRenderObjectWidget() {
+ },
+ _ElementLifecycle: function _ElementLifecycle(t0) {
+ this._framework$_name = t0;
+ },
+ _InactiveElements: function _InactiveElements(t0) {
+ this._locked = false;
+ this._framework$_elements = t0;
+ },
+ _InactiveElements__unmount_closure: function _InactiveElements__unmount_closure(t0, t1) {
+ this.$this = t0;
+ this.element = t1;
+ },
+ BuildOwner: function BuildOwner(t0, t1, t2) {
+ var _ = this;
+ _.onBuildScheduled = null;
+ _._inactiveElements = t0;
+ _._dirtyElements = t1;
+ _._scheduledFlushDirtyElements = false;
+ _._dirtyElementsNeedsResorting = null;
+ _.focusManager = t2;
+ _._debugStateLockLevel = 0;
+ _._debugBuilding = false;
+ _._debugElementsThatWillNeedToBeRebuiltDueToGlobalKeyShenanigans = _._debugCurrentBuildTarget = null;
+ },
+ BuildOwner_buildScope_closure: function BuildOwner_buildScope_closure(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ BuildOwner_finalizeTree_closure: function BuildOwner_finalizeTree_closure(t0) {
+ this.$this = t0;
+ },
+ Element: function Element() {
+ },
+ Element_renderObject_visit: function Element_renderObject_visit(t0) {
+ this._box_0 = t0;
+ },
+ Element_updateSlotForChild_visit: function Element_updateSlotForChild_visit(t0) {
+ this.newSlot = t0;
+ },
+ Element__updateDepth_closure: function Element__updateDepth_closure(t0) {
+ this.expectedDepth = t0;
+ },
+ Element_detachRenderObject_closure: function Element_detachRenderObject_closure() {
+ },
+ Element_attachRenderObject_closure: function Element_attachRenderObject_closure(t0) {
+ this.newSlot = t0;
+ },
+ Element_debugDescribeChildren_closure: function Element_debugDescribeChildren_closure(t0) {
+ this.children = t0;
+ },
+ _ElementDiagnosticableTreeNode: function _ElementDiagnosticableTreeNode(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.stateful = t0;
+ _.value = t1;
+ _._cachedBuilder = null;
+ _.name = t2;
+ _.showSeparator = t3;
+ _.showName = t4;
+ _.linePrefix = t5;
+ _.style = t6;
+ },
+ ErrorWidget: function ErrorWidget(t0, t1, t2) {
+ this.message = t0;
+ this._flutterError = t1;
+ this.key = t2;
+ },
+ ComponentElement: function ComponentElement() {
+ },
+ ComponentElement_performRebuild_closure: function ComponentElement_performRebuild_closure(t0) {
+ this.$this = t0;
+ },
+ ComponentElement_performRebuild_closure0: function ComponentElement_performRebuild_closure0(t0) {
+ this.$this = t0;
+ },
+ StatelessElement: function StatelessElement(t0, t1, t2, t3) {
+ var _ = this;
+ _._framework$_parent = _._framework$_child = null;
+ _._cachedHash = t0;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t1;
+ _._owner = null;
+ _._lifecycleState = t2;
+ _._debugForgottenChildrenWithGlobalKey = t3;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ StatefulElement: function StatefulElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.state = t0;
+ _._didChangeDependencies = false;
+ _._framework$_parent = _._framework$_child = null;
+ _._cachedHash = t1;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t2;
+ _._owner = null;
+ _._lifecycleState = t3;
+ _._debugForgottenChildrenWithGlobalKey = t4;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ ProxyElement: function ProxyElement() {
+ },
+ ParentDataElement: function ParentDataElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._framework$_parent = _._framework$_child = null;
+ _._cachedHash = t0;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t1;
+ _._owner = null;
+ _._lifecycleState = t2;
+ _._debugForgottenChildrenWithGlobalKey = t3;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ _.$ti = t4;
+ },
+ ParentDataElement__applyParentData_applyParentDataToChild: function ParentDataElement__applyParentData_applyParentDataToChild(t0) {
+ this.widget = t0;
+ },
+ InheritedElement: function InheritedElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._dependents = t0;
+ _._framework$_parent = _._framework$_child = null;
+ _._cachedHash = t1;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t2;
+ _._owner = null;
+ _._lifecycleState = t3;
+ _._debugForgottenChildrenWithGlobalKey = t4;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ RenderObjectElement: function RenderObjectElement() {
+ },
+ RenderObjectElement_updateChildren_replaceWithNullIfForgotten: function RenderObjectElement_updateChildren_replaceWithNullIfForgotten(t0) {
+ this.forgottenChildren = t0;
+ },
+ RootRenderObjectElement: function RootRenderObjectElement() {
+ },
+ LeafRenderObjectElement: function LeafRenderObjectElement(t0, t1, t2, t3) {
+ var _ = this;
+ _.__RenderObjectElement__renderObject = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t0;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t1;
+ _._owner = null;
+ _._lifecycleState = t2;
+ _._debugForgottenChildrenWithGlobalKey = t3;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ SingleChildRenderObjectElement: function SingleChildRenderObjectElement(t0, t1, t2, t3) {
+ var _ = this;
+ _.__RenderObjectElement__renderObject = _._framework$_child = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t0;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t1;
+ _._owner = null;
+ _._lifecycleState = t2;
+ _._debugForgottenChildrenWithGlobalKey = t3;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ MultiChildRenderObjectElement: function MultiChildRenderObjectElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.__MultiChildRenderObjectElement__children = null;
+ _.__MultiChildRenderObjectElement__children_isSet = false;
+ _._forgottenChildren = t0;
+ _.__RenderObjectElement__renderObject = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t1;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t2;
+ _._owner = null;
+ _._lifecycleState = t3;
+ _._debugForgottenChildrenWithGlobalKey = t4;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ DebugCreator: function DebugCreator(t0) {
+ this.element = t0;
+ },
+ IndexedSlot: function IndexedSlot(t0, t1, t2) {
+ this.value = t0;
+ this.index = t1;
+ this.$ti = t2;
+ },
+ _NullElement: function _NullElement(t0, t1, t2, t3) {
+ var _ = this;
+ _._framework$_parent = null;
+ _._cachedHash = t0;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t1;
+ _._owner = null;
+ _._lifecycleState = t2;
+ _._debugForgottenChildrenWithGlobalKey = t3;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ _NullWidget: function _NullWidget(t0) {
+ this.key = t0;
+ },
+ _State_Object_Diagnosticable: function _State_Object_Diagnosticable() {
+ },
+ _ElementLocationStatsTracker$: function() {
+ var t1 = type$.JSArray__LocationCount;
+ return new N._ElementLocationStatsTracker(H.setRuntimeTypeInfo([], type$.JSArray_nullable__LocationCount), H.setRuntimeTypeInfo([], t1), H.setRuntimeTypeInfo([], t1));
+ },
+ transformDebugCreator: function(properties) {
+ return N.transformDebugCreator$body(properties);
+ },
+ transformDebugCreator$body: function($async$properties) {
+ return P._makeSyncStarIterable(function() {
+ var properties = $async$properties;
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1, foundStackTrace, t2, pending;
+ return function $async$transformDebugCreator($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ pending = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode);
+ t1 = J.get$iterator$ax(properties), foundStackTrace = false;
+ case 2:
+ // for condition
+ if (!t1.moveNext$0()) {
+ // goto after for
+ $async$goto = 3;
+ break;
+ }
+ t2 = t1.get$current(t1);
+ if (!foundStackTrace && t2 instanceof U.DiagnosticsStackTrace)
+ foundStackTrace = true;
+ $async$goto = t2 instanceof K.DiagnosticsDebugCreator ? 4 : 6;
+ break;
+ case 4:
+ // then
+ t2 = N._parseDiagnosticsNode(t2);
+ t2.toString;
+ $async$goto = 7;
+ return P._IterationMarker_yieldStar(t2);
+ case 7:
+ // after yield
+ // goto join
+ $async$goto = 5;
+ break;
+ case 6:
+ // else
+ $async$goto = foundStackTrace ? 8 : 10;
+ break;
+ case 8:
+ // then
+ pending.push(t2);
+ // goto join
+ $async$goto = 9;
+ break;
+ case 10:
+ // else
+ $async$goto = 11;
+ return t2;
+ case 11:
+ // after yield
+ case 9:
+ // join
+ case 5:
+ // join
+ // goto for condition
+ $async$goto = 2;
+ break;
+ case 3:
+ // after for
+ $async$goto = 12;
+ return P._IterationMarker_yieldStar(pending);
+ case 12:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ _parseDiagnosticsNode: function(node) {
+ var t1;
+ if (!(node instanceof K.DiagnosticsDebugCreator))
+ return null;
+ t1 = node.get$value(node);
+ t1.toString;
+ return N._describeRelevantUserCode(type$.DebugCreator._as(t1).element);
+ },
+ _describeRelevantUserCode: function(element) {
+ var nodes, t1;
+ if (!$.$get$WidgetInspectorService__instance().isWidgetCreationTracked$0())
+ return H.setRuntimeTypeInfo([U.ErrorDescription$("Widget creation tracking is currently disabled. Enabling it enables improved error messages. It can be enabled by passing `--track-widget-creation` to `flutter run` or `flutter test`."), U.ErrorSpacer$()], type$.JSArray_DiagnosticsNode);
+ nodes = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode);
+ t1 = new N._describeRelevantUserCode_processElement(nodes);
+ if (t1.call$1(element))
+ element.visitAncestorElements$1(t1);
+ return nodes;
+ },
+ _WidgetInspectorService: function _WidgetInspectorService(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19) {
+ var _ = this;
+ _.WidgetInspectorService__serializeRing = t0;
+ _.WidgetInspectorService__serializeRingIndex = t1;
+ _.WidgetInspectorService_selection = t2;
+ _.WidgetInspectorService_selectionChangedCallback = t3;
+ _.WidgetInspectorService__groups = t4;
+ _.WidgetInspectorService__idToReferenceData = t5;
+ _.WidgetInspectorService__objectToId = t6;
+ _.WidgetInspectorService__nextId = t7;
+ _.WidgetInspectorService__pubRootDirectories = t8;
+ _.WidgetInspectorService__trackRebuildDirtyWidgets = t9;
+ _.WidgetInspectorService__trackRepaintWidgets = t10;
+ _.WidgetInspectorService__structuredExceptionHandler = t11;
+ _.WidgetInspectorService___WidgetInspectorService__registerServiceExtensionCallback = t12;
+ _.WidgetInspectorService___WidgetInspectorService__registerServiceExtensionCallback_isSet = t13;
+ _.WidgetInspectorService__errorsSinceReload = t14;
+ _.WidgetInspectorService__widgetCreationTracked = t15;
+ _.WidgetInspectorService___WidgetInspectorService__frameStart = t16;
+ _.WidgetInspectorService___WidgetInspectorService__frameStart_isSet = t17;
+ _.WidgetInspectorService__rebuildStats = t18;
+ _.WidgetInspectorService__repaintStats = t19;
+ },
+ WidgetInspectorService: function WidgetInspectorService() {
+ },
+ _ElementLocationStatsTracker: function _ElementLocationStatsTracker(t0, t1, t2) {
+ this._stats = t0;
+ this.active = t1;
+ this.newLocations = t2;
+ },
+ InspectorSelection: function InspectorSelection(t0) {
+ var _ = this;
+ _._candidates = t0;
+ _._widget_inspector$_index = 0;
+ _._widget_inspector$_currentElement = _._widget_inspector$_current = null;
+ },
+ _describeRelevantUserCode_processElement: function _describeRelevantUserCode_processElement(t0) {
+ this.nodes = t0;
+ },
+ iceConnectionStateForString: function(state) {
+ switch (state) {
+ case "new":
+ return C.RTCIceConnectionState_0;
+ case "checking":
+ return C.RTCIceConnectionState_1;
+ case "connected":
+ return C.RTCIceConnectionState_3;
+ case "completed":
+ return C.RTCIceConnectionState_2;
+ case "failed":
+ return C.RTCIceConnectionState_5;
+ case "disconnected":
+ return C.RTCIceConnectionState_6;
+ case "closed":
+ return C.RTCIceConnectionState_7;
+ case "count":
+ return C.RTCIceConnectionState_4;
+ }
+ return C.RTCIceConnectionState_7;
+ },
+ iceGatheringStateforString: function(state) {
+ switch (state) {
+ case "new":
+ return C.RTCIceGatheringState_0;
+ case "gathering":
+ return C.RTCIceGatheringState_1;
+ case "complete":
+ return C.RTCIceGatheringState_2;
+ }
+ return C.RTCIceGatheringState_0;
+ },
+ signalingStateForString: function(state) {
+ switch (state) {
+ case "stable":
+ return C.RTCSignalingState_0;
+ case "have-local-offer":
+ return C.RTCSignalingState_1;
+ case "have-local-pranswer":
+ return C.RTCSignalingState_3;
+ case "have-remote-offer":
+ return C.RTCSignalingState_2;
+ case "have-remote-pranswer":
+ return C.RTCSignalingState_4;
+ case "closed":
+ return C.RTCSignalingState_5;
+ }
+ return C.RTCSignalingState_5;
+ },
+ peerConnectionStateForString: function(state) {
+ switch (state) {
+ case "new":
+ return C.RTCPeerConnectionState_3;
+ case "connecting":
+ return C.RTCPeerConnectionState_4;
+ case "connected":
+ return C.RTCPeerConnectionState_5;
+ case "closed":
+ return C.RTCPeerConnectionState_0;
+ case "disconnected":
+ return C.RTCPeerConnectionState_2;
+ case "failed":
+ return C.RTCPeerConnectionState_1;
+ }
+ return C.RTCPeerConnectionState_0;
+ },
+ RTCDataChannelState: function RTCDataChannelState(t0) {
+ this._enums$_name = t0;
+ },
+ RTCSignalingState: function RTCSignalingState(t0) {
+ this._enums$_name = t0;
+ },
+ RTCIceGatheringState: function RTCIceGatheringState(t0) {
+ this._enums$_name = t0;
+ },
+ RTCPeerConnectionState: function RTCPeerConnectionState(t0) {
+ this._enums$_name = t0;
+ },
+ RTCIceConnectionState: function RTCIceConnectionState(t0) {
+ this._enums$_name = t0;
+ },
+ RTCVideoViewObjectFit: function RTCVideoViewObjectFit() {
+ },
+ RTCSessionDescription: function RTCSessionDescription(t0, t1) {
+ this.sdp = t0;
+ this.type = t1;
+ },
+ expectQuotedString: function(scanner) {
+ var string;
+ scanner.expect$2$name($.$get$_quotedString(), "quoted string");
+ string = scanner.get$lastMatch().$index(0, 0);
+ return H.stringReplaceAllFuncUnchecked(J.substring$2$s(string, 1, string.length - 1), $.$get$_quotedPair(), new N.expectQuotedString_closure(), null);
+ },
+ expectQuotedString_closure: function expectQuotedString_closure() {
+ },
+ positionDependentBox: function(childSize, preferBelow, size, target, verticalOffset) {
+ var fitsAbove, tooltipBelow, y, x, normalizedTargetX, edge,
+ t1 = target._dy,
+ t2 = t1 + verticalOffset,
+ t3 = childSize._dy,
+ t4 = size._dy - 10,
+ fitsBelow = t2 + t3 <= t4;
+ t3 = t1 - verticalOffset - t3;
+ fitsAbove = t3 >= 10;
+ if (preferBelow)
+ tooltipBelow = fitsBelow || !fitsAbove;
+ else
+ tooltipBelow = !(fitsAbove || !fitsBelow);
+ y = tooltipBelow ? Math.min(t2, t4) : Math.max(t3, 10);
+ t1 = size._dx;
+ t2 = childSize._dx;
+ if (t1 - 20 < t2)
+ x = (t1 - t2) / 2;
+ else {
+ t3 = t1 - 10;
+ normalizedTargetX = J.clamp$2$n(target._dx, 10, t3);
+ t4 = t2 / 2;
+ edge = 10 + t4;
+ if (normalizedTargetX < edge)
+ x = 10;
+ else
+ x = normalizedTargetX > t1 - edge ? t3 - t2 : normalizedTargetX - t4;
+ }
+ return new P.Offset(x, y);
+ }
+ },
+ B = {
+ ValueNotifier$: function(_value) {
+ return new B.ValueNotifier(_value, new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ Listenable: function Listenable() {
+ },
+ _ListenerEntry: function _ListenerEntry(t0) {
+ var _ = this;
+ _.listener = t0;
+ _._collection$_previous = _._collection$_next = _._list = null;
+ },
+ ChangeNotifier: function ChangeNotifier() {
+ },
+ ChangeNotifier_notifyListeners_closure: function ChangeNotifier_notifyListeners_closure(t0) {
+ this.$this = t0;
+ },
+ _MergingListenable: function _MergingListenable(t0) {
+ this._change_notifier$_children = t0;
+ },
+ ValueNotifier: function ValueNotifier(t0, t1) {
+ this._change_notifier$_value = t0;
+ this.ChangeNotifier__listeners = t1;
+ },
+ AbstractNode: function AbstractNode() {
+ },
+ _Vector: function _Vector(t0, t1, t2) {
+ this._lsq_solver$_offset = t0;
+ this._lsq_solver$_length = t1;
+ this._lsq_solver$_elements = t2;
+ },
+ _Matrix: function _Matrix(t0, t1) {
+ this._columns = t0;
+ this._lsq_solver$_elements = t1;
+ },
+ PolynomialFit: function PolynomialFit(t0) {
+ this.coefficients = t0;
+ this.__PolynomialFit_confidence = null;
+ this.__PolynomialFit_confidence_isSet = false;
+ },
+ LeastSquaresSolver: function LeastSquaresSolver(t0, t1, t2) {
+ this.x = t0;
+ this.y = t1;
+ this.w = t2;
+ },
+ IconButton$: function(color, icon, onPressed, tooltip) {
+ return new B.IconButton(icon, color, onPressed, tooltip, null);
+ },
+ IconButton: function IconButton(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.icon = t0;
+ _.color = t1;
+ _.onPressed = t2;
+ _.tooltip = t3;
+ _.key = t4;
+ },
+ MaterialButton: function MaterialButton() {
+ },
+ MultiChildLayoutParentData: function MultiChildLayoutParentData(t0, t1, t2) {
+ var _ = this;
+ _.id = null;
+ _.ContainerParentDataMixin_previousSibling = t0;
+ _.ContainerParentDataMixin_nextSibling = t1;
+ _.offset = t2;
+ },
+ MultiChildLayoutDelegate: function MultiChildLayoutDelegate() {
+ },
+ RenderCustomMultiChildLayoutBox: function RenderCustomMultiChildLayoutBox(t0, t1, t2, t3) {
+ var _ = this;
+ _._custom_layout$_delegate = t0;
+ _.ContainerRenderObjectMixin__childCount = t1;
+ _.ContainerRenderObjectMixin__firstChild = t2;
+ _.ContainerRenderObjectMixin__lastChild = t3;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin: function _RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin() {
+ },
+ _RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin: function _RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin() {
+ },
+ RawKeyEvent_RawKeyEvent$fromMessage: function(message) {
+ var t2, t3, t4, t5, t6, t7, t8, data, codePoint, unicodeScalarValues, characterCodePoint, type,
+ _s9_ = "codePoint",
+ _s7_ = "keyCode",
+ _s8_ = "scanCode",
+ _s9_0 = "metaState",
+ _s9_1 = "character",
+ _s9_2 = "modifiers",
+ _s10_ = "characters",
+ _s27_ = "charactersIgnoringModifiers",
+ t1 = J.getInterceptor$asx(message),
+ keymap = H._asStringS(t1.$index(message, "keymap"));
+ switch (keymap) {
+ case "android":
+ t2 = H._asIntQ(t1.$index(message, "flags"));
+ if (t2 == null)
+ t2 = 0;
+ t3 = H._asIntQ(t1.$index(message, _s9_));
+ if (t3 == null)
+ t3 = 0;
+ t4 = H._asIntQ(t1.$index(message, _s7_));
+ if (t4 == null)
+ t4 = 0;
+ t5 = H._asIntQ(t1.$index(message, "plainCodePoint"));
+ if (t5 == null)
+ t5 = 0;
+ t6 = H._asIntQ(t1.$index(message, _s8_));
+ if (t6 == null)
+ t6 = 0;
+ t7 = H._asIntQ(t1.$index(message, _s9_0));
+ if (t7 == null)
+ t7 = 0;
+ t8 = H._asIntQ(t1.$index(message, "source"));
+ if (t8 == null)
+ t8 = 0;
+ H._asIntQ(t1.$index(message, "vendorId"));
+ H._asIntQ(t1.$index(message, "productId"));
+ H._asIntQ(t1.$index(message, "deviceId"));
+ H._asIntQ(t1.$index(message, "repeatCount"));
+ data = new Q.RawKeyEventDataAndroid(t2, t3, t5, t4, t6, t7, t8);
+ if (t1.containsKey$1(message, _s9_1))
+ H._asStringQ(t1.$index(message, _s9_1));
+ break;
+ case "fuchsia":
+ codePoint = H._asIntQ(t1.$index(message, _s9_));
+ if (codePoint == null)
+ codePoint = 0;
+ t2 = H._asIntQ(t1.$index(message, "hidUsage"));
+ if (t2 == null)
+ t2 = 0;
+ t3 = H._asIntQ(t1.$index(message, _s9_2));
+ data = new Q.RawKeyEventDataFuchsia(t2, codePoint, t3 == null ? 0 : t3);
+ if (codePoint !== 0)
+ H.Primitives_stringFromCharCode(codePoint);
+ break;
+ case "macos":
+ t2 = H._asStringQ(t1.$index(message, _s10_));
+ if (t2 == null)
+ t2 = "";
+ t3 = H._asStringQ(t1.$index(message, _s27_));
+ if (t3 == null)
+ t3 = "";
+ t4 = H._asIntQ(t1.$index(message, _s7_));
+ if (t4 == null)
+ t4 = 0;
+ t5 = H._asIntQ(t1.$index(message, _s9_2));
+ data = new B.RawKeyEventDataMacOs(t2, t3, t4, t5 == null ? 0 : t5);
+ H._asStringQ(t1.$index(message, _s10_));
+ break;
+ case "ios":
+ t2 = H._asStringQ(t1.$index(message, _s10_));
+ if (t2 == null)
+ t2 = "";
+ t3 = H._asStringQ(t1.$index(message, _s27_));
+ if (t3 == null)
+ t3 = "";
+ t4 = H._asIntQ(t1.$index(message, _s7_));
+ if (t4 == null)
+ t4 = 0;
+ t5 = H._asIntQ(t1.$index(message, _s9_2));
+ data = new R.RawKeyEventDataIos(t2, t3, t4, t5 == null ? 0 : t5);
+ break;
+ case "linux":
+ unicodeScalarValues = H._asIntQ(t1.$index(message, "unicodeScalarValues"));
+ if (unicodeScalarValues == null)
+ unicodeScalarValues = 0;
+ t2 = H._asStringQ(t1.$index(message, "toolkit"));
+ t2 = O.KeyHelper_KeyHelper(t2 == null ? "" : t2);
+ t3 = H._asIntQ(t1.$index(message, _s7_));
+ if (t3 == null)
+ t3 = 0;
+ t4 = H._asIntQ(t1.$index(message, _s8_));
+ if (t4 == null)
+ t4 = 0;
+ t5 = H._asIntQ(t1.$index(message, _s9_2));
+ if (t5 == null)
+ t5 = 0;
+ data = new O.RawKeyEventDataLinux(t2, unicodeScalarValues, t4, t3, t5, J.$eq$(t1.$index(message, "type"), "keydown"));
+ if (unicodeScalarValues !== 0)
+ H.Primitives_stringFromCharCode(unicodeScalarValues);
+ break;
+ case "web":
+ t2 = H._asStringQ(t1.$index(message, "code"));
+ if (t2 == null)
+ t2 = "";
+ t3 = H._asStringQ(t1.$index(message, "key"));
+ if (t3 == null)
+ t3 = "";
+ t4 = H._asIntQ(t1.$index(message, _s9_0));
+ data = new A.RawKeyEventDataWeb(t2, t3, t4 == null ? 0 : t4);
+ H._asStringQ(t1.$index(message, "key"));
+ break;
+ case "windows":
+ characterCodePoint = H._asIntQ(t1.$index(message, "characterCodePoint"));
+ if (characterCodePoint == null)
+ characterCodePoint = 0;
+ t2 = H._asIntQ(t1.$index(message, _s7_));
+ if (t2 == null)
+ t2 = 0;
+ t3 = H._asIntQ(t1.$index(message, _s8_));
+ if (t3 == null)
+ t3 = 0;
+ t4 = H._asIntQ(t1.$index(message, _s9_2));
+ data = new R.RawKeyEventDataWindows(t2, t3, characterCodePoint, t4 == null ? 0 : t4);
+ if (characterCodePoint !== 0)
+ H.Primitives_stringFromCharCode(characterCodePoint);
+ break;
+ default:
+ throw H.wrapException(U.FlutterError_FlutterError("Unknown keymap for key events: " + H.S(keymap)));
+ }
+ type = H._asStringS(t1.$index(message, "type"));
+ switch (type) {
+ case "keydown":
+ return new B.RawKeyDownEvent(data);
+ case "keyup":
+ return new B.RawKeyUpEvent(data);
+ default:
+ throw H.wrapException(U.FlutterError_FlutterError("Unknown key event type: " + H.S(type)));
+ }
+ },
+ KeyboardSide: function KeyboardSide(t0) {
+ this._raw_keyboard$_name = t0;
+ },
+ ModifierKey: function ModifierKey(t0) {
+ this._raw_keyboard$_name = t0;
+ },
+ RawKeyEventData: function RawKeyEventData() {
+ },
+ RawKeyEvent: function RawKeyEvent() {
+ },
+ RawKeyDownEvent: function RawKeyDownEvent(t0) {
+ this.data = t0;
+ },
+ RawKeyUpEvent: function RawKeyUpEvent(t0) {
+ this.data = t0;
+ },
+ RawKeyboard: function RawKeyboard(t0, t1) {
+ this._listeners = t0;
+ this.keyEventHandler = null;
+ this._keysPressed = t1;
+ },
+ _ModifierSidePair: function _ModifierSidePair(t0, t1) {
+ this.modifier = t0;
+ this.side = t1;
+ },
+ _RawKeyEvent_Object_Diagnosticable: function _RawKeyEvent_Object_Diagnosticable() {
+ },
+ RawKeyEventDataMacOs__isUnprintableKey: function(label) {
+ var codeUnit;
+ if (label.length !== 1)
+ return false;
+ codeUnit = C.JSString_methods._codeUnitAt$1(label, 0);
+ return codeUnit >= 63232 && codeUnit <= 63743;
+ },
+ RawKeyEventDataMacOs: function RawKeyEventDataMacOs(t0, t1, t2, t3) {
+ var _ = this;
+ _.characters = t0;
+ _.charactersIgnoringModifiers = t1;
+ _.keyCode = t2;
+ _.modifiers = t3;
+ },
+ RawKeyEventDataMacOs_getModifierSide_findSide: function RawKeyEventDataMacOs_getModifierSide_findSide(t0) {
+ this.$this = t0;
+ },
+ TextInputFormatter: function TextInputFormatter() {
+ },
+ FilteringTextInputFormatter: function FilteringTextInputFormatter(t0) {
+ this.filterPattern = t0;
+ },
+ FilteringTextInputFormatter_formatEditUpdate_closure: function FilteringTextInputFormatter_formatEditUpdate_closure(t0) {
+ this.$this = t0;
+ },
+ FilteringTextInputFormatter_formatEditUpdate__closure: function FilteringTextInputFormatter_formatEditUpdate__closure(t0) {
+ this.$this = t0;
+ },
+ ListView$builder: function(itemBuilder, itemCount, padding, shrinkWrap) {
+ var _null = null;
+ return new B.ListView(new G.SliverChildBuilderDelegate(itemBuilder, itemCount, true, true, true), padding, C.Axis_1, false, _null, true, C.AlwaysScrollableScrollPhysics_null, true, _null, itemCount, C.DragStartBehavior_1, C.ScrollViewKeyboardDismissBehavior_0, _null, C.Clip_1, _null);
+ },
+ ScrollViewKeyboardDismissBehavior: function ScrollViewKeyboardDismissBehavior(t0) {
+ this._scroll_view$_name = t0;
+ },
+ ScrollView: function ScrollView() {
+ },
+ ScrollView_build_closure: function ScrollView_build_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.axisDirection = t1;
+ this.slivers = t2;
+ },
+ ScrollView_build_closure0: function ScrollView_build_closure0(t0) {
+ this.context = t0;
+ },
+ BoxScrollView: function BoxScrollView() {
+ },
+ ListView: function ListView(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.childrenDelegate = t0;
+ _.padding = t1;
+ _.scrollDirection = t2;
+ _.reverse = t3;
+ _.controller = t4;
+ _.primary = t5;
+ _.physics = t6;
+ _.shrinkWrap = t7;
+ _.cacheExtent = t8;
+ _.semanticChildCount = t9;
+ _.dragStartBehavior = t10;
+ _.keyboardDismissBehavior = t11;
+ _.restorationId = t12;
+ _.clipBehavior = t13;
+ _.key = t14;
+ },
+ RTCFactory: function RTCFactory() {
+ },
+ RTCPeerConnection: function RTCPeerConnection() {
+ },
+ InternalStyle: function InternalStyle() {
+ },
+ nearEqual: function(a, b, epsilon) {
+ if (a == null || b == null)
+ return a == b;
+ return a > b - epsilon && a < b + epsilon || a === b;
+ },
+ encodingForCharset: function(charset) {
+ var t1;
+ if (charset == null)
+ return C.C_Latin1Codec;
+ t1 = P.Encoding_getByName(charset);
+ return t1 == null ? C.C_Latin1Codec : t1;
+ },
+ toUint8List: function(input) {
+ if (type$.legacy_Uint8List._is(input))
+ return input;
+ if (type$.legacy_TypedData._is(input))
+ return H.NativeUint8List_NativeUint8List$view(input.buffer, 0, null);
+ return new Uint8Array(H._ensureNativeList(input));
+ },
+ toByteStream: function(stream) {
+ return stream;
+ },
+ wrapFormatException: function($name, value, body) {
+ var error, error0, t1, exception;
+ try {
+ t1 = body.call$0();
+ return t1;
+ } catch (exception) {
+ t1 = H.unwrapException(exception);
+ if (t1 instanceof G.SourceSpanFormatException) {
+ error = t1;
+ throw H.wrapException(G.SourceSpanFormatException$("Invalid " + $name + ": " + error._span_exception$_message, error._span, J.get$source$z(error)));
+ } else if (type$.legacy_FormatException._is(t1)) {
+ error0 = t1;
+ throw H.wrapException(P.FormatException$("Invalid " + $name + ' "' + value + '": ' + H.S(J.get$message$x(error0)), J.get$source$z(error0), J.get$offset$x(error0)));
+ } else
+ throw exception;
+ }
+ },
+ isAlphabetic: function(char) {
+ var t1;
+ if (!(char >= 65 && char <= 90))
+ t1 = char >= 97 && char <= 122;
+ else
+ t1 = true;
+ return t1;
+ },
+ isDriveLetter: function(path, index) {
+ var t1 = path.length,
+ t2 = index + 2;
+ if (t1 < t2)
+ return false;
+ if (!B.isAlphabetic(C.JSString_methods.codeUnitAt$1(path, index)))
+ return false;
+ if (C.JSString_methods.codeUnitAt$1(path, index + 1) !== 58)
+ return false;
+ if (t1 === t2)
+ return true;
+ return C.JSString_methods.codeUnitAt$1(path, t2) === 47;
+ },
+ isAllTheSame: function(iter) {
+ var t1, t2, t3, lastValue, value;
+ for (t1 = J.get$iterator$ax(iter._source), t2 = iter.$ti, t3 = new H.WhereTypeIterator(t1, t2._eval$1("WhereTypeIterator<1>")), t2 = t2._precomputed1, lastValue = null; t3.moveNext$0();) {
+ value = t2._as(t1.get$current(t1));
+ if (lastValue == null)
+ lastValue = value;
+ else if (!J.$eq$(value, lastValue))
+ return false;
+ }
+ return true;
+ },
+ replaceFirstNull: function(list, element) {
+ var index = C.JSArray_methods.indexOf$1(list, null);
+ if (index < 0)
+ throw H.wrapException(P.ArgumentError$(H.S(list) + " contains no null elements."));
+ list[index] = element;
+ },
+ replaceWithNull: function(list, element) {
+ var index = C.JSArray_methods.indexOf$1(list, element);
+ if (index < 0)
+ throw H.wrapException(P.ArgumentError$(H.S(list) + " contains no elements matching " + element.toString$0(0) + "."));
+ list[index] = null;
+ },
+ countCodeUnits: function(string, codeUnit) {
+ var t1, count, cur;
+ for (t1 = new H.CodeUnits(string), t1 = new H.ListIterator(t1, t1.get$length(t1)), count = 0; t1.moveNext$0();) {
+ cur = t1._current;
+ if (cur === codeUnit)
+ ++count;
+ }
+ return count;
+ },
+ findLineStart: function(context, text, column) {
+ var beginningOfLine, index, lineStart;
+ if (text.length === 0)
+ for (beginningOfLine = 0; true;) {
+ index = C.JSString_methods.indexOf$2(context, "\n", beginningOfLine);
+ if (index === -1)
+ return context.length - beginningOfLine >= column ? beginningOfLine : null;
+ if (index - beginningOfLine >= column)
+ return beginningOfLine;
+ beginningOfLine = index + 1;
+ }
+ index = C.JSString_methods.indexOf$1(context, text);
+ for (; index !== -1;) {
+ lineStart = index === 0 ? 0 : C.JSString_methods.lastIndexOf$2(context, "\n", index - 1) + 1;
+ if (column === index - lineStart)
+ return lineStart;
+ index = C.JSString_methods.indexOf$2(context, text, index + 1);
+ }
+ return null;
+ }
+ },
+ O = {SynchronousFuture: function SynchronousFuture(t0, t1) {
+ this._synchronous_future$_value = t0;
+ this.$ti = t1;
+ }, SynchronousFuture_whenComplete_closure: function SynchronousFuture_whenComplete_closure(t0) {
+ this.$this = t0;
+ },
+ DragStartDetails$: function(globalPosition, kind, localPosition, sourceTimeStamp) {
+ return new O.DragStartDetails(sourceTimeStamp, globalPosition, kind);
+ },
+ DragUpdateDetails$: function(delta, globalPosition, localPosition, primaryDelta, sourceTimeStamp) {
+ return new O.DragUpdateDetails(sourceTimeStamp, delta, primaryDelta, globalPosition);
+ },
+ DragDownDetails: function DragDownDetails(t0) {
+ this.globalPosition = t0;
+ },
+ DragStartDetails: function DragStartDetails(t0, t1, t2) {
+ this.sourceTimeStamp = t0;
+ this.globalPosition = t1;
+ this.kind = t2;
+ },
+ DragUpdateDetails: function DragUpdateDetails(t0, t1, t2, t3) {
+ var _ = this;
+ _.sourceTimeStamp = t0;
+ _.delta = t1;
+ _.primaryDelta = t2;
+ _.globalPosition = t3;
+ },
+ DragEndDetails: function DragEndDetails(t0, t1) {
+ this.velocity = t0;
+ this.primaryVelocity = t1;
+ },
+ HitTestResult$: function() {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_HitTestEntry),
+ t2 = new E.Matrix4(new Float64Array(16));
+ t2.setIdentity$0();
+ return new O.HitTestResult(t1, H.setRuntimeTypeInfo([t2], type$.JSArray_Matrix4), H.setRuntimeTypeInfo([], type$.JSArray__TransformPart));
+ },
+ HitTestEntry: function HitTestEntry(t0) {
+ this.target = t0;
+ this._transform = null;
+ },
+ _TransformPart: function _TransformPart() {
+ },
+ _MatrixTransformPart: function _MatrixTransformPart(t0) {
+ this.matrix = t0;
+ },
+ _OffsetTransformPart: function _OffsetTransformPart(t0) {
+ this.offset = t0;
+ },
+ HitTestResult: function HitTestResult(t0, t1, t2) {
+ this._path = t0;
+ this._transforms = t1;
+ this._localTransforms = t2;
+ },
+ DragGestureRecognizer__defaultBuilder: function($event) {
+ return new R.VelocityTracker($event.get$kind($event), P.List_List$filled(20, null, false, type$.nullable__PointAtTime));
+ },
+ VerticalDragGestureRecognizer$: function(debugOwner) {
+ var t1 = type$.int;
+ return new O.VerticalDragGestureRecognizer(C.DragStartBehavior_1, O.monodrag_DragGestureRecognizer__defaultBuilder$closure(), C._DragState_0, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.VelocityTracker), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), debugOwner, null, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ HorizontalDragGestureRecognizer$: function(debugOwner, kind) {
+ var t1 = type$.int;
+ return new O.HorizontalDragGestureRecognizer(C.DragStartBehavior_1, O.monodrag_DragGestureRecognizer__defaultBuilder$closure(), C._DragState_0, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.VelocityTracker), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), debugOwner, kind, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ _DragState: function _DragState(t0) {
+ this._monodrag$_name = t0;
+ },
+ DragGestureRecognizer: function DragGestureRecognizer() {
+ },
+ DragGestureRecognizer__checkDown_closure: function DragGestureRecognizer__checkDown_closure(t0, t1) {
+ this.$this = t0;
+ this.details = t1;
+ },
+ DragGestureRecognizer__checkStart_closure: function DragGestureRecognizer__checkStart_closure(t0, t1) {
+ this.$this = t0;
+ this.details = t1;
+ },
+ DragGestureRecognizer__checkUpdate_closure: function DragGestureRecognizer__checkUpdate_closure(t0, t1) {
+ this.$this = t0;
+ this.details = t1;
+ },
+ DragGestureRecognizer__checkEnd_closure: function DragGestureRecognizer__checkEnd_closure(t0, t1) {
+ this.estimate = t0;
+ this.velocity = t1;
+ },
+ DragGestureRecognizer__checkEnd_closure0: function DragGestureRecognizer__checkEnd_closure0(t0) {
+ this.estimate = t0;
+ },
+ DragGestureRecognizer__checkEnd_closure1: function DragGestureRecognizer__checkEnd_closure1(t0, t1) {
+ this._box_0 = t0;
+ this.$this = t1;
+ },
+ VerticalDragGestureRecognizer: function VerticalDragGestureRecognizer(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.dragStartBehavior = t0;
+ _.maxFlingVelocity = _.minFlingVelocity = _.minFlingDistance = _.onCancel = _.onEnd = _.onUpdate = _.onStart = _.onDown = null;
+ _.velocityTrackerBuilder = t1;
+ _._monodrag$_state = t2;
+ _.__DragGestureRecognizer__initialPosition = null;
+ _.__DragGestureRecognizer__initialPosition_isSet = false;
+ _.__DragGestureRecognizer__pendingDragOffset = null;
+ _.__DragGestureRecognizer__pendingDragOffset_isSet = false;
+ _.__DragGestureRecognizer__globalDistanceMoved = _._lastTransform = _._initialButtons = _._lastPendingEventTimestamp = null;
+ _.__DragGestureRecognizer__globalDistanceMoved_isSet = false;
+ _._velocityTrackers = t3;
+ _._recognizer$_entries = t4;
+ _._trackedPointers = t5;
+ _._team = null;
+ _.debugOwner = t6;
+ _._kindFilter = t7;
+ _._pointerToKind = t8;
+ },
+ HorizontalDragGestureRecognizer: function HorizontalDragGestureRecognizer(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.dragStartBehavior = t0;
+ _.maxFlingVelocity = _.minFlingVelocity = _.minFlingDistance = _.onCancel = _.onEnd = _.onUpdate = _.onStart = _.onDown = null;
+ _.velocityTrackerBuilder = t1;
+ _._monodrag$_state = t2;
+ _.__DragGestureRecognizer__initialPosition = null;
+ _.__DragGestureRecognizer__initialPosition_isSet = false;
+ _.__DragGestureRecognizer__pendingDragOffset = null;
+ _.__DragGestureRecognizer__pendingDragOffset_isSet = false;
+ _.__DragGestureRecognizer__globalDistanceMoved = _._lastTransform = _._initialButtons = _._lastPendingEventTimestamp = null;
+ _.__DragGestureRecognizer__globalDistanceMoved_isSet = false;
+ _._velocityTrackers = t3;
+ _._recognizer$_entries = t4;
+ _._trackedPointers = t5;
+ _._team = null;
+ _.debugOwner = t6;
+ _._kindFilter = t7;
+ _._pointerToKind = t8;
+ },
+ PanGestureRecognizer: function PanGestureRecognizer(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.dragStartBehavior = t0;
+ _.maxFlingVelocity = _.minFlingVelocity = _.minFlingDistance = _.onCancel = _.onEnd = _.onUpdate = _.onStart = _.onDown = null;
+ _.velocityTrackerBuilder = t1;
+ _._monodrag$_state = t2;
+ _.__DragGestureRecognizer__initialPosition = null;
+ _.__DragGestureRecognizer__initialPosition_isSet = false;
+ _.__DragGestureRecognizer__pendingDragOffset = null;
+ _.__DragGestureRecognizer__pendingDragOffset_isSet = false;
+ _.__DragGestureRecognizer__globalDistanceMoved = _._lastTransform = _._initialButtons = _._lastPendingEventTimestamp = null;
+ _.__DragGestureRecognizer__globalDistanceMoved_isSet = false;
+ _._velocityTrackers = t3;
+ _._recognizer$_entries = t4;
+ _._trackedPointers = t5;
+ _._team = null;
+ _.debugOwner = t6;
+ _._kindFilter = t7;
+ _._pointerToKind = t8;
+ },
+ PointerRouter: function PointerRouter(t0, t1) {
+ this._routeMap = t0;
+ this._globalRoutes = t1;
+ },
+ PointerRouter_addRoute_closure: function PointerRouter_addRoute_closure() {
+ },
+ PointerRouter__dispatchEventToRoutes_closure: function PointerRouter__dispatchEventToRoutes_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.referenceRoutes = t1;
+ this.event = t2;
+ },
+ BoxShadow_lerp: function(a, b, t) {
+ var t2, t3, t4,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ return b.scale$1(0, t);
+ if (b == null)
+ return a.scale$1(0, 1 - t);
+ t1 = P.Color_lerp(a.color, b.color, t);
+ t1.toString;
+ t2 = P.Offset_lerp(a.offset, b.offset, t);
+ t2.toString;
+ t3 = P.lerpDouble(a.blurRadius, b.blurRadius, t);
+ t3.toString;
+ t4 = P.lerpDouble(a.spreadRadius, b.spreadRadius, t);
+ t4.toString;
+ return new O.BoxShadow(t4, t1, t2, t3);
+ },
+ BoxShadow_lerpList: function(a, b, t) {
+ var commonLength, i, t2, t3, t4, t5, t6, t7,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ a = H.setRuntimeTypeInfo([], type$.JSArray_BoxShadow);
+ if (b == null)
+ b = H.setRuntimeTypeInfo([], type$.JSArray_BoxShadow);
+ commonLength = Math.min(a.length, b.length);
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_BoxShadow);
+ for (i = 0; i < commonLength; ++i) {
+ t2 = O.BoxShadow_lerp(a[i], b[i], t);
+ t2.toString;
+ t1.push(t2);
+ }
+ for (i = commonLength; i < a.length; ++i) {
+ t2 = a[i];
+ t3 = 1 - t;
+ t4 = t2.color;
+ t5 = t2.offset;
+ t6 = t5._dx;
+ t5 = t5._dy;
+ t7 = t2.blurRadius;
+ t1.push(new O.BoxShadow(t2.spreadRadius * t3, t4, new P.Offset(t6 * t3, t5 * t3), t7 * t3));
+ }
+ for (i = commonLength; i < b.length; ++i) {
+ t2 = b[i];
+ t3 = t2.color;
+ t4 = t2.offset;
+ t5 = t4._dx;
+ t4 = t4._dy;
+ t6 = t2.blurRadius;
+ t1.push(new O.BoxShadow(t2.spreadRadius * t, t3, new P.Offset(t5 * t, t4 * t), t6 * t));
+ }
+ return t1;
+ },
+ BoxShadow: function BoxShadow(t0, t1, t2, t3) {
+ var _ = this;
+ _.spreadRadius = t0;
+ _.color = t1;
+ _.offset = t2;
+ _.blurRadius = t3;
+ },
+ KeyHelper_KeyHelper: function(toolkit) {
+ if (toolkit === "glfw")
+ return new O.GLFWKeyHelper();
+ else if (toolkit === "gtk")
+ return new O.GtkKeyHelper();
+ else
+ throw H.wrapException(U.FlutterError_FlutterError("Window toolkit not recognized: " + toolkit));
+ },
+ RawKeyEventDataLinux: function RawKeyEventDataLinux(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _.keyHelper = t0;
+ _.unicodeScalarValues = t1;
+ _.scanCode = t2;
+ _.keyCode = t3;
+ _.modifiers = t4;
+ _.isDown = t5;
+ },
+ KeyHelper: function KeyHelper() {
+ },
+ GLFWKeyHelper: function GLFWKeyHelper() {
+ },
+ GtkKeyHelper: function GtkKeyHelper() {
+ },
+ _GLFWKeyHelper_Object_KeyHelper: function _GLFWKeyHelper_Object_KeyHelper() {
+ },
+ _GtkKeyHelper_Object_KeyHelper: function _GtkKeyHelper_Object_KeyHelper() {
+ },
+ FocusNode$: function(canRequestFocus, debugLabel, descendantsAreFocusable, onKey, skipTraversal) {
+ return new O.FocusNode(skipTraversal, canRequestFocus, true, onKey, H.setRuntimeTypeInfo([], type$.JSArray_FocusNode), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ FocusScopeNode$: function(canRequestFocus, debugLabel, skipTraversal) {
+ var t1 = type$.JSArray_FocusNode;
+ return new O.FocusScopeNode(H.setRuntimeTypeInfo([], t1), skipTraversal, canRequestFocus, true, null, H.setRuntimeTypeInfo([], t1), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ FocusManager__defaultModeForPlatform: function() {
+ switch (U.defaultTargetPlatform()) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_2:
+ var t1 = $.WidgetsBinding__instance.RendererBinding__mouseTracker._mouseStates;
+ if (t1.get$isNotEmpty(t1))
+ return C.FocusHighlightMode_1;
+ return C.FocusHighlightMode_0;
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_5:
+ return C.FocusHighlightMode_1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ KeyEventResult: function KeyEventResult(t0) {
+ this._focus_manager$_name = t0;
+ },
+ FocusAttachment: function FocusAttachment(t0) {
+ this._node = t0;
+ },
+ UnfocusDisposition: function UnfocusDisposition(t0) {
+ this._focus_manager$_name = t0;
+ },
+ FocusNode: function FocusNode(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._skipTraversal = t0;
+ _._focus_manager$_canRequestFocus = t1;
+ _._focus_manager$_descendantsAreFocusable = t2;
+ _._context = null;
+ _._onKey = t3;
+ _._descendants = _._ancestors = _._focus_manager$_manager = null;
+ _._hasKeyboardToken = false;
+ _._focus_manager$_parent = null;
+ _._children = t4;
+ _._attachment = _._focus_manager$_debugLabel = null;
+ _._requestFocusWhenReparented = false;
+ _.ChangeNotifier__listeners = t5;
+ },
+ FocusNode_traversalDescendants_closure: function FocusNode_traversalDescendants_closure() {
+ },
+ FocusNode_debugDescribeChildren_closure: function FocusNode_debugDescribeChildren_closure(t0) {
+ this._box_0 = t0;
+ },
+ FocusScopeNode: function FocusScopeNode(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _._focusedChildren = t0;
+ _._skipTraversal = t1;
+ _._focus_manager$_canRequestFocus = t2;
+ _._focus_manager$_descendantsAreFocusable = t3;
+ _._context = null;
+ _._onKey = t4;
+ _._descendants = _._ancestors = _._focus_manager$_manager = null;
+ _._hasKeyboardToken = false;
+ _._focus_manager$_parent = null;
+ _._children = t5;
+ _._attachment = _._focus_manager$_debugLabel = null;
+ _._requestFocusWhenReparented = false;
+ _.ChangeNotifier__listeners = t6;
+ },
+ FocusHighlightMode: function FocusHighlightMode(t0) {
+ this._focus_manager$_name = t0;
+ },
+ FocusHighlightStrategy: function FocusHighlightStrategy(t0) {
+ this._focus_manager$_name = t0;
+ },
+ FocusManager: function FocusManager(t0, t1, t2, t3) {
+ var _ = this;
+ _._lastInteractionWasTouch = _._highlightMode = null;
+ _._focus_manager$_listeners = t0;
+ _.rootScope = t1;
+ _._primaryFocus = null;
+ _._dirtyNodes = t2;
+ _._markedForFocus = null;
+ _._haveScheduledUpdate = false;
+ _.ChangeNotifier__listeners = t3;
+ },
+ _FocusManager_Object_DiagnosticableTreeMixin: function _FocusManager_Object_DiagnosticableTreeMixin() {
+ },
+ _FocusManager_Object_DiagnosticableTreeMixin_ChangeNotifier: function _FocusManager_Object_DiagnosticableTreeMixin_ChangeNotifier() {
+ },
+ _FocusNode_Object_DiagnosticableTreeMixin: function _FocusNode_Object_DiagnosticableTreeMixin() {
+ },
+ _FocusNode_Object_DiagnosticableTreeMixin_ChangeNotifier: function _FocusNode_Object_DiagnosticableTreeMixin_ChangeNotifier() {
+ },
+ BrowserClient: function BrowserClient(t0) {
+ this._xhrs = t0;
+ },
+ BrowserClient_send_closure: function BrowserClient_send_closure(t0, t1, t2) {
+ this.xhr = t0;
+ this.completer = t1;
+ this.request = t2;
+ },
+ BrowserClient_send__closure: function BrowserClient_send__closure(t0, t1, t2, t3) {
+ var _ = this;
+ _.reader = t0;
+ _.completer = t1;
+ _.xhr = t2;
+ _.request = t3;
+ },
+ BrowserClient_send__closure0: function BrowserClient_send__closure0(t0, t1) {
+ this.completer = t0;
+ this.request = t1;
+ },
+ BrowserClient_send_closure0: function BrowserClient_send_closure0(t0, t1) {
+ this.completer = t0;
+ this.request = t1;
+ },
+ Request$: function(method, url) {
+ var t1 = type$.legacy_String;
+ return new O.Request(C.C_Utf8Codec, new Uint8Array(0), method, url, P.LinkedHashMap_LinkedHashMap(new G.BaseRequest_closure(), new G.BaseRequest_closure0(), t1, t1));
+ },
+ Request: function Request(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _._defaultEncoding = t0;
+ _._bodyBytes = t1;
+ _.method = t2;
+ _.url = t3;
+ _.headers = t4;
+ _._finalized = false;
+ },
+ Style__getPlatformStyle: function() {
+ if (P.Uri_base().get$scheme() !== "file")
+ return $.$get$Style_url();
+ var t1 = P.Uri_base();
+ if (!C.JSString_methods.endsWith$1(t1.get$path(t1), "/"))
+ return $.$get$Style_url();
+ if (P._Uri__Uri("a/b").toFilePath$0() === "a\\b")
+ return $.$get$Style_windows();
+ return $.$get$Style_posix();
+ },
+ Style: function Style() {
+ }
+ },
+ V = {_CombiningGestureArenaEntry: function _CombiningGestureArenaEntry(t0, t1) {
+ this._combiner = t0;
+ this._team$_member = t1;
+ }, _CombiningGestureArenaMember: function _CombiningGestureArenaMember(t0, t1, t2) {
+ var _ = this;
+ _._team$_owner = t0;
+ _._members = t1;
+ _._team$_pointer = t2;
+ _._resolved = false;
+ _._entry = _._winner = null;
+ }, GestureArenaTeam: function GestureArenaTeam(t0) {
+ this._combiners = t0;
+ this.captain = null;
+ }, GestureArenaTeam_add_closure: function GestureArenaTeam_add_closure(t0, t1) {
+ this.$this = t0;
+ this.pointer = t1;
+ }, AppBarTheme: function AppBarTheme(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.brightness = t0;
+ _.color = t1;
+ _.elevation = t2;
+ _.shadowColor = t3;
+ _.iconTheme = t4;
+ _.actionsIconTheme = t5;
+ _.textTheme = t6;
+ _.centerTitle = t7;
+ _.titleSpacing = t8;
+ }, _AppBarTheme_Object_Diagnosticable: function _AppBarTheme_Object_Diagnosticable() {
+ },
+ MaterialStateProperty_resolveAs: function(value, states, $T) {
+ if ($T._eval$1("MaterialStateProperty<0>")._is(value))
+ return value.resolve$1(states);
+ return value;
+ },
+ MaterialState: function MaterialState(t0) {
+ this._material_state$_name = t0;
+ },
+ MaterialStateMouseCursor: function MaterialStateMouseCursor() {
+ },
+ _EnabledAndDisabledMouseCursor: function _EnabledAndDisabledMouseCursor(t0, t1) {
+ this.enabledCursor = t0;
+ this.name = t1;
+ },
+ MaterialPageRoute$: function(builder, settings, $T) {
+ var _null = null,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_of_Future_bool_Function),
+ t2 = $.Zone__current,
+ t3 = S.ProxyAnimation$(C.C__AlwaysDismissedAnimation),
+ t4 = H.setRuntimeTypeInfo([], type$.JSArray_OverlayEntry),
+ t5 = $.Zone__current,
+ t6 = settings == null ? C.RouteSettings_null_null : settings;
+ return new V.MaterialPageRoute(builder, false, _null, t1, new N.LabeledGlobalKey(_null, $T._eval$1("LabeledGlobalKey<_ModalScopeState<0>>")), new N.LabeledGlobalKey(_null, type$.LabeledGlobalKey_State_StatefulWidget), new S.PageStorageBucket(), _null, new P._AsyncCompleter(new P._Future(t2, $T._eval$1("_Future<0?>")), $T._eval$1("_AsyncCompleter<0?>")), t3, t4, t6, new B.ValueNotifier(_null, new P.LinkedList(type$.LinkedList__ListenerEntry)), new P._AsyncCompleter(new P._Future(t5, $T._eval$1("_Future<0?>")), $T._eval$1("_AsyncCompleter<0?>")), $T._eval$1("MaterialPageRoute<0>"));
+ },
+ MaterialPageRoute: function MaterialPageRoute(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.builder = t0;
+ _.fullscreenDialog = t1;
+ _._routes$_filter = t2;
+ _._offstage = false;
+ _._secondaryAnimationProxy = _._animationProxy = null;
+ _._willPopCallbacks = t3;
+ _._scopeKey = t4;
+ _._subtreeKey = t5;
+ _._storageBucket = t6;
+ _.__ModalRoute__modalBarrier = null;
+ _.__ModalRoute__modalBarrier_isSet = false;
+ _.__ModalRoute__modalScope = _._modalScopeCache = null;
+ _.__ModalRoute__modalScope_isSet = false;
+ _.LocalHistoryRoute__localHistory = t7;
+ _._transitionCompleter = t8;
+ _._routes$_controller = _._routes$_animation = null;
+ _._secondaryAnimation = t9;
+ _._trainHoppingListenerRemover = _._result = null;
+ _._overlayEntries = t10;
+ _._navigator$_navigator = null;
+ _._settings = t11;
+ _._restorationScopeId = t12;
+ _._popCompleter = t13;
+ _.$ti = t14;
+ },
+ MaterialRouteTransitionMixin: function MaterialRouteTransitionMixin() {
+ },
+ _MaterialPageRoute_PageRoute_MaterialRouteTransitionMixin: function _MaterialPageRoute_PageRoute_MaterialRouteTransitionMixin() {
+ },
+ EdgeInsetsGeometry_lerp: function(a, b, t) {
+ var t2, t3, t4, t5, t6,
+ t1 = a == null;
+ if (t1 && b == null)
+ return null;
+ if (t1)
+ return b.$mul(0, t);
+ if (b == null)
+ return a.$mul(0, 1 - t);
+ if (a instanceof V.EdgeInsets && b instanceof V.EdgeInsets)
+ return V.EdgeInsets_lerp(a, b, t);
+ if (a instanceof V.EdgeInsetsDirectional && b instanceof V.EdgeInsetsDirectional)
+ return V.EdgeInsetsDirectional_lerp(a, b, t);
+ t1 = P.lerpDouble(a.get$_left(a), b.get$_left(b), t);
+ t1.toString;
+ t2 = P.lerpDouble(a.get$_right(a), b.get$_right(b), t);
+ t2.toString;
+ t3 = P.lerpDouble(a.get$_edge_insets$_start(a), b.get$_edge_insets$_start(b), t);
+ t3.toString;
+ t4 = P.lerpDouble(a.get$_edge_insets$_end(), b.get$_edge_insets$_end(), t);
+ t4.toString;
+ t5 = P.lerpDouble(a.get$_top(a), b.get$_top(b), t);
+ t5.toString;
+ t6 = P.lerpDouble(a.get$_bottom(a), b.get$_bottom(b), t);
+ t6.toString;
+ return new V._MixedEdgeInsets(t1, t2, t3, t4, t5, t6);
+ },
+ EdgeInsets$fromWindowPadding: function(padding, devicePixelRatio) {
+ return new V.EdgeInsets(padding.left / devicePixelRatio, padding.top / devicePixelRatio, padding.right / devicePixelRatio, padding.bottom / devicePixelRatio);
+ },
+ EdgeInsets_lerp: function(a, b, t) {
+ var t2, t3, t4,
+ t1 = P.lerpDouble(a.left, b.left, t);
+ t1.toString;
+ t2 = P.lerpDouble(a.top, b.top, t);
+ t2.toString;
+ t3 = P.lerpDouble(a.right, b.right, t);
+ t3.toString;
+ t4 = P.lerpDouble(a.bottom, b.bottom, t);
+ t4.toString;
+ return new V.EdgeInsets(t1, t2, t3, t4);
+ },
+ EdgeInsetsDirectional_lerp: function(a, b, t) {
+ var t2, t3, t4,
+ t1 = P.lerpDouble(a.start, b.start, t);
+ t1.toString;
+ t2 = P.lerpDouble(a.top, b.top, t);
+ t2.toString;
+ t3 = P.lerpDouble(a.end, b.end, t);
+ t3.toString;
+ t4 = P.lerpDouble(a.bottom, b.bottom, t);
+ t4.toString;
+ return new V.EdgeInsetsDirectional(t1, t2, t3, t4);
+ },
+ EdgeInsetsGeometry: function EdgeInsetsGeometry() {
+ },
+ EdgeInsets: function EdgeInsets(t0, t1, t2, t3) {
+ var _ = this;
+ _.left = t0;
+ _.top = t1;
+ _.right = t2;
+ _.bottom = t3;
+ },
+ EdgeInsetsDirectional: function EdgeInsetsDirectional(t0, t1, t2, t3) {
+ var _ = this;
+ _.start = t0;
+ _.top = t1;
+ _.end = t2;
+ _.bottom = t3;
+ },
+ _MixedEdgeInsets: function _MixedEdgeInsets(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._left = t0;
+ _._right = t1;
+ _._edge_insets$_start = t2;
+ _._edge_insets$_end = t3;
+ _._top = t4;
+ _._bottom = t5;
+ },
+ RenderCustomPaint__updateSemanticsChildren: function(oldSemantics, newChildSemantics) {
+ var t1, oldChildrenBottom, newChildren, haveOldChildren, oldChild, newSemantics, newChild, _oldKeyedChildren_get, oldChildrenTop, newChildrenTop, key, _box_0 = {};
+ _box_0.newChildSemantics = newChildSemantics;
+ if (oldSemantics == null)
+ oldSemantics = C.List_empty7;
+ t1 = J.getInterceptor$asx(oldSemantics);
+ oldChildrenBottom = t1.get$length(oldSemantics) - 1;
+ newChildren = P.List_List$filled(0, null, false, type$.nullable_SemanticsNode);
+ haveOldChildren = 0 <= oldChildrenBottom;
+ while (true) {
+ if (!false)
+ break;
+ oldChild = t1.$index(oldSemantics, 0);
+ newSemantics = _box_0.newChildSemantics[0];
+ oldChild.toString;
+ newSemantics.get$key(newSemantics);
+ break;
+ }
+ while (true) {
+ if (!false)
+ break;
+ oldChild = t1.$index(oldSemantics, oldChildrenBottom);
+ newChild = _box_0.newChildSemantics[-1];
+ oldChild.toString;
+ newChild.get$key(newChild);
+ break;
+ }
+ _box_0.oldKeyedChildren = null;
+ _box_0._oldKeyedChildren_isSet = false;
+ _oldKeyedChildren_get = new V.RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_get(_box_0);
+ if (haveOldChildren) {
+ new V.RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_set(_box_0).call$1(P.LinkedHashMap_LinkedHashMap$_empty(type$.Key, type$.SemanticsNode));
+ for (oldChildrenTop = 0; oldChildrenTop <= oldChildrenBottom;) {
+ t1.$index(oldSemantics, oldChildrenTop).toString;
+ ++oldChildrenTop;
+ }
+ haveOldChildren = true;
+ } else
+ oldChildrenTop = 0;
+ for (newChildrenTop = 0; false;) {
+ newSemantics = _box_0.newChildSemantics[newChildrenTop];
+ if (haveOldChildren) {
+ key = newSemantics.get$key(newSemantics);
+ oldChild = J.$index$asx(_oldKeyedChildren_get.call$0(), key);
+ if (oldChild != null) {
+ newSemantics.get$key(newSemantics);
+ oldChild = null;
+ }
+ } else
+ oldChild = null;
+ newChildren[newChildrenTop] = V.RenderCustomPaint__updateSemanticsChild(oldChild, newSemantics);
+ ++newChildrenTop;
+ }
+ t1.get$length(oldSemantics);
+ while (true) {
+ if (!false)
+ break;
+ newChildren[newChildrenTop] = V.RenderCustomPaint__updateSemanticsChild(t1.$index(oldSemantics, oldChildrenTop), _box_0.newChildSemantics[newChildrenTop]);
+ ++newChildrenTop;
+ ++oldChildrenTop;
+ }
+ return new H.CastList(newChildren, H._arrayInstanceType(newChildren)._eval$1("CastList<1,SemanticsNode>"));
+ },
+ RenderCustomPaint__updateSemanticsChild: function(oldChild, newSemantics) {
+ var t1,
+ newChild = oldChild == null ? A.SemanticsNode$(newSemantics.get$key(newSemantics), null) : oldChild,
+ properties = newSemantics.get$properties(),
+ config = A.SemanticsConfiguration$();
+ properties.get$sortKey();
+ config._semantics$_sortKey = properties.get$sortKey();
+ config._hasBeenAnnotated = true;
+ properties.get$checked(properties);
+ t1 = properties.get$checked(properties);
+ config._setFlag$2(C.SemanticsFlag_1, true);
+ config._setFlag$2(C.SemanticsFlag_2, t1);
+ properties.get$selected(properties);
+ config._setFlag$2(C.SemanticsFlag_4, properties.get$selected(properties));
+ properties.get$button(properties);
+ config._setFlag$2(C.SemanticsFlag_8, properties.get$button(properties));
+ properties.get$link();
+ config._setFlag$2(C.SemanticsFlag_4194304, properties.get$link());
+ properties.get$textField();
+ config._setFlag$2(C.SemanticsFlag_16, properties.get$textField());
+ properties.get$slider();
+ config._setFlag$2(C.SemanticsFlag_8388608, properties.get$slider());
+ properties.get$readOnly(properties);
+ config._setFlag$2(C.SemanticsFlag_1048576, properties.get$readOnly(properties));
+ properties.get$focusable();
+ config._setFlag$2(C.SemanticsFlag_2097152, properties.get$focusable());
+ properties.get$focused(properties);
+ config._setFlag$2(C.SemanticsFlag_32, properties.get$focused(properties));
+ properties.get$enabled(properties);
+ t1 = properties.get$enabled(properties);
+ config._setFlag$2(C.SemanticsFlag_64, true);
+ config._setFlag$2(C.SemanticsFlag_128, t1);
+ properties.get$inMutuallyExclusiveGroup();
+ config._setFlag$2(C.SemanticsFlag_256, properties.get$inMutuallyExclusiveGroup());
+ properties.get$obscured();
+ config._setFlag$2(C.SemanticsFlag_1024, properties.get$obscured());
+ properties.get$multiline(properties);
+ config._setFlag$2(C.SemanticsFlag_524288, properties.get$multiline(properties));
+ properties.get$hidden(properties);
+ config._setFlag$2(C.SemanticsFlag_8192, properties.get$hidden(properties));
+ properties.get$header();
+ config._setFlag$2(C.SemanticsFlag_512, properties.get$header());
+ properties.get$scopesRoute();
+ config._setFlag$2(C.SemanticsFlag_2048, properties.get$scopesRoute());
+ properties.get$namesRoute();
+ config._setFlag$2(C.SemanticsFlag_4096, properties.get$namesRoute());
+ properties.get$liveRegion();
+ config._setFlag$2(C.SemanticsFlag_32768, properties.get$liveRegion());
+ properties.get$maxValueLength();
+ config.set$maxValueLength(properties.get$maxValueLength());
+ properties.get$currentValueLength();
+ config.set$currentValueLength(properties.get$currentValueLength());
+ properties.get$toggled();
+ t1 = properties.get$toggled();
+ config._setFlag$2(C.SemanticsFlag_65536, true);
+ config._setFlag$2(C.SemanticsFlag_131072, t1);
+ properties.get$image(properties);
+ config._setFlag$2(C.SemanticsFlag_16384, properties.get$image(properties));
+ properties.get$label(properties);
+ config._semantics$_label = properties.get$label(properties);
+ config._hasBeenAnnotated = true;
+ properties.get$value(properties);
+ config._semantics$_value = properties.get$value(properties);
+ config._hasBeenAnnotated = true;
+ properties.get$increasedValue();
+ config._increasedValue = properties.get$increasedValue();
+ config._hasBeenAnnotated = true;
+ properties.get$decreasedValue();
+ config._decreasedValue = properties.get$decreasedValue();
+ config._hasBeenAnnotated = true;
+ properties.get$hint(properties);
+ config._semantics$_hint = properties.get$hint(properties);
+ config._hasBeenAnnotated = true;
+ properties.get$textDirection(properties);
+ config._semantics$_textDirection = properties.get$textDirection(properties);
+ config._hasBeenAnnotated = true;
+ properties.get$onTap();
+ config.set$onTap(properties.get$onTap());
+ properties.get$onLongPress();
+ config.set$onLongPress(properties.get$onLongPress());
+ properties.get$onScrollLeft();
+ config.set$onScrollLeft(properties.get$onScrollLeft());
+ properties.get$onScrollRight();
+ config.set$onScrollRight(properties.get$onScrollRight());
+ properties.get$onScrollUp();
+ config.set$onScrollUp(properties.get$onScrollUp());
+ properties.get$onScrollDown();
+ config.set$onScrollDown(properties.get$onScrollDown());
+ properties.get$onIncrease();
+ config.set$onIncrease(properties.get$onIncrease());
+ properties.get$onDecrease();
+ config.set$onDecrease(properties.get$onDecrease());
+ properties.get$onCopy(properties);
+ config.set$onCopy(0, properties.get$onCopy(properties));
+ properties.get$onCut(properties);
+ config.set$onCut(0, properties.get$onCut(properties));
+ properties.get$onPaste(properties);
+ config.set$onPaste(0, properties.get$onPaste(properties));
+ properties.get$onMoveCursorForwardByCharacter();
+ config.set$onMoveCursorForwardByCharacter(properties.get$onMoveCursorForwardByCharacter());
+ properties.get$onMoveCursorBackwardByCharacter();
+ config.set$onMoveCursorBackwardByCharacter(properties.get$onMoveCursorBackwardByCharacter());
+ properties.get$onMoveCursorForwardByWord();
+ config.set$onMoveCursorForwardByWord(properties.get$onMoveCursorForwardByWord());
+ properties.get$onMoveCursorBackwardByWord();
+ config.set$onMoveCursorBackwardByWord(properties.get$onMoveCursorBackwardByWord());
+ properties.get$onSetSelection();
+ config.set$onSetSelection(properties.get$onSetSelection());
+ properties.get$onDidGainAccessibilityFocus();
+ config.set$onDidGainAccessibilityFocus(properties.get$onDidGainAccessibilityFocus());
+ properties.get$onDidLoseAccessibilityFocus();
+ config.set$onDidLoseAccessibilityFocus(properties.get$onDidLoseAccessibilityFocus());
+ properties.get$onDismiss();
+ config.set$onDismiss(properties.get$onDismiss());
+ newChild.updateWith$2$childrenInInversePaintOrder$config(0, C.List_empty7, config);
+ newChild.set$rect(0, newSemantics.get$rect(newSemantics));
+ newChild.set$transform(0, newSemantics.get$transform(newSemantics));
+ newChild.tags = newSemantics.get$tags();
+ return newChild;
+ },
+ CustomPainter: function CustomPainter() {
+ },
+ RenderCustomPaint: function RenderCustomPaint(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._painter = t0;
+ _._foregroundPainter = t1;
+ _._preferredSize = t2;
+ _.isComplex = t3;
+ _.willChange = t4;
+ _._foregroundSemanticsNodes = _._backgroundSemanticsNodes = _._foregroundSemanticsBuilder = _._backgroundSemanticsBuilder = null;
+ _.RenderObjectWithChildMixin__child = t5;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_set: function RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_set(t0) {
+ this._box_0 = t0;
+ },
+ RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_get: function RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_get(t0) {
+ this._box_0 = t0;
+ },
+ RenderErrorBox: function RenderErrorBox(t0) {
+ var _ = this;
+ _.message = t0;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = _._paragraph = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ Priority: function Priority(t0) {
+ this._priority$_value = t0;
+ },
+ SystemSound_play: function(type) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$SystemSound_play = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(C.OptionalMethodChannel_cWd.invokeMethod$1$2("SystemSound.play", type._system_sound$_name, type$.void), $async$SystemSound_play);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$SystemSound_play, $async$completer);
+ },
+ SystemSoundType: function SystemSoundType(t0) {
+ this._system_sound$_name = t0;
+ },
+ OrientationBuilder: function OrientationBuilder(t0, t1) {
+ this.builder = t0;
+ this.key = t1;
+ },
+ PageRoute: function PageRoute() {
+ },
+ MediaStream0: function MediaStream0() {
+ },
+ RTCRtpTransceiver: function RTCRtpTransceiver() {
+ },
+ RTCVideoRendererWeb$: function() {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_legacy_StreamSubscription_dynamic),
+ t2 = $.RTCVideoRendererWeb__textureCounter;
+ $.RTCVideoRendererWeb__textureCounter = t2 + 1;
+ return new V.RTCVideoRendererWeb(t2, t1, C.RTCVideoValue_0_0_0_false, new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ RTCVideoRendererWeb: function RTCVideoRendererWeb(t0, t1, t2, t3) {
+ var _ = this;
+ _._textureId = t0;
+ _._srcObject = _._videoElement = null;
+ _._rtc_video_renderer_impl$_subscriptions = t1;
+ _._change_notifier$_value = t2;
+ _.ChangeNotifier__listeners = t3;
+ },
+ RTCVideoRendererWeb_initialize_closure: function RTCVideoRendererWeb_initialize_closure(t0) {
+ this.$this = t0;
+ },
+ RTCVideoRendererWeb_initialize_closure0: function RTCVideoRendererWeb_initialize_closure0(t0) {
+ this.$this = t0;
+ },
+ RTCVideoRendererWeb_initialize_closure1: function RTCVideoRendererWeb_initialize_closure1(t0) {
+ this.$this = t0;
+ },
+ RTCVideoRendererWeb_initialize_closure2: function RTCVideoRendererWeb_initialize_closure2(t0) {
+ this.$this = t0;
+ },
+ RTCVideoRendererWeb_initialize_closure3: function RTCVideoRendererWeb_initialize_closure3() {
+ },
+ RTCVideoRendererWeb_dispose_closure: function RTCVideoRendererWeb_dispose_closure() {
+ },
+ SharedPreferences__store: function() {
+ if ($.SharedPreferences__manualDartRegistrationNeeded)
+ $.SharedPreferences__manualDartRegistrationNeeded = false;
+ return $.$get$SharedPreferencesStorePlatform__instance();
+ },
+ SharedPreferences_getInstance: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_SharedPreferences),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], preferencesMap, e, sharedPrefsFuture, exception, t1, $async$exception;
+ var $async$SharedPreferences_getInstance = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = $.SharedPreferences__completer == null ? 3 : 4;
+ break;
+ case 3:
+ // then
+ $.SharedPreferences__completer = new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_legacy_SharedPreferences), type$._AsyncCompleter_legacy_SharedPreferences);
+ $async$handler = 6;
+ $async$goto = 9;
+ return P._asyncAwait(V.SharedPreferences__getSharedPreferencesMap(), $async$SharedPreferences_getInstance);
+ case 9:
+ // returning from await.
+ preferencesMap = $async$result;
+ $.SharedPreferences__completer.complete$1(0, new V.SharedPreferences(preferencesMap));
+ $async$handler = 2;
+ // goto after finally
+ $async$goto = 8;
+ break;
+ case 6:
+ // catch
+ $async$handler = 5;
+ $async$exception = $async$currentError;
+ t1 = H.unwrapException($async$exception);
+ if (type$.legacy_Exception._is(t1)) {
+ e = t1;
+ $.SharedPreferences__completer.completeError$1(e);
+ sharedPrefsFuture = $.SharedPreferences__completer.future;
+ $.SharedPreferences__completer = null;
+ $async$returnValue = sharedPrefsFuture;
+ // goto return
+ $async$goto = 1;
+ break;
+ } else
+ throw $async$exception;
+ // goto after finally
+ $async$goto = 8;
+ break;
+ case 5:
+ // uncaught
+ // goto rethrow
+ $async$goto = 2;
+ break;
+ case 8:
+ // after finally
+ case 4:
+ // join
+ $async$returnValue = $.SharedPreferences__completer.future;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$SharedPreferences_getInstance, $async$completer);
+ },
+ SharedPreferences__getSharedPreferencesMap: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_Map_of_legacy_String_and_legacy_Object),
+ $async$returnValue, t1, t2, t3, fromSystem, preferencesMap;
+ var $async$SharedPreferences__getSharedPreferencesMap = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait(V.SharedPreferences__store().getAll$0(0), $async$SharedPreferences__getSharedPreferencesMap);
+ case 3:
+ // returning from await.
+ fromSystem = $async$result;
+ preferencesMap = P.LinkedHashMap_LinkedHashMap$_empty(type$.legacy_String, type$.legacy_Object);
+ for (t1 = J.getInterceptor$x(fromSystem), t2 = J.get$iterator$ax(t1.get$keys(fromSystem)); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ preferencesMap.$indexSet(0, J.substring$1$s(t3, 8), t1.$index(fromSystem, t3));
+ }
+ $async$returnValue = preferencesMap;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$SharedPreferences__getSharedPreferencesMap, $async$completer);
+ },
+ SharedPreferences: function SharedPreferences(t0) {
+ this._preferenceCache = t0;
+ },
+ SharedPreferencesPlugin: function SharedPreferencesPlugin() {
+ },
+ SourceLocation$: function(offset, column, line, sourceUrl) {
+ var t1 = line == null,
+ t2 = t1 ? 0 : line;
+ if (offset < 0)
+ H.throwExpression(P.RangeError$("Offset may not be negative, was " + offset + "."));
+ else if (!t1 && line < 0)
+ H.throwExpression(P.RangeError$("Line may not be negative, was " + H.S(line) + "."));
+ else if (column < 0)
+ H.throwExpression(P.RangeError$("Column may not be negative, was " + column + "."));
+ return new V.SourceLocation(sourceUrl, offset, t2, column);
+ },
+ SourceLocation: function SourceLocation(t0, t1, t2, t3) {
+ var _ = this;
+ _.sourceUrl = t0;
+ _.offset = t1;
+ _.line = t2;
+ _.column = t3;
+ },
+ SourceSpanBase: function SourceSpanBase() {
+ }
+ },
+ Q = {MaterialBannerThemeData: function MaterialBannerThemeData(t0, t1, t2, t3) {
+ var _ = this;
+ _.backgroundColor = t0;
+ _.contentTextStyle = t1;
+ _.padding = t2;
+ _.leadingPadding = t3;
+ }, _MaterialBannerThemeData_Object_Diagnosticable: function _MaterialBannerThemeData_Object_Diagnosticable() {
+ },
+ ListTileTheme$: function(child, contentPadding, dense, enableFeedback, horizontalTitleGap, iconColor, minLeadingWidth, minVerticalPadding, selectedColor, selectedTileColor, shape, style, textColor, tileColor) {
+ return new Q.ListTileTheme(false, shape, style, selectedColor, iconColor, textColor, contentPadding, tileColor, selectedTileColor, horizontalTitleGap, minVerticalPadding, minLeadingWidth, enableFeedback, child, null);
+ },
+ ListTile$: function(onTap, subtitle, title, trailing) {
+ return new Q.ListTile(title, subtitle, trailing, onTap, null);
+ },
+ _RenderListTile__layoutBox: function(box, constraints) {
+ var t1;
+ if (box == null)
+ return C.Size_0_0;
+ box.layout$2$parentUsesSize(0, constraints, true);
+ t1 = box._size;
+ t1.toString;
+ return t1;
+ },
+ ListTileStyle: function ListTileStyle(t0) {
+ this._list_tile$_name = t0;
+ },
+ ListTileTheme: function ListTileTheme(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
+ var _ = this;
+ _.dense = t0;
+ _.shape = t1;
+ _.style = t2;
+ _.selectedColor = t3;
+ _.iconColor = t4;
+ _.textColor = t5;
+ _.contentPadding = t6;
+ _.tileColor = t7;
+ _.selectedTileColor = t8;
+ _.horizontalTitleGap = t9;
+ _.minVerticalPadding = t10;
+ _.minLeadingWidth = t11;
+ _.enableFeedback = t12;
+ _.child = t13;
+ _.key = t14;
+ },
+ ListTile: function ListTile(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.title = t0;
+ _.subtitle = t1;
+ _.trailing = t2;
+ _.onTap = t3;
+ _.key = t4;
+ },
+ _ListTileSlot: function _ListTileSlot(t0) {
+ this._list_tile$_name = t0;
+ },
+ _ListTile: function _ListTile(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13) {
+ var _ = this;
+ _.leading = t0;
+ _.title = t1;
+ _.subtitle = t2;
+ _.trailing = t3;
+ _.isThreeLine = t4;
+ _.isDense = t5;
+ _.visualDensity = t6;
+ _.textDirection = t7;
+ _.titleBaselineType = t8;
+ _.subtitleBaselineType = t9;
+ _.horizontalTitleGap = t10;
+ _.minVerticalPadding = t11;
+ _.minLeadingWidth = t12;
+ _.key = t13;
+ },
+ _ListTileElement: function _ListTileElement(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.slotToChild = t0;
+ _.__RenderObjectElement__renderObject = null;
+ _.__RenderObjectElement__renderObject_isSet = false;
+ _._framework$_parent = _._ancestorRenderObjectElement = null;
+ _._cachedHash = t1;
+ _.__Element__depth = _._slot = null;
+ _.__Element__depth_isSet = false;
+ _._widget = t2;
+ _._owner = null;
+ _._lifecycleState = t3;
+ _._debugForgottenChildrenWithGlobalKey = t4;
+ _._dependencies = _._inheritedWidgets = null;
+ _._hadUnsatisfiedDependencies = false;
+ _._dirty = true;
+ _._debugAllowIgnoredCallsToMarkNeedsBuild = _._debugBuiltOnce = _._inDirtyList = false;
+ },
+ _RenderListTile: function _RenderListTile(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {
+ var _ = this;
+ _.children = t0;
+ _._trailing = _._subtitle = _._title = _._list_tile$_leading = null;
+ _._isDense = t1;
+ _._visualDensity = t2;
+ _._isThreeLine = t3;
+ _._list_tile$_textDirection = t4;
+ _._titleBaselineType = t5;
+ _._subtitleBaselineType = t6;
+ _._horizontalTitleGap = t7;
+ _._minVerticalPadding = t8;
+ _._minLeadingWidth = t9;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderListTile_debugDescribeChildren_add: function _RenderListTile_debugDescribeChildren_add(t0) {
+ this.value = t0;
+ },
+ _RenderListTile_paint_doPaint: function _RenderListTile_paint_doPaint(t0, t1) {
+ this.context = t0;
+ this.offset = t1;
+ },
+ _RenderListTile_hitTestChildren_closure: function _RenderListTile_hitTestChildren_closure(t0, t1, t2) {
+ this.position = t0;
+ this.parentData = t1;
+ this.child = t2;
+ },
+ SliderThemeData: function SliderThemeData(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26) {
+ var _ = this;
+ _.trackHeight = t0;
+ _.activeTrackColor = t1;
+ _.inactiveTrackColor = t2;
+ _.disabledActiveTrackColor = t3;
+ _.disabledInactiveTrackColor = t4;
+ _.activeTickMarkColor = t5;
+ _.inactiveTickMarkColor = t6;
+ _.disabledActiveTickMarkColor = t7;
+ _.disabledInactiveTickMarkColor = t8;
+ _.thumbColor = t9;
+ _.overlappingShapeStrokeColor = t10;
+ _.disabledThumbColor = t11;
+ _.overlayColor = t12;
+ _.valueIndicatorColor = t13;
+ _.overlayShape = t14;
+ _.tickMarkShape = t15;
+ _.thumbShape = t16;
+ _.trackShape = t17;
+ _.valueIndicatorShape = t18;
+ _.rangeTickMarkShape = t19;
+ _.rangeThumbShape = t20;
+ _.rangeTrackShape = t21;
+ _.rangeValueIndicatorShape = t22;
+ _.showValueIndicator = t23;
+ _.valueIndicatorTextStyle = t24;
+ _.minThumbSeparation = t25;
+ _.thumbSelector = t26;
+ },
+ _SliderThemeData_Object_Diagnosticable: function _SliderThemeData_Object_Diagnosticable() {
+ },
+ TextSpan: function TextSpan(t0, t1, t2) {
+ this.text = t0;
+ this.children = t1;
+ this.style = t2;
+ },
+ TextSpan_debugDescribeChildren_closure: function TextSpan_debugDescribeChildren_closure() {
+ },
+ TextOverflow: function TextOverflow(t0) {
+ this._paragraph$_name = t0;
+ },
+ TextParentData: function TextParentData(t0, t1, t2) {
+ var _ = this;
+ _.scale = null;
+ _.ContainerParentDataMixin_previousSibling = t0;
+ _.ContainerParentDataMixin_nextSibling = t1;
+ _.offset = t2;
+ },
+ RenderParagraph: function RenderParagraph(t0, t1, t2, t3, t4, t5) {
+ var _ = this;
+ _._textPainter = t0;
+ _.__RenderParagraph__placeholderSpans = null;
+ _.__RenderParagraph__placeholderSpans_isSet = false;
+ _._softWrap = t1;
+ _._overflow = t2;
+ _._needsClipping = false;
+ _._cachedChildNodes = _._semanticsInfo = _._placeholderDimensions = _._overflowShader = null;
+ _.ContainerRenderObjectMixin__childCount = t3;
+ _.ContainerRenderObjectMixin__firstChild = t4;
+ _.ContainerRenderObjectMixin__lastChild = t5;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ RenderParagraph__extractPlaceholderSpans_closure: function RenderParagraph__extractPlaceholderSpans_closure(t0) {
+ this.$this = t0;
+ },
+ RenderParagraph_hitTestChildren_closure: function RenderParagraph_hitTestChildren_closure(t0, t1, t2) {
+ this._box_0 = t0;
+ this.position = t1;
+ this.textParentData = t2;
+ },
+ RenderParagraph_paint_closure: function RenderParagraph_paint_closure(t0) {
+ this._box_0 = t0;
+ },
+ RenderParagraph_describeSemanticsConfiguration_closure: function RenderParagraph_describeSemanticsConfiguration_closure() {
+ },
+ _RenderParagraph_RenderBox_ContainerRenderObjectMixin: function _RenderParagraph_RenderBox_ContainerRenderObjectMixin() {
+ },
+ _RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin: function _RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin() {
+ },
+ _RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_RelayoutWhenSystemFontsChangeMixin: function _RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_RelayoutWhenSystemFontsChangeMixin() {
+ },
+ RenderAbstractViewport_of: function(object) {
+ var t1, t2;
+ for (t1 = type$.nullable_RenderObject, t2 = type$.RenderAbstractViewport; object != null;) {
+ if (t2._is(object))
+ return object;
+ object = t1._as(object._node$_parent);
+ }
+ return null;
+ },
+ RenderViewportBase_showInViewport: function(curve, descendant, duration, offset, rect, viewport) {
+ var leadingEdgeOffset, trailingEdgeOffset, t1, t2, t3, targetOffset, transform;
+ if (descendant == null)
+ return rect;
+ leadingEdgeOffset = viewport.getOffsetToReveal$3$rect(descendant, 0, rect);
+ trailingEdgeOffset = viewport.getOffsetToReveal$3$rect(descendant, 1, rect);
+ t1 = offset._pixels;
+ t1.toString;
+ t2 = leadingEdgeOffset.offset;
+ t3 = trailingEdgeOffset.offset;
+ if (t2 < t3)
+ targetOffset = Math.abs(t1 - t2) < Math.abs(t1 - t3) ? leadingEdgeOffset : trailingEdgeOffset;
+ else if (t1 > t2)
+ targetOffset = leadingEdgeOffset;
+ else {
+ if (!(t1 < t3)) {
+ t1 = viewport._node$_parent;
+ t1.toString;
+ transform = descendant.getTransformTo$1(0, type$.RenderObject._as(t1));
+ return T.MatrixUtils_transformRect(transform, rect == null ? descendant.get$paintBounds() : rect);
+ }
+ targetOffset = trailingEdgeOffset;
+ }
+ offset.moveTo$3$curve$duration(0, targetOffset.offset, curve, duration);
+ return targetOffset.rect;
+ },
+ CacheExtentStyle: function CacheExtentStyle(t0) {
+ this._viewport$_name = t0;
+ },
+ RevealedOffset: function RevealedOffset(t0, t1) {
+ this.offset = t0;
+ this.rect = t1;
+ },
+ RenderViewportBase: function RenderViewportBase() {
+ },
+ RenderViewportBase_visitChildrenForSemantics_closure: function RenderViewportBase_visitChildrenForSemantics_closure() {
+ },
+ RenderViewportBase_hitTestChildren_closure: function RenderViewportBase_hitTestChildren_closure(t0, t1, t2, t3) {
+ var _ = this;
+ _._box_0 = t0;
+ _.$this = t1;
+ _.child = t2;
+ _.sliverResult = t3;
+ },
+ RenderShrinkWrappingViewport: function RenderShrinkWrappingViewport(t0, t1, t2, t3, t4, t5, t6, t7, t8) {
+ var _ = this;
+ _.__RenderShrinkWrappingViewport__maxScrollExtent = null;
+ _.__RenderShrinkWrappingViewport__maxScrollExtent_isSet = false;
+ _.__RenderShrinkWrappingViewport__shrinkWrapExtent = null;
+ _._viewport$_hasVisualOverflow = _.__RenderShrinkWrappingViewport__shrinkWrapExtent_isSet = false;
+ _._axisDirection = t0;
+ _._crossAxisDirection = t1;
+ _._viewport$_offset = t2;
+ _._cacheExtent = t3;
+ _._calculatedCacheExtent = null;
+ _._cacheExtentStyle = t4;
+ _._viewport$_clipBehavior = t5;
+ _._viewport$_clipRectLayer = null;
+ _.ContainerRenderObjectMixin__childCount = t6;
+ _.ContainerRenderObjectMixin__firstChild = t7;
+ _.ContainerRenderObjectMixin__lastChild = t8;
+ _._cachedBaselines = _._size = _._cachedIntrinsicDimensions = null;
+ _._debugActivePointers = 0;
+ _.debugCreator = _.parentData = null;
+ _._debugDoingThisLayout = _._debugDoingThisResize = false;
+ _._debugCanParentUseSize = null;
+ _._debugMutationsLocked = false;
+ _._needsLayout = true;
+ _._relayoutBoundary = null;
+ _._doingThisLayoutWithCallback = false;
+ _._constraints = null;
+ _._debugDoingThisPaint = false;
+ _._layer = null;
+ _._needsCompositingBitsUpdate = false;
+ _.__RenderObject__needsCompositing = null;
+ _.__RenderObject__needsCompositing_isSet = false;
+ _._needsPaint = true;
+ _._cachedSemanticsConfiguration = null;
+ _._needsSemanticsUpdate = true;
+ _._semantics = null;
+ _._node$_depth = 0;
+ _._node$_parent = _._node$_owner = null;
+ },
+ _RenderViewportBase_RenderBox_ContainerRenderObjectMixin: function _RenderViewportBase_RenderBox_ContainerRenderObjectMixin() {
+ },
+ AssetBundle__utf8decode: function(data) {
+ return C.C_Utf8Codec.decode$1(0, H.NativeUint8List_NativeUint8List$view(data.buffer, 0, null));
+ },
+ AssetBundle: function AssetBundle() {
+ },
+ CachingAssetBundle: function CachingAssetBundle() {
+ },
+ PlatformAssetBundle: function PlatformAssetBundle(t0, t1) {
+ this._stringCache = t0;
+ this._structuredDataCache = t1;
+ },
+ BinaryMessenger: function BinaryMessenger() {
+ },
+ RawKeyEventDataAndroid: function RawKeyEventDataAndroid(t0, t1, t2, t3, t4, t5, t6) {
+ var _ = this;
+ _.flags = t0;
+ _.codePoint = t1;
+ _.plainCodePoint = t2;
+ _.keyCode = t3;
+ _.scanCode = t4;
+ _.metaState = t5;
+ _.eventSource = t6;
+ },
+ RawKeyEventDataAndroid_getModifierSide_findSide: function RawKeyEventDataAndroid_getModifierSide_findSide(t0) {
+ this.$this = t0;
+ },
+ RawKeyEventDataFuchsia: function RawKeyEventDataFuchsia(t0, t1, t2) {
+ this.hidUsage = t0;
+ this.codePoint = t1;
+ this.modifiers = t2;
+ },
+ RawKeyEventDataFuchsia_getModifierSide_findSide: function RawKeyEventDataFuchsia_getModifierSide_findSide(t0) {
+ this.$this = t0;
+ },
+ SafeArea$: function(bottom, child, minimum, $top) {
+ return new Q.SafeArea($top, bottom, minimum, child, null);
+ },
+ SafeArea: function SafeArea(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.top = t0;
+ _.bottom = t1;
+ _.minimum = t2;
+ _.child = t3;
+ _.key = t4;
+ },
+ Viewport_getDefaultCrossAxisDirection: function(context, axisDirection) {
+ var t1;
+ switch (axisDirection) {
+ case C.AxisDirection_0:
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ return G.textDirectionToAxisDirection(t1.textDirection);
+ case C.AxisDirection_1:
+ return C.AxisDirection_2;
+ case C.AxisDirection_2:
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ return G.textDirectionToAxisDirection(t1.textDirection);
+ case C.AxisDirection_3:
+ return C.AxisDirection_2;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ ShrinkWrappingViewport: function ShrinkWrappingViewport(t0, t1, t2, t3, t4) {
+ var _ = this;
+ _.axisDirection = t0;
+ _.offset = t1;
+ _.clipBehavior = t2;
+ _.children = t3;
+ _.key = t4;
+ },
+ MediaDevices0: function MediaDevices0() {
+ },
+ MediaStreamTrackWeb$: function(jsTrack) {
+ var t1 = new Q.MediaStreamTrackWeb(jsTrack);
+ t1.MediaStreamTrackWeb$1(jsTrack);
+ return t1;
+ },
+ MediaStreamTrackWeb: function MediaStreamTrackWeb(t0) {
+ this.jsTrack = t0;
+ },
+ MediaStreamTrackWeb_closure: function MediaStreamTrackWeb_closure(t0) {
+ this.$this = t0;
+ },
+ MediaStreamTrackWeb_closure0: function MediaStreamTrackWeb_closure0(t0) {
+ this.$this = t0;
+ },
+ CallSample: function CallSample(t0, t1) {
+ this.host = t0;
+ this.key = t1;
+ },
+ _CallSampleState: function _CallSampleState(t0, t1, t2) {
+ var _ = this;
+ _._call_sample$_selfId = _._peers = _._signaling = null;
+ _._localRenderer = t0;
+ _._remoteRenderer = t1;
+ _._inCalling = false;
+ _._widget = _._session = null;
+ _._debugLifecycleState = t2;
+ _._framework$_element = null;
+ },
+ _CallSampleState__connect_closure: function _CallSampleState__connect_closure() {
+ },
+ _CallSampleState__connect_closure0: function _CallSampleState__connect_closure0(t0) {
+ this.$this = t0;
+ },
+ _CallSampleState__connect__closure0: function _CallSampleState__connect__closure0(t0, t1) {
+ this.$this = t0;
+ this.session = t1;
+ },
+ _CallSampleState__connect__closure1: function _CallSampleState__connect__closure1(t0) {
+ this.$this = t0;
+ },
+ _CallSampleState__connect_closure1: function _CallSampleState__connect_closure1(t0) {
+ this.$this = t0;
+ },
+ _CallSampleState__connect__closure: function _CallSampleState__connect__closure(t0, t1) {
+ this.$this = t0;
+ this.event = t1;
+ },
+ _CallSampleState__connect_closure2: function _CallSampleState__connect_closure2(t0) {
+ this.$this = t0;
+ },
+ _CallSampleState__connect_closure3: function _CallSampleState__connect_closure3(t0) {
+ this.$this = t0;
+ },
+ _CallSampleState__connect_closure4: function _CallSampleState__connect_closure4(t0) {
+ this.$this = t0;
+ },
+ _CallSampleState__buildRow_closure: function _CallSampleState__buildRow_closure(t0, t1, t2) {
+ this.$this = t0;
+ this.context = t1;
+ this.peer = t2;
+ },
+ _CallSampleState__buildRow_closure0: function _CallSampleState__buildRow_closure0(t0, t1, t2) {
+ this.$this = t0;
+ this.context = t1;
+ this.peer = t2;
+ },
+ _CallSampleState_build_closure: function _CallSampleState_build_closure(t0) {
+ this.$this = t0;
+ },
+ _CallSampleState_build_closure0: function _CallSampleState_build_closure0(t0) {
+ this.$this = t0;
+ },
+ randomString: function($length, from, to) {
+ return P.String_String$fromCharCodes(P.List_List$generate($length, new Q.randomString_closure(from, to), true, type$.legacy_int), 0, null);
+ },
+ randomString_closure: function randomString_closure(t0, t1) {
+ this.from = t0;
+ this.to = t1;
+ }
+ };
+ var holders = [C, H, J, P, W, T, A, M, Y, X, G, S, Z, R, E, K, L, D, F, U, N, B, O, V, Q];
+ hunkHelpers.setFunctionNamesIfNecessary(holders);
+ var $ = {};
+ H.initializeEngine_closure.prototype = {
+ call$2: function(_, __) {
+ var t1, _i;
+ for (t1 = $._hotRestartListeners.length, _i = 0; _i < $._hotRestartListeners.length; $._hotRestartListeners.length === t1 || (0, H.throwConcurrentModificationError)($._hotRestartListeners), ++_i)
+ $._hotRestartListeners[_i].call$0();
+ return P.Future_Future$value(P.ServiceExtensionResponse$result("OK"), type$.ServiceExtensionResponse);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 133
+ };
+ H.initializeEngine_closure0.prototype = {
+ call$0: function() {
+ var t2,
+ t1 = this._box_0;
+ if (!t1.waitingForAnimation) {
+ t1.waitingForAnimation = true;
+ t2 = window;
+ C.Window_methods._ensureRequestAnimationFrame$0(t2);
+ t1 = W._wrapZone(new H.initializeEngine__closure(t1), type$.num);
+ t1.toString;
+ C.Window_methods._requestAnimationFrame$1(t2, t1);
+ }
+ },
+ $signature: 0
+ };
+ H.initializeEngine__closure.prototype = {
+ call$1: function(highResTime) {
+ var highResTimeMicroseconds, t1, t2, t3;
+ H._frameTimingsOnVsync();
+ this._box_0.waitingForAnimation = false;
+ highResTimeMicroseconds = C.JSNumber_methods.toInt$0(1000 * highResTime);
+ H._frameTimingsOnBuildStart();
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ t2 = t1._onBeginFrame;
+ if (t2 != null) {
+ t3 = P.Duration$(highResTimeMicroseconds, 0, 0);
+ H.invoke1(t2, t1._onBeginFrameZone, t3);
+ }
+ t2 = t1._onDrawFrame;
+ if (t2 != null)
+ H.invoke(t2, t1._onDrawFrameZone);
+ },
+ $signature: 404
+ };
+ H._NullTreeSanitizer.prototype = {
+ sanitizeTree$1: function(node) {
+ }
+ };
+ H.AlarmClock.prototype = {
+ get$callback: function() {
+ return this.__AlarmClock_callback_isSet ? this.__AlarmClock_callback : H.throwExpression(H.LateError$fieldNI("callback"));
+ },
+ set$datetime: function(value) {
+ var now, t1, t2, _this = this;
+ if (J.$eq$(value, _this._datetime))
+ return;
+ if (value == null) {
+ _this._cancelTimer$0();
+ _this._datetime = null;
+ return;
+ }
+ now = _this._timestampFunction.call$0();
+ t1 = value._core$_value;
+ t2 = now._core$_value;
+ if (t1 < t2) {
+ _this._cancelTimer$0();
+ _this._datetime = value;
+ return;
+ }
+ if (_this._timer == null)
+ _this._timer = P.Timer_Timer(P.Duration$(0, t1 - t2, 0), _this.get$_timerDidFire());
+ else if (_this._datetime._core$_value > t1) {
+ _this._cancelTimer$0();
+ _this._timer = P.Timer_Timer(P.Duration$(0, t1 - t2, 0), _this.get$_timerDidFire());
+ }
+ _this._datetime = value;
+ },
+ _cancelTimer$0: function() {
+ var t1 = this._timer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ this._timer = null;
+ },
+ _timerDidFire$0: function() {
+ var t2, _this = this,
+ now = _this._timestampFunction.call$0(),
+ t1 = _this._datetime;
+ t1.toString;
+ t2 = now._core$_value;
+ t1 = t1._core$_value;
+ if (t2 >= t1) {
+ _this._timer = null;
+ _this.callback$0();
+ } else
+ _this._timer = P.Timer_Timer(P.Duration$(0, t1 - t2, 0), _this.get$_timerDidFire());
+ },
+ callback$0: function() {
+ return this.get$callback().call$0();
+ }
+ };
+ H.AssetManager.prototype = {
+ get$_baseUrl: function() {
+ var t1 = new H.WhereTypeIterable(new W._FrozenElementList(window.document.querySelectorAll("meta"), type$._FrozenElementList_Element), type$.WhereTypeIterable_nullable_MetaElement).firstWhere$2$orElse(0, new H.AssetManager__baseUrl_closure(), new H.AssetManager__baseUrl_closure0());
+ return t1 == null ? null : t1.content;
+ },
+ getAssetUrl$1: function(asset) {
+ var t1;
+ if (P.Uri_parse(asset).get$hasScheme())
+ return P._Uri__uriEncode(C.List_gnE, asset, C.C_Utf8Codec, false);
+ t1 = this.get$_baseUrl();
+ if (t1 == null)
+ t1 = "";
+ return P._Uri__uriEncode(C.List_gnE, t1 + ("assets/" + H.S(asset)), C.C_Utf8Codec, false);
+ },
+ load$1: function(_, asset) {
+ return this.load$body$AssetManager(_, asset);
+ },
+ load$body$AssetManager: function(_, asset) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.ByteData),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], $async$self = this, request, response, e, target, t1, exception, url, $async$exception;
+ var $async$load$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ url = $async$self.getAssetUrl$1(asset);
+ $async$handler = 4;
+ $async$goto = 7;
+ return P._asyncAwait(W.HttpRequest_request(url, "arraybuffer"), $async$load$1);
+ case 7:
+ // returning from await.
+ request = $async$result;
+ response = W._convertNativeToDart_XHR_Response(request.response);
+ t1 = response;
+ t1.toString;
+ t1 = H.NativeByteData_NativeByteData$view(t1, 0, null);
+ $async$returnValue = t1;
+ // goto return
+ $async$goto = 1;
+ break;
+ $async$handler = 2;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 4:
+ // catch
+ $async$handler = 3;
+ $async$exception = $async$currentError;
+ t1 = H.unwrapException($async$exception);
+ if (type$.ProgressEvent._is(t1)) {
+ e = t1;
+ target = W._convertNativeToDart_EventTarget(e.target);
+ if (type$.HttpRequest._is(target)) {
+ if (target.status === 404 && asset === "AssetManifest.json") {
+ t1 = "Asset manifest does not exist at `" + H.S(url) + "` \u2013 ignoring.";
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ $async$returnValue = H.NativeByteData_NativeByteData$view(new Uint8Array(H._ensureNativeList(C.C_Utf8Codec.get$encoder().convert$1("{}"))).buffer, 0, null);
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ t1 = target.status;
+ t1.toString;
+ throw H.wrapException(new H.AssetManagerException(url, t1));
+ }
+ t1 = "Caught ProgressEvent with target: " + H.S(target);
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ throw $async$exception;
+ } else
+ throw $async$exception;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 3:
+ // uncaught
+ // goto rethrow
+ $async$goto = 2;
+ break;
+ case 6:
+ // after finally
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$load$1, $async$completer);
+ }
+ };
+ H.AssetManager__baseUrl_closure.prototype = {
+ call$1: function(e) {
+ return J.get$name$x(e) === "assetBase";
+ },
+ $signature: 55
+ };
+ H.AssetManager__baseUrl_closure0.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ H.AssetManagerException.prototype = {
+ toString$0: function(_) {
+ return 'Failed to load asset at "' + H.S(this.url) + '" (' + H.S(this.httpStatus) + ")";
+ },
+ $isException: 1
+ };
+ H.BitmapCanvas.prototype = {
+ set$bounds: function(_, newValue) {
+ var newCanvasPositionX, newCanvasPositionY, _this = this;
+ _this._bounds = newValue;
+ newCanvasPositionX = J.floor$0$n(newValue.left) - 1;
+ newCanvasPositionY = J.floor$0$n(_this._bounds.top) - 1;
+ if (_this._canvasPositionX !== newCanvasPositionX || _this._canvasPositionY !== newCanvasPositionY) {
+ _this._canvasPositionX = newCanvasPositionX;
+ _this._canvasPositionY = newCanvasPositionY;
+ _this._updateRootElementTransform$0();
+ }
+ },
+ _updateRootElementTransform$0: function() {
+ var t1 = this.rootElement.style,
+ t2 = "translate(" + this._canvasPositionX + "px, " + this._canvasPositionY + "px)";
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), t2, "");
+ },
+ _setupInitialTransform$0: function() {
+ var _this = this,
+ t1 = _this._bounds,
+ t2 = t1.left,
+ t3 = _this._canvasPositionX;
+ t1 = t1.top;
+ _this._canvasPool.translate$2(0, -t2 + (t2 - 1 - t3) + 1, -t1 + (t1 - 1 - _this._canvasPositionY) + 1);
+ },
+ doesFitBounds$2: function(newBounds, newDensity) {
+ return this._widthInBitmapPixels >= H.BitmapCanvas__widthToPhysical(newBounds.right - newBounds.left) && this._heightInBitmapPixels >= H.BitmapCanvas__heightToPhysical(newBounds.bottom - newBounds.top) && this._density === newDensity;
+ },
+ clear$0: function(_) {
+ var t1, len, t2, i, child, t3, _this = this;
+ _this._contains3dTransform = false;
+ _this._canvasPool.clear$0(0);
+ t1 = _this.__engine$_children;
+ len = t1.length;
+ for (t2 = _this.rootElement, i = 0; i < len; ++i) {
+ child = t1[i];
+ if (child.parentElement === t2) {
+ t3 = child.parentNode;
+ if (t3 != null)
+ t3.removeChild(child);
+ }
+ }
+ C.JSArray_methods.set$length(t1, 0);
+ _this._cachedLastStyle = null;
+ _this._setupInitialTransform$0();
+ },
+ save$0: function(_) {
+ var t1 = this._canvasPool;
+ t1.super$_SaveStackTracking$save(0);
+ if (t1.__engine$_canvas != null) {
+ t1.get$context(t1).save();
+ ++t1._saveContextCount;
+ }
+ return this._saveCount++;
+ },
+ restore$0: function(_) {
+ var t1 = this._canvasPool;
+ t1.super$_SaveStackTracking$restore(0);
+ if (t1.__engine$_canvas != null) {
+ t1.get$context(t1).restore();
+ t1.get$contextHandle().reset$0(0);
+ --t1._saveContextCount;
+ }
+ --this._saveCount;
+ this._cachedLastStyle = null;
+ },
+ translate$2: function(_, dx, dy) {
+ this._canvasPool.translate$2(0, dx, dy);
+ },
+ scale$2: function(_, sx, sy) {
+ var t1 = this._canvasPool;
+ t1.super$_SaveStackTracking$scale(0, sx, sy);
+ if (t1.__engine$_canvas != null)
+ t1.get$context(t1).scale(sx, sy);
+ },
+ rotate$1: function(_, radians) {
+ var t1 = this._canvasPool;
+ t1.super$_SaveStackTracking$rotate(0, radians);
+ if (t1.__engine$_canvas != null)
+ t1.get$context(t1).rotate(radians);
+ },
+ transform$1: function(_, matrix4) {
+ var t1;
+ if (H.transformKindOf(matrix4) === C.TransformKind_2)
+ this._contains3dTransform = true;
+ t1 = this._canvasPool;
+ t1.super$_SaveStackTracking$transform(0, matrix4);
+ if (t1.__engine$_canvas != null)
+ t1.get$context(t1).transform(matrix4[0], matrix4[1], matrix4[4], matrix4[5], matrix4[12], matrix4[13]);
+ },
+ clipRect$2: function(_, rect, op) {
+ var path, t2,
+ t1 = this._canvasPool;
+ if (op === C.ClipOp_0) {
+ path = H.SurfacePath$();
+ path._fillType = C.PathFillType_1;
+ t2 = this._bounds;
+ path.addRectWithDirection$3(new P.Rect(0, 0, 0 + (t2.right - t2.left), 0 + (t2.bottom - t2.top)), 0, 0);
+ path.addRectWithDirection$3(rect, 0, 0);
+ t1.clipPath$1(0, path);
+ } else {
+ t1.super$_SaveStackTracking$clipRect(0, rect);
+ if (t1.__engine$_canvas != null)
+ t1.__engine$_clipRect$2(t1.get$context(t1), rect);
+ }
+ },
+ clipRRect$1: function(_, rrect) {
+ var t1 = this._canvasPool;
+ t1.super$_SaveStackTracking$clipRRect(0, rrect);
+ if (t1.__engine$_canvas != null)
+ t1._clipRRect$2(t1.get$context(t1), rrect);
+ },
+ clipPath$1: function(_, path) {
+ this._canvasPool.clipPath$1(0, path);
+ },
+ drawLine$3: function(_, p1, p2, paint) {
+ var path, shaderBounds, t1, ctx, _this = this;
+ if (!_this._preserveImageData && _this._contains3dTransform) {
+ path = H.SurfacePath$();
+ path.moveTo$2(0, p1._dx, p1._dy);
+ path.lineTo$2(0, p2._dx, p2._dy);
+ _this.drawPath$2(0, path, paint);
+ } else {
+ shaderBounds = paint.shader != null ? P.Rect$fromPoints(p1, p2) : null;
+ t1 = _this._canvasPool;
+ t1.get$contextHandle().setUpPaint$2(paint, shaderBounds);
+ ctx = t1.get$context(t1);
+ ctx.beginPath();
+ ctx.moveTo(p1._dx, p1._dy);
+ ctx.lineTo(p2._dx, p2._dy);
+ ctx.stroke();
+ t1.get$contextHandle().tearDownPaint$0();
+ }
+ },
+ drawRect$2: function(_, rect, paint) {
+ var element, t3, t4, t5, _this = this,
+ t1 = !_this._preserveImageData && _this._contains3dTransform,
+ t2 = _this._canvasPool;
+ if (t1) {
+ element = H._buildDrawRectElement(rect, paint, "draw-rect", t2._currentTransform);
+ t1 = rect.left;
+ t2 = rect.right;
+ t2 = Math.min(H.checkNum(t1), H.checkNum(t2));
+ t1 = rect.top;
+ t3 = rect.bottom;
+ _this._drawElement$3(element, new P.Offset(t2, Math.min(H.checkNum(t1), H.checkNum(t3))), paint);
+ } else {
+ t2.get$contextHandle().setUpPaint$2(paint, rect);
+ t1 = paint.style;
+ t2.get$context(t2).beginPath();
+ t3 = t2.get$context(t2);
+ t4 = rect.left;
+ t5 = rect.top;
+ t3.rect(t4, t5, rect.right - t4, rect.bottom - t5);
+ t2.get$contextHandle().paint$1(t1);
+ t2.get$contextHandle().tearDownPaint$0();
+ }
+ },
+ _drawElement$3: function(element, offset, paint) {
+ var clipElements, t3, _i, clipElement, blendMode, _this = this,
+ t1 = _this._canvasPool,
+ t2 = t1._clipStack;
+ if (t2 != null) {
+ clipElements = H._clipContent(t2, element, C.Offset_0_0, H.transformWithOffset(t1._currentTransform, offset));
+ for (t1 = clipElements.length, t2 = _this.rootElement, t3 = _this.__engine$_children, _i = 0; _i < clipElements.length; clipElements.length === t1 || (0, H.throwConcurrentModificationError)(clipElements), ++_i) {
+ clipElement = clipElements[_i];
+ t2.appendChild(clipElement);
+ t3.push(clipElement);
+ }
+ } else {
+ _this.rootElement.appendChild(element);
+ _this.__engine$_children.push(element);
+ }
+ blendMode = paint.blendMode;
+ if (blendMode != null) {
+ t1 = element.style;
+ t2 = H._stringForBlendMode(blendMode);
+ if (t2 == null)
+ t2 = "";
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "mix-blend-mode"), t2, "");
+ }
+ },
+ drawRRect$2: function(_, rrect, paint) {
+ var element, left, right, $top, bottom, t0, trRadiusX, tlRadiusX, trRadiusY, tlRadiusY, blRadiusX, brRadiusX, blRadiusY, brRadiusY, _this = this,
+ t1 = rrect.left,
+ t2 = rrect.top,
+ t3 = rrect.right,
+ t4 = rrect.bottom,
+ t5 = !_this._preserveImageData && _this._contains3dTransform,
+ t6 = _this._canvasPool;
+ if (t5) {
+ element = H._buildDrawRectElement(new P.Rect(t1, t2, t3, t4), paint, "draw-rrect", t6._currentTransform);
+ H._applyRRectBorderRadius(element.style, rrect);
+ _this._drawElement$3(element, new P.Offset(Math.min(H.checkNum(t1), H.checkNum(t3)), Math.min(H.checkNum(t2), H.checkNum(t4))), paint);
+ } else {
+ t6.get$contextHandle().setUpPaint$2(paint, new P.Rect(t1, t2, t3, t4));
+ t1 = paint.style;
+ t2 = t6.get$context(t6);
+ rrect = rrect.scaleRadii$0();
+ left = rrect.left;
+ right = rrect.right;
+ $top = rrect.top;
+ bottom = rrect.bottom;
+ if (left > right) {
+ t0 = right;
+ right = left;
+ left = t0;
+ }
+ if ($top > bottom) {
+ t0 = bottom;
+ bottom = $top;
+ $top = t0;
+ }
+ trRadiusX = Math.abs(rrect.trRadiusX);
+ tlRadiusX = Math.abs(rrect.tlRadiusX);
+ trRadiusY = Math.abs(rrect.trRadiusY);
+ tlRadiusY = Math.abs(rrect.tlRadiusY);
+ blRadiusX = Math.abs(rrect.blRadiusX);
+ brRadiusX = Math.abs(rrect.brRadiusX);
+ blRadiusY = Math.abs(rrect.blRadiusY);
+ brRadiusY = Math.abs(rrect.brRadiusY);
+ t2.beginPath();
+ t2.moveTo(left + trRadiusX, $top);
+ t3 = right - trRadiusX;
+ t2.lineTo(t3, $top);
+ H.DomRenderer_ellipse(t2, t3, $top + trRadiusY, trRadiusX, trRadiusY, 0, 4.71238898038469, 6.283185307179586, false);
+ t3 = bottom - brRadiusY;
+ t2.lineTo(right, t3);
+ H.DomRenderer_ellipse(t2, right - brRadiusX, t3, brRadiusX, brRadiusY, 0, 0, 1.5707963267948966, false);
+ t3 = left + blRadiusX;
+ t2.lineTo(t3, bottom);
+ H.DomRenderer_ellipse(t2, t3, bottom - blRadiusY, blRadiusX, blRadiusY, 0, 1.5707963267948966, 3.141592653589793, false);
+ t3 = $top + tlRadiusY;
+ t2.lineTo(left, t3);
+ H.DomRenderer_ellipse(t2, left + tlRadiusX, t3, tlRadiusX, tlRadiusY, 0, 3.141592653589793, 4.71238898038469, false);
+ t6.get$contextHandle().paint$1(t1);
+ t6.get$contextHandle().tearDownPaint$0();
+ }
+ },
+ drawCircle$3: function(_, c, radius, paint) {
+ var element, t1, t2, _this = this,
+ rect = P.Rect$fromCircle(c, radius);
+ if (!_this._preserveImageData && _this._contains3dTransform) {
+ element = H._buildDrawRectElement(rect, paint, "draw-circle", _this._canvasPool._currentTransform);
+ _this._drawElement$3(element, new P.Offset(Math.min(H.checkNum(rect.left), H.checkNum(rect.right)), Math.min(H.checkNum(rect.top), H.checkNum(rect.bottom))), paint);
+ t1 = element.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "border-radius"), "50%", "");
+ } else {
+ t1 = paint.shader != null ? P.Rect$fromCircle(c, radius) : null;
+ t2 = _this._canvasPool;
+ t2.get$contextHandle().setUpPaint$2(paint, t1);
+ t1 = paint.style;
+ t2.get$context(t2).beginPath();
+ H.DomRenderer_ellipse(t2.get$context(t2), c._dx, c._dy, radius, radius, 0, 0, 6.283185307179586, false);
+ t2.get$contextHandle().paint$1(t1);
+ t2.get$contextHandle().tearDownPaint$0();
+ }
+ },
+ drawPath$2: function(_, path, paint) {
+ var t1, transform, pathBounds, t2, t3, sb, svgElm, style, t4, _this = this;
+ if (!_this._preserveImageData && _this._contains3dTransform) {
+ t1 = _this._canvasPool;
+ transform = t1._currentTransform;
+ type$.SurfacePath._as(path);
+ pathBounds = path.getBounds$0(0);
+ t2 = H.S(pathBounds.right);
+ t3 = H.S(pathBounds.bottom);
+ sb = new P.StringBuffer("");
+ t3 = '';
+ sb._contents = t3;
+ t3 = sb._contents = t3 + "';
+ t2 = sb._contents = t2 + "";
+ svgElm = W.Element_Element$html(t2.charCodeAt(0) == 0 ? t2 : t2, new H._NullTreeSanitizer(), null);
+ if (t1._clipStack == null) {
+ style = svgElm.style;
+ style.position = "absolute";
+ if (!transform.isIdentity$0(0)) {
+ t1 = H.float64ListToCssTransform(transform.__engine$_m4storage);
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "transform"), t1, "");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, "transform-origin"), "0 0 0", "");
+ }
+ }
+ _this._drawElement$3(svgElm, new P.Offset(0, 0), paint);
+ } else {
+ t1 = paint.shader != null ? path.getBounds$0(0) : null;
+ t2 = _this._canvasPool;
+ t2.get$contextHandle().setUpPaint$2(paint, t1);
+ t1 = paint.style;
+ t3 = t2.get$context(t2);
+ type$.SurfacePath._as(path);
+ t2._runPath$2(t3, path);
+ t3 = t2.get$contextHandle();
+ t4 = path._fillType;
+ t3.toString;
+ if (t1 === C.PaintingStyle_1)
+ t3.context.stroke();
+ else {
+ t1 = t3.context;
+ if (t4 === C.PathFillType_0)
+ t1.fill();
+ else
+ t1.fill("evenodd");
+ }
+ t2.get$contextHandle().tearDownPaint$0();
+ }
+ },
+ drawShadow$4: function(_, path, color, elevation, transparentOccluder) {
+ var t2, solidColor, t3, t4, t5,
+ t1 = this._canvasPool,
+ shadow = H.computeShadow(path.getBounds$0(0), elevation);
+ if (shadow != null) {
+ t2 = H.toShadowColor(color).value;
+ solidColor = H.colorComponentsToCssString(t2 >>> 16 & 255, t2 >>> 8 & 255, t2 & 255, 255);
+ t1.get$context(t1).save();
+ t1.get$context(t1).globalAlpha = (t2 >>> 24 & 255) / 255;
+ if (transparentOccluder) {
+ t2 = H._browserEngine();
+ t2 = t2 !== C.BrowserEngine_1;
+ } else
+ t2 = false;
+ t3 = shadow.offset;
+ t4 = shadow.blurWidth;
+ t5 = t3._dx;
+ t3 = t3._dy;
+ if (t2) {
+ t1.get$context(t1).translate(t5, t3);
+ t1.get$context(t1).filter = H._maskFilterToCanvasFilter(new P.MaskFilter(C.BlurStyle_0, t4));
+ t1.get$context(t1).strokeStyle = "";
+ t1.get$context(t1).fillStyle = solidColor;
+ } else {
+ t1.get$context(t1).filter = "none";
+ t1.get$context(t1).strokeStyle = "";
+ t1.get$context(t1).fillStyle = solidColor;
+ t1.get$context(t1).shadowBlur = t4;
+ t1.get$context(t1).shadowColor = solidColor;
+ t1.get$context(t1).shadowOffsetX = t5;
+ t1.get$context(t1).shadowOffsetY = t3;
+ }
+ t1._runPath$2(t1.get$context(t1), path);
+ t1.get$context(t1).fill();
+ t1.get$context(t1).restore();
+ }
+ },
+ drawParagraph$2: function(_, paragraph, offset) {
+ var paragraphElement, t1, t2, t3, clipElements, t4, _i, clipElement, _this = this;
+ if (paragraph.get$drawOnCanvas() && !_this._childOverdraw) {
+ paragraph.paint$2(_this, offset);
+ return;
+ }
+ paragraphElement = H._drawParagraphElement(paragraph, offset, null);
+ t1 = _this._canvasPool;
+ t2 = t1._clipStack;
+ t3 = t1._currentTransform;
+ if (t2 != null) {
+ clipElements = H._clipContent(t2, paragraphElement, offset, t3);
+ for (t2 = clipElements.length, t3 = _this.rootElement, t4 = _this.__engine$_children, _i = 0; _i < clipElements.length; clipElements.length === t2 || (0, H.throwConcurrentModificationError)(clipElements), ++_i) {
+ clipElement = clipElements[_i];
+ t3.appendChild(clipElement);
+ t4.push(clipElement);
+ }
+ } else {
+ H.setElementTransform(paragraphElement, H.transformWithOffset(t3, offset).__engine$_m4storage);
+ _this.rootElement.appendChild(paragraphElement);
+ }
+ _this.__engine$_children.push(paragraphElement);
+ t2 = paragraphElement.style;
+ t2.left = "0px";
+ t2.top = "0px";
+ if (t1.__engine$_canvas != null) {
+ t1._restoreContextSave$0();
+ t1._contextHandle.reset$0(0);
+ t2 = t1._activeCanvasList;
+ if (t2 == null)
+ t2 = t1._activeCanvasList = H.setRuntimeTypeInfo([], type$.JSArray_CanvasElement);
+ t3 = t1.__engine$_canvas;
+ t3.toString;
+ t2.push(t3);
+ t1._contextHandle = t1.__engine$_context = t1.__engine$_canvas = null;
+ }
+ _this._childOverdraw = true;
+ },
+ endOfPaint$0: function() {
+ var t1, t2, t3, t4, paintOrderElement, t5, t6, _this = this;
+ _this._canvasPool.endOfPaint$0();
+ t1 = _this._elementCache;
+ if (t1 != null)
+ t1.commitFrame$0();
+ if (_this._contains3dTransform) {
+ t1 = H._browserEngine();
+ t1 = t1 === C.BrowserEngine_1;
+ } else
+ t1 = false;
+ if (t1)
+ for (t1 = _this.rootElement, t2 = J.get$children$x(t1), t2 = t2.get$iterator(t2), t3 = _this.__engine$_children; t2.moveNext$0();) {
+ t4 = t2.__interceptors$_current;
+ paintOrderElement = document.createElement("div");
+ t5 = paintOrderElement.style;
+ t5.toString;
+ t6 = C.CssStyleDeclaration_methods._browserPropertyName$1(t5, "transform");
+ t5.setProperty(t6, "translate3d(0,0,0)", "");
+ paintOrderElement.appendChild(t4);
+ t1.appendChild(paintOrderElement);
+ t3.push(paintOrderElement);
+ }
+ t1 = _this.rootElement.firstChild;
+ t2 = type$.HtmlElement;
+ if (t2._is(t1) && t1.tagName.toLowerCase() === "canvas") {
+ t1 = t2._as(t1).style;
+ t1.zIndex = "-1";
+ }
+ },
+ get$rootElement: function(receiver) {
+ return this.rootElement;
+ }
+ };
+ H.BrowserEngine.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.OperatingSystem.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H._CanvasPool.prototype = {
+ get$context: function(_) {
+ var t1,
+ ctx = this.__engine$_context;
+ if (ctx == null) {
+ this._createCanvas$0();
+ t1 = this.__engine$_context;
+ t1.toString;
+ ctx = t1;
+ }
+ return ctx;
+ },
+ get$contextHandle: function() {
+ if (this.__engine$_canvas == null)
+ this._createCanvas$0();
+ var t1 = this._contextHandle;
+ t1.toString;
+ return t1;
+ },
+ _createCanvas$0: function() {
+ var canvas0, requiresClearRect, t2, t3, t4, t5, exception, ctx, _this = this,
+ reused = false,
+ canvas = null,
+ t1 = _this.__engine$_canvas;
+ if (t1 != null) {
+ t1.width = 0;
+ _this.__engine$_canvas.height = 0;
+ _this.__engine$_canvas = null;
+ }
+ t1 = _this._reusablePool;
+ if (t1 != null && t1.length !== 0) {
+ t1.toString;
+ canvas0 = C.JSArray_methods.removeAt$1(t1, 0);
+ _this.__engine$_canvas = canvas0;
+ canvas = canvas0;
+ reused = true;
+ requiresClearRect = true;
+ } else {
+ t1 = _this._widthInBitmapPixels;
+ t2 = H.EnginePlatformDispatcher_browserDevicePixelRatio();
+ t3 = _this._heightInBitmapPixels;
+ t4 = H.EnginePlatformDispatcher_browserDevicePixelRatio();
+ canvas = _this._allocCanvas$2(t1, t3);
+ t5 = canvas;
+ _this.__engine$_canvas = t5;
+ if (t5 == null) {
+ H._reduceCanvasMemoryUsage();
+ canvas = _this._allocCanvas$2(t1, t3);
+ }
+ t5 = canvas.style;
+ t5.position = "absolute";
+ t1 = H.S(t1 / t2) + "px";
+ t5.width = t1;
+ t1 = H.S(t3 / t4) + "px";
+ t5.height = t1;
+ requiresClearRect = false;
+ }
+ t1 = _this._rootElement;
+ t2 = t1.lastChild;
+ t3 = canvas;
+ if (t2 == null ? t3 != null : t2 !== t3)
+ t1.appendChild(canvas);
+ try {
+ if (reused)
+ canvas.style.removeProperty("z-index");
+ _this.__engine$_context = canvas.getContext("2d");
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ t1 = _this.__engine$_context;
+ if (t1 == null) {
+ H._reduceCanvasMemoryUsage();
+ t1 = _this.__engine$_context = canvas.getContext("2d");
+ }
+ if (t1 == null) {
+ t1 = _this.__engine$_canvas;
+ if (t1 != null)
+ t1.width = 0;
+ t1 = _this.__engine$_canvas;
+ if (t1 != null)
+ t1.height = 0;
+ _this.__engine$_canvas = null;
+ return;
+ }
+ t2 = _this._density;
+ _this._contextHandle = new H.ContextStateHandle(t1, _this, t2, C.BlendMode_3, C.StrokeCap_0, C.StrokeJoin_0);
+ ctx = _this.get$context(_this);
+ ctx.save();
+ ++_this._saveContextCount;
+ ctx.setTransform(1, 0, 0, 1, 0, 0);
+ if (requiresClearRect)
+ ctx.clearRect(0, 0, _this._widthInBitmapPixels * t2, _this._heightInBitmapPixels * t2);
+ ctx.scale(H.EnginePlatformDispatcher_browserDevicePixelRatio() * t2, H.EnginePlatformDispatcher_browserDevicePixelRatio() * t2);
+ _this._replayClipStack$0();
+ },
+ _allocCanvas$2: function(width, height) {
+ var exception,
+ t1 = document,
+ canvas = t1.createElement.apply(t1, ["CANVAS"]);
+ if (canvas != null) {
+ try {
+ t1 = this._density;
+ J.set$width$x(canvas, C.JSNumber_methods.ceil$0(width * t1));
+ J.set$height$x(canvas, C.JSNumber_methods.ceil$0(height * t1));
+ } catch (exception) {
+ H.unwrapException(exception);
+ return null;
+ }
+ return type$.CanvasElement._as(canvas);
+ }
+ return null;
+ },
+ clear$0: function(_) {
+ var ctx, e, exception, t1, t2, _this = this;
+ _this.super$_SaveStackTracking$clear(0);
+ if (_this.__engine$_canvas != null) {
+ ctx = _this.__engine$_context;
+ if (ctx != null)
+ try {
+ ctx.font = "";
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ if (!J.$eq$(e.name, "NS_ERROR_FAILURE"))
+ throw exception;
+ }
+ }
+ if (_this.__engine$_canvas != null) {
+ _this._restoreContextSave$0();
+ _this._contextHandle.reset$0(0);
+ t1 = _this._activeCanvasList;
+ if (t1 == null)
+ t1 = _this._activeCanvasList = H.setRuntimeTypeInfo([], type$.JSArray_CanvasElement);
+ t2 = _this.__engine$_canvas;
+ t2.toString;
+ t1.push(t2);
+ _this._contextHandle = _this.__engine$_context = null;
+ }
+ _this._reusablePool = _this._activeCanvasList;
+ _this._contextHandle = _this.__engine$_context = _this.__engine$_canvas = _this._activeCanvasList = null;
+ },
+ _replaySingleSaveEntry$4: function(clipDepth, prevTransform, transform, clipStack) {
+ var clipCount, t1, t2, clipEntry, clipTimeTransform, t3, t4, ratio, t5, path, _this = this,
+ ctx = _this.get$context(_this);
+ if (clipStack != null)
+ for (clipCount = clipStack.length, t1 = _this._density, t2 = type$.SurfacePath; clipDepth < clipCount; ++clipDepth) {
+ clipEntry = clipStack[clipDepth];
+ clipTimeTransform = clipEntry.currentTransform;
+ t3 = clipTimeTransform.__engine$_m4storage;
+ t4 = prevTransform.__engine$_m4storage;
+ if (t3[0] !== t4[0] || t3[1] !== t4[1] || t3[4] !== t4[4] || t3[5] !== t4[5] || t3[12] !== t4[12] || t3[13] !== t4[13]) {
+ ratio = window.devicePixelRatio;
+ ratio = (ratio == null || ratio === 0 ? 1 : ratio) * t1;
+ ctx.setTransform(ratio, 0, 0, ratio, 0, 0);
+ ctx.transform(t3[0], t3[1], t3[4], t3[5], t3[12], t3[13]);
+ prevTransform = clipTimeTransform;
+ }
+ t3 = clipEntry.rect;
+ if (t3 != null) {
+ ctx.beginPath();
+ t4 = t3.left;
+ t5 = t3.top;
+ ctx.rect(t4, t5, t3.right - t4, t3.bottom - t5);
+ ctx.clip();
+ } else {
+ t3 = clipEntry.rrect;
+ if (t3 != null) {
+ path = P.Path_Path();
+ path.addRRect$1(0, t3);
+ _this._runPath$2(ctx, t2._as(path));
+ ctx.clip();
+ } else {
+ t3 = clipEntry.path;
+ if (t3 != null) {
+ _this._runPath$2(ctx, t3);
+ if (t3._fillType === C.PathFillType_0)
+ ctx.clip();
+ else
+ ctx.clip("evenodd");
+ }
+ }
+ }
+ }
+ t1 = transform.__engine$_m4storage;
+ t2 = prevTransform.__engine$_m4storage;
+ if (t1[0] !== t2[0] || t1[1] !== t2[1] || t1[4] !== t2[4] || t1[5] !== t2[5] || t1[12] !== t2[12] || t1[13] !== t2[13]) {
+ ratio = H.EnginePlatformDispatcher_browserDevicePixelRatio() * _this._density;
+ ctx.setTransform(ratio, 0, 0, ratio, 0, 0);
+ ctx.transform(t1[0], t1[1], t1[4], t1[5], t1[12], t1[13]);
+ }
+ return clipDepth;
+ },
+ _replayClipStack$0: function() {
+ var t1, len, clipDepth, saveStackIndex, saveEntry, prevTransform0, _this = this,
+ ctx = _this.get$context(_this),
+ prevTransform = new H.Matrix40(new Float32Array(16));
+ prevTransform.setIdentity$0();
+ for (t1 = _this._saveStack, len = t1.length, clipDepth = 0, saveStackIndex = 0; saveStackIndex < len; ++saveStackIndex, prevTransform = prevTransform0) {
+ saveEntry = t1[saveStackIndex];
+ prevTransform0 = saveEntry.transform;
+ clipDepth = _this._replaySingleSaveEntry$4(clipDepth, prevTransform, prevTransform0, saveEntry.clipStack);
+ ctx.save();
+ ++_this._saveContextCount;
+ }
+ _this._replaySingleSaveEntry$4(clipDepth, prevTransform, _this._currentTransform, _this._clipStack);
+ },
+ endOfPaint$0: function() {
+ var t2, _i, e, t3,
+ t1 = this._reusablePool;
+ if (t1 != null) {
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ e = t1[_i];
+ if (!$.___browserEngine_isSet) {
+ t3 = H._detectBrowserEngine();
+ if ($.___browserEngine_isSet)
+ H.throwExpression(H.LateError$fieldADI("_browserEngine"));
+ $.___browserEngine = t3;
+ $.___browserEngine_isSet = true;
+ }
+ t3 = $.___browserEngine;
+ if (t3 === C.BrowserEngine_1) {
+ e.height = 0;
+ e.width = 0;
+ }
+ t3 = e.parentNode;
+ if (t3 != null)
+ t3.removeChild(e);
+ }
+ this._reusablePool = null;
+ }
+ this._restoreContextSave$0();
+ },
+ _restoreContextSave$0: function() {
+ for (; this._saveContextCount !== 0;) {
+ this.__engine$_context.restore();
+ --this._saveContextCount;
+ }
+ },
+ translate$2: function(_, dx, dy) {
+ var _this = this;
+ _this.super$_SaveStackTracking$translate(0, dx, dy);
+ if (_this.__engine$_canvas != null)
+ _this.get$context(_this).translate(dx, dy);
+ },
+ __engine$_clipRect$2: function(ctx, rect) {
+ var t1, t2;
+ ctx.beginPath();
+ t1 = rect.left;
+ t2 = rect.top;
+ ctx.rect(t1, t2, rect.right - t1, rect.bottom - t2);
+ ctx.clip();
+ },
+ _clipRRect$2: function(ctx, rrect) {
+ var path = P.Path_Path();
+ path.addRRect$1(0, rrect);
+ this._runPath$2(ctx, type$.SurfacePath._as(path));
+ ctx.clip();
+ },
+ clipPath$1: function(_, path) {
+ var ctx, _this = this;
+ _this.super$_SaveStackTracking$clipPath(0, path);
+ if (_this.__engine$_canvas != null) {
+ ctx = _this.get$context(_this);
+ _this._runPath$2(ctx, path);
+ if (path._fillType === C.PathFillType_0)
+ ctx.clip();
+ else
+ ctx.clip("evenodd");
+ }
+ },
+ _runPath$2: function(ctx, path) {
+ var p, t1, iter, verb, w, points, len, i, t2, t3;
+ ctx.beginPath();
+ p = $.$get$_CanvasPool__runBuffer();
+ t1 = path.pathRef;
+ iter = new H.PathRefIterator(t1);
+ iter.PathRefIterator$1(t1);
+ for (; verb = iter.next$1(0, p), verb !== 6;)
+ switch (verb) {
+ case 0:
+ ctx.moveTo(p[0], p[1]);
+ break;
+ case 1:
+ ctx.lineTo(p[2], p[3]);
+ break;
+ case 4:
+ ctx.bezierCurveTo(p[2], p[3], p[4], p[5], p[6], p[7]);
+ break;
+ case 2:
+ ctx.quadraticCurveTo(p[2], p[3], p[4], p[5]);
+ break;
+ case 3:
+ w = t1._conicWeights[iter._conicWeightIndex];
+ points = new H.Conic(p[0], p[1], p[2], p[3], p[4], p[5], w).toQuads$0();
+ len = points.length;
+ for (i = 1; i < len; i += 2) {
+ t2 = points[i];
+ t3 = points[i + 1];
+ ctx.quadraticCurveTo(t2._dx, t2._dy, t3._dx, t3._dy);
+ }
+ break;
+ case 5:
+ ctx.closePath();
+ break;
+ default:
+ throw H.wrapException(P.UnimplementedError$("Unknown path verb " + verb));
+ }
+ },
+ dispose$0: function(_) {
+ var t1 = H._browserEngine();
+ if (t1 === C.BrowserEngine_1 && this.__engine$_canvas != null) {
+ t1 = this.__engine$_canvas;
+ t1.height = 0;
+ t1.width = 0;
+ }
+ this._clearActiveCanvasList$0();
+ },
+ _clearActiveCanvasList$0: function() {
+ var t2, _i, c, t3,
+ t1 = this._activeCanvasList;
+ if (t1 != null)
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ c = t1[_i];
+ if (!$.___browserEngine_isSet) {
+ t3 = H._detectBrowserEngine();
+ if ($.___browserEngine_isSet)
+ H.throwExpression(H.LateError$fieldADI("_browserEngine"));
+ $.___browserEngine = t3;
+ $.___browserEngine_isSet = true;
+ }
+ t3 = $.___browserEngine;
+ if (t3 === C.BrowserEngine_1) {
+ c.height = 0;
+ c.width = 0;
+ }
+ t3 = c.parentNode;
+ if (t3 != null)
+ t3.removeChild(c);
+ }
+ this._activeCanvasList = null;
+ }
+ };
+ H.ContextStateHandle.prototype = {
+ set$fillStyle: function(_, colorOrGradient) {
+ var t1 = this._currentFillStyle;
+ if (colorOrGradient == null ? t1 != null : colorOrGradient !== t1) {
+ this._currentFillStyle = colorOrGradient;
+ this.context.fillStyle = colorOrGradient;
+ }
+ },
+ set$strokeStyle: function(_, colorOrGradient) {
+ var t1 = this._currentStrokeStyle;
+ if (colorOrGradient == null ? t1 != null : colorOrGradient !== t1) {
+ this._currentStrokeStyle = colorOrGradient;
+ this.context.strokeStyle = colorOrGradient;
+ }
+ },
+ setUpPaint$2: function(paint, shaderBounds) {
+ var t1, t2, paintStyle, colorString, maskFilter, tempVector, shadowOffsetX, shadowOffsetY, _this = this;
+ _this._lastUsedPaint = paint;
+ t1 = paint.strokeWidth;
+ if (t1 == null)
+ t1 = 1;
+ if (t1 !== _this._currentLineWidth) {
+ _this._currentLineWidth = t1;
+ _this.context.lineWidth = t1;
+ }
+ t1 = paint.blendMode;
+ if (t1 != _this._currentBlendMode) {
+ _this._currentBlendMode = t1;
+ t1 = H._stringForBlendMode(t1);
+ if (t1 == null)
+ t1 = "source-over";
+ _this.context.globalCompositeOperation = t1;
+ }
+ if (C.StrokeCap_0 !== _this._currentStrokeCap) {
+ _this._currentStrokeCap = C.StrokeCap_0;
+ t1 = H._stringForStrokeCap(C.StrokeCap_0);
+ t1.toString;
+ _this.context.lineCap = t1;
+ }
+ if (C.StrokeJoin_0 !== _this._currentStrokeJoin) {
+ _this._currentStrokeJoin = C.StrokeJoin_0;
+ _this.context.lineJoin = H._stringForStrokeJoin(C.StrokeJoin_0);
+ }
+ t1 = paint.shader;
+ if (t1 != null) {
+ t2 = _this._canvasPool;
+ paintStyle = type$.EngineGradient._as(t1).createPaintStyle$3(t2.get$context(t2), shaderBounds, _this.density);
+ _this.set$fillStyle(0, paintStyle);
+ _this.set$strokeStyle(0, paintStyle);
+ } else {
+ t1 = paint.color;
+ if (t1 != null) {
+ colorString = H.colorToCssString(t1);
+ _this.set$fillStyle(0, colorString);
+ _this.set$strokeStyle(0, colorString);
+ } else {
+ _this.set$fillStyle(0, "");
+ _this.set$strokeStyle(0, "");
+ }
+ }
+ maskFilter = paint.maskFilter;
+ t1 = H._browserEngine();
+ if (!(t1 === C.BrowserEngine_1 || false)) {
+ if (!J.$eq$(_this._currentFilter, maskFilter)) {
+ _this._currentFilter = maskFilter;
+ _this.context.filter = H._maskFilterToCanvasFilter(maskFilter);
+ }
+ } else if (maskFilter != null) {
+ t1 = _this.context;
+ t1.save();
+ t1.shadowBlur = maskFilter._sigma * 2;
+ t2 = paint.color;
+ if (t2 != null) {
+ t2 = H.colorToCssString(P.Color$fromARGB(255, t2.get$value(t2) >>> 16 & 255, t2.get$value(t2) >>> 8 & 255, t2.get$value(t2) & 255));
+ t2.toString;
+ t1.shadowColor = t2;
+ } else {
+ t2 = H.colorToCssString(C.Color_4278190080);
+ t2.toString;
+ t1.shadowColor = t2;
+ }
+ t1.translate(-50000, 0);
+ tempVector = new Float32Array(2);
+ t2 = $.$get$window();
+ tempVector[0] = 50000 * t2.get$devicePixelRatio(t2);
+ t2 = _this._canvasPool;
+ t2._currentTransform.transform2$1(tempVector);
+ shadowOffsetX = tempVector[0];
+ shadowOffsetY = tempVector[1];
+ tempVector[1] = 0;
+ tempVector[0] = 0;
+ t2._currentTransform.transform2$1(tempVector);
+ t1.shadowOffsetX = shadowOffsetX - tempVector[0];
+ t1.shadowOffsetY = shadowOffsetY - tempVector[1];
+ }
+ },
+ tearDownPaint$0: function() {
+ var t1 = this._lastUsedPaint;
+ if ((t1 == null ? null : t1.maskFilter) != null) {
+ t1 = H._browserEngine();
+ t1 = t1 === C.BrowserEngine_1 || false;
+ } else
+ t1 = false;
+ if (t1)
+ this.context.restore();
+ },
+ paint$1: function(style) {
+ var t1 = this.context;
+ if (style === C.PaintingStyle_1)
+ t1.stroke();
+ else
+ t1.fill();
+ },
+ reset$0: function(_) {
+ var _this = this,
+ t1 = _this.context;
+ t1.fillStyle = "";
+ _this._currentFillStyle = t1.fillStyle;
+ t1.strokeStyle = "";
+ _this._currentStrokeStyle = t1.strokeStyle;
+ t1.shadowBlur = 0;
+ t1.shadowColor = "none";
+ t1.shadowOffsetX = 0;
+ t1.shadowOffsetY = 0;
+ t1.globalCompositeOperation = "source-over";
+ _this._currentBlendMode = C.BlendMode_3;
+ t1.lineWidth = 1;
+ _this._currentLineWidth = 1;
+ t1.lineCap = "butt";
+ _this._currentStrokeCap = C.StrokeCap_0;
+ t1.lineJoin = "miter";
+ _this._currentStrokeJoin = C.StrokeJoin_0;
+ }
+ };
+ H._SaveStackTracking.prototype = {
+ clear$0: function(_) {
+ var t1;
+ C.JSArray_methods.set$length(this._saveStack, 0);
+ this._clipStack = null;
+ t1 = new H.Matrix40(new Float32Array(16));
+ t1.setIdentity$0();
+ this._currentTransform = t1;
+ },
+ save$0: function(_) {
+ var t1 = this._currentTransform,
+ t2 = new H.Matrix40(new Float32Array(16));
+ t2.setFrom$1(t1);
+ t1 = this._clipStack;
+ t1 = t1 == null ? null : P.List_List$from(t1, true, type$._SaveClipEntry);
+ this._saveStack.push(new H._SaveStackEntry(t2, t1));
+ },
+ restore$0: function(_) {
+ var entry,
+ t1 = this._saveStack;
+ if (t1.length === 0)
+ return;
+ entry = t1.pop();
+ this._currentTransform = entry.transform;
+ this._clipStack = entry.clipStack;
+ },
+ translate$2: function(_, dx, dy) {
+ this._currentTransform.translate$2(0, dx, dy);
+ },
+ scale$2: function(_, sx, sy) {
+ this._currentTransform.scale$2(0, sx, sy);
+ },
+ rotate$1: function(_, radians) {
+ this._currentTransform.rotate$2(0, $.$get$_SaveStackTracking__unitZ(), radians);
+ },
+ transform$1: function(_, matrix4) {
+ this._currentTransform.multiply$1(0, new H.Matrix40(matrix4));
+ },
+ clipRect$1: function(_, rect) {
+ var t2, t3,
+ t1 = this._clipStack;
+ if (t1 == null)
+ t1 = this._clipStack = H.setRuntimeTypeInfo([], type$.JSArray__SaveClipEntry);
+ t2 = this._currentTransform;
+ t3 = new H.Matrix40(new Float32Array(16));
+ t3.setFrom$1(t2);
+ t1.push(new H._SaveClipEntry(rect, null, null, t3));
+ },
+ clipRRect$1: function(_, rrect) {
+ var t2, t3,
+ t1 = this._clipStack;
+ if (t1 == null)
+ t1 = this._clipStack = H.setRuntimeTypeInfo([], type$.JSArray__SaveClipEntry);
+ t2 = this._currentTransform;
+ t3 = new H.Matrix40(new Float32Array(16));
+ t3.setFrom$1(t2);
+ t1.push(new H._SaveClipEntry(null, rrect, null, t3));
+ },
+ clipPath$1: function(_, path) {
+ var t2, t3,
+ t1 = this._clipStack;
+ if (t1 == null)
+ t1 = this._clipStack = H.setRuntimeTypeInfo([], type$.JSArray__SaveClipEntry);
+ t2 = this._currentTransform;
+ t3 = new H.Matrix40(new Float32Array(16));
+ t3.setFrom$1(t2);
+ t1.push(new H._SaveClipEntry(null, null, path, t3));
+ }
+ };
+ H.CanvasKit.prototype = {};
+ H.CanvasKitInitOptions.prototype = {};
+ H.CanvasKitInitPromise.prototype = {};
+ H.SkColorSpace.prototype = {};
+ H.SkWebGLContextOptions.prototype = {};
+ H.SkSurface.prototype = {};
+ H.SkGrContext.prototype = {};
+ H.SkFontSlantEnum.prototype = {};
+ H.SkFontSlant.prototype = {};
+ H.SkFontWeightEnum.prototype = {};
+ H.SkFontWeight.prototype = {};
+ H.SkAffinityEnum.prototype = {};
+ H.SkAffinity.prototype = {};
+ H.SkTextDirectionEnum.prototype = {};
+ H.SkTextDirection.prototype = {};
+ H.SkTextAlignEnum.prototype = {};
+ H.SkTextAlign.prototype = {};
+ H.SkRectHeightStyleEnum.prototype = {};
+ H.SkRectHeightStyle.prototype = {};
+ H.SkRectWidthStyleEnum.prototype = {};
+ H.SkRectWidthStyle.prototype = {};
+ H.SkVertexModeEnum.prototype = {};
+ H.SkVertexMode.prototype = {};
+ H.SkPointModeEnum.prototype = {};
+ H.SkPointMode.prototype = {};
+ H.SkClipOpEnum.prototype = {};
+ H.SkClipOp.prototype = {};
+ H.SkFillTypeEnum.prototype = {};
+ H.SkFillType.prototype = {};
+ H.SkPathOpEnum.prototype = {};
+ H.SkPathOp.prototype = {};
+ H.SkBlurStyleEnum.prototype = {};
+ H.SkBlurStyle.prototype = {};
+ H.SkStrokeCapEnum.prototype = {};
+ H.SkStrokeCap.prototype = {};
+ H.SkPaintStyleEnum.prototype = {};
+ H.SkPaintStyle.prototype = {};
+ H.SkBlendModeEnum.prototype = {};
+ H.SkBlendMode.prototype = {};
+ H.SkStrokeJoinEnum.prototype = {};
+ H.SkStrokeJoin.prototype = {};
+ H.SkFilterQualityEnum.prototype = {};
+ H.SkFilterQuality.prototype = {};
+ H.SkTileModeEnum.prototype = {};
+ H.SkTileMode.prototype = {};
+ H.SkAlphaTypeEnum.prototype = {};
+ H.SkAlphaType.prototype = {};
+ H.SkColorTypeEnum.prototype = {};
+ H.SkColorType.prototype = {};
+ H.SkAnimatedImage.prototype = {};
+ H.SkImage.prototype = {};
+ H.SkShaderNamespace.prototype = {};
+ H.SkShader.prototype = {};
+ H.SkPaint.prototype = {};
+ H.SkMaskFilter.prototype = {};
+ H.SkColorFilterNamespace.prototype = {};
+ H.SkColorFilter.prototype = {};
+ H.SkImageFilterNamespace.prototype = {};
+ H.SkImageFilter.prototype = {};
+ H._NativeFloat32ArrayType.prototype = {};
+ H.SkFloat32List.prototype = {};
+ H.SkPath.prototype = {};
+ H.SkContourMeasureIter.prototype = {};
+ H.SkContourMeasure.prototype = {};
+ H.SkPictureRecorder.prototype = {};
+ H.SkCanvas.prototype = {};
+ H.SkPicture.prototype = {};
+ H.SkParagraphBuilderNamespace.prototype = {};
+ H.SkParagraphBuilder.prototype = {};
+ H.SkParagraphStyle.prototype = {};
+ H.SkParagraphStyleProperties.prototype = {};
+ H.SkTextStyle.prototype = {};
+ H.SkTextDecorationStyleEnum.prototype = {};
+ H.SkTextDecorationStyle.prototype = {};
+ H.SkTextBaselineEnum.prototype = {};
+ H.SkTextBaseline.prototype = {};
+ H.SkPlaceholderAlignmentEnum.prototype = {};
+ H.SkPlaceholderAlignment.prototype = {};
+ H.SkTextStyleProperties.prototype = {};
+ H.SkStrutStyleProperties.prototype = {};
+ H.SkPlaceholderStyleProperties.prototype = {};
+ H.SkFontStyle.prototype = {};
+ H.SkTextShadow.prototype = {};
+ H.SkFontFeature.prototype = {};
+ H.SkFontMgr.prototype = {};
+ H.TypefaceFontProvider.prototype = {};
+ H.SkParagraph.prototype = {};
+ H.SkTextPosition.prototype = {};
+ H.SkTextRange.prototype = {};
+ H.SkVertices.prototype = {};
+ H.SkTonalColors.prototype = {};
+ H.SkFontMgrNamespace.prototype = {};
+ H.TypefaceFontProviderNamespace.prototype = {};
+ H.SkDeletable.prototype = {};
+ H.SkObjectFinalizationRegistry.prototype = {};
+ H.SkData.prototype = {};
+ H.SkImageInfo.prototype = {};
+ H.CanvasKitCanvas.prototype = {
+ save$0: function(_) {
+ J.save$0$x(this.__engine$_canvas.skCanvas);
+ },
+ saveLayer$2: function(_, bounds, paint) {
+ J.saveLayer$4$x(this.__engine$_canvas.skCanvas, type$.CkPaint._as(paint).get$skiaObject(), H.toSkRect(bounds), null, null);
+ },
+ restore$0: function(_) {
+ J.restore$0$x(this.__engine$_canvas.skCanvas);
+ },
+ translate$2: function(_, dx, dy) {
+ J.translate$2$x(this.__engine$_canvas.skCanvas, dx, dy);
+ },
+ scale$2: function(_, sx, sy) {
+ J.scale$2$x(this.__engine$_canvas.skCanvas, sx, sy);
+ return null;
+ },
+ rotate$1: function(_, radians) {
+ J.rotate$3$x(this.__engine$_canvas.skCanvas, radians * 180 / 3.141592653589793, 0, 0);
+ },
+ transform$1: function(_, matrix4) {
+ J.concat$1$x(this.__engine$_canvas.skCanvas, H.toSkMatrixFromFloat32(H.toMatrix32(matrix4)));
+ },
+ clipRect$3$clipOp$doAntiAlias: function(_, rect, clipOp, doAntiAlias) {
+ J.clipRect$3$x(this.__engine$_canvas.skCanvas, H.toSkRect(rect), $.$get$_skClipOps()[clipOp.index], doAntiAlias);
+ },
+ clipRect$2$doAntiAlias: function($receiver, rect, doAntiAlias) {
+ return this.clipRect$3$clipOp$doAntiAlias($receiver, rect, C.ClipOp_1, doAntiAlias);
+ },
+ clipRect$1: function($receiver, rect) {
+ return this.clipRect$3$clipOp$doAntiAlias($receiver, rect, C.ClipOp_1, true);
+ },
+ clipRRect$2$doAntiAlias: function(_, rrect, doAntiAlias) {
+ J.clipRRect$3$x(this.__engine$_canvas.skCanvas, H.toSkRRect(rrect), $.$get$CkCanvas__clipOpIntersect(), true);
+ },
+ clipRRect$1: function($receiver, rrect) {
+ return this.clipRRect$2$doAntiAlias($receiver, rrect, true);
+ },
+ clipPath$2$doAntiAlias: function(_, path, doAntiAlias) {
+ this.__engine$_canvas.clipPath$2(0, path, doAntiAlias);
+ },
+ clipPath$1: function($receiver, path) {
+ return this.clipPath$2$doAntiAlias($receiver, path, true);
+ },
+ drawLine$3: function(_, p1, p2, paint) {
+ J.drawLine$5$x(this.__engine$_canvas.skCanvas, p1._dx, p1._dy, p2._dx, p2._dy, type$.CkPaint._as(paint).get$skiaObject());
+ },
+ drawRect$2: function(_, rect, paint) {
+ type$.CkPaint._as(paint);
+ J.drawRect$2$x(this.__engine$_canvas.skCanvas, H.toSkRect(rect), paint.get$skiaObject());
+ },
+ drawRRect$2: function(_, rrect, paint) {
+ type$.CkPaint._as(paint);
+ J.drawRRect$2$x(this.__engine$_canvas.skCanvas, H.toSkRRect(rrect), paint.get$skiaObject());
+ },
+ drawDRRect$3: function(_, outer, inner, paint) {
+ type$.CkPaint._as(paint);
+ J.drawDRRect$3$x(this.__engine$_canvas.skCanvas, H.toSkRRect(outer), H.toSkRRect(inner), paint.get$skiaObject());
+ },
+ drawCircle$3: function(_, c, radius, paint) {
+ type$.CkPaint._as(paint);
+ J.drawCircle$4$x(this.__engine$_canvas.skCanvas, c._dx, c._dy, radius, paint.get$skiaObject());
+ },
+ drawPath$2: function(_, path, paint) {
+ type$.CkPath._as(path);
+ type$.CkPaint._as(paint);
+ J.drawPath$2$x(this.__engine$_canvas.skCanvas, path._skPath, paint.get$skiaObject());
+ },
+ drawParagraph$2: function(_, paragraph, offset) {
+ J.drawParagraph$3$x(this.__engine$_canvas.skCanvas, type$.CkParagraph._as(paragraph).get$skiaObject(), offset._dx, offset._dy);
+ },
+ drawShadow$4: function(_, path, color, elevation, transparentOccluder) {
+ var t1;
+ type$.CkPath._as(path);
+ t1 = $.$get$window();
+ H.drawSkShadow(this.__engine$_canvas.skCanvas, path, color, elevation, transparentOccluder, t1.get$devicePixelRatio(t1));
+ }
+ };
+ H.SkiaObjectCache.prototype = {
+ get$length: function(_) {
+ return this._itemQueue._elementCount;
+ },
+ add$1: function(_, object) {
+ var t2, _this = this,
+ t1 = _this._itemQueue;
+ t1.addFirst$1(object);
+ t2 = t1.get$_sentinel().nextEntry$0();
+ t2.toString;
+ _this._itemMap.$indexSet(0, object, t2);
+ if (t1._elementCount > _this.maximumSize)
+ H.SkiaObjects_markCacheForResize(_this);
+ },
+ resize$0: function(_) {
+ var t1, t2, t3, t4, i, t5, result,
+ itemsToDelete = this.maximumSize / 2 | 0;
+ for (t1 = this._itemMap, t2 = this._itemQueue, t3 = t2.$ti, t4 = t3._eval$1("_DoubleLinkedQueueSentinel<1>"), i = 0; i < itemsToDelete; ++i) {
+ if (!t2.__DoubleLinkedQueue__sentinel_isSet) {
+ t5 = new P._DoubleLinkedQueueSentinel(t2, null, t4);
+ t5._previousLink = t5;
+ t2.__DoubleLinkedQueue__sentinel = t5._nextLink = t5;
+ t2.__DoubleLinkedQueue__sentinel_isSet = true;
+ }
+ result = t3._eval$1("_DoubleLinkedQueueEntry<1>")._as(t2.__DoubleLinkedQueue__sentinel._previousLink)._remove$0(0);
+ --t2._elementCount;
+ t1.remove$1(0, result);
+ result.delete$0(0);
+ result.didDelete$0();
+ }
+ }
+ };
+ H.CkTextStyle.prototype = {
+ set$height: function(receiver, val) {
+ return this.height = val;
+ }
+ };
+ H.ClipboardMessageHandler.prototype = {
+ setDataMethodCall$2: function(methodCall, callback) {
+ var t1 = {};
+ t1.errorEnvelopeEncoded = false;
+ this._copyToClipboardStrategy.setData$1(0, J.$index$asx(methodCall.$arguments, "text")).then$1$1(0, new H.ClipboardMessageHandler_setDataMethodCall_closure(t1, callback), type$.Null).catchError$1(new H.ClipboardMessageHandler_setDataMethodCall_closure0(t1, callback));
+ },
+ getDataMethodCall$1: function(callback) {
+ this._pasteFromClipboardStrategy.getData$0(0).then$1$1(0, new H.ClipboardMessageHandler_getDataMethodCall_closure(callback), type$.Null).catchError$1(new H.ClipboardMessageHandler_getDataMethodCall_closure0(callback));
+ }
+ };
+ H.ClipboardMessageHandler_setDataMethodCall_closure.prototype = {
+ call$1: function(success) {
+ var t1 = this.callback;
+ if (success) {
+ t1.toString;
+ t1.call$1(C.C_JSONMessageCodec.encodeMessage$1([true]));
+ } else {
+ t1.toString;
+ t1.call$1(C.C_JSONMessageCodec.encodeMessage$1(["copy_fail", "Clipboard.setData failed", null]));
+ this._box_0.errorEnvelopeEncoded = true;
+ }
+ },
+ $signature: 76
+ };
+ H.ClipboardMessageHandler_setDataMethodCall_closure0.prototype = {
+ call$1: function(_) {
+ var t1;
+ if (!this._box_0.errorEnvelopeEncoded) {
+ t1 = this.callback;
+ t1.toString;
+ t1.call$1(C.C_JSONMessageCodec.encodeMessage$1(["copy_fail", "Clipboard.setData failed", null]));
+ }
+ },
+ $signature: 3
+ };
+ H.ClipboardMessageHandler_getDataMethodCall_closure.prototype = {
+ call$1: function(data) {
+ var map = P.LinkedHashMap_LinkedHashMap$_literal(["text", data], type$.String, type$.dynamic),
+ t1 = this.callback;
+ t1.toString;
+ t1.call$1(C.C_JSONMessageCodec.encodeMessage$1([map]));
+ },
+ $signature: 402
+ };
+ H.ClipboardMessageHandler_getDataMethodCall_closure0.prototype = {
+ call$1: function(error) {
+ var t1;
+ P.print("Could not get text from clipboard: " + H.S(error));
+ t1 = this.callback;
+ t1.toString;
+ t1.call$1(C.C_JSONMessageCodec.encodeMessage$1(["paste_fail", "Clipboard.getData failed", null]));
+ },
+ $signature: 3
+ };
+ H.ClipboardAPICopyStrategy.prototype = {
+ setData$1: function(_, text) {
+ return this.setData$body$ClipboardAPICopyStrategy(_, text);
+ },
+ setData$body$ClipboardAPICopyStrategy: function(_, text) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.bool),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], error, t1, exception, $async$exception;
+ var $async$setData$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$handler = 4;
+ t1 = window.navigator.clipboard;
+ t1.toString;
+ text.toString;
+ $async$goto = 7;
+ return P._asyncAwait(P.promiseToFuture(t1.writeText(text), type$.dynamic), $async$setData$1);
+ case 7:
+ // returning from await.
+ $async$handler = 2;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 4:
+ // catch
+ $async$handler = 3;
+ $async$exception = $async$currentError;
+ error = H.unwrapException($async$exception);
+ P.print("copy is not successful " + H.S(error));
+ t1 = P.Future_Future$value(false, type$.bool);
+ $async$returnValue = t1;
+ // goto return
+ $async$goto = 1;
+ break;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 3:
+ // uncaught
+ // goto rethrow
+ $async$goto = 2;
+ break;
+ case 6:
+ // after finally
+ $async$returnValue = P.Future_Future$value(true, type$.bool);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$setData$1, $async$completer);
+ }
+ };
+ H.ClipboardAPIPasteStrategy.prototype = {
+ getData$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.String),
+ $async$returnValue;
+ var $async$getData$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = P.promiseToFuture(window.navigator.clipboard.readText(), type$.String);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$getData$0, $async$completer);
+ }
+ };
+ H.ExecCommandCopyStrategy.prototype = {
+ setData$1: function(_, text) {
+ return P.Future_Future$value(this._setDataSync$1(text), type$.bool);
+ },
+ _setDataSync$1: function(text) {
+ var tempTextArea, result, error, exception,
+ _s8_ = "-99999px",
+ _s11_ = "transparent",
+ t1 = document,
+ tempElement = t1.createElement("textarea"),
+ elementStyle = tempElement.style;
+ elementStyle.position = "absolute";
+ elementStyle.top = _s8_;
+ elementStyle.left = _s8_;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "opacity"), "0", "");
+ elementStyle.color = _s11_;
+ elementStyle.backgroundColor = _s11_;
+ elementStyle.background = _s11_;
+ t1.body.appendChild(tempElement);
+ tempTextArea = tempElement;
+ tempTextArea.value = text;
+ J.focus$0$x(tempTextArea);
+ J.select$0$x(tempTextArea);
+ result = false;
+ try {
+ result = t1.execCommand("copy");
+ if (!result)
+ P.print("copy is not successful");
+ } catch (exception) {
+ error = H.unwrapException(exception);
+ P.print("copy is not successful " + H.S(error));
+ } finally {
+ J.remove$0$ax(tempTextArea);
+ }
+ return result;
+ }
+ };
+ H.ExecCommandPasteStrategy.prototype = {
+ getData$0: function(_) {
+ throw H.wrapException(P.UnimplementedError$("Paste is not implemented for this browser."));
+ }
+ };
+ H.DomCanvas.prototype = {
+ clear$0: function(_) {
+ this.super$SaveElementStackTracking$clear(0);
+ $.$get$domRenderer().clearDom$1(this.rootElement);
+ },
+ clipRect$2: function(_, rect, op) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ clipRRect$1: function(_, rrect) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ clipPath$1: function(_, path) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ drawLine$3: function(_, p1, p2, paint) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ drawRect$2: function(_, rect, paint) {
+ var t1 = this.SaveElementStackTracking__elementStack;
+ t1 = t1.length === 0 ? this.rootElement : C.JSArray_methods.get$last(t1);
+ t1.appendChild(H._buildDrawRectElement(rect, paint, "draw-rect", this.SaveElementStackTracking__currentTransform));
+ },
+ drawRRect$2: function(_, rrect, paint) {
+ var t1,
+ element = H._buildDrawRectElement(new P.Rect(rrect.left, rrect.top, rrect.right, rrect.bottom), paint, "draw-rrect", this.SaveElementStackTracking__currentTransform);
+ H._applyRRectBorderRadius(element.style, rrect);
+ t1 = this.SaveElementStackTracking__elementStack;
+ (t1.length === 0 ? this.rootElement : C.JSArray_methods.get$last(t1)).appendChild(element);
+ },
+ drawCircle$3: function(_, c, radius, paint) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ drawPath$2: function(_, path, paint) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ drawShadow$4: function(_, path, color, elevation, transparentOccluder) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ drawParagraph$2: function(_, paragraph, offset) {
+ var paragraphElement = H._drawParagraphElement(paragraph, offset, this.SaveElementStackTracking__currentTransform),
+ t1 = this.SaveElementStackTracking__elementStack;
+ (t1.length === 0 ? this.rootElement : C.JSArray_methods.get$last(t1)).appendChild(paragraphElement);
+ },
+ endOfPaint$0: function() {
+ },
+ get$rootElement: function(receiver) {
+ return this.rootElement;
+ }
+ };
+ H.DomRenderer.prototype = {
+ renderScene$1: function(sceneElement) {
+ var t1 = this._sceneElement;
+ if (sceneElement == null ? t1 != null : sceneElement !== t1) {
+ if (t1 != null)
+ J.remove$0$ax(t1);
+ this._sceneElement = sceneElement;
+ t1 = this._sceneHostElement;
+ t1.toString;
+ sceneElement.toString;
+ t1.appendChild(sceneElement);
+ }
+ },
+ createElement$1: function(_, tagName) {
+ var element = document.createElement(tagName);
+ return element;
+ },
+ reset$0: function(_) {
+ var t2, sheet, isWebKit, isFirefox, t3, cur, t4, glassPaneElement, _this = this, _s1_ = "0", _s4_ = "none", _box_0 = {},
+ t1 = _this._styleElement;
+ if (t1 != null)
+ C.StyleElement_methods.remove$0(t1);
+ t1 = document;
+ t2 = t1.createElement("style");
+ _this._styleElement = t2;
+ t1.head.appendChild(t2);
+ sheet = type$.CssStyleSheet._as(_this._styleElement.sheet);
+ t2 = H._browserEngine();
+ isWebKit = t2 === C.BrowserEngine_1;
+ t2 = H._browserEngine();
+ isFirefox = t2 === C.BrowserEngine_2;
+ if (isFirefox)
+ sheet.insertRule("flt-ruler-host p, flt-scene p { margin: 0; line-height: 100%;}", sheet.cssRules.length);
+ else
+ sheet.insertRule("flt-ruler-host p, flt-scene p { margin: 0; }", sheet.cssRules.length);
+ sheet.insertRule("flt-semantics input[type=range] {\n appearance: none;\n -webkit-appearance: none;\n width: 100%;\n position: absolute;\n border: none;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}", sheet.cssRules.length);
+ if (isWebKit)
+ sheet.insertRule("flt-semantics input[type=range]::-webkit-slider-thumb { -webkit-appearance: none;}", sheet.cssRules.length);
+ if (isFirefox) {
+ sheet.insertRule("input::-moz-selection { background-color: transparent;}", sheet.cssRules.length);
+ sheet.insertRule("textarea::-moz-selection { background-color: transparent;}", sheet.cssRules.length);
+ } else {
+ sheet.insertRule("input::selection { background-color: transparent;}", sheet.cssRules.length);
+ sheet.insertRule("textarea::selection { background-color: transparent;}", sheet.cssRules.length);
+ }
+ sheet.insertRule('flt-semantics input,\nflt-semantics textarea,\nflt-semantics [contentEditable="true"] {\n caret-color: transparent;\n}\n', sheet.cssRules.length);
+ if (isWebKit)
+ sheet.insertRule("flt-glass-pane * {\n -webkit-tap-highlight-color: transparent;\n}\n", sheet.cssRules.length);
+ t2 = H._browserEngine();
+ if (t2 !== C.BrowserEngine_0) {
+ t2 = H._browserEngine();
+ t2 = t2 === C.BrowserEngine_1;
+ } else
+ t2 = true;
+ if (t2)
+ sheet.insertRule(".transparentTextEditing:-webkit-autofill,\n.transparentTextEditing:-webkit-autofill:hover,\n.transparentTextEditing:-webkit-autofill:focus,\n.transparentTextEditing:-webkit-autofill:active {\n -webkit-transition-delay: 99999s;\n}\n", sheet.cssRules.length);
+ t2 = t1.body;
+ t2.toString;
+ H.DomRenderer_setElementStyle(t2, "position", "fixed");
+ H.DomRenderer_setElementStyle(t2, "top", _s1_);
+ H.DomRenderer_setElementStyle(t2, "right", _s1_);
+ H.DomRenderer_setElementStyle(t2, "bottom", _s1_);
+ H.DomRenderer_setElementStyle(t2, "left", _s1_);
+ H.DomRenderer_setElementStyle(t2, "overflow", "hidden");
+ H.DomRenderer_setElementStyle(t2, "padding", _s1_);
+ H.DomRenderer_setElementStyle(t2, "margin", _s1_);
+ H.DomRenderer_setElementStyle(t2, "user-select", _s4_);
+ H.DomRenderer_setElementStyle(t2, "-webkit-user-select", _s4_);
+ H.DomRenderer_setElementStyle(t2, "-ms-user-select", _s4_);
+ H.DomRenderer_setElementStyle(t2, "-moz-user-select", _s4_);
+ H.DomRenderer_setElementStyle(t2, "touch-action", _s4_);
+ H.DomRenderer_setElementStyle(t2, "font", "normal normal 14px sans-serif");
+ H.DomRenderer_setElementStyle(t2, "color", "red");
+ t2.spellcheck = false;
+ for (t3 = new W._FrozenElementList(t1.head.querySelectorAll('meta[name="viewport"]'), type$._FrozenElementList_Element), t3 = new H.ListIterator(t3, t3.get$length(t3)); t3.moveNext$0();) {
+ cur = t3._current;
+ t4 = cur.parentNode;
+ if (t4 != null)
+ t4.removeChild(cur);
+ }
+ t3 = _this._viewportMeta;
+ if (t3 != null)
+ C.MetaElement_methods.remove$0(t3);
+ t3 = t1.createElement("meta");
+ t3.setAttribute("flt-viewport", "");
+ t3.name = "viewport";
+ t3.content = "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no";
+ _this._viewportMeta = t3;
+ t1.head.appendChild(t3);
+ t3 = _this._glassPaneElement;
+ if (t3 != null)
+ J.remove$0$ax(t3);
+ glassPaneElement = _this._glassPaneElement = _this.createElement$1(0, "flt-glass-pane");
+ t1 = glassPaneElement.style;
+ t1.position = "absolute";
+ t1.top = _s1_;
+ t1.right = _s1_;
+ t1.bottom = _s1_;
+ t1.left = _s1_;
+ t2.appendChild(glassPaneElement);
+ t1 = _this.createElement$1(0, "flt-scene-host");
+ _this._sceneHostElement = t1;
+ t1 = t1.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "pointer-events"), _s4_, "");
+ t1 = _this._sceneHostElement;
+ t1.toString;
+ glassPaneElement.appendChild(t1);
+ glassPaneElement.insertBefore(H.EngineSemanticsOwner_instance().semanticsHelper._semanticsEnabler.prepareAccessibilityPlaceholder$0(), _this._sceneHostElement);
+ if ($.PointerBinding__instance == null) {
+ t1 = new H.PointerBinding(glassPaneElement, new H.PointerDataConverter(P.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$._PointerState)));
+ t2 = t1._createAdapter$0();
+ t1.__PointerBinding__adapter_isSet = true;
+ t1.__PointerBinding__adapter = t2;
+ $.PointerBinding__instance = t1;
+ }
+ _this._sceneHostElement.setAttribute("aria-hidden", "true");
+ if (window.visualViewport == null && isWebKit) {
+ t1 = window.innerWidth;
+ t1.toString;
+ _box_0.checkCount = 0;
+ P.Timer_Timer$periodic(C.Duration_100000, new H.DomRenderer_reset_closure(_box_0, _this, t1));
+ }
+ t1 = _this.get$_metricsDidChange();
+ t2 = type$.legacy_Event;
+ if (window.visualViewport != null) {
+ t3 = window.visualViewport;
+ t3.toString;
+ _this._resizeSubscription = W._EventStreamSubscription$(t3, "resize", t1, false, t2);
+ } else
+ _this._resizeSubscription = W._EventStreamSubscription$(window, "resize", t1, false, t2);
+ _this._localeSubscription = W._EventStreamSubscription$(window, "languagechange", _this.get$_languageDidChange(), false, t2);
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ t1._configuration = t1._configuration.copyWith$1$locales(H.EnginePlatformDispatcher_parseBrowserLanguages());
+ },
+ _metricsDidChange$1: function($event) {
+ var t1 = H._operatingSystem();
+ if (!J.containsKey$1$x(C.Set_m536._collection$_map, t1) && !$.$get$window().isRotation$0() && $.$get$textEditing().isEditing) {
+ $.$get$window().computeOnScreenKeyboardInsets$0();
+ $.$get$EnginePlatformDispatcher__instance().invokeOnMetricsChanged$0();
+ } else {
+ t1 = $.$get$window();
+ t1._computePhysicalSize$0();
+ t1.computeOnScreenKeyboardInsets$0();
+ $.$get$EnginePlatformDispatcher__instance().invokeOnMetricsChanged$0();
+ }
+ },
+ _languageDidChange$1: function($event) {
+ var t1 = $.$get$EnginePlatformDispatcher__instance();
+ t1._configuration = t1._configuration.copyWith$1$locales(H.EnginePlatformDispatcher_parseBrowserLanguages());
+ t1 = $.$get$window().platformDispatcher._onLocaleChanged;
+ if (t1 != null)
+ t1.call$0();
+ },
+ clearDom$1: function(node) {
+ var t1, t2;
+ for (; t1 = node.lastChild, t1 != null;) {
+ t2 = t1.parentNode;
+ if (t2 != null)
+ t2.removeChild(t1);
+ }
+ },
+ setPreferredOrientation$1: function(orientations) {
+ var lockType, completer, t1, exception,
+ screenOrientation = window.screen.orientation;
+ if (screenOrientation != null) {
+ orientations.toString;
+ t1 = J.getInterceptor$asx(orientations);
+ if (t1.get$isEmpty(orientations)) {
+ t1 = screenOrientation;
+ t1.toString;
+ J.unlock$0$x(t1);
+ return P.Future_Future$value(true, type$.bool);
+ } else {
+ lockType = H.DomRenderer__deviceOrientationToLockType(t1.get$first(orientations));
+ if (lockType != null) {
+ completer = new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_bool), type$._AsyncCompleter_bool);
+ try {
+ P.promiseToFuture(screenOrientation.lock(lockType), type$.dynamic).then$1$1(0, new H.DomRenderer_setPreferredOrientation_closure(completer), type$.Null).catchError$1(new H.DomRenderer_setPreferredOrientation_closure0(completer));
+ } catch (exception) {
+ H.unwrapException(exception);
+ t1 = P.Future_Future$value(false, type$.bool);
+ return t1;
+ }
+ return completer.future;
+ }
+ }
+ }
+ return P.Future_Future$value(false, type$.bool);
+ }
+ };
+ H.DomRenderer_reset_closure.prototype = {
+ call$1: function(t) {
+ var t1 = ++this._box_0.checkCount;
+ if (this.initialInnerWidth != window.innerWidth) {
+ t.cancel$0(0);
+ this.$this._metricsDidChange$1(null);
+ } else if (t1 > 5)
+ t.cancel$0(0);
+ },
+ $signature: 79
+ };
+ H.DomRenderer_setPreferredOrientation_closure.prototype = {
+ call$1: function(_) {
+ this.completer.complete$1(0, true);
+ },
+ $signature: 3
+ };
+ H.DomRenderer_setPreferredOrientation_closure0.prototype = {
+ call$1: function(error) {
+ this.completer.complete$1(0, false);
+ },
+ $signature: 3
+ };
+ H.EngineCanvas.prototype = {};
+ H._SaveStackEntry.prototype = {};
+ H._SaveClipEntry.prototype = {};
+ H._SaveElementStackEntry.prototype = {};
+ H.SaveElementStackTracking.prototype = {
+ clear$0: function(_) {
+ var t1;
+ C.JSArray_methods.set$length(this.SaveElementStackTracking__saveStack, 0);
+ C.JSArray_methods.set$length(this.SaveElementStackTracking__elementStack, 0);
+ t1 = new H.Matrix40(new Float32Array(16));
+ t1.setIdentity$0();
+ this.SaveElementStackTracking__currentTransform = t1;
+ },
+ save$0: function(_) {
+ var t2, t3, _this = this,
+ t1 = _this.SaveElementStackTracking__elementStack;
+ t1 = t1.length === 0 ? _this.rootElement : C.JSArray_methods.get$last(t1);
+ t2 = _this.SaveElementStackTracking__currentTransform;
+ t3 = new H.Matrix40(new Float32Array(16));
+ t3.setFrom$1(t2);
+ _this.SaveElementStackTracking__saveStack.push(new H._SaveElementStackEntry(t1, t3));
+ },
+ restore$0: function(_) {
+ var entry, t2, t3, _this = this,
+ t1 = _this.SaveElementStackTracking__saveStack;
+ if (t1.length === 0)
+ return;
+ entry = t1.pop();
+ _this.SaveElementStackTracking__currentTransform = entry.transform;
+ t1 = _this.SaveElementStackTracking__elementStack;
+ t2 = entry.savedElement;
+ t3 = _this.rootElement;
+ while (true) {
+ if (!((t1.length === 0 ? t3 : C.JSArray_methods.get$last(t1)) == null ? t2 != null : (t1.length === 0 ? t3 : C.JSArray_methods.get$last(t1)) !== t2))
+ break;
+ t1.pop();
+ }
+ },
+ translate$2: function(_, dx, dy) {
+ this.SaveElementStackTracking__currentTransform.translate$2(0, dx, dy);
+ },
+ scale$2: function(_, sx, sy) {
+ this.SaveElementStackTracking__currentTransform.scale$2(0, sx, sy);
+ },
+ rotate$1: function(_, radians) {
+ this.SaveElementStackTracking__currentTransform.rotate$2(0, $.$get$SaveElementStackTracking__unitZ(), radians);
+ },
+ transform$1: function(_, matrix4) {
+ this.SaveElementStackTracking__currentTransform.multiply$1(0, new H.Matrix40(matrix4));
+ }
+ };
+ H.FrameReference.prototype = {};
+ H.CrossFrameCache.prototype = {
+ commitFrame$0: function() {
+ this._reusablePool = this.__engine$_cache;
+ this.__engine$_cache = null;
+ }
+ };
+ H.SurfaceCanvas.prototype = {
+ save$0: function(_) {
+ var t1 = this.__engine$_canvas;
+ t1._paintBounds.saveTransformsAndClip$0();
+ t1._commands.push(C.C_PaintSave);
+ ++t1._saveCount;
+ },
+ saveLayer$2: function(_, bounds, paint) {
+ var t1 = this.__engine$_canvas;
+ type$.SurfacePaint._as(paint);
+ t1._hasArbitraryPaint = true;
+ t1._commands.push(C.C_PaintSave);
+ t1._paintBounds.saveTransformsAndClip$0();
+ ++t1._saveCount;
+ },
+ restore$0: function(_) {
+ var t2, clipRect,
+ t1 = this.__engine$_canvas;
+ if (!t1._recordingEnded && t1._saveCount > 1) {
+ t2 = t1._paintBounds;
+ t2._currentMatrix = t2.__engine$_transforms.pop();
+ clipRect = t2._clipStack.pop();
+ if (clipRect != null) {
+ t2._currentClipLeft = clipRect.left;
+ t2._currentClipTop = clipRect.top;
+ t2._currentClipRight = clipRect.right;
+ t2._currentClipBottom = clipRect.bottom;
+ t2._clipRectInitialized = true;
+ } else if (t2._clipRectInitialized)
+ t2._clipRectInitialized = false;
+ }
+ t2 = t1._commands;
+ if (t2.length !== 0 && C.JSArray_methods.get$last(t2) instanceof H.PaintSave)
+ t2.pop();
+ else
+ t2.push(C.C_PaintRestore);
+ --t1._saveCount;
+ },
+ translate$2: function(_, dx, dy) {
+ var t1 = this.__engine$_canvas,
+ t2 = t1._paintBounds;
+ if (dx !== 0 || dy !== 0)
+ t2._currentMatrixIsIdentity = false;
+ t2._currentMatrix.translate$2(0, dx, dy);
+ t1._commands.push(new H.PaintTranslate(dx, dy));
+ },
+ scale$2: function(_, sx, sy) {
+ var t1 = this.__engine$_canvas,
+ t2 = t1._paintBounds;
+ if (sx !== 1 || sy !== 1)
+ t2._currentMatrixIsIdentity = false;
+ t2._currentMatrix.scale$2(0, sx, sy);
+ t1._commands.push(new H.PaintScale(sx, sy));
+ return null;
+ },
+ rotate$1: function(_, radians) {
+ var cosAngle, sinAngle, t3, t4, t5, t6, t7, t8, t9, t10, t11,
+ t1 = this.__engine$_canvas,
+ t2 = t1._paintBounds;
+ if (radians !== 0)
+ t2._currentMatrixIsIdentity = false;
+ t2 = t2._currentMatrix;
+ cosAngle = Math.cos(radians);
+ sinAngle = Math.sin(radians);
+ t2 = t2.__engine$_m4storage;
+ t3 = t2[0];
+ t4 = t2[4];
+ t5 = t2[1];
+ t6 = t2[5];
+ t7 = t2[2];
+ t8 = t2[6];
+ t9 = t2[3];
+ t10 = t2[7];
+ t11 = -sinAngle;
+ t2[0] = t3 * cosAngle + t4 * sinAngle;
+ t2[1] = t5 * cosAngle + t6 * sinAngle;
+ t2[2] = t7 * cosAngle + t8 * sinAngle;
+ t2[3] = t9 * cosAngle + t10 * sinAngle;
+ t2[4] = t3 * t11 + t4 * cosAngle;
+ t2[5] = t5 * t11 + t6 * cosAngle;
+ t2[6] = t7 * t11 + t8 * cosAngle;
+ t2[7] = t9 * t11 + t10 * cosAngle;
+ t1._commands.push(new H.PaintRotate(radians));
+ },
+ transform$1: function(_, matrix4) {
+ var t1 = H.toMatrix32(matrix4),
+ t2 = this.__engine$_canvas,
+ t3 = t2._paintBounds;
+ t3._currentMatrix.multiply$1(0, new H.Matrix40(t1));
+ t3._currentMatrixIsIdentity = t3._currentMatrix.isIdentity$0(0);
+ t2._commands.push(new H.PaintTransform(t1));
+ },
+ clipRect$3$clipOp$doAntiAlias: function(_, rect, clipOp, doAntiAlias) {
+ var t1 = this.__engine$_canvas,
+ command = new H.PaintClipRect(rect, clipOp, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ switch (clipOp) {
+ case C.ClipOp_1:
+ t1._paintBounds.clipRect$2(0, rect, command);
+ break;
+ case C.ClipOp_0:
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ }
+ t1._hasArbitraryPaint = true;
+ t1._commands.push(command);
+ },
+ clipRect$2$doAntiAlias: function($receiver, rect, doAntiAlias) {
+ return this.clipRect$3$clipOp$doAntiAlias($receiver, rect, C.ClipOp_1, doAntiAlias);
+ },
+ clipRect$1: function($receiver, rect) {
+ return this.clipRect$3$clipOp$doAntiAlias($receiver, rect, C.ClipOp_1, true);
+ },
+ clipRRect$2$doAntiAlias: function(_, rrect, doAntiAlias) {
+ var t1 = this.__engine$_canvas,
+ command = new H.PaintClipRRect(rrect, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ t1._paintBounds.clipRect$2(0, new P.Rect(rrect.left, rrect.top, rrect.right, rrect.bottom), command);
+ t1._hasArbitraryPaint = true;
+ t1._commands.push(command);
+ },
+ clipRRect$1: function($receiver, rrect) {
+ return this.clipRRect$2$doAntiAlias($receiver, rrect, true);
+ },
+ clipPath$2$doAntiAlias: function(_, path, doAntiAlias) {
+ var command,
+ t1 = this.__engine$_canvas;
+ type$.SurfacePath._as(path);
+ command = new H.PaintClipPath(path, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ t1._paintBounds.clipRect$2(0, path.getBounds$0(0), command);
+ t1._hasArbitraryPaint = true;
+ t1._commands.push(command);
+ },
+ clipPath$1: function($receiver, path) {
+ return this.clipPath$2$doAntiAlias($receiver, path, true);
+ },
+ drawLine$3: function(_, p1, p2, paint) {
+ var paintSpread, command, t2, t3, t4, t5,
+ t1 = this.__engine$_canvas;
+ type$.SurfacePaint._as(paint);
+ paintSpread = Math.max(H._getPaintSpread(paint), 1);
+ paint._frozen = true;
+ command = new H.PaintDrawLine(p1, p2, paint._paintData, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ t2 = p1._dx;
+ t3 = p2._dx;
+ t4 = p1._dy;
+ t5 = p2._dy;
+ t1._paintBounds.growLTRB$5(Math.min(H.checkNum(t2), H.checkNum(t3)) - paintSpread, Math.min(H.checkNum(t4), H.checkNum(t5)) - paintSpread, Math.max(H.checkNum(t2), H.checkNum(t3)) + paintSpread, Math.max(H.checkNum(t4), H.checkNum(t5)) + paintSpread, command);
+ t1._didDraw = t1._hasArbitraryPaint = true;
+ t1._commands.push(command);
+ },
+ drawRect$2: function(_, rect, paint) {
+ this.__engine$_canvas.drawRect$2(0, rect, type$.SurfacePaint._as(paint));
+ },
+ drawRRect$2: function(_, rrect, paint) {
+ this.__engine$_canvas.drawRRect$2(0, rrect, type$.SurfacePaint._as(paint));
+ },
+ drawDRRect$3: function(_, outer, inner, paint) {
+ this.__engine$_canvas.drawDRRect$3(0, outer, inner, type$.SurfacePaint._as(paint));
+ },
+ drawCircle$3: function(_, c, radius, paint) {
+ var paintSpread, command, distance, t2, t3,
+ t1 = this.__engine$_canvas;
+ type$.SurfacePaint._as(paint);
+ t1._didDraw = t1._hasArbitraryPaint = true;
+ paintSpread = H._getPaintSpread(paint);
+ paint._frozen = true;
+ command = new H.PaintDrawCircle(c, radius, paint._paintData, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ distance = radius + paintSpread;
+ t2 = c._dx;
+ t3 = c._dy;
+ t1._paintBounds.growLTRB$5(t2 - distance, t3 - distance, t2 + distance, t3 + distance, command);
+ t1._commands.push(command);
+ },
+ drawPath$2: function(_, path, paint) {
+ this.__engine$_canvas.drawPath$2(0, path, type$.SurfacePaint._as(paint));
+ },
+ drawParagraph$2: function(_, paragraph, offset) {
+ this.__engine$_canvas.drawParagraph$2(0, paragraph, offset);
+ },
+ drawShadow$4: function(_, path, color, elevation, transparentOccluder) {
+ var shadowRect, command,
+ t1 = this.__engine$_canvas;
+ t1._didDraw = t1._hasArbitraryPaint = true;
+ shadowRect = H.computePenumbraBounds(path.getBounds$0(0), elevation);
+ command = new H.PaintDrawShadow(type$.SurfacePath._as(path), color, elevation, transparentOccluder, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ t1._paintBounds.grow$2(shadowRect, command);
+ t1._commands.push(command);
+ }
+ };
+ H._DomClip.prototype = {
+ get$childContainer: function() {
+ return this._DomClip__childContainer;
+ },
+ createElement$0: function(_) {
+ var element = this.defaultCreateElement$1("flt-clip"),
+ t1 = W._ElementFactoryProvider_createElement_tag("flt-clip-interior", null);
+ this._DomClip__childContainer = t1;
+ t1 = t1.style;
+ t1.position = "absolute";
+ t1 = this._DomClip__childContainer;
+ t1.toString;
+ element.appendChild(t1);
+ return element;
+ }
+ };
+ H.PersistedClipRect.prototype = {
+ recomputeTransformAndClip$0: function() {
+ var _this = this;
+ _this.__engine$_transform = _this.parent.__engine$_transform;
+ _this._localClipBounds = _this.rect;
+ _this._projectedClip = _this._localTransformInverse = null;
+ },
+ createElement$0: function(_) {
+ var t1 = this.super$_DomClip$createElement(0);
+ t1.setAttribute("clip-type", "rect");
+ return t1;
+ },
+ apply$0: function() {
+ var t5, _this = this,
+ t1 = _this.rootElement.style,
+ t2 = _this.rect,
+ t3 = t2.left,
+ t4 = H.S(t3) + "px";
+ t1.left = t4;
+ t4 = t2.top;
+ t5 = H.S(t4) + "px";
+ t1.top = t5;
+ t5 = H.S(t2.right - t3) + "px";
+ t1.width = t5;
+ t2 = H.S(t2.bottom - t4) + "px";
+ t1.height = t2;
+ t1 = _this.rootElement;
+ t1.toString;
+ if (_this.clipBehavior !== C.Clip_0) {
+ t1 = t1.style;
+ t1.overflow = "hidden";
+ t1.zIndex = "0";
+ }
+ t1 = _this._DomClip__childContainer.style;
+ t3 = H.S(-t3) + "px";
+ t1.left = t3;
+ t2 = H.S(-t4) + "px";
+ t1.top = t2;
+ },
+ update$1: function(_, oldSurface) {
+ var _this = this;
+ _this.super$PersistedContainerSurface$update(0, oldSurface);
+ if (!J.$eq$(_this.rect, oldSurface.rect) || _this.clipBehavior !== oldSurface.clipBehavior)
+ _this.apply$0();
+ },
+ $isClipRectEngineLayer: 1
+ };
+ H.PersistedPhysicalShape.prototype = {
+ recomputeTransformAndClip$0: function() {
+ var t1, t2, roundRect, rect, _this = this;
+ _this.__engine$_transform = _this.parent.__engine$_transform;
+ t1 = _this.path;
+ t2 = t1.pathRef;
+ roundRect = t2.fIsRRect ? t2._getRRect$0() : null;
+ if (roundRect != null)
+ _this._localClipBounds = new P.Rect(roundRect.left, roundRect.top, roundRect.right, roundRect.bottom);
+ else {
+ t1 = t1.pathRef;
+ rect = t1.fIsRect ? t1._getRect$0() : null;
+ if (rect != null)
+ _this._localClipBounds = rect;
+ else
+ _this._localClipBounds = null;
+ }
+ _this._projectedClip = _this._localTransformInverse = null;
+ },
+ _applyShadow$0: function() {
+ var color, t2, t3, _this = this,
+ _s10_ = "box-shadow",
+ t1 = _this.rootElement,
+ shadow = H.computeShadow(_this.pathBounds, _this.elevation);
+ if (shadow == null) {
+ t1 = t1.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s10_), "none", "");
+ } else {
+ color = H.toShadowColor(_this.shadowColor);
+ t1 = t1.style;
+ t2 = shadow.offset;
+ t3 = color.value;
+ t3 = H.S(t2._dx) + "px " + H.S(t2._dy) + "px " + H.S(shadow.blurWidth) + "px 0px rgba(" + (t3 >>> 16 & 255) + ", " + (t3 >>> 8 & 255) + ", " + (t3 & 255) + ", " + H.S((t3 >>> 24 & 255) / 255) + ")";
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s10_), t3, "");
+ }
+ },
+ createElement$0: function(_) {
+ var t1 = this.super$_DomClip$createElement(0);
+ t1.setAttribute("clip-type", "physical-shape");
+ return t1;
+ },
+ apply$0: function() {
+ var _this = this,
+ t1 = _this.rootElement.style,
+ t2 = H.colorToCssString(_this.color);
+ t1.toString;
+ t1.backgroundColor = t2 == null ? "" : t2;
+ _this._applyShadow$0();
+ _this._applyShape$0();
+ },
+ _applyShape$0: function() {
+ var borderRadius, style, t3, rect, ovalRect, rx, ry, t4, t5, svgClipPath, t6, t7, rootElementStyle, _this = this, _null = null,
+ _s13_ = "border-radius",
+ _s6_ = "hidden",
+ t1 = _this.path,
+ t2 = t1.pathRef,
+ roundRect = t2.fIsRRect ? t2._getRRect$0() : _null;
+ if (roundRect != null) {
+ borderRadius = H.S(roundRect.tlRadiusX) + "px " + H.S(roundRect.trRadiusX) + "px " + H.S(roundRect.brRadiusX) + "px " + H.S(roundRect.blRadiusX) + "px";
+ style = _this.rootElement.style;
+ t1 = roundRect.left;
+ t2 = H.S(t1) + "px";
+ style.left = t2;
+ t2 = roundRect.top;
+ t3 = H.S(t2) + "px";
+ style.top = t3;
+ t3 = H.S(roundRect.right - t1) + "px";
+ style.width = t3;
+ t3 = H.S(roundRect.bottom - t2) + "px";
+ style.height = t3;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, _s13_), borderRadius, "");
+ t3 = _this._DomClip__childContainer.style;
+ t1 = H.S(-t1) + "px";
+ t3.left = t1;
+ t1 = H.S(-t2) + "px";
+ t3.top = t1;
+ if (_this.clipBehavior !== C.Clip_0)
+ style.overflow = _s6_;
+ return;
+ } else {
+ t2 = t1.pathRef;
+ rect = t2.fIsRect ? t2._getRect$0() : _null;
+ if (rect != null) {
+ style = _this.rootElement.style;
+ t1 = rect.left;
+ t2 = H.S(t1) + "px";
+ style.left = t2;
+ t2 = rect.top;
+ t3 = H.S(t2) + "px";
+ style.top = t3;
+ t3 = H.S(rect.right - t1) + "px";
+ style.width = t3;
+ t3 = H.S(rect.bottom - t2) + "px";
+ style.height = t3;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, _s13_), "", "");
+ t3 = _this._DomClip__childContainer.style;
+ t1 = H.S(-t1) + "px";
+ t3.left = t1;
+ t1 = H.S(-t2) + "px";
+ t3.top = t1;
+ if (_this.clipBehavior !== C.Clip_0)
+ style.overflow = _s6_;
+ return;
+ } else {
+ t2 = t1.pathRef;
+ ovalRect = (t2.fIsOval ? t2.fRRectOrOvalStartIdx : -1) === -1 ? _null : t2.getBounds$0(0);
+ if (ovalRect != null) {
+ t1 = ovalRect.right;
+ t2 = ovalRect.left;
+ rx = (t1 - t2) / 2;
+ t1 = ovalRect.bottom;
+ t3 = ovalRect.top;
+ ry = (t1 - t3) / 2;
+ borderRadius = rx === ry ? H.S(rx) + "px " : H.S(rx) + "px " + H.S(ry) + "px ";
+ style = _this.rootElement.style;
+ t1 = H.S(t2) + "px";
+ style.left = t1;
+ t1 = H.S(t3) + "px";
+ style.top = t1;
+ t1 = H.S(rx * 2) + "px";
+ style.width = t1;
+ t1 = H.S(ry * 2) + "px";
+ style.height = t1;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(style, C.CssStyleDeclaration_methods._browserPropertyName$1(style, _s13_), borderRadius, "");
+ t1 = _this._DomClip__childContainer.style;
+ t2 = H.S(-t2) + "px";
+ t1.left = t2;
+ t2 = H.S(-t3) + "px";
+ t1.top = t2;
+ if (_this.clipBehavior !== C.Clip_0)
+ style.overflow = _s6_;
+ return;
+ }
+ }
+ }
+ t2 = _this.pathBounds;
+ t3 = t2.left;
+ t4 = t2.top;
+ t5 = t2.right - t3;
+ t2 = t2.bottom - t4;
+ svgClipPath = H._pathToSvgClipPath(t1, -t3, -t4, 1 / t5, 1 / t2);
+ t1 = _this._clipElement;
+ if (t1 != null)
+ J.remove$0$ax(t1);
+ t1 = W.Element_Element$html(svgClipPath, new H._NullTreeSanitizer(), _null);
+ _this._clipElement = t1;
+ t6 = $.$get$domRenderer();
+ t7 = _this.rootElement;
+ t7.toString;
+ t1.toString;
+ t6.toString;
+ t7.appendChild(t1);
+ t1 = _this.rootElement;
+ t1.toString;
+ H.DomRenderer_setElementStyle(t1, "clip-path", "url(#svgClip" + $._clipIdCounter + ")");
+ t1 = _this.rootElement;
+ t1.toString;
+ H.DomRenderer_setElementStyle(t1, "-webkit-clip-path", "url(#svgClip" + $._clipIdCounter + ")");
+ rootElementStyle = _this.rootElement.style;
+ rootElementStyle.overflow = "";
+ t1 = H.S(t3) + "px";
+ rootElementStyle.left = t1;
+ t1 = H.S(t4) + "px";
+ rootElementStyle.top = t1;
+ t1 = H.S(t5) + "px";
+ rootElementStyle.width = t1;
+ t1 = H.S(t2) + "px";
+ rootElementStyle.height = t1;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(rootElementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(rootElementStyle, _s13_), "", "");
+ t1 = _this._DomClip__childContainer.style;
+ t3 = "-" + H.S(t3) + "px";
+ t1.left = t3;
+ t2 = "-" + H.S(t4) + "px";
+ t1.top = t2;
+ },
+ update$1: function(_, oldSurface) {
+ var t1, t2, t3, _this = this;
+ _this.super$PersistedContainerSurface$update(0, oldSurface);
+ t1 = _this.color;
+ if (!oldSurface.color.$eq(0, t1)) {
+ t2 = _this.rootElement.style;
+ t1 = H.colorToCssString(t1);
+ t2.toString;
+ t2.backgroundColor = t1 == null ? "" : t1;
+ }
+ if (oldSurface.elevation != _this.elevation || !oldSurface.shadowColor.$eq(0, _this.shadowColor))
+ _this._applyShadow$0();
+ t1 = oldSurface.path;
+ t2 = oldSurface._clipElement;
+ if (t1 != _this.path) {
+ if (t2 != null)
+ J.remove$0$ax(t2);
+ oldSurface._clipElement = null;
+ t1 = _this._clipElement;
+ if (t1 != null)
+ J.remove$0$ax(t1);
+ _this._clipElement = null;
+ t1 = _this.rootElement;
+ t1.toString;
+ H.DomRenderer_setElementStyle(t1, "clip-path", "");
+ t1 = _this.rootElement;
+ t1.toString;
+ H.DomRenderer_setElementStyle(t1, "-webkit-clip-path", "");
+ _this._applyShape$0();
+ } else {
+ _this._clipElement = t2;
+ if (t2 != null) {
+ t1 = $.$get$domRenderer();
+ t3 = _this.rootElement;
+ t3.toString;
+ t1.toString;
+ t3.appendChild(t2);
+ }
+ oldSurface._clipElement = null;
+ }
+ },
+ $isPhysicalShapeEngineLayer: 1
+ };
+ H.PersistedClipPath.prototype = {
+ createElement$0: function(_) {
+ return this.defaultCreateElement$1("flt-clippath");
+ },
+ recomputeTransformAndClip$0: function() {
+ var _this = this;
+ _this.super$PersistedContainerSurface$recomputeTransformAndClip();
+ if (_this._localClipBounds == null)
+ _this._localClipBounds = _this.clipPath.getBounds$0(0);
+ },
+ apply$0: function() {
+ var t2, t3, _this = this,
+ t1 = _this._clipElement;
+ if (t1 != null)
+ J.remove$0$ax(t1);
+ t1 = W.Element_Element$html(H.createSvgClipDef(type$.HtmlElement._as(_this.rootElement), _this.clipPath), new H._NullTreeSanitizer(), null);
+ _this._clipElement = t1;
+ t2 = $.$get$domRenderer();
+ t3 = _this.rootElement;
+ t3.toString;
+ t1.toString;
+ t2.toString;
+ t3.appendChild(t1);
+ },
+ update$1: function(_, oldSurface) {
+ var t1, _this = this;
+ _this.super$PersistedContainerSurface$update(0, oldSurface);
+ if (oldSurface.clipPath != _this.clipPath) {
+ _this._localClipBounds = null;
+ t1 = oldSurface._clipElement;
+ if (t1 != null)
+ J.remove$0$ax(t1);
+ _this.apply$0();
+ } else
+ _this._clipElement = oldSurface._clipElement;
+ oldSurface._clipElement = null;
+ },
+ discard$0: function() {
+ var t1 = this._clipElement;
+ if (t1 != null)
+ J.remove$0$ax(t1);
+ this._clipElement = null;
+ this.super$PersistedContainerSurface$discard();
+ },
+ $isClipPathEngineLayer: 1
+ };
+ H.PersistedOffset.prototype = {
+ recomputeTransformAndClip$0: function() {
+ var t2, t3, _this = this,
+ t1 = _this.parent.__engine$_transform;
+ _this.__engine$_transform = t1;
+ t2 = _this.dx;
+ if (t2 !== 0 || _this.dy !== 0) {
+ t1.toString;
+ t3 = new H.Matrix40(new Float32Array(16));
+ t3.setFrom$1(t1);
+ _this.__engine$_transform = t3;
+ t3.translate$2(0, t2, _this.dy);
+ }
+ _this._localTransformInverse = _this._projectedClip = null;
+ },
+ get$localTransformInverse: function() {
+ var _this = this,
+ t1 = _this._localTransformInverse;
+ return t1 == null ? _this._localTransformInverse = H.Matrix4_Matrix4$translationValues0(-_this.dx, -_this.dy, 0) : t1;
+ },
+ createElement$0: function(_) {
+ var element = document.createElement("flt-offset");
+ H.DomRenderer_setElementStyle(element, "position", "absolute");
+ H.DomRenderer_setElementStyle(element, "transform-origin", "0 0 0");
+ return element;
+ },
+ apply$0: function() {
+ var t2,
+ t1 = this.rootElement;
+ t1.toString;
+ t2 = "translate(" + H.S(this.dx) + "px, " + H.S(this.dy) + "px)";
+ t1.style.transform = t2;
+ },
+ update$1: function(_, oldSurface) {
+ var _this = this;
+ _this.super$PersistedContainerSurface$update(0, oldSurface);
+ if (oldSurface.dx !== _this.dx || oldSurface.dy !== _this.dy)
+ _this.apply$0();
+ },
+ $isOffsetEngineLayer: 1
+ };
+ H.PersistedOpacity.prototype = {
+ recomputeTransformAndClip$0: function() {
+ var t2, dx, dy, _this = this,
+ t1 = _this.parent.__engine$_transform;
+ _this.__engine$_transform = t1;
+ t2 = _this.offset;
+ dx = t2._dx;
+ dy = t2._dy;
+ if (dx !== 0 || dy !== 0) {
+ t1.toString;
+ t2 = new H.Matrix40(new Float32Array(16));
+ t2.setFrom$1(t1);
+ _this.__engine$_transform = t2;
+ t2.translate$2(0, dx, dy);
+ }
+ _this._projectedClip = _this._localTransformInverse = null;
+ },
+ get$localTransformInverse: function() {
+ var t1 = this._localTransformInverse;
+ if (t1 == null) {
+ t1 = this.offset;
+ t1 = this._localTransformInverse = H.Matrix4_Matrix4$translationValues0(-t1._dx, -t1._dy, 0);
+ }
+ return t1;
+ },
+ createElement$0: function(_) {
+ var element = $.$get$domRenderer().createElement$1(0, "flt-opacity");
+ H.DomRenderer_setElementStyle(element, "position", "absolute");
+ H.DomRenderer_setElementStyle(element, "transform-origin", "0 0 0");
+ return element;
+ },
+ apply$0: function() {
+ var t2,
+ t1 = this.rootElement;
+ t1.toString;
+ H.DomRenderer_setElementStyle(t1, "opacity", H.S(this.alpha / 255));
+ t2 = this.offset;
+ t2 = "translate(" + H.S(t2._dx) + "px, " + H.S(t2._dy) + "px)";
+ t1.style.transform = t2;
+ },
+ update$1: function(_, oldSurface) {
+ var _this = this;
+ _this.super$PersistedContainerSurface$update(0, oldSurface);
+ if (_this.alpha != oldSurface.alpha || !_this.offset.$eq(0, oldSurface.offset))
+ _this.apply$0();
+ },
+ $isOpacityEngineLayer: 1
+ };
+ H.SurfacePaint.prototype = {
+ set$blendMode: function(value) {
+ var _this = this;
+ if (_this._frozen) {
+ _this._paintData = _this._paintData.clone$0(0);
+ _this._frozen = false;
+ }
+ _this._paintData.blendMode = value;
+ },
+ get$style: function(_) {
+ var t1 = this._paintData.style;
+ return t1 == null ? C.PaintingStyle_0 : t1;
+ },
+ set$style: function(_, value) {
+ var _this = this;
+ if (_this._frozen) {
+ _this._paintData = _this._paintData.clone$0(0);
+ _this._frozen = false;
+ }
+ _this._paintData.style = value;
+ },
+ get$strokeWidth: function() {
+ var t1 = this._paintData.strokeWidth;
+ return t1 == null ? 0 : t1;
+ },
+ set$strokeWidth: function(value) {
+ var _this = this;
+ if (_this._frozen) {
+ _this._paintData = _this._paintData.clone$0(0);
+ _this._frozen = false;
+ }
+ _this._paintData.strokeWidth = value;
+ },
+ get$strokeCap: function() {
+ return C.StrokeCap_0;
+ },
+ set$isAntiAlias: function(value) {
+ var _this = this;
+ if (_this._frozen) {
+ _this._paintData = _this._paintData.clone$0(0);
+ _this._frozen = false;
+ }
+ _this._paintData.isAntiAlias = value;
+ },
+ get$color: function(_) {
+ var t1 = this._paintData.color;
+ return t1 == null ? C.Color_4278190080 : t1;
+ },
+ set$color: function(_, value) {
+ var t1, _this = this;
+ if (_this._frozen) {
+ _this._paintData = _this._paintData.clone$0(0);
+ _this._frozen = false;
+ }
+ t1 = _this._paintData;
+ t1.color = J.get$runtimeType$(value) === C.Type_Color_MG2 ? value : new P.Color(value.get$value(value));
+ },
+ set$shader: function(value) {
+ var _this = this;
+ if (_this._frozen) {
+ _this._paintData = _this._paintData.clone$0(0);
+ _this._frozen = false;
+ }
+ _this._paintData.shader = value;
+ },
+ set$maskFilter: function(value) {
+ var _this = this;
+ if (_this._frozen) {
+ _this._paintData = _this._paintData.clone$0(0);
+ _this._frozen = false;
+ }
+ _this._paintData.maskFilter = value;
+ },
+ toString$0: function(_) {
+ var t1, semicolon, _this = this;
+ if (_this.get$style(_this) === C.PaintingStyle_1) {
+ t1 = "Paint(" + _this.get$style(_this).toString$0(0);
+ t1 = _this.get$strokeWidth() !== 0 ? t1 + (" " + H.S(_this.get$strokeWidth())) : t1 + " hairline";
+ if (_this.get$strokeCap() !== C.StrokeCap_0)
+ t1 += " " + _this.get$strokeCap().toString$0(0);
+ semicolon = "; ";
+ } else {
+ semicolon = "";
+ t1 = "Paint(";
+ }
+ if (!_this._paintData.isAntiAlias) {
+ t1 += semicolon + "antialias off";
+ semicolon = "; ";
+ }
+ t1 = (!_this.get$color(_this).$eq(0, C.Color_4278190080) ? t1 + (semicolon + _this.get$color(_this).toString$0(0)) : t1) + ")";
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ $isPaint: 1
+ };
+ H.SurfacePaintData.prototype = {
+ clone$0: function(_) {
+ var _this = this,
+ t1 = new H.SurfacePaintData();
+ t1.blendMode = _this.blendMode;
+ t1.filterQuality = _this.filterQuality;
+ t1.maskFilter = _this.maskFilter;
+ t1.shader = _this.shader;
+ t1.isAntiAlias = _this.isAntiAlias;
+ t1.color = _this.color;
+ t1.colorFilter = _this.colorFilter;
+ t1.strokeWidth = _this.strokeWidth;
+ t1.style = _this.style;
+ t1.strokeJoin = _this.strokeJoin;
+ t1.strokeCap = _this.strokeCap;
+ return t1;
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.Conic.prototype = {
+ toQuads$0: function() {
+ var dst, t1, t2, t3, controlPointOffset, skipSubdivide, pointCount, hasNonFinitePoints, p, _this = this,
+ pointList = H.setRuntimeTypeInfo([], type$.JSArray_Offset),
+ subdivideCount = _this._computeSubdivisionCount$1(0.25),
+ quadCount = C.JSInt_methods._shlPositive$1(1, subdivideCount);
+ pointList.push(new P.Offset(_this.p0x, _this.p0y));
+ if (subdivideCount === 5) {
+ dst = new H._ConicPair();
+ _this._chop$1(dst);
+ t1 = dst.first;
+ t1.toString;
+ t2 = dst.second;
+ t2.toString;
+ t3 = t1.p1x;
+ if (t3 == t1.p2x && t1.p1y == t1.p2y && t2.p0x == t2.p1x && t2.p0y == t2.p1y) {
+ controlPointOffset = new P.Offset(t3, t1.p1y);
+ pointList.push(controlPointOffset);
+ pointList.push(controlPointOffset);
+ pointList.push(controlPointOffset);
+ pointList.push(new P.Offset(t2.p2x, t2.p2y));
+ quadCount = 2;
+ skipSubdivide = true;
+ } else
+ skipSubdivide = false;
+ } else
+ skipSubdivide = false;
+ if (!skipSubdivide)
+ H.Conic__subdivide(_this, subdivideCount, pointList);
+ pointCount = 2 * quadCount + 1;
+ p = 0;
+ while (true) {
+ if (!(p < pointCount)) {
+ hasNonFinitePoints = false;
+ break;
+ }
+ t1 = pointList[p];
+ t2 = t1._dx;
+ t2.toString;
+ if (!isNaN(t2)) {
+ t1 = t1._dy;
+ t1.toString;
+ t1 = isNaN(t1);
+ } else
+ t1 = true;
+ if (t1) {
+ hasNonFinitePoints = true;
+ break;
+ }
+ ++p;
+ }
+ if (hasNonFinitePoints)
+ for (t1 = pointCount - 1, t2 = _this.p1x, t3 = _this.p1y, p = 1; p < t1; ++p)
+ pointList[p] = new P.Offset(t2, t3);
+ return pointList;
+ },
+ _chop$1: function(pair) {
+ var w2, scaleHalf, _this = this,
+ t1 = _this.fW,
+ scale = 1 / (1 + t1),
+ newW = Math.sqrt(0.5 + t1 * 0.5),
+ t2 = _this.p1x,
+ t3 = t1 * t2,
+ t4 = _this.p1y,
+ t5 = t1 * t4,
+ t6 = _this.p0x,
+ t7 = _this.p2x,
+ t8 = (t6 + 2 * t3 + t7) * scale * 0.5,
+ t9 = _this.p0y,
+ t10 = _this.p2y,
+ t11 = (t9 + 2 * t5 + t10) * scale * 0.5,
+ m = new P.Offset(t8, t11);
+ if (isNaN(t8) || isNaN(t11)) {
+ w2 = t1 * 2;
+ scaleHalf = scale * 0.5;
+ m = new P.Offset((t6 + w2 * t2 + t7) * scaleHalf, (t9 + w2 * t4 + t10) * scaleHalf);
+ }
+ t1 = m._dx;
+ t2 = m._dy;
+ pair.first = new H.Conic(t6, t9, (t6 + t3) * scale, (t9 + t5) * scale, t1, t2, newW);
+ pair.second = new H.Conic(t1, t2, (t7 + t3) * scale, (t10 + t5) * scale, t7, t10, newW);
+ },
+ chopAtYExtrema$1: function(dst) {
+ var _this = this,
+ t = _this._findYExtrema$0();
+ if (t == null) {
+ dst.push(_this);
+ return;
+ }
+ if (!_this._chopAt$3$cleanupMiddle(t, dst, true)) {
+ dst.push(_this);
+ return;
+ }
+ },
+ _findYExtrema$0: function() {
+ var wP10, quadRoots, _this = this,
+ t1 = _this.p2y,
+ t2 = _this.p0y,
+ p20 = t1 - t2;
+ t1 = _this.fW;
+ wP10 = t1 * (_this.p1y - t2);
+ quadRoots = new H._QuadRoots();
+ if (quadRoots.findRoots$3(t1 * p20 - p20, p20 - 2 * wP10, wP10) === 1)
+ return quadRoots.root0;
+ return null;
+ },
+ _chopAt$3$cleanupMiddle: function(t, dst, cleanupMiddle) {
+ var chopPointX, chopPointY, t2, _this = this,
+ tx0 = _this.p0x,
+ ty0 = _this.p0y,
+ t1 = _this.fW,
+ tx1 = _this.p1x * t1,
+ ty1 = _this.p1y * t1,
+ tx2 = _this.p2x,
+ ty2 = _this.p2y,
+ dx0 = tx0 + (tx1 - tx0) * t,
+ dx2 = tx1 + (tx2 - tx1) * t,
+ dy0 = ty0 + (ty1 - ty0) * t,
+ dz0 = 1 + (t1 - 1) * t,
+ dz2 = t1 + (1 - t1) * t,
+ dz1 = dz0 + (dz2 - dz0) * t,
+ root = Math.sqrt(dz1);
+ if (Math.abs(root - 0) < 0.000244140625)
+ return false;
+ if (Math.abs(dz0 - 0) < 0.000244140625 || Math.abs(dz1 - 0) < 0.000244140625 || Math.abs(dz2 - 0) < 0.000244140625)
+ return false;
+ chopPointX = (dx0 + (dx2 - dx0) * t) / dz1;
+ chopPointY = (dy0 + (ty1 + (ty2 - ty1) * t - dy0) * t) / dz1;
+ t1 = _this.p0y;
+ t2 = _this.p2y;
+ dst.push(new H.Conic(tx0, t1, dx0 / dz0, chopPointY, chopPointX, chopPointY, dz0 / root));
+ dst.push(new H.Conic(chopPointX, chopPointY, dx2 / dz2, chopPointY, tx2, t2, dz2 / root));
+ return true;
+ },
+ _computeSubdivisionCount$1: function(tolerance) {
+ var a, k, x, y, error, pow2, _this = this;
+ if (tolerance < 0)
+ return 0;
+ a = _this.fW - 1;
+ k = a / (4 * (2 + a));
+ x = k * (_this.p0x - 2 * _this.p1x + _this.p2x);
+ y = k * (_this.p0y - 2 * _this.p1y + _this.p2y);
+ error = Math.sqrt(x * x + y * y);
+ for (pow2 = 0; pow2 < 5; ++pow2) {
+ if (error <= tolerance)
+ break;
+ error *= 0.25;
+ }
+ return pow2;
+ },
+ evalTangentAt$1: function(t) {
+ var t1, p20x, t2, t3, p20y, cx, cy, quadC, _this = this;
+ if (!(t === 0 && _this.p0x == _this.p1x && _this.p0y == _this.p1y))
+ t1 = t === 1 && _this.p1x == _this.p2x && _this.p1y == _this.p2y;
+ else
+ t1 = true;
+ if (t1)
+ return new P.Offset(_this.p2x - _this.p0x, _this.p2y - _this.p0y);
+ t1 = _this.p0x;
+ p20x = _this.p2x - t1;
+ t2 = _this.p2y;
+ t3 = _this.p0y;
+ p20y = t2 - t3;
+ t2 = _this.fW;
+ cx = t2 * (_this.p1x - t1);
+ cy = t2 * (_this.p1y - t3);
+ quadC = H._SkQuadCoefficients$(t2 * p20x - p20x, t2 * p20y - p20y, p20x - cx - cx, p20y - cy - cy, cx, cy);
+ return new P.Offset(quadC.evalX$1(t), quadC.evalY$1(t));
+ }
+ };
+ H._QuadBounds.prototype = {};
+ H._ConicBounds.prototype = {};
+ H._ConicPair.prototype = {};
+ H._CubicBounds.prototype = {};
+ H.SurfacePath.prototype = {
+ _resetFields$0: function() {
+ var _this = this;
+ _this.fLastMoveToIndex = 0;
+ _this._fillType = C.PathFillType_0;
+ _this._firstDirection = _this._convexityType = -1;
+ },
+ _copyFields$1: function(source) {
+ var _this = this;
+ _this._fillType = source._fillType;
+ _this.fLastMoveToIndex = source.fLastMoveToIndex;
+ _this._convexityType = source._convexityType;
+ _this._firstDirection = source._firstDirection;
+ },
+ set$fillType: function(value) {
+ this._fillType = value;
+ },
+ reset$0: function(_) {
+ if (this.pathRef._fVerbsLength !== 0) {
+ this.pathRef = H.PathRef$();
+ this._resetFields$0();
+ }
+ },
+ moveTo$2: function(_, x, y) {
+ var _this = this,
+ pointIndex = _this.pathRef.growForVerb$2(0, 0);
+ _this.fLastMoveToIndex = pointIndex + 1;
+ _this.pathRef.setPoint$3(pointIndex, x, y);
+ _this._firstDirection = _this._convexityType = -1;
+ },
+ _injectMoveToIfNeeded$0: function() {
+ var t2, x, y, pointIndex,
+ t1 = this.fLastMoveToIndex;
+ if (t1 <= 0) {
+ t2 = this.pathRef;
+ if (t2._fPointsLength === 0) {
+ x = 0;
+ y = 0;
+ } else {
+ pointIndex = 2 * (-t1 - 1);
+ t1 = t2._fPoints;
+ x = t1[pointIndex];
+ y = t1[pointIndex + 1];
+ }
+ this.moveTo$2(0, x, y);
+ }
+ },
+ lineTo$2: function(_, x, y) {
+ var pointIndex, _this = this;
+ if (_this.fLastMoveToIndex <= 0)
+ _this._injectMoveToIfNeeded$0();
+ pointIndex = _this.pathRef.growForVerb$2(1, 0);
+ _this.pathRef.setPoint$3(pointIndex, x, y);
+ _this._firstDirection = _this._convexityType = -1;
+ },
+ quadraticBezierTo$4: function(x1, y1, x2, y2) {
+ var pointIndex, _this = this;
+ _this._injectMoveToIfNeeded$0();
+ pointIndex = _this.pathRef.growForVerb$2(2, 0);
+ _this.pathRef.setPoint$3(pointIndex, x1, y1);
+ _this.pathRef.setPoint$3(pointIndex + 1, x2, y2);
+ _this._firstDirection = _this._convexityType = -1;
+ },
+ conicTo$5: function(_, x1, y1, x2, y2, w) {
+ var pointIndex, _this = this;
+ _this._injectMoveToIfNeeded$0();
+ pointIndex = _this.pathRef.growForVerb$2(3, w);
+ _this.pathRef.setPoint$3(pointIndex, x1, y1);
+ _this.pathRef.setPoint$3(pointIndex + 1, x2, y2);
+ _this._firstDirection = _this._convexityType = -1;
+ },
+ close$0: function(_) {
+ var _this = this,
+ t1 = _this.pathRef,
+ verbCount = t1._fVerbsLength;
+ if (verbCount !== 0 && t1._fVerbs[verbCount - 1] !== 5)
+ t1.growForVerb$2(5, 0);
+ t1 = _this.fLastMoveToIndex;
+ if (t1 >= 0)
+ _this.fLastMoveToIndex = -t1;
+ _this._firstDirection = _this._convexityType = -1;
+ },
+ addRect$1: function(_, rect) {
+ this.addRectWithDirection$3(rect, 0, 0);
+ },
+ _hasOnlyMoveTos$0: function() {
+ var i,
+ t1 = this.pathRef,
+ verbCount = t1._fVerbsLength;
+ for (t1 = t1._fVerbs, i = 0; i < verbCount; ++i)
+ switch (t1[i]) {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ return false;
+ }
+ return true;
+ },
+ addRectWithDirection$3: function(rect, direction, startIndex) {
+ var pointIndex1, pointIndex2, pointIndex3, t1, t2, t3, t4, _this = this,
+ isRect = _this._hasOnlyMoveTos$0(),
+ finalDirection = _this._hasOnlyMoveTos$0() ? direction : -1,
+ pointIndex0 = _this.pathRef.growForVerb$2(0, 0);
+ _this.fLastMoveToIndex = pointIndex0 + 1;
+ pointIndex1 = _this.pathRef.growForVerb$2(1, 0);
+ pointIndex2 = _this.pathRef.growForVerb$2(1, 0);
+ pointIndex3 = _this.pathRef.growForVerb$2(1, 0);
+ _this.pathRef.growForVerb$2(5, 0);
+ t1 = _this.pathRef;
+ if (direction === 0) {
+ t2 = rect.left;
+ t3 = rect.top;
+ t1.setPoint$3(pointIndex0, t2, t3);
+ t1 = _this.pathRef;
+ t4 = rect.right;
+ t1.setPoint$3(pointIndex1, t4, t3);
+ t3 = _this.pathRef;
+ t1 = rect.bottom;
+ t3.setPoint$3(pointIndex2, t4, t1);
+ _this.pathRef.setPoint$3(pointIndex3, t2, t1);
+ } else {
+ t2 = rect.left;
+ t3 = rect.bottom;
+ t1.setPoint$3(pointIndex3, t2, t3);
+ t1 = _this.pathRef;
+ t4 = rect.right;
+ t1.setPoint$3(pointIndex2, t4, t3);
+ t3 = _this.pathRef;
+ t1 = rect.top;
+ t3.setPoint$3(pointIndex1, t4, t1);
+ _this.pathRef.setPoint$3(pointIndex0, t2, t1);
+ }
+ t1 = _this.pathRef;
+ t1.fIsRect = isRect;
+ t1.fRRectOrOvalIsCCW = direction === 1;
+ t1.fRRectOrOvalStartIdx = 0;
+ _this._firstDirection = _this._convexityType = -1;
+ _this._firstDirection = finalDirection;
+ },
+ addOval$1: function(_, oval) {
+ this._addOval$3(oval, 0, 0);
+ },
+ _addOval$3: function(oval, direction, startIndex) {
+ var t1, _this = this,
+ isOval = _this._hasOnlyMoveTos$0(),
+ left = oval.left,
+ right = oval.right,
+ centerX = (left + right) / 2,
+ $top = oval.top,
+ bottom = oval.bottom,
+ centerY = ($top + bottom) / 2;
+ if (direction === 0) {
+ _this.moveTo$2(0, right, centerY);
+ _this.conicTo$5(0, right, bottom, centerX, bottom, 0.707106781);
+ _this.conicTo$5(0, left, bottom, left, centerY, 0.707106781);
+ _this.conicTo$5(0, left, $top, centerX, $top, 0.707106781);
+ _this.conicTo$5(0, right, $top, right, centerY, 0.707106781);
+ } else {
+ _this.moveTo$2(0, right, centerY);
+ _this.conicTo$5(0, right, $top, centerX, $top, 0.707106781);
+ _this.conicTo$5(0, left, $top, left, centerY, 0.707106781);
+ _this.conicTo$5(0, left, bottom, centerX, bottom, 0.707106781);
+ _this.conicTo$5(0, right, bottom, right, centerY, 0.707106781);
+ }
+ _this.close$0(0);
+ t1 = _this.pathRef;
+ t1.fIsOval = isOval;
+ t1.fRRectOrOvalIsCCW = direction === 1;
+ t1.fRRectOrOvalStartIdx = 0;
+ _this._firstDirection = _this._convexityType = -1;
+ if (isOval)
+ _this._firstDirection = direction;
+ },
+ addRRect$1: function(_, rrect) {
+ var t6, width, height, tlRadiusX, trRadiusX, blRadiusX, brRadiusX, tlRadiusY, trRadiusY, blRadiusY, brRadiusY, scale, _this = this,
+ isRRect = _this._hasOnlyMoveTos$0(),
+ t1 = rrect.left,
+ t2 = rrect.top,
+ t3 = rrect.right,
+ t4 = rrect.bottom,
+ bounds = new P.Rect(t1, t2, t3, t4),
+ t5 = rrect.tlRadiusX;
+ if (t5 === 0 || rrect.tlRadiusY === 0)
+ if (rrect.trRadiusX === 0 || rrect.trRadiusY === 0)
+ if (rrect.blRadiusX === 0 || rrect.blRadiusY === 0)
+ t6 = rrect.brRadiusX === 0 || rrect.brRadiusY === 0;
+ else
+ t6 = false;
+ else
+ t6 = false;
+ else
+ t6 = false;
+ if (t6 || t1 >= t3 || t2 >= t4)
+ _this.addRectWithDirection$3(bounds, 0, 3);
+ else if (H._isRRectOval(rrect))
+ _this._addOval$3(bounds, 0, 3);
+ else {
+ width = t3 - t1;
+ height = t4 - t2;
+ tlRadiusX = Math.max(0, t5);
+ trRadiusX = Math.max(0, rrect.trRadiusX);
+ blRadiusX = Math.max(0, rrect.blRadiusX);
+ brRadiusX = Math.max(0, rrect.brRadiusX);
+ tlRadiusY = Math.max(0, rrect.tlRadiusY);
+ trRadiusY = Math.max(0, rrect.trRadiusY);
+ blRadiusY = Math.max(0, rrect.blRadiusY);
+ brRadiusY = Math.max(0, rrect.brRadiusY);
+ scale = H._computeMinScale(blRadiusY, brRadiusY, height, H._computeMinScale(tlRadiusY, trRadiusY, height, H._computeMinScale(blRadiusX, brRadiusX, width, H._computeMinScale(tlRadiusX, trRadiusX, width, 1))));
+ t5 = t4 - scale * blRadiusY;
+ _this.moveTo$2(0, t1, t5);
+ _this.lineTo$2(0, t1, t2 + scale * tlRadiusY);
+ _this.conicTo$5(0, t1, t2, t1 + scale * tlRadiusX, t2, 0.707106781);
+ _this.lineTo$2(0, t3 - scale * trRadiusX, t2);
+ _this.conicTo$5(0, t3, t2, t3, t2 + scale * trRadiusY, 0.707106781);
+ _this.lineTo$2(0, t3, t4 - scale * brRadiusY);
+ _this.conicTo$5(0, t3, t4, t3 - scale * brRadiusX, t4, 0.707106781);
+ _this.lineTo$2(0, t1 + scale * blRadiusX, t4);
+ _this.conicTo$5(0, t1, t4, t1, t5, 0.707106781);
+ _this.close$0(0);
+ _this._firstDirection = isRRect ? 0 : -1;
+ t1 = _this.pathRef;
+ t1.fIsRRect = isRRect;
+ t1.fRRectOrOvalIsCCW = false;
+ t1.fRRectOrOvalStartIdx = 6;
+ }
+ },
+ contains$1: function(_, point) {
+ var bounds, x, y, t1, windings, evenOddFill, w, onCurveCount, iter, _buffer, tangents, done, oldCount, t2, last, tangent, dx, dy, index, test, t3, offset, _this = this;
+ if (_this.pathRef._fVerbsLength === 0)
+ return false;
+ bounds = _this.getBounds$0(0);
+ x = point._dx;
+ y = point._dy;
+ if (x < bounds.left || y < bounds.top || x > bounds.right || y > bounds.bottom)
+ return false;
+ t1 = _this.pathRef;
+ windings = new H.PathWinding(t1, x, y, new Float32Array(18));
+ windings._walkPath$0();
+ evenOddFill = C.PathFillType_1 === _this._fillType;
+ w = windings._w;
+ if ((evenOddFill ? w & 1 : w) !== 0)
+ return true;
+ onCurveCount = windings._onCurveCount;
+ if (onCurveCount <= 1)
+ return C.JSBool_methods.$xor(onCurveCount !== 0, false);
+ t1 = onCurveCount & 1;
+ if (t1 !== 0 || evenOddFill)
+ return t1 !== 0;
+ iter = H.PathIterator$(_this.pathRef, true);
+ _buffer = new Float32Array(18);
+ tangents = H.setRuntimeTypeInfo([], type$.JSArray_Offset);
+ t1 = iter.pathRef;
+ done = false;
+ do {
+ oldCount = tangents.length;
+ switch (iter.next$1(0, _buffer)) {
+ case 0:
+ case 5:
+ break;
+ case 1:
+ H.tangentLine(_buffer, x, y, tangents);
+ break;
+ case 2:
+ H.tangentQuad(_buffer, x, y, tangents);
+ break;
+ case 3:
+ t2 = iter._conicWeightIndex;
+ H.tangentConic(_buffer, x, y, t1._conicWeights[t2], tangents);
+ break;
+ case 4:
+ H.tangentCubic(_buffer, x, y, tangents);
+ break;
+ case 6:
+ done = true;
+ break;
+ }
+ t2 = tangents.length;
+ if (t2 > oldCount) {
+ last = t2 - 1;
+ tangent = tangents[last];
+ dx = tangent._dx;
+ dy = tangent._dy;
+ if (Math.abs(dx * dx + dy * dy - 0) < 0.000244140625)
+ C.JSArray_methods.remove$1(tangents, last);
+ else
+ for (index = 0; index < last; ++index) {
+ test = tangents[index];
+ t2 = test._dx;
+ t3 = test._dy;
+ if (Math.abs(t2 * dy - t3 * dx - 0) < 0.000244140625) {
+ t2 = dx * t2;
+ if (t2 < 0)
+ t2 = -1;
+ else
+ t2 = t2 > 0 ? 1 : 0;
+ if (t2 <= 0) {
+ t2 = dy * t3;
+ if (t2 < 0)
+ t2 = -1;
+ else
+ t2 = t2 > 0 ? 1 : 0;
+ t2 = t2 <= 0;
+ } else
+ t2 = false;
+ } else
+ t2 = false;
+ if (t2) {
+ offset = C.JSArray_methods.removeAt$1(tangents, last);
+ if (index !== tangents.length)
+ tangents[index] = offset;
+ break;
+ }
+ }
+ }
+ } while (!done);
+ return tangents.length !== 0 || false;
+ },
+ shift$1: function(offset) {
+ var t6,
+ t1 = offset._dx,
+ t2 = offset._dy,
+ t3 = this.pathRef,
+ t4 = H.PathRef__fPointsFromSource(t3, t1, t2),
+ t5 = t3._fVerbsCapacity,
+ verbs = new Uint8Array(t5);
+ C.NativeUint8List_methods.setAll$2(verbs, 0, t3._fVerbs);
+ t4 = new H.PathRef(t4, verbs);
+ t5 = t3._conicWeightsCapacity;
+ t4._conicWeightsCapacity = t5;
+ t4._conicWeightsLength = t3._conicWeightsLength;
+ if (t3._conicWeights != null) {
+ t5 = new Float32Array(t5);
+ t4._conicWeights = t5;
+ t6 = t3._conicWeights;
+ t6.toString;
+ C.NativeFloat32List_methods.setAll$2(t5, 0, t6);
+ }
+ t4._fVerbsCapacity = t3._fVerbsCapacity;
+ t4._fVerbsLength = t3._fVerbsLength;
+ t4._fPointsCapacity = t3._fPointsCapacity;
+ t4._fPointsLength = t3._fPointsLength;
+ t5 = t3.fBoundsIsDirty;
+ t4.fBoundsIsDirty = t5;
+ if (!t5) {
+ t4.fBounds = t3.fBounds.translate$2(0, t1, t2);
+ t5 = t3.cachedBounds;
+ t4.cachedBounds = t5 == null ? null : t5.translate$2(0, t1, t2);
+ t4.fIsFinite = t3.fIsFinite;
+ }
+ t4.fSegmentMask = t3.fSegmentMask;
+ t4.fIsOval = t3.fIsOval;
+ t4.fIsRRect = t3.fIsRRect;
+ t4.fIsRect = t3.fIsRect;
+ t4.fRRectOrOvalIsCCW = t3.fRRectOrOvalIsCCW;
+ t4.fRRectOrOvalStartIdx = t3.fRRectOrOvalStartIdx;
+ t1 = new H.SurfacePath(t4, C.PathFillType_0);
+ t1._copyFields$1(this);
+ return t1;
+ },
+ getBounds$0: function(_) {
+ var t2, iter, points, ltrbInitialized, left, $top, right, bottom, minX, maxX, minY, maxY, cubicBounds, quadBounds, conicBounds, verb, pIndex, pointIndex, x1, pointIndex0, y1, cpX, cpY, x2, y2, t3, t4, t5, denom, t10, tprime, t6, t7, extremaX, extremaY, t20, tprime2, extrema2X, extrema2Y, roots, P20x, wP10x, $B, src2w, P20y, wP10y, startX, startY, cpX1, cpY1, cpX2, cpY2, endX, endY, a, b, s, t, newBounds, _this = this,
+ t1 = _this.pathRef;
+ if ((t1.fIsRRect ? t1.fRRectOrOvalStartIdx : -1) === -1)
+ t2 = (t1.fIsOval ? t1.fRRectOrOvalStartIdx : -1) !== -1;
+ else
+ t2 = true;
+ if (t2)
+ return t1.getBounds$0(0);
+ if (!t1.fBoundsIsDirty && t1.cachedBounds != null) {
+ t1 = t1.cachedBounds;
+ t1.toString;
+ return t1;
+ }
+ iter = new H.PathRefIterator(t1);
+ iter.PathRefIterator$1(t1);
+ points = _this.pathRef._fPoints;
+ for (ltrbInitialized = false, left = 0, $top = 0, right = 0, bottom = 0, minX = 0, maxX = 0, minY = 0, maxY = 0, cubicBounds = null, quadBounds = null, conicBounds = null; verb = iter.nextIndex$0(), verb !== 6;) {
+ pIndex = iter.iterIndex;
+ switch (verb) {
+ case 0:
+ maxX = points[pIndex];
+ maxY = points[pIndex + 1];
+ minY = maxY;
+ minX = maxX;
+ break;
+ case 1:
+ maxX = points[pIndex + 2];
+ maxY = points[pIndex + 3];
+ minY = maxY;
+ minX = maxX;
+ break;
+ case 2:
+ if (quadBounds == null)
+ quadBounds = new H._QuadBounds();
+ pointIndex = pIndex + 1;
+ x1 = points[pIndex];
+ pointIndex0 = pointIndex + 1;
+ y1 = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ cpX = points[pointIndex0];
+ pointIndex0 = pointIndex + 1;
+ cpY = points[pointIndex];
+ x2 = points[pointIndex0];
+ y2 = points[pointIndex0 + 1];
+ t2 = quadBounds.minX = Math.min(x1, x2);
+ t3 = quadBounds.minY = Math.min(y1, y2);
+ t4 = quadBounds.maxX = Math.max(x1, x2);
+ t5 = quadBounds.maxY = Math.max(y1, y2);
+ denom = x1 - 2 * cpX + x2;
+ if (Math.abs(denom) > 0.000244140625) {
+ t10 = (x1 - cpX) / denom;
+ if (t10 >= 0 && t10 <= 1) {
+ tprime = 1 - t10;
+ t6 = tprime * tprime;
+ t7 = 2 * t10 * tprime;
+ t10 *= t10;
+ extremaX = t6 * x1 + t7 * cpX + t10 * x2;
+ extremaY = t6 * y1 + t7 * cpY + t10 * y2;
+ t2 = Math.min(t2, extremaX);
+ quadBounds.minX = t2;
+ t4 = Math.max(t4, extremaX);
+ quadBounds.maxX = t4;
+ t3 = Math.min(t3, extremaY);
+ quadBounds.minY = t3;
+ t5 = Math.max(t5, extremaY);
+ quadBounds.maxY = t5;
+ }
+ }
+ denom = y1 - 2 * cpY + y2;
+ if (Math.abs(denom) > 0.000244140625) {
+ t20 = (y1 - cpY) / denom;
+ if (t20 >= 0 && t20 <= 1) {
+ tprime2 = 1 - t20;
+ t6 = tprime2 * tprime2;
+ t7 = 2 * t20 * tprime2;
+ t20 *= t20;
+ extrema2X = t6 * x1 + t7 * cpX + t20 * x2;
+ extrema2Y = t6 * y1 + t7 * cpY + t20 * y2;
+ t2 = Math.min(t2, extrema2X);
+ quadBounds.minX = t2;
+ t4 = Math.max(t4, extrema2X);
+ quadBounds.maxX = t4;
+ t3 = Math.min(t3, extrema2Y);
+ quadBounds.minY = t3;
+ t5 = Math.max(t5, extrema2Y);
+ quadBounds.maxY = t5;
+ }
+ maxY = t5;
+ maxX = t4;
+ minY = t3;
+ minX = t2;
+ } else {
+ maxY = t5;
+ maxX = t4;
+ minY = t3;
+ minX = t2;
+ }
+ break;
+ case 3:
+ if (conicBounds == null)
+ conicBounds = new H._ConicBounds();
+ t2 = t1._conicWeights[iter._conicWeightIndex];
+ pointIndex = pIndex + 1;
+ x1 = points[pIndex];
+ pointIndex0 = pointIndex + 1;
+ y1 = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ cpX = points[pointIndex0];
+ pointIndex0 = pointIndex + 1;
+ cpY = points[pointIndex];
+ x2 = points[pointIndex0];
+ y2 = points[pointIndex0 + 1];
+ conicBounds.minX = Math.min(x1, x2);
+ conicBounds.minY = Math.min(y1, y2);
+ conicBounds.maxX = Math.max(x1, x2);
+ conicBounds.maxY = Math.max(y1, y2);
+ roots = new H._QuadRoots();
+ P20x = x2 - x1;
+ wP10x = t2 * (cpX - x1);
+ if (roots.findRoots$3(t2 * P20x - P20x, P20x - 2 * wP10x, wP10x) !== 0) {
+ t3 = roots.root0;
+ t3.toString;
+ if (t3 >= 0 && t3 <= 1) {
+ $B = 2 * (t2 - 1);
+ denom = (-$B * t3 + $B) * t3 + 1;
+ src2w = cpX * t2;
+ extremaX = (((x2 - 2 * src2w + x1) * t3 + 2 * (src2w - x1)) * t3 + x1) / denom;
+ src2w = cpY * t2;
+ extremaY = (((y2 - 2 * src2w + y1) * t3 + 2 * (src2w - y1)) * t3 + y1) / denom;
+ conicBounds.minX = Math.min(conicBounds.minX, extremaX);
+ conicBounds.maxX = Math.max(conicBounds.maxX, extremaX);
+ conicBounds.minY = Math.min(conicBounds.minY, extremaY);
+ conicBounds.maxY = Math.max(conicBounds.maxY, extremaY);
+ }
+ }
+ P20y = y2 - y1;
+ wP10y = t2 * (cpY - y1);
+ if (roots.findRoots$3(t2 * P20y - P20y, P20y - 2 * wP10y, wP10y) !== 0) {
+ t3 = roots.root0;
+ t3.toString;
+ if (t3 >= 0 && t3 <= 1) {
+ $B = 2 * (t2 - 1);
+ denom = (-$B * t3 + $B) * t3 + 1;
+ src2w = cpX * t2;
+ extrema2X = (((x2 - 2 * src2w + x1) * t3 + 2 * (src2w - x1)) * t3 + x1) / denom;
+ src2w = cpY * t2;
+ extrema2Y = (((y2 - 2 * src2w + y1) * t3 + 2 * (src2w - y1)) * t3 + y1) / denom;
+ conicBounds.minX = Math.min(conicBounds.minX, extrema2X);
+ conicBounds.maxX = Math.max(conicBounds.maxX, extrema2X);
+ conicBounds.minY = Math.min(conicBounds.minY, extrema2Y);
+ conicBounds.maxY = Math.max(conicBounds.maxY, extrema2Y);
+ }
+ }
+ minX = conicBounds.minX;
+ minY = conicBounds.minY;
+ maxX = conicBounds.maxX;
+ maxY = conicBounds.maxY;
+ break;
+ case 4:
+ if (cubicBounds == null)
+ cubicBounds = new H._CubicBounds();
+ pointIndex = pIndex + 1;
+ startX = points[pIndex];
+ pointIndex0 = pointIndex + 1;
+ startY = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ cpX1 = points[pointIndex0];
+ pointIndex0 = pointIndex + 1;
+ cpY1 = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ cpX2 = points[pointIndex0];
+ pointIndex0 = pointIndex + 1;
+ cpY2 = points[pointIndex];
+ endX = points[pointIndex0];
+ endY = points[pointIndex0 + 1];
+ t2 = Math.min(startX, endX);
+ cubicBounds.minX = t2;
+ cubicBounds.minY = Math.min(startY, endY);
+ t3 = Math.max(startX, endX);
+ cubicBounds.maxX = t3;
+ cubicBounds.maxY = Math.max(startY, endY);
+ if (!(startX < cpX1 && cpX1 < cpX2 && cpX2 < endX))
+ t4 = startX > cpX1 && cpX1 > cpX2 && cpX2 > endX;
+ else
+ t4 = true;
+ if (!t4) {
+ t4 = -startX;
+ a = t4 + 3 * (cpX1 - cpX2) + endX;
+ b = 2 * (startX - 2 * cpX1 + cpX2);
+ s = b * b - 4 * a * (t4 + cpX1);
+ if (s >= 0 && Math.abs(a) > 0.000244140625) {
+ t4 = -b;
+ t5 = 2 * a;
+ if (s === 0) {
+ t = t4 / t5;
+ tprime = 1 - t;
+ if (t >= 0 && t <= 1) {
+ t4 = 3 * tprime;
+ extremaX = tprime * tprime * tprime * startX + t4 * tprime * t * cpX1 + t4 * t * t * cpX2 + t * t * t * endX;
+ cubicBounds.minX = Math.min(extremaX, t2);
+ cubicBounds.maxX = Math.max(extremaX, t3);
+ }
+ } else {
+ s = Math.sqrt(s);
+ t = (t4 - s) / t5;
+ tprime = 1 - t;
+ if (t >= 0 && t <= 1) {
+ t2 = 3 * tprime;
+ extremaX = tprime * tprime * tprime * startX + t2 * tprime * t * cpX1 + t2 * t * t * cpX2 + t * t * t * endX;
+ cubicBounds.minX = Math.min(extremaX, cubicBounds.minX);
+ cubicBounds.maxX = Math.max(extremaX, cubicBounds.maxX);
+ }
+ t = (t4 + s) / t5;
+ tprime = 1 - t;
+ if (t >= 0 && t <= 1) {
+ t2 = 3 * tprime;
+ extremaX = tprime * tprime * tprime * startX + t2 * tprime * t * cpX1 + t2 * t * t * cpX2 + t * t * t * endX;
+ cubicBounds.minX = Math.min(extremaX, cubicBounds.minX);
+ cubicBounds.maxX = Math.max(extremaX, cubicBounds.maxX);
+ }
+ }
+ }
+ }
+ if (!(startY < cpY1 && cpY1 < cpY2 && cpY2 < endY))
+ t2 = startY > cpY1 && cpY1 > cpY2 && cpY2 > endY;
+ else
+ t2 = true;
+ if (!t2) {
+ t2 = -startY;
+ a = t2 + 3 * (cpY1 - cpY2) + endY;
+ b = 2 * (startY - 2 * cpY1 + cpY2);
+ s = b * b - 4 * a * (t2 + cpY1);
+ if (s >= 0 && Math.abs(a) > 0.000244140625) {
+ t2 = -b;
+ t3 = 2 * a;
+ if (s === 0) {
+ t = t2 / t3;
+ tprime = 1 - t;
+ if (t >= 0 && t <= 1) {
+ t2 = 3 * tprime;
+ extremaY = tprime * tprime * tprime * startY + t2 * tprime * t * cpY1 + t2 * t * t * cpY2 + t * t * t * endY;
+ cubicBounds.minY = Math.min(extremaY, cubicBounds.minY);
+ cubicBounds.maxY = Math.max(extremaY, cubicBounds.maxY);
+ }
+ } else {
+ s = Math.sqrt(s);
+ t = (t2 - s) / t3;
+ tprime = 1 - t;
+ if (t >= 0 && t <= 1) {
+ t4 = 3 * tprime;
+ extremaY = tprime * tprime * tprime * startY + t4 * tprime * t * cpY1 + t4 * t * t * cpY2 + t * t * t * endY;
+ cubicBounds.minY = Math.min(extremaY, cubicBounds.minY);
+ cubicBounds.maxY = Math.max(extremaY, cubicBounds.maxY);
+ }
+ t2 = (t2 + s) / t3;
+ tprime2 = 1 - t2;
+ if (t2 >= 0 && t2 <= 1) {
+ t3 = 3 * tprime2;
+ extremaY = tprime2 * tprime2 * tprime2 * startY + t3 * tprime2 * t2 * cpY1 + t3 * t2 * t2 * cpY2 + t2 * t2 * t2 * endY;
+ cubicBounds.minY = Math.min(extremaY, cubicBounds.minY);
+ cubicBounds.maxY = Math.max(extremaY, cubicBounds.maxY);
+ }
+ }
+ }
+ }
+ minX = cubicBounds.minX;
+ minY = cubicBounds.minY;
+ maxX = cubicBounds.maxX;
+ maxY = cubicBounds.maxY;
+ break;
+ }
+ if (!ltrbInitialized) {
+ bottom = maxY;
+ right = maxX;
+ $top = minY;
+ left = minX;
+ ltrbInitialized = true;
+ } else {
+ left = Math.min(left, minX);
+ right = Math.max(right, maxX);
+ $top = Math.min($top, minY);
+ bottom = Math.max(bottom, maxY);
+ }
+ }
+ newBounds = ltrbInitialized ? new P.Rect(left, $top, right, bottom) : C.Rect_0_0_0_0;
+ _this.pathRef.getBounds$0(0);
+ return _this.pathRef.cachedBounds = newBounds;
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ },
+ $isPath: 1
+ };
+ H._SkQuadCoefficients.prototype = {
+ evalX$1: function(t) {
+ return (this.ax * t + this.bx) * t + this.cx;
+ },
+ evalY$1: function(t) {
+ return (this.ay * t + this.by) * t + this.cy;
+ }
+ };
+ H.PathRef.prototype = {
+ setPoint$3: function(pointIndex, x, y) {
+ var index = pointIndex * 2,
+ t1 = this._fPoints;
+ t1[index] = x;
+ t1[index + 1] = y;
+ },
+ atPoint$1: function(index) {
+ var t1 = this._fPoints,
+ t2 = index * 2;
+ return new P.Offset(t1[t2], t1[t2 + 1]);
+ },
+ getBounds$0: function(_) {
+ var t1;
+ if (this.fBoundsIsDirty)
+ this._computeBounds$0();
+ t1 = this.fBounds;
+ t1.toString;
+ return t1;
+ },
+ _getRect$0: function() {
+ var _this = this;
+ return new P.Rect(_this.atPoint$1(0)._dx, _this.atPoint$1(0)._dy, _this.atPoint$1(1)._dx, _this.atPoint$1(2)._dy);
+ },
+ _getRRect$0: function() {
+ var pts, cornerIndex, verb, controlPx, controlPy, vector1_0x, vector1_0y, t1, t2, dx, dy, t3,
+ bounds = this.getBounds$0(0),
+ radii = H.setRuntimeTypeInfo([], type$.JSArray_Radius),
+ iter = new H.PathRefIterator(this);
+ iter.PathRefIterator$1(this);
+ pts = new Float32Array(8);
+ iter.next$1(0, pts);
+ for (cornerIndex = 0; verb = iter.next$1(0, pts), verb !== 6;)
+ if (3 === verb) {
+ controlPx = pts[2];
+ controlPy = pts[3];
+ vector1_0x = controlPx - pts[0];
+ vector1_0y = controlPy - pts[1];
+ t1 = pts[4];
+ t2 = pts[5];
+ if (vector1_0x !== 0) {
+ dx = Math.abs(vector1_0x);
+ dy = Math.abs(t2 - controlPy);
+ } else {
+ dy = Math.abs(vector1_0y);
+ dx = vector1_0y !== 0 ? Math.abs(t1 - controlPx) : Math.abs(vector1_0x);
+ }
+ radii.push(new P.Radius(dx, dy));
+ ++cornerIndex;
+ }
+ t1 = radii[0];
+ t2 = radii[1];
+ t3 = radii[2];
+ return P.RRect$fromRectAndCorners(bounds, radii[3], t3, t1, t2);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return this.equals$1(type$.PathRef._as(other));
+ },
+ equals$1: function(ref) {
+ var pointCount, len, t1, t2, i, weightCount, verbCount, _this = this;
+ if (_this.fSegmentMask !== ref.fSegmentMask)
+ return false;
+ pointCount = _this._fPointsLength;
+ if (pointCount !== ref._fPointsLength)
+ return false;
+ for (len = pointCount * 2, t1 = _this._fPoints, t2 = ref._fPoints, i = 0; i < len; ++i)
+ if (t1[i] !== t2[i])
+ return false;
+ t1 = _this._conicWeights;
+ if (t1 == null) {
+ if (ref._conicWeights != null)
+ return false;
+ } else {
+ t2 = ref._conicWeights;
+ if (t2 == null)
+ return false;
+ weightCount = t1.length;
+ if (t2.length !== weightCount)
+ return false;
+ for (i = 0; i < weightCount; ++i)
+ if (t1[i] !== t2[i])
+ return false;
+ }
+ verbCount = _this._fVerbsLength;
+ if (verbCount !== ref._fVerbsLength)
+ return false;
+ for (t1 = _this._fVerbs, t2 = ref._fVerbs, i = 0; i < verbCount; ++i)
+ if (t1[i] !== t2[i])
+ return false;
+ return true;
+ },
+ _resizePoints$1: function(newLength) {
+ var t1, newPoints, _this = this;
+ if (newLength > _this._fPointsCapacity) {
+ t1 = newLength + 10;
+ _this._fPointsCapacity = t1;
+ newPoints = new Float32Array(t1 * 2);
+ newPoints.set.apply(newPoints, [_this._fPoints]);
+ _this._fPoints = newPoints;
+ }
+ _this._fPointsLength = newLength;
+ },
+ _resizeVerbs$1: function(newLength) {
+ var t1, newVerbs, _this = this;
+ if (newLength > _this._fVerbsCapacity) {
+ t1 = newLength + 8;
+ _this._fVerbsCapacity = t1;
+ newVerbs = new Uint8Array(t1);
+ newVerbs.set.apply(newVerbs, [_this._fVerbs]);
+ _this._fVerbs = newVerbs;
+ }
+ _this._fVerbsLength = newLength;
+ },
+ _resizeConicWeights$1: function(newLength) {
+ var t1, newWeights, _this = this;
+ if (newLength > _this._conicWeightsCapacity) {
+ t1 = newLength + 4;
+ _this._conicWeightsCapacity = t1;
+ newWeights = new Float32Array(t1);
+ t1 = _this._conicWeights;
+ if (t1 != null)
+ newWeights.set.apply(newWeights, [t1]);
+ _this._conicWeights = newWeights;
+ }
+ _this._conicWeightsLength = newLength;
+ },
+ _computeBounds$0: function() {
+ var t1, maxX, maxY, accum, len, minY, minX, i, x, y, _this = this,
+ pointCount = _this._fPointsLength;
+ _this.fBoundsIsDirty = false;
+ _this.cachedBounds = null;
+ if (pointCount === 0) {
+ _this.fBounds = C.Rect_0_0_0_0;
+ _this.fIsFinite = true;
+ } else {
+ t1 = _this._fPoints;
+ maxX = t1[0];
+ maxY = t1[1];
+ accum = 0 * maxX * maxY;
+ for (len = 2 * pointCount, minY = maxY, minX = maxX, i = 2; i < len; i += 2) {
+ x = t1[i];
+ y = t1[i + 1];
+ accum = accum * x * y;
+ minX = Math.min(minX, x);
+ minY = Math.min(minY, y);
+ maxX = Math.max(maxX, x);
+ maxY = Math.max(maxY, y);
+ }
+ if (accum * 0 === 0) {
+ _this.fBounds = new P.Rect(minX, minY, maxX, maxY);
+ _this.fIsFinite = true;
+ } else {
+ _this.fBounds = C.Rect_0_0_0_0;
+ _this.fIsFinite = false;
+ }
+ }
+ },
+ growForVerb$2: function(verb, weight) {
+ var pCnt, mask, verbCount, weightCount, ptsIndex, _this = this;
+ switch (verb) {
+ case 0:
+ pCnt = 1;
+ mask = 0;
+ break;
+ case 1:
+ pCnt = 1;
+ mask = 1;
+ break;
+ case 2:
+ pCnt = 2;
+ mask = 2;
+ break;
+ case 3:
+ pCnt = 2;
+ mask = 4;
+ break;
+ case 4:
+ pCnt = 3;
+ mask = 8;
+ break;
+ case 5:
+ pCnt = 0;
+ mask = 0;
+ break;
+ case 6:
+ pCnt = 0;
+ mask = 0;
+ break;
+ default:
+ pCnt = 0;
+ mask = 0;
+ break;
+ }
+ _this.fSegmentMask |= mask;
+ _this.fBoundsIsDirty = true;
+ _this.startEdit$0();
+ verbCount = _this._fVerbsLength;
+ _this._resizeVerbs$1(verbCount + 1);
+ _this._fVerbs[verbCount] = verb;
+ if (3 === verb) {
+ weightCount = _this._conicWeightsLength;
+ _this._resizeConicWeights$1(weightCount + 1);
+ _this._conicWeights[weightCount] = weight;
+ }
+ ptsIndex = _this._fPointsLength;
+ _this._resizePoints$1(ptsIndex + pCnt);
+ return ptsIndex;
+ },
+ startEdit$0: function() {
+ var _this = this;
+ _this.fIsRect = _this.fIsRRect = _this.fIsOval = false;
+ _this.cachedBounds = null;
+ _this.fBoundsIsDirty = true;
+ }
+ };
+ H.PathRefIterator.prototype = {
+ PathRefIterator$1: function(pathRef) {
+ var t1;
+ this._pointIndex = 0;
+ t1 = this.pathRef;
+ if (t1.fBoundsIsDirty)
+ t1._computeBounds$0();
+ if (!t1.fIsFinite)
+ this._verbIndex = t1._fVerbsLength;
+ },
+ nextIndex$0: function() {
+ var verb, _this = this,
+ t1 = _this._verbIndex,
+ t2 = _this.pathRef;
+ if (t1 === t2._fVerbsLength)
+ return 6;
+ t2 = t2._fVerbs;
+ _this._verbIndex = t1 + 1;
+ verb = t2[t1];
+ switch (verb) {
+ case 0:
+ t1 = _this._pointIndex;
+ _this.iterIndex = t1;
+ _this._pointIndex = t1 + 2;
+ break;
+ case 1:
+ t1 = _this._pointIndex;
+ _this.iterIndex = t1 - 2;
+ _this._pointIndex = t1 + 2;
+ break;
+ case 3:
+ ++_this._conicWeightIndex;
+ t1 = _this._pointIndex;
+ _this.iterIndex = t1 - 2;
+ _this._pointIndex = t1 + 4;
+ break;
+ case 2:
+ t1 = _this._pointIndex;
+ _this.iterIndex = t1 - 2;
+ _this._pointIndex = t1 + 4;
+ break;
+ case 4:
+ t1 = _this._pointIndex;
+ _this.iterIndex = t1 - 2;
+ _this._pointIndex = t1 + 6;
+ break;
+ case 5:
+ break;
+ case 6:
+ break;
+ default:
+ throw H.wrapException(P.FormatException$("Unsupport Path verb " + verb, null, null));
+ }
+ return verb;
+ },
+ next$1: function(_, outPts) {
+ var t3, verb, points, pointIndex, pointIndex0, _this = this,
+ t1 = _this._verbIndex,
+ t2 = _this.pathRef;
+ if (t1 === t2._fVerbsLength)
+ return 6;
+ t3 = t2._fVerbs;
+ _this._verbIndex = t1 + 1;
+ verb = t3[t1];
+ points = t2._fPoints;
+ pointIndex = _this._pointIndex;
+ switch (verb) {
+ case 0:
+ pointIndex0 = pointIndex + 1;
+ outPts[0] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[1] = points[pointIndex0];
+ break;
+ case 1:
+ outPts[0] = points[pointIndex - 2];
+ outPts[1] = points[pointIndex - 1];
+ pointIndex0 = pointIndex + 1;
+ outPts[2] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[3] = points[pointIndex0];
+ break;
+ case 3:
+ ++_this._conicWeightIndex;
+ outPts[0] = points[pointIndex - 2];
+ outPts[1] = points[pointIndex - 1];
+ pointIndex0 = pointIndex + 1;
+ outPts[2] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[3] = points[pointIndex0];
+ pointIndex0 = pointIndex + 1;
+ outPts[4] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[5] = points[pointIndex0];
+ break;
+ case 2:
+ outPts[0] = points[pointIndex - 2];
+ outPts[1] = points[pointIndex - 1];
+ pointIndex0 = pointIndex + 1;
+ outPts[2] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[3] = points[pointIndex0];
+ pointIndex0 = pointIndex + 1;
+ outPts[4] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[5] = points[pointIndex0];
+ break;
+ case 4:
+ outPts[0] = points[pointIndex - 2];
+ outPts[1] = points[pointIndex - 1];
+ pointIndex0 = pointIndex + 1;
+ outPts[2] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[3] = points[pointIndex0];
+ pointIndex0 = pointIndex + 1;
+ outPts[4] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[5] = points[pointIndex0];
+ pointIndex0 = pointIndex + 1;
+ outPts[6] = points[pointIndex];
+ pointIndex = pointIndex0 + 1;
+ outPts[7] = points[pointIndex0];
+ break;
+ case 5:
+ break;
+ case 6:
+ break;
+ default:
+ throw H.wrapException(P.FormatException$("Unsupport Path verb " + verb, null, null));
+ }
+ _this._pointIndex = pointIndex;
+ return verb;
+ }
+ };
+ H._QuadRoots.prototype = {
+ findRoots$3: function(a, b, c) {
+ var t1, dr, q, res, rootCount, rootCount0, t2, _this = this;
+ if (a === 0) {
+ t1 = H._validUnitDivide(-c, b);
+ _this.root0 = t1;
+ return t1 == null ? 0 : 1;
+ }
+ dr = b * b - 4 * a * c;
+ if (dr < 0)
+ return 0;
+ dr = Math.sqrt(dr);
+ if (!isFinite(dr))
+ return 0;
+ q = b < 0 ? -(b - dr) / 2 : -(b + dr) / 2;
+ res = H._validUnitDivide(q, a);
+ if (res != null) {
+ _this.root0 = res;
+ rootCount = 1;
+ } else
+ rootCount = 0;
+ res = H._validUnitDivide(c, q);
+ if (res != null) {
+ rootCount0 = rootCount + 1;
+ if (rootCount === 0)
+ _this.root0 = res;
+ else
+ _this.root1 = res;
+ rootCount = rootCount0;
+ }
+ if (rootCount === 2) {
+ t1 = _this.root0;
+ t1.toString;
+ t2 = _this.root1;
+ t2.toString;
+ if (t1 > t2) {
+ _this.root0 = t2;
+ _this.root1 = t1;
+ } else if (t1 === t2)
+ return 1;
+ }
+ return rootCount;
+ }
+ };
+ H.PathWinding.prototype = {
+ _walkPath$0: function() {
+ var t2, t3, verb, n, winding, t4, t5, t6, t7, t8, t9, t10, isMono, conics, _this = this,
+ t1 = _this.pathRef,
+ iter = H.PathIterator$(t1, true);
+ for (t2 = _this.__engine$_buffer, t3 = type$.JSArray_Conic; verb = iter.next$1(0, t2), verb !== 6;)
+ switch (verb) {
+ case 0:
+ case 5:
+ break;
+ case 1:
+ _this._computeLineWinding$0();
+ break;
+ case 2:
+ n = !H.PathWinding__isQuadMonotonic(t2) ? H.PathWinding__chopQuadAtExtrema(t2) : 0;
+ winding = _this._computeMonoQuadWinding$6(t2[0], t2[1], t2[2], t2[3], t2[4], t2[5]);
+ _this._w += n > 0 ? winding + _this._computeMonoQuadWinding$6(t2[4], t2[5], t2[6], t2[7], t2[8], t2[9]) : winding;
+ break;
+ case 3:
+ t4 = t1._conicWeights[iter._conicWeightIndex];
+ t5 = t2[0];
+ t6 = t2[1];
+ t7 = t2[2];
+ t8 = t2[3];
+ t9 = t2[4];
+ t10 = t2[5];
+ isMono = H.PathWinding__isQuadMonotonic(t2);
+ conics = H.setRuntimeTypeInfo([], t3);
+ new H.Conic(t5, t6, t7, t8, t9, t10, t4).chopAtYExtrema$1(conics);
+ _this._computeMonoConicWinding$1(conics[0]);
+ if (!isMono && conics.length === 2)
+ _this._computeMonoConicWinding$1(conics[1]);
+ break;
+ case 4:
+ _this._computeCubicWinding$0();
+ break;
+ }
+ },
+ _computeLineWinding$0: function() {
+ var y1, y0, dir, t2, crossProduct, _this = this,
+ t1 = _this.__engine$_buffer,
+ x0 = t1[0],
+ startY = t1[1],
+ x1 = t1[2],
+ endY = t1[3];
+ if (startY > endY) {
+ y1 = startY;
+ y0 = endY;
+ dir = -1;
+ } else {
+ y1 = endY;
+ y0 = startY;
+ dir = 1;
+ }
+ t1 = _this.y;
+ if (t1 < y0 || t1 > y1)
+ return;
+ t2 = _this.x;
+ if (H.PathWinding__checkOnCurve(t2, t1, x0, startY, x1, endY)) {
+ ++_this._onCurveCount;
+ return;
+ }
+ if (t1 === y1)
+ return;
+ crossProduct = (x1 - x0) * (t1 - startY) - (endY - startY) * (t2 - x0);
+ if (crossProduct === 0) {
+ if (t2 !== x1 || t1 !== endY)
+ ++_this._onCurveCount;
+ dir = 0;
+ } else if (H.SPath_scalarSignedAsInt(crossProduct) === dir)
+ dir = 0;
+ _this._w += dir;
+ },
+ _computeMonoQuadWinding$6: function(x0, y0, x1, y1, x2, y2) {
+ var y20, y00, dir, t1, t2, quadRoots, xt, t3, _this = this;
+ if (y0 > y2) {
+ y20 = y0;
+ y00 = y2;
+ dir = -1;
+ } else {
+ y20 = y2;
+ y00 = y0;
+ dir = 1;
+ }
+ t1 = _this.y;
+ if (t1 < y00 || t1 > y20)
+ return 0;
+ t2 = _this.x;
+ if (H.PathWinding__checkOnCurve(t2, t1, x0, y0, x2, y2)) {
+ ++_this._onCurveCount;
+ return 0;
+ }
+ if (t1 === y20)
+ return 0;
+ quadRoots = new H._QuadRoots();
+ if (0 === quadRoots.findRoots$3(y0 - 2 * y1 + y2, 2 * (y1 - y0), y0 - t1))
+ xt = dir === 1 ? x0 : x2;
+ else {
+ t3 = quadRoots.root0;
+ t3.toString;
+ xt = ((x2 - 2 * x1 + x0) * t3 + 2 * (x1 - x0)) * t3 + x0;
+ }
+ if (Math.abs(xt - t2) < 0.000244140625)
+ if (t2 !== x2 || t1 !== y2) {
+ ++_this._onCurveCount;
+ return 0;
+ }
+ return xt < t2 ? dir : 0;
+ },
+ _computeMonoConicWinding$1: function(conic) {
+ var y20, y00, dir, t1, t2, xt, xt0, t3, $B, quadRoots, t4, _this = this,
+ y0 = conic.p0y,
+ y2 = conic.p2y;
+ if (y0 > y2) {
+ y20 = y0;
+ y00 = y2;
+ dir = -1;
+ } else {
+ y20 = y2;
+ y00 = y0;
+ dir = 1;
+ }
+ t1 = _this.y;
+ if (t1 < y00 || t1 > y20)
+ return;
+ t2 = _this.x;
+ xt = conic.p0x;
+ xt0 = conic.p2x;
+ if (H.PathWinding__checkOnCurve(t2, t1, xt, y0, xt0, y2)) {
+ ++_this._onCurveCount;
+ return;
+ }
+ if (t1 === y20)
+ return;
+ t3 = conic.fW;
+ $B = conic.p1y * t3 - t1 * t3 + t1;
+ quadRoots = new H._QuadRoots();
+ if (0 === quadRoots.findRoots$3(y2 + (y0 - 2 * $B), 2 * ($B - y0), y0 - t1))
+ xt = dir === 1 ? xt : xt0;
+ else {
+ t4 = quadRoots.root0;
+ t4.toString;
+ xt = H._conicEvalNumerator(xt, conic.p1x, xt0, t3, t4) / H._conicEvalDenominator(t3, t4);
+ }
+ if (Math.abs(xt - t2) < 0.000244140625)
+ if (t2 !== xt0 || t1 !== conic.p2y) {
+ ++_this._onCurveCount;
+ return;
+ }
+ t1 = _this._w;
+ _this._w = t1 + (xt < t2 ? dir : 0);
+ },
+ _computeCubicWinding$0: function() {
+ var i,
+ t1 = this.__engine$_buffer,
+ n = H._chopCubicAtYExtrema(t1, t1);
+ for (i = 0; i <= n; ++i)
+ this._windingMonoCubic$1(i * 3 * 2);
+ },
+ _windingMonoCubic$1: function(bufferIndex) {
+ var px2, px3, py3, y3, y0, dir, t2, t3, min, max, t, xt, _this = this,
+ t1 = _this.__engine$_buffer,
+ bufferIndex0 = bufferIndex + 1,
+ px0 = t1[bufferIndex],
+ bufferIndex1 = bufferIndex0 + 1,
+ py0 = t1[bufferIndex0],
+ px1 = t1[bufferIndex1];
+ bufferIndex0 = bufferIndex1 + 1 + 1;
+ px2 = t1[bufferIndex0];
+ bufferIndex0 = bufferIndex0 + 1 + 1;
+ px3 = t1[bufferIndex0];
+ py3 = t1[bufferIndex0 + 1];
+ if (py0 > py3) {
+ y3 = py0;
+ y0 = py3;
+ dir = -1;
+ } else {
+ y3 = py3;
+ y0 = py0;
+ dir = 1;
+ }
+ t2 = _this.y;
+ if (t2 < y0 || t2 > y3)
+ return;
+ t3 = _this.x;
+ if (H.PathWinding__checkOnCurve(t3, t2, px0, py0, px3, py3)) {
+ ++_this._onCurveCount;
+ return;
+ }
+ if (t2 === y3)
+ return;
+ min = Math.min(px0, Math.min(px1, Math.min(px2, px3)));
+ max = Math.max(px0, Math.max(px1, Math.max(px2, px3)));
+ if (t3 < min)
+ return;
+ if (t3 > max) {
+ _this._w += dir;
+ return;
+ }
+ t = H._chopMonoAtY(t1, bufferIndex, t2);
+ if (t == null)
+ return;
+ xt = H._evalCubicPts(px0, px1, px2, px3, t);
+ if (Math.abs(xt - t3) < 0.000244140625)
+ if (t3 !== px3 || t2 !== py3) {
+ ++_this._onCurveCount;
+ return;
+ }
+ t1 = _this._w;
+ _this._w = t1 + (xt < t3 ? dir : 0);
+ }
+ };
+ H.PathIterator.prototype = {
+ _autoClose$1: function(outPts) {
+ var _this = this,
+ t1 = _this._lastPointX,
+ t2 = _this._moveToX;
+ if (t1 !== t2 || _this._lastPointY !== _this._moveToY) {
+ if (isNaN(t1) || isNaN(_this._lastPointY) || isNaN(t2) || isNaN(_this._moveToY))
+ return 5;
+ outPts[0] = t1;
+ outPts[1] = _this._lastPointY;
+ outPts[2] = t2;
+ t1 = _this._moveToY;
+ outPts[3] = t1;
+ _this._lastPointX = t2;
+ _this._lastPointY = t1;
+ return 1;
+ } else {
+ outPts[0] = t2;
+ outPts[1] = _this._moveToY;
+ return 5;
+ }
+ },
+ _constructMoveTo$0: function() {
+ var t1, t2, _this = this;
+ if (_this._segmentState === 1) {
+ _this._segmentState = 2;
+ return new P.Offset(_this._moveToX, _this._moveToY);
+ }
+ t1 = _this.pathRef._fPoints;
+ t2 = _this._pointIndex;
+ return new P.Offset(t1[t2 - 2], t1[t2 - 1]);
+ },
+ next$1: function(_, outPts) {
+ var t3, t4, verb, autoVerb, offsetX, offsetY, start, _this = this,
+ t1 = _this._verbIndex,
+ t2 = _this.pathRef;
+ if (t1 === t2._fVerbsLength) {
+ if (_this._needClose && _this._segmentState === 2) {
+ if (1 === _this._autoClose$1(outPts))
+ return 1;
+ _this._needClose = false;
+ return 5;
+ }
+ return 6;
+ }
+ t3 = t2._fVerbs;
+ t4 = _this._verbIndex = t1 + 1;
+ verb = t3[t1];
+ switch (verb) {
+ case 0:
+ if (_this._needClose) {
+ _this._verbIndex = t4 - 1;
+ autoVerb = _this._autoClose$1(outPts);
+ if (autoVerb === 5)
+ _this._needClose = false;
+ return autoVerb;
+ }
+ if (t4 === _this._verbCount)
+ return 6;
+ t1 = t2._fPoints;
+ t2 = _this._pointIndex;
+ t3 = _this._pointIndex = t2 + 1;
+ offsetX = t1[t2];
+ _this._pointIndex = t3 + 1;
+ offsetY = t1[t3];
+ _this._moveToX = offsetX;
+ _this._moveToY = offsetY;
+ outPts[0] = offsetX;
+ outPts[1] = offsetY;
+ _this._segmentState = 1;
+ _this._lastPointX = offsetX;
+ _this._lastPointY = offsetY;
+ _this._needClose = true;
+ break;
+ case 1:
+ start = _this._constructMoveTo$0();
+ t1 = t2._fPoints;
+ t2 = _this._pointIndex;
+ t3 = _this._pointIndex = t2 + 1;
+ offsetX = t1[t2];
+ _this._pointIndex = t3 + 1;
+ offsetY = t1[t3];
+ outPts[0] = start._dx;
+ outPts[1] = start._dy;
+ outPts[2] = offsetX;
+ outPts[3] = offsetY;
+ _this._lastPointX = offsetX;
+ _this._lastPointY = offsetY;
+ break;
+ case 3:
+ ++_this._conicWeightIndex;
+ start = _this._constructMoveTo$0();
+ outPts[0] = start._dx;
+ outPts[1] = start._dy;
+ t1 = t2._fPoints;
+ t2 = _this._pointIndex;
+ t3 = _this._pointIndex = t2 + 1;
+ outPts[2] = t1[t2];
+ t2 = _this._pointIndex = t3 + 1;
+ outPts[3] = t1[t3];
+ t3 = _this._pointIndex = t2 + 1;
+ t2 = t1[t2];
+ outPts[4] = t2;
+ _this._lastPointX = t2;
+ _this._pointIndex = t3 + 1;
+ t3 = t1[t3];
+ outPts[5] = t3;
+ _this._lastPointY = t3;
+ break;
+ case 2:
+ start = _this._constructMoveTo$0();
+ outPts[0] = start._dx;
+ outPts[1] = start._dy;
+ t1 = t2._fPoints;
+ t2 = _this._pointIndex;
+ t3 = _this._pointIndex = t2 + 1;
+ outPts[2] = t1[t2];
+ t2 = _this._pointIndex = t3 + 1;
+ outPts[3] = t1[t3];
+ t3 = _this._pointIndex = t2 + 1;
+ t2 = t1[t2];
+ outPts[4] = t2;
+ _this._lastPointX = t2;
+ _this._pointIndex = t3 + 1;
+ t3 = t1[t3];
+ outPts[5] = t3;
+ _this._lastPointY = t3;
+ break;
+ case 4:
+ start = _this._constructMoveTo$0();
+ outPts[0] = start._dx;
+ outPts[1] = start._dy;
+ t1 = t2._fPoints;
+ t2 = _this._pointIndex;
+ t3 = _this._pointIndex = t2 + 1;
+ outPts[2] = t1[t2];
+ t2 = _this._pointIndex = t3 + 1;
+ outPts[3] = t1[t3];
+ t3 = _this._pointIndex = t2 + 1;
+ outPts[4] = t1[t2];
+ t2 = _this._pointIndex = t3 + 1;
+ outPts[5] = t1[t3];
+ t3 = _this._pointIndex = t2 + 1;
+ t2 = t1[t2];
+ outPts[6] = t2;
+ _this._lastPointX = t2;
+ _this._pointIndex = t3 + 1;
+ t3 = t1[t3];
+ outPts[7] = t3;
+ _this._lastPointY = t3;
+ break;
+ case 5:
+ verb = _this._autoClose$1(outPts);
+ if (verb === 1)
+ --_this._verbIndex;
+ else {
+ _this._needClose = false;
+ _this._segmentState = 0;
+ }
+ _this._lastPointX = _this._moveToX;
+ _this._lastPointY = _this._moveToY;
+ break;
+ case 6:
+ break;
+ default:
+ throw H.wrapException(P.FormatException$("Unsupport Path verb " + verb, null, null));
+ }
+ return verb;
+ }
+ };
+ H._PaintRequest.prototype = {
+ paintCallback$0: function() {
+ return this.paintCallback.call$0();
+ }
+ };
+ H.PersistedPicture.prototype = {
+ createElement$0: function(_) {
+ return this.defaultCreateElement$1("flt-picture");
+ },
+ recomputeTransformAndClip$0: function() {
+ var t2, t3, paintWidth, paintHeight, newDensity, _this = this,
+ t1 = _this.parent.__engine$_transform;
+ _this.__engine$_transform = t1;
+ t2 = _this.dx;
+ if (t2 !== 0 || _this.dy !== 0) {
+ t1.toString;
+ t3 = new H.Matrix40(new Float32Array(16));
+ t3.setFrom$1(t1);
+ _this.__engine$_transform = t3;
+ t3.translate$2(0, t2, _this.dy);
+ }
+ t1 = _this.localPaintBounds;
+ paintWidth = t1.right - t1.left;
+ paintHeight = t1.bottom - t1.top;
+ t1 = paintWidth === 0 || paintHeight === 0;
+ newDensity = t1 ? 1 : H._computePixelDensity(_this.__engine$_transform, paintWidth, paintHeight);
+ if (newDensity !== _this._density) {
+ _this._density = newDensity;
+ _this._requiresRepaint = true;
+ }
+ _this._computeExactCullRects$0();
+ },
+ _computeExactCullRects$0: function() {
+ var clipTransform, bounds, localClipBounds, localInverse, t1, t2, _this = this,
+ parentSurface = _this.parent;
+ if (parentSurface._projectedClip == null) {
+ clipTransform = new H.Matrix40(new Float32Array(16));
+ clipTransform.setIdentity$0();
+ for (bounds = null; parentSurface != null;) {
+ localClipBounds = parentSurface._localClipBounds;
+ if (localClipBounds != null)
+ bounds = bounds == null ? H.transformRect(clipTransform, localClipBounds) : bounds.intersect$1(H.transformRect(clipTransform, localClipBounds));
+ localInverse = parentSurface.get$localTransformInverse();
+ if (localInverse != null && !localInverse.isIdentity$0(0))
+ clipTransform.multiply$1(0, localInverse);
+ parentSurface = parentSurface.parent;
+ }
+ if (bounds != null)
+ t1 = bounds.right - bounds.left <= 0 || bounds.bottom - bounds.top <= 0;
+ else
+ t1 = false;
+ if (t1)
+ bounds = C.Rect_0_0_0_0;
+ t1 = _this.parent;
+ t1._projectedClip = bounds;
+ } else
+ t1 = parentSurface;
+ t1 = t1._projectedClip;
+ t2 = _this.localPaintBounds;
+ if (t1 == null) {
+ _this._exactLocalCullRect = t2;
+ t1 = t2;
+ } else
+ t1 = _this._exactLocalCullRect = t2.intersect$1(t1);
+ if (t1.right - t1.left <= 0 || t1.bottom - t1.top <= 0)
+ _this._exactGlobalCullRect = _this._exactLocalCullRect = C.Rect_0_0_0_0;
+ },
+ _computeOptimalCullRect$1: function(oldSurface) {
+ var oldOptimalLocalCullRect, t1, t2, t3, t4, t5, t6, t7, t8, t9, newLocalCullRect, _this = this;
+ if (oldSurface == null || !oldSurface.picture.recordingCanvas._didDraw) {
+ _this._optimalLocalCullRect = _this._exactLocalCullRect;
+ _this._requiresRepaint = true;
+ return;
+ }
+ oldOptimalLocalCullRect = oldSurface === _this ? _this._optimalLocalCullRect : oldSurface._optimalLocalCullRect;
+ if (J.$eq$(_this._exactLocalCullRect, C.Rect_0_0_0_0)) {
+ _this._optimalLocalCullRect = C.Rect_0_0_0_0;
+ if (!J.$eq$(oldOptimalLocalCullRect, C.Rect_0_0_0_0))
+ _this._requiresRepaint = true;
+ return;
+ }
+ oldOptimalLocalCullRect.toString;
+ t1 = _this._exactLocalCullRect;
+ t1.toString;
+ if (H.rectContainsOther(oldOptimalLocalCullRect, t1)) {
+ _this._optimalLocalCullRect = oldOptimalLocalCullRect;
+ return;
+ }
+ t2 = t1.left;
+ t3 = t1.top;
+ t4 = t1.right;
+ t1 = t1.bottom;
+ t5 = t4 - t2;
+ t6 = H.PersistedPicture__predictTrend(oldOptimalLocalCullRect.left - t2, t5);
+ t7 = t1 - t3;
+ t8 = H.PersistedPicture__predictTrend(oldOptimalLocalCullRect.top - t3, t7);
+ t5 = H.PersistedPicture__predictTrend(t4 - oldOptimalLocalCullRect.right, t5);
+ t7 = H.PersistedPicture__predictTrend(t1 - oldOptimalLocalCullRect.bottom, t7);
+ t9 = _this.localPaintBounds;
+ t9.toString;
+ newLocalCullRect = new P.Rect(t2 - t6, t3 - t8, t4 + t5, t1 + t7).intersect$1(t9);
+ _this._requiresRepaint = !J.$eq$(_this._optimalLocalCullRect, newLocalCullRect);
+ _this._optimalLocalCullRect = newLocalCullRect;
+ },
+ _applyPaint$1: function(oldSurface) {
+ var t1, t2, t3, t4, t5, _this = this,
+ oldCanvas = oldSurface == null ? null : oldSurface.__engine$_canvas;
+ _this._requiresRepaint = false;
+ t1 = _this.picture.recordingCanvas;
+ if (t1._didDraw) {
+ t2 = _this._optimalLocalCullRect;
+ t2 = t2.get$isEmpty(t2);
+ } else
+ t2 = true;
+ if (t2) {
+ H._recycleCanvas(oldCanvas);
+ t1 = _this.rootElement;
+ if (t1 != null)
+ $.$get$domRenderer().clearDom$1(t1);
+ t1 = _this.__engine$_canvas;
+ if (t1 != null && t1 !== oldCanvas)
+ H._recycleCanvas(t1);
+ _this.__engine$_canvas = null;
+ return;
+ }
+ if (t1._hasArbitraryPaint)
+ _this._applyBitmapPaint$1(oldCanvas);
+ else {
+ H._recycleCanvas(_this.__engine$_canvas);
+ t2 = _this.rootElement;
+ t2.toString;
+ t3 = H.setRuntimeTypeInfo([], type$.JSArray__SaveElementStackEntry);
+ t4 = H.setRuntimeTypeInfo([], type$.JSArray_Element);
+ t5 = new H.Matrix40(new Float32Array(16));
+ t5.setIdentity$0();
+ _this.__engine$_canvas = new H.DomCanvas(t2, t3, t4, t5);
+ t5 = $.$get$domRenderer();
+ t4 = _this.rootElement;
+ t4.toString;
+ t5.clearDom$1(t4);
+ t4 = _this.__engine$_canvas;
+ t4.toString;
+ t1.apply$2(t4, _this._optimalLocalCullRect);
+ }
+ },
+ matchForUpdate$1: function(existingSurface) {
+ var didRequireBitmap, requiresBitmap, oldCanvas, oldPixelCount, _this = this,
+ t1 = existingSurface.picture,
+ t2 = _this.picture;
+ if (t1 == t2)
+ return 0;
+ t1 = t1.recordingCanvas;
+ if (!t1._didDraw)
+ return 1;
+ didRequireBitmap = t1._hasArbitraryPaint;
+ requiresBitmap = t2.recordingCanvas._hasArbitraryPaint;
+ if (didRequireBitmap !== requiresBitmap)
+ return 1;
+ else if (!requiresBitmap)
+ return 1;
+ else {
+ oldCanvas = type$.nullable_BitmapCanvas._as(existingSurface.__engine$_canvas);
+ if (oldCanvas == null)
+ return 1;
+ else {
+ t1 = _this._exactLocalCullRect;
+ t1.toString;
+ if (!oldCanvas.doesFitBounds$2(t1, _this._density))
+ return 1;
+ else {
+ t1 = _this._exactLocalCullRect;
+ t1 = H.BitmapCanvas__widthToPhysical(t1.right - t1.left);
+ t2 = _this._exactLocalCullRect;
+ t2 = H.BitmapCanvas__heightToPhysical(t2.bottom - t2.top);
+ oldPixelCount = oldCanvas._widthInBitmapPixels * oldCanvas._heightInBitmapPixels;
+ if (oldPixelCount === 0)
+ return 1;
+ return 1 - t1 * t2 / oldPixelCount;
+ }
+ }
+ }
+ },
+ _applyBitmapPaint$1: function(oldCanvas) {
+ var t1, t2, _this = this;
+ if (oldCanvas instanceof H.BitmapCanvas) {
+ t1 = _this._optimalLocalCullRect;
+ t1.toString;
+ t1 = oldCanvas.doesFitBounds$2(t1, _this._density) && oldCanvas.__engine$_devicePixelRatio === H.EnginePlatformDispatcher_browserDevicePixelRatio();
+ } else
+ t1 = false;
+ if (t1) {
+ t1 = _this._optimalLocalCullRect;
+ t1.toString;
+ oldCanvas.set$bounds(0, t1);
+ _this.__engine$_canvas = oldCanvas;
+ oldCanvas._elementCache = _this._elementCache;
+ oldCanvas.clear$0(0);
+ t1 = _this.picture.recordingCanvas;
+ t1.toString;
+ t2 = _this.__engine$_canvas;
+ t2.toString;
+ t1.apply$2(t2, _this._optimalLocalCullRect);
+ } else {
+ H._recycleCanvas(oldCanvas);
+ t1 = _this.__engine$_canvas;
+ if (t1 instanceof H.BitmapCanvas)
+ t1._elementCache = null;
+ _this.__engine$_canvas = null;
+ t1 = $._paintQueue;
+ t2 = _this._optimalLocalCullRect;
+ t1.push(new H._PaintRequest(new P.Size(t2.right - t2.left, t2.bottom - t2.top), new H.PersistedPicture__applyBitmapPaint_closure(_this)));
+ }
+ },
+ _findOrCreateCanvas$1: function(bounds) {
+ var boundsWidth, boundsHeight, requestedPixelCount, t3, bestRecycledCanvas, lastPixelCount, i, candidate, ratio, t4, t5, candidatePixelCount, t6, fits, isSmaller, canvas, _this = this,
+ t1 = bounds.right - bounds.left,
+ t2 = bounds.bottom - bounds.top;
+ for (boundsWidth = t1 + 1, boundsHeight = t2 + 1, requestedPixelCount = t1 * t2, t3 = requestedPixelCount > 1, bestRecycledCanvas = null, lastPixelCount = 1 / 0, i = 0; i < $._recycledCanvases.length; ++i) {
+ candidate = $._recycledCanvases[i];
+ ratio = window.devicePixelRatio;
+ t4 = ratio == null || ratio === 0 ? 1 : ratio;
+ if (candidate.__engine$_devicePixelRatio !== t4)
+ continue;
+ t4 = candidate._bounds;
+ t5 = t4.right - t4.left;
+ t4 = t4.bottom - t4.top;
+ candidatePixelCount = t5 * t4;
+ t6 = _this._density;
+ ratio = window.devicePixelRatio;
+ if (candidate._widthInBitmapPixels >= C.JSNumber_methods.ceil$0(boundsWidth * (ratio == null || ratio === 0 ? 1 : ratio)) + 2) {
+ ratio = window.devicePixelRatio;
+ fits = candidate._heightInBitmapPixels >= C.JSNumber_methods.ceil$0(boundsHeight * (ratio == null || ratio === 0 ? 1 : ratio)) + 2 && candidate._density === t6;
+ } else
+ fits = false;
+ isSmaller = candidatePixelCount < lastPixelCount;
+ if (fits && isSmaller)
+ if (!(isSmaller && t3 && candidatePixelCount / requestedPixelCount > 4)) {
+ if (t5 === t1 && t4 === t2) {
+ bestRecycledCanvas = candidate;
+ break;
+ }
+ lastPixelCount = candidatePixelCount;
+ bestRecycledCanvas = candidate;
+ }
+ }
+ if (bestRecycledCanvas != null) {
+ C.JSArray_methods.remove$1($._recycledCanvases, bestRecycledCanvas);
+ bestRecycledCanvas.set$bounds(0, bounds);
+ bestRecycledCanvas._elementCache = _this._elementCache;
+ return bestRecycledCanvas;
+ }
+ canvas = H.BitmapCanvas$(bounds, _this._density);
+ canvas._elementCache = _this._elementCache;
+ return canvas;
+ },
+ _applyTranslate$0: function() {
+ var t1 = this.rootElement.style,
+ t2 = "translate(" + H.S(this.dx) + "px, " + H.S(this.dy) + "px)";
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), t2, "");
+ },
+ apply$0: function() {
+ this._applyTranslate$0();
+ this._applyPaint$1(null);
+ },
+ build$0: function(_) {
+ this._computeOptimalCullRect$1(null);
+ this._requiresRepaint = true;
+ this.super$PersistedSurface$build(0);
+ },
+ update$1: function(_, oldSurface) {
+ var t1, densityChanged, _this = this;
+ _this.super$PersistedSurface$update(0, oldSurface);
+ _this._elementCache = oldSurface._elementCache;
+ if (oldSurface !== _this)
+ oldSurface._elementCache = null;
+ if (_this.dx != oldSurface.dx || _this.dy != oldSurface.dy)
+ _this._applyTranslate$0();
+ _this._computeOptimalCullRect$1(oldSurface);
+ if (_this.picture == oldSurface.picture) {
+ t1 = _this.__engine$_canvas;
+ densityChanged = t1 instanceof H.BitmapCanvas && _this._density !== t1._density;
+ if (_this._requiresRepaint || densityChanged)
+ _this._applyPaint$1(oldSurface);
+ else
+ _this.__engine$_canvas = oldSurface.__engine$_canvas;
+ } else
+ _this._applyPaint$1(oldSurface);
+ },
+ retain$0: function() {
+ var _this = this;
+ _this.super$PersistedSurface$retain();
+ _this._computeOptimalCullRect$1(_this);
+ if (_this._requiresRepaint)
+ _this._applyPaint$1(_this);
+ },
+ discard$0: function() {
+ H._recycleCanvas(this.__engine$_canvas);
+ this.__engine$_canvas = null;
+ this.super$PersistedSurface$discard();
+ }
+ };
+ H.PersistedPicture__applyBitmapPaint_closure.prototype = {
+ call$0: function() {
+ var t3,
+ t1 = this.$this,
+ t2 = t1._optimalLocalCullRect;
+ t2.toString;
+ t2 = t1._findOrCreateCanvas$1(t2);
+ t1.__engine$_canvas = t2;
+ t2._elementCache = t1._elementCache;
+ t2 = $.$get$domRenderer();
+ t3 = t1.rootElement;
+ t3.toString;
+ t2.clearDom$1(t3);
+ t3 = t1.rootElement;
+ t3.toString;
+ t2 = t1.__engine$_canvas;
+ t3.appendChild(t2.get$rootElement(t2));
+ t1.__engine$_canvas.clear$0(0);
+ t2 = t1.picture.recordingCanvas;
+ t2.toString;
+ t3 = t1.__engine$_canvas;
+ t3.toString;
+ t2.apply$2(t3, t1._optimalLocalCullRect);
+ },
+ $signature: 0
+ };
+ H.PersistedPlatformView.prototype = {
+ get$_shadowRoot: function() {
+ return this.__PersistedPlatformView__shadowRoot_isSet ? this.__PersistedPlatformView__shadowRoot : H.throwExpression(H.LateError$fieldNI("_shadowRoot"));
+ },
+ createElement$0: function(_) {
+ var _styleReset, platformView, _this = this,
+ element = _this.defaultCreateElement$1("flt-platform-view"),
+ t1 = element.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "pointer-events"), "auto", "");
+ t1 = element.style;
+ t1.overflow = "hidden";
+ t1 = type$.String;
+ t1 = element.attachShadow(P.convertDartToNative_Dictionary(P.LinkedHashMap_LinkedHashMap$_literal(["mode", "open"], t1, t1)));
+ _this.__PersistedPlatformView__shadowRoot_isSet = true;
+ _this.__PersistedPlatformView__shadowRoot = t1;
+ _styleReset = document.createElement("style");
+ C.StyleElement_methods.setInnerHtml$1(_styleReset, " :host {\n all: initial;\n }");
+ _this.get$_shadowRoot().appendChild(_styleReset);
+ t1 = _this.viewId;
+ platformView = $.$get$platformViewRegistry()._createdViews.$index(0, t1);
+ if (platformView != null)
+ _this.get$_shadowRoot().appendChild(platformView);
+ else {
+ window;
+ t1 = "No platform view created for id " + H.S(t1);
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ }
+ return element;
+ },
+ apply$0: function() {
+ var t3, t4, platformView, _this = this,
+ t1 = _this.rootElement.style,
+ t2 = "translate(" + H.S(_this.dx) + "px, " + H.S(_this.dy) + "px)";
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), t2, "");
+ t2 = _this.width;
+ t3 = H.S(t2) + "px";
+ t1.width = t3;
+ t3 = _this.height;
+ t4 = H.S(t3) + "px";
+ t1.height = t4;
+ platformView = $.$get$platformViewRegistry()._createdViews.$index(0, _this.viewId);
+ if (platformView != null) {
+ t1 = platformView.style;
+ t2 = H.S(t2) + "px";
+ t1.width = t2;
+ t2 = H.S(t3) + "px";
+ t1.height = t2;
+ }
+ },
+ canUpdateAsMatch$1: function(oldSurface) {
+ if (this.super$PersistedSurface$canUpdateAsMatch(oldSurface))
+ return this.viewId == type$.PersistedPlatformView._as(oldSurface).viewId;
+ return false;
+ },
+ matchForUpdate$1: function(existingSurface) {
+ return existingSurface.viewId == this.viewId ? 0 : 1;
+ },
+ update$1: function(_, oldSurface) {
+ var _this = this;
+ _this.super$PersistedSurface$update(0, oldSurface);
+ if (_this.dx != oldSurface.dx || _this.dy != oldSurface.dy || _this.width !== oldSurface.width || _this.height !== oldSurface.height)
+ _this.apply$0();
+ }
+ };
+ H.RecordingCanvas.prototype = {
+ apply$2: function(engineCanvas, clipRect) {
+ var i, len, i0, len0, command, e, t1, exception;
+ try {
+ clipRect.toString;
+ t1 = this._pictureBounds;
+ t1.toString;
+ if (H.rectContainsOther(clipRect, t1))
+ for (i = 0, t1 = this._commands, len = t1.length; i < len; ++i)
+ t1[i].apply$1(engineCanvas);
+ else
+ for (i0 = 0, t1 = this._commands, len0 = t1.length; i0 < len0; ++i0) {
+ command = t1[i0];
+ if (command instanceof H.DrawCommand)
+ if (command.isInvisible$1(clipRect))
+ continue;
+ command.apply$1(engineCanvas);
+ }
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ if (!J.$eq$(e.name, "NS_ERROR_FAILURE"))
+ throw exception;
+ }
+ engineCanvas.endOfPaint$0();
+ },
+ drawRect$2: function(_, rect, paint) {
+ var paintSpread, command, _this = this,
+ t1 = paint._paintData;
+ if (t1.shader != null)
+ _this._hasArbitraryPaint = true;
+ _this._didDraw = true;
+ paintSpread = H._getPaintSpread(paint);
+ paint._frozen = true;
+ command = new H.PaintDrawRect(rect, t1, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ t1 = _this._paintBounds;
+ if (paintSpread !== 0)
+ t1.grow$2(rect.inflate$1(paintSpread), command);
+ else
+ t1.grow$2(rect, command);
+ _this._commands.push(command);
+ },
+ drawRRect$2: function(_, rrect, paint) {
+ var paintSpread, t2, t3, t4, t5, t6, t7, command, _this = this,
+ t1 = paint._paintData;
+ if (t1.shader != null || !rrect.webOnlyUniformRadii)
+ _this._hasArbitraryPaint = true;
+ _this._didDraw = true;
+ paintSpread = H._getPaintSpread(paint);
+ t2 = rrect.left;
+ t3 = rrect.right;
+ t4 = Math.min(H.checkNum(t2), H.checkNum(t3));
+ t5 = rrect.top;
+ t6 = rrect.bottom;
+ t7 = Math.min(H.checkNum(t5), H.checkNum(t6));
+ t3 = Math.max(H.checkNum(t2), H.checkNum(t3));
+ t6 = Math.max(H.checkNum(t5), H.checkNum(t6));
+ paint._frozen = true;
+ command = new H.PaintDrawRRect(rrect, t1, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ _this._paintBounds.growLTRB$5(t4 - paintSpread, t7 - paintSpread, t3 + paintSpread, t6 + paintSpread, command);
+ _this._commands.push(command);
+ },
+ drawDRRect$3: function(_, outer, inner, paint) {
+ var scaledOuter, scaledInner, outerTl, outerTr, outerBl, outerBr, innerTl, innerTr, innerBl, innerBr, paintSpread, command, t5, _this = this,
+ innerRect = new P.Rect(inner.left, inner.top, inner.right, inner.bottom),
+ t1 = outer.left,
+ t2 = outer.top,
+ t3 = outer.right,
+ t4 = outer.bottom,
+ outerRect = new P.Rect(t1, t2, t3, t4);
+ if (outerRect.$eq(0, innerRect) || !outerRect.intersect$1(innerRect).$eq(0, innerRect))
+ return;
+ scaledOuter = outer.scaleRadii$0();
+ scaledInner = inner.scaleRadii$0();
+ outerTl = H._measureBorderRadius(scaledOuter.tlRadiusX, scaledOuter.tlRadiusY);
+ outerTr = H._measureBorderRadius(scaledOuter.trRadiusX, scaledOuter.trRadiusY);
+ outerBl = H._measureBorderRadius(scaledOuter.blRadiusX, scaledOuter.blRadiusY);
+ outerBr = H._measureBorderRadius(scaledOuter.brRadiusX, scaledOuter.brRadiusY);
+ innerTl = H._measureBorderRadius(scaledInner.tlRadiusX, scaledInner.tlRadiusY);
+ innerTr = H._measureBorderRadius(scaledInner.trRadiusX, scaledInner.trRadiusY);
+ innerBl = H._measureBorderRadius(scaledInner.blRadiusX, scaledInner.blRadiusY);
+ innerBr = H._measureBorderRadius(scaledInner.brRadiusX, scaledInner.brRadiusY);
+ if (innerTl > outerTl || innerTr > outerTr || innerBl > outerBl || innerBr > outerBr)
+ return;
+ _this._didDraw = _this._hasArbitraryPaint = true;
+ paintSpread = H._getPaintSpread(paint);
+ paint._frozen = true;
+ command = new H.PaintDrawDRRect(outer, inner, paint._paintData, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ t5 = P.Path_Path();
+ t5.set$fillType(C.PathFillType_1);
+ t5.addRRect$1(0, outer);
+ t5.addRRect$1(0, inner);
+ t5.close$0(0);
+ command.path = t5;
+ _this._paintBounds.growLTRB$5(t1 - paintSpread, t2 - paintSpread, t3 + paintSpread, t4 + paintSpread, command);
+ _this._commands.push(command);
+ },
+ drawPath$2: function(_, path, paint) {
+ var t1, rect, rrect, pathBounds, paintSpread, t2, t3, clone, command, _this = this;
+ if (paint._paintData.shader == null) {
+ type$.SurfacePath._as(path);
+ t1 = path.pathRef;
+ rect = t1.fIsRect ? t1._getRect$0() : null;
+ if (rect != null) {
+ _this.drawRect$2(0, rect, paint);
+ return;
+ }
+ t1 = path.pathRef;
+ rrect = t1.fIsRRect ? t1._getRRect$0() : null;
+ if (rrect != null) {
+ _this.drawRRect$2(0, rrect, paint);
+ return;
+ }
+ }
+ type$.SurfacePath._as(path);
+ if (path.pathRef._fVerbsLength !== 0) {
+ _this._didDraw = _this._hasArbitraryPaint = true;
+ pathBounds = path.getBounds$0(0);
+ paintSpread = H._getPaintSpread(paint);
+ if (paintSpread !== 0)
+ pathBounds = pathBounds.inflate$1(paintSpread);
+ t1 = path.pathRef;
+ t2 = new H.PathRef(t1._fPoints, t1._fVerbs);
+ t2._fVerbsCapacity = t1._fVerbsCapacity;
+ t2._fVerbsLength = t1._fVerbsLength;
+ t2._fPointsCapacity = t1._fPointsCapacity;
+ t2._fPointsLength = t1._fPointsLength;
+ t2._conicWeightsCapacity = t1._conicWeightsCapacity;
+ t2._conicWeightsLength = t1._conicWeightsLength;
+ t2._conicWeights = t1._conicWeights;
+ t3 = t1.fBoundsIsDirty;
+ t2.fBoundsIsDirty = t3;
+ if (!t3) {
+ t2.fBounds = t1.fBounds;
+ t2.cachedBounds = t1.cachedBounds;
+ t2.fIsFinite = t1.fIsFinite;
+ }
+ t2.fSegmentMask = t1.fSegmentMask;
+ t2.fIsOval = t1.fIsOval;
+ t2.fIsRRect = t1.fIsRRect;
+ t2.fIsRect = t1.fIsRect;
+ t2.fRRectOrOvalIsCCW = t1.fRRectOrOvalIsCCW;
+ t2.fRRectOrOvalStartIdx = t1.fRRectOrOvalStartIdx;
+ clone = new H.SurfacePath(t2, C.PathFillType_0);
+ clone._copyFields$1(path);
+ paint._frozen = true;
+ command = new H.PaintDrawPath(clone, paint._paintData, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ _this._paintBounds.grow$2(pathBounds, command);
+ clone._fillType = path._fillType;
+ _this._commands.push(command);
+ }
+ },
+ drawParagraph$2: function(_, paragraph, offset) {
+ var left, $top, command, _this = this;
+ type$.EngineParagraph._as(paragraph);
+ if (paragraph._measurementResult == null)
+ return;
+ _this._didDraw = true;
+ if (paragraph._geometricStyle.ellipsis != null)
+ _this._hasArbitraryPaint = true;
+ left = offset._dx;
+ $top = offset._dy;
+ command = new H.PaintDrawParagraph(paragraph, offset, -1 / 0, -1 / 0, 1 / 0, 1 / 0);
+ _this._paintBounds.growLTRB$5(left, $top, left + paragraph.get$width(paragraph), $top + paragraph.get$height(paragraph), command);
+ _this._commands.push(command);
+ }
+ };
+ H.PaintCommand.prototype = {};
+ H.DrawCommand.prototype = {
+ isInvisible$1: function(clipRect) {
+ var _this = this;
+ if (_this.isClippedOut)
+ return true;
+ return _this.bottomBound < clipRect.top || _this.topBound > clipRect.bottom || _this.rightBound < clipRect.left || _this.leftBound > clipRect.right;
+ }
+ };
+ H.PaintSave.prototype = {
+ apply$1: function(canvas) {
+ canvas.save$0(0);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintRestore.prototype = {
+ apply$1: function(canvas) {
+ canvas.restore$0(0);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintTranslate.prototype = {
+ apply$1: function(canvas) {
+ canvas.translate$2(0, this.dx, this.dy);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintScale.prototype = {
+ apply$1: function(canvas) {
+ canvas.scale$2(0, this.sx, this.sy);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintRotate.prototype = {
+ apply$1: function(canvas) {
+ canvas.rotate$1(0, this.radians);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintTransform.prototype = {
+ apply$1: function(canvas) {
+ canvas.transform$1(0, this.matrix4);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintClipRect.prototype = {
+ apply$1: function(canvas) {
+ canvas.clipRect$2(0, this.rect, this.clipOp);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintClipRRect.prototype = {
+ apply$1: function(canvas) {
+ canvas.clipRRect$1(0, this.rrect);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintClipPath.prototype = {
+ apply$1: function(canvas) {
+ canvas.clipPath$1(0, this.path);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintDrawLine.prototype = {
+ apply$1: function(canvas) {
+ canvas.drawLine$3(0, this.p1, this.p2, this.paint);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintDrawRect.prototype = {
+ apply$1: function(canvas) {
+ canvas.drawRect$2(0, this.rect, this.paint);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintDrawRRect.prototype = {
+ apply$1: function(canvas) {
+ canvas.drawRRect$2(0, this.rrect, this.paint);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintDrawDRRect.prototype = {
+ apply$1: function(canvas) {
+ canvas.drawPath$2(0, this.path, this.paint);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintDrawCircle.prototype = {
+ apply$1: function(canvas) {
+ canvas.drawCircle$3(0, this.c, this.radius, this.paint);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintDrawPath.prototype = {
+ apply$1: function(canvas) {
+ canvas.drawPath$2(0, this.path, this.paint);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintDrawShadow.prototype = {
+ apply$1: function(canvas) {
+ var _this = this;
+ canvas.drawShadow$4(0, _this.path, _this.color, _this.elevation, _this.transparentOccluder);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PaintDrawParagraph.prototype = {
+ apply$1: function(canvas) {
+ canvas.drawParagraph$2(0, this.paragraph, this.offset);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H._PaintBounds.prototype = {
+ clipRect$2: function(_, rect, command) {
+ var t1, t4, t3, t2, _this = this,
+ left = rect.left,
+ $top = rect.top,
+ right = rect.right,
+ bottom = rect.bottom;
+ if (!_this._currentMatrixIsIdentity) {
+ t1 = $.$get$_PaintBounds__tempRectData();
+ t1[0] = left;
+ t1[1] = $top;
+ t1[2] = right;
+ t1[3] = bottom;
+ H.transformLTRB(_this._currentMatrix, t1);
+ left = t1[0];
+ $top = t1[1];
+ right = t1[2];
+ bottom = t1[3];
+ }
+ if (!_this._clipRectInitialized) {
+ _this._currentClipLeft = left;
+ _this._currentClipTop = $top;
+ _this._currentClipRight = right;
+ _this._currentClipBottom = bottom;
+ _this._clipRectInitialized = true;
+ t4 = bottom;
+ t3 = right;
+ t2 = $top;
+ t1 = left;
+ } else {
+ t1 = _this._currentClipLeft;
+ if (left > t1) {
+ _this._currentClipLeft = left;
+ t1 = left;
+ }
+ t2 = _this._currentClipTop;
+ if ($top > t2) {
+ _this._currentClipTop = $top;
+ t2 = $top;
+ }
+ t3 = _this._currentClipRight;
+ if (right < t3) {
+ _this._currentClipRight = right;
+ t3 = right;
+ }
+ t4 = _this._currentClipBottom;
+ if (bottom < t4) {
+ _this._currentClipBottom = bottom;
+ t4 = bottom;
+ }
+ }
+ if (t1 >= t3 || t2 >= t4)
+ command.isClippedOut = true;
+ else {
+ command.leftBound = t1;
+ command.topBound = t2;
+ command.rightBound = t3;
+ command.bottomBound = t4;
+ }
+ },
+ grow$2: function(r, command) {
+ this.growLTRB$5(r.left, r.top, r.right, r.bottom, command);
+ },
+ growLTRB$5: function(left, $top, right, bottom, command) {
+ var t1, transformedPointLeft, transformedPointTop, transformedPointRight, transformedPointBottom, transformedPointRight0, transformedPointLeft0, transformedPointBottom0, transformedPointTop0, _this = this;
+ if (left == right || $top == bottom) {
+ command.isClippedOut = true;
+ return;
+ }
+ if (!_this._currentMatrixIsIdentity) {
+ t1 = $.$get$_PaintBounds__tempRectData();
+ t1[0] = left;
+ t1[1] = $top;
+ t1[2] = right;
+ t1[3] = bottom;
+ H.transformLTRB(_this._currentMatrix, t1);
+ transformedPointLeft = t1[0];
+ transformedPointTop = t1[1];
+ transformedPointRight = t1[2];
+ transformedPointBottom = t1[3];
+ } else {
+ transformedPointBottom = bottom;
+ transformedPointRight = right;
+ transformedPointTop = $top;
+ transformedPointLeft = left;
+ }
+ if (_this._clipRectInitialized) {
+ transformedPointRight0 = _this._currentClipRight;
+ if (transformedPointLeft > transformedPointRight0) {
+ command.isClippedOut = true;
+ return;
+ }
+ transformedPointLeft0 = _this._currentClipLeft;
+ if (transformedPointRight < transformedPointLeft0) {
+ command.isClippedOut = true;
+ return;
+ }
+ transformedPointBottom0 = _this._currentClipBottom;
+ if (transformedPointTop > transformedPointBottom0) {
+ command.isClippedOut = true;
+ return;
+ }
+ transformedPointTop0 = _this._currentClipTop;
+ if (transformedPointBottom < transformedPointTop0) {
+ command.isClippedOut = true;
+ return;
+ }
+ if (transformedPointLeft < transformedPointLeft0)
+ transformedPointLeft = transformedPointLeft0;
+ if (transformedPointRight > transformedPointRight0)
+ transformedPointRight = transformedPointRight0;
+ if (transformedPointTop < transformedPointTop0)
+ transformedPointTop = transformedPointTop0;
+ if (transformedPointBottom > transformedPointBottom0)
+ transformedPointBottom = transformedPointBottom0;
+ }
+ command.leftBound = transformedPointLeft;
+ command.topBound = transformedPointTop;
+ command.rightBound = transformedPointRight;
+ command.bottomBound = transformedPointBottom;
+ if (_this._didPaintInsideClipArea) {
+ _this.__engine$_left = Math.min(Math.min(_this.__engine$_left, H.checkNum(transformedPointLeft)), H.checkNum(transformedPointRight));
+ _this.__engine$_right = Math.max(Math.max(_this.__engine$_right, H.checkNum(transformedPointLeft)), H.checkNum(transformedPointRight));
+ _this.__engine$_top = Math.min(Math.min(_this.__engine$_top, H.checkNum(transformedPointTop)), H.checkNum(transformedPointBottom));
+ _this.__engine$_bottom = Math.max(Math.max(_this.__engine$_bottom, H.checkNum(transformedPointTop)), H.checkNum(transformedPointBottom));
+ } else {
+ _this.__engine$_left = Math.min(H.checkNum(transformedPointLeft), H.checkNum(transformedPointRight));
+ _this.__engine$_right = Math.max(H.checkNum(transformedPointLeft), H.checkNum(transformedPointRight));
+ _this.__engine$_top = Math.min(H.checkNum(transformedPointTop), H.checkNum(transformedPointBottom));
+ _this.__engine$_bottom = Math.max(H.checkNum(transformedPointTop), H.checkNum(transformedPointBottom));
+ }
+ _this._didPaintInsideClipArea = true;
+ },
+ saveTransformsAndClip$0: function() {
+ var _this = this,
+ t1 = _this._currentMatrix,
+ t2 = new H.Matrix40(new Float32Array(16));
+ t2.setFrom$1(t1);
+ _this.__engine$_transforms.push(t2);
+ t1 = _this._clipRectInitialized ? new P.Rect(_this._currentClipLeft, _this._currentClipTop, _this._currentClipRight, _this._currentClipBottom) : null;
+ _this._clipStack.push(t1);
+ },
+ computeBounds$0: function() {
+ var t1, t2, maxLeft, maxRight, maxTop, maxBottom, left, right, $top, bottom, _this = this;
+ if (!_this._didPaintInsideClipArea)
+ return C.Rect_0_0_0_0;
+ t1 = _this.maxPaintBounds;
+ t2 = t1.left;
+ t2.toString;
+ if (isNaN(t2))
+ maxLeft = -1 / 0;
+ else
+ maxLeft = t2;
+ t2 = t1.right;
+ t2.toString;
+ if (isNaN(t2))
+ maxRight = 1 / 0;
+ else
+ maxRight = t2;
+ t2 = t1.top;
+ t2.toString;
+ if (isNaN(t2))
+ maxTop = -1 / 0;
+ else
+ maxTop = t2;
+ t1 = t1.bottom;
+ t1.toString;
+ if (isNaN(t1))
+ maxBottom = 1 / 0;
+ else
+ maxBottom = t1;
+ t1 = _this.__engine$_left;
+ t2 = _this.__engine$_right;
+ left = Math.min(t1, t2);
+ right = Math.max(t1, t2);
+ t2 = _this.__engine$_top;
+ t1 = _this.__engine$_bottom;
+ $top = Math.min(t2, t1);
+ bottom = Math.max(t2, t1);
+ if (right < maxLeft || bottom < maxTop)
+ return C.Rect_0_0_0_0;
+ return new P.Rect(Math.max(left, maxLeft), Math.max($top, maxTop), Math.min(right, maxRight), Math.min(bottom, maxBottom));
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.SurfaceScene.prototype = {
+ dispose$0: function(_) {
+ }
+ };
+ H.PersistedScene.prototype = {
+ recomputeTransformAndClip$0: function() {
+ var t2,
+ t1 = window.innerWidth;
+ t1.toString;
+ t2 = window.innerHeight;
+ t2.toString;
+ this._localClipBounds = new P.Rect(0, 0, t1, t2);
+ t1 = new H.Matrix40(new Float32Array(16));
+ t1.setIdentity$0();
+ this._localTransformInverse = t1;
+ this._projectedClip = null;
+ },
+ get$localTransformInverse: function() {
+ return this._localTransformInverse;
+ },
+ createElement$0: function(_) {
+ return this.defaultCreateElement$1("flt-scene");
+ },
+ apply$0: function() {
+ }
+ };
+ H.SurfaceSceneBuilder.prototype = {
+ _pushSurface$1$1: function(surface) {
+ var t2,
+ t1 = surface._oldLayer.value;
+ if (t1 != null)
+ t1.__engine$_state = C.PersistedSurfaceState_3;
+ t1 = this._surfaceStack;
+ t2 = C.JSArray_methods.get$last(t1);
+ t2.__engine$_children.push(surface);
+ surface.parent = t2;
+ t1.push(surface);
+ return surface;
+ },
+ _pushSurface$1: function(surface) {
+ return this._pushSurface$1$1(surface, type$.PersistedContainerSurface);
+ },
+ pushOffset$3$oldLayer: function(dx, dy, oldLayer) {
+ var t1, t2;
+ type$.nullable_PersistedOffset._as(oldLayer);
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface);
+ t2 = new H.FrameReference(oldLayer != null && oldLayer.__engine$_state === C.PersistedSurfaceState_1 ? oldLayer : null);
+ $._frameReferences.push(t2);
+ return this._pushSurface$1(new H.PersistedOffset(dx, dy, t1, t2, C.PersistedSurfaceState_0));
+ },
+ pushTransform$2$oldLayer: function(matrix4, oldLayer) {
+ var matrix, t1, t2;
+ if (this._surfaceStack.length === 1) {
+ matrix = new Float32Array(16);
+ new H.Matrix40(matrix).setIdentity$0();
+ } else
+ matrix = H.toMatrix32(matrix4);
+ type$.nullable_PersistedTransform._as(oldLayer);
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface);
+ t2 = new H.FrameReference(oldLayer != null && oldLayer.__engine$_state === C.PersistedSurfaceState_1 ? oldLayer : null);
+ $._frameReferences.push(t2);
+ return this._pushSurface$1(new H.PersistedTransform(matrix, t1, t2, C.PersistedSurfaceState_0));
+ },
+ pushClipRect$3$clipBehavior$oldLayer: function(rect, clipBehavior, oldLayer) {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface),
+ t2 = new H.FrameReference(oldLayer != null && oldLayer.__engine$_state === C.PersistedSurfaceState_1 ? oldLayer : null);
+ $._frameReferences.push(t2);
+ return this._pushSurface$1(new H.PersistedClipRect(clipBehavior, rect, null, t1, t2, C.PersistedSurfaceState_0));
+ },
+ pushClipPath$3$clipBehavior$oldLayer: function(path, clipBehavior, oldLayer) {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface),
+ t2 = new H.FrameReference(oldLayer != null && oldLayer.__engine$_state === C.PersistedSurfaceState_1 ? oldLayer : null);
+ $._frameReferences.push(t2);
+ return this._pushSurface$1(new H.PersistedClipPath(path, t1, t2, C.PersistedSurfaceState_0));
+ },
+ pushOpacity$3$offset$oldLayer: function(alpha, offset, oldLayer) {
+ var t1, t2;
+ type$.nullable_PersistedOpacity._as(oldLayer);
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface);
+ t2 = new H.FrameReference(oldLayer != null && oldLayer.__engine$_state === C.PersistedSurfaceState_1 ? oldLayer : null);
+ $._frameReferences.push(t2);
+ return this._pushSurface$1(new H.PersistedOpacity(alpha, offset, t1, t2, C.PersistedSurfaceState_0));
+ },
+ pushPhysicalShape$6$clipBehavior$color$elevation$oldLayer$path$shadowColor: function(clipBehavior, color, elevation, oldLayer, path, shadowColor) {
+ var t1, t2, t3, t4, t5;
+ type$.nullable_PersistedPhysicalShape._as(oldLayer);
+ type$.SurfacePath._as(path);
+ t1 = color.get$value(color);
+ t2 = shadowColor == null ? null : shadowColor.get$value(shadowColor);
+ if (t2 == null)
+ t2 = 4278190080;
+ t3 = path.getBounds$0(0);
+ t4 = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface);
+ t5 = new H.FrameReference(oldLayer != null && oldLayer.__engine$_state === C.PersistedSurfaceState_1 ? oldLayer : null);
+ $._frameReferences.push(t5);
+ return this._pushSurface$1(new H.PersistedPhysicalShape(path, t3, elevation, new P.Color(t1), new P.Color(t2), clipBehavior, null, t4, t5, C.PersistedSurfaceState_0));
+ },
+ addRetained$1: function(retainedLayer) {
+ var t1;
+ type$.PersistedContainerSurface._as(retainedLayer);
+ if (retainedLayer.__engine$_state === C.PersistedSurfaceState_1)
+ retainedLayer.__engine$_state = C.PersistedSurfaceState_2;
+ else
+ retainedLayer.revive$0();
+ t1 = C.JSArray_methods.get$last(this._surfaceStack);
+ t1.__engine$_children.push(retainedLayer);
+ retainedLayer.parent = t1;
+ },
+ pop$0: function(_) {
+ this._surfaceStack.pop();
+ },
+ addPerformanceOverlay$2: function(enabledOptions, bounds) {
+ if (!$.SurfaceSceneBuilder__webOnlyDidWarnAboutPerformanceOverlay) {
+ $.SurfaceSceneBuilder__webOnlyDidWarnAboutPerformanceOverlay = true;
+ window;
+ if (typeof console != "undefined")
+ window.console.warn("The performance overlay isn't supported on the web");
+ }
+ },
+ addPicture$4$isComplexHint$willChangeHint: function(offset, picture, isComplexHint, willChangeHint) {
+ var t1, t2;
+ isComplexHint;
+ type$.EnginePicture._as(picture);
+ t1 = picture.recordingCanvas._pictureBounds;
+ t2 = new H.FrameReference(null);
+ $._frameReferences.push(t2);
+ t2 = new H.PersistedPicture(offset._dx, offset._dy, picture, t1, new H.CrossFrameCache(), t2, C.PersistedSurfaceState_0);
+ t1 = C.JSArray_methods.get$last(this._surfaceStack);
+ t1.__engine$_children.push(t2);
+ t2.parent = t1;
+ },
+ addPlatformView$4$height$offset$width: function(viewId, height, offset, width) {
+ var t2,
+ t1 = new H.FrameReference(null);
+ $._frameReferences.push(t1);
+ t1 = new H.PersistedPlatformView(viewId, offset._dx, offset._dy, width, height, t1, C.PersistedSurfaceState_0);
+ t2 = C.JSArray_methods.get$last(this._surfaceStack);
+ t2.__engine$_children.push(t1);
+ t1.parent = t2;
+ },
+ setRasterizerTracingThreshold$1: function(frameInterval) {
+ },
+ setCheckerboardRasterCacheImages$1: function(checkerboard) {
+ },
+ setCheckerboardOffscreenLayers$1: function(checkerboard) {
+ },
+ build$0: function(_) {
+ H._frameTimingsOnBuildFinish();
+ H._frameTimingsOnRasterStart();
+ H.timeAction("preroll_frame", new H.SurfaceSceneBuilder_build_closure(this));
+ return H.timeAction("apply_frame", new H.SurfaceSceneBuilder_build_closure0(this));
+ }
+ };
+ H.SurfaceSceneBuilder_build_closure.prototype = {
+ call$0: function() {
+ for (var t1 = this.$this._surfaceStack; t1.length > 1;)
+ t1.pop();
+ type$.PersistedScene._as(C.JSArray_methods.get$first(t1)).preroll$0();
+ },
+ $signature: 0
+ };
+ H.SurfaceSceneBuilder_build_closure0.prototype = {
+ call$0: function() {
+ var t3, t4,
+ t1 = type$.PersistedScene,
+ t2 = this.$this._surfaceStack;
+ if ($.SurfaceSceneBuilder__lastFrameScene == null)
+ t1._as(C.JSArray_methods.get$first(t2)).build$0(0);
+ else {
+ t3 = t1._as(C.JSArray_methods.get$first(t2));
+ t4 = $.SurfaceSceneBuilder__lastFrameScene;
+ t4.toString;
+ t3.update$1(0, t4);
+ }
+ H.commitScene(t1._as(C.JSArray_methods.get$first(t2)));
+ $.SurfaceSceneBuilder__lastFrameScene = t1._as(C.JSArray_methods.get$first(t2));
+ return new H.SurfaceScene(t1._as(C.JSArray_methods.get$first(t2)).rootElement);
+ },
+ $signature: 400
+ };
+ H.EngineGradient.prototype = {};
+ H.GradientLinear.prototype = {
+ createPaintStyle$3: function(ctx, shaderBounds, density) {
+ var centerX, centerY, gradient, colorStops, i, _this = this,
+ matrix4 = _this.matrix4,
+ t1 = _this.from,
+ t2 = _this.to,
+ t3 = t1._dx,
+ t4 = t2._dx;
+ t1 = t1._dy;
+ t2 = t2._dy;
+ if (matrix4 != null) {
+ centerX = (t3 + t4) / 2;
+ centerY = (t1 + t2) / 2;
+ matrix4.transform$2(0, t3 - centerX, t1 - centerY);
+ t1 = matrix4.transformedX;
+ t3 = matrix4.transformedY;
+ matrix4.transform$2(0, t4 - centerX, t2 - centerY);
+ gradient = ctx.createLinearGradient(t1 + centerX, t3 + centerY, matrix4.transformedX + centerX, matrix4.transformedY + centerY);
+ } else
+ gradient = ctx.createLinearGradient(t3, t1, t4, t2);
+ colorStops = _this.colorStops;
+ if (colorStops == null) {
+ t1 = _this.colors;
+ t2 = H.colorToCssString(t1[0]);
+ t2.toString;
+ gradient.addColorStop(0, t2);
+ t1 = H.colorToCssString(t1[1]);
+ t1.toString;
+ gradient.addColorStop(1, t1);
+ return gradient;
+ }
+ for (t1 = _this.colors, i = 0; i < t1.length; ++i) {
+ t2 = colorStops[i];
+ t3 = H.colorToCssString(t1[i]);
+ t3.toString;
+ gradient.addColorStop(t2, t3);
+ }
+ return gradient;
+ }
+ };
+ H.commitScene_closure.prototype = {
+ call$2: function(a, b) {
+ var bSize,
+ t1 = a.canvasSize,
+ aSize = t1._dy * t1._dx;
+ t1 = b.canvasSize;
+ bSize = t1._dy * t1._dx;
+ return J.compareTo$1$ns(bSize, aSize);
+ },
+ $signature: 398
+ };
+ H.PersistedSurfaceState.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.PersistedSurface.prototype = {
+ revive$0: function() {
+ this.__engine$_state = C.PersistedSurfaceState_0;
+ },
+ canUpdateAsMatch$1: function(oldSurface) {
+ return oldSurface.__engine$_state === C.PersistedSurfaceState_1 && H.getRuntimeType(this) === H.getRuntimeType(oldSurface);
+ },
+ get$childContainer: function() {
+ return this.rootElement;
+ },
+ build$0: function(_) {
+ var t2, _this = this,
+ t1 = _this.createElement$0(0);
+ _this.rootElement = t1;
+ t2 = H._browserEngine();
+ if (t2 === C.BrowserEngine_1) {
+ t1 = t1.style;
+ t1.zIndex = "0";
+ }
+ _this.apply$0();
+ _this.__engine$_state = C.PersistedSurfaceState_1;
+ },
+ adoptElements$1: function(oldSurface) {
+ this.rootElement = oldSurface.rootElement;
+ oldSurface.rootElement = null;
+ oldSurface.__engine$_state = C.PersistedSurfaceState_4;
+ },
+ update$1: function(_, oldSurface) {
+ this.adoptElements$1(oldSurface);
+ this.__engine$_state = C.PersistedSurfaceState_1;
+ },
+ retain$0: function() {
+ if (this.__engine$_state === C.PersistedSurfaceState_2)
+ $._retainedSurfaces.push(this);
+ },
+ discard$0: function() {
+ var t1 = this.rootElement;
+ t1.toString;
+ J.remove$0$ax(t1);
+ this.rootElement = null;
+ this.__engine$_state = C.PersistedSurfaceState_4;
+ },
+ defaultCreateElement$1: function(tagName) {
+ var t1 = W._ElementFactoryProvider_createElement_tag(tagName, null),
+ t2 = t1.style;
+ t2.position = "absolute";
+ return t1;
+ },
+ get$localTransformInverse: function() {
+ var t1 = this._localTransformInverse;
+ if (t1 == null) {
+ t1 = new H.Matrix40(new Float32Array(16));
+ t1.setIdentity$0();
+ this._localTransformInverse = t1;
+ }
+ return t1;
+ },
+ recomputeTransformAndClip$0: function() {
+ var _this = this;
+ _this.__engine$_transform = _this.parent.__engine$_transform;
+ _this._projectedClip = _this._localTransformInverse = _this._localClipBounds = null;
+ },
+ preroll$0: function() {
+ this.recomputeTransformAndClip$0();
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PersistedLeafSurface.prototype = {};
+ H.PersistedContainerSurface.prototype = {
+ preroll$0: function() {
+ var t1, $length, i;
+ this.super$PersistedSurface$preroll();
+ t1 = this.__engine$_children;
+ $length = t1.length;
+ for (i = 0; i < $length; ++i)
+ t1[i].preroll$0();
+ },
+ recomputeTransformAndClip$0: function() {
+ var _this = this;
+ _this.__engine$_transform = _this.parent.__engine$_transform;
+ _this._projectedClip = _this._localTransformInverse = _this._localClipBounds = null;
+ },
+ build$0: function(_) {
+ var t1, len, containerElement, i, child, t2;
+ this.super$PersistedSurface$build(0);
+ t1 = this.__engine$_children;
+ len = t1.length;
+ containerElement = this.get$childContainer();
+ for (i = 0; i < len; ++i) {
+ child = t1[i];
+ if (child.__engine$_state === C.PersistedSurfaceState_2)
+ child.retain$0();
+ else if (child instanceof H.PersistedContainerSurface && child._oldLayer.value != null) {
+ t2 = child._oldLayer.value;
+ t2.toString;
+ child.update$1(0, t2);
+ } else
+ child.build$0(0);
+ containerElement.toString;
+ t2 = child.rootElement;
+ t2.toString;
+ containerElement.appendChild(t2);
+ child.__engine$_index = i;
+ }
+ },
+ matchForUpdate$1: function(existingSurface) {
+ return 1;
+ },
+ update$1: function(_, oldSurface) {
+ var t1, _this = this;
+ _this.super$PersistedSurface$update(0, oldSurface);
+ if (oldSurface.__engine$_children.length === 0)
+ _this._updateZeroToMany$1(oldSurface);
+ else {
+ t1 = _this.__engine$_children.length;
+ if (t1 === 1)
+ _this._updateManyToOne$1(oldSurface);
+ else if (t1 === 0)
+ H.PersistedContainerSurface__discardActiveChildren(oldSurface);
+ else
+ _this._updateManyToMany$1(oldSurface);
+ }
+ },
+ _updateZeroToMany$1: function(oldSurface) {
+ var i, newChild, t2,
+ containerElement = this.get$childContainer(),
+ t1 = this.__engine$_children,
+ $length = t1.length;
+ for (i = 0; i < $length; ++i) {
+ newChild = t1[i];
+ if (newChild.__engine$_state === C.PersistedSurfaceState_2)
+ newChild.retain$0();
+ else if (newChild instanceof H.PersistedContainerSurface && newChild._oldLayer.value != null)
+ newChild.update$1(0, newChild._oldLayer.value);
+ else
+ newChild.build$0(0);
+ newChild.__engine$_index = i;
+ containerElement.toString;
+ t2 = newChild.rootElement;
+ t2.toString;
+ containerElement.appendChild(t2);
+ }
+ },
+ _updateManyToOne$1: function(oldSurface) {
+ var t1, t2, oldLayer, bestMatch, bestScore, i, candidate, score, t3, oldChild, _this = this,
+ newChild = _this.__engine$_children[0];
+ newChild.__engine$_index = 0;
+ if (newChild.__engine$_state === C.PersistedSurfaceState_2) {
+ t1 = newChild.rootElement.parentElement;
+ t2 = _this.get$childContainer();
+ if (t1 == null ? t2 != null : t1 !== t2) {
+ t1 = _this.get$childContainer();
+ t1.toString;
+ t2 = newChild.rootElement;
+ t2.toString;
+ t1.appendChild(t2);
+ }
+ newChild.retain$0();
+ H.PersistedContainerSurface__discardActiveChildren(oldSurface);
+ return;
+ }
+ if (newChild instanceof H.PersistedContainerSurface && newChild._oldLayer.value != null) {
+ oldLayer = newChild._oldLayer.value;
+ t1 = oldLayer.rootElement.parentElement;
+ t2 = _this.get$childContainer();
+ if (t1 == null ? t2 != null : t1 !== t2) {
+ t1 = _this.get$childContainer();
+ t1.toString;
+ t2 = oldLayer.rootElement;
+ t2.toString;
+ t1.appendChild(t2);
+ }
+ newChild.update$1(0, oldLayer);
+ H.PersistedContainerSurface__discardActiveChildren(oldSurface);
+ return;
+ }
+ for (t1 = oldSurface.__engine$_children, bestMatch = null, bestScore = 2, i = 0; i < t1.length; ++i) {
+ candidate = t1[i];
+ if (!newChild.canUpdateAsMatch$1(candidate))
+ continue;
+ score = newChild.matchForUpdate$1(candidate);
+ if (score < bestScore) {
+ bestScore = score;
+ bestMatch = candidate;
+ }
+ }
+ if (bestMatch != null) {
+ newChild.update$1(0, bestMatch);
+ t2 = newChild.rootElement.parentElement;
+ t3 = _this.get$childContainer();
+ if (t2 == null ? t3 != null : t2 !== t3) {
+ t2 = _this.get$childContainer();
+ t2.toString;
+ t3 = newChild.rootElement;
+ t3.toString;
+ t2.appendChild(t3);
+ }
+ } else {
+ newChild.build$0(0);
+ t2 = _this.get$childContainer();
+ t2.toString;
+ t3 = newChild.rootElement;
+ t3.toString;
+ t2.appendChild(t3);
+ }
+ for (i = 0; i < t1.length; ++i) {
+ oldChild = t1[i];
+ if (oldChild != bestMatch && oldChild.__engine$_state === C.PersistedSurfaceState_1)
+ oldChild.discard$0();
+ }
+ },
+ _updateManyToMany$1: function(oldSurface) {
+ var t1, t2, indexMapNew, indexMapOld, requiresDomInserts, topInNew, newChild, t3, isReparenting, matchedOldChild, oldLayer, indexInOld, backfill, _this = this,
+ containerElement = _this.get$childContainer(),
+ matches = _this._matchChildren$1(oldSurface);
+ for (t1 = _this.__engine$_children, t2 = type$.JSArray_int, indexMapNew = null, indexMapOld = null, requiresDomInserts = false, topInNew = 0; topInNew < t1.length; ++topInNew) {
+ newChild = t1[topInNew];
+ if (newChild.__engine$_state === C.PersistedSurfaceState_2) {
+ t3 = newChild.rootElement.parentElement;
+ isReparenting = t3 == null ? containerElement != null : t3 !== containerElement;
+ newChild.retain$0();
+ matchedOldChild = newChild;
+ } else if (newChild instanceof H.PersistedContainerSurface && newChild._oldLayer.value != null) {
+ oldLayer = newChild._oldLayer.value;
+ t3 = oldLayer.rootElement.parentElement;
+ isReparenting = t3 == null ? containerElement != null : t3 !== containerElement;
+ newChild.update$1(0, oldLayer);
+ matchedOldChild = oldLayer;
+ } else {
+ matchedOldChild = matches.$index(0, newChild);
+ if (matchedOldChild != null) {
+ t3 = matchedOldChild.rootElement.parentElement;
+ isReparenting = t3 == null ? containerElement != null : t3 !== containerElement;
+ newChild.update$1(0, matchedOldChild);
+ } else {
+ newChild.build$0(0);
+ isReparenting = true;
+ }
+ }
+ indexInOld = matchedOldChild != null && !isReparenting ? matchedOldChild.__engine$_index : -1;
+ if (!requiresDomInserts && indexInOld !== topInNew) {
+ indexMapNew = H.setRuntimeTypeInfo([], t2);
+ indexMapOld = H.setRuntimeTypeInfo([], t2);
+ for (backfill = 0; backfill < topInNew; ++backfill) {
+ indexMapNew.push(backfill);
+ indexMapOld.push(backfill);
+ }
+ requiresDomInserts = true;
+ }
+ if (requiresDomInserts && indexInOld !== -1) {
+ indexMapNew.push(topInNew);
+ indexMapOld.push(indexInOld);
+ }
+ newChild.__engine$_index = topInNew;
+ }
+ if (requiresDomInserts) {
+ indexMapOld.toString;
+ _this._insertChildDomNodes$2(indexMapNew, indexMapOld);
+ }
+ H.PersistedContainerSurface__discardActiveChildren(oldSurface);
+ },
+ _insertChildDomNodes$2: function(indexMapNew, indexMapOld) {
+ var t1, i, containerElement, t2, refNode, isStationary, childElement,
+ stationaryIndices = H.longestIncreasingSubsequence(indexMapOld);
+ for (t1 = stationaryIndices.length, i = 0; i < t1; ++i)
+ stationaryIndices[i] = indexMapNew[stationaryIndices[i]];
+ containerElement = this.get$childContainer();
+ for (t1 = this.__engine$_children, i = t1.length - 1, t2 = type$.HtmlElement, refNode = null; i >= 0; --i, refNode = childElement) {
+ indexMapNew.toString;
+ isStationary = C.JSArray_methods.indexOf$1(indexMapNew, i) !== -1 && C.JSArray_methods.contains$1(stationaryIndices, i);
+ childElement = t2._as(t1[i].rootElement);
+ if (!isStationary)
+ if (refNode == null)
+ containerElement.appendChild(childElement);
+ else
+ containerElement.insertBefore(childElement, refNode);
+ }
+ },
+ _matchChildren$1: function(oldSurface) {
+ var i, child, oldChildren, newChildCount, oldChildCount, allMatches, indexInNew, newChild, indexInOld, oldChild, result, match, matchedChild, newChildNeedsMatch,
+ t1 = this.__engine$_children,
+ newUnfilteredChildCount = t1.length,
+ t2 = oldSurface.__engine$_children,
+ oldUnfilteredChildCount = t2.length,
+ newChildren = H.setRuntimeTypeInfo([], type$.JSArray_PersistedSurface);
+ for (i = 0; i < newUnfilteredChildCount; ++i) {
+ child = t1[i];
+ if (child.__engine$_state === C.PersistedSurfaceState_0 && child._oldLayer.value == null)
+ newChildren.push(child);
+ }
+ oldChildren = H.setRuntimeTypeInfo([], type$.JSArray_nullable_PersistedSurface);
+ for (i = 0; i < oldUnfilteredChildCount; ++i) {
+ child = t2[i];
+ if (child.__engine$_state === C.PersistedSurfaceState_1)
+ oldChildren.push(child);
+ }
+ newChildCount = newChildren.length;
+ oldChildCount = oldChildren.length;
+ if (newChildCount === 0 || oldChildCount === 0)
+ return C.Map_empty5;
+ allMatches = H.setRuntimeTypeInfo([], type$.JSArray__PersistedSurfaceMatch);
+ for (indexInNew = 0; indexInNew < newChildCount; ++indexInNew) {
+ newChild = newChildren[indexInNew];
+ for (indexInOld = 0; indexInOld < oldChildCount; ++indexInOld) {
+ oldChild = oldChildren[indexInOld];
+ if (oldChild == null || !newChild.canUpdateAsMatch$1(oldChild))
+ continue;
+ allMatches.push(new H._PersistedSurfaceMatch(newChild, indexInOld, newChild.matchForUpdate$1(oldChild)));
+ }
+ }
+ C.JSArray_methods.sort$1(allMatches, new H.PersistedContainerSurface__matchChildren_closure());
+ result = P.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_PersistedSurface, type$.PersistedSurface);
+ for (i = 0; i < allMatches.length; ++i) {
+ match = allMatches[i];
+ t1 = match.oldChildIndex;
+ matchedChild = oldChildren[t1];
+ t2 = match.newChild;
+ newChildNeedsMatch = result.$index(0, t2) == null;
+ if (matchedChild != null && newChildNeedsMatch) {
+ oldChildren[t1] = null;
+ result.$indexSet(0, t2, matchedChild);
+ }
+ }
+ return result;
+ },
+ retain$0: function() {
+ var t1, len, i;
+ this.super$PersistedSurface$retain();
+ t1 = this.__engine$_children;
+ len = t1.length;
+ for (i = 0; i < len; ++i)
+ t1[i].retain$0();
+ },
+ revive$0: function() {
+ var t1, len, i;
+ this.super$PersistedSurface$revive();
+ t1 = this.__engine$_children;
+ len = t1.length;
+ for (i = 0; i < len; ++i)
+ t1[i].revive$0();
+ },
+ discard$0: function() {
+ this.super$PersistedSurface$discard();
+ H.PersistedContainerSurface__discardActiveChildren(this);
+ }
+ };
+ H.PersistedContainerSurface__matchChildren_closure.prototype = {
+ call$2: function(m1, m2) {
+ return C.JSNumber_methods.compareTo$1(m1.matchQuality, m2.matchQuality);
+ },
+ $signature: 391
+ };
+ H._PersistedSurfaceMatch.prototype = {
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.PersistedTransform.prototype = {
+ recomputeTransformAndClip$0: function() {
+ var _this = this;
+ _this.__engine$_transform = _this.parent.__engine$_transform.multiplied$1(new H.Matrix40(_this.matrix4));
+ _this._projectedClip = _this._localTransformInverse = null;
+ },
+ get$localTransformInverse: function() {
+ var t1 = this._localTransformInverse;
+ return t1 == null ? this._localTransformInverse = H.Matrix4_tryInvert0(new H.Matrix40(this.matrix4)) : t1;
+ },
+ createElement$0: function(_) {
+ var element = $.$get$domRenderer().createElement$1(0, "flt-transform");
+ H.DomRenderer_setElementStyle(element, "position", "absolute");
+ H.DomRenderer_setElementStyle(element, "transform-origin", "0 0 0");
+ return element;
+ },
+ apply$0: function() {
+ var t1 = this.rootElement.style,
+ t2 = H.float64ListToCssTransform(this.matrix4);
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), t2, "");
+ },
+ update$1: function(_, oldSurface) {
+ var t1, t2, matrixChanged, i;
+ this.super$PersistedContainerSurface$update(0, oldSurface);
+ t1 = oldSurface.matrix4;
+ t2 = this.matrix4;
+ if (t1 == null ? t2 == null : t1 === t2)
+ return;
+ t2.length;
+ i = 0;
+ while (true) {
+ if (!(i < 16)) {
+ matrixChanged = false;
+ break;
+ }
+ if (t2[i] !== t1[i]) {
+ matrixChanged = true;
+ break;
+ }
+ ++i;
+ }
+ if (matrixChanged) {
+ t1 = this.rootElement.style;
+ t2 = H.float64ListToCssTransform(t2);
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), t2, "");
+ }
+ },
+ $isTransformEngineLayer: 1
+ };
+ H.Keyboard.prototype = {
+ Keyboard$_$0: function() {
+ var _this = this,
+ t1 = new H.Keyboard$__closure(_this);
+ _this._keydownListener = t1;
+ C.Window_methods.addEventListener$2(window, "keydown", t1);
+ t1 = new H.Keyboard$__closure0(_this);
+ _this._keyupListener = t1;
+ C.Window_methods.addEventListener$2(window, "keyup", t1);
+ $._hotRestartListeners.push(new H.Keyboard$__closure1(_this));
+ },
+ dispose$0: function(_) {
+ var t1, t2, _this = this;
+ C.Window_methods.removeEventListener$2(window, "keydown", _this._keydownListener);
+ C.Window_methods.removeEventListener$2(window, "keyup", _this._keyupListener);
+ for (t1 = _this._keydownTimers, t2 = t1.get$keys(t1), t2 = t2.get$iterator(t2); t2.moveNext$0();)
+ t1.$index(0, t2.get$current(t2)).cancel$0(0);
+ t1.clear$0(0);
+ $.Keyboard__instance = _this._keyupListener = _this._keydownListener = null;
+ },
+ _handleHtmlEvent$1: function($event) {
+ var t1, t2, t3, metaState, eventData, _this = this;
+ if (!type$.KeyboardEvent._is($event))
+ return;
+ if (_this._shouldPreventDefault$1($event))
+ $event.preventDefault();
+ t1 = $event.code;
+ t1.toString;
+ t2 = $event.key;
+ t2.toString;
+ if (!(t2 === "Meta" || t2 === "Shift" || t2 === "Alt" || t2 === "Control")) {
+ t2 = _this._keydownTimers;
+ t3 = t2.$index(0, t1);
+ if (t3 != null)
+ t3.cancel$0(0);
+ if ($event.type === "keydown")
+ t3 = $event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey;
+ else
+ t3 = false;
+ if (t3)
+ t2.$indexSet(0, t1, P.Timer_Timer(C.Duration_1000000, new H.Keyboard__handleHtmlEvent_closure(_this, t1, $event)));
+ else
+ t2.remove$1(0, t1);
+ }
+ metaState = $event.getModifierState("Shift") ? 1 : 0;
+ if ($event.getModifierState("Alt") || $event.getModifierState("AltGraph"))
+ metaState |= 2;
+ if ($event.getModifierState("Control"))
+ metaState |= 4;
+ if ($event.getModifierState("Meta"))
+ metaState |= 8;
+ _this._lastMetaState = metaState;
+ if ($event.type === "keydown") {
+ t1 = $event.key;
+ if (t1 === "CapsLock") {
+ t1 = metaState | 32;
+ _this._lastMetaState = t1;
+ } else if ($event.code === "NumLock") {
+ t1 = metaState | 16;
+ _this._lastMetaState = t1;
+ } else if (t1 === "ScrollLock") {
+ t1 = metaState | 64;
+ _this._lastMetaState = t1;
+ } else
+ t1 = metaState;
+ } else
+ t1 = metaState;
+ eventData = P.LinkedHashMap_LinkedHashMap$_literal(["type", $event.type, "keymap", "web", "code", $event.code, "key", $event.key, "metaState", t1], type$.String, type$.dynamic);
+ $.$get$EnginePlatformDispatcher__instance().invokeOnPlatformMessage$3("flutter/keyevent", C.C_JSONMessageCodec.encodeMessage$1(eventData), H._engine___noopCallback$closure());
+ },
+ _shouldPreventDefault$1: function($event) {
+ switch ($event.key) {
+ case "Tab":
+ return true;
+ default:
+ return false;
+ }
+ }
+ };
+ H.Keyboard$__closure.prototype = {
+ call$1: function($event) {
+ this.$this._handleHtmlEvent$1($event);
+ },
+ $signature: 6
+ };
+ H.Keyboard$__closure0.prototype = {
+ call$1: function($event) {
+ this.$this._handleHtmlEvent$1($event);
+ },
+ $signature: 6
+ };
+ H.Keyboard$__closure1.prototype = {
+ call$0: function() {
+ this.$this.dispose$0(0);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ H.Keyboard__handleHtmlEvent_closure.prototype = {
+ call$0: function() {
+ var t2, eventData,
+ t1 = this.$this;
+ t1._keydownTimers.remove$1(0, this.timerKey);
+ t2 = this.event;
+ eventData = P.LinkedHashMap_LinkedHashMap$_literal(["type", "keyup", "keymap", "web", "code", t2.code, "key", t2.key, "metaState", t1._lastMetaState], type$.String, type$.dynamic);
+ $.$get$EnginePlatformDispatcher__instance().invokeOnPlatformMessage$3("flutter/keyevent", C.C_JSONMessageCodec.encodeMessage$1(eventData), H._engine___noopCallback$closure());
+ },
+ $signature: 0
+ };
+ H.MouseCursor.prototype = {};
+ H.BrowserHistory.prototype = {
+ get$_unsubscribe: function() {
+ return this.__BrowserHistory__unsubscribe_isSet ? this.__BrowserHistory__unsubscribe : H.throwExpression(H.LateError$fieldNI("_unsubscribe"));
+ },
+ _setupStrategy$1: function(strategy) {
+ var _this = this,
+ t1 = strategy.addPopStateListener$1(0, type$.dynamic_Function_Event._as(_this.get$onPopState(_this)));
+ _this.__BrowserHistory__unsubscribe_isSet = true;
+ _this.__BrowserHistory__unsubscribe = t1;
+ },
+ exit$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this;
+ var $async$exit$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = $async$self.get$urlStrategy() != null ? 2 : 3;
+ break;
+ case 2:
+ // then
+ $async$goto = 4;
+ return P._asyncAwait($async$self.tearDown$0(), $async$exit$0);
+ case 4:
+ // returning from await.
+ $async$goto = 5;
+ return P._asyncAwait($async$self.get$urlStrategy().go$1(0, -1), $async$exit$0);
+ case 5:
+ // returning from await.
+ case 3:
+ // join
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$exit$0, $async$completer);
+ },
+ get$currentPath: function() {
+ var t1 = this.get$urlStrategy();
+ t1 = t1 == null ? null : t1.getPath$0(0);
+ return t1 == null ? "/" : t1;
+ },
+ get$currentState: function() {
+ var t1 = this.get$urlStrategy();
+ return t1 == null ? null : t1.getState$0(0);
+ },
+ _unsubscribe$0: function() {
+ return this.get$_unsubscribe().call$0();
+ }
+ };
+ H.MultiEntriesBrowserHistory.prototype = {
+ MultiEntriesBrowserHistory$1$urlStrategy: function(urlStrategy) {
+ var t1, _this = this,
+ strategy = _this.urlStrategy;
+ if (strategy == null)
+ return;
+ _this._setupStrategy$1(strategy);
+ if (!_this._hasSerialCount$1(_this.get$currentState())) {
+ t1 = type$.dynamic;
+ strategy.replaceState$3(0, P.LinkedHashMap_LinkedHashMap$_literal(["serialCount", 0, "state", _this.get$currentState()], t1, t1), "flutter", _this.get$currentPath());
+ }
+ t1 = _this.get$_currentSerialCount();
+ _this.__MultiEntriesBrowserHistory__lastSeenSerialCount_isSet = true;
+ _this.__MultiEntriesBrowserHistory__lastSeenSerialCount = t1;
+ },
+ get$_lastSeenSerialCount: function() {
+ return this.__MultiEntriesBrowserHistory__lastSeenSerialCount_isSet ? this.__MultiEntriesBrowserHistory__lastSeenSerialCount : H.throwExpression(H.LateError$fieldNI("_lastSeenSerialCount"));
+ },
+ get$_currentSerialCount: function() {
+ if (this._hasSerialCount$1(this.get$currentState()))
+ return H._asIntS(J.$index$asx(type$.Map_dynamic_dynamic._as(this.get$currentState()), "serialCount"));
+ return 0;
+ },
+ _hasSerialCount$1: function(state) {
+ return type$.Map_dynamic_dynamic._is(state) && J.$index$asx(state, "serialCount") != null;
+ },
+ setRouteName$2$state: function(routeName, state) {
+ var t2, _this = this,
+ t1 = _this.urlStrategy;
+ if (t1 != null) {
+ t2 = _this.get$_lastSeenSerialCount();
+ _this.__MultiEntriesBrowserHistory__lastSeenSerialCount_isSet = true;
+ _this.__MultiEntriesBrowserHistory__lastSeenSerialCount = t2 + 1;
+ t2 = type$.dynamic;
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["serialCount", _this.get$_lastSeenSerialCount(), "state", state], t2, t2);
+ routeName.toString;
+ t1.pushState$3(0, t2, "flutter", routeName);
+ }
+ },
+ setRouteName$1: function(routeName) {
+ return this.setRouteName$2$state(routeName, null);
+ },
+ onPopState$1: function(_, $event) {
+ var t1, t2, t3, t4, _this = this;
+ if (!_this._hasSerialCount$1(new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy($event.state, true))) {
+ t1 = _this.urlStrategy;
+ t1.toString;
+ t2 = new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy($event.state, true);
+ t3 = type$.dynamic;
+ t1.replaceState$3(0, P.LinkedHashMap_LinkedHashMap$_literal(["serialCount", _this.get$_lastSeenSerialCount() + 1, "state", t2], t3, t3), "flutter", _this.get$currentPath());
+ }
+ t1 = _this.get$_currentSerialCount();
+ _this.__MultiEntriesBrowserHistory__lastSeenSerialCount_isSet = true;
+ _this.__MultiEntriesBrowserHistory__lastSeenSerialCount = t1;
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ t2 = _this.get$currentPath();
+ t3 = new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy($event.state, true);
+ t3 = t3 == null ? null : J.$index$asx(t3, "state");
+ t4 = type$.dynamic;
+ t1.invokeOnPlatformMessage$3("flutter/navigation", C.C_JSONMethodCodec.encodeMethodCall$1(new H.MethodCall0("pushRouteInformation", P.LinkedHashMap_LinkedHashMap$_literal(["location", t2, "state", t3], t4, t4))), new H.MultiEntriesBrowserHistory_onPopState_closure());
+ },
+ tearDown$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this, backCount, stateMap, t1;
+ var $async$tearDown$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if ($async$self._isDisposed || $async$self.urlStrategy == null) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $async$self._isDisposed = true;
+ $async$self._unsubscribe$0();
+ backCount = $async$self.get$_currentSerialCount();
+ $async$goto = backCount > 0 ? 3 : 4;
+ break;
+ case 3:
+ // then
+ $async$goto = 5;
+ return P._asyncAwait($async$self.urlStrategy.go$1(0, -backCount), $async$tearDown$0);
+ case 5:
+ // returning from await.
+ case 4:
+ // join
+ stateMap = type$.Map_dynamic_dynamic._as($async$self.get$currentState());
+ t1 = $async$self.urlStrategy;
+ t1.toString;
+ t1.replaceState$3(0, J.$index$asx(stateMap, "state"), "flutter", $async$self.get$currentPath());
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$tearDown$0, $async$completer);
+ },
+ get$urlStrategy: function() {
+ return this.urlStrategy;
+ }
+ };
+ H.MultiEntriesBrowserHistory_onPopState_closure.prototype = {
+ call$1: function(_) {
+ },
+ $signature: 28
+ };
+ H.SingleEntryBrowserHistory.prototype = {
+ SingleEntryBrowserHistory$1$urlStrategy: function(urlStrategy) {
+ var path, _this = this,
+ strategy = _this.urlStrategy;
+ if (strategy == null)
+ return;
+ _this._setupStrategy$1(strategy);
+ path = _this.get$currentPath();
+ if (!_this._isFlutterEntry$1(new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(window.history.state, true))) {
+ strategy.replaceState$3(0, P.LinkedHashMap_LinkedHashMap$_literal(["origin", true, "state", _this.get$currentState()], type$.String, type$.dynamic), "origin", "");
+ _this._setupFlutterEntry$3$path$replace(strategy, path, false);
+ }
+ },
+ _isFlutterEntry$1: function(state) {
+ return type$.Map_dynamic_dynamic._is(state) && J.$eq$(J.$index$asx(state, "flutter"), true);
+ },
+ setRouteName$2$state: function(routeName, state) {
+ var t1 = this.urlStrategy;
+ if (t1 != null)
+ this._setupFlutterEntry$3$path$replace(t1, routeName, true);
+ },
+ setRouteName$1: function(routeName) {
+ return this.setRouteName$2$state(routeName, null);
+ },
+ onPopState$1: function(_, $event) {
+ var _this = this,
+ _s18_ = "flutter/navigation",
+ t1 = new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy($event.state, true);
+ if (type$.Map_dynamic_dynamic._is(t1) && J.$eq$(J.$index$asx(t1, "origin"), true)) {
+ t1 = _this.urlStrategy;
+ t1.toString;
+ _this._setupFlutterEntry$1(t1);
+ $.$get$EnginePlatformDispatcher__instance().invokeOnPlatformMessage$3(_s18_, C.C_JSONMethodCodec.encodeMethodCall$1(C.MethodCall_popRoute_null), new H.SingleEntryBrowserHistory_onPopState_closure());
+ } else if (_this._isFlutterEntry$1(new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy($event.state, true))) {
+ t1 = _this._userProvidedRouteName;
+ t1.toString;
+ _this._userProvidedRouteName = null;
+ $.$get$EnginePlatformDispatcher__instance().invokeOnPlatformMessage$3(_s18_, C.C_JSONMethodCodec.encodeMethodCall$1(new H.MethodCall0("pushRoute", t1)), new H.SingleEntryBrowserHistory_onPopState_closure0());
+ } else {
+ _this._userProvidedRouteName = _this.get$currentPath();
+ _this.urlStrategy.go$1(0, -1);
+ }
+ },
+ _setupFlutterEntry$3$path$replace: function(strategy, path, replace) {
+ var t1;
+ if (path == null)
+ path = this.get$currentPath();
+ t1 = this._flutterState;
+ if (replace)
+ strategy.replaceState$3(0, t1, "flutter", path);
+ else
+ strategy.pushState$3(0, t1, "flutter", path);
+ },
+ _setupFlutterEntry$1: function(strategy) {
+ return this._setupFlutterEntry$3$path$replace(strategy, null, false);
+ },
+ tearDown$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this, t1;
+ var $async$tearDown$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if ($async$self._isDisposed || $async$self.urlStrategy == null) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $async$self._isDisposed = true;
+ $async$self._unsubscribe$0();
+ t1 = $async$self.urlStrategy;
+ $async$goto = 3;
+ return P._asyncAwait(t1.go$1(0, -1), $async$tearDown$0);
+ case 3:
+ // returning from await.
+ t1.replaceState$3(0, J.$index$asx(type$.Map_dynamic_dynamic._as($async$self.get$currentState()), "state"), "flutter", $async$self.get$currentPath());
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$tearDown$0, $async$completer);
+ },
+ get$urlStrategy: function() {
+ return this.urlStrategy;
+ }
+ };
+ H.SingleEntryBrowserHistory_onPopState_closure.prototype = {
+ call$1: function(_) {
+ },
+ $signature: 28
+ };
+ H.SingleEntryBrowserHistory_onPopState_closure0.prototype = {
+ call$1: function(_) {
+ },
+ $signature: 28
+ };
+ H.JsUrlStrategy.prototype = {};
+ H.UrlStrategy.prototype = {};
+ H.HashUrlStrategy.prototype = {
+ addPopStateListener$1: function(_, fn) {
+ C.Window_methods.addEventListener$2(window, "popstate", fn);
+ return new H.HashUrlStrategy_addPopStateListener_closure(this, fn);
+ },
+ getPath$0: function(_) {
+ var path = window.location.hash;
+ if (path == null)
+ path = "";
+ if (path.length === 0 || path === "#")
+ return "/";
+ return C.JSString_methods.substring$1(path, 1);
+ },
+ getState$0: function(_) {
+ return new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(window.history.state, true);
+ },
+ prepareExternalUrl$1: function(_, internalUrl) {
+ var t1, t2;
+ if (internalUrl.length === 0) {
+ t1 = window.location.pathname;
+ t1.toString;
+ t2 = window.location.search;
+ t2.toString;
+ t2 = t1 + t2;
+ t1 = t2;
+ } else
+ t1 = "#" + internalUrl;
+ return t1;
+ },
+ pushState$3: function(_, state, title, url) {
+ var t1 = this.prepareExternalUrl$1(0, url),
+ t2 = window.history;
+ t2.toString;
+ t2.pushState(new P._StructuredCloneDart2Js([], []).walk$1(state), title, t1);
+ },
+ replaceState$3: function(_, state, title, url) {
+ var t1 = this.prepareExternalUrl$1(0, url),
+ t2 = window.history;
+ t2.toString;
+ t2.replaceState(new P._StructuredCloneDart2Js([], []).walk$1(state), title, t1);
+ },
+ go$1: function(_, count) {
+ window.history.go(count);
+ return this._waitForPopState$0();
+ },
+ _waitForPopState$0: function() {
+ var t1 = {},
+ t2 = new P._Future($.Zone__current, type$._Future_void);
+ t1.unsubscribe = null;
+ t1._unsubscribe_isSet = false;
+ new H.HashUrlStrategy__waitForPopState__unsubscribe_set(t1).call$1(this.addPopStateListener$1(0, new H.HashUrlStrategy__waitForPopState_closure(new H.HashUrlStrategy__waitForPopState__unsubscribe_get(t1), new P._AsyncCompleter(t2, type$._AsyncCompleter_void))));
+ return t2;
+ }
+ };
+ H.HashUrlStrategy_addPopStateListener_closure.prototype = {
+ call$0: function() {
+ C.Window_methods.removeEventListener$2(window, "popstate", this.fn);
+ return null;
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ H.HashUrlStrategy__waitForPopState__unsubscribe_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._unsubscribe_isSet = true;
+ return t2.unsubscribe = t1;
+ },
+ $signature: 108
+ };
+ H.HashUrlStrategy__waitForPopState__unsubscribe_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._unsubscribe_isSet ? t1.unsubscribe : H.throwExpression(H.LateError$localNI("unsubscribe"));
+ },
+ $signature: 135
+ };
+ H.HashUrlStrategy__waitForPopState_closure.prototype = {
+ call$1: function(_) {
+ this._unsubscribe_get.call$0().call$0();
+ this.completer.complete$0(0);
+ },
+ $signature: 6
+ };
+ H.CustomUrlStrategy.prototype = {
+ addPopStateListener$1: function(_, fn) {
+ return J.addPopStateListener$1$x(this.delegate, fn);
+ },
+ getPath$0: function(_) {
+ return J.getPath$0$x(this.delegate);
+ },
+ getState$0: function(_) {
+ return J.getState$0$x(this.delegate);
+ },
+ pushState$3: function(_, state, title, url) {
+ return J.pushState$3$x(this.delegate, state, title, url);
+ },
+ replaceState$3: function(_, state, title, url) {
+ return J.replaceState$3$x(this.delegate, state, title, url);
+ },
+ go$1: function(_, count) {
+ return J.go$1$x(this.delegate, count);
+ }
+ };
+ H.PlatformLocation.prototype = {};
+ H.BrowserPlatformLocation.prototype = {};
+ H.EnginePictureRecorder.prototype = {
+ get$cullRect: function() {
+ return this.__EnginePictureRecorder_cullRect_isSet ? this.__EnginePictureRecorder_cullRect : H.throwExpression(H.LateError$fieldNI("cullRect"));
+ },
+ beginRecording$1: function(_, bounds) {
+ var t1, t2, t3, t4, t5, _this = this;
+ _this.__EnginePictureRecorder_cullRect_isSet = true;
+ _this.__EnginePictureRecorder_cullRect = bounds;
+ _this._isRecording = true;
+ t1 = _this.get$cullRect();
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_PaintCommand);
+ if (t1 == null)
+ t1 = C.Rect_aha;
+ t3 = H.setRuntimeTypeInfo([], type$.JSArray_Matrix4_2);
+ t4 = H.setRuntimeTypeInfo([], type$.JSArray_nullable_Rect);
+ t5 = new H.Matrix40(new Float32Array(16));
+ t5.setIdentity$0();
+ return _this.__engine$_canvas = new H.RecordingCanvas(new H._PaintBounds(t1, t3, t4, t5), t2);
+ },
+ endRecording$0: function() {
+ var t1, _this = this;
+ if (!_this._isRecording)
+ _this.beginRecording$1(0, C.Rect_aha);
+ _this._isRecording = false;
+ t1 = _this.__engine$_canvas;
+ t1._pictureBounds = t1._paintBounds.computeBounds$0();
+ t1._recordingEnded = true;
+ t1 = _this.__engine$_canvas;
+ _this.get$cullRect();
+ return new H.EnginePicture(t1);
+ }
+ };
+ H.EnginePicture.prototype = {};
+ H.EnginePlatformDispatcher.prototype = {
+ invokeOnMetricsChanged$0: function() {
+ var t1 = this._onMetricsChanged;
+ if (t1 != null)
+ H.invoke(t1, this._onMetricsChangedZone);
+ },
+ invokeOnPlatformMessage$3: function($name, data, callback) {
+ var t1, bytes, methodNameLength, t2, methodName, index, channelNameLength, channelName, parts,
+ _s143_ = "Invalid arguments for 'resize' method sent to dev.flutter/channel-buffers (arguments must be a two-element list, channel name and new capacity)",
+ _s143_0 = "Invalid arguments for 'overflow' method sent to dev.flutter/channel-buffers (arguments must be a two-element list, channel name and flag state)";
+ if ($name === "dev.flutter/channel-buffers")
+ try {
+ t1 = $.$get$channelBuffers();
+ data.toString;
+ t1.toString;
+ bytes = H.NativeUint8List_NativeUint8List$view(data.buffer, data.byteOffset, data.byteLength);
+ if (bytes[0] === 7) {
+ methodNameLength = bytes[1];
+ if (methodNameLength >= 254)
+ H.throwExpression(P.Exception_Exception("Unrecognized message sent to dev.flutter/channel-buffers (method name too long)"));
+ t2 = 2 + methodNameLength;
+ methodName = C.C_Utf8Codec.decode$1(0, C.NativeUint8List_methods.sublist$2(bytes, 2, t2));
+ switch (methodName) {
+ case "resize":
+ if (bytes[t2] !== 12)
+ H.throwExpression(P.Exception_Exception(_s143_));
+ index = t2 + 1;
+ if (bytes[index] < 2)
+ H.throwExpression(P.Exception_Exception(_s143_));
+ ++index;
+ if (bytes[index] !== 7)
+ H.throwExpression(P.Exception_Exception("Invalid arguments for 'resize' method sent to dev.flutter/channel-buffers (first argument must be a string)"));
+ ++index;
+ channelNameLength = bytes[index];
+ if (channelNameLength >= 254)
+ H.throwExpression(P.Exception_Exception("Invalid arguments for 'resize' method sent to dev.flutter/channel-buffers (channel name must be less than 254 characters long)"));
+ ++index;
+ t2 = index + channelNameLength;
+ channelName = C.C_Utf8Codec.decode$1(0, C.NativeUint8List_methods.sublist$2(bytes, index, t2));
+ if (bytes[t2] !== 3)
+ H.throwExpression(P.Exception_Exception("Invalid arguments for 'resize' method sent to dev.flutter/channel-buffers (second argument must be an integer in the range 0 to 2147483647)"));
+ t1.resize$2(0, channelName, data.getUint32(t2 + 1, C.C_Endian === $.$get$Endian_host()));
+ break;
+ case "overflow":
+ if (bytes[t2] !== 12)
+ H.throwExpression(P.Exception_Exception(_s143_0));
+ index = t2 + 1;
+ if (bytes[index] < 2)
+ H.throwExpression(P.Exception_Exception(_s143_0));
+ ++index;
+ if (bytes[index] !== 7)
+ H.throwExpression(P.Exception_Exception("Invalid arguments for 'overflow' method sent to dev.flutter/channel-buffers (first argument must be a string)"));
+ ++index;
+ channelNameLength = bytes[index];
+ if (channelNameLength >= 254)
+ H.throwExpression(P.Exception_Exception("Invalid arguments for 'overflow' method sent to dev.flutter/channel-buffers (channel name must be less than 254 characters long)"));
+ ++index;
+ t1 = index + channelNameLength;
+ C.C_Utf8Codec.decode$1(0, C.NativeUint8List_methods.sublist$2(bytes, index, t1));
+ t1 = bytes[t1];
+ if (t1 !== 1 && t1 !== 2)
+ H.throwExpression(P.Exception_Exception("Invalid arguments for 'overflow' method sent to dev.flutter/channel-buffers (second argument must be a boolean)"));
+ break;
+ default:
+ H.throwExpression(P.Exception_Exception("Unrecognized method '" + methodName + "' sent to dev.flutter/channel-buffers"));
+ }
+ } else {
+ parts = H.setRuntimeTypeInfo(C.C_Utf8Codec.decode$1(0, bytes).split("\r"), type$.JSArray_String);
+ if (parts.length === 3 && J.$eq$(parts[0], "resize"))
+ t1.resize$2(0, parts[1], P.int_parse(parts[2], null));
+ else
+ H.throwExpression(P.Exception_Exception("Unrecognized message " + H.S(parts) + " sent to dev.flutter/channel-buffers."));
+ }
+ } finally {
+ callback.call$1(null);
+ }
+ else {
+ t1 = this._onPlatformMessage;
+ if (t1 != null)
+ H.invoke3(t1, this._onPlatformMessageZone, $name, data, callback);
+ else
+ $.$get$channelBuffers().push$3($name, data, callback);
+ }
+ },
+ __engine$_sendPlatformMessage$3: function($name, data, callback) {
+ var decoded, t1, t2, url, $navigator, $arguments, t3, theme, e, $call, t4, config, transformList, textAlignIndex, textDirectionIndex, fontWeightIndex, fontWeight, saveForm, codec, _this = this;
+ switch ($name) {
+ case "flutter/skia":
+ decoded = C.C_JSONMethodCodec.decodeMethodCall$1(data);
+ switch (decoded.method) {
+ case "Skia.setResourceCacheMaxBytes":
+ t1 = decoded.$arguments;
+ if (H._isInt(t1)) {
+ t2 = _this.get$rasterizer();
+ if (t2 != null) {
+ t2 = t2.surface;
+ t2._skiaCacheBytes = t1;
+ t2._syncCacheBytes$0();
+ }
+ }
+ break;
+ }
+ return;
+ case "flutter/assets":
+ url = C.C_Utf8Codec.decode$1(0, H.NativeUint8List_NativeUint8List$view(data.buffer, 0, null));
+ $._assetManager.load$1(0, url).then$1$2$onError(0, new H.EnginePlatformDispatcher__sendPlatformMessage_closure(_this, callback), new H.EnginePlatformDispatcher__sendPlatformMessage_closure0(_this, callback), type$.Null);
+ return;
+ case "flutter/platform":
+ decoded = C.C_JSONMethodCodec.decodeMethodCall$1(data);
+ switch (decoded.method) {
+ case "SystemNavigator.pop":
+ _this._windows.$index(0, 0).get$browserHistory().exit$0().then$1$1(0, new H.EnginePlatformDispatcher__sendPlatformMessage_closure1(_this, callback), type$.Null);
+ return;
+ case "HapticFeedback.vibrate":
+ t1 = $.$get$domRenderer();
+ t2 = _this._getHapticFeedbackDuration$1(decoded.$arguments);
+ t1.toString;
+ $navigator = window.navigator;
+ if ("vibrate" in $navigator)
+ $navigator.vibrate.apply($navigator, H.setRuntimeTypeInfo([t2], type$.JSArray_num));
+ _this._replyToPlatformMessage$2(callback, C.C_JSONMessageCodec.encodeMessage$1([true]));
+ return;
+ case string$.System:
+ $arguments = decoded.$arguments;
+ t1 = $.$get$domRenderer();
+ t2 = J.getInterceptor$asx($arguments);
+ t3 = t2.$index($arguments, "label");
+ t1.toString;
+ t1 = document;
+ t1.title = t3;
+ t2 = t2.$index($arguments, "primaryColor");
+ theme = type$.nullable_MetaElement._as(t1.querySelector("#flutterweb-theme"));
+ if (theme == null) {
+ theme = t1.createElement("meta");
+ theme.id = "flutterweb-theme";
+ theme.name = "theme-color";
+ t1.head.appendChild(theme);
+ }
+ t1 = H.colorToCssString(new P.Color(t2 >>> 0));
+ t1.toString;
+ theme.content = t1;
+ _this._replyToPlatformMessage$2(callback, C.C_JSONMessageCodec.encodeMessage$1([true]));
+ return;
+ case "SystemChrome.setPreferredOrientations":
+ $.$get$domRenderer().setPreferredOrientation$1(decoded.$arguments).then$1$1(0, new H.EnginePlatformDispatcher__sendPlatformMessage_closure2(_this, callback), type$.Null);
+ return;
+ case "SystemSound.play":
+ _this._replyToPlatformMessage$2(callback, C.C_JSONMessageCodec.encodeMessage$1([true]));
+ return;
+ case "Clipboard.setData":
+ t1 = window.navigator.clipboard != null ? new H.ClipboardAPICopyStrategy() : new H.ExecCommandCopyStrategy();
+ new H.ClipboardMessageHandler(t1, H.PasteFromClipboardStrategy_PasteFromClipboardStrategy()).setDataMethodCall$2(decoded, callback);
+ return;
+ case "Clipboard.getData":
+ t1 = window.navigator.clipboard != null ? new H.ClipboardAPICopyStrategy() : new H.ExecCommandCopyStrategy();
+ new H.ClipboardMessageHandler(t1, H.PasteFromClipboardStrategy_PasteFromClipboardStrategy()).getDataMethodCall$1(callback);
+ return;
+ }
+ break;
+ case "flutter/service_worker":
+ t1 = window;
+ e = document.createEvent("Event");
+ e.initEvent("flutter-first-frame", true, true);
+ t1.dispatchEvent(e);
+ return;
+ case "flutter/textinput":
+ t1 = $.$get$textEditing();
+ t1 = t1.get$channel(t1);
+ t1.toString;
+ $call = C.C_JSONMethodCodec.decodeMethodCall$1(data);
+ t2 = $call.method;
+ switch (t2) {
+ case "TextInput.setClient":
+ t1 = t1.implementation;
+ t2 = $call.$arguments;
+ t3 = J.getInterceptor$asx(t2);
+ t4 = t3.$index(t2, 0);
+ t2 = H.InputConfiguration$fromFrameworkMessage(t3.$index(t2, 1));
+ t3 = t1._clientId;
+ if (t3 != null && t3 !== t4 && t1.isEditing) {
+ t1.isEditing = false;
+ t1.get$editingElement().disable$0(0);
+ }
+ t1._clientId = t4;
+ t1.__HybridTextEditing__configuration_isSet = true;
+ t1.__HybridTextEditing__configuration = t2;
+ break;
+ case "TextInput.updateConfig":
+ config = H.InputConfiguration$fromFrameworkMessage($call.$arguments);
+ t1 = t1.implementation;
+ t1.__HybridTextEditing__configuration_isSet = true;
+ t1.__HybridTextEditing__configuration = config;
+ t1.get$editingElement()._applyConfiguration$1(t1.get$_configuration());
+ break;
+ case "TextInput.setEditingState":
+ t2 = H.EditingState_EditingState$fromFrameworkMessage($call.$arguments);
+ t1.implementation.get$editingElement().setEditingState$1(t2);
+ break;
+ case "TextInput.show":
+ t1 = t1.implementation;
+ if (!t1.isEditing)
+ t1._startEditing$0();
+ break;
+ case "TextInput.setEditableSizeAndTransform":
+ t2 = $call.$arguments;
+ t3 = J.getInterceptor$asx(t2);
+ transformList = P.List_List$from(t3.$index(t2, "transform"), true, type$.double);
+ t4 = t3.$index(t2, "width");
+ t2 = t3.$index(t2, "height");
+ t3 = new Float32Array(H._ensureNativeList(transformList));
+ t1.implementation.get$editingElement().updateElementPlacement$1(new H.EditableTextGeometry(t4, t2, t3));
+ break;
+ case "TextInput.setStyle":
+ t2 = $call.$arguments;
+ t3 = J.getInterceptor$asx(t2);
+ textAlignIndex = t3.$index(t2, "textAlignIndex");
+ textDirectionIndex = t3.$index(t2, "textDirectionIndex");
+ fontWeightIndex = t3.$index(t2, "fontWeightIndex");
+ fontWeight = fontWeightIndex != null ? H.fontWeightIndexToCss(fontWeightIndex) : "normal";
+ t2 = new H.EditableTextStyle(t3.$index(t2, "fontSize"), fontWeight, t3.$index(t2, "fontFamily"), C.List_WPl[textAlignIndex], C.List_TextDirection_0_TextDirection_1[textDirectionIndex]);
+ t1 = t1.implementation.get$editingElement();
+ t1._style = t2;
+ if (t1.isEnabled) {
+ t1 = t1._domElement;
+ t1.toString;
+ t2.applyToDomElement$1(t1);
+ }
+ break;
+ case "TextInput.clearClient":
+ t1 = t1.implementation;
+ if (t1.isEditing) {
+ t1.isEditing = false;
+ t1.get$editingElement().disable$0(0);
+ }
+ break;
+ case "TextInput.hide":
+ t1 = t1.implementation;
+ if (t1.isEditing) {
+ t1.isEditing = false;
+ t1.get$editingElement().disable$0(0);
+ }
+ break;
+ case "TextInput.requestAutofill":
+ break;
+ case "TextInput.finishAutofillContext":
+ saveForm = H._asBoolS($call.$arguments);
+ t1.implementation.sendTextConnectionClosedToFrameworkIfAny$0();
+ if (saveForm)
+ t1.saveForms$0();
+ t1.cleanForms$0();
+ break;
+ case "TextInput.setMarkedTextRect":
+ break;
+ default:
+ H.throwExpression(P.StateError$("Unsupported method call on the flutter/textinput channel: " + t2));
+ }
+ $.$get$EnginePlatformDispatcher__instance()._replyToPlatformMessage$2(callback, C.C_JSONMessageCodec.encodeMessage$1([true]));
+ return;
+ case "flutter/mousecursor":
+ decoded = C.C_StandardMethodCodec.decodeMethodCall$1(data);
+ switch (decoded.method) {
+ case "activateSystemCursor":
+ $.MouseCursor__instance.toString;
+ t1 = J.$index$asx(decoded.$arguments, "kind");
+ t2 = $.$get$domRenderer()._glassPaneElement;
+ t2.toString;
+ t1 = C.Map_gFKQ1.$index(0, t1);
+ H.DomRenderer_setElementStyle(t2, "cursor", t1 == null ? "default" : t1);
+ break;
+ }
+ return;
+ case "flutter/web_test_e2e":
+ _this._replyToPlatformMessage$2(callback, C.C_JSONMessageCodec.encodeMessage$1([H._handleWebTestEnd2EndMessage(C.C_JSONMethodCodec, data)]));
+ return;
+ case "flutter/platform_views":
+ data.toString;
+ callback.toString;
+ P.handlePlatformViewCall(data, callback);
+ return;
+ case "flutter/accessibility":
+ codec = new H.StandardMessageCodec();
+ $.$get$accessibilityAnnouncements().handleMessage$2(codec, data);
+ _this._replyToPlatformMessage$2(callback, codec.encodeMessage$1(true));
+ return;
+ case "flutter/navigation":
+ _this._windows.$index(0, 0).handleNavigationMessage$1(data).then$1$1(0, new H.EnginePlatformDispatcher__sendPlatformMessage_closure3(_this, callback), type$.Null);
+ _this._defaultRouteName = "/";
+ return;
+ }
+ t1 = $.pluginMessageCallHandler;
+ if (t1 != null) {
+ t1.call$3($name, data, callback);
+ return;
+ }
+ _this._replyToPlatformMessage$2(callback, null);
+ },
+ _getHapticFeedbackDuration$1: function(type) {
+ switch (type) {
+ case "HapticFeedbackType.lightImpact":
+ return 10;
+ case "HapticFeedbackType.mediumImpact":
+ return 20;
+ case "HapticFeedbackType.heavyImpact":
+ return 30;
+ case "HapticFeedbackType.selectionClick":
+ return 10;
+ default:
+ return 50;
+ }
+ },
+ scheduleFrame$0: function() {
+ var t1 = $.scheduleFrameCallback;
+ if (t1 == null)
+ throw H.wrapException(P.Exception_Exception("scheduleFrameCallback must be initialized first."));
+ t1.call$0();
+ },
+ render$2: function(scene, view) {
+ var t1;
+ type$.SurfaceScene._as(scene);
+ t1 = $.$get$domRenderer();
+ t1.renderScene$1(scene.webOnlyRootElement);
+ H._frameTimingsOnRasterFinish();
+ },
+ _updatePlatformBrightness$1: function(value) {
+ var _this = this,
+ t1 = _this._configuration;
+ if (t1.platformBrightness !== value) {
+ _this._configuration = t1.copyWith$1$platformBrightness(value);
+ H.invoke(null, null);
+ H.invoke(_this._onPlatformBrightnessChanged, _this._onPlatformBrightnessChangedZone);
+ }
+ },
+ _addBrightnessMediaQueryListener$0: function() {
+ var t2, _this = this,
+ t1 = _this._brightnessMediaQuery;
+ _this._updatePlatformBrightness$1(t1.matches ? C.Brightness_0 : C.Brightness_1);
+ t2 = new H.EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure(_this);
+ _this._brightnessMediaQueryListener = t2;
+ C.MediaQueryList_methods.addListener$1(t1, t2);
+ $._hotRestartListeners.push(new H.EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure0(_this));
+ },
+ get$defaultRouteName: function() {
+ var t1 = this._defaultRouteName;
+ return t1 == null ? this._defaultRouteName = this._windows.$index(0, 0).get$browserHistory().get$currentPath() : t1;
+ },
+ get$rasterizer: function() {
+ var _this = this;
+ if (!_this.__EnginePlatformDispatcher_rasterizer_isSet) {
+ _this.__EnginePlatformDispatcher_rasterizer = null;
+ _this.__EnginePlatformDispatcher_rasterizer_isSet = true;
+ }
+ return _this.__EnginePlatformDispatcher_rasterizer;
+ },
+ _replyToPlatformMessage$2: function(callback, data) {
+ P.Future_Future$delayed(C.Duration_0, type$.void).then$1$1(0, new H.EnginePlatformDispatcher__replyToPlatformMessage_closure(callback, data), type$.Null);
+ }
+ };
+ H.EnginePlatformDispatcher__zonedPlatformMessageResponseCallback_closure.prototype = {
+ call$1: function(data) {
+ this.registrationZone.runUnaryGuarded$2(this.callback, data);
+ },
+ $signature: 28
+ };
+ H.EnginePlatformDispatcher__sendPlatformMessage_closure.prototype = {
+ call$1: function(assetData) {
+ this.$this._replyToPlatformMessage$2(this.callback, assetData);
+ },
+ $signature: 386
+ };
+ H.EnginePlatformDispatcher__sendPlatformMessage_closure0.prototype = {
+ call$1: function(error) {
+ var t1;
+ window;
+ t1 = "Error while trying to load an asset: " + H.S(error);
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ this.$this._replyToPlatformMessage$2(this.callback, null);
+ },
+ $signature: 3
+ };
+ H.EnginePlatformDispatcher__sendPlatformMessage_closure1.prototype = {
+ call$1: function(_) {
+ this.$this._replyToPlatformMessage$2(this.callback, C.C_JSONMessageCodec.encodeMessage$1([true]));
+ },
+ $signature: 16
+ };
+ H.EnginePlatformDispatcher__sendPlatformMessage_closure2.prototype = {
+ call$1: function(success) {
+ this.$this._replyToPlatformMessage$2(this.callback, C.C_JSONMessageCodec.encodeMessage$1([success]));
+ },
+ $signature: 76
+ };
+ H.EnginePlatformDispatcher__sendPlatformMessage_closure3.prototype = {
+ call$1: function(handled) {
+ var t1 = this.callback;
+ if (handled)
+ this.$this._replyToPlatformMessage$2(t1, C.C_JSONMessageCodec.encodeMessage$1([true]));
+ else if (t1 != null)
+ t1.call$1(null);
+ },
+ $signature: 76
+ };
+ H.EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure.prototype = {
+ call$1: function($event) {
+ var t1 = type$.MediaQueryListEvent._as($event).matches;
+ t1.toString;
+ t1 = t1 ? C.Brightness_0 : C.Brightness_1;
+ this.$this._updatePlatformBrightness$1(t1);
+ },
+ $signature: 6
+ };
+ H.EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure0.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ t2 = t1._brightnessMediaQuery;
+ (t2 && C.MediaQueryList_methods).removeListener$1(t2, t1._brightnessMediaQueryListener);
+ t1._brightnessMediaQueryListener = null;
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ H.EnginePlatformDispatcher__replyToPlatformMessage_closure.prototype = {
+ call$1: function(_) {
+ var t1 = this.callback;
+ if (t1 != null)
+ t1.call$1(this.data);
+ },
+ $signature: 16
+ };
+ H.invoke3_closure.prototype = {
+ call$0: function() {
+ var _this = this;
+ _this.callback.call$3(_this.arg1, _this.arg2, _this.arg3);
+ },
+ $signature: 0
+ };
+ H.PointerBinding.prototype = {
+ _createAdapter$0: function() {
+ var t1, _this = this;
+ if ("PointerEvent" in window) {
+ t1 = new H._PointerAdapter(P.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$._ButtonSanitizer), _this.glassPaneElement, _this.get$_onPointerData(), _this._pointerDataConverter);
+ t1.setup$0();
+ return t1;
+ }
+ if ("TouchEvent" in window) {
+ t1 = new H._TouchAdapter(P.LinkedHashSet_LinkedHashSet$_empty(type$.int), _this.glassPaneElement, _this.get$_onPointerData(), _this._pointerDataConverter);
+ t1.setup$0();
+ return t1;
+ }
+ if ("MouseEvent" in window) {
+ t1 = new H._MouseAdapter(new H._ButtonSanitizer(), _this.glassPaneElement, _this.get$_onPointerData(), _this._pointerDataConverter);
+ t1.setup$0();
+ return t1;
+ }
+ throw H.wrapException(P.UnsupportedError$("This browser does not support pointer, touch, or mouse events."));
+ },
+ _onPointerData$1: function(data) {
+ var t1 = H.setRuntimeTypeInfo(data.slice(0), H._arrayInstanceType(data)),
+ t2 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke1(t2._onPointerDataPacket, t2._onPointerDataPacketZone, new P.PointerDataPacket(t1));
+ }
+ };
+ H.PointerSupportDetector.prototype = {
+ toString$0: function(_) {
+ return "pointers:" + ("PointerEvent" in window) + ", touch:" + ("TouchEvent" in window) + ", mouse:" + ("MouseEvent" in window);
+ }
+ };
+ H._BaseAdapter.prototype = {
+ addEventListener$3$acceptOutsideGlasspane: function(_, eventName, handler, acceptOutsideGlasspane) {
+ var loggedHandler = new H._BaseAdapter_addEventListener_closure(this, acceptOutsideGlasspane, handler);
+ $._BaseAdapter__listeners.$indexSet(0, eventName, loggedHandler);
+ C.Window_methods.addEventListener$3(window, eventName, loggedHandler, true);
+ },
+ addEventListener$2: function($receiver, eventName, handler) {
+ return this.addEventListener$3$acceptOutsideGlasspane($receiver, eventName, handler, false);
+ }
+ };
+ H._BaseAdapter_addEventListener_closure.prototype = {
+ call$1: function($event) {
+ var t1, t2, t3;
+ if (!this.acceptOutsideGlasspane && !this.$this.glassPaneElement.contains(type$.nullable_Node._as(J.get$target$x($event))))
+ return;
+ t1 = H.EngineSemanticsOwner_instance();
+ if (C.JSArray_methods.contains$1(C.List_Cg9, $event.type)) {
+ t2 = t1._getGestureModeClock$0();
+ t2.toString;
+ t3 = t1._now.call$0();
+ t2.set$datetime(P.DateTime$_withValue(t3._core$_value + 500, t3.isUtc));
+ if (t1._gestureMode !== C.GestureMode_0) {
+ t1._gestureMode = C.GestureMode_0;
+ t1._notifyGestureModeListeners$0();
+ }
+ }
+ if (t1.semanticsHelper._semanticsEnabler.shouldEnableSemantics$1($event))
+ this.handler.call$1($event);
+ },
+ $signature: 6
+ };
+ H._WheelEventListenerMixin.prototype = {
+ _addWheelEventListener$1: function(handler) {
+ var t1, eventOptions = {},
+ jsHandler = P.allowInterop(new H._WheelEventListenerMixin__addWheelEventListener_closure(handler));
+ $._BaseAdapter__nativeListeners.$indexSet(0, "wheel", jsHandler);
+ eventOptions.passive = false;
+ t1 = this.glassPaneElement;
+ t1.addEventListener.apply(t1, ["wheel", jsHandler, eventOptions]);
+ },
+ _handleWheelEvent$1: function(e) {
+ var t1, deltaX, deltaY, probe, t2, fontSize, res, data, t3, t4, t5, t6;
+ type$.WheelEvent._as(e);
+ if (e.getModifierState("Control")) {
+ t1 = H._operatingSystem();
+ if (t1 !== C.OperatingSystem_4) {
+ t1 = H._operatingSystem();
+ t1 = t1 !== C.OperatingSystem_0;
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ if (t1)
+ return;
+ deltaX = C.WheelEvent_methods.get$deltaX(e);
+ deltaY = C.WheelEvent_methods.get$deltaY(e);
+ switch (C.WheelEvent_methods.get$deltaMode(e)) {
+ case 1:
+ t1 = $._WheelEventListenerMixin__defaultScrollLineHeight;
+ if (t1 == null) {
+ t1 = document;
+ probe = t1.createElement("div");
+ t2 = probe.style;
+ t2.fontSize = "initial";
+ t2.display = "none";
+ t1.body.appendChild(probe);
+ fontSize = window.getComputedStyle(probe, "").fontSize;
+ if (C.JSString_methods.contains$1(fontSize, "px"))
+ res = H.Primitives_parseDouble(H.stringReplaceAllUnchecked(fontSize, "px", ""));
+ else
+ res = null;
+ C.DivElement_methods.remove$0(probe);
+ t1 = $._WheelEventListenerMixin__defaultScrollLineHeight = res == null ? 16 : res / 4;
+ }
+ deltaX *= t1;
+ deltaY *= t1;
+ break;
+ case 2:
+ t1 = $.$get$window();
+ deltaX *= t1.get$physicalSize()._dx;
+ deltaY *= t1.get$physicalSize()._dy;
+ break;
+ case 0:
+ default:
+ break;
+ }
+ data = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ t1 = e.timeStamp;
+ t1.toString;
+ t1 = H._BaseAdapter__eventTimeStampToDuration(t1);
+ t2 = e.clientX;
+ e.clientY;
+ t2.toString;
+ t3 = $.$get$window();
+ t4 = t3.get$devicePixelRatio(t3);
+ e.clientX;
+ t5 = e.clientY;
+ t5.toString;
+ t3 = t3.get$devicePixelRatio(t3);
+ t6 = e.buttons;
+ t6.toString;
+ this._pointerDataConverter.convert$14$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$scrollDeltaX$scrollDeltaY$signalKind$timeStamp(data, t6, C.PointerChange_3, -1, C.PointerDeviceKind_1, t2 * t4, t5 * t3, 1, 1, 0, deltaX, deltaY, C.PointerSignalKind_1, t1);
+ this._callback.call$1(data);
+ e.preventDefault();
+ }
+ };
+ H._WheelEventListenerMixin__addWheelEventListener_closure.prototype = {
+ call$1: function($event) {
+ return this.handler.call$1($event);
+ },
+ $signature: 53
+ };
+ H._SanitizedDetails.prototype = {
+ toString$0: function(_) {
+ return H.getRuntimeType(this).toString$0(0) + "(change: " + this.change.toString$0(0) + ", buttons: " + this.buttons + ")";
+ }
+ };
+ H._ButtonSanitizer.prototype = {
+ sanitizeDownEvent$2$button$buttons: function(button, buttons) {
+ var t1;
+ if (this._pressedButtons !== 0)
+ return this.sanitizeMoveEvent$1$buttons(buttons);
+ t1 = (buttons === 0 && button > -1 ? H.convertButtonToButtons(button) : buttons) & 1073741823;
+ this._pressedButtons = t1;
+ return new H._SanitizedDetails(C.PointerChange_4, t1);
+ },
+ sanitizeMoveEvent$1$buttons: function(buttons) {
+ var newPressedButtons = buttons & 1073741823,
+ t1 = this._pressedButtons,
+ t2 = t1 === 0;
+ if (!t2 && newPressedButtons === 0)
+ return new H._SanitizedDetails(C.PointerChange_5, t1);
+ if (t2 && newPressedButtons !== 0)
+ return new H._SanitizedDetails(C.PointerChange_3, t1);
+ this._pressedButtons = newPressedButtons;
+ return new H._SanitizedDetails(newPressedButtons === 0 ? C.PointerChange_3 : C.PointerChange_5, newPressedButtons);
+ },
+ sanitizeUpEvent$0: function() {
+ if (this._pressedButtons === 0)
+ return null;
+ this._pressedButtons = 0;
+ return new H._SanitizedDetails(C.PointerChange_6, 0);
+ }
+ };
+ H._PointerAdapter.prototype = {
+ _ensureSanitizer$1: function(device) {
+ return this._sanitizers.putIfAbsent$2(0, device, new H._PointerAdapter__ensureSanitizer_closure());
+ },
+ _removePointerIfUnhoverable$1: function($event) {
+ if ($event.pointerType === "touch")
+ this._sanitizers.remove$1(0, $event.pointerId);
+ },
+ _addPointerEventListener$3$acceptOutsideGlasspane: function(eventName, handler, acceptOutsideGlasspane) {
+ this.addEventListener$3$acceptOutsideGlasspane(0, eventName, new H._PointerAdapter__addPointerEventListener_closure(handler), acceptOutsideGlasspane);
+ },
+ _addPointerEventListener$2: function(eventName, handler) {
+ return this._addPointerEventListener$3$acceptOutsideGlasspane(eventName, handler, false);
+ },
+ setup$0: function() {
+ var _this = this;
+ _this._addPointerEventListener$2("pointerdown", new H._PointerAdapter_setup_closure(_this));
+ _this._addPointerEventListener$3$acceptOutsideGlasspane("pointermove", new H._PointerAdapter_setup_closure0(_this), true);
+ _this._addPointerEventListener$3$acceptOutsideGlasspane("pointerup", new H._PointerAdapter_setup_closure1(_this), true);
+ _this._addPointerEventListener$2("pointercancel", new H._PointerAdapter_setup_closure2(_this));
+ _this._addWheelEventListener$1(new H._PointerAdapter_setup_closure3(_this));
+ },
+ _convertEventsToPointerData$3$data$details$event: function(data, details, $event) {
+ var kind, device, t2, timeStamp, t3, t4, t5, t6,
+ t1 = $event.pointerType;
+ t1.toString;
+ kind = this._pointerTypeToDeviceKind$1(t1);
+ if (kind === C.PointerDeviceKind_1)
+ device = -1;
+ else {
+ t1 = $event.pointerId;
+ t1.toString;
+ device = t1;
+ }
+ t1 = $event.tiltX;
+ t1.toString;
+ t2 = $event.tiltY;
+ t2.toString;
+ if (!(Math.abs(t1) > Math.abs(t2)))
+ t1 = t2;
+ t2 = $event.timeStamp;
+ t2.toString;
+ timeStamp = H._BaseAdapter__eventTimeStampToDuration(t2);
+ t2 = details.change;
+ t3 = $event.clientX;
+ $event.clientY;
+ t3.toString;
+ t4 = $.$get$window();
+ t5 = t4.get$devicePixelRatio(t4);
+ $event.clientX;
+ t6 = $event.clientY;
+ t6.toString;
+ t4 = t4.get$devicePixelRatio(t4);
+ this._pointerDataConverter.convert$13$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$signalKind$tilt$timeStamp(data, details.buttons, t2, device, kind, t3 * t5, t6 * t4, $event.pressure, 1, 0, C.PointerSignalKind_0, t1 / 180 * 3.141592653589793, timeStamp);
+ },
+ _expandEvents$1: function($event) {
+ var coalescedEvents;
+ if ("getCoalescedEvents" in $event) {
+ coalescedEvents = J.cast$1$0$ax($event.getCoalescedEvents(), type$.PointerEvent_2);
+ if (!coalescedEvents.get$isEmpty(coalescedEvents))
+ return coalescedEvents;
+ }
+ return H.setRuntimeTypeInfo([$event], type$.JSArray_PointerEvent);
+ },
+ _pointerTypeToDeviceKind$1: function(pointerType) {
+ switch (pointerType) {
+ case "mouse":
+ return C.PointerDeviceKind_1;
+ case "pen":
+ return C.PointerDeviceKind_2;
+ case "touch":
+ return C.PointerDeviceKind_0;
+ default:
+ return C.PointerDeviceKind_4;
+ }
+ }
+ };
+ H._PointerAdapter__ensureSanitizer_closure.prototype = {
+ call$0: function() {
+ return new H._ButtonSanitizer();
+ },
+ $signature: 374
+ };
+ H._PointerAdapter__addPointerEventListener_closure.prototype = {
+ call$1: function($event) {
+ return this.handler.call$1(type$.PointerEvent_2._as($event));
+ },
+ $signature: 53
+ };
+ H._PointerAdapter_setup_closure.prototype = {
+ call$1: function($event) {
+ var pointerData, t2, t3, t4,
+ t1 = $event.pointerId;
+ t1.toString;
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ t2 = this.$this;
+ t1 = t2._ensureSanitizer$1(t1);
+ t3 = $event.button;
+ t4 = $event.buttons;
+ t4.toString;
+ t2._convertEventsToPointerData$3$data$details$event(pointerData, t1.sanitizeDownEvent$2$button$buttons(t3, t4), $event);
+ t2._callback.call$1(pointerData);
+ },
+ $signature: 52
+ };
+ H._PointerAdapter_setup_closure0.prototype = {
+ call$1: function($event) {
+ var t2, sanitizer, pointerData, detailsList, cur,
+ t1 = $event.pointerId;
+ t1.toString;
+ t2 = this.$this;
+ sanitizer = t2._ensureSanitizer$1(t1);
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ detailsList = J.map$1$1$ax(t2._expandEvents$1($event), new H._PointerAdapter_setup__closure(sanitizer), type$._SanitizedDetails);
+ for (t1 = new H.ListIterator(detailsList, detailsList.get$length(detailsList)); t1.moveNext$0();) {
+ cur = t1._current;
+ t2._convertEventsToPointerData$3$data$details$event(pointerData, cur, $event);
+ }
+ t2._callback.call$1(pointerData);
+ },
+ $signature: 52
+ };
+ H._PointerAdapter_setup__closure.prototype = {
+ call$1: function(expandedEvent) {
+ var t1 = expandedEvent.buttons;
+ t1.toString;
+ return this.sanitizer.sanitizeMoveEvent$1$buttons(t1);
+ },
+ $signature: 357
+ };
+ H._PointerAdapter_setup_closure1.prototype = {
+ call$1: function($event) {
+ var pointerData, t2, details,
+ t1 = $event.pointerId;
+ t1.toString;
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ t2 = this.$this;
+ t1 = t2._sanitizers.$index(0, t1);
+ t1.toString;
+ details = t1.sanitizeUpEvent$0();
+ t2._removePointerIfUnhoverable$1($event);
+ if (details != null)
+ t2._convertEventsToPointerData$3$data$details$event(pointerData, details, $event);
+ t2._callback.call$1(pointerData);
+ },
+ $signature: 52
+ };
+ H._PointerAdapter_setup_closure2.prototype = {
+ call$1: function($event) {
+ var pointerData, t2,
+ t1 = $event.pointerId;
+ t1.toString;
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ t2 = this.$this;
+ t1 = t2._sanitizers.$index(0, t1);
+ t1.toString;
+ t1._pressedButtons = 0;
+ t2._removePointerIfUnhoverable$1($event);
+ t2._convertEventsToPointerData$3$data$details$event(pointerData, new H._SanitizedDetails(C.PointerChange_0, 0), $event);
+ t2._callback.call$1(pointerData);
+ },
+ $signature: 52
+ };
+ H._PointerAdapter_setup_closure3.prototype = {
+ call$1: function($event) {
+ this.$this._handleWheelEvent$1($event);
+ },
+ $signature: 6
+ };
+ H._TouchAdapter.prototype = {
+ _addTouchEventListener$2: function(eventName, handler) {
+ this.addEventListener$2(0, eventName, new H._TouchAdapter__addTouchEventListener_closure(handler));
+ },
+ setup$0: function() {
+ var _this = this;
+ _this._addTouchEventListener$2("touchstart", new H._TouchAdapter_setup_closure(_this));
+ _this._addTouchEventListener$2("touchmove", new H._TouchAdapter_setup_closure0(_this));
+ _this._addTouchEventListener$2("touchend", new H._TouchAdapter_setup_closure1(_this));
+ _this._addTouchEventListener$2("touchcancel", new H._TouchAdapter_setup_closure2(_this));
+ },
+ _convertEventToPointerData$5$change$data$pressed$timeStamp$touch: function(change, data, pressed, timeStamp, touch) {
+ var t2, t3, t4, t5, t6,
+ t1 = touch.identifier;
+ t1.toString;
+ t2 = C.JSNumber_methods.round$0(touch.clientX);
+ C.JSNumber_methods.round$0(touch.clientY);
+ t3 = $.$get$window();
+ t4 = t3.get$devicePixelRatio(t3);
+ C.JSNumber_methods.round$0(touch.clientX);
+ t5 = C.JSNumber_methods.round$0(touch.clientY);
+ t3 = t3.get$devicePixelRatio(t3);
+ t6 = pressed ? 1 : 0;
+ this._pointerDataConverter.convert$12$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$signalKind$timeStamp(data, t6, change, t1, C.PointerDeviceKind_0, t2 * t4, t5 * t3, 1, 1, 0, C.PointerSignalKind_0, timeStamp);
+ }
+ };
+ H._TouchAdapter__addTouchEventListener_closure.prototype = {
+ call$1: function($event) {
+ return this.handler.call$1(type$.TouchEvent._as($event));
+ },
+ $signature: 53
+ };
+ H._TouchAdapter_setup_closure.prototype = {
+ call$1: function($event) {
+ var timeStamp, pointerData, t2, t3, t4, _i, touch, t5,
+ t1 = $event.timeStamp;
+ t1.toString;
+ timeStamp = H._BaseAdapter__eventTimeStampToDuration(t1);
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ for (t1 = $event.changedTouches, t2 = t1.length, t3 = this.$this, t4 = t3._pressedTouches, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ touch = t1[_i];
+ t5 = touch.identifier;
+ t5.toString;
+ if (!t4.contains$1(0, t5)) {
+ t5 = touch.identifier;
+ t5.toString;
+ t4.add$1(0, t5);
+ t3._convertEventToPointerData$5$change$data$pressed$timeStamp$touch(C.PointerChange_4, pointerData, true, timeStamp, touch);
+ }
+ }
+ t3._callback.call$1(pointerData);
+ },
+ $signature: 51
+ };
+ H._TouchAdapter_setup_closure0.prototype = {
+ call$1: function($event) {
+ var t1, timeStamp, pointerData, t2, t3, t4, _i, touch, t5;
+ $event.preventDefault();
+ t1 = $event.timeStamp;
+ t1.toString;
+ timeStamp = H._BaseAdapter__eventTimeStampToDuration(t1);
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ for (t1 = $event.changedTouches, t2 = t1.length, t3 = this.$this, t4 = t3._pressedTouches, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ touch = t1[_i];
+ t5 = touch.identifier;
+ t5.toString;
+ if (t4.contains$1(0, t5))
+ t3._convertEventToPointerData$5$change$data$pressed$timeStamp$touch(C.PointerChange_5, pointerData, true, timeStamp, touch);
+ }
+ t3._callback.call$1(pointerData);
+ },
+ $signature: 51
+ };
+ H._TouchAdapter_setup_closure1.prototype = {
+ call$1: function($event) {
+ var t1, timeStamp, pointerData, t2, t3, t4, _i, touch, t5;
+ $event.preventDefault();
+ t1 = $event.timeStamp;
+ t1.toString;
+ timeStamp = H._BaseAdapter__eventTimeStampToDuration(t1);
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ for (t1 = $event.changedTouches, t2 = t1.length, t3 = this.$this, t4 = t3._pressedTouches, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ touch = t1[_i];
+ t5 = touch.identifier;
+ t5.toString;
+ if (t4.contains$1(0, t5)) {
+ t5 = touch.identifier;
+ t5.toString;
+ t4.remove$1(0, t5);
+ t3._convertEventToPointerData$5$change$data$pressed$timeStamp$touch(C.PointerChange_6, pointerData, false, timeStamp, touch);
+ }
+ }
+ t3._callback.call$1(pointerData);
+ },
+ $signature: 51
+ };
+ H._TouchAdapter_setup_closure2.prototype = {
+ call$1: function($event) {
+ var timeStamp, pointerData, t2, t3, t4, _i, touch, t5,
+ t1 = $event.timeStamp;
+ t1.toString;
+ timeStamp = H._BaseAdapter__eventTimeStampToDuration(t1);
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData);
+ for (t1 = $event.changedTouches, t2 = t1.length, t3 = this.$this, t4 = t3._pressedTouches, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ touch = t1[_i];
+ t5 = touch.identifier;
+ t5.toString;
+ if (t4.contains$1(0, t5)) {
+ t5 = touch.identifier;
+ t5.toString;
+ t4.remove$1(0, t5);
+ t3._convertEventToPointerData$5$change$data$pressed$timeStamp$touch(C.PointerChange_0, pointerData, false, timeStamp, touch);
+ }
+ }
+ t3._callback.call$1(pointerData);
+ },
+ $signature: 51
+ };
+ H._MouseAdapter.prototype = {
+ _addMouseEventListener$3$acceptOutsideGlasspane: function(eventName, handler, acceptOutsideGlasspane) {
+ this.addEventListener$3$acceptOutsideGlasspane(0, eventName, new H._MouseAdapter__addMouseEventListener_closure(handler), acceptOutsideGlasspane);
+ },
+ _addMouseEventListener$2: function(eventName, handler) {
+ return this._addMouseEventListener$3$acceptOutsideGlasspane(eventName, handler, false);
+ },
+ setup$0: function() {
+ var _this = this;
+ _this._addMouseEventListener$2("mousedown", new H._MouseAdapter_setup_closure(_this));
+ _this._addMouseEventListener$3$acceptOutsideGlasspane("mousemove", new H._MouseAdapter_setup_closure0(_this), true);
+ _this._addMouseEventListener$3$acceptOutsideGlasspane("mouseup", new H._MouseAdapter_setup_closure1(_this), true);
+ _this._addWheelEventListener$1(new H._MouseAdapter_setup_closure2(_this));
+ },
+ _convertEventsToPointerData$3$data$details$event: function(data, details, $event) {
+ var t3, t4, t5, t6,
+ t1 = details.change,
+ t2 = $event.timeStamp;
+ t2.toString;
+ t2 = H._BaseAdapter__eventTimeStampToDuration(t2);
+ t3 = $event.clientX;
+ $event.clientY;
+ t3.toString;
+ t4 = $.$get$window();
+ t5 = t4.get$devicePixelRatio(t4);
+ $event.clientX;
+ t6 = $event.clientY;
+ t6.toString;
+ t4 = t4.get$devicePixelRatio(t4);
+ this._pointerDataConverter.convert$12$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$signalKind$timeStamp(data, details.buttons, t1, -1, C.PointerDeviceKind_1, t3 * t5, t6 * t4, 1, 1, 0, C.PointerSignalKind_0, t2);
+ }
+ };
+ H._MouseAdapter__addMouseEventListener_closure.prototype = {
+ call$1: function($event) {
+ return this.handler.call$1(type$.MouseEvent._as($event));
+ },
+ $signature: 53
+ };
+ H._MouseAdapter_setup_closure.prototype = {
+ call$1: function($event) {
+ var pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData),
+ t1 = this.$this,
+ t2 = $event.button,
+ t3 = $event.buttons;
+ t3.toString;
+ t1._convertEventsToPointerData$3$data$details$event(pointerData, t1._sanitizer.sanitizeDownEvent$2$button$buttons(t2, t3), $event);
+ t1._callback.call$1(pointerData);
+ },
+ $signature: 61
+ };
+ H._MouseAdapter_setup_closure0.prototype = {
+ call$1: function($event) {
+ var pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData),
+ t1 = this.$this,
+ t2 = $event.buttons;
+ t2.toString;
+ t1._convertEventsToPointerData$3$data$details$event(pointerData, t1._sanitizer.sanitizeMoveEvent$1$buttons(t2), $event);
+ t1._callback.call$1(pointerData);
+ },
+ $signature: 61
+ };
+ H._MouseAdapter_setup_closure1.prototype = {
+ call$1: function($event) {
+ var sanitizedDetails,
+ pointerData = H.setRuntimeTypeInfo([], type$.JSArray_PointerData),
+ t1 = $event.buttons,
+ t2 = this.$this,
+ t3 = t2._sanitizer;
+ if (t1 === 0) {
+ t1 = t3.sanitizeUpEvent$0();
+ t1.toString;
+ sanitizedDetails = t1;
+ } else {
+ t1.toString;
+ sanitizedDetails = t3.sanitizeMoveEvent$1$buttons(t1);
+ }
+ t2._convertEventsToPointerData$3$data$details$event(pointerData, sanitizedDetails, $event);
+ t2._callback.call$1(pointerData);
+ },
+ $signature: 61
+ };
+ H._MouseAdapter_setup_closure2.prototype = {
+ call$1: function($event) {
+ this.$this._handleWheelEvent$1($event);
+ },
+ $signature: 6
+ };
+ H._PointerState.prototype = {};
+ H.PointerDataConverter.prototype = {
+ _ensureStateForPointer$3: function(device, x, y) {
+ return this._pointers.putIfAbsent$2(0, device, new H.PointerDataConverter__ensureStateForPointer_closure(x, y));
+ },
+ _generateCompletePointerData$24$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$signalKind$size$tilt$timeStamp: function(buttons, change, device, distance, distanceMax, kind, obscured, orientation, physicalX, physicalY, platformData, pressure, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, scrollDeltaX, scrollDeltaY, signalKind, size, tilt, timeStamp) {
+ var t2, t3,
+ t1 = this._pointers.$index(0, device);
+ t1.toString;
+ t2 = t1.x;
+ t3 = t1.y;
+ t1.x = physicalX;
+ t1.y = physicalY;
+ t1 = t1._pointer;
+ if (t1 == null)
+ t1 = 0;
+ return P.PointerData$(buttons, change, device, distance, distanceMax, kind, false, orientation, physicalX - t2, physicalY - t3, physicalX, physicalY, platformData, t1, pressure, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, scrollDeltaX, scrollDeltaY, signalKind, size, false, tilt, timeStamp);
+ },
+ _locationHasChanged$3: function(device, physicalX, physicalY) {
+ var t1 = this._pointers.$index(0, device);
+ t1.toString;
+ return t1.x !== physicalX || t1.y !== physicalY;
+ },
+ _synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp: function(buttons, change, device, distance, distanceMax, kind, obscured, orientation, physicalX, physicalY, platformData, pressure, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, scrollDeltaX, scrollDeltaY, size, tilt, timeStamp) {
+ var t2, t3,
+ t1 = this._pointers.$index(0, device);
+ t1.toString;
+ t2 = t1.x;
+ t3 = t1.y;
+ t1.x = physicalX;
+ t1.y = physicalY;
+ t1 = t1._pointer;
+ if (t1 == null)
+ t1 = 0;
+ return P.PointerData$(buttons, change, device, distance, distanceMax, kind, false, orientation, physicalX - t2, physicalY - t3, physicalX, physicalY, platformData, t1, pressure, pressureMax, pressureMin, radiusMajor, radiusMax, radiusMin, radiusMinor, scrollDeltaX, scrollDeltaY, C.PointerSignalKind_0, size, true, tilt, timeStamp);
+ },
+ convert$15$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$scrollDeltaX$scrollDeltaY$signalKind$tilt$timeStamp: function(result, buttons, change, device, kind, physicalX, physicalY, pressure, pressureMax, pressureMin, scrollDeltaX, scrollDeltaY, signalKind, tilt, timeStamp) {
+ var alreadyAdded, state, t1, t2, _this = this,
+ _s80_ = string$.x60null_c;
+ if (signalKind === C.PointerSignalKind_0)
+ switch (change) {
+ case C.PointerChange_1:
+ _this._ensureStateForPointer$3(device, physicalX, physicalY);
+ result.push(_this._generateCompletePointerData$24$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$signalKind$size$tilt$timeStamp(buttons, change, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, signalKind, 0, tilt, timeStamp));
+ break;
+ case C.PointerChange_3:
+ alreadyAdded = _this._pointers.containsKey$1(0, device);
+ _this._ensureStateForPointer$3(device, physicalX, physicalY);
+ if (!alreadyAdded)
+ result.push(_this._synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp(buttons, C.PointerChange_1, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, 0, tilt, timeStamp));
+ result.push(_this._generateCompletePointerData$24$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$signalKind$size$tilt$timeStamp(buttons, change, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, signalKind, 0, tilt, timeStamp));
+ break;
+ case C.PointerChange_4:
+ alreadyAdded = _this._pointers.containsKey$1(0, device);
+ state = _this._ensureStateForPointer$3(device, physicalX, physicalY);
+ state.toString;
+ state._pointer = $._PointerState__pointerCount = $._PointerState__pointerCount + 1;
+ if (!alreadyAdded)
+ result.push(_this._synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp(buttons, C.PointerChange_1, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, 0, tilt, timeStamp));
+ if (_this._locationHasChanged$3(device, physicalX, physicalY))
+ result.push(_this._synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp(0, C.PointerChange_3, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, 0, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, 0, tilt, timeStamp));
+ state.down = true;
+ result.push(_this._generateCompletePointerData$24$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$signalKind$size$tilt$timeStamp(buttons, change, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, signalKind, 0, tilt, timeStamp));
+ break;
+ case C.PointerChange_5:
+ _this._pointers.$index(0, device).toString;
+ result.push(_this._generateCompletePointerData$24$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$signalKind$size$tilt$timeStamp(buttons, change, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, signalKind, 0, tilt, timeStamp));
+ break;
+ case C.PointerChange_6:
+ case C.PointerChange_0:
+ t1 = _this._pointers;
+ t2 = t1.$index(0, device);
+ t2.toString;
+ if (change === C.PointerChange_0) {
+ physicalX = t2.x;
+ physicalY = t2.y;
+ }
+ if (_this._locationHasChanged$3(device, physicalX, physicalY))
+ result.push(_this._synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp(buttons, C.PointerChange_5, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, 0, tilt, timeStamp));
+ t2.down = false;
+ result.push(_this._generateCompletePointerData$24$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$signalKind$size$tilt$timeStamp(buttons, change, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, signalKind, 0, tilt, timeStamp));
+ if (kind === C.PointerDeviceKind_0) {
+ result.push(_this._synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp(0, C.PointerChange_2, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, 0, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, 0, tilt, timeStamp));
+ t1.remove$1(0, device);
+ }
+ break;
+ case C.PointerChange_2:
+ t1 = _this._pointers;
+ t2 = t1.$index(0, device);
+ t2.toString;
+ result.push(_this._generateCompletePointerData$24$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$signalKind$size$tilt$timeStamp(buttons, change, device, 0, 0, kind, false, 0, t2.x, t2.y, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, signalKind, 0, tilt, timeStamp));
+ t1.remove$1(0, device);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ else
+ switch (signalKind) {
+ case C.PointerSignalKind_1:
+ alreadyAdded = _this._pointers.containsKey$1(0, device);
+ state = _this._ensureStateForPointer$3(device, physicalX, physicalY);
+ if (!alreadyAdded)
+ result.push(_this._synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp(buttons, C.PointerChange_1, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, 0, tilt, timeStamp));
+ if (_this._locationHasChanged$3(device, physicalX, physicalY))
+ if (state.down)
+ result.push(_this._synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp(buttons, C.PointerChange_5, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, 0, tilt, timeStamp));
+ else
+ result.push(_this._synthesizePointerData$23$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$size$tilt$timeStamp(buttons, C.PointerChange_3, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, 0, tilt, timeStamp));
+ result.push(_this._generateCompletePointerData$24$buttons$change$device$distance$distanceMax$kind$obscured$orientation$physicalX$physicalY$platformData$pressure$pressureMax$pressureMin$radiusMajor$radiusMax$radiusMin$radiusMinor$scrollDeltaX$scrollDeltaY$signalKind$size$tilt$timeStamp(buttons, change, device, 0, 0, kind, false, 0, physicalX, physicalY, 0, pressure, pressureMax, pressureMin, 0, 0, 0, 0, scrollDeltaX, scrollDeltaY, signalKind, 0, tilt, timeStamp));
+ break;
+ case C.PointerSignalKind_0:
+ break;
+ case C.PointerSignalKind_2:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ },
+ convert$14$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$scrollDeltaX$scrollDeltaY$signalKind$timeStamp: function(result, buttons, change, device, kind, physicalX, physicalY, pressure, pressureMax, pressureMin, scrollDeltaX, scrollDeltaY, signalKind, timeStamp) {
+ return this.convert$15$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$scrollDeltaX$scrollDeltaY$signalKind$tilt$timeStamp(result, buttons, change, device, kind, physicalX, physicalY, pressure, pressureMax, pressureMin, scrollDeltaX, scrollDeltaY, signalKind, 0, timeStamp);
+ },
+ convert$12$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$signalKind$timeStamp: function(result, buttons, change, device, kind, physicalX, physicalY, pressure, pressureMax, pressureMin, signalKind, timeStamp) {
+ return this.convert$15$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$scrollDeltaX$scrollDeltaY$signalKind$tilt$timeStamp(result, buttons, change, device, kind, physicalX, physicalY, pressure, pressureMax, pressureMin, 0, 0, signalKind, 0, timeStamp);
+ },
+ convert$13$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$signalKind$tilt$timeStamp: function(result, buttons, change, device, kind, physicalX, physicalY, pressure, pressureMax, pressureMin, signalKind, tilt, timeStamp) {
+ return this.convert$15$buttons$change$device$kind$physicalX$physicalY$pressure$pressureMax$pressureMin$scrollDeltaX$scrollDeltaY$signalKind$tilt$timeStamp(result, buttons, change, device, kind, physicalX, physicalY, pressure, pressureMax, pressureMin, 0, 0, signalKind, tilt, timeStamp);
+ }
+ };
+ H.PointerDataConverter__ensureStateForPointer_closure.prototype = {
+ call$0: function() {
+ return new H._PointerState(this.x, this.y);
+ },
+ $signature: 356
+ };
+ H.Profiler.prototype = {};
+ H.AccessibilityAnnouncements.prototype = {
+ AccessibilityAnnouncements$_$0: function() {
+ $._hotRestartListeners.push(new H.AccessibilityAnnouncements$__closure(this));
+ },
+ get$_domElement: function() {
+ var liveRegion,
+ t1 = this._element;
+ if (t1 == null) {
+ liveRegion = document.createElement("label");
+ liveRegion.setAttribute("id", "accessibility-element");
+ t1 = liveRegion.style;
+ t1.position = "fixed";
+ t1.overflow = "hidden";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), "translate(-99999px, -99999px)", "");
+ t1.width = "1px";
+ t1.height = "1px";
+ this._element = liveRegion;
+ t1 = liveRegion;
+ }
+ return t1;
+ },
+ handleMessage$2: function(codec, data) {
+ var t1, _this = this,
+ message = J.$index$asx(J.$index$asx(codec.decodeMessage$1(data), "data"), "message");
+ if (message != null && message.length !== 0) {
+ _this.get$_domElement().setAttribute("aria-live", "polite");
+ _this.get$_domElement().textContent = message;
+ t1 = document.body;
+ t1.toString;
+ t1.appendChild(_this.get$_domElement());
+ _this._removeElementTimer = P.Timer_Timer(C.Duration_5000000, new H.AccessibilityAnnouncements_handleMessage_closure(_this));
+ }
+ }
+ };
+ H.AccessibilityAnnouncements$__closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this._removeElementTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ H.AccessibilityAnnouncements_handleMessage_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this._element;
+ t1.toString;
+ C.LabelElement_methods.remove$0(t1);
+ },
+ $signature: 0
+ };
+ H._CheckableKind.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.Checkable.prototype = {
+ update$0: function(_) {
+ var element, t2, _s4_ = "true",
+ t1 = this.semanticsObject;
+ if ((t1._dirtyFields & 1) !== 0) {
+ switch (this.__engine$_kind) {
+ case C._CheckableKind_0:
+ t1.setAriaRole$2("checkbox", true);
+ break;
+ case C._CheckableKind_1:
+ t1.setAriaRole$2("radio", true);
+ break;
+ case C._CheckableKind_2:
+ t1.setAriaRole$2("switch", true);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ if (t1.enabledState$0() === C.EnabledState_2) {
+ element = t1.element;
+ element.setAttribute("aria-disabled", _s4_);
+ element.setAttribute("disabled", _s4_);
+ } else
+ this._removeDisabledAttribute$0();
+ t2 = t1.__engine$_flags;
+ t2.toString;
+ t2 = (t2 & 2) !== 0 || (t2 & 131072) !== 0 ? _s4_ : "false";
+ t1.element.setAttribute("aria-checked", t2);
+ }
+ },
+ dispose$0: function(_) {
+ var _this = this;
+ switch (_this.__engine$_kind) {
+ case C._CheckableKind_0:
+ _this.semanticsObject.setAriaRole$2("checkbox", false);
+ break;
+ case C._CheckableKind_1:
+ _this.semanticsObject.setAriaRole$2("radio", false);
+ break;
+ case C._CheckableKind_2:
+ _this.semanticsObject.setAriaRole$2("switch", false);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ _this._removeDisabledAttribute$0();
+ },
+ _removeDisabledAttribute$0: function() {
+ var element = this.semanticsObject.element;
+ element.removeAttribute("aria-disabled");
+ element.removeAttribute("disabled");
+ }
+ };
+ H.ImageRoleManager.prototype = {
+ update$0: function(_) {
+ var t2, t3, _this = this,
+ t1 = _this.semanticsObject;
+ if (t1.get$isVisualOnly() && t1.get$hasChildren()) {
+ if (_this._auxiliaryImageElement == null) {
+ _this._auxiliaryImageElement = W._ElementFactoryProvider_createElement_tag("flt-semantics-img", null);
+ if (t1.get$hasChildren()) {
+ t2 = _this._auxiliaryImageElement.style;
+ t2.position = "absolute";
+ t2.top = "0";
+ t2.left = "0";
+ t3 = t1.__engine$_rect;
+ t3 = H.S(t3.right - t3.left) + "px";
+ t2.width = t3;
+ t3 = t1.__engine$_rect;
+ t3 = H.S(t3.bottom - t3.top) + "px";
+ t2.height = t3;
+ }
+ t2 = _this._auxiliaryImageElement.style;
+ t2.fontSize = "6px";
+ t2 = _this._auxiliaryImageElement;
+ t2.toString;
+ t1.element.appendChild(t2);
+ }
+ _this._auxiliaryImageElement.setAttribute("role", "img");
+ _this._setLabel$1(_this._auxiliaryImageElement);
+ } else if (t1.get$isVisualOnly()) {
+ t1.setAriaRole$2("img", true);
+ _this._setLabel$1(t1.element);
+ _this._cleanUpAuxiliaryElement$0();
+ } else {
+ _this._cleanUpAuxiliaryElement$0();
+ _this._cleanupElement$0();
+ }
+ },
+ _setLabel$1: function(element) {
+ var t1 = this.semanticsObject;
+ if (t1.get$hasLabel()) {
+ element.toString;
+ t1 = t1.__engine$_label;
+ t1.toString;
+ element.setAttribute("aria-label", t1);
+ }
+ },
+ _cleanUpAuxiliaryElement$0: function() {
+ var t1 = this._auxiliaryImageElement;
+ if (t1 != null) {
+ J.remove$0$ax(t1);
+ this._auxiliaryImageElement = null;
+ }
+ },
+ _cleanupElement$0: function() {
+ var t1 = this.semanticsObject;
+ t1.setAriaRole$2("img", false);
+ t1.element.removeAttribute("aria-label");
+ },
+ dispose$0: function(_) {
+ this._cleanUpAuxiliaryElement$0();
+ this._cleanupElement$0();
+ }
+ };
+ H.Incrementable.prototype = {
+ Incrementable$1: function(semanticsObject) {
+ var _this = this,
+ t1 = _this._element;
+ semanticsObject.element.appendChild(t1);
+ t1.type = "range";
+ t1.setAttribute("role", "slider");
+ C.InputElement_methods.addEventListener$2(t1, "change", new H.Incrementable_closure(_this, semanticsObject));
+ t1 = new H.Incrementable_closure0(_this);
+ _this._gestureModeListener = t1;
+ semanticsObject.owner._gestureModeListeners.push(t1);
+ },
+ update$0: function(_) {
+ var _this = this;
+ switch (_this.semanticsObject.owner._gestureMode) {
+ case C.GestureMode_1:
+ _this._enableBrowserGestureHandling$0();
+ _this._updateInputValues$0();
+ break;
+ case C.GestureMode_0:
+ _this._disableBrowserGestureHandling$0();
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _enableBrowserGestureHandling$0: function() {
+ var t1 = this._element,
+ t2 = t1.disabled;
+ t2.toString;
+ if (!t2)
+ return;
+ t1.disabled = false;
+ },
+ _updateInputValues$0: function() {
+ var t1, updateNeeded, surrogateTextValue, t2, t3, surrogateMaxTextValue, surrogateMinTextValue, _this = this;
+ if (!_this._pendingResync) {
+ t1 = _this.semanticsObject._dirtyFields;
+ updateNeeded = (t1 & 4096) !== 0 || (t1 & 8192) !== 0 || (t1 & 16384) !== 0;
+ } else
+ updateNeeded = true;
+ if (!updateNeeded)
+ return;
+ _this._pendingResync = false;
+ surrogateTextValue = "" + _this._currentSurrogateValue;
+ t1 = _this._element;
+ t1.value = surrogateTextValue;
+ t1.setAttribute("aria-valuenow", surrogateTextValue);
+ t2 = _this.semanticsObject;
+ t3 = t2.__engine$_value;
+ t3.toString;
+ t1.setAttribute("aria-valuetext", t3);
+ surrogateMaxTextValue = t2.__engine$_increasedValue.length !== 0 ? "" + (_this._currentSurrogateValue + 1) : surrogateTextValue;
+ t1.max = surrogateMaxTextValue;
+ t1.setAttribute("aria-valuemax", surrogateMaxTextValue);
+ surrogateMinTextValue = t2.__engine$_decreasedValue.length !== 0 ? "" + (_this._currentSurrogateValue - 1) : surrogateTextValue;
+ t1.min = surrogateMinTextValue;
+ t1.setAttribute("aria-valuemin", surrogateMinTextValue);
+ },
+ _disableBrowserGestureHandling$0: function() {
+ var t1 = this._element,
+ t2 = t1.disabled;
+ t2.toString;
+ if (t2)
+ return;
+ t1.disabled = true;
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ C.JSArray_methods.remove$1(_this.semanticsObject.owner._gestureModeListeners, _this._gestureModeListener);
+ _this._gestureModeListener = null;
+ _this._disableBrowserGestureHandling$0();
+ t1 = _this._element;
+ (t1 && C.InputElement_methods).remove$0(t1);
+ }
+ };
+ H.Incrementable_closure.prototype = {
+ call$1: function(_) {
+ var newInputValue,
+ t1 = this.$this,
+ t2 = t1._element,
+ t3 = t2.disabled;
+ t3.toString;
+ if (t3)
+ return;
+ t1._pendingResync = true;
+ t2 = t2.value;
+ t2.toString;
+ newInputValue = P.int_parse(t2, null);
+ t2 = t1._currentSurrogateValue;
+ if (newInputValue > t2) {
+ t1._currentSurrogateValue = t2 + 1;
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t1._onSemanticsAction, t1._onSemanticsActionZone, this.semanticsObject.id, C.SemanticsAction_64, null);
+ } else if (newInputValue < t2) {
+ t1._currentSurrogateValue = t2 - 1;
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t1._onSemanticsAction, t1._onSemanticsActionZone, this.semanticsObject.id, C.SemanticsAction_128, null);
+ }
+ },
+ $signature: 6
+ };
+ H.Incrementable_closure0.prototype = {
+ call$1: function(mode) {
+ this.$this.update$0(0);
+ },
+ $signature: 109
+ };
+ H.LabelAndValue.prototype = {
+ update$0: function(_) {
+ var t2, shouldDisplayValue, t3, t4, t5, _this = this,
+ t1 = _this.semanticsObject,
+ hasValue = t1.get$hasValue(),
+ hasLabel = t1.get$hasLabel();
+ if (hasValue) {
+ t2 = t1.__engine$_actions;
+ t2.toString;
+ if (!((t2 & 64) !== 0 || (t2 & 128) !== 0)) {
+ t2 = t1.__engine$_flags;
+ t2.toString;
+ t2 = (t2 & 16) === 0;
+ shouldDisplayValue = t2;
+ } else
+ shouldDisplayValue = false;
+ } else
+ shouldDisplayValue = false;
+ if (!hasLabel && !shouldDisplayValue) {
+ _this._cleanUpDom$0();
+ return;
+ }
+ if (hasLabel) {
+ t2 = H.S(t1.__engine$_label);
+ if (shouldDisplayValue)
+ t2 += " ";
+ } else
+ t2 = "";
+ if (shouldDisplayValue)
+ t2 += H.S(t1.__engine$_value);
+ t3 = t1.element;
+ t2 = t2.charCodeAt(0) == 0 ? t2 : t2;
+ t3.setAttribute("aria-label", t2);
+ t4 = t1.__engine$_flags;
+ t4.toString;
+ if ((t4 & 512) !== 0)
+ t1.setAriaRole$2("heading", true);
+ if (_this._auxiliaryValueElement == null) {
+ _this._auxiliaryValueElement = W._ElementFactoryProvider_createElement_tag("flt-semantics-value", null);
+ if (t1.get$hasChildren()) {
+ t4 = _this._auxiliaryValueElement.style;
+ t4.position = "absolute";
+ t4.top = "0";
+ t4.left = "0";
+ t5 = t1.__engine$_rect;
+ t5 = H.S(t5.right - t5.left) + "px";
+ t4.width = t5;
+ t1 = t1.__engine$_rect;
+ t1 = H.S(t1.bottom - t1.top) + "px";
+ t4.height = t1;
+ }
+ t1 = _this._auxiliaryValueElement.style;
+ t1.fontSize = "6px";
+ t1 = _this._auxiliaryValueElement;
+ t1.toString;
+ t3.appendChild(t1);
+ }
+ _this._auxiliaryValueElement.textContent = t2;
+ },
+ _cleanUpDom$0: function() {
+ var t1 = this._auxiliaryValueElement;
+ if (t1 != null) {
+ J.remove$0$ax(t1);
+ this._auxiliaryValueElement = null;
+ }
+ t1 = this.semanticsObject;
+ t1.element.removeAttribute("aria-label");
+ t1.setAriaRole$2("heading", false);
+ },
+ dispose$0: function(_) {
+ this._cleanUpDom$0();
+ }
+ };
+ H.LiveRegion.prototype = {
+ update$0: function(_) {
+ var t1 = this.semanticsObject,
+ t2 = t1.element;
+ if (t1.get$hasLabel())
+ t2.setAttribute("aria-live", "polite");
+ else
+ t2.removeAttribute("aria-live");
+ },
+ dispose$0: function(_) {
+ this.semanticsObject.element.removeAttribute("aria-live");
+ }
+ };
+ H.Scrollable0.prototype = {
+ _recomputeScrollPosition$0: function() {
+ var t1, t2, t3, semanticsId, _this = this, _null = null;
+ if (_this.get$_domScrollPosition() !== _this._effectiveNeutralScrollPosition) {
+ t1 = _this.semanticsObject;
+ if (!t1.owner.shouldAcceptBrowserGesture$1("scroll"))
+ return;
+ t2 = _this.get$_domScrollPosition();
+ t3 = _this._effectiveNeutralScrollPosition;
+ _this._neutralizeDomScrollPosition$0();
+ t1.recomputePositionAndSize$0();
+ semanticsId = t1.id;
+ if (t2 > t3) {
+ t1 = t1.__engine$_actions;
+ t1.toString;
+ if ((t1 & 32) !== 0 || (t1 & 16) !== 0) {
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t1._onSemanticsAction, t1._onSemanticsActionZone, semanticsId, C.SemanticsAction_16, _null);
+ } else {
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t1._onSemanticsAction, t1._onSemanticsActionZone, semanticsId, C.SemanticsAction_4, _null);
+ }
+ } else {
+ t1 = t1.__engine$_actions;
+ t1.toString;
+ if ((t1 & 32) !== 0 || (t1 & 16) !== 0) {
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t1._onSemanticsAction, t1._onSemanticsActionZone, semanticsId, C.SemanticsAction_32, _null);
+ } else {
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t1._onSemanticsAction, t1._onSemanticsActionZone, semanticsId, C.SemanticsAction_8, _null);
+ }
+ }
+ }
+ },
+ update$0: function(_) {
+ var t1, t2, t3, _this = this;
+ if (_this._scrollListener == null) {
+ t1 = _this.semanticsObject;
+ t2 = t1.element;
+ t3 = t2.style;
+ t3.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t3, C.CssStyleDeclaration_methods._browserPropertyName$1(t3, "touch-action"), "none", "");
+ _this._gestureModeDidChange$0();
+ t1 = t1.owner;
+ t1._oneTimePostUpdateCallbacks.push(new H.Scrollable_update_closure(_this));
+ t3 = new H.Scrollable_update_closure0(_this);
+ _this._gestureModeListener = t3;
+ t1._gestureModeListeners.push(t3);
+ t3 = new H.Scrollable_update_closure1(_this);
+ _this._scrollListener = t3;
+ J.addEventListener$2$x(t2, "scroll", t3);
+ }
+ },
+ get$_domScrollPosition: function() {
+ var t1 = this.semanticsObject,
+ t2 = t1.__engine$_actions;
+ t2.toString;
+ t2 = (t2 & 32) !== 0 || (t2 & 16) !== 0;
+ t1 = t1.element;
+ if (t2)
+ return C.JSNumber_methods.round$0(t1.scrollTop);
+ else
+ return C.JSNumber_methods.round$0(t1.scrollLeft);
+ },
+ _neutralizeDomScrollPosition$0: function() {
+ var t1 = this.semanticsObject,
+ element = t1.element,
+ t2 = t1.__engine$_actions;
+ t2.toString;
+ if ((t2 & 32) !== 0 || (t2 & 16) !== 0) {
+ element.scrollTop = 10;
+ t1.verticalContainerAdjustment = this._effectiveNeutralScrollPosition = C.JSNumber_methods.round$0(element.scrollTop);
+ t1.horizontalContainerAdjustment = 0;
+ } else {
+ element.scrollLeft = 10;
+ t2 = C.JSNumber_methods.round$0(element.scrollLeft);
+ this._effectiveNeutralScrollPosition = t2;
+ t1.verticalContainerAdjustment = 0;
+ t1.horizontalContainerAdjustment = t2;
+ }
+ },
+ _gestureModeDidChange$0: function() {
+ var _s10_ = "overflow-y",
+ _s10_0 = "overflow-x",
+ t1 = this.semanticsObject,
+ element = t1.element;
+ switch (t1.owner._gestureMode) {
+ case C.GestureMode_1:
+ t1 = t1.__engine$_actions;
+ t1.toString;
+ if ((t1 & 32) !== 0 || (t1 & 16) !== 0) {
+ t1 = element.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s10_), "scroll", "");
+ } else {
+ t1 = element.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s10_0), "scroll", "");
+ }
+ break;
+ case C.GestureMode_0:
+ t1 = t1.__engine$_actions;
+ t1.toString;
+ if ((t1 & 32) !== 0 || (t1 & 16) !== 0) {
+ t1 = element.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s10_), "hidden", "");
+ } else {
+ t1 = element.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s10_0), "hidden", "");
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ dispose$0: function(_) {
+ var t3, _this = this,
+ t1 = _this.semanticsObject,
+ t2 = t1.element,
+ style = t2.style;
+ style.removeProperty("overflowY");
+ style.removeProperty("overflowX");
+ style.removeProperty("touch-action");
+ t3 = _this._scrollListener;
+ if (t3 != null)
+ J.removeEventListener$2$x(t2, "scroll", t3);
+ C.JSArray_methods.remove$1(t1.owner._gestureModeListeners, _this._gestureModeListener);
+ _this._gestureModeListener = null;
+ }
+ };
+ H.Scrollable_update_closure.prototype = {
+ call$0: function() {
+ this.$this._neutralizeDomScrollPosition$0();
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ H.Scrollable_update_closure0.prototype = {
+ call$1: function(_) {
+ this.$this._gestureModeDidChange$0();
+ },
+ $signature: 109
+ };
+ H.Scrollable_update_closure1.prototype = {
+ call$1: function(_) {
+ this.$this._recomputeScrollPosition$0();
+ },
+ $signature: 6
+ };
+ H.SemanticsUpdate.prototype = {};
+ H.SemanticsNodeUpdate.prototype = {};
+ H.Role.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.closure.prototype = {
+ call$1: function(object) {
+ return H.Incrementable$(object);
+ },
+ $signature: 355
+ };
+ H.closure0.prototype = {
+ call$1: function(object) {
+ return new H.Scrollable0(object);
+ },
+ $signature: 350
+ };
+ H.closure1.prototype = {
+ call$1: function(object) {
+ return new H.LabelAndValue(object);
+ },
+ $signature: 341
+ };
+ H.closure2.prototype = {
+ call$1: function(object) {
+ return new H.Tappable(object);
+ },
+ $signature: 339
+ };
+ H.closure3.prototype = {
+ call$1: function(object) {
+ var editableDomElement, t3, t4,
+ t1 = new H.TextField0(object),
+ t2 = object.__engine$_flags;
+ t2.toString;
+ editableDomElement = (t2 & 524288) !== 0 ? document.createElement("textarea") : W.InputElement_InputElement();
+ t2 = new H.SemanticsTextEditingStrategy($.$get$textEditing(), H.setRuntimeTypeInfo([], type$.JSArray_StreamSubscription_Event));
+ t2.super$DefaultTextEditingStrategy$domElement(editableDomElement);
+ t1.textEditingElement = t2;
+ t3 = t2._domElement;
+ t3.spellcheck = false;
+ t3.setAttribute("autocorrect", "off");
+ t3.setAttribute("autocomplete", "off");
+ t3.setAttribute("data-semantics-role", "text-field");
+ t3 = t2._domElement.style;
+ t3.position = "absolute";
+ t3.top = "0";
+ t3.left = "0";
+ t4 = object.__engine$_rect;
+ t4 = H.S(t4.right - t4.left) + "px";
+ t3.width = t4;
+ t4 = object.__engine$_rect;
+ t4 = H.S(t4.bottom - t4.top) + "px";
+ t3.height = t4;
+ t2 = t2._domElement;
+ t2.toString;
+ object.element.appendChild(t2);
+ t2 = H._browserEngine();
+ switch (t2) {
+ case C.BrowserEngine_0:
+ case C.BrowserEngine_3:
+ case C.BrowserEngine_4:
+ case C.BrowserEngine_2:
+ case C.BrowserEngine_4:
+ case C.BrowserEngine_5:
+ t1._initializeForBlink$0();
+ break;
+ case C.BrowserEngine_1:
+ t1._initializeForWebkit$0();
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ }
+ return t1;
+ },
+ $signature: 338
+ };
+ H.closure4.prototype = {
+ call$1: function(object) {
+ return new H.Checkable(H._checkableKindFromSemanticsFlag(object), object);
+ },
+ $signature: 336
+ };
+ H.closure5.prototype = {
+ call$1: function(object) {
+ return new H.ImageRoleManager(object);
+ },
+ $signature: 335
+ };
+ H.closure6.prototype = {
+ call$1: function(object) {
+ return new H.LiveRegion(object);
+ },
+ $signature: 425
+ };
+ H.RoleManager.prototype = {};
+ H.SemanticsObject.prototype = {
+ SemanticsObject$2: function(id, owner) {
+ var t1 = this.element,
+ t2 = t1.style;
+ t2.position = "absolute";
+ if (this.id === 0) {
+ t2 = t1.style;
+ t2.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t2, C.CssStyleDeclaration_methods._browserPropertyName$1(t2, "filter"), "opacity(0%)", "");
+ t1 = t1.style;
+ t1.color = "rgba(0,0,0,0)";
+ }
+ },
+ get$hasLabel: function() {
+ var t1 = this.__engine$_label;
+ return t1 != null && t1.length !== 0;
+ },
+ get$hasValue: function() {
+ var t1 = this.__engine$_value;
+ return t1 != null && t1.length !== 0;
+ },
+ getOrCreateChildContainer$0: function() {
+ var t1, _this = this;
+ if (_this._childContainerElement == null) {
+ t1 = W._ElementFactoryProvider_createElement_tag("flt-semantics-container", null);
+ _this._childContainerElement = t1;
+ t1 = t1.style;
+ t1.position = "absolute";
+ t1 = _this._childContainerElement;
+ t1.toString;
+ _this.element.appendChild(t1);
+ }
+ return _this._childContainerElement;
+ },
+ get$hasChildren: function() {
+ var t1 = this.__engine$_childrenInTraversalOrder;
+ return t1 != null && !C.NativeInt32List_methods.get$isEmpty(t1);
+ },
+ get$isVisualOnly: function() {
+ var t2,
+ t1 = this.__engine$_flags;
+ t1.toString;
+ if ((t1 & 16384) !== 0) {
+ t2 = this.__engine$_actions;
+ t2.toString;
+ t1 = (t2 & 1) === 0 && (t1 & 8) === 0;
+ } else
+ t1 = false;
+ return t1;
+ },
+ enabledState$0: function() {
+ var t1 = this.__engine$_flags;
+ t1.toString;
+ if ((t1 & 64) !== 0)
+ if ((t1 & 128) !== 0)
+ return C.EnabledState_1;
+ else
+ return C.EnabledState_2;
+ else
+ return C.EnabledState_0;
+ },
+ setAriaRole$2: function(ariaRoleName, condition) {
+ var t1;
+ if (condition)
+ this.element.setAttribute("role", ariaRoleName);
+ else {
+ t1 = this.element;
+ if (t1.getAttribute("role") === ariaRoleName)
+ t1.removeAttribute("role");
+ }
+ },
+ _updateRole$2: function(role, enabled) {
+ var t1 = this._roleManagers,
+ manager = t1.$index(0, role);
+ if (enabled) {
+ if (manager == null) {
+ manager = $.$get$_roleFactories().$index(0, role).call$1(this);
+ t1.$indexSet(0, role, manager);
+ }
+ manager.update$0(0);
+ } else if (manager != null) {
+ manager.dispose$0(0);
+ t1.remove$1(0, role);
+ }
+ },
+ recomputePositionAndSize$0: function() {
+ var containerElement, hasZeroRectOffset, transform, hasIdentityTransform, left, $top, effectiveTransformIsIdentity, t5, m, x, y, t6, t7, t8, wp, t9, t10, t11, t12, t13, xp, t14, t15, t16, t17, t18, yp, xp0, yp0, minX, maxX, minY, maxY, translateX, translateY, _this = this,
+ _s16_ = "transform-origin",
+ _s9_ = "transform",
+ _s3_ = "top", _s4_ = "left", t1 = {},
+ t2 = _this.element,
+ t3 = t2.style,
+ t4 = _this.__engine$_rect;
+ t4 = H.S(t4.right - t4.left) + "px";
+ t3.width = t4;
+ t4 = _this.__engine$_rect;
+ t4 = H.S(t4.bottom - t4.top) + "px";
+ t3.height = t4;
+ containerElement = _this.get$hasChildren() ? _this.getOrCreateChildContainer$0() : null;
+ t3 = _this.__engine$_rect;
+ hasZeroRectOffset = t3.top === 0 && t3.left === 0;
+ transform = _this.__engine$_transform;
+ t3 = transform == null;
+ hasIdentityTransform = t3 || H.transformKindOf(transform) === C.TransformKind_0;
+ if (hasZeroRectOffset && hasIdentityTransform && _this.verticalContainerAdjustment === 0 && _this.horizontalContainerAdjustment === 0) {
+ t1 = H._operatingSystem();
+ t3 = C.Set_m536._collection$_map;
+ t4 = J.getInterceptor$x(t3);
+ if (t4.containsKey$1(t3, t1)) {
+ t1 = t2.style;
+ t1.removeProperty(_s16_);
+ t1.removeProperty(_s9_);
+ } else {
+ t1 = t2.style;
+ t1.removeProperty(_s3_);
+ t1.removeProperty(_s4_);
+ }
+ if (containerElement != null) {
+ t1 = H._operatingSystem();
+ if (t4.containsKey$1(t3, t1)) {
+ t1 = containerElement.style;
+ t1.removeProperty(_s16_);
+ t1.removeProperty(_s9_);
+ } else {
+ t1 = containerElement.style;
+ t1.removeProperty(_s3_);
+ t1.removeProperty(_s4_);
+ }
+ }
+ return;
+ }
+ t1.effectiveTransform = null;
+ t1._effectiveTransform_isSet = false;
+ t4 = new H.SemanticsObject_recomputePositionAndSize__effectiveTransform_get(t1);
+ t1 = new H.SemanticsObject_recomputePositionAndSize__effectiveTransform_set(t1);
+ if (!hasZeroRectOffset)
+ if (t3) {
+ t3 = _this.__engine$_rect;
+ left = t3.left;
+ $top = t3.top;
+ t1.call$1(H.Matrix4_Matrix4$translationValues0(left, $top, 0));
+ effectiveTransformIsIdentity = left === 0 && $top === 0;
+ } else {
+ t3 = new H.Matrix40(new Float32Array(16));
+ t3.setFrom$1(new H.Matrix40(transform));
+ t5 = _this.__engine$_rect;
+ t3.translate$3(0, t5.left, t5.top, 0);
+ t1.call$1(t3);
+ effectiveTransformIsIdentity = J.isIdentity$0$z(t4.call$0());
+ }
+ else if (!hasIdentityTransform) {
+ transform.toString;
+ t1.call$1(new H.Matrix40(transform));
+ effectiveTransformIsIdentity = false;
+ } else
+ effectiveTransformIsIdentity = true;
+ if (!effectiveTransformIsIdentity) {
+ t1 = H._operatingSystem();
+ t3 = C.Set_m536._collection$_map;
+ if (J.containsKey$1$x(t3, t1)) {
+ t1 = t2.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s16_), "0 0 0", "");
+ t4 = H.float64ListToCssTransform(t4.call$0().__engine$_m4storage);
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s9_), t4, "");
+ } else {
+ t1 = t4.call$0();
+ t4 = _this.__engine$_rect;
+ t4.toString;
+ m = t1.__engine$_m4storage;
+ x = t4.left;
+ y = t4.top;
+ t1 = m[3];
+ t5 = t1 * x;
+ t6 = m[7];
+ t7 = t6 * y;
+ t8 = m[15];
+ wp = 1 / (t5 + t7 + t8);
+ t9 = m[0];
+ t10 = t9 * x;
+ t11 = m[4];
+ t12 = t11 * y;
+ t13 = m[12];
+ xp = (t10 + t12 + t13) * wp;
+ t14 = m[1];
+ t15 = t14 * x;
+ t16 = m[5];
+ t17 = t16 * y;
+ t18 = m[13];
+ yp = (t15 + t17 + t18) * wp;
+ x = t4.right;
+ y = t4.bottom;
+ t1 *= x;
+ t6 *= y;
+ wp = 1 / (t1 + t6 + t8);
+ t9 *= x;
+ t11 *= y;
+ xp0 = (t9 + t11 + t13) * wp;
+ t14 *= x;
+ t16 *= y;
+ yp0 = (t14 + t16 + t18) * wp;
+ minX = Math.min(xp, xp0);
+ maxX = Math.max(xp, xp0);
+ minY = Math.min(yp, yp0);
+ maxY = Math.max(yp, yp0);
+ wp = 1 / (t5 + t6 + t8);
+ xp = (t10 + t11 + t13) * wp;
+ yp = (t15 + t16 + t18) * wp;
+ minX = Math.min(minX, xp);
+ maxX = Math.max(maxX, xp);
+ minY = Math.min(minY, yp);
+ maxY = Math.max(maxY, yp);
+ wp = 1 / (t1 + t7 + t8);
+ xp = (t9 + t12 + t13) * wp;
+ yp = (t14 + t17 + t18) * wp;
+ minX = Math.min(minX, xp);
+ maxX = Math.max(maxX, xp);
+ minY = Math.min(minY, yp);
+ maxY = Math.max(maxY, yp);
+ t2 = t2.style;
+ t18 = H.S(minY) + "px";
+ t2.top = t18;
+ t1 = H.S(minX) + "px";
+ t2.left = t1;
+ t1 = H.S(minX + (maxX - minX) - minX) + "px";
+ t2.width = t1;
+ t1 = H.S(minY + (maxY - minY) - minY) + "px";
+ t2.height = t1;
+ }
+ t1 = t3;
+ } else {
+ t1 = H._operatingSystem();
+ t3 = C.Set_m536._collection$_map;
+ if (J.containsKey$1$x(t3, t1)) {
+ t1 = t2.style;
+ t1.removeProperty(_s16_);
+ t1.removeProperty(_s9_);
+ } else {
+ t1 = t2.style;
+ t1.removeProperty(_s3_);
+ t1.removeProperty(_s4_);
+ }
+ t1 = t3;
+ }
+ if (containerElement != null)
+ if (!hasZeroRectOffset || _this.verticalContainerAdjustment !== 0 || _this.horizontalContainerAdjustment !== 0) {
+ t2 = _this.__engine$_rect;
+ translateX = -t2.left + _this.horizontalContainerAdjustment;
+ translateY = -t2.top + _this.verticalContainerAdjustment;
+ t2 = H._operatingSystem();
+ if (J.containsKey$1$x(t1, t2)) {
+ t1 = containerElement.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s16_), "0 0 0", "");
+ t2 = "translate(" + H.S(translateX) + "px, " + H.S(translateY) + "px)";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, _s9_), t2, "");
+ } else {
+ t1 = containerElement.style;
+ t2 = H.S(translateY) + "px";
+ t1.top = t2;
+ t2 = H.S(translateX) + "px";
+ t1.left = t2;
+ }
+ } else {
+ t2 = H._operatingSystem();
+ if (J.containsKey$1$x(t1, t2)) {
+ t1 = containerElement.style;
+ t1.removeProperty(_s16_);
+ t1.removeProperty(_s9_);
+ } else {
+ t1 = containerElement.style;
+ t1.removeProperty(_s3_);
+ t1.removeProperty(_s4_);
+ }
+ }
+ },
+ _updateChildrenInTraversalOrder$0: function() {
+ var t2, len, i, object, containerElement, t3, t4, t5, t6, _i, id, intersectionIndicesNew, intersectionIndicesOld, minLength, newIndex, oldIndex, longestSequence, stationaryIds, refNode, childId, _this = this,
+ _s13_ = "flt-semantics",
+ t1 = _this.__engine$_childrenInTraversalOrder;
+ if (t1 == null || t1.length === 0) {
+ t2 = _this._previousChildrenInTraversalOrder;
+ if (t2 == null || t2.length === 0) {
+ _this._previousChildrenInTraversalOrder = t1;
+ return;
+ }
+ len = t2.length;
+ for (t1 = _this.owner, t2 = t1._semanticsTree, i = 0; i < len; ++i) {
+ object = t2.$index(0, _this._previousChildrenInTraversalOrder[i]);
+ t1._detachments.push(object);
+ }
+ _this._previousChildrenInTraversalOrder = null;
+ t1 = _this._childContainerElement;
+ t1.toString;
+ J.remove$0$ax(t1);
+ _this._childContainerElement = null;
+ _this._previousChildrenInTraversalOrder = _this.__engine$_childrenInTraversalOrder;
+ return;
+ }
+ containerElement = _this.getOrCreateChildContainer$0();
+ t1 = _this._previousChildrenInTraversalOrder;
+ if (t1 == null || t1.length === 0) {
+ t1 = _this._previousChildrenInTraversalOrder = _this.__engine$_childrenInTraversalOrder;
+ for (t2 = t1.length, t3 = _this.owner, t4 = t3._semanticsTree, t5 = type$.Role, t6 = type$.nullable_RoleManager, _i = 0; _i < t2; ++_i) {
+ id = t1[_i];
+ object = t4.$index(0, id);
+ if (object == null) {
+ object = new H.SemanticsObject(id, t3, W._ElementFactoryProvider_createElement_tag(_s13_, null), P.LinkedHashMap_LinkedHashMap$_empty(t5, t6));
+ object.SemanticsObject$2(id, t3);
+ t4.$indexSet(0, id, object);
+ }
+ containerElement.appendChild(object.element);
+ object.__engine$_parent = _this;
+ t3._attachments.$indexSet(0, object.id, _this);
+ }
+ _this._previousChildrenInTraversalOrder = _this.__engine$_childrenInTraversalOrder;
+ return;
+ }
+ t1 = type$.JSArray_int;
+ intersectionIndicesNew = H.setRuntimeTypeInfo([], t1);
+ intersectionIndicesOld = H.setRuntimeTypeInfo([], t1);
+ minLength = Math.min(_this._previousChildrenInTraversalOrder.length, _this.__engine$_childrenInTraversalOrder.length);
+ newIndex = 0;
+ while (true) {
+ if (!(newIndex < minLength && _this._previousChildrenInTraversalOrder[newIndex] === _this.__engine$_childrenInTraversalOrder[newIndex]))
+ break;
+ intersectionIndicesNew.push(newIndex);
+ intersectionIndicesOld.push(newIndex);
+ ++newIndex;
+ }
+ t2 = _this._previousChildrenInTraversalOrder.length;
+ t3 = _this.__engine$_childrenInTraversalOrder.length;
+ if (t2 === t3 && newIndex === t3)
+ return;
+ for (; t2 = _this.__engine$_childrenInTraversalOrder, newIndex < t2.length;) {
+ for (t3 = _this._previousChildrenInTraversalOrder, t4 = t3.length, oldIndex = 0; oldIndex < t4; ++oldIndex)
+ if (t3[oldIndex] === t2[newIndex]) {
+ intersectionIndicesNew.push(newIndex);
+ intersectionIndicesOld.push(oldIndex);
+ break;
+ }
+ ++newIndex;
+ }
+ longestSequence = H.longestIncreasingSubsequence(intersectionIndicesOld);
+ stationaryIds = H.setRuntimeTypeInfo([], t1);
+ for (t1 = longestSequence.length, i = 0; i < t1; ++i)
+ stationaryIds.push(_this._previousChildrenInTraversalOrder[intersectionIndicesOld[longestSequence[i]]]);
+ for (t1 = _this.owner, t2 = t1._semanticsTree, i = 0; i < _this._previousChildrenInTraversalOrder.length; ++i)
+ if (!C.JSArray_methods.contains$1(intersectionIndicesOld, i)) {
+ object = t2.$index(0, _this._previousChildrenInTraversalOrder[i]);
+ t1._detachments.push(object);
+ }
+ for (i = _this.__engine$_childrenInTraversalOrder.length - 1, t3 = type$.Role, t4 = type$.nullable_RoleManager, refNode = null; i >= 0; --i) {
+ childId = _this.__engine$_childrenInTraversalOrder[i];
+ object = t2.$index(0, childId);
+ if (object == null) {
+ object = new H.SemanticsObject(childId, t1, W._ElementFactoryProvider_createElement_tag(_s13_, null), P.LinkedHashMap_LinkedHashMap$_empty(t3, t4));
+ object.SemanticsObject$2(childId, t1);
+ t2.$indexSet(0, childId, object);
+ }
+ if (!C.JSArray_methods.contains$1(stationaryIds, childId)) {
+ t5 = object.element;
+ if (refNode == null)
+ containerElement.appendChild(t5);
+ else
+ containerElement.insertBefore(t5, refNode);
+ object.__engine$_parent = _this;
+ t1._attachments.$indexSet(0, object.id, _this);
+ }
+ refNode = object.element;
+ }
+ _this._previousChildrenInTraversalOrder = _this.__engine$_childrenInTraversalOrder;
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.SemanticsObject_recomputePositionAndSize__effectiveTransform_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._effectiveTransform_isSet = true;
+ return t2.effectiveTransform = t1;
+ },
+ $signature: 320
+ };
+ H.SemanticsObject_recomputePositionAndSize__effectiveTransform_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._effectiveTransform_isSet ? t1.effectiveTransform : H.throwExpression(H.LateError$localNI("effectiveTransform"));
+ },
+ $signature: 311
+ };
+ H.AccessibilityMode.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.GestureMode.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.EngineSemanticsOwner.prototype = {
+ EngineSemanticsOwner$_$0: function() {
+ $._hotRestartListeners.push(new H.EngineSemanticsOwner$__closure(this));
+ },
+ _finalizeTree$0: function() {
+ var t1, t2, t3, _i, object, t4, t5, _this = this;
+ for (t1 = _this._detachments, t2 = t1.length, t3 = _this._semanticsTree, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ object = t1[_i];
+ t4 = _this._attachments;
+ t5 = object.id;
+ if (t4.$index(0, t5) == null) {
+ t3.remove$1(0, t5);
+ object.__engine$_parent = null;
+ t4 = object.element;
+ t5 = t4.parentNode;
+ if (t5 != null)
+ t5.removeChild(t4);
+ }
+ }
+ _this._detachments = H.setRuntimeTypeInfo([], type$.JSArray_nullable_SemanticsObject);
+ _this._attachments = P.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_int, type$.SemanticsObject);
+ t1 = _this._oneTimePostUpdateCallbacks;
+ t2 = t1.length;
+ if (t2 !== 0) {
+ for (_i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].call$0();
+ _this._oneTimePostUpdateCallbacks = H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function);
+ }
+ },
+ set$semanticsEnabled: function(value) {
+ var t1, t2, t3;
+ if (this._semanticsEnabled)
+ return;
+ this._semanticsEnabled = true;
+ t1 = this._semanticsEnabled;
+ t2 = $.$get$EnginePlatformDispatcher__instance();
+ t3 = t2._configuration;
+ if (t1 !== t3.semanticsEnabled) {
+ t2._configuration = t3.copyWith$1$semanticsEnabled(t1);
+ t1 = t2._onSemanticsEnabledChanged;
+ if (t1 != null)
+ H.invoke(t1, t2._onSemanticsEnabledChangedZone);
+ }
+ },
+ _getGestureModeClock$0: function() {
+ var _this = this,
+ t1 = _this._gestureModeClock;
+ if (t1 == null) {
+ t1 = _this._gestureModeClock = new H.AlarmClock(_this._now);
+ t1.__AlarmClock_callback_isSet = true;
+ t1.__AlarmClock_callback = new H.EngineSemanticsOwner__getGestureModeClock_closure(_this);
+ }
+ return t1;
+ },
+ _notifyGestureModeListeners$0: function() {
+ var t1, i;
+ for (t1 = this._gestureModeListeners, i = 0; i < t1.length; ++i)
+ t1[i].call$1(this._gestureMode);
+ },
+ shouldAcceptBrowserGesture$1: function(eventType) {
+ if (C.JSArray_methods.contains$1(C.List_click_scroll, eventType))
+ return this._gestureMode === C.GestureMode_1;
+ return false;
+ },
+ updateSemantics$1: function(uiUpdate) {
+ var t1, t2, t3, t4, t5, _i, nodeUpdate, t6, object, t7, t8, _this = this;
+ if (!_this._semanticsEnabled)
+ return;
+ for (t1 = uiUpdate.__engine$_nodeUpdates, t2 = t1.length, t3 = _this._semanticsTree, t4 = type$.Role, t5 = type$.nullable_RoleManager, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ nodeUpdate = t1[_i];
+ t6 = nodeUpdate.id;
+ object = t3.$index(0, t6);
+ if (object == null) {
+ object = new H.SemanticsObject(t6, _this, W._ElementFactoryProvider_createElement_tag("flt-semantics", null), P.LinkedHashMap_LinkedHashMap$_empty(t4, t5));
+ object.SemanticsObject$2(t6, _this);
+ t3.$indexSet(0, t6, object);
+ }
+ t6 = nodeUpdate.flags;
+ if (object.__engine$_flags !== t6) {
+ object.__engine$_flags = t6;
+ object._dirtyFields = (object._dirtyFields | 1) >>> 0;
+ }
+ t6 = nodeUpdate.value;
+ if (object.__engine$_value != t6) {
+ object.__engine$_value = t6;
+ object._dirtyFields = (object._dirtyFields | 4096) >>> 0;
+ }
+ t6 = nodeUpdate.label;
+ if (object.__engine$_label != t6) {
+ object.__engine$_label = t6;
+ object._dirtyFields = (object._dirtyFields | 1024) >>> 0;
+ }
+ t6 = nodeUpdate.rect;
+ if (!J.$eq$(object.__engine$_rect, t6)) {
+ object.__engine$_rect = t6;
+ object._dirtyFields = (object._dirtyFields | 512) >>> 0;
+ }
+ t6 = nodeUpdate.transform;
+ if (object.__engine$_transform !== t6) {
+ object.__engine$_transform = t6;
+ object._dirtyFields = (object._dirtyFields | 65536) >>> 0;
+ }
+ t6 = nodeUpdate.scrollPosition;
+ if (object.__engine$_scrollPosition !== t6) {
+ object.__engine$_scrollPosition = t6;
+ object._dirtyFields = (object._dirtyFields | 64) >>> 0;
+ }
+ t6 = object.__engine$_actions;
+ t7 = nodeUpdate.actions;
+ if (t6 !== t7) {
+ object.__engine$_actions = t7;
+ object._dirtyFields = (object._dirtyFields | 2) >>> 0;
+ t6 = t7;
+ }
+ t7 = nodeUpdate.textSelectionBase;
+ if (object._textSelectionBase != t7) {
+ object._textSelectionBase = t7;
+ object._dirtyFields = (object._dirtyFields | 4) >>> 0;
+ }
+ t7 = nodeUpdate.textSelectionExtent;
+ if (object._textSelectionExtent != t7) {
+ object._textSelectionExtent = t7;
+ object._dirtyFields = (object._dirtyFields | 8) >>> 0;
+ }
+ t7 = nodeUpdate.scrollChildren;
+ if (object._scrollChildren !== t7) {
+ object._scrollChildren = t7;
+ object._dirtyFields = (object._dirtyFields | 16) >>> 0;
+ }
+ t7 = nodeUpdate.scrollIndex;
+ if (object.__engine$_scrollIndex !== t7) {
+ object.__engine$_scrollIndex = t7;
+ object._dirtyFields = (object._dirtyFields | 32) >>> 0;
+ }
+ t7 = nodeUpdate.scrollExtentMax;
+ if (object.__engine$_scrollExtentMax !== t7) {
+ object.__engine$_scrollExtentMax = t7;
+ object._dirtyFields = (object._dirtyFields | 128) >>> 0;
+ }
+ t7 = nodeUpdate.scrollExtentMin;
+ if (object.__engine$_scrollExtentMin !== t7) {
+ object.__engine$_scrollExtentMin = t7;
+ object._dirtyFields = (object._dirtyFields | 256) >>> 0;
+ }
+ t7 = nodeUpdate.hint;
+ if (object.__engine$_hint != t7) {
+ object.__engine$_hint = t7;
+ object._dirtyFields = (object._dirtyFields | 2048) >>> 0;
+ }
+ t7 = nodeUpdate.increasedValue;
+ if (object.__engine$_increasedValue != t7) {
+ object.__engine$_increasedValue = t7;
+ object._dirtyFields = (object._dirtyFields | 8192) >>> 0;
+ }
+ t7 = nodeUpdate.decreasedValue;
+ if (object.__engine$_decreasedValue != t7) {
+ object.__engine$_decreasedValue = t7;
+ object._dirtyFields = (object._dirtyFields | 16384) >>> 0;
+ }
+ t7 = nodeUpdate.textDirection;
+ if (object._textDirection != t7) {
+ object._textDirection = t7;
+ object._dirtyFields = (object._dirtyFields | 32768) >>> 0;
+ }
+ t7 = object._childrenInHitTestOrder;
+ t8 = nodeUpdate.childrenInHitTestOrder;
+ if (t7 == null ? t8 != null : t7 !== t8) {
+ object._childrenInHitTestOrder = t8;
+ object._dirtyFields = (object._dirtyFields | 1048576) >>> 0;
+ }
+ t7 = object.__engine$_childrenInTraversalOrder;
+ t8 = nodeUpdate.childrenInTraversalOrder;
+ if (t7 == null ? t8 != null : t7 !== t8) {
+ object.__engine$_childrenInTraversalOrder = t8;
+ object._dirtyFields = (object._dirtyFields | 524288) >>> 0;
+ }
+ t7 = object._additionalActions;
+ t8 = nodeUpdate.additionalActions;
+ if (t7 == null ? t8 != null : t7 !== t8) {
+ object._additionalActions = t8;
+ object._dirtyFields = (object._dirtyFields | 2097152) >>> 0;
+ }
+ t7 = object.__engine$_label;
+ if (!(t7 != null && t7.length !== 0)) {
+ t7 = object.__engine$_value;
+ t7 = t7 != null && t7.length !== 0;
+ } else
+ t7 = true;
+ if (t7) {
+ t7 = object.__engine$_flags;
+ t7.toString;
+ if ((t7 & 16384) !== 0) {
+ t6.toString;
+ t6 = (t6 & 1) === 0 && (t7 & 8) === 0;
+ } else
+ t6 = false;
+ t6 = !t6;
+ } else
+ t6 = false;
+ object._updateRole$2(C.Role_2, t6);
+ t6 = object.__engine$_flags;
+ t6.toString;
+ object._updateRole$2(C.Role_4, (t6 & 16) !== 0);
+ t6 = object.__engine$_actions;
+ t6.toString;
+ if ((t6 & 1) === 0) {
+ t6 = object.__engine$_flags;
+ t6.toString;
+ t6 = (t6 & 8) !== 0;
+ } else
+ t6 = true;
+ object._updateRole$2(C.Role_3, t6);
+ t6 = object.__engine$_actions;
+ t6.toString;
+ object._updateRole$2(C.Role_0, (t6 & 64) !== 0 || (t6 & 128) !== 0);
+ t6 = object.__engine$_actions;
+ t6.toString;
+ object._updateRole$2(C.Role_1, (t6 & 32) !== 0 || (t6 & 16) !== 0 || (t6 & 4) !== 0 || (t6 & 8) !== 0);
+ t6 = object.__engine$_flags;
+ t6.toString;
+ object._updateRole$2(C.Role_5, (t6 & 1) !== 0 || (t6 & 65536) !== 0);
+ t6 = object.__engine$_flags;
+ t6.toString;
+ if ((t6 & 16384) !== 0) {
+ t7 = object.__engine$_actions;
+ t7.toString;
+ t6 = (t7 & 1) === 0 && (t6 & 8) === 0;
+ } else
+ t6 = false;
+ object._updateRole$2(C.Role_6, t6);
+ t6 = object.__engine$_flags;
+ t6.toString;
+ object._updateRole$2(C.Role_7, (t6 & 32768) !== 0 && (t6 & 8192) === 0);
+ object._updateChildrenInTraversalOrder$0();
+ t6 = object._dirtyFields;
+ if ((t6 & 512) !== 0 || (t6 & 65536) !== 0 || (t6 & 64) !== 0)
+ object.recomputePositionAndSize$0();
+ object._dirtyFields = 0;
+ }
+ if (_this._rootSemanticsElement == null) {
+ t1 = t3.$index(0, 0).element;
+ _this._rootSemanticsElement = t1;
+ t2 = $.$get$domRenderer();
+ t3 = t2._glassPaneElement;
+ t3.toString;
+ t3.insertBefore(t1, t2._sceneHostElement);
+ }
+ _this._finalizeTree$0();
+ }
+ };
+ H.EngineSemanticsOwner$__closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this._rootSemanticsElement;
+ if (t1 != null)
+ J.remove$0$ax(t1);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ H.EngineSemanticsOwner_closure.prototype = {
+ call$0: function() {
+ return new P.DateTime(Date.now(), false);
+ },
+ $signature: 103
+ };
+ H.EngineSemanticsOwner__getGestureModeClock_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ if (t1._gestureMode === C.GestureMode_1)
+ return;
+ t1._gestureMode = C.GestureMode_1;
+ t1._notifyGestureModeListeners$0();
+ },
+ $signature: 0
+ };
+ H.EnabledState.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.SemanticsHelper.prototype = {};
+ H.SemanticsEnabler.prototype = {
+ shouldEnableSemantics$1: function($event) {
+ if (!this.get$isWaitingToEnableSemantics())
+ return true;
+ else
+ return this.tryEnableSemantics$1($event);
+ }
+ };
+ H.DesktopSemanticsEnabler.prototype = {
+ get$isWaitingToEnableSemantics: function() {
+ return this._semanticsPlaceholder != null;
+ },
+ tryEnableSemantics$1: function($event) {
+ var t1, t2, _this = this;
+ if (_this._schedulePlaceholderRemoval) {
+ t1 = _this._semanticsPlaceholder;
+ t1.toString;
+ J.remove$0$ax(t1);
+ _this.semanticsActivationTimer = _this._semanticsPlaceholder = null;
+ return true;
+ }
+ if (H.EngineSemanticsOwner_instance()._semanticsEnabled)
+ return true;
+ if (!J.containsKey$1$x(C.Set_Yabt3._collection$_map, $event.type))
+ return true;
+ if (++_this.semanticsActivationAttempts >= 20)
+ return _this._schedulePlaceholderRemoval = true;
+ if (_this.semanticsActivationTimer != null)
+ return false;
+ t1 = J.get$target$x($event);
+ t2 = _this._semanticsPlaceholder;
+ if (t1 == null ? t2 == null : t1 === t2) {
+ _this.semanticsActivationTimer = P.Timer_Timer(C.Duration_300000, new H.DesktopSemanticsEnabler_tryEnableSemantics_closure(_this));
+ return false;
+ }
+ return true;
+ },
+ prepareAccessibilityPlaceholder$0: function() {
+ var t2,
+ t1 = this._semanticsPlaceholder = W._ElementFactoryProvider_createElement_tag("flt-semantics-placeholder", null);
+ J.addEventListener$3$x(t1, "click", new H.DesktopSemanticsEnabler_prepareAccessibilityPlaceholder_closure(this), true);
+ t1.setAttribute("role", "button");
+ t1.setAttribute("aria-live", "true");
+ t1.setAttribute("tabindex", "0");
+ t1.setAttribute("aria-label", "Enable accessibility");
+ t2 = t1.style;
+ t2.position = "absolute";
+ t2.left = "-1px";
+ t2.top = "-1px";
+ t2.width = "1px";
+ t2.height = "1px";
+ return t1;
+ }
+ };
+ H.DesktopSemanticsEnabler_tryEnableSemantics_closure.prototype = {
+ call$0: function() {
+ H.EngineSemanticsOwner_instance().set$semanticsEnabled(true);
+ this.$this._schedulePlaceholderRemoval = true;
+ },
+ $signature: 0
+ };
+ H.DesktopSemanticsEnabler_prepareAccessibilityPlaceholder_closure.prototype = {
+ call$1: function($event) {
+ this.$this.tryEnableSemantics$1($event);
+ },
+ $signature: 6
+ };
+ H.MobileSemanticsEnabler.prototype = {
+ get$isWaitingToEnableSemantics: function() {
+ return this._semanticsPlaceholder != null;
+ },
+ tryEnableSemantics$1: function($event) {
+ var t1, blinkEnableConditionPassed, activationPoint, activatingElementRect, t2, t3, t4, t5, deltaX, deltaY, safariEnableConditionPassed, _this = this;
+ if (_this._schedulePlaceholderRemoval) {
+ t1 = H._browserEngine();
+ if (t1 !== C.BrowserEngine_1 || $event.type === "touchend") {
+ t1 = _this._semanticsPlaceholder;
+ t1.toString;
+ J.remove$0$ax(t1);
+ _this.semanticsActivationTimer = _this._semanticsPlaceholder = null;
+ }
+ return true;
+ }
+ if (H.EngineSemanticsOwner_instance()._semanticsEnabled)
+ return true;
+ if (++_this.semanticsActivationAttempts >= 20)
+ return _this._schedulePlaceholderRemoval = true;
+ if (!J.containsKey$1$x(C.Set_2jNg2._collection$_map, $event.type))
+ return true;
+ if (_this.semanticsActivationTimer != null)
+ return false;
+ t1 = H._browserEngine();
+ blinkEnableConditionPassed = t1 === C.BrowserEngine_0 && H.EngineSemanticsOwner_instance()._gestureMode === C.GestureMode_1;
+ t1 = H._browserEngine();
+ if (t1 === C.BrowserEngine_1) {
+ switch ($event.type) {
+ case "click":
+ activationPoint = J.get$offset$x(type$.MouseEvent._as($event));
+ break;
+ case "touchstart":
+ case "touchend":
+ t1 = type$.TouchEvent._as($event).changedTouches;
+ t1.toString;
+ t1 = C.TouchList_methods.get$first(t1);
+ activationPoint = new P.Point(C.JSNumber_methods.round$0(t1.clientX), C.JSNumber_methods.round$0(t1.clientY), type$.Point_num);
+ break;
+ default:
+ return true;
+ }
+ activatingElementRect = $.$get$domRenderer()._glassPaneElement.getBoundingClientRect();
+ t1 = activatingElementRect.left;
+ t1.toString;
+ t2 = activatingElementRect.right;
+ t2.toString;
+ t3 = activatingElementRect.top;
+ t3.toString;
+ t4 = activatingElementRect.bottom;
+ t4.toString;
+ t5 = activationPoint.x;
+ t5.toString;
+ deltaX = t5 - (t1 + (t2 - t1) / 2);
+ t1 = activationPoint.y;
+ t1.toString;
+ deltaY = t1 - (t3 + (t4 - t3) / 2);
+ safariEnableConditionPassed = deltaX * deltaX + deltaY * deltaY < 1 && true;
+ } else
+ safariEnableConditionPassed = false;
+ if (blinkEnableConditionPassed || safariEnableConditionPassed) {
+ _this.semanticsActivationTimer = P.Timer_Timer(C.Duration_300000, new H.MobileSemanticsEnabler_tryEnableSemantics_closure(_this));
+ return false;
+ }
+ return true;
+ },
+ prepareAccessibilityPlaceholder$0: function() {
+ var t2,
+ t1 = this._semanticsPlaceholder = W._ElementFactoryProvider_createElement_tag("flt-semantics-placeholder", null);
+ J.addEventListener$3$x(t1, "click", new H.MobileSemanticsEnabler_prepareAccessibilityPlaceholder_closure(this), true);
+ t1.setAttribute("role", "button");
+ t1.setAttribute("aria-label", "Enable accessibility");
+ t2 = t1.style;
+ t2.position = "absolute";
+ t2.left = "0";
+ t2.top = "0";
+ t2.right = "0";
+ t2.bottom = "0";
+ return t1;
+ }
+ };
+ H.MobileSemanticsEnabler_tryEnableSemantics_closure.prototype = {
+ call$0: function() {
+ H.EngineSemanticsOwner_instance().set$semanticsEnabled(true);
+ this.$this._schedulePlaceholderRemoval = true;
+ },
+ $signature: 0
+ };
+ H.MobileSemanticsEnabler_prepareAccessibilityPlaceholder_closure.prototype = {
+ call$1: function($event) {
+ this.$this.tryEnableSemantics$1($event);
+ },
+ $signature: 6
+ };
+ H.Tappable.prototype = {
+ update$0: function(_) {
+ var _this = this,
+ t1 = _this.semanticsObject,
+ element = t1.element,
+ t2 = t1.__engine$_flags;
+ t2.toString;
+ t1.setAriaRole$2("button", (t2 & 8) !== 0);
+ if (t1.enabledState$0() === C.EnabledState_2) {
+ t2 = t1.__engine$_flags;
+ t2.toString;
+ t2 = (t2 & 8) !== 0;
+ } else
+ t2 = false;
+ if (t2) {
+ element.setAttribute("aria-disabled", "true");
+ _this._stopListening$0();
+ } else {
+ t2 = t1.__engine$_actions;
+ t2.toString;
+ if ((t2 & 1) !== 0) {
+ t1 = t1.__engine$_flags;
+ t1.toString;
+ t1 = (t1 & 16) === 0;
+ } else
+ t1 = false;
+ if (t1) {
+ if (_this._clickListener == null) {
+ t1 = new H.Tappable_update_closure(_this);
+ _this._clickListener = t1;
+ J.addEventListener$2$x(element, "click", t1);
+ }
+ } else
+ _this._stopListening$0();
+ }
+ },
+ _stopListening$0: function() {
+ var t1 = this._clickListener;
+ if (t1 == null)
+ return;
+ J.removeEventListener$2$x(this.semanticsObject.element, "click", t1);
+ this._clickListener = null;
+ },
+ dispose$0: function(_) {
+ this._stopListening$0();
+ this.semanticsObject.setAriaRole$2("button", false);
+ }
+ };
+ H.Tappable_update_closure.prototype = {
+ call$1: function(_) {
+ var t2,
+ t1 = this.$this.semanticsObject;
+ if (t1.owner._gestureMode !== C.GestureMode_1)
+ return;
+ t2 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t2._onSemanticsAction, t2._onSemanticsActionZone, t1.id, C.SemanticsAction_1, null);
+ },
+ $signature: 6
+ };
+ H.SemanticsTextEditingStrategy.prototype = {
+ disable$0: function(_) {
+ this._domElement.blur();
+ },
+ initializeElementPlacement$0: function() {
+ },
+ initializeTextEditing$3$onAction$onChange: function(inputConfig, onAction, onChange) {
+ var _this = this;
+ _this.__DefaultTextEditingStrategy__inputConfiguration_isSet = _this.isEnabled = true;
+ _this.__DefaultTextEditingStrategy__inputConfiguration = inputConfig;
+ _this._onChange = onChange;
+ _this._onAction = onAction;
+ _this._domElement.focus();
+ },
+ setEditingState$1: function(editingState) {
+ this.super$DefaultTextEditingStrategy$setEditingState(editingState);
+ this._domElement.focus();
+ }
+ };
+ H.TextField0.prototype = {
+ _initializeForBlink$0: function() {
+ var t1 = this.textEditingElement._domElement;
+ t1.toString;
+ J.addEventListener$2$x(t1, "focus", new H.TextField__initializeForBlink_closure(this));
+ },
+ _initializeForWebkit$0: function() {
+ var t2, _this = this, t1 = {};
+ t1.lastTouchStartOffsetY = t1.lastTouchStartOffsetX = null;
+ t2 = _this.textEditingElement._domElement;
+ t2.toString;
+ J.addEventListener$3$x(t2, "touchstart", new H.TextField__initializeForWebkit_closure(t1, _this), true);
+ t2 = _this.textEditingElement._domElement;
+ t2.toString;
+ J.addEventListener$3$x(t2, "touchend", new H.TextField__initializeForWebkit_closure0(t1, _this), true);
+ },
+ update$0: function(_) {
+ },
+ dispose$0: function(_) {
+ var t1 = this.textEditingElement._domElement;
+ t1.toString;
+ J.remove$0$ax(t1);
+ $.$get$textEditing().useCustomEditableElement$1(null);
+ }
+ };
+ H.TextField__initializeForBlink_closure.prototype = {
+ call$1: function($event) {
+ var t1 = this.$this,
+ t2 = t1.semanticsObject;
+ if (t2.owner._gestureMode !== C.GestureMode_1)
+ return;
+ $.$get$textEditing().useCustomEditableElement$1(t1.textEditingElement);
+ t1 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t1._onSemanticsAction, t1._onSemanticsActionZone, t2.id, C.SemanticsAction_1, null);
+ },
+ $signature: 6
+ };
+ H.TextField__initializeForWebkit_closure.prototype = {
+ call$1: function($event) {
+ var t1, t2;
+ $.$get$textEditing().useCustomEditableElement$1(this.$this.textEditingElement);
+ type$.TouchEvent._as($event);
+ t1 = $event.changedTouches;
+ t1.toString;
+ t1 = C.TouchList_methods.get$last(t1);
+ t2 = C.JSNumber_methods.round$0(t1.clientX);
+ C.JSNumber_methods.round$0(t1.clientY);
+ t1 = this._box_0;
+ t1.lastTouchStartOffsetX = t2;
+ t2 = $event.changedTouches;
+ t2.toString;
+ t2 = C.TouchList_methods.get$last(t2);
+ C.JSNumber_methods.round$0(t2.clientX);
+ t1.lastTouchStartOffsetY = C.JSNumber_methods.round$0(t2.clientY);
+ },
+ $signature: 6
+ };
+ H.TextField__initializeForWebkit_closure0.prototype = {
+ call$1: function($event) {
+ var t1, t2, offsetX, offsetY;
+ type$.TouchEvent._as($event);
+ t1 = this._box_0;
+ if (t1.lastTouchStartOffsetX != null) {
+ t2 = $event.changedTouches;
+ t2.toString;
+ t2 = C.TouchList_methods.get$last(t2);
+ offsetX = C.JSNumber_methods.round$0(t2.clientX);
+ C.JSNumber_methods.round$0(t2.clientY);
+ t2 = $event.changedTouches;
+ t2.toString;
+ t2 = C.TouchList_methods.get$last(t2);
+ C.JSNumber_methods.round$0(t2.clientX);
+ offsetY = C.JSNumber_methods.round$0(t2.clientY);
+ if (offsetX * offsetX + offsetY * offsetY < 324) {
+ t2 = $.$get$EnginePlatformDispatcher__instance();
+ H.invoke3(t2._onSemanticsAction, t2._onSemanticsActionZone, this.$this.semanticsObject.id, C.SemanticsAction_1, null);
+ }
+ }
+ t1.lastTouchStartOffsetY = t1.lastTouchStartOffsetX = null;
+ },
+ $signature: 6
+ };
+ H._TypedDataBuffer.prototype = {
+ get$length: function(_) {
+ return this.__engine$_length;
+ },
+ $index: function(_, index) {
+ if (index >= this.__engine$_length)
+ throw H.wrapException(P.IndexError$(index, this, null, null, null));
+ return this.__engine$_buffer[index];
+ },
+ $indexSet: function(_, index, value) {
+ if (index >= this.__engine$_length)
+ throw H.wrapException(P.IndexError$(index, this, null, null, null));
+ this.__engine$_buffer[index] = value;
+ },
+ set$length: function(_, newLength) {
+ var t2, i, newBuffer, _this = this,
+ t1 = _this.__engine$_length;
+ if (newLength < t1)
+ for (t2 = _this.__engine$_buffer, i = newLength; i < t1; ++i)
+ t2[i] = 0;
+ else {
+ t1 = _this.__engine$_buffer.length;
+ if (newLength > t1) {
+ if (t1 === 0)
+ newBuffer = new Uint8Array(newLength);
+ else
+ newBuffer = _this.__engine$_createBiggerBuffer$1(newLength);
+ C.NativeUint8List_methods.setRange$3(newBuffer, 0, _this.__engine$_length, _this.__engine$_buffer);
+ _this.__engine$_buffer = newBuffer;
+ }
+ }
+ _this.__engine$_length = newLength;
+ },
+ __engine$_add$1: function(_, value) {
+ var _this = this,
+ t1 = _this.__engine$_length;
+ if (t1 === _this.__engine$_buffer.length)
+ _this.__engine$_grow$1(t1);
+ _this.__engine$_buffer[_this.__engine$_length++] = value;
+ },
+ add$1: function(_, value) {
+ var _this = this,
+ t1 = _this.__engine$_length;
+ if (t1 === _this.__engine$_buffer.length)
+ _this.__engine$_grow$1(t1);
+ _this.__engine$_buffer[_this.__engine$_length++] = value;
+ },
+ addAll$3: function(_, values, start, end) {
+ P.RangeError_checkNotNegative(start, "start");
+ if (end != null && start > end)
+ throw H.wrapException(P.RangeError$range(end, start, null, "end", null));
+ this.__engine$_addAll$3(values, start, end);
+ },
+ addAll$1: function($receiver, values) {
+ return this.addAll$3($receiver, values, 0, null);
+ },
+ __engine$_addAll$3: function(values, start, end) {
+ var t1, i, value, _this = this;
+ if (H._instanceType(_this)._eval$1("List<_TypedDataBuffer.E>")._is(values))
+ end = end == null ? values.length : end;
+ if (end != null) {
+ _this.__engine$_insertKnownLength$4(_this.__engine$_length, values, start, end);
+ return;
+ }
+ for (t1 = J.get$iterator$ax(values), i = 0; t1.moveNext$0();) {
+ value = t1.get$current(t1);
+ if (i >= start)
+ _this.__engine$_add$1(0, value);
+ ++i;
+ }
+ if (i < start)
+ throw H.wrapException(P.StateError$("Too few elements"));
+ },
+ __engine$_insertKnownLength$4: function(index, values, start, end) {
+ var valuesLength, newLength, t2, _this = this,
+ t1 = J.getInterceptor$asx(values);
+ if (start > t1.get$length(values) || end > t1.get$length(values))
+ throw H.wrapException(P.StateError$("Too few elements"));
+ valuesLength = end - start;
+ newLength = _this.__engine$_length + valuesLength;
+ _this.__engine$_ensureCapacity$1(newLength);
+ t1 = _this.__engine$_buffer;
+ t2 = index + valuesLength;
+ C.NativeUint8List_methods.setRange$4(t1, t2, _this.__engine$_length + valuesLength, t1, index);
+ C.NativeUint8List_methods.setRange$4(_this.__engine$_buffer, index, t2, values, start);
+ _this.__engine$_length = newLength;
+ },
+ __engine$_ensureCapacity$1: function(requiredCapacity) {
+ var newBuffer, _this = this;
+ if (requiredCapacity <= _this.__engine$_buffer.length)
+ return;
+ newBuffer = _this.__engine$_createBiggerBuffer$1(requiredCapacity);
+ C.NativeUint8List_methods.setRange$3(newBuffer, 0, _this.__engine$_length, _this.__engine$_buffer);
+ _this.__engine$_buffer = newBuffer;
+ },
+ __engine$_createBiggerBuffer$1: function(requiredCapacity) {
+ var newLength = this.__engine$_buffer.length * 2;
+ if (requiredCapacity != null && newLength < requiredCapacity)
+ newLength = requiredCapacity;
+ else if (newLength < 8)
+ newLength = 8;
+ if (!H._isInt(newLength))
+ H.throwExpression(P.ArgumentError$("Invalid length " + H.S(newLength)));
+ return new Uint8Array(newLength);
+ },
+ __engine$_grow$1: function($length) {
+ var t1 = this.__engine$_createBiggerBuffer$1(null);
+ C.NativeUint8List_methods.setRange$3(t1, 0, $length, this.__engine$_buffer);
+ this.__engine$_buffer = t1;
+ },
+ setRange$4: function(_, start, end, source, skipCount) {
+ var t1 = this.__engine$_length;
+ if (end > t1)
+ throw H.wrapException(P.RangeError$range(end, 0, t1, null, null));
+ t1 = this.__engine$_buffer;
+ if (H._instanceType(this)._eval$1("_TypedDataBuffer<_TypedDataBuffer.E>")._is(source))
+ C.NativeUint8List_methods.setRange$4(t1, start, end, source.__engine$_buffer, skipCount);
+ else
+ C.NativeUint8List_methods.setRange$4(t1, start, end, source, skipCount);
+ },
+ setRange$3: function($receiver, start, end, source) {
+ return this.setRange$4($receiver, start, end, source, 0);
+ }
+ };
+ H._IntBuffer.prototype = {};
+ H.Uint8Buffer0.prototype = {};
+ H.MethodCall0.prototype = {
+ toString$0: function(_) {
+ return H.getRuntimeType(this).toString$0(0) + "(" + this.method + ", " + H.S(this.$arguments) + ")";
+ }
+ };
+ H.JSONMessageCodec.prototype = {
+ encodeMessage$1: function(message) {
+ return H.NativeByteData_NativeByteData$view(C.C_Utf8Encoder.convert$1(C.C_JsonCodec.encode$1(message)).buffer, 0, null);
+ },
+ decodeMessage$1: function(message) {
+ if (message == null)
+ return message;
+ return C.C_JsonCodec.decode$1(0, C.Utf8Decoder_false.convert$1(H.NativeUint8List_NativeUint8List$view(message.buffer, 0, null)));
+ }
+ };
+ H.JSONMethodCodec.prototype = {
+ encodeMethodCall$1: function($call) {
+ return C.C_JSONMessageCodec.encodeMessage$1(P.LinkedHashMap_LinkedHashMap$_literal(["method", $call.method, "args", $call.$arguments], type$.String, type$.dynamic));
+ },
+ decodeMethodCall$1: function(methodCall) {
+ var t1, method, $arguments, _null = null,
+ decoded = C.C_JSONMessageCodec.decodeMessage$1(methodCall);
+ if (!type$.Map_dynamic_dynamic._is(decoded))
+ throw H.wrapException(P.FormatException$("Expected method call Map, got " + H.S(decoded), _null, _null));
+ t1 = J.getInterceptor$asx(decoded);
+ method = t1.$index(decoded, "method");
+ $arguments = t1.$index(decoded, "args");
+ if (typeof method == "string")
+ return new H.MethodCall0(method, $arguments);
+ throw H.wrapException(P.FormatException$("Invalid method call: " + H.S(decoded), _null, _null));
+ }
+ };
+ H.StandardMessageCodec.prototype = {
+ encodeMessage$1: function(message) {
+ var buffer = H.WriteBuffer_WriteBuffer();
+ this.writeValue$2(0, buffer, true);
+ return buffer.done$0();
+ },
+ decodeMessage$1: function(message) {
+ var buffer, result;
+ if (message == null)
+ return null;
+ buffer = new H.ReadBuffer0(message);
+ result = this.readValue$1(0, buffer);
+ if (buffer.__engine$_position < message.byteLength)
+ throw H.wrapException(C.FormatException_oCg);
+ return result;
+ },
+ writeValue$2: function(_, buffer, value) {
+ var t1, t2, t3, bytes, _this = this;
+ if (value == null)
+ buffer.__engine$_buffer.__engine$_add$1(0, 0);
+ else if (H._isBool(value)) {
+ t1 = value ? 1 : 2;
+ buffer.__engine$_buffer.__engine$_add$1(0, t1);
+ } else if (typeof value == "number") {
+ t1 = buffer.__engine$_buffer;
+ t1.__engine$_add$1(0, 6);
+ buffer.__engine$_alignTo$1(8);
+ buffer.__engine$_eightBytes.setFloat64(0, value, C.C_Endian === $.$get$Endian_host());
+ t1.addAll$1(0, buffer.__engine$_eightBytesAsList);
+ } else if (H._isInt(value)) {
+ t1 = -2147483648 <= value && value <= 2147483647;
+ t2 = buffer.__engine$_buffer;
+ t3 = buffer.__engine$_eightBytes;
+ if (t1) {
+ t2.__engine$_add$1(0, 3);
+ t3.setInt32(0, value, C.C_Endian === $.$get$Endian_host());
+ t2.addAll$3(0, buffer.__engine$_eightBytesAsList, 0, 4);
+ } else {
+ t2.__engine$_add$1(0, 4);
+ C.NativeByteData_methods.setInt64$3(t3, 0, value, $.$get$Endian_host());
+ }
+ } else if (typeof value == "string") {
+ t1 = buffer.__engine$_buffer;
+ t1.__engine$_add$1(0, 7);
+ bytes = C.C_Utf8Encoder.convert$1(value);
+ _this.writeSize$2(buffer, bytes.length);
+ t1.addAll$1(0, bytes);
+ } else if (type$.Uint8List._is(value)) {
+ t1 = buffer.__engine$_buffer;
+ t1.__engine$_add$1(0, 8);
+ _this.writeSize$2(buffer, value.length);
+ t1.addAll$1(0, value);
+ } else if (type$.Int32List._is(value)) {
+ t1 = buffer.__engine$_buffer;
+ t1.__engine$_add$1(0, 9);
+ t2 = value.length;
+ _this.writeSize$2(buffer, t2);
+ buffer.__engine$_alignTo$1(4);
+ t1.addAll$1(0, H.NativeUint8List_NativeUint8List$view(value.buffer, value.byteOffset, 4 * t2));
+ } else if (type$.Float64List._is(value)) {
+ t1 = buffer.__engine$_buffer;
+ t1.__engine$_add$1(0, 11);
+ t2 = value.length;
+ _this.writeSize$2(buffer, t2);
+ buffer.__engine$_alignTo$1(8);
+ t1.addAll$1(0, H.NativeUint8List_NativeUint8List$view(value.buffer, value.byteOffset, 8 * t2));
+ } else if (type$.List_dynamic._is(value)) {
+ buffer.__engine$_buffer.__engine$_add$1(0, 12);
+ t1 = J.getInterceptor$asx(value);
+ _this.writeSize$2(buffer, t1.get$length(value));
+ for (t1 = t1.get$iterator(value); t1.moveNext$0();)
+ _this.writeValue$2(0, buffer, t1.get$current(t1));
+ } else if (type$.Map_dynamic_dynamic._is(value)) {
+ buffer.__engine$_buffer.__engine$_add$1(0, 13);
+ t1 = J.getInterceptor$asx(value);
+ _this.writeSize$2(buffer, t1.get$length(value));
+ t1.forEach$1(value, new H.StandardMessageCodec_writeValue_closure0(_this, buffer));
+ } else
+ throw H.wrapException(P.ArgumentError$value(value, null, null));
+ },
+ readValue$1: function(_, buffer) {
+ if (!(buffer.__engine$_position < buffer.data.byteLength))
+ throw H.wrapException(C.FormatException_oCg);
+ return this.readValueOfType$2(buffer.getUint8$0(0), buffer);
+ },
+ readValueOfType$2: function(type, buffer) {
+ var result, value, $length, t1, list, i, t2, t3, _this = this;
+ switch (type) {
+ case 0:
+ result = null;
+ break;
+ case 1:
+ result = true;
+ break;
+ case 2:
+ result = false;
+ break;
+ case 3:
+ value = buffer.data.getInt32(buffer.__engine$_position, C.C_Endian === $.$get$Endian_host());
+ buffer.__engine$_position += 4;
+ result = value;
+ break;
+ case 4:
+ result = buffer.getInt64$0(0);
+ break;
+ case 5:
+ $length = _this.readSize$1(buffer);
+ result = P.int_parse(C.Utf8Decoder_false.convert$1(buffer.getUint8List$1($length)), 16);
+ break;
+ case 6:
+ buffer.__engine$_alignTo$1(8);
+ value = buffer.data.getFloat64(buffer.__engine$_position, C.C_Endian === $.$get$Endian_host());
+ buffer.__engine$_position += 8;
+ result = value;
+ break;
+ case 7:
+ $length = _this.readSize$1(buffer);
+ result = C.Utf8Decoder_false.convert$1(buffer.getUint8List$1($length));
+ break;
+ case 8:
+ result = buffer.getUint8List$1(_this.readSize$1(buffer));
+ break;
+ case 9:
+ $length = _this.readSize$1(buffer);
+ buffer.__engine$_alignTo$1(4);
+ t1 = buffer.data;
+ list = H.NativeInt32List_NativeInt32List$view(t1.buffer, t1.byteOffset + buffer.__engine$_position, $length);
+ buffer.__engine$_position = buffer.__engine$_position + 4 * $length;
+ result = list;
+ break;
+ case 10:
+ result = buffer.getInt64List$1(_this.readSize$1(buffer));
+ break;
+ case 11:
+ $length = _this.readSize$1(buffer);
+ buffer.__engine$_alignTo$1(8);
+ t1 = buffer.data;
+ list = H.NativeFloat64List_NativeFloat64List$view(t1.buffer, t1.byteOffset + buffer.__engine$_position, $length);
+ buffer.__engine$_position = buffer.__engine$_position + 8 * $length;
+ result = list;
+ break;
+ case 12:
+ $length = _this.readSize$1(buffer);
+ result = [];
+ for (t1 = buffer.data, i = 0; i < $length; ++i) {
+ t2 = buffer.__engine$_position;
+ if (!(t2 < t1.byteLength))
+ H.throwExpression(C.FormatException_oCg);
+ buffer.__engine$_position = t2 + 1;
+ result.push(_this.readValueOfType$2(t1.getUint8(t2), buffer));
+ }
+ break;
+ case 13:
+ $length = _this.readSize$1(buffer);
+ t1 = type$.dynamic;
+ result = P.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
+ for (t1 = buffer.data, i = 0; i < $length; ++i) {
+ t2 = buffer.__engine$_position;
+ if (!(t2 < t1.byteLength))
+ H.throwExpression(C.FormatException_oCg);
+ buffer.__engine$_position = t2 + 1;
+ t2 = _this.readValueOfType$2(t1.getUint8(t2), buffer);
+ t3 = buffer.__engine$_position;
+ if (!(t3 < t1.byteLength))
+ H.throwExpression(C.FormatException_oCg);
+ buffer.__engine$_position = t3 + 1;
+ result.$indexSet(0, t2, _this.readValueOfType$2(t1.getUint8(t3), buffer));
+ }
+ break;
+ default:
+ throw H.wrapException(C.FormatException_oCg);
+ }
+ return result;
+ },
+ writeSize$2: function(buffer, value) {
+ var t1, t2, t3;
+ if (value < 254)
+ buffer.__engine$_buffer.__engine$_add$1(0, value);
+ else {
+ t1 = buffer.__engine$_buffer;
+ t2 = buffer.__engine$_eightBytes;
+ t3 = buffer.__engine$_eightBytesAsList;
+ if (value <= 65535) {
+ t1.__engine$_add$1(0, 254);
+ t2.setUint16(0, value, C.C_Endian === $.$get$Endian_host());
+ t1.addAll$3(0, t3, 0, 2);
+ } else {
+ t1.__engine$_add$1(0, 255);
+ t2.setUint32(0, value, C.C_Endian === $.$get$Endian_host());
+ t1.addAll$3(0, t3, 0, 4);
+ }
+ }
+ },
+ readSize$1: function(buffer) {
+ var value = buffer.getUint8$0(0);
+ switch (value) {
+ case 254:
+ value = buffer.data.getUint16(buffer.__engine$_position, C.C_Endian === $.$get$Endian_host());
+ buffer.__engine$_position += 2;
+ return value;
+ case 255:
+ value = buffer.data.getUint32(buffer.__engine$_position, C.C_Endian === $.$get$Endian_host());
+ buffer.__engine$_position += 4;
+ return value;
+ default:
+ return value;
+ }
+ }
+ };
+ H.StandardMessageCodec_writeValue_closure0.prototype = {
+ call$2: function(key, value) {
+ var t1 = this.$this,
+ t2 = this.buffer;
+ t1.writeValue$2(0, t2, key);
+ t1.writeValue$2(0, t2, value);
+ },
+ $signature: 31
+ };
+ H.StandardMethodCodec.prototype = {
+ decodeMethodCall$1: function(methodCall) {
+ var buffer, method, $arguments;
+ methodCall.toString;
+ buffer = new H.ReadBuffer0(methodCall);
+ method = C.C_StandardMessageCodec0.readValue$1(0, buffer);
+ $arguments = C.C_StandardMessageCodec0.readValue$1(0, buffer);
+ if (typeof method == "string" && !(buffer.__engine$_position < methodCall.byteLength))
+ return new H.MethodCall0(method, $arguments);
+ else
+ throw H.wrapException(C.FormatException_Qi2);
+ },
+ encodeSuccessEnvelope$1: function(result) {
+ var buffer = H.WriteBuffer_WriteBuffer();
+ buffer.__engine$_buffer.__engine$_add$1(0, 0);
+ C.C_StandardMessageCodec0.writeValue$2(0, buffer, result);
+ return buffer.done$0();
+ },
+ encodeErrorEnvelope$3$code$details$message: function(code, details, message) {
+ var buffer = H.WriteBuffer_WriteBuffer();
+ buffer.__engine$_buffer.__engine$_add$1(0, 1);
+ C.C_StandardMessageCodec0.writeValue$2(0, buffer, code);
+ C.C_StandardMessageCodec0.writeValue$2(0, buffer, message);
+ C.C_StandardMessageCodec0.writeValue$2(0, buffer, details);
+ return buffer.done$0();
+ },
+ encodeErrorEnvelope$2$code$message: function(code, message) {
+ return this.encodeErrorEnvelope$3$code$details$message(code, null, message);
+ }
+ };
+ H.WriteBuffer0.prototype = {
+ __engine$_alignTo$1: function(alignment) {
+ var t2, i,
+ t1 = this.__engine$_buffer,
+ mod = C.JSInt_methods.$mod(t1.__engine$_length, alignment);
+ if (mod !== 0)
+ for (t2 = alignment - mod, i = 0; i < t2; ++i)
+ t1.__engine$_add$1(0, 0);
+ },
+ done$0: function() {
+ var t1, t2;
+ this._debugFinalized = true;
+ t1 = this.__engine$_buffer;
+ t2 = t1.__engine$_buffer;
+ return H.NativeByteData_NativeByteData$view(t2.buffer, 0, t1.__engine$_length * t2.BYTES_PER_ELEMENT);
+ }
+ };
+ H.ReadBuffer0.prototype = {
+ getUint8$0: function(_) {
+ return this.data.getUint8(this.__engine$_position++);
+ },
+ getInt64$0: function(_) {
+ var t1 = this.data;
+ (t1 && C.NativeByteData_methods).getInt64$2(t1, this.__engine$_position, $.$get$Endian_host());
+ },
+ getUint8List$1: function($length) {
+ var _this = this,
+ t1 = _this.data,
+ list = H.NativeUint8List_NativeUint8List$view(t1.buffer, t1.byteOffset + _this.__engine$_position, $length);
+ _this.__engine$_position = _this.__engine$_position + $length;
+ return list;
+ },
+ getInt64List$1: function($length) {
+ var t1;
+ this.__engine$_alignTo$1(8);
+ t1 = this.data;
+ C.NativeByteBuffer_methods.asInt64List$2(t1.buffer, t1.byteOffset + this.__engine$_position, $length);
+ },
+ __engine$_alignTo$1: function(alignment) {
+ var t1 = this.__engine$_position,
+ mod = C.JSInt_methods.$mod(t1, alignment);
+ if (mod !== 0)
+ this.__engine$_position = t1 + (alignment - mod);
+ }
+ };
+ H.SurfaceShadowData.prototype = {};
+ H.FontCollection.prototype = {
+ registerFonts$1: function(assetManager) {
+ return this.registerFonts$body$FontCollection(assetManager);
+ },
+ registerFonts$body$FontCollection: function(assetManager) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], $async$self = this, e, exception, t1, fontManifest, t2, cur, t3, family, fontAssetItem, t4, asset, descriptors, t5, t6, byteData, $async$exception;
+ var $async$registerFonts$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ byteData = null;
+ $async$handler = 4;
+ $async$goto = 7;
+ return P._asyncAwait(assetManager.load$1(0, "FontManifest.json"), $async$registerFonts$1);
+ case 7:
+ // returning from await.
+ byteData = $async$result;
+ $async$handler = 2;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 4:
+ // catch
+ $async$handler = 3;
+ $async$exception = $async$currentError;
+ t1 = H.unwrapException($async$exception);
+ if (t1 instanceof H.AssetManagerException) {
+ e = t1;
+ if (e.httpStatus === 404) {
+ t1 = "Font manifest does not exist at `" + H.S(e.url) + "` \u2013 ignoring.";
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ // goto return
+ $async$goto = 1;
+ break;
+ } else
+ throw $async$exception;
+ } else
+ throw $async$exception;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 3:
+ // uncaught
+ // goto rethrow
+ $async$goto = 2;
+ break;
+ case 6:
+ // after finally
+ fontManifest = C.C_JsonCodec.decode$1(0, C.C_Utf8Codec.decode$1(0, H.NativeUint8List_NativeUint8List$view(byteData.buffer, 0, null)));
+ if (fontManifest == null)
+ throw H.wrapException(P.AssertionError$("There was a problem trying to load FontManifest.json"));
+ if ($.$get$supportsFontLoadingApi())
+ $async$self._assetFontManager = H.FontManager_FontManager();
+ else
+ $async$self._assetFontManager = new H._PolyfillFontManager(H.setRuntimeTypeInfo([], type$.JSArray_Future_void));
+ for (t1 = J.cast$1$0$ax(fontManifest, type$.Map_String_dynamic), t1 = new H.ListIterator(t1, t1.get$length(t1)), t2 = type$.String; t1.moveNext$0();) {
+ cur = t1._current;
+ t3 = J.getInterceptor$asx(cur);
+ family = t3.$index(cur, "family");
+ for (t3 = J.get$iterator$ax(t3.$index(cur, "fonts")); t3.moveNext$0();) {
+ fontAssetItem = t3.get$current(t3);
+ t4 = J.getInterceptor$asx(fontAssetItem);
+ asset = t4.$index(fontAssetItem, "asset");
+ descriptors = P.LinkedHashMap_LinkedHashMap$_empty(t2, t2);
+ for (t5 = J.get$iterator$ax(t4.get$keys(fontAssetItem)); t5.moveNext$0();) {
+ t6 = t5.get$current(t5);
+ if (t6 !== "asset")
+ descriptors.$indexSet(0, t6, H.S(t4.$index(fontAssetItem, t6)));
+ }
+ t4 = $async$self._assetFontManager;
+ t4.toString;
+ family.toString;
+ t4.registerAsset$3(family, "url(" + H.S(assetManager.getAssetUrl$1(asset)) + ")", descriptors);
+ }
+ }
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$registerFonts$1, $async$completer);
+ },
+ ensureFontsLoaded$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t1;
+ var $async$ensureFontsLoaded$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._assetFontManager;
+ $async$goto = 2;
+ return P._asyncAwait(t1 == null ? null : P.Future_wait(t1._fontLoadingFutures, type$.void), $async$ensureFontsLoaded$0);
+ case 2:
+ // returning from await.
+ t1 = $async$self._testFontManager;
+ $async$goto = 3;
+ return P._asyncAwait(t1 == null ? null : P.Future_wait(t1._fontLoadingFutures, type$.void), $async$ensureFontsLoaded$0);
+ case 3:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$ensureFontsLoaded$0, $async$completer);
+ }
+ };
+ H.FontManager.prototype = {
+ registerAsset$3: function(family, asset, descriptors) {
+ var t1 = $.$get$FontManager_startWithDigit()._nativeRegExp;
+ if (typeof family != "string")
+ H.throwExpression(H.argumentErrorValue(family));
+ if (t1.test(family) || $.$get$FontManager_notPunctuation().stringMatch$1(family) != family)
+ this._loadFontFace$3("'" + H.S(family) + "'", asset, descriptors);
+ this._loadFontFace$3(family, asset, descriptors);
+ },
+ _loadFontFace$3: function(family, asset, descriptors) {
+ var fontFace, e, exception, t1;
+ try {
+ fontFace = W.FontFace_FontFace(family, asset, descriptors);
+ this._fontLoadingFutures.push(P.promiseToFuture(fontFace.load(), type$.FontFace).then$1$2$onError(0, new H.FontManager__loadFontFace_closure(fontFace), new H.FontManager__loadFontFace_closure0(family), type$.void));
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ window;
+ t1 = 'Error while loading font family "' + H.S(family) + '":\n' + H.S(e);
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ }
+ }
+ };
+ H.FontManager__loadFontFace_closure.prototype = {
+ call$1: function(_) {
+ document.fonts.add(this.fontFace);
+ },
+ $signature: 306
+ };
+ H.FontManager__loadFontFace_closure0.prototype = {
+ call$1: function(e) {
+ var t1;
+ window;
+ t1 = 'Error while trying to load font family "' + H.S(this.family) + '":\n' + H.S(e);
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ },
+ $signature: 3
+ };
+ H._PolyfillFontManager.prototype = {
+ registerAsset$3: function(family, asset, descriptors) {
+ var fallbackFontName, t4, sansSerifWidth, fontStyleMap, t5, fontFaceDeclaration, fontLoadStyle, _s5_ = "style", _s6_ = "weight", t1 = {},
+ t2 = document,
+ paragraph = t2.createElement("p"),
+ t3 = paragraph.style;
+ t3.position = "absolute";
+ t3 = paragraph.style;
+ t3.visibility = "hidden";
+ t3 = paragraph.style;
+ t3.fontSize = "72px";
+ t3 = H._browserEngine();
+ fallbackFontName = t3 === C.BrowserEngine_4 ? "Times New Roman" : "sans-serif";
+ t3 = paragraph.style;
+ t3.fontFamily = fallbackFontName;
+ if (descriptors.$index(0, _s5_) != null) {
+ t3 = paragraph.style;
+ t4 = descriptors.$index(0, _s5_);
+ t3.toString;
+ t3.fontStyle = t4 == null ? "" : t4;
+ }
+ if (descriptors.$index(0, _s6_) != null) {
+ t3 = paragraph.style;
+ t4 = descriptors.$index(0, _s6_);
+ t3.toString;
+ t3.fontWeight = t4 == null ? "" : t4;
+ }
+ paragraph.textContent = "giItT1WQy@!-/#";
+ t2.body.appendChild(paragraph);
+ sansSerifWidth = C.JSNumber_methods.round$0(paragraph.offsetWidth);
+ t3 = paragraph.style;
+ t4 = "'" + H.S(family) + "', " + fallbackFontName;
+ t3.fontFamily = t4;
+ t3 = new P._Future($.Zone__current, type$._Future_void);
+ t1._fontLoadStart = null;
+ t1.__fontLoadStart_isSet = false;
+ t4 = type$.String;
+ fontStyleMap = P.LinkedHashMap_LinkedHashMap$_empty(t4, type$.nullable_String);
+ fontStyleMap.$indexSet(0, "font-family", "'" + H.S(family) + "'");
+ fontStyleMap.$indexSet(0, "src", asset);
+ if (descriptors.$index(0, _s5_) != null)
+ fontStyleMap.$indexSet(0, "font-style", descriptors.$index(0, _s5_));
+ if (descriptors.$index(0, _s6_) != null)
+ fontStyleMap.$indexSet(0, "font-weight", descriptors.$index(0, _s6_));
+ t5 = fontStyleMap.get$keys(fontStyleMap);
+ fontFaceDeclaration = H.MappedIterable_MappedIterable(t5, new H._PolyfillFontManager_registerAsset_closure(fontStyleMap), H._instanceType(t5)._eval$1("Iterable.E"), t4).join$1(0, " ");
+ fontLoadStyle = t2.createElement("style");
+ fontLoadStyle.type = "text/css";
+ C.StyleElement_methods.setInnerHtml$1(fontLoadStyle, "@font-face { " + fontFaceDeclaration + " }");
+ t2.head.appendChild(fontLoadStyle);
+ if (C.JSString_methods.contains$1(family.toLowerCase(), "icon")) {
+ C.ParagraphElement_methods.remove$0(paragraph);
+ return;
+ }
+ new H._PolyfillFontManager_registerAsset___fontLoadStart_set(t1).call$1(new P.DateTime(Date.now(), false));
+ new H._PolyfillFontManager_registerAsset__watchWidth(paragraph, sansSerifWidth, new P._AsyncCompleter(t3, type$._AsyncCompleter_void), new H._PolyfillFontManager_registerAsset___fontLoadStart_get(t1), family).call$0();
+ this._fontLoadingFutures.push(t3);
+ }
+ };
+ H._PolyfillFontManager_registerAsset___fontLoadStart_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2.__fontLoadStart_isSet = true;
+ return t2._fontLoadStart = t1;
+ },
+ $signature: 305
+ };
+ H._PolyfillFontManager_registerAsset___fontLoadStart_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1.__fontLoadStart_isSet ? t1._fontLoadStart : H.throwExpression(H.LateError$localNI("_fontLoadStart"));
+ },
+ $signature: 103
+ };
+ H._PolyfillFontManager_registerAsset__watchWidth.prototype = {
+ call$0: function() {
+ var _this = this,
+ t1 = _this.paragraph;
+ if (C.JSNumber_methods.round$0(t1.offsetWidth) !== _this.sansSerifWidth) {
+ C.ParagraphElement_methods.remove$0(t1);
+ _this.completer.complete$0(0);
+ } else if (P.Duration$(0, Date.now() - _this.__fontLoadStart_get.call$0()._core$_value, 0)._duration > 2000000) {
+ _this.completer.complete$0(0);
+ throw H.wrapException(P.Exception_Exception("Timed out trying to load font: " + H.S(_this.family)));
+ } else
+ P.Timer_Timer(C.Duration_50000, _this);
+ },
+ $signature: 0
+ };
+ H._PolyfillFontManager_registerAsset_closure.prototype = {
+ call$1: function($name) {
+ return H.S($name) + ": " + H.S(this.fontStyleMap.$index(0, $name)) + ";";
+ },
+ $signature: 38
+ };
+ H.LineCharProperty.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.LineBreakType.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.LineBreakResult.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.index, _this.indexWithoutTrailingNewlines, _this.indexWithoutTrailingSpaces, _this.type, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof H.LineBreakResult && other.index === _this.index && other.indexWithoutTrailingNewlines === _this.indexWithoutTrailingNewlines && other.indexWithoutTrailingSpaces === _this.indexWithoutTrailingSpaces && other.type === _this.type;
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.RulerManager.prototype = {
+ _scheduleRulerCacheCleanup$0: function() {
+ if (!this._rulerCacheCleanupScheduled) {
+ this._rulerCacheCleanupScheduled = true;
+ P.scheduleMicrotask(new H.RulerManager__scheduleRulerCacheCleanup_closure(this));
+ }
+ },
+ dispose$0: function(_) {
+ J.remove$0$ax(this._rulerHost);
+ },
+ _evictAllRulers$0: function() {
+ this._rulers.forEach$1(0, new H.RulerManager__evictAllRulers_closure());
+ this._rulers = P.LinkedHashMap_LinkedHashMap$_empty(type$.ParagraphGeometricStyle, type$.ParagraphRuler);
+ },
+ cleanUpRulerCache$0: function() {
+ var t2, sortedByUsage, i, ruler, _this = this,
+ t1 = $.$get$window().get$physicalSize();
+ if (t1.get$isEmpty(t1)) {
+ _this._evictAllRulers$0();
+ return;
+ }
+ t1 = _this._rulers;
+ t2 = _this.rulerCacheCapacity;
+ if (t1.get$length(t1) > t2) {
+ t1 = _this._rulers;
+ t1 = t1.get$values(t1);
+ sortedByUsage = P.List_List$of(t1, true, H._instanceType(t1)._eval$1("Iterable.E"));
+ C.JSArray_methods.sort$1(sortedByUsage, new H.RulerManager_cleanUpRulerCache_closure());
+ _this._rulers = P.LinkedHashMap_LinkedHashMap$_empty(type$.ParagraphGeometricStyle, type$.ParagraphRuler);
+ for (i = 0; i < sortedByUsage.length; ++i) {
+ ruler = sortedByUsage[i];
+ ruler._hitCount = 0;
+ if (i < t2)
+ _this._rulers.$indexSet(0, ruler.style, ruler);
+ else
+ ruler.dispose$0(0);
+ }
+ }
+ },
+ findOrCreateRuler$1: function(style) {
+ var t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, elementStyle, _this = this, _s6_ = "hidden",
+ _s8_ = "absolute",
+ _s1_ = "0", _s4_ = "flex",
+ _s14_ = "flex-direction",
+ _s8_0 = "baseline",
+ _s11_ = "align-items",
+ ruler = _this._rulers.$index(0, style);
+ if (ruler == null) {
+ t1 = _this._rulers;
+ t2 = document;
+ t3 = t2.createElement("div");
+ t4 = t2.createElement("div");
+ t5 = t2.createElement("p");
+ t6 = new H.TextDimensions(t5);
+ t7 = t2.createElement("div");
+ t8 = t2.createElement("p");
+ t9 = new H.TextDimensions(t8);
+ t10 = t2.createElement("div");
+ t2 = t2.createElement("p");
+ t11 = new H.TextDimensions(t2);
+ ruler = new H.ParagraphRuler(style, _this, t3, t4, t6, t7, t9, t10, t11, P.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_String, type$.List_nullable_MeasurementResult), H.setRuntimeTypeInfo([], type$.JSArray_nullable_String));
+ t12 = t4.style;
+ t12.visibility = _s6_;
+ t12.position = _s8_;
+ t12.top = _s1_;
+ t12.left = _s1_;
+ t12.display = _s4_;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t12, C.CssStyleDeclaration_methods._browserPropertyName$1(t12, _s14_), "row", "");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t12, C.CssStyleDeclaration_methods._browserPropertyName$1(t12, _s11_), _s8_0, "");
+ t12.margin = _s1_;
+ t12.border = _s1_;
+ t12.padding = _s1_;
+ t6.applyStyle$1(style);
+ t12 = t5.style;
+ t12.whiteSpace = "pre";
+ t4.appendChild(t5);
+ t6._cachedBoundingClientRect = null;
+ t5 = _this._rulerHost;
+ t5.appendChild(t4);
+ t4.appendChild(t3);
+ t3 = t7.style;
+ t3.visibility = _s6_;
+ t3.position = _s8_;
+ t3.top = _s1_;
+ t3.left = _s1_;
+ t3.display = _s4_;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t3, C.CssStyleDeclaration_methods._browserPropertyName$1(t3, _s14_), "row", "");
+ t3.margin = _s1_;
+ t3.border = _s1_;
+ t3.padding = _s1_;
+ t9.applyStyle$1(style);
+ t3 = t8.style;
+ t3.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t3, C.CssStyleDeclaration_methods._browserPropertyName$1(t3, _s4_), _s1_, "");
+ t3.display = "inline";
+ t3.whiteSpace = "pre-line";
+ t7.appendChild(t8);
+ t5.appendChild(t7);
+ t3 = t10.style;
+ t3.visibility = _s6_;
+ t3.position = _s8_;
+ t3.top = _s1_;
+ t3.left = _s1_;
+ t3.display = _s4_;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t3, C.CssStyleDeclaration_methods._browserPropertyName$1(t3, _s14_), "row", "");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t3, C.CssStyleDeclaration_methods._browserPropertyName$1(t3, _s11_), _s8_0, "");
+ t3.margin = _s1_;
+ t3.border = _s1_;
+ t3.padding = _s1_;
+ t11.applyStyle$1(style);
+ elementStyle = t2.style;
+ elementStyle.display = "block";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "overflow-wrap"), "break-word", "");
+ if (style.ellipsis != null) {
+ elementStyle.overflow = _s6_;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "text-overflow"), "ellipsis", "");
+ }
+ t10.appendChild(t2);
+ t11._cachedBoundingClientRect = null;
+ t5.appendChild(t10);
+ t1.$indexSet(0, style, ruler);
+ _this._scheduleRulerCacheCleanup$0();
+ }
+ ++ruler._hitCount;
+ return ruler;
+ }
+ };
+ H.RulerManager__scheduleRulerCacheCleanup_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._rulerCacheCleanupScheduled = false;
+ t1.cleanUpRulerCache$0();
+ },
+ $signature: 0
+ };
+ H.RulerManager__evictAllRulers_closure.prototype = {
+ call$2: function(style, ruler) {
+ ruler.dispose$0(0);
+ },
+ $signature: 302
+ };
+ H.RulerManager_cleanUpRulerCache_closure.prototype = {
+ call$2: function(a, b) {
+ return b._hitCount - a._hitCount;
+ },
+ $signature: 293
+ };
+ H.TextMeasurementService.prototype = {
+ measure$2: function(_, paragraph, constraints) {
+ var ruler = $.TextMeasurementService_rulerManager.findOrCreateRuler$1(paragraph._geometricStyle),
+ result = ruler.cacheLookup$2(paragraph, constraints);
+ if (result != null)
+ return result;
+ result = this._doMeasure$3(paragraph, constraints, ruler);
+ ruler.cacheMeasurement$2(paragraph, result);
+ return result;
+ }
+ };
+ H.DomTextMeasurementService.prototype = {
+ _doMeasure$3: function(paragraph, constraints, ruler) {
+ var plainText, t1, t2, t3, width, t4, alphabeticBaseline, height, maxIntrinsicWidth, alignOffset, lines, result, naturalHeight, maxLines, lineHeight, _null = null;
+ ruler.__engine$_paragraph = paragraph;
+ plainText = paragraph._plainText;
+ ruler.measureAsSingleLine$0();
+ t1 = ruler.minIntrinsicDimensions;
+ t2 = ruler.__engine$_paragraph;
+ t2.toString;
+ t1.updateText$2(t2, ruler.style);
+ ruler.measureWithConstraints$1(constraints);
+ t2 = plainText == null;
+ t3 = t2 ? _null : C.JSString_methods.contains$1(plainText, "\n");
+ if (t3 !== true) {
+ t3 = ruler.singleLineDimensions._readAndCacheMetrics$0().width;
+ t3.toString;
+ t3 = t3 <= constraints.width;
+ } else
+ t3 = false;
+ width = constraints.width;
+ t4 = ruler.singleLineDimensions;
+ if (t3) {
+ t1 = t1._readAndCacheMetrics$0().width;
+ t1.toString;
+ t3 = t4._readAndCacheMetrics$0().width;
+ t3.toString;
+ alphabeticBaseline = ruler.get$alphabeticBaseline(ruler);
+ height = t4.get$height(t4);
+ maxIntrinsicWidth = H.DomTextMeasurementService__applySubPixelRoundingHack(t1, t3);
+ if (!t2) {
+ alignOffset = H._calculateAlignOffsetForLine(maxIntrinsicWidth, width, paragraph);
+ t2 = plainText.length;
+ lines = H.setRuntimeTypeInfo([H.EngineLineMetrics$withText(plainText, t2, H._excludeTrailing(plainText, 0, t2, H._engine___newlinePredicate$closure()), true, alignOffset, 0, 0, maxIntrinsicWidth, maxIntrinsicWidth)], type$.JSArray_EngineLineMetrics);
+ } else
+ lines = _null;
+ result = H.MeasurementResult$(width, alphabeticBaseline, height, alphabeticBaseline * 1.1662499904632568, true, height, lines, maxIntrinsicWidth, t1, height, ruler.measurePlaceholderBoxes$0(), paragraph._textAlign, paragraph._textDirection, width);
+ } else {
+ t1 = t1._readAndCacheMetrics$0().width;
+ t1.toString;
+ t4 = t4._readAndCacheMetrics$0().width;
+ t4.toString;
+ alphabeticBaseline = ruler.get$alphabeticBaseline(ruler);
+ t2 = ruler.constrainedDimensions;
+ naturalHeight = t2.get$height(t2);
+ maxLines = paragraph._geometricStyle.maxLines;
+ if (maxLines == null) {
+ lineHeight = _null;
+ height = naturalHeight;
+ } else {
+ t2 = ruler.get$lineHeightDimensions();
+ lineHeight = t2.get$height(t2);
+ height = Math.min(H.checkNum(naturalHeight), maxLines * lineHeight);
+ }
+ result = H.MeasurementResult$(width, alphabeticBaseline, height, alphabeticBaseline * 1.1662499904632568, false, lineHeight, _null, H.DomTextMeasurementService__applySubPixelRoundingHack(t1, t4), t1, naturalHeight, ruler.measurePlaceholderBoxes$0(), paragraph._textAlign, paragraph._textDirection, width);
+ }
+ ruler.didMeasure$0();
+ return result;
+ },
+ measureSubstringWidth$3: function(paragraph, start, end) {
+ var text,
+ style = paragraph._geometricStyle,
+ ruler = $.TextMeasurementService_rulerManager.findOrCreateRuler$1(style),
+ t1 = paragraph._plainText;
+ t1.toString;
+ text = C.JSString_methods.substring$2(t1, start, end);
+ ruler.__engine$_paragraph = new H.DomParagraph(type$.HtmlElement._as(paragraph._paragraphElement.cloneNode(true)), style, text, paragraph._paint, paragraph._textAlign, paragraph._textDirection, paragraph._background, paragraph.placeholderCount);
+ ruler.measureAsSingleLine$0();
+ ruler.didMeasure$0();
+ t1 = ruler.singleLineDimensions._readAndCacheMetrics$0().width;
+ t1.toString;
+ return t1;
+ },
+ getTextPositionForOffset$3: function(paragraph, constraints, offset) {
+ var position,
+ ruler = $.TextMeasurementService_rulerManager.findOrCreateRuler$1(paragraph._geometricStyle);
+ ruler.__engine$_paragraph = paragraph;
+ constraints.toString;
+ position = ruler.hitTest$2(constraints, offset);
+ ruler.didMeasure$0();
+ return new P.TextPosition(position, C.TextAffinity_1);
+ },
+ get$isCanvas: function() {
+ return false;
+ }
+ };
+ H.CanvasTextMeasurementService.prototype = {
+ _doMeasure$3: function(paragraph, constraints, ruler) {
+ var style, t2, t3, linesCalculator, maxIntrinsicCalculator, reachedEndOfText, i, t4, t5, brk, chunkEnd, width, lineCount, lineHeight, naturalHeight, maxLines, height,
+ t1 = paragraph._plainText;
+ t1.toString;
+ style = paragraph._geometricStyle;
+ t2 = this._canvasContext;
+ t2.font = style.get$cssFontString();
+ t3 = constraints.width;
+ linesCalculator = new H.LinesCalculator(t2, paragraph, t3, H.setRuntimeTypeInfo([], type$.JSArray_EngineLineMetrics), C.LineBreakResult_Z8h, C.LineBreakResult_Z8h);
+ maxIntrinsicCalculator = new H.MaxIntrinsicCalculator(t2, t1, style);
+ for (reachedEndOfText = false, i = 0, t4 = 0, t5 = 0; !reachedEndOfText; t5 = chunkEnd, i = t5) {
+ brk = H.nextLineBreak(t1, i);
+ linesCalculator.update$1(0, brk);
+ chunkEnd = brk.index;
+ width = H._measureSubstring(t2, style, t1, t5, brk.indexWithoutTrailingSpaces);
+ if (width > t4)
+ t4 = width;
+ maxIntrinsicCalculator.update$1(0, brk);
+ if (brk.type === C.LineBreakType_2)
+ reachedEndOfText = true;
+ }
+ t1 = linesCalculator.lines;
+ lineCount = t1.length;
+ t2 = ruler.get$lineHeightDimensions();
+ lineHeight = t2.get$height(t2);
+ naturalHeight = lineCount * lineHeight;
+ maxLines = style.maxLines;
+ height = maxLines == null ? naturalHeight : Math.min(lineCount, maxLines) * lineHeight;
+ return H.MeasurementResult$(t3, ruler.get$alphabeticBaseline(ruler), height, ruler.get$alphabeticBaseline(ruler) * 1.1662499904632568, lineCount === 1, lineHeight, t1, maxIntrinsicCalculator.value, t4, naturalHeight, H.setRuntimeTypeInfo([], type$.JSArray_TextBox), paragraph._textAlign, paragraph._textDirection, t3);
+ },
+ measureSubstringWidth$3: function(paragraph, start, end) {
+ var style, t2,
+ t1 = paragraph._plainText;
+ t1.toString;
+ style = paragraph._geometricStyle;
+ t2 = this._canvasContext;
+ t2.font = style.get$cssFontString();
+ return H._measureSubstring(t2, style, t1, start, end);
+ },
+ getTextPositionForOffset$3: function(paragraph, constraints, offset) {
+ return C.TextPosition_0_TextAffinity_1;
+ },
+ get$isCanvas: function() {
+ return true;
+ }
+ };
+ H.LinesCalculator.prototype = {
+ get$_ellipsisWidth: function() {
+ var _this = this,
+ t1 = _this._cachedEllipsisWidth;
+ if (t1 == null) {
+ t1 = _this.__engine$_paragraph._geometricStyle.ellipsis;
+ t1.toString;
+ t1 = _this._cachedEllipsisWidth = C.JSNumber_methods.round$0(_this._canvasContext.measureText(t1).width * 100) / 100;
+ }
+ return t1;
+ },
+ update$1: function(_, brk) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, isLastLine, breakingPoint, widthOfResultingLine, alignOffset, _this = this,
+ t1 = brk.type,
+ isHardBreak = t1 === C.LineBreakType_1 || t1 === C.LineBreakType_2,
+ chunkEnd = brk.index,
+ chunkEndWithoutNewlines = brk.indexWithoutTrailingNewlines,
+ chunkEndWithoutSpace = brk.indexWithoutTrailingSpaces;
+ for (t1 = _this.__engine$_paragraph, t2 = t1._geometricStyle, t3 = t2.ellipsis, t4 = t3 != null, t5 = _this._maxWidth, t6 = _this._canvasContext, t7 = t1._plainText, t8 = t2.maxLines, t9 = t8 == null, t10 = _this.lines; !_this._reachedMaxLines;) {
+ t11 = _this._lastTakenBreak;
+ t7.toString;
+ if (H._measureSubstring(t6, t2, t7, t11.index, chunkEndWithoutSpace) <= t5)
+ break;
+ t11 = _this._lastBreak;
+ t12 = _this._lastTakenBreak.index;
+ isLastLine = t4 && t9 || t10.length + 1 === t8;
+ _this._reachedMaxLines = isLastLine;
+ if (isLastLine && t4) {
+ breakingPoint = _this.forceBreakSubstring$3$end$maxWidth$start(chunkEndWithoutSpace, t5 - _this.get$_ellipsisWidth(), _this._lastTakenBreak.index);
+ widthOfResultingLine = H._measureSubstring(t6, t2, t7, _this._lastTakenBreak.index, breakingPoint) + _this.get$_ellipsisWidth();
+ alignOffset = H._calculateAlignOffsetForLine(widthOfResultingLine, t5, t1);
+ t11 = _this._lastTakenBreak.index;
+ t10.push(new H.EngineLineMetrics(C.JSString_methods.substring$2(t7, t11, breakingPoint) + t3, t11, chunkEnd, chunkEndWithoutNewlines, false, widthOfResultingLine, widthOfResultingLine, alignOffset, t10.length));
+ } else if (t11.index === t12) {
+ breakingPoint = _this.forceBreakSubstring$3$end$maxWidth$start(chunkEndWithoutSpace, t5, t12);
+ if (breakingPoint === chunkEndWithoutSpace)
+ break;
+ _this._addLineBreak$1(new H.LineBreakResult(breakingPoint, breakingPoint, breakingPoint, C.LineBreakType_0));
+ } else
+ _this._addLineBreak$1(t11);
+ }
+ if (_this._reachedMaxLines)
+ return;
+ if (isHardBreak)
+ _this._addLineBreak$1(brk);
+ _this._lastBreak = brk;
+ },
+ _addLineBreak$1: function(brk) {
+ var lineWidth, lineWidthWithTrailingSpaces, alignOffset, isHardBreak, _this = this,
+ t1 = _this.lines,
+ lineNumber = t1.length,
+ t2 = _this._lastTakenBreak,
+ t3 = _this._canvasContext,
+ t4 = _this.__engine$_paragraph,
+ t5 = t4._geometricStyle,
+ t6 = t4._plainText;
+ t6.toString;
+ lineWidth = H._measureSubstring(t3, t5, t6, t2.index, brk.indexWithoutTrailingSpaces);
+ t2 = brk.indexWithoutTrailingNewlines;
+ lineWidthWithTrailingSpaces = H._measureSubstring(t3, t5, t6, _this._lastTakenBreak.index, t2);
+ alignOffset = H._calculateAlignOffsetForLine(lineWidth, _this._maxWidth, t4);
+ t3 = brk.type;
+ isHardBreak = t3 === C.LineBreakType_1 || t3 === C.LineBreakType_2;
+ t3 = _this._lastTakenBreak.index;
+ t1.push(H.EngineLineMetrics$withText(C.JSString_methods.substring$2(t6, t3, t2), brk.index, t2, isHardBreak, alignOffset, lineNumber, t3, lineWidth, lineWidthWithTrailingSpaces));
+ _this._lastTakenBreak = _this._lastBreak = brk;
+ if (t1.length === t5.maxLines)
+ _this._reachedMaxLines = true;
+ },
+ forceBreakSubstring$3$end$maxWidth$start: function(end, maxWidth, start) {
+ var high, mid, width,
+ t1 = this.__engine$_paragraph,
+ t2 = t1._geometricStyle,
+ low = t2.ellipsis != null ? start : start + 1,
+ t3 = this._canvasContext;
+ t1 = t1._plainText;
+ high = end;
+ do {
+ mid = C.JSInt_methods._tdivFast$1(low + high, 2);
+ t1.toString;
+ width = H._measureSubstring(t3, t2, t1, start, mid);
+ if (width < maxWidth)
+ low = mid;
+ else {
+ low = width > maxWidth ? low : mid;
+ high = mid;
+ }
+ } while (high - low > 1);
+ return low;
+ }
+ };
+ H.MaxIntrinsicCalculator.prototype = {
+ update$1: function(_, brk) {
+ var lineWidth, _this = this;
+ if (brk.type === C.LineBreakType_0)
+ return;
+ lineWidth = H._measureSubstring(_this._canvasContext, _this._style, _this.__engine$_text, _this._lastHardLineEnd, brk.indexWithoutTrailingNewlines);
+ if (lineWidth > _this.value)
+ _this.value = lineWidth;
+ _this._lastHardLineEnd = brk.index;
+ }
+ };
+ H.EngineLineMetrics.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.displayText, _this.startIndex, _this.endIndex, _this.hardBreak, 1 / 0, 1 / 0, 1 / 0, 1 / 0, _this.width, _this.left, 1 / 0, _this.lineNumber, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof H.EngineLineMetrics)
+ if (other.displayText === _this.displayText)
+ if (other.startIndex === _this.startIndex)
+ if (other.endIndex === _this.endIndex)
+ if (other.hardBreak === _this.hardBreak)
+ if (other.width == _this.width)
+ if (other.left === _this.left)
+ t1 = other.lineNumber === _this.lineNumber;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.DomParagraph.prototype = {
+ get$_hasLineMetrics: function() {
+ var t1 = this._measurementResult;
+ return (t1 == null ? null : t1.lines) != null;
+ },
+ get$width: function(_) {
+ var t1 = this._measurementResult;
+ t1 = t1 == null ? null : t1.width;
+ return t1 == null ? -1 : t1;
+ },
+ get$height: function(_) {
+ var t1 = this._measurementResult;
+ t1 = t1 == null ? null : t1.height;
+ return t1 == null ? 0 : t1;
+ },
+ get$_lineHeight: function(_) {
+ var t1 = this._measurementResult;
+ t1 = t1 == null ? null : t1.lineHeight;
+ return t1 == null ? 0 : t1;
+ },
+ get$longestLine: function() {
+ var t1, t2, maxWidth, _i, maxWidth0;
+ if (this.get$_hasLineMetrics()) {
+ for (t1 = this._measurementResult.lines, t2 = t1.length, maxWidth = 0, _i = 0; _i < t2; ++_i) {
+ maxWidth0 = t1[_i].width;
+ if (maxWidth < maxWidth0)
+ maxWidth = maxWidth0;
+ }
+ return maxWidth;
+ }
+ return 0;
+ },
+ get$minIntrinsicWidth: function() {
+ var t1 = this._measurementResult;
+ t1 = t1 == null ? null : t1.minIntrinsicWidth;
+ return t1 == null ? 0 : t1;
+ },
+ get$maxIntrinsicWidth: function() {
+ var t1 = this._measurementResult;
+ t1 = t1 == null ? null : t1.maxIntrinsicWidth;
+ return t1 == null ? 0 : t1;
+ },
+ get$alphabeticBaseline: function(_) {
+ var t1 = this._measurementResult;
+ t1 = t1 == null ? null : t1.alphabeticBaseline;
+ return t1 == null ? -1 : t1;
+ },
+ get$ideographicBaseline: function(_) {
+ var t1 = this._measurementResult;
+ t1 = t1 == null ? null : t1.ideographicBaseline;
+ return t1 == null ? -1 : t1;
+ },
+ get$didExceedMaxLines: function(_) {
+ return this._didExceedMaxLines;
+ },
+ layout$1: function(_, constraints) {
+ var t2, _this = this,
+ t1 = constraints.width;
+ t1.toString;
+ t1 = Math.floor(t1);
+ constraints = new P.ParagraphConstraints(t1);
+ if (constraints.$eq(0, _this._lastUsedConstraints))
+ return;
+ t2 = H.TextMeasurementService_forParagraph(_this).measure$2(0, _this, constraints);
+ _this._measurementResult = t2;
+ _this._lastUsedConstraints = constraints;
+ if (_this._geometricStyle.maxLines != null) {
+ t2 = t2.naturalHeight;
+ if (t2 == null)
+ t2 = 0;
+ _this._didExceedMaxLines = t2 > _this.get$height(_this);
+ } else
+ _this._didExceedMaxLines = false;
+ if (_this._measurementResult.isSingleLine)
+ switch (_this._textAlign) {
+ case C.TextAlign_2:
+ _this._alignOffset = (t1 - _this.get$maxIntrinsicWidth()) / 2;
+ break;
+ case C.TextAlign_1:
+ _this._alignOffset = t1 - _this.get$maxIntrinsicWidth();
+ break;
+ case C.TextAlign_4:
+ _this._alignOffset = _this._textDirection === C.TextDirection_0 ? t1 - _this.get$maxIntrinsicWidth() : 0;
+ break;
+ case C.TextAlign_5:
+ _this._alignOffset = _this._textDirection === C.TextDirection_1 ? t1 - _this.get$maxIntrinsicWidth() : 0;
+ break;
+ default:
+ _this._alignOffset = 0;
+ break;
+ }
+ },
+ paint$2: function(canvas, offset) {
+ var t1, t2, t3, t4, y, len, i, _this = this,
+ background = _this._background;
+ if (background != null) {
+ t1 = offset._dx;
+ t2 = offset._dy;
+ t3 = _this.get$width(_this);
+ t4 = _this.get$height(_this);
+ background._frozen = true;
+ canvas.drawRect$2(0, new P.Rect(t1, t2, t1 + t3, t2 + t4), background._paintData);
+ }
+ t1 = _this._measurementResult.lines;
+ t1.toString;
+ t2 = _this._geometricStyle;
+ if (!t2.$eq(0, canvas._cachedLastStyle)) {
+ t3 = canvas._canvasPool;
+ t3.get$context(t3).font = t2.get$cssFontString();
+ canvas._cachedLastStyle = t2;
+ }
+ t2 = _this._paint;
+ t2._frozen = true;
+ t2 = t2._paintData;
+ t3 = canvas._canvasPool;
+ t3.get$contextHandle().setUpPaint$2(t2, null);
+ y = offset._dy + _this.get$alphabeticBaseline(_this);
+ len = t1.length;
+ for (t2 = offset._dx, i = 0; i < len; ++i) {
+ _this._paintLine$4(canvas, t1[i], t2, y);
+ t4 = _this._measurementResult;
+ t4 = t4 == null ? null : t4.lineHeight;
+ y += t4 == null ? 0 : t4;
+ }
+ t3.get$contextHandle().tearDownPaint$0();
+ },
+ _paintLine$4: function(canvas, line, x, y) {
+ var letterSpacing, t1, t2, len, i, char, ctx, t3;
+ x += line.left;
+ letterSpacing = this._geometricStyle.letterSpacing;
+ t1 = letterSpacing == null || letterSpacing === 0;
+ t2 = line.displayText;
+ if (t1) {
+ t1 = canvas._canvasPool;
+ t1 = t1.get$context(t1);
+ (t1 && C.CanvasRenderingContext2D_methods).fillText$3(t1, t2, x, y);
+ } else {
+ len = t2.length;
+ for (t1 = canvas._canvasPool, i = 0; i < len; ++i) {
+ char = t2[i];
+ ctx = t1.__engine$_context;
+ if (ctx == null) {
+ t1._createCanvas$0();
+ t3 = t1.__engine$_context;
+ t3.toString;
+ ctx = t3;
+ }
+ ctx.fillText(char, x, y);
+ ctx = t1.__engine$_context;
+ if (ctx == null) {
+ t1._createCanvas$0();
+ t3 = t1.__engine$_context;
+ t3.toString;
+ ctx = t3;
+ }
+ t3 = ctx.measureText(char).width;
+ t3.toString;
+ x += letterSpacing + t3;
+ }
+ }
+ },
+ getBoxesForPlaceholders$0: function() {
+ return this._measurementResult.placeholderBoxes;
+ },
+ get$drawOnCanvas: function() {
+ var t1, _this = this;
+ if (!_this.get$_hasLineMetrics())
+ return false;
+ if (H.TextMeasurementService_forParagraph(_this).get$isCanvas() ? true : _this._geometricStyle.ellipsis == null) {
+ t1 = _this._geometricStyle;
+ t1 = t1.decoration == null && t1.wordSpacing == null && true;
+ } else
+ t1 = false;
+ return t1;
+ },
+ getBoxesForRange$4$boxHeightStyle$boxWidthStyle: function(start, end, boxHeightStyle, boxWidthStyle) {
+ var t1, $length, t2, t3, startLine, endLine, boxes, i, t4, t5, widthBeforeBox, widthAfterBox, t6, t7, $top, _this = this;
+ if (start == end || start < 0 || end < 0)
+ return H.setRuntimeTypeInfo([], type$.JSArray_TextBox);
+ t1 = _this._plainText;
+ if (t1 == null)
+ return H.setRuntimeTypeInfo([new P.TextBox(0, 0, 0, _this.get$_lineHeight(_this), _this._textDirection)], type$.JSArray_TextBox);
+ $length = t1.length;
+ if (start > $length || end > $length)
+ return H.setRuntimeTypeInfo([], type$.JSArray_TextBox);
+ if (!_this.get$_hasLineMetrics()) {
+ H.TextMeasurementService_forParagraph(_this);
+ t2 = _this._lastUsedConstraints;
+ t2.toString;
+ t3 = _this._alignOffset;
+ return $.TextMeasurementService_rulerManager.findOrCreateRuler$1(_this._geometricStyle).measureBoxesForRange$6$alignOffset$end$start$textDirection(t1, t2, t3, end, start, _this._textDirection);
+ }
+ t1 = _this._measurementResult.lines;
+ t1.toString;
+ if (start >= C.JSArray_methods.get$last(t1).endIndex)
+ return H.setRuntimeTypeInfo([], type$.JSArray_TextBox);
+ startLine = _this._getLineForIndex$1(start);
+ endLine = _this._getLineForIndex$1(end);
+ if (end === endLine.startIndex)
+ endLine = t1[endLine.lineNumber - 1];
+ boxes = H.setRuntimeTypeInfo([], type$.JSArray_TextBox);
+ for (i = startLine.lineNumber, t2 = endLine.lineNumber, t3 = _this._textDirection; i <= t2; ++i) {
+ t4 = t1[i];
+ t5 = t4.startIndex;
+ widthBeforeBox = start <= t5 ? 0 : H.TextMeasurementService_forParagraph(_this).measureSubstringWidth$3(_this, t5, start);
+ t5 = t4.endIndexWithoutNewlines;
+ widthAfterBox = end >= t5 ? 0 : H.TextMeasurementService_forParagraph(_this).measureSubstringWidth$3(_this, end, t5);
+ t5 = _this._measurementResult;
+ t6 = t5 == null;
+ t7 = t6 ? null : t5.lineHeight;
+ if (t7 == null)
+ t7 = 0;
+ $top = t4.lineNumber * t7;
+ t7 = t4.left;
+ t5 = t6 ? null : t5.lineHeight;
+ if (t5 == null)
+ t5 = 0;
+ boxes.push(new P.TextBox(t7 + widthBeforeBox, $top, t7 + t4.widthWithTrailingSpaces - widthAfterBox, $top + t5, t3));
+ }
+ return boxes;
+ },
+ getBoxesForRange$3$boxHeightStyle: function(start, end, boxHeightStyle) {
+ return this.getBoxesForRange$4$boxHeightStyle$boxWidthStyle(start, end, boxHeightStyle, C.BoxWidthStyle_0);
+ },
+ getPositionForOffset$1: function(offset) {
+ var t1, t2, lineNumber, lineMetrics, lineLeft, dx, instance, low, high, low0, current, width, _this = this,
+ lines = _this._measurementResult.lines;
+ if (!_this.get$_hasLineMetrics())
+ return H.TextMeasurementService_forParagraph(_this).getTextPositionForOffset$3(_this, _this._lastUsedConstraints, offset);
+ t1 = offset._dy;
+ if (t1 < 0)
+ return new P.TextPosition(0, C.TextAffinity_1);
+ t2 = _this._measurementResult.lineHeight;
+ t2.toString;
+ lineNumber = C.JSNumber_methods.$tdiv(t1, t2);
+ if (lineNumber >= lines.length)
+ return new P.TextPosition(_this._plainText.length, C.TextAffinity_0);
+ lineMetrics = lines[lineNumber];
+ lineLeft = lineMetrics.left;
+ t1 = offset._dx;
+ if (t1 <= lineLeft)
+ return new P.TextPosition(lineMetrics.startIndex, C.TextAffinity_1);
+ if (t1 >= lineLeft + lineMetrics.width)
+ return new P.TextPosition(lineMetrics.endIndexWithoutNewlines, C.TextAffinity_0);
+ dx = t1 - lineLeft;
+ instance = H.TextMeasurementService_forParagraph(_this);
+ low = lineMetrics.startIndex;
+ high = lineMetrics.endIndexWithoutNewlines;
+ low0 = low;
+ do {
+ current = C.JSInt_methods._tdivFast$1(low0 + high, 2);
+ width = instance.measureSubstringWidth$3(_this, low, current);
+ if (width < dx)
+ low0 = current;
+ else {
+ low0 = width > dx ? low0 : current;
+ high = current;
+ }
+ } while (high - low0 > 1);
+ if (low0 === high)
+ return new P.TextPosition(high, C.TextAffinity_0);
+ if (dx - instance.measureSubstringWidth$3(_this, low, low0) < instance.measureSubstringWidth$3(_this, low, high) - dx)
+ return new P.TextPosition(low0, C.TextAffinity_1);
+ else
+ return new P.TextPosition(high, C.TextAffinity_0);
+ },
+ getWordBoundary$1: function(_, position) {
+ var t1,
+ text = this._plainText;
+ if (text == null) {
+ t1 = position.offset;
+ return new P.TextRange(t1, t1);
+ }
+ t1 = position.offset;
+ return new P.TextRange(H.WordBreaker__findBreakIndex(C._FindBreakDirection_m1, text, t1 + 1), H.WordBreaker__findBreakIndex(C._FindBreakDirection_1, text, t1));
+ },
+ _getLineForIndex$1: function(index) {
+ var t1, i, line,
+ lines = this._measurementResult.lines;
+ for (t1 = lines.length, i = 0; i < t1; ++i) {
+ line = lines[i];
+ if (index >= line.startIndex && index < line.endIndex)
+ return line;
+ }
+ return C.JSArray_methods.get$last(lines);
+ },
+ $isEngineParagraph: 1
+ };
+ H.EngineParagraphStyle.prototype = {
+ get$_effectiveTextAlign: function() {
+ var t1 = this._textAlign;
+ return t1 == null ? C.TextAlign_4 : t1;
+ },
+ get$_effectiveTextDirection: function() {
+ var t1 = this._textDirection;
+ return t1 == null ? C.TextDirection_1 : t1;
+ },
+ get$_effectiveFontFamily: function() {
+ var fontFamily = this._fontFamily;
+ if (fontFamily == null || fontFamily.length === 0)
+ return "sans-serif";
+ return fontFamily;
+ },
+ get$_lineHeight: function(_) {
+ var t2,
+ t1 = this._strutStyle;
+ if (t1 != null) {
+ t2 = t1.__engine$_height;
+ t2 = t2 == null || t2 === 0;
+ } else
+ t2 = true;
+ if (t2)
+ return this.__engine$_height;
+ t1 = t1.__engine$_height;
+ return t1;
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof H.EngineParagraphStyle)
+ if (other._textAlign == _this._textAlign)
+ if (other._textDirection == _this._textDirection)
+ if (other._fontWeight == _this._fontWeight)
+ if (other._maxLines == _this._maxLines)
+ if (other._fontFamily == _this._fontFamily)
+ if (other._fontSize == _this._fontSize)
+ if (other.__engine$_height == _this.__engine$_height)
+ t1 = other._ellipsis == _this._ellipsis && J.$eq$(other._locale, _this._locale);
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this._textAlign, _this._textDirection, _this._fontWeight, _this._fontStyle, _this._maxLines, _this._fontFamily, _this._fontSize, _this.__engine$_height, _this._textHeightBehavior, _this._ellipsis, _this._locale, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.EngineTextStyle.prototype = {
+ get$_effectiveFontFamily: function() {
+ var t1 = this._fontFamily;
+ if (t1.length === 0)
+ return "sans-serif";
+ return t1;
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof H.EngineTextStyle)
+ if (J.$eq$(other._color, _this._color))
+ if (J.$eq$(other._decoration, _this._decoration))
+ if (J.$eq$(other._decorationColor, _this._decorationColor))
+ if (other._decorationStyle == _this._decorationStyle)
+ if (other._fontWeight == _this._fontWeight)
+ t1 = other._textBaseline == _this._textBaseline && other._fontFamily === _this._fontFamily && other._fontSize == _this._fontSize && other._letterSpacing == _this._letterSpacing && other._wordSpacing == _this._wordSpacing && other.__engine$_height == _this.__engine$_height && J.$eq$(other._locale, _this._locale) && other._background == _this._background && other._foreground == _this._foreground && H._listEquals(other._shadows, _this._shadows) && H._listEquals(other._fontFamilyFallback, _this._fontFamilyFallback);
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this._color, _this._decoration, _this._decorationColor, _this._decorationStyle, _this._decorationThickness, _this._fontWeight, _this._fontStyle, _this._textBaseline, _this._fontFamily, _this._fontFamilyFallback, _this._fontSize, _this._letterSpacing, _this._wordSpacing, _this.__engine$_height, _this._locale, _this._background, _this._foreground, _this._shadows, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.EngineStrutStyle.prototype = {
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof H.EngineStrutStyle)
+ if (other._fontFamily == _this._fontFamily)
+ if (other._fontSize == _this._fontSize)
+ if (other.__engine$_height == _this.__engine$_height)
+ if (other._fontWeight == _this._fontWeight)
+ t1 = H._listEquals(other._fontFamilyFallback, _this._fontFamilyFallback);
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this._fontFamily, _this._fontFamilyFallback, _this._fontSize, _this.__engine$_height, _this._leading, _this._fontWeight, _this._fontStyle, true, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ H.DomParagraphBuilder.prototype = {
+ pushStyle$1: function(_, style) {
+ this._ops.push(style);
+ },
+ get$placeholderScales: function() {
+ return this._placeholderScales;
+ },
+ pop$0: function(_) {
+ this._ops.push($.$get$DomParagraphBuilder__paragraphBuilderPop());
+ },
+ addText$1: function(_, text) {
+ this._ops.push(text);
+ },
+ build$0: function(_) {
+ var t1 = this._tryBuildPlainText$0();
+ return t1 == null ? this._buildRichText$0() : t1;
+ },
+ _tryBuildPlainText$0: function() {
+ var fontSize, textAlign, textDirection, locale, t2, t3, foreground, background, height, wordSpacing, letterSpacing, fontFamilyFallback, textBaseline, decorationThickness, decorationStyle, decorationColor, decoration, color, i, style, color0, decoration0, decorationColor0, decorationStyle0, decorationThickness0, fontWeight0, textBaseline0, fontFamilyFallback0, fontSize0, letterSpacing0, wordSpacing0, height0, locale0, background0, foreground0, cumulativeStyle, paint, plainTextBuffer, plainText, t4, _this = this, _null = null,
+ t1 = _this._paragraphStyle,
+ fontWeight = t1._fontWeight,
+ fontStyle = t1._fontStyle,
+ fontFamily = t1._fontFamily;
+ if (fontFamily == null)
+ fontFamily = "sans-serif";
+ fontSize = t1._fontSize;
+ if (fontSize == null)
+ fontSize = 14;
+ textAlign = t1.get$_effectiveTextAlign();
+ textDirection = t1.get$_effectiveTextDirection();
+ locale = t1._locale;
+ t2 = _this._ops;
+ t3 = t2.length;
+ foreground = _null;
+ background = foreground;
+ height = background;
+ wordSpacing = height;
+ letterSpacing = wordSpacing;
+ fontFamilyFallback = letterSpacing;
+ textBaseline = fontFamilyFallback;
+ decorationThickness = textBaseline;
+ decorationStyle = decorationThickness;
+ decorationColor = decorationStyle;
+ decoration = decorationColor;
+ color = C.Color_4294901760;
+ i = 0;
+ while (true) {
+ if (!(i < t3 && t2[i] instanceof H.EngineTextStyle))
+ break;
+ style = t2[i];
+ color0 = style._color;
+ if (color0 != null)
+ color = color0;
+ decoration0 = style._decoration;
+ if (decoration0 != null)
+ decoration = decoration0;
+ decorationColor0 = style._decorationColor;
+ if (decorationColor0 != null)
+ decorationColor = decorationColor0;
+ decorationStyle0 = style._decorationStyle;
+ if (decorationStyle0 != null)
+ decorationStyle = decorationStyle0;
+ decorationThickness0 = style._decorationThickness;
+ if (decorationThickness0 != null)
+ decorationThickness = decorationThickness0;
+ fontWeight0 = style._fontWeight;
+ if (fontWeight0 != null)
+ fontWeight = fontWeight0;
+ textBaseline0 = style._textBaseline;
+ if (textBaseline0 != null)
+ textBaseline = textBaseline0;
+ fontFamily = style._fontFamily;
+ fontFamilyFallback0 = style._fontFamilyFallback;
+ if (fontFamilyFallback0 != null)
+ fontFamilyFallback = fontFamilyFallback0;
+ fontSize0 = style._fontSize;
+ if (fontSize0 != null)
+ fontSize = fontSize0;
+ letterSpacing0 = style._letterSpacing;
+ if (letterSpacing0 != null)
+ letterSpacing = letterSpacing0;
+ wordSpacing0 = style._wordSpacing;
+ if (wordSpacing0 != null)
+ wordSpacing = wordSpacing0;
+ height0 = style.__engine$_height;
+ if (height0 != null)
+ height = height0;
+ locale0 = style._locale;
+ if (locale0 != null)
+ locale = locale0;
+ background0 = style._background;
+ if (background0 != null)
+ background = background0;
+ foreground0 = style._foreground;
+ if (foreground0 != null)
+ foreground = foreground0;
+ ++i;
+ }
+ cumulativeStyle = H.EngineTextStyle$only(background, color, decoration, decorationColor, decorationStyle, decorationThickness, fontFamily, fontFamilyFallback, _null, fontSize, fontStyle, fontWeight, foreground, height, letterSpacing, locale, _null, textBaseline, wordSpacing);
+ if (foreground != null)
+ paint = foreground;
+ else {
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$color(0, color);
+ }
+ if (i >= t2.length) {
+ t2 = _this._paragraphElement;
+ H._applyTextStyleToElement(t2, false, cumulativeStyle);
+ t3 = type$.nullable_SurfacePaint;
+ return new H.DomParagraph(t2, new H.ParagraphGeometricStyle(t1.get$_effectiveTextDirection(), t1.get$_effectiveTextAlign(), fontWeight, fontStyle, fontFamily, fontSize, height, t1._maxLines, letterSpacing, wordSpacing, H._textDecorationToCssString(decoration, decorationStyle), t1._ellipsis, _null), "", t3._as(paint), textAlign, textDirection, t3._as(cumulativeStyle._background), 0);
+ }
+ if (typeof t2[i] != "string")
+ return _null;
+ plainTextBuffer = new P.StringBuffer("");
+ t3 = "";
+ while (true) {
+ if (!(i < t2.length && typeof t2[i] == "string"))
+ break;
+ t3 += H.S(t2[i]);
+ plainTextBuffer._contents = t3;
+ ++i;
+ }
+ for (; i < t2.length; ++i)
+ if (!J.$eq$(t2[i], $.$get$DomParagraphBuilder__paragraphBuilderPop()))
+ return _null;
+ t2 = plainTextBuffer._contents;
+ plainText = t2.charCodeAt(0) == 0 ? t2 : t2;
+ t2 = _this._paragraphElement;
+ $.$get$domRenderer().toString;
+ t2.toString;
+ t2.appendChild(document.createTextNode(plainText));
+ H._applyTextStyleToElement(t2, false, cumulativeStyle);
+ t3 = cumulativeStyle._background;
+ if (t3 != null)
+ H._applyTextBackgroundToElement(t2, cumulativeStyle);
+ t4 = type$.nullable_SurfacePaint;
+ return new H.DomParagraph(t2, new H.ParagraphGeometricStyle(t1.get$_effectiveTextDirection(), t1.get$_effectiveTextAlign(), fontWeight, fontStyle, fontFamily, fontSize, height, t1._maxLines, letterSpacing, wordSpacing, H._textDecorationToCssString(decoration, decorationStyle), t1._ellipsis, _null), plainText, t4._as(paint), textAlign, textDirection, t4._as(t3), 0);
+ },
+ _buildRichText$0: function() {
+ var t1, t2, i, op, element, t3, t4, t5, _this = this, _null = null,
+ _s16_ = "background-color",
+ elementStack = [],
+ currentElement = new H.DomParagraphBuilder__buildRichText_currentElement(_this, elementStack);
+ for (t1 = _this._ops, t2 = type$.SpanElement, i = 0; i < t1.length; ++i) {
+ op = t1[i];
+ if (op instanceof H.EngineTextStyle) {
+ $.$get$domRenderer().toString;
+ element = document.createElement("span");
+ t2._as(element);
+ H._applyTextStyleToElement(element, true, op);
+ t3 = op._background;
+ t4 = t3 != null;
+ if (t4)
+ if (t4) {
+ t3 = H.colorToCssString(t3.get$color(t3));
+ if (t3 == null)
+ element.style.removeProperty(_s16_);
+ else {
+ t4 = element.style;
+ t4.toString;
+ t5 = C.CssStyleDeclaration_methods._browserPropertyName$1(t4, _s16_);
+ t4.setProperty(t5, t3, "");
+ }
+ }
+ currentElement.call$0().appendChild(element);
+ elementStack.push(element);
+ } else if (typeof op == "string") {
+ t3 = $.$get$domRenderer();
+ t4 = currentElement.call$0();
+ t3.toString;
+ t4.toString;
+ t4.appendChild(document.createTextNode(op));
+ } else {
+ t3 = $.$get$DomParagraphBuilder__paragraphBuilderPop();
+ if (op == null ? t3 == null : op === t3)
+ elementStack.pop();
+ else
+ throw H.wrapException(P.UnsupportedError$("Unsupported ParagraphBuilder operation: " + H.S(op)));
+ }
+ }
+ t1 = _this._paragraphStyle;
+ t2 = t1.get$_effectiveTextDirection();
+ t3 = t1.get$_effectiveTextAlign();
+ t4 = t1._fontFamily;
+ return new H.DomParagraph(_this._paragraphElement, new H.ParagraphGeometricStyle(t2, t3, t1._fontWeight, t1._fontStyle, t4, t1._fontSize, t1.__engine$_height, t1._maxLines, _null, _null, _null, t1._ellipsis, _null), _null, _null, t1.get$_effectiveTextAlign(), t1.get$_effectiveTextDirection(), _null, 0);
+ }
+ };
+ H.DomParagraphBuilder__buildRichText_currentElement.prototype = {
+ call$0: function() {
+ var t1 = this.elementStack;
+ return t1.length !== 0 ? C.JSArray_methods.get$last(t1) : this.$this._paragraphElement;
+ },
+ $signature: 13
+ };
+ H.ParagraphGeometricStyle.prototype = {
+ get$effectiveFontFamily: function() {
+ var t1 = this.fontFamily;
+ if (t1 == null || t1.length === 0)
+ return "sans-serif";
+ return t1;
+ },
+ get$cssFontString: function() {
+ var t2, _this = this,
+ t1 = _this._cssFontString;
+ if (t1 == null) {
+ t1 = _this.fontWeight;
+ t1 = (t1 != null ? "normal " + H.S(H.fontWeightToCss(t1)) : "normal normal") + " ";
+ t2 = _this.fontSize;
+ t1 = (t2 != null ? t1 + C.JSNumber_methods.floor$0(t2) : t1 + "14") + "px " + H.S(H.canonicalizeFontFamily(_this.get$effectiveFontFamily()));
+ t1 = _this._cssFontString = t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ return t1;
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof H.ParagraphGeometricStyle)
+ if (other.textDirection === _this.textDirection)
+ if (other.textAlign === _this.textAlign)
+ if (other.fontWeight == _this.fontWeight)
+ t1 = other.fontFamily == _this.fontFamily && other.fontSize == _this.fontSize && other.lineHeight == _this.lineHeight && other.maxLines == _this.maxLines && other.letterSpacing == _this.letterSpacing && other.wordSpacing == _this.wordSpacing && other.decoration == _this.decoration && other.ellipsis == _this.ellipsis;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this,
+ t1 = _this._cachedHashCode;
+ return t1 == null ? _this._cachedHashCode = P.hashValues(_this.textDirection, _this.textAlign, _this.fontWeight, _this.fontStyle, _this.fontFamily, _this.fontSize, _this.lineHeight, _this.maxLines, _this.letterSpacing, _this.wordSpacing, _this.decoration, _this.ellipsis, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd) : t1;
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.TextDimensions.prototype = {
+ updateText$2: function(from, style) {
+ var plainText, t1, copy;
+ this._cachedBoundingClientRect = null;
+ plainText = from._plainText;
+ if (plainText != null) {
+ t1 = this._element;
+ if (C.JSString_methods.endsWith$1(plainText, "\n"))
+ t1.textContent = plainText + "\n";
+ else
+ t1.textContent = plainText;
+ } else {
+ copy = type$.Element._as(from._paragraphElement.cloneNode(true));
+ copy.toString;
+ new W._ChildNodeListLazy(this._element).addAll$1(0, new W._ChildNodeListLazy(copy));
+ }
+ },
+ updateConstraintWidth$2: function(width, ellipsis) {
+ var t1, t2;
+ this._cachedBoundingClientRect = null;
+ width.toString;
+ if (width == 1 / 0 || width == -1 / 0) {
+ t1 = this._element.style;
+ t1.width = "";
+ t1.whiteSpace = "pre";
+ } else {
+ t1 = this._element;
+ if (ellipsis != null) {
+ t1 = t1.style;
+ t2 = H.S(width) + "px";
+ t1.width = t2;
+ t1.whiteSpace = "pre";
+ } else {
+ t1 = t1.style;
+ t2 = H.S(width) + "px";
+ t1.width = t2;
+ t1.whiteSpace = "pre-wrap";
+ }
+ }
+ },
+ applyStyle$1: function(style) {
+ var decoration, _null = null,
+ t1 = this._element,
+ elementStyle = t1.style,
+ t2 = style.textDirection,
+ t3 = H._textDirectionToCss(t2);
+ elementStyle.toString;
+ elementStyle.direction = t3 == null ? "" : t3;
+ t2 = H.textAlignToCssValue(style.textAlign, t2);
+ elementStyle.textAlign = t2;
+ t2 = style.fontSize;
+ t2 = t2 != null ? "" + C.JSNumber_methods.floor$0(t2) + "px" : _null;
+ elementStyle.fontSize = t2 == null ? "" : t2;
+ t2 = H.canonicalizeFontFamily(style.get$effectiveFontFamily());
+ elementStyle.fontFamily = t2 == null ? "" : t2;
+ t2 = style.fontWeight;
+ t2 = t2 != null ? H.fontWeightToCss(t2) : _null;
+ elementStyle.fontWeight = t2 == null ? "" : t2;
+ elementStyle.fontStyle = "";
+ t2 = style.letterSpacing;
+ t2 = t2 != null ? H.S(t2) + "px" : _null;
+ elementStyle.letterSpacing = t2 == null ? "" : t2;
+ t2 = style.wordSpacing;
+ t2 = t2 != null ? H.S(t2) + "px" : _null;
+ elementStyle.wordSpacing = t2 == null ? "" : t2;
+ decoration = style.decoration;
+ t2 = H._browserEngine();
+ if (t2 === C.BrowserEngine_1)
+ H.DomRenderer_setElementStyle(t1, "-webkit-text-decoration", decoration);
+ else
+ elementStyle.textDecoration = decoration == null ? "" : decoration;
+ t1 = style.lineHeight;
+ if (t1 != null) {
+ t1 = C.JSNumber_methods.toString$0(t1);
+ elementStyle.lineHeight = t1;
+ }
+ this._cachedBoundingClientRect = null;
+ },
+ _readAndCacheMetrics$0: function() {
+ var t1 = this._cachedBoundingClientRect;
+ return t1 == null ? this._cachedBoundingClientRect = this._element.getBoundingClientRect() : t1;
+ },
+ get$height: function(_) {
+ var t2, cachedHeight,
+ t1 = this._readAndCacheMetrics$0().height;
+ t1.toString;
+ t2 = H._browserEngine();
+ if (t2 === C.BrowserEngine_2 && true)
+ cachedHeight = t1 + 1;
+ else
+ cachedHeight = t1;
+ return cachedHeight;
+ }
+ };
+ H.ParagraphRuler.prototype = {
+ get$alphabeticBaseline: function(_) {
+ var t1 = this._cachedAlphabeticBaseline;
+ if (t1 == null) {
+ t1 = this._probe.getBoundingClientRect().bottom;
+ t1.toString;
+ t1 = this._cachedAlphabeticBaseline = t1;
+ }
+ return t1;
+ },
+ get$lineHeightDimensions: function() {
+ var t1, _this = this;
+ if (_this._lineHeightDimensions == null) {
+ t1 = document;
+ _this._lineHeightHost = t1.createElement("div");
+ _this._lineHeightDimensions = new H.TextDimensions(t1.createElement("p"));
+ t1 = _this._lineHeightHost.style;
+ t1.visibility = "hidden";
+ t1.position = "absolute";
+ t1.top = "0";
+ t1.left = "0";
+ t1.display = "flex";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "flex-direction"), "row", "");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "align-items"), "baseline", "");
+ t1.margin = "0";
+ t1.border = "0";
+ t1.padding = "0";
+ _this.get$lineHeightDimensions().applyStyle$1(_this.style);
+ t1 = _this.get$lineHeightDimensions()._element.style;
+ t1.whiteSpace = "pre";
+ t1 = _this.get$lineHeightDimensions();
+ t1._cachedBoundingClientRect = null;
+ t1._element.textContent = " ";
+ t1 = _this.get$lineHeightDimensions();
+ t1.toString;
+ _this._lineHeightHost.appendChild(t1._element);
+ t1._cachedBoundingClientRect = null;
+ t1 = _this._lineHeightHost;
+ t1.toString;
+ _this.rulerManager._rulerHost.appendChild(t1);
+ _this._lineHeightHost.appendChild(_this._probe);
+ }
+ return _this._lineHeightDimensions;
+ },
+ measureAsSingleLine$0: function() {
+ var t1 = this.__engine$_paragraph,
+ t2 = this.singleLineDimensions;
+ if (t1._plainText === "") {
+ t2._cachedBoundingClientRect = null;
+ t2._element.textContent = " ";
+ } else
+ t2.updateText$2(t1, this.style);
+ },
+ measureWithConstraints$1: function(constraints) {
+ var t3,
+ t1 = this.constrainedDimensions,
+ t2 = this.__engine$_paragraph;
+ t2.toString;
+ t3 = this.style;
+ t1.updateText$2(t2, t3);
+ t1.updateConstraintWidth$2(constraints.width + 0.5, t3.ellipsis);
+ },
+ measurePlaceholderBoxes$0: function() {
+ var placeholderElements, boxes, t1, cur, rect, t2, t3, t4, t5;
+ if (this.__engine$_paragraph.placeholderCount === 0)
+ return C.List_empty5;
+ placeholderElements = new W._FrozenElementList(this.constrainedDimensions._element.querySelectorAll(".paragraph-placeholder"), type$._FrozenElementList_Element);
+ boxes = H.setRuntimeTypeInfo([], type$.JSArray_TextBox);
+ for (t1 = new H.ListIterator(placeholderElements, placeholderElements.get$length(placeholderElements)); t1.moveNext$0();) {
+ cur = t1._current;
+ rect = cur.getBoundingClientRect();
+ t2 = rect.left;
+ t2.toString;
+ t3 = rect.top;
+ t3.toString;
+ t4 = rect.right;
+ t4.toString;
+ t5 = rect.bottom;
+ t5.toString;
+ boxes.push(new P.TextBox(t2, t3, t4, t5, this.__engine$_paragraph._textDirection));
+ }
+ return boxes;
+ },
+ hitTest$2: function(constraints, offset) {
+ var el, textNodes, i, t1, bounds, dx, dy, t2, _this = this;
+ _this.measureWithConstraints$1(constraints);
+ el = _this.constrainedDimensions._element;
+ textNodes = H.setRuntimeTypeInfo([], type$.JSArray_Node);
+ _this._collectTextNodes$2(el.childNodes, textNodes);
+ for (i = textNodes.length - 1, t1 = type$.Element; i >= 0; --i) {
+ bounds = t1._as(textNodes[i].parentNode).getBoundingClientRect();
+ dx = offset._dx;
+ dy = offset._dy;
+ t2 = bounds.left;
+ t2.toString;
+ if (dx >= t2) {
+ t2 = bounds.right;
+ t2.toString;
+ if (dx < t2) {
+ t2 = bounds.top;
+ t2.toString;
+ if (dy >= t2) {
+ t2 = bounds.bottom;
+ t2.toString;
+ t2 = dy < t2;
+ } else
+ t2 = false;
+ } else
+ t2 = false;
+ } else
+ t2 = false;
+ if (t2)
+ return _this._countTextPosition$2(el.childNodes, textNodes[i]);
+ }
+ return 0;
+ },
+ _collectTextNodes$2: function(nodes, textNodes) {
+ var childNodes, t1, _i, node;
+ if (J.get$isEmpty$asx(nodes))
+ return;
+ childNodes = H.setRuntimeTypeInfo([], type$.JSArray_Node);
+ for (t1 = nodes.length, _i = 0; _i < nodes.length; nodes.length === t1 || (0, H.throwConcurrentModificationError)(nodes), ++_i) {
+ node = nodes[_i];
+ if (node.nodeType === 3)
+ textNodes.push(node);
+ C.JSArray_methods.addAll$1(childNodes, node.childNodes);
+ }
+ this._collectTextNodes$2(childNodes, textNodes);
+ },
+ _countTextPosition$2: function(nodes, endNode) {
+ var position, node,
+ t1 = H.instanceType(nodes)._eval$1("ReversedListIterable"),
+ stack = P.List_List$of(new H.ReversedListIterable(nodes, t1), true, t1._eval$1("ListIterable.E"));
+ for (position = 0; true;) {
+ node = C.JSArray_methods.removeLast$0(stack);
+ t1 = node.childNodes;
+ C.JSArray_methods.addAll$1(stack, new H.ReversedListIterable(t1, H.instanceType(t1)._eval$1("ReversedListIterable")));
+ if (node === endNode)
+ break;
+ if (node.nodeType === 3)
+ position += node.textContent.length;
+ }
+ return position;
+ },
+ didMeasure$0: function() {
+ var t1, _this = this;
+ if (_this.__engine$_paragraph._plainText == null) {
+ t1 = $.$get$domRenderer();
+ t1.clearDom$1(_this.singleLineDimensions._element);
+ t1.clearDom$1(_this.minIntrinsicDimensions._element);
+ t1.clearDom$1(_this.constrainedDimensions._element);
+ }
+ _this.__engine$_paragraph = null;
+ },
+ measureBoxesForRange$6$alignOffset$end$start$textDirection: function(plainText, constraints, alignOffset, end, start, textDirection) {
+ var t2, t3, value, boxes, maxLinesLimit, previousRect, _i, rect, t4, t5, t6,
+ before = J.getInterceptor$s(plainText).substring$2(plainText, 0, start),
+ rangeText = C.JSString_methods.substring$2(plainText, start, end),
+ after = C.JSString_methods.substring$1(plainText, end),
+ t1 = document,
+ rangeSpan = t1.createElement("span");
+ rangeSpan.textContent = rangeText;
+ t2 = this.constrainedDimensions;
+ t3 = t2._element;
+ $.$get$domRenderer().clearDom$1(t3);
+ t3.appendChild(t1.createTextNode(before));
+ t3.appendChild(rangeSpan);
+ t3.appendChild(t1.createTextNode(after));
+ t2.updateConstraintWidth$2(constraints.width, null);
+ value = rangeSpan.getClientRects();
+ if (value.prototype == null)
+ value.prototype = Object.create(null);
+ boxes = H.setRuntimeTypeInfo([], type$.JSArray_TextBox);
+ t1 = this.style.maxLines;
+ if (t1 == null)
+ maxLinesLimit = 1 / 0;
+ else {
+ t2 = this.get$lineHeightDimensions();
+ maxLinesLimit = t1 * t2.get$height(t2);
+ }
+ for (t1 = value.length, previousRect = null, _i = 0; _i < value.length; value.length === t1 || (0, H.throwConcurrentModificationError)(value), ++_i) {
+ rect = value[_i];
+ t2 = J.getInterceptor$x(rect);
+ t4 = t2.get$top(rect);
+ if (t4 == (previousRect == null ? null : J.get$top$x(previousRect)) && t2.get$left(rect) == t2.get$right(rect))
+ continue;
+ if (t2.get$top(rect) >= maxLinesLimit)
+ break;
+ t4 = t2.get$left(rect);
+ t4.toString;
+ t5 = t2.get$top(rect);
+ t6 = t2.get$right(rect);
+ t6.toString;
+ boxes.push(new P.TextBox(t4 + alignOffset, t5, t6 + alignOffset, t2.get$bottom(rect), textDirection));
+ previousRect = rect;
+ }
+ $.$get$domRenderer().clearDom$1(t3);
+ return boxes;
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ C.DivElement_methods.remove$0(_this._singleLineHost);
+ C.DivElement_methods.remove$0(_this._minIntrinsicHost);
+ C.DivElement_methods.remove$0(_this._constrainedHost);
+ t1 = _this._lineHeightHost;
+ if (t1 != null)
+ C.DivElement_methods.remove$0(t1);
+ },
+ cacheMeasurement$2: function(paragraph, item) {
+ var t2, i,
+ plainText = paragraph._plainText,
+ t1 = this._measurementCache,
+ constraintCache = t1.$index(0, plainText);
+ if (constraintCache == null) {
+ constraintCache = H.setRuntimeTypeInfo([], type$.JSArray_nullable_MeasurementResult);
+ t1.$indexSet(0, plainText, constraintCache);
+ }
+ constraintCache.push(item);
+ if (constraintCache.length > 8)
+ C.JSArray_methods.removeAt$1(constraintCache, 0);
+ t2 = this._mruList;
+ t2.push(plainText);
+ if (t2.length > 2400) {
+ for (i = 0; i < 100; ++i)
+ t1.remove$1(0, t2[i]);
+ C.JSArray_methods.removeRange$2(t2, 0, 100);
+ }
+ },
+ cacheLookup$2: function(paragraph, constraints) {
+ var constraintCache, len, t1, t2, t3, i, t4,
+ plainText = paragraph._plainText;
+ if (plainText == null)
+ return null;
+ constraintCache = this._measurementCache.$index(0, plainText);
+ if (constraintCache == null)
+ return null;
+ len = constraintCache.length;
+ for (t1 = constraints.width, t2 = paragraph._textAlign, t3 = paragraph._textDirection, i = 0; i < len; ++i) {
+ t4 = constraintCache[i];
+ t4.toString;
+ if (t4.constraintWidth == t1 && t4.textAlign === t2 && t4.textDirection === t3)
+ return t4;
+ }
+ return null;
+ }
+ };
+ H.MeasurementResult.prototype = {};
+ H._ComparisonResult.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.UnicodeRange.prototype = {
+ compare$1: function(value) {
+ if (value < this.start)
+ return C._ComparisonResult_2;
+ if (value > this.end)
+ return C._ComparisonResult_1;
+ return C._ComparisonResult_0;
+ }
+ };
+ H.UnicodePropertyLookup.prototype = {
+ find$2: function(_, text, index) {
+ var codePoint = H.getCodePoint(text, index);
+ return codePoint == null ? this.defaultProperty : this.findForChar$1(codePoint);
+ },
+ findForChar$1: function(char) {
+ var t1, cacheHit, rangeIndex, result, _this = this;
+ if (char == null)
+ return _this.defaultProperty;
+ t1 = _this.__engine$_cache;
+ cacheHit = t1.$index(0, char);
+ if (cacheHit != null)
+ return cacheHit;
+ rangeIndex = _this._binarySearch$1(char);
+ result = rangeIndex === -1 ? _this.defaultProperty : _this.ranges[rangeIndex].property;
+ t1.$indexSet(0, char, result);
+ return result;
+ },
+ _binarySearch$1: function(value) {
+ var min, mid,
+ t1 = this.ranges,
+ max = t1.length;
+ for (min = 0; min < max;) {
+ mid = min + C.JSInt_methods._shrOtherPositive$1(max - min, 1);
+ switch (t1[mid].compare$1(value)) {
+ case C._ComparisonResult_1:
+ min = mid + 1;
+ break;
+ case C._ComparisonResult_2:
+ max = mid;
+ break;
+ case C._ComparisonResult_0:
+ return mid;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ return -1;
+ }
+ };
+ H.WordCharProperty.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H._FindBreakDirection.prototype = {};
+ H.BrowserAutofillHints.prototype = {};
+ H.EngineInputType.prototype = {
+ get$submitActionOnEnter: function() {
+ return true;
+ },
+ createDomElement$0: function() {
+ return W.InputElement_InputElement();
+ },
+ configureInputMode$1: function(domElement) {
+ var t1;
+ if (this.get$inputmodeAttribute() == null)
+ return;
+ t1 = H._operatingSystem();
+ if (t1 !== C.OperatingSystem_0) {
+ t1 = H._operatingSystem();
+ t1 = t1 === C.OperatingSystem_1;
+ } else
+ t1 = true;
+ if (t1) {
+ t1 = this.get$inputmodeAttribute();
+ t1.toString;
+ domElement.setAttribute("inputmode", t1);
+ }
+ }
+ };
+ H.TextInputType0.prototype = {
+ get$inputmodeAttribute: function() {
+ return "text";
+ }
+ };
+ H.NumberInputType.prototype = {
+ get$inputmodeAttribute: function() {
+ return "numeric";
+ }
+ };
+ H.DecimalInputType.prototype = {
+ get$inputmodeAttribute: function() {
+ return "decimal";
+ }
+ };
+ H.PhoneInputType.prototype = {
+ get$inputmodeAttribute: function() {
+ return "tel";
+ }
+ };
+ H.EmailInputType.prototype = {
+ get$inputmodeAttribute: function() {
+ return "email";
+ }
+ };
+ H.UrlInputType.prototype = {
+ get$inputmodeAttribute: function() {
+ return "url";
+ }
+ };
+ H.MultilineInputType.prototype = {
+ get$submitActionOnEnter: function() {
+ return false;
+ },
+ createDomElement$0: function() {
+ return document.createElement("textarea");
+ },
+ get$inputmodeAttribute: function() {
+ return null;
+ }
+ };
+ H.TextCapitalization.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.TextCapitalizationConfig.prototype = {
+ setAutocapitalizeAttribute$1: function(domElement) {
+ var t1, autocapitalize,
+ _s9_ = "sentences",
+ _s14_ = "autocapitalize";
+ switch (this.textCapitalization) {
+ case C.TextCapitalization_0:
+ t1 = H._browserEngine();
+ autocapitalize = t1 === C.BrowserEngine_1 ? _s9_ : "words";
+ break;
+ case C.TextCapitalization_2:
+ autocapitalize = "characters";
+ break;
+ case C.TextCapitalization_1:
+ autocapitalize = _s9_;
+ break;
+ case C.TextCapitalization_3:
+ default:
+ autocapitalize = "off";
+ break;
+ }
+ if (type$.InputElement._is(domElement))
+ domElement.setAttribute(_s14_, autocapitalize);
+ else if (type$.TextAreaElement._is(domElement))
+ domElement.setAttribute(_s14_, autocapitalize);
+ }
+ };
+ H.EngineAutofillForm.prototype = {
+ addInputEventListeners$0: function() {
+ var t1 = this.elements,
+ keys = t1.get$keys(t1),
+ subscriptions = H.setRuntimeTypeInfo([], type$.JSArray_StreamSubscription_Event);
+ keys.forEach$1(0, new H.EngineAutofillForm_addInputEventListeners_closure(this, subscriptions));
+ return subscriptions;
+ }
+ };
+ H.EngineAutofillForm_fromFrameworkMessage_closure.prototype = {
+ call$1: function(e) {
+ e.preventDefault();
+ },
+ $signature: 6
+ };
+ H.EngineAutofillForm_addInputEventListeners_closure.prototype = {
+ call$1: function(key) {
+ var t1 = this.$this,
+ t2 = t1.elements.$index(0, key);
+ t2.toString;
+ this.subscriptions.push(W._EventStreamSubscription$(t2, "input", new H.EngineAutofillForm_addInputEventListeners__closure(t1, key, t2), false, type$._ElementEventStreamImpl_legacy_Event._precomputed1));
+ },
+ $signature: 282
+ };
+ H.EngineAutofillForm_addInputEventListeners__closure.prototype = {
+ call$1: function(e) {
+ var autofillInfo, newEditingState,
+ t1 = this.$this.items,
+ t2 = this.key;
+ if (t1.$index(0, t2) == null)
+ throw H.wrapException(P.StateError$("Autofill would not work withuot Autofill value set"));
+ else {
+ autofillInfo = t1.$index(0, t2);
+ newEditingState = H.EditingState_EditingState$fromDomElement(this.element, autofillInfo.textCapitalization);
+ t1 = autofillInfo.uniqueIdentifier;
+ $.$get$EnginePlatformDispatcher__instance().invokeOnPlatformMessage$3("flutter/textinput", C.C_JSONMethodCodec.encodeMethodCall$1(new H.MethodCall0(string$.TextIn, [0, P.LinkedHashMap_LinkedHashMap$_literal([t1, newEditingState.toFlutter$0()], type$.nullable_String, type$.dynamic)])), H._engine___emptyCallback$closure());
+ }
+ },
+ $signature: 10
+ };
+ H.AutofillInfo.prototype = {
+ applyToDomElement$2$focusedElement: function(domElement, focusedElement) {
+ var _s8_ = "password",
+ t1 = this.hint;
+ domElement.id = t1;
+ if (type$.InputElement._is(domElement)) {
+ domElement.name = t1;
+ domElement.id = t1;
+ domElement.autocomplete = t1;
+ if (J.contains$1$asx(t1, _s8_))
+ domElement.type = _s8_;
+ else
+ domElement.type = "text";
+ } else if (type$.TextAreaElement._is(domElement)) {
+ domElement.name = t1;
+ domElement.id = t1;
+ domElement.setAttribute("autocomplete", t1);
+ }
+ },
+ applyToDomElement$1: function(domElement) {
+ return this.applyToDomElement$2$focusedElement(domElement, false);
+ }
+ };
+ H.EditingState.prototype = {
+ toFlutter$0: function() {
+ return P.LinkedHashMap_LinkedHashMap$_literal(["text", this.text, "selectionBase", this.baseOffset, "selectionExtent", this.extentOffset], type$.String, type$.dynamic);
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.text, this.baseOffset, this.extentOffset, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (H.getRuntimeType(_this) !== J.get$runtimeType$(other))
+ return false;
+ return other instanceof H.EditingState && other.text == _this.text && other.baseOffset == _this.baseOffset && other.extentOffset == _this.extentOffset;
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ },
+ applyToDomElement$1: function(domElement) {
+ var t1, t2, _this = this;
+ if (type$.InputElement._is(domElement)) {
+ domElement.value = _this.text;
+ t1 = _this.baseOffset;
+ t1.toString;
+ t2 = _this.extentOffset;
+ t2.toString;
+ domElement.setSelectionRange(t1, t2);
+ } else if (type$.TextAreaElement._is(domElement)) {
+ domElement.value = _this.text;
+ t1 = _this.baseOffset;
+ t1.toString;
+ t2 = _this.extentOffset;
+ t2.toString;
+ domElement.setSelectionRange(t1, t2);
+ } else
+ throw H.wrapException(P.UnsupportedError$("Unsupported DOM element type"));
+ }
+ };
+ H.InputConfiguration.prototype = {};
+ H.GloballyPositionedTextEditingStrategy.prototype = {
+ placeElement$0: function() {
+ var _this = this,
+ t1 = _this.get$_inputConfiguration().autofillGroup,
+ t2 = _this._geometry;
+ if (t1 != null) {
+ if (t2 != null) {
+ t1 = _this.get$focusedFormElement();
+ t1.toString;
+ t2.applyToDomElement$1(t1);
+ }
+ _this.placeForm$0();
+ t1 = _this._lastEditingState;
+ if (t1 != null) {
+ t2 = _this._domElement;
+ t2.toString;
+ t1.applyToDomElement$1(t2);
+ }
+ _this.get$focusedFormElement().focus();
+ _this._domElement.focus();
+ } else if (t2 != null) {
+ t1 = _this._domElement;
+ t1.toString;
+ t2.applyToDomElement$1(t1);
+ }
+ }
+ };
+ H.SafariDesktopTextEditingStrategy.prototype = {
+ placeElement$0: function() {
+ var t2, _this = this,
+ t1 = _this._geometry;
+ if (t1 != null) {
+ t2 = _this._domElement;
+ t2.toString;
+ t1.applyToDomElement$1(t2);
+ }
+ if (_this.get$_inputConfiguration().autofillGroup != null) {
+ _this.placeForm$0();
+ _this.get$focusedFormElement().focus();
+ _this._domElement.focus();
+ t1 = _this._lastEditingState;
+ if (t1 != null) {
+ t2 = _this._domElement;
+ t2.toString;
+ t1.applyToDomElement$1(t2);
+ }
+ }
+ },
+ initializeElementPlacement$0: function() {
+ this._domElement.focus();
+ }
+ };
+ H.DefaultTextEditingStrategy.prototype = {
+ set$domElement: function(element) {
+ this._domElement = element;
+ },
+ get$_inputConfiguration: function() {
+ return this.__DefaultTextEditingStrategy__inputConfiguration_isSet ? this.__DefaultTextEditingStrategy__inputConfiguration : H.throwExpression(H.LateError$fieldNI("_inputConfiguration"));
+ },
+ get$focusedFormElement: function() {
+ var t1 = this.get$_inputConfiguration().autofillGroup;
+ return t1 == null ? null : t1.formElement;
+ },
+ initializeTextEditing$3$onAction$onChange: function(inputConfig, onAction, onChange) {
+ var t1, elementStyle, t2, _this = this,
+ _s11_ = "transparent",
+ _s4_ = "none";
+ _this._domElement = inputConfig.inputType.createDomElement$0();
+ _this._applyConfiguration$1(inputConfig);
+ t1 = _this._domElement;
+ t1.classList.add("flt-text-editing");
+ elementStyle = t1.style;
+ elementStyle.whiteSpace = "pre-wrap";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "align-content"), "center", "");
+ elementStyle.position = "absolute";
+ elementStyle.top = "0";
+ elementStyle.left = "0";
+ elementStyle.padding = "0";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "opacity"), "1", "");
+ elementStyle.color = _s11_;
+ elementStyle.backgroundColor = _s11_;
+ elementStyle.background = _s11_;
+ elementStyle.outline = _s4_;
+ elementStyle.border = _s4_;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "resize"), _s4_, "");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "text-shadow"), _s11_, "");
+ elementStyle.overflow = "hidden";
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "transform-origin"), "0 0 0", "");
+ t2 = H._browserEngine();
+ if (t2 !== C.BrowserEngine_0) {
+ t2 = H._browserEngine();
+ t2 = t2 === C.BrowserEngine_1;
+ } else
+ t2 = true;
+ if (t2)
+ t1.classList.add("transparentTextEditing");
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(elementStyle, C.CssStyleDeclaration_methods._browserPropertyName$1(elementStyle, "caret-color"), _s11_, null);
+ t1 = _this._style;
+ if (t1 != null) {
+ t2 = _this._domElement;
+ t2.toString;
+ t1.applyToDomElement$1(t2);
+ }
+ if (_this.get$_inputConfiguration().autofillGroup == null) {
+ t1 = $.$get$domRenderer()._glassPaneElement;
+ t1.toString;
+ t2 = _this._domElement;
+ t2.toString;
+ t1.appendChild(t2);
+ _this._appendedToForm = false;
+ }
+ _this.initializeElementPlacement$0();
+ _this.isEnabled = true;
+ _this._onChange = onChange;
+ _this._onAction = onAction;
+ },
+ _applyConfiguration$1: function(config) {
+ var t1, t2, autocorrectValue, _this = this,
+ _s8_ = "readonly";
+ _this.__DefaultTextEditingStrategy__inputConfiguration_isSet = true;
+ _this.__DefaultTextEditingStrategy__inputConfiguration = config;
+ t1 = config.readOnly;
+ t2 = _this._domElement;
+ if (t1)
+ t2.setAttribute(_s8_, _s8_);
+ else
+ t2.removeAttribute(_s8_);
+ if (config.obscureText)
+ _this._domElement.setAttribute("type", "password");
+ t1 = config.autofill;
+ if (t1 != null) {
+ t2 = _this._domElement;
+ t2.toString;
+ t1.applyToDomElement$2$focusedElement(t2, true);
+ }
+ autocorrectValue = config.autocorrect ? "on" : "off";
+ _this._domElement.setAttribute("autocorrect", autocorrectValue);
+ },
+ initializeElementPlacement$0: function() {
+ this.placeElement$0();
+ },
+ addEventHandlers$0: function() {
+ var t1, t2, t3, t4, _this = this;
+ if (_this.get$_inputConfiguration().autofillGroup != null)
+ C.JSArray_methods.addAll$1(_this._subscriptions, _this.get$_inputConfiguration().autofillGroup.addInputEventListeners$0());
+ t1 = _this._subscriptions;
+ t2 = _this._domElement;
+ t2.toString;
+ t3 = _this.get$_handleChange();
+ t4 = type$._ElementEventStreamImpl_legacy_Event._precomputed1;
+ t1.push(W._EventStreamSubscription$(t2, "input", t3, false, t4));
+ t2 = _this._domElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "keydown", _this.get$_maybeSendAction(), false, type$._ElementEventStreamImpl_legacy_KeyboardEvent._precomputed1));
+ t1.push(W._EventStreamSubscription$(document, "selectionchange", t3, false, type$.legacy_Event));
+ t3 = _this._domElement;
+ t3.toString;
+ t1.push(W._EventStreamSubscription$(t3, "blur", new H.DefaultTextEditingStrategy_addEventHandlers_closure(_this), false, t4));
+ _this.preventDefaultForMouseEvents$0();
+ },
+ updateElementPlacement$1: function(geometry) {
+ this._geometry = geometry;
+ if (this.isEnabled)
+ this.placeElement$0();
+ },
+ disable$0: function(_) {
+ var t2, i, t3, _this = this,
+ t1 = _this.isEnabled = false;
+ _this._geometry = _this._style = _this._lastEditingState = null;
+ for (t2 = _this._subscriptions, i = 0; i < t2.length; ++i)
+ J.cancel$0$z(t2[i]);
+ C.JSArray_methods.set$length(t2, 0);
+ if (_this._appendedToForm) {
+ t1 = _this.get$_inputConfiguration().autofillGroup;
+ t1 = (t1 == null ? null : t1.formElement) != null;
+ }
+ t2 = _this._domElement;
+ if (t1) {
+ t2.blur();
+ t1 = _this._domElement;
+ t1.toString;
+ H._hideAutofillElements(t1, true);
+ t1 = _this.get$_inputConfiguration().autofillGroup;
+ if (t1 != null) {
+ t2 = $.$get$formsOnTheDom();
+ t3 = t1.formIdentifier;
+ t1 = t1.formElement;
+ t2.$indexSet(0, t3, t1);
+ H._hideAutofillElements(t1, true);
+ }
+ } else {
+ t2.toString;
+ J.remove$0$ax(t2);
+ }
+ _this._domElement = null;
+ },
+ setEditingState$1: function(editingState) {
+ var t1;
+ this._lastEditingState = editingState;
+ if (this.isEnabled) {
+ t1 = editingState.baseOffset;
+ t1.toString;
+ if (t1 >= 0) {
+ t1 = editingState.extentOffset;
+ t1.toString;
+ t1 = t1 >= 0;
+ } else
+ t1 = false;
+ t1 = !t1;
+ } else
+ t1 = true;
+ if (t1)
+ return;
+ editingState.toString;
+ t1 = this._domElement;
+ t1.toString;
+ editingState.applyToDomElement$1(t1);
+ },
+ placeElement$0: function() {
+ this._domElement.focus();
+ },
+ placeForm$0: function() {
+ var t2,
+ t1 = this.get$_inputConfiguration().autofillGroup;
+ t1.toString;
+ t2 = this._domElement;
+ t2.toString;
+ t1 = t1.formElement;
+ t1.appendChild(t2);
+ $.$get$domRenderer()._glassPaneElement.appendChild(t1);
+ this._appendedToForm = true;
+ },
+ _handleChange$1: function($event) {
+ var newEditingState, _this = this,
+ t1 = _this._domElement;
+ t1.toString;
+ newEditingState = H.EditingState_EditingState$fromDomElement(t1, _this.get$_inputConfiguration().textCapitalization);
+ if (!newEditingState.$eq(0, _this._lastEditingState)) {
+ _this._lastEditingState = newEditingState;
+ _this._onChange.call$1(newEditingState);
+ }
+ },
+ _maybeSendAction$1: function($event) {
+ var t1;
+ if (type$.KeyboardEvent._is($event))
+ if (this.get$_inputConfiguration().inputType.get$submitActionOnEnter() && $event.keyCode === 13) {
+ $event.preventDefault();
+ t1 = this._onAction;
+ t1.toString;
+ t1.call$1(this.get$_inputConfiguration().inputAction);
+ }
+ },
+ preventDefaultForMouseEvents$0: function() {
+ var t3, _this = this,
+ t1 = _this._subscriptions,
+ t2 = _this._domElement;
+ t2.toString;
+ t3 = type$._ElementEventStreamImpl_legacy_MouseEvent._precomputed1;
+ t1.push(W._EventStreamSubscription$(t2, "mousedown", new H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure(), false, t3));
+ t2 = _this._domElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "mouseup", new H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure0(), false, t3));
+ t2 = _this._domElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "mousemove", new H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure1(), false, t3));
+ }
+ };
+ H.DefaultTextEditingStrategy_addEventHandlers_closure.prototype = {
+ call$1: function(_) {
+ this.$this._domElement.focus();
+ },
+ $signature: 10
+ };
+ H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure.prototype = {
+ call$1: function(_) {
+ _.preventDefault();
+ },
+ $signature: 46
+ };
+ H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure0.prototype = {
+ call$1: function(_) {
+ _.preventDefault();
+ },
+ $signature: 46
+ };
+ H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure1.prototype = {
+ call$1: function(_) {
+ _.preventDefault();
+ },
+ $signature: 46
+ };
+ H.IOSTextEditingStrategy.prototype = {
+ initializeTextEditing$3$onAction$onChange: function(inputConfig, onAction, onChange) {
+ var t1, t2, _this = this;
+ _this.super$DefaultTextEditingStrategy$initializeTextEditing(inputConfig, onAction, onChange);
+ t1 = inputConfig.inputType;
+ t2 = _this._domElement;
+ t2.toString;
+ t1.configureInputMode$1(t2);
+ if (_this.get$_inputConfiguration().autofillGroup != null)
+ _this.placeForm$0();
+ t1 = inputConfig.textCapitalization;
+ t2 = _this._domElement;
+ t2.toString;
+ t1.setAutocapitalizeAttribute$1(t2);
+ },
+ initializeElementPlacement$0: function() {
+ var t1 = this._domElement.style;
+ t1.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), "translate(-9999px, -9999px)", "");
+ this._canPosition = false;
+ },
+ addEventHandlers$0: function() {
+ var t1, t2, t3, t4, _this = this;
+ if (_this.get$_inputConfiguration().autofillGroup != null)
+ C.JSArray_methods.addAll$1(_this._subscriptions, _this.get$_inputConfiguration().autofillGroup.addInputEventListeners$0());
+ t1 = _this._subscriptions;
+ t2 = _this._domElement;
+ t2.toString;
+ t3 = _this.get$_handleChange();
+ t4 = type$._ElementEventStreamImpl_legacy_Event._precomputed1;
+ t1.push(W._EventStreamSubscription$(t2, "input", t3, false, t4));
+ t2 = _this._domElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "keydown", _this.get$_maybeSendAction(), false, type$._ElementEventStreamImpl_legacy_KeyboardEvent._precomputed1));
+ t1.push(W._EventStreamSubscription$(document, "selectionchange", t3, false, type$.legacy_Event));
+ t3 = _this._domElement;
+ t3.toString;
+ t1.push(W._EventStreamSubscription$(t3, "focus", new H.IOSTextEditingStrategy_addEventHandlers_closure(_this), false, t4));
+ _this._addTapListener$0();
+ t3 = _this._domElement;
+ t3.toString;
+ t1.push(W._EventStreamSubscription$(t3, "blur", new H.IOSTextEditingStrategy_addEventHandlers_closure0(_this), false, t4));
+ },
+ updateElementPlacement$1: function(geometry) {
+ var _this = this;
+ _this._geometry = geometry;
+ if (_this.isEnabled && _this._canPosition)
+ _this.placeElement$0();
+ },
+ disable$0: function(_) {
+ var t1;
+ this.super$DefaultTextEditingStrategy$disable(0);
+ t1 = this._positionInputElementTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ this._positionInputElementTimer = null;
+ },
+ _addTapListener$0: function() {
+ var t1 = this._domElement;
+ t1.toString;
+ this._subscriptions.push(W._EventStreamSubscription$(t1, "click", new H.IOSTextEditingStrategy__addTapListener_closure(this), false, type$._ElementEventStreamImpl_legacy_MouseEvent._precomputed1));
+ },
+ _schedulePlacement$0: function() {
+ var t1 = this._positionInputElementTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ this._positionInputElementTimer = P.Timer_Timer(C.Duration_100000, new H.IOSTextEditingStrategy__schedulePlacement_closure(this));
+ },
+ placeElement$0: function() {
+ var t1, t2;
+ this._domElement.focus();
+ t1 = this._geometry;
+ if (t1 != null) {
+ t2 = this._domElement;
+ t2.toString;
+ t1.applyToDomElement$1(t2);
+ }
+ }
+ };
+ H.IOSTextEditingStrategy_addEventHandlers_closure.prototype = {
+ call$1: function(_) {
+ this.$this._schedulePlacement$0();
+ },
+ $signature: 10
+ };
+ H.IOSTextEditingStrategy_addEventHandlers_closure0.prototype = {
+ call$1: function(_) {
+ this.$this.owner.sendTextConnectionClosedToFrameworkIfAny$0();
+ },
+ $signature: 10
+ };
+ H.IOSTextEditingStrategy__addTapListener_closure.prototype = {
+ call$1: function(_) {
+ var t2,
+ t1 = this.$this;
+ if (t1._canPosition) {
+ t2 = t1._domElement.style;
+ t2.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t2, C.CssStyleDeclaration_methods._browserPropertyName$1(t2, "transform"), "translate(-9999px, -9999px)", "");
+ t1._canPosition = false;
+ t1._schedulePlacement$0();
+ }
+ },
+ $signature: 46
+ };
+ H.IOSTextEditingStrategy__schedulePlacement_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._canPosition = true;
+ t1.placeElement$0();
+ },
+ $signature: 0
+ };
+ H.AndroidTextEditingStrategy.prototype = {
+ initializeTextEditing$3$onAction$onChange: function(inputConfig, onAction, onChange) {
+ var t1, t2, _this = this;
+ _this.super$DefaultTextEditingStrategy$initializeTextEditing(inputConfig, onAction, onChange);
+ t1 = inputConfig.inputType;
+ t2 = _this._domElement;
+ t2.toString;
+ t1.configureInputMode$1(t2);
+ if (_this.get$_inputConfiguration().autofillGroup != null)
+ _this.placeForm$0();
+ else {
+ t1 = $.$get$domRenderer()._glassPaneElement;
+ t1.toString;
+ t2 = _this._domElement;
+ t2.toString;
+ t1.appendChild(t2);
+ }
+ t1 = inputConfig.textCapitalization;
+ t2 = _this._domElement;
+ t2.toString;
+ t1.setAutocapitalizeAttribute$1(t2);
+ },
+ addEventHandlers$0: function() {
+ var t1, t2, t3, t4, _this = this;
+ if (_this.get$_inputConfiguration().autofillGroup != null)
+ C.JSArray_methods.addAll$1(_this._subscriptions, _this.get$_inputConfiguration().autofillGroup.addInputEventListeners$0());
+ t1 = _this._subscriptions;
+ t2 = _this._domElement;
+ t2.toString;
+ t3 = _this.get$_handleChange();
+ t4 = type$._ElementEventStreamImpl_legacy_Event._precomputed1;
+ t1.push(W._EventStreamSubscription$(t2, "input", t3, false, t4));
+ t2 = _this._domElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "keydown", _this.get$_maybeSendAction(), false, type$._ElementEventStreamImpl_legacy_KeyboardEvent._precomputed1));
+ t1.push(W._EventStreamSubscription$(document, "selectionchange", t3, false, type$.legacy_Event));
+ t3 = _this._domElement;
+ t3.toString;
+ t1.push(W._EventStreamSubscription$(t3, "blur", new H.AndroidTextEditingStrategy_addEventHandlers_closure(_this), false, t4));
+ },
+ placeElement$0: function() {
+ var t1, t2;
+ this._domElement.focus();
+ t1 = this._geometry;
+ if (t1 != null) {
+ t2 = this._domElement;
+ t2.toString;
+ t1.applyToDomElement$1(t2);
+ }
+ }
+ };
+ H.AndroidTextEditingStrategy_addEventHandlers_closure.prototype = {
+ call$1: function(_) {
+ var t1, t2;
+ $.$get$domRenderer().toString;
+ t1 = document;
+ t1 = t1.hasFocus.apply(t1, []);
+ t1.toString;
+ t2 = this.$this;
+ if (t1)
+ t2._domElement.focus();
+ else
+ t2.owner.sendTextConnectionClosedToFrameworkIfAny$0();
+ },
+ $signature: 10
+ };
+ H.FirefoxTextEditingStrategy.prototype = {
+ initializeTextEditing$3$onAction$onChange: function(inputConfig, onAction, onChange) {
+ this.super$DefaultTextEditingStrategy$initializeTextEditing(inputConfig, onAction, onChange);
+ if (this.get$_inputConfiguration().autofillGroup != null)
+ this.placeForm$0();
+ },
+ addEventHandlers$0: function() {
+ var t1, t2, t3, t4, t5, _this = this;
+ if (_this.get$_inputConfiguration().autofillGroup != null)
+ C.JSArray_methods.addAll$1(_this._subscriptions, _this.get$_inputConfiguration().autofillGroup.addInputEventListeners$0());
+ t1 = _this._subscriptions;
+ t2 = _this._domElement;
+ t2.toString;
+ t3 = _this.get$_handleChange();
+ t4 = type$._ElementEventStreamImpl_legacy_Event._precomputed1;
+ t1.push(W._EventStreamSubscription$(t2, "input", t3, false, t4));
+ t2 = _this._domElement;
+ t2.toString;
+ t5 = type$._ElementEventStreamImpl_legacy_KeyboardEvent._precomputed1;
+ t1.push(W._EventStreamSubscription$(t2, "keydown", _this.get$_maybeSendAction(), false, t5));
+ t2 = _this._domElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "keyup", new H.FirefoxTextEditingStrategy_addEventHandlers_closure(_this), false, t5));
+ t5 = _this._domElement;
+ t5.toString;
+ t1.push(W._EventStreamSubscription$(t5, "select", t3, false, t4));
+ t3 = _this._domElement;
+ t3.toString;
+ t1.push(W._EventStreamSubscription$(t3, "blur", new H.FirefoxTextEditingStrategy_addEventHandlers_closure0(_this), false, t4));
+ _this.preventDefaultForMouseEvents$0();
+ },
+ placeElement$0: function() {
+ var t1, t2, _this = this;
+ _this._domElement.focus();
+ t1 = _this._geometry;
+ if (t1 != null) {
+ t2 = _this._domElement;
+ t2.toString;
+ t1.applyToDomElement$1(t2);
+ }
+ t1 = _this._lastEditingState;
+ if (t1 != null) {
+ t2 = _this._domElement;
+ t2.toString;
+ t1.applyToDomElement$1(t2);
+ }
+ }
+ };
+ H.FirefoxTextEditingStrategy_addEventHandlers_closure.prototype = {
+ call$1: function($event) {
+ this.$this._handleChange$1($event);
+ },
+ $signature: 281
+ };
+ H.FirefoxTextEditingStrategy_addEventHandlers_closure0.prototype = {
+ call$1: function(_) {
+ this.$this._domElement.focus();
+ },
+ $signature: 10
+ };
+ H.TextEditingChannel.prototype = {
+ saveForms$0: function() {
+ $.$get$formsOnTheDom().forEach$1(0, new H.TextEditingChannel_saveForms_closure());
+ },
+ cleanForms$0: function() {
+ var t1, t2, t3;
+ for (t1 = $.$get$formsOnTheDom(), t1 = t1.get$values(t1), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
+ t2 = t1.get$current(t1);
+ t3 = t2.parentNode;
+ if (t3 != null)
+ t3.removeChild(t2);
+ }
+ $.$get$formsOnTheDom().clear$0(0);
+ }
+ };
+ H.TextEditingChannel_saveForms_closure.prototype = {
+ call$2: function(identifier, form) {
+ type$.InputElement._as(J.get$first$ax(form.getElementsByClassName("submitBtn"))).click();
+ },
+ $signature: 280
+ };
+ H.HybridTextEditing.prototype = {
+ get$channel: function(_) {
+ return this.__HybridTextEditing_channel_isSet ? this.__HybridTextEditing_channel : H.throwExpression(H.LateError$fieldNI("channel"));
+ },
+ set$_defaultEditingElement: function(t1) {
+ if (this.__HybridTextEditing__defaultEditingElement_isSet)
+ throw H.wrapException(H.LateError$fieldAI("_defaultEditingElement"));
+ else {
+ this.__HybridTextEditing__defaultEditingElement_isSet = true;
+ this.__HybridTextEditing__defaultEditingElement = t1;
+ }
+ },
+ get$editingElement: function() {
+ var t1 = this._customEditingElement;
+ if (t1 == null)
+ t1 = this.__HybridTextEditing__defaultEditingElement_isSet ? this.__HybridTextEditing__defaultEditingElement : H.throwExpression(H.LateError$fieldNI("_defaultEditingElement"));
+ return t1;
+ },
+ useCustomEditableElement$1: function(customEditingElement) {
+ var _this = this;
+ if (_this.isEditing && customEditingElement != _this._customEditingElement) {
+ _this.isEditing = false;
+ _this.get$editingElement().disable$0(0);
+ }
+ _this._customEditingElement = customEditingElement;
+ },
+ get$_configuration: function() {
+ return this.__HybridTextEditing__configuration_isSet ? this.__HybridTextEditing__configuration : H.throwExpression(H.LateError$fieldNI("_configuration"));
+ },
+ _startEditing$0: function() {
+ var t1, t2, _this = this;
+ _this.isEditing = true;
+ t1 = _this.get$editingElement();
+ t1.initializeTextEditing$3$onAction$onChange(_this.get$_configuration(), new H.HybridTextEditing__startEditing_closure(_this), new H.HybridTextEditing__startEditing_closure0(_this));
+ t1.addEventHandlers$0();
+ t2 = t1._lastEditingState;
+ if (t2 != null)
+ t1.setEditingState$1(t2);
+ t1._domElement.focus();
+ },
+ sendTextConnectionClosedToFrameworkIfAny$0: function() {
+ var t1, t2, _this = this;
+ if (_this.isEditing) {
+ _this.isEditing = false;
+ _this.get$editingElement().disable$0(0);
+ t1 = _this.get$channel(_this);
+ t2 = _this._clientId;
+ t1.toString;
+ $.$get$EnginePlatformDispatcher__instance().invokeOnPlatformMessage$3("flutter/textinput", C.C_JSONMethodCodec.encodeMethodCall$1(new H.MethodCall0("TextInputClient.onConnectionClosed", [t2])), H._engine___emptyCallback$closure());
+ }
+ }
+ };
+ H.HybridTextEditing__startEditing_closure0.prototype = {
+ call$1: function(editingState) {
+ var t1 = this.$this,
+ t2 = t1.get$channel(t1);
+ t1 = t1._clientId;
+ t2.toString;
+ $.$get$EnginePlatformDispatcher__instance().invokeOnPlatformMessage$3("flutter/textinput", C.C_JSONMethodCodec.encodeMethodCall$1(new H.MethodCall0("TextInputClient.updateEditingState", [t1, editingState.toFlutter$0()])), H._engine___emptyCallback$closure());
+ },
+ $signature: 279
+ };
+ H.HybridTextEditing__startEditing_closure.prototype = {
+ call$1: function(inputAction) {
+ var t1 = this.$this,
+ t2 = t1.get$channel(t1);
+ t1 = t1._clientId;
+ t2.toString;
+ $.$get$EnginePlatformDispatcher__instance().invokeOnPlatformMessage$3("flutter/textinput", C.C_JSONMethodCodec.encodeMethodCall$1(new H.MethodCall0("TextInputClient.performAction", [t1, inputAction])), H._engine___emptyCallback$closure());
+ },
+ $signature: 278
+ };
+ H.EditableTextStyle.prototype = {
+ applyToDomElement$1: function(domElement) {
+ var _this = this,
+ t1 = domElement.style,
+ t2 = H.textAlignToCssValue(_this.textAlign, _this.textDirection);
+ t1.textAlign = t2;
+ t2 = _this.fontWeight + " " + H.S(_this.fontSize) + "px " + H.S(H.canonicalizeFontFamily(_this.fontFamily));
+ t1.font = t2;
+ }
+ };
+ H.EditableTextGeometry.prototype = {
+ applyToDomElement$1: function(domElement) {
+ var cssTransform = H.float64ListToCssTransform(this.globalTransform),
+ t1 = domElement.style,
+ t2 = H.S(this.width) + "px";
+ t1.width = t2;
+ t2 = H.S(this.height) + "px";
+ t1.height = t2;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t1, C.CssStyleDeclaration_methods._browserPropertyName$1(t1, "transform"), cssTransform, "");
+ }
+ };
+ H.TransformKind.prototype = {
+ toString$0: function(_) {
+ return this.__engine$_name;
+ }
+ };
+ H.Matrix40.prototype = {
+ setFrom$1: function(arg) {
+ var argStorage = arg.__engine$_m4storage,
+ t1 = this.__engine$_m4storage;
+ t1[15] = argStorage[15];
+ t1[14] = argStorage[14];
+ t1[13] = argStorage[13];
+ t1[12] = argStorage[12];
+ t1[11] = argStorage[11];
+ t1[10] = argStorage[10];
+ t1[9] = argStorage[9];
+ t1[8] = argStorage[8];
+ t1[7] = argStorage[7];
+ t1[6] = argStorage[6];
+ t1[5] = argStorage[5];
+ t1[4] = argStorage[4];
+ t1[3] = argStorage[3];
+ t1[2] = argStorage[2];
+ t1[1] = argStorage[1];
+ t1[0] = argStorage[0];
+ },
+ $index: function(_, i) {
+ return this.__engine$_m4storage[i];
+ },
+ translate$3: function(_, x, y, z) {
+ var t1 = this.__engine$_m4storage,
+ t2 = t1[0],
+ t3 = t1[4],
+ t4 = t1[8],
+ t5 = t1[12],
+ t6 = t1[1],
+ t7 = t1[5],
+ t8 = t1[9],
+ t9 = t1[13],
+ t10 = t1[2],
+ t11 = t1[6],
+ t12 = t1[10],
+ t13 = t1[14],
+ t14 = t1[3],
+ t15 = t1[7],
+ t16 = t1[11],
+ t17 = t1[15];
+ t1[12] = t2 * x + t3 * y + t4 * z + t5;
+ t1[13] = t6 * x + t7 * y + t8 * z + t9;
+ t1[14] = t10 * x + t11 * y + t12 * z + t13;
+ t1[15] = t14 * x + t15 * y + t16 * z + t17;
+ },
+ translate$2: function($receiver, x, y) {
+ return this.translate$3($receiver, x, y, 0);
+ },
+ scale$3: function(_, x, y, z) {
+ var sy = y == null ? x : y,
+ t1 = this.__engine$_m4storage;
+ t1[0] = t1[0] * x;
+ t1[1] = t1[1] * x;
+ t1[2] = t1[2] * x;
+ t1[3] = t1[3] * x;
+ t1[4] = t1[4] * sy;
+ t1[5] = t1[5] * sy;
+ t1[6] = t1[6] * sy;
+ t1[7] = t1[7] * sy;
+ t1[8] = t1[8] * x;
+ t1[9] = t1[9] * x;
+ t1[10] = t1[10] * x;
+ t1[11] = t1[11] * x;
+ t1[12] = t1[12];
+ t1[13] = t1[13];
+ t1[14] = t1[14];
+ t1[15] = t1[15];
+ },
+ scale$2: function($receiver, x, y) {
+ return this.scale$3($receiver, x, y, null);
+ },
+ setIdentity$0: function() {
+ var t1 = this.__engine$_m4storage;
+ t1[0] = 1;
+ t1[1] = 0;
+ t1[2] = 0;
+ t1[3] = 0;
+ t1[4] = 0;
+ t1[5] = 1;
+ t1[6] = 0;
+ t1[7] = 0;
+ t1[8] = 0;
+ t1[9] = 0;
+ t1[10] = 1;
+ t1[11] = 0;
+ t1[12] = 0;
+ t1[13] = 0;
+ t1[14] = 0;
+ t1[15] = 1;
+ },
+ $mul: function(_, arg) {
+ var t1;
+ if (typeof arg == "number") {
+ t1 = new H.Matrix40(new Float32Array(16));
+ t1.setFrom$1(this);
+ t1.scale$3(0, arg, null, null);
+ return t1;
+ }
+ if (arg instanceof H.Matrix40)
+ return this.multiplied$1(arg);
+ throw H.wrapException(P.ArgumentError$(arg));
+ },
+ isIdentity$0: function(_) {
+ var t1 = this.__engine$_m4storage;
+ return t1[0] === 1 && t1[1] === 0 && t1[2] === 0 && t1[3] === 0 && t1[4] === 0 && t1[5] === 1 && t1[6] === 0 && t1[7] === 0 && t1[8] === 0 && t1[9] === 0 && t1[10] === 1 && t1[11] === 0 && t1[12] === 0 && t1[13] === 0 && t1[14] === 0 && t1[15] === 1;
+ },
+ rotate$2: function(_, axis, angle) {
+ var m23, m31, m32, m33, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13,
+ len = Math.sqrt(axis.get$length2()),
+ axisStorage = axis.__engine$_v3storage,
+ x = axisStorage[0] / len,
+ y = axisStorage[1] / len,
+ z = axisStorage[2] / len,
+ c = Math.cos(angle),
+ s = Math.sin(angle),
+ $C = 1 - c,
+ m11 = x * x * $C + c,
+ t1 = z * s,
+ m12 = x * y * $C - t1,
+ t2 = y * s,
+ m13 = x * z * $C + t2,
+ m21 = y * x * $C + t1,
+ m22 = y * y * $C + c;
+ t1 = x * s;
+ m23 = y * z * $C - t1;
+ m31 = z * x * $C - t2;
+ m32 = z * y * $C + t1;
+ m33 = z * z * $C + c;
+ t1 = this.__engine$_m4storage;
+ t2 = t1[0];
+ t3 = t1[4];
+ t4 = t1[8];
+ t5 = t1[1];
+ t6 = t1[5];
+ t7 = t1[9];
+ t8 = t1[2];
+ t9 = t1[6];
+ t10 = t1[10];
+ t11 = t1[3];
+ t12 = t1[7];
+ t13 = t1[11];
+ t1[0] = t2 * m11 + t3 * m21 + t4 * m31;
+ t1[1] = t5 * m11 + t6 * m21 + t7 * m31;
+ t1[2] = t8 * m11 + t9 * m21 + t10 * m31;
+ t1[3] = t11 * m11 + t12 * m21 + t13 * m31;
+ t1[4] = t2 * m12 + t3 * m22 + t4 * m32;
+ t1[5] = t5 * m12 + t6 * m22 + t7 * m32;
+ t1[6] = t8 * m12 + t9 * m22 + t10 * m32;
+ t1[7] = t11 * m12 + t12 * m22 + t13 * m32;
+ t1[8] = t2 * m13 + t3 * m23 + t4 * m33;
+ t1[9] = t5 * m13 + t6 * m23 + t7 * m33;
+ t1[10] = t8 * m13 + t9 * m23 + t10 * m33;
+ t1[11] = t11 * m13 + t12 * m23 + t13 * m33;
+ },
+ copyInverse$1: function(arg) {
+ var invDet, t1, t2, t3,
+ argStorage = arg.__engine$_m4storage,
+ a00 = argStorage[0],
+ a01 = argStorage[1],
+ a02 = argStorage[2],
+ a03 = argStorage[3],
+ a10 = argStorage[4],
+ a11 = argStorage[5],
+ a12 = argStorage[6],
+ a13 = argStorage[7],
+ a20 = argStorage[8],
+ a21 = argStorage[9],
+ a22 = argStorage[10],
+ a23 = argStorage[11],
+ a30 = argStorage[12],
+ a31 = argStorage[13],
+ a32 = argStorage[14],
+ a33 = argStorage[15],
+ b00 = a00 * a11 - a01 * a10,
+ b01 = a00 * a12 - a02 * a10,
+ b02 = a00 * a13 - a03 * a10,
+ b03 = a01 * a12 - a02 * a11,
+ b04 = a01 * a13 - a03 * a11,
+ b05 = a02 * a13 - a03 * a12,
+ b06 = a20 * a31 - a21 * a30,
+ b07 = a20 * a32 - a22 * a30,
+ b08 = a20 * a33 - a23 * a30,
+ b09 = a21 * a32 - a22 * a31,
+ b10 = a21 * a33 - a23 * a31,
+ b11 = a22 * a33 - a23 * a32,
+ det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
+ if (det === 0) {
+ this.setFrom$1(arg);
+ return 0;
+ }
+ invDet = 1 / det;
+ t1 = this.__engine$_m4storage;
+ t1[0] = (a11 * b11 - a12 * b10 + a13 * b09) * invDet;
+ t1[1] = (-a01 * b11 + a02 * b10 - a03 * b09) * invDet;
+ t1[2] = (a31 * b05 - a32 * b04 + a33 * b03) * invDet;
+ t1[3] = (-a21 * b05 + a22 * b04 - a23 * b03) * invDet;
+ t2 = -a10;
+ t1[4] = (t2 * b11 + a12 * b08 - a13 * b07) * invDet;
+ t1[5] = (a00 * b11 - a02 * b08 + a03 * b07) * invDet;
+ t3 = -a30;
+ t1[6] = (t3 * b05 + a32 * b02 - a33 * b01) * invDet;
+ t1[7] = (a20 * b05 - a22 * b02 + a23 * b01) * invDet;
+ t1[8] = (a10 * b10 - a11 * b08 + a13 * b06) * invDet;
+ t1[9] = (-a00 * b10 + a01 * b08 - a03 * b06) * invDet;
+ t1[10] = (a30 * b04 - a31 * b02 + a33 * b00) * invDet;
+ t1[11] = (-a20 * b04 + a21 * b02 - a23 * b00) * invDet;
+ t1[12] = (t2 * b09 + a11 * b07 - a12 * b06) * invDet;
+ t1[13] = (a00 * b09 - a01 * b07 + a02 * b06) * invDet;
+ t1[14] = (t3 * b03 + a31 * b01 - a32 * b00) * invDet;
+ t1[15] = (a20 * b03 - a21 * b01 + a22 * b00) * invDet;
+ return det;
+ },
+ multiply$1: function(_, arg) {
+ var t1 = this.__engine$_m4storage,
+ m00 = t1[0],
+ m01 = t1[4],
+ m02 = t1[8],
+ m03 = t1[12],
+ m10 = t1[1],
+ m11 = t1[5],
+ m12 = t1[9],
+ m13 = t1[13],
+ m20 = t1[2],
+ m21 = t1[6],
+ m22 = t1[10],
+ m23 = t1[14],
+ m30 = t1[3],
+ m31 = t1[7],
+ m32 = t1[11],
+ m33 = t1[15],
+ argStorage = arg.__engine$_m4storage,
+ n00 = argStorage[0],
+ n01 = argStorage[4],
+ n02 = argStorage[8],
+ n03 = argStorage[12],
+ n10 = argStorage[1],
+ n11 = argStorage[5],
+ n12 = argStorage[9],
+ n13 = argStorage[13],
+ n20 = argStorage[2],
+ n21 = argStorage[6],
+ n22 = argStorage[10],
+ n23 = argStorage[14],
+ n30 = argStorage[3],
+ n31 = argStorage[7],
+ n32 = argStorage[11],
+ n33 = argStorage[15];
+ t1[0] = m00 * n00 + m01 * n10 + m02 * n20 + m03 * n30;
+ t1[4] = m00 * n01 + m01 * n11 + m02 * n21 + m03 * n31;
+ t1[8] = m00 * n02 + m01 * n12 + m02 * n22 + m03 * n32;
+ t1[12] = m00 * n03 + m01 * n13 + m02 * n23 + m03 * n33;
+ t1[1] = m10 * n00 + m11 * n10 + m12 * n20 + m13 * n30;
+ t1[5] = m10 * n01 + m11 * n11 + m12 * n21 + m13 * n31;
+ t1[9] = m10 * n02 + m11 * n12 + m12 * n22 + m13 * n32;
+ t1[13] = m10 * n03 + m11 * n13 + m12 * n23 + m13 * n33;
+ t1[2] = m20 * n00 + m21 * n10 + m22 * n20 + m23 * n30;
+ t1[6] = m20 * n01 + m21 * n11 + m22 * n21 + m23 * n31;
+ t1[10] = m20 * n02 + m21 * n12 + m22 * n22 + m23 * n32;
+ t1[14] = m20 * n03 + m21 * n13 + m22 * n23 + m23 * n33;
+ t1[3] = m30 * n00 + m31 * n10 + m32 * n20 + m33 * n30;
+ t1[7] = m30 * n01 + m31 * n11 + m32 * n21 + m33 * n31;
+ t1[11] = m30 * n02 + m31 * n12 + m32 * n22 + m33 * n32;
+ t1[15] = m30 * n03 + m31 * n13 + m32 * n23 + m33 * n33;
+ },
+ multiplied$1: function(arg) {
+ var t1 = new H.Matrix40(new Float32Array(16));
+ t1.setFrom$1(this);
+ t1.multiply$1(0, arg);
+ return t1;
+ },
+ transform2$1: function(vector) {
+ var x = vector[0],
+ y = vector[1],
+ t1 = this.__engine$_m4storage;
+ vector[0] = t1[0] * x + t1[4] * y + t1[12];
+ vector[1] = t1[1] * x + t1[5] * y + t1[13];
+ },
+ toString$0: function(_) {
+ var t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ };
+ H.Vector30.prototype = {
+ $index: function(_, i) {
+ return this.__engine$_v3storage[i];
+ },
+ get$length: function(_) {
+ var t1 = this.__engine$_v3storage,
+ t2 = t1[0],
+ t3 = t1[1];
+ t1 = t1[2];
+ return Math.sqrt(t2 * t2 + t3 * t3 + t1 * t1);
+ },
+ get$length2: function() {
+ var t1 = this.__engine$_v3storage,
+ t2 = t1[0],
+ t3 = t1[1];
+ t1 = t1[2];
+ return t2 * t2 + t3 * t3 + t1 * t1;
+ }
+ };
+ H.WebExperiments.prototype = {
+ WebExperiments$_$0: function() {
+ $.$get$_context().$indexSet(0, "_flutter_internal_update_experiment", this.get$updateExperiment());
+ $._hotRestartListeners.push(new H.WebExperiments$__closure());
+ },
+ updateExperiment$2: function($name, enabled) {
+ switch ($name) {
+ case "useCanvasText":
+ this._useCanvasText = enabled !== false;
+ break;
+ }
+ }
+ };
+ H.WebExperiments$__closure.prototype = {
+ call$0: function() {
+ $.$get$_context().$indexSet(0, "_flutter_internal_update_experiment", null);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ H.EngineFlutterWindow.prototype = {
+ EngineFlutterWindow$2: function(_windowId, platformDispatcher) {
+ var _this = this,
+ engineDispatcher = _this.platformDispatcher,
+ t1 = _this._windowId;
+ engineDispatcher._windows.$indexSet(0, t1, _this);
+ engineDispatcher._windowConfigurations.$indexSet(0, t1, P.ViewConfiguration$());
+ _this._addUrlStrategyListener$0();
+ },
+ _addUrlStrategyListener$0: function() {
+ self._flutter_web_set_location_strategy = P.allowInterop(new H.EngineFlutterWindow__addUrlStrategyListener_closure(this));
+ $._hotRestartListeners.push(new H.EngineFlutterWindow__addUrlStrategyListener_closure0());
+ },
+ get$browserHistory: function() {
+ var t1 = this._browserHistory;
+ if (t1 == null) {
+ t1 = new H.MultiEntriesBrowserHistory(C.C_HashUrlStrategy);
+ t1.MultiEntriesBrowserHistory$1$urlStrategy(C.C_HashUrlStrategy);
+ this._browserHistory = t1;
+ }
+ return t1;
+ },
+ _useSingleEntryBrowserHistory$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this, strategy, t1;
+ var $async$_useSingleEntryBrowserHistory$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._browserHistory;
+ if (t1 instanceof H.SingleEntryBrowserHistory) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ strategy = t1 == null ? null : t1.get$urlStrategy();
+ t1 = $async$self._browserHistory;
+ $async$goto = 3;
+ return P._asyncAwait(t1 == null ? null : t1.tearDown$0(), $async$_useSingleEntryBrowserHistory$0);
+ case 3:
+ // returning from await.
+ t1 = new H.SingleEntryBrowserHistory(strategy, P.LinkedHashMap_LinkedHashMap$_literal(["flutter", true], type$.String, type$.bool));
+ t1.SingleEntryBrowserHistory$1$urlStrategy(strategy);
+ $async$self._browserHistory = t1;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_useSingleEntryBrowserHistory$0, $async$completer);
+ },
+ handleNavigationMessage$1: function(data) {
+ return this.handleNavigationMessage$body$EngineFlutterWindow(data);
+ },
+ handleNavigationMessage$body$EngineFlutterWindow: function(data) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.bool),
+ $async$returnValue, $async$self = this, t1, decoded, $arguments;
+ var $async$handleNavigationMessage$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ decoded = new H.JSONMethodCodec().decodeMethodCall$1(data);
+ $arguments = decoded.$arguments;
+ case 3:
+ // switch
+ switch (decoded.method) {
+ case "routeUpdated":
+ // goto case
+ $async$goto = 5;
+ break;
+ case "routeInformationUpdated":
+ // goto case
+ $async$goto = 6;
+ break;
+ default:
+ // goto after switch
+ $async$goto = 4;
+ break;
+ }
+ break;
+ case 5:
+ // case
+ $async$goto = 7;
+ return P._asyncAwait($async$self._useSingleEntryBrowserHistory$0(), $async$handleNavigationMessage$1);
+ case 7:
+ // returning from await.
+ $async$self.get$browserHistory().setRouteName$1(J.$index$asx($arguments, "routeName"));
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 6:
+ // case
+ t1 = J.getInterceptor$asx($arguments);
+ $async$self.get$browserHistory().setRouteName$2$state(t1.$index($arguments, "location"), t1.$index($arguments, "state"));
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 4:
+ // after switch
+ $async$returnValue = false;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$handleNavigationMessage$1, $async$completer);
+ },
+ get$viewConfiguration: function() {
+ var t1 = this.platformDispatcher._windowConfigurations.$index(0, this._windowId);
+ return t1 == null ? P.ViewConfiguration$() : t1;
+ },
+ get$physicalSize: function() {
+ if (this._physicalSize == null)
+ this._computePhysicalSize$0();
+ var t1 = this._physicalSize;
+ t1.toString;
+ return t1;
+ },
+ _computePhysicalSize$0: function() {
+ var t1, windowInnerWidth, windowInnerHeight, _this = this,
+ viewport = window.visualViewport;
+ if (viewport != null) {
+ t1 = viewport.width;
+ t1.toString;
+ windowInnerWidth = t1 * _this.get$devicePixelRatio(_this);
+ t1 = viewport.height;
+ t1.toString;
+ windowInnerHeight = t1 * _this.get$devicePixelRatio(_this);
+ } else {
+ t1 = window.innerWidth;
+ t1.toString;
+ windowInnerWidth = t1 * _this.get$devicePixelRatio(_this);
+ t1 = window.innerHeight;
+ t1.toString;
+ windowInnerHeight = t1 * _this.get$devicePixelRatio(_this);
+ }
+ _this._physicalSize = new P.Size(windowInnerWidth, windowInnerHeight);
+ },
+ computeOnScreenKeyboardInsets$0: function() {
+ var t1, windowInnerHeight, _this = this,
+ viewport = window.visualViewport;
+ if (viewport != null) {
+ t1 = viewport.height;
+ t1.toString;
+ windowInnerHeight = t1 * _this.get$devicePixelRatio(_this);
+ } else {
+ t1 = window.innerHeight;
+ t1.toString;
+ windowInnerHeight = t1 * _this.get$devicePixelRatio(_this);
+ }
+ _this._viewInsets = new H.WindowPadding(0, 0, 0, _this._physicalSize._dy - windowInnerHeight);
+ },
+ isRotation$0: function() {
+ var t1, height, width, t2, _this = this;
+ if (window.visualViewport != null) {
+ t1 = window.visualViewport.height;
+ t1.toString;
+ height = t1 * _this.get$devicePixelRatio(_this);
+ t1 = window.visualViewport.width;
+ t1.toString;
+ width = t1 * _this.get$devicePixelRatio(_this);
+ } else {
+ t1 = window.innerHeight;
+ t1.toString;
+ height = t1 * _this.get$devicePixelRatio(_this);
+ t1 = window.innerWidth;
+ t1.toString;
+ width = t1 * _this.get$devicePixelRatio(_this);
+ }
+ t1 = _this._physicalSize;
+ if (t1 != null) {
+ t2 = t1._dy;
+ if (t2 !== height && t1._dx !== width) {
+ t1 = t1._dx;
+ if (!(t2 > t1 && height < width))
+ t1 = t1 > t2 && width < height;
+ else
+ t1 = true;
+ if (t1)
+ return true;
+ }
+ }
+ return false;
+ }
+ };
+ H.EngineFlutterWindow__addUrlStrategyListener_closure.prototype = {
+ call$1: function(jsStrategy) {
+ var strategy = jsStrategy == null ? null : new H.CustomUrlStrategy(jsStrategy),
+ t1 = new H.MultiEntriesBrowserHistory(strategy);
+ t1.MultiEntriesBrowserHistory$1$urlStrategy(strategy);
+ this.$this._browserHistory = t1;
+ },
+ $signature: 264
+ };
+ H.EngineFlutterWindow__addUrlStrategyListener_closure0.prototype = {
+ call$0: function() {
+ self._flutter_web_set_location_strategy = null;
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ H.EngineSingletonFlutterWindow.prototype = {
+ get$devicePixelRatio: function(_) {
+ var t1 = this._debugDevicePixelRatio;
+ return t1 == null ? H.EnginePlatformDispatcher_browserDevicePixelRatio() : t1;
+ }
+ };
+ H.WindowPadding.prototype = {};
+ H._DomCanvas_EngineCanvas_SaveElementStackTracking.prototype = {};
+ H._PersistedClipRect_PersistedContainerSurface__DomClip.prototype = {
+ adoptElements$1: function(oldSurface) {
+ this.super$PersistedSurface$adoptElements(oldSurface);
+ this._DomClip__childContainer = oldSurface._DomClip__childContainer;
+ oldSurface._DomClip__childContainer = null;
+ },
+ discard$0: function() {
+ this.super$PersistedContainerSurface$discard();
+ this._DomClip__childContainer = null;
+ }
+ };
+ H._PersistedPhysicalShape_PersistedContainerSurface__DomClip.prototype = {
+ adoptElements$1: function(oldSurface) {
+ this.super$PersistedSurface$adoptElements(oldSurface);
+ this._DomClip__childContainer = oldSurface._DomClip__childContainer;
+ oldSurface._DomClip__childContainer = null;
+ },
+ discard$0: function() {
+ this.super$PersistedContainerSurface$discard();
+ this._DomClip__childContainer = null;
+ }
+ };
+ H.__MouseAdapter__BaseAdapter__WheelEventListenerMixin.prototype = {};
+ H.__PointerAdapter__BaseAdapter__WheelEventListenerMixin.prototype = {};
+ H.JS_CONST.prototype = {};
+ J.Interceptor.prototype = {
+ $eq: function(receiver, other) {
+ return receiver === other;
+ },
+ get$hashCode: function(receiver) {
+ return H.Primitives_objectHashCode(receiver);
+ },
+ toString$0: function(receiver) {
+ return "Instance of '" + H.S(H.Primitives_objectTypeName(receiver)) + "'";
+ },
+ noSuchMethod$1: function(receiver, invocation) {
+ throw H.wrapException(P.NoSuchMethodError$(receiver, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments()));
+ },
+ get$runtimeType: function(receiver) {
+ return H.getRuntimeType(receiver);
+ }
+ };
+ J.JSBool.prototype = {
+ toString$0: function(receiver) {
+ return String(receiver);
+ },
+ $xor: function(receiver, other) {
+ return receiver;
+ },
+ get$hashCode: function(receiver) {
+ return receiver ? 519018 : 218159;
+ },
+ get$runtimeType: function(receiver) {
+ return C.Type_bool_lhE;
+ },
+ $isbool: 1
+ };
+ J.JSNull.prototype = {
+ $eq: function(receiver, other) {
+ return null == other;
+ },
+ toString$0: function(receiver) {
+ return "null";
+ },
+ get$hashCode: function(receiver) {
+ return 0;
+ },
+ get$runtimeType: function(receiver) {
+ return C.Type_Null_Yyn;
+ },
+ noSuchMethod$1: function(receiver, invocation) {
+ return this.super$Interceptor$noSuchMethod(receiver, invocation);
+ },
+ $isNull: 1
+ };
+ J.JavaScriptObject.prototype = {
+ get$hashCode: function(receiver) {
+ return 0;
+ },
+ get$runtimeType: function(receiver) {
+ return C.Type_JSObject_8k0;
+ },
+ toString$0: function(receiver) {
+ return String(receiver);
+ },
+ $isJSObject: 1,
+ $isSkClipOp: 1,
+ $isJsUrlStrategy: 1,
+ get$ClipOp: function(obj) {
+ return obj.ClipOp;
+ },
+ computeTonalColors$1: function(receiver, p0) {
+ return receiver.computeTonalColors(p0);
+ },
+ then$1$1: function(receiver, p0) {
+ return receiver.then(p0);
+ },
+ then$1: function(receiver, p0) {
+ return receiver.then(p0);
+ },
+ get$width: function(obj) {
+ return obj.width;
+ },
+ get$height: function(obj) {
+ return obj.height;
+ },
+ get$dispose: function(obj) {
+ return obj.dispose;
+ },
+ dispose$0: function(receiver) {
+ return receiver.dispose();
+ },
+ setResourceCacheLimitBytes$1: function(receiver, p0) {
+ return receiver.setResourceCacheLimitBytes(p0);
+ },
+ delete$0: function(receiver) {
+ return receiver.delete();
+ },
+ get$value: function(obj) {
+ return obj.value;
+ },
+ get$Difference: function(obj) {
+ return obj.Difference;
+ },
+ get$Intersect: function(obj) {
+ return obj.Intersect;
+ },
+ addRect$1: function(receiver, p0) {
+ return receiver.addRect(p0);
+ },
+ get$close: function(obj) {
+ return obj.close;
+ },
+ close$0: function(receiver) {
+ return receiver.close();
+ },
+ get$contains: function(obj) {
+ return obj.contains;
+ },
+ contains$2: function(receiver, p0, p1) {
+ return receiver.contains(p0, p1);
+ },
+ getBounds$0: function(receiver) {
+ return receiver.getBounds();
+ },
+ lineTo$2: function(receiver, p0, p1) {
+ return receiver.lineTo(p0, p1);
+ },
+ moveTo$2: function(receiver, p0, p1) {
+ return receiver.moveTo(p0, p1);
+ },
+ reset$0: function(receiver) {
+ return receiver.reset();
+ },
+ get$isEmpty: function(obj) {
+ return obj.isEmpty;
+ },
+ get$transform: function(obj) {
+ return obj.transform;
+ },
+ get$next: function(obj) {
+ return obj.next;
+ },
+ get$length: function(obj) {
+ return obj.length;
+ },
+ clipPath$3: function(receiver, p0, p1, p2) {
+ return receiver.clipPath(p0, p1, p2);
+ },
+ clipRRect$3: function(receiver, p0, p1, p2) {
+ return receiver.clipRRect(p0, p1, p2);
+ },
+ clipRect$3: function(receiver, p0, p1, p2) {
+ return receiver.clipRect(p0, p1, p2);
+ },
+ drawCircle$4: function(receiver, p0, p1, p2, p3) {
+ return receiver.drawCircle(p0, p1, p2, p3);
+ },
+ drawDRRect$3: function(receiver, p0, p1, p2) {
+ return receiver.drawDRRect(p0, p1, p2);
+ },
+ drawLine$5: function(receiver, p0, p1, p2, p3, p4) {
+ return receiver.drawLine(p0, p1, p2, p3, p4);
+ },
+ drawPath$2: function(receiver, p0, p1) {
+ return receiver.drawPath(p0, p1);
+ },
+ drawRRect$2: function(receiver, p0, p1) {
+ return receiver.drawRRect(p0, p1);
+ },
+ drawRect$2: function(receiver, p0, p1) {
+ return receiver.drawRect(p0, p1);
+ },
+ drawShadow$7: function(receiver, p0, p1, p2, p3, p4, p5, p6) {
+ return receiver.drawShadow(p0, p1, p2, p3, p4, p5, p6);
+ },
+ save$0: function(receiver) {
+ return receiver.save();
+ },
+ saveLayer$4: function(receiver, p0, p1, p2, p3) {
+ return receiver.saveLayer(p0, p1, p2, p3);
+ },
+ restore$0: function(receiver) {
+ return receiver.restore();
+ },
+ rotate$3: function(receiver, p0, p1, p2) {
+ return receiver.rotate(p0, p1, p2);
+ },
+ scale$2: function(receiver, p0, p1) {
+ return receiver.scale(p0, p1);
+ },
+ concat$1: function(receiver, p0) {
+ return receiver.concat(p0);
+ },
+ translate$2: function(receiver, p0, p1) {
+ return receiver.translate(p0, p1);
+ },
+ drawParagraph$3: function(receiver, p0, p1, p2) {
+ return receiver.drawParagraph(p0, p1, p2);
+ },
+ addText$1: function(receiver, p0) {
+ return receiver.addText(p0);
+ },
+ pushStyle$1: function(receiver, p0) {
+ return receiver.pushStyle(p0);
+ },
+ pop$0: function(receiver) {
+ return receiver.pop();
+ },
+ build$0: function(receiver) {
+ return receiver.build();
+ },
+ set$textAlign: function(obj, v) {
+ return obj.textAlign = v;
+ },
+ set$textDirection: function(obj, v) {
+ return obj.textDirection = v;
+ },
+ set$textHeightBehavior: function(obj, v) {
+ return obj.textHeightBehavior = v;
+ },
+ set$maxLines: function(obj, v) {
+ return obj.maxLines = v;
+ },
+ set$ellipsis: function(obj, v) {
+ return obj.ellipsis = v;
+ },
+ set$strutStyle: function(obj, v) {
+ return obj.strutStyle = v;
+ },
+ set$color: function(obj, v) {
+ return obj.color = v;
+ },
+ set$decoration: function(obj, v) {
+ return obj.decoration = v;
+ },
+ set$textBaseline: function(obj, v) {
+ return obj.textBaseline = v;
+ },
+ set$locale: function(obj, v) {
+ return obj.locale = v;
+ },
+ set$width: function(obj, v) {
+ return obj.width = v;
+ },
+ set$height: function(obj, v) {
+ return obj.height = v;
+ },
+ set$offset: function(obj, v) {
+ return obj.offset = v;
+ },
+ set$value: function(obj, v) {
+ return obj.value = v;
+ },
+ get$didExceedMaxLines: function(obj) {
+ return obj.didExceedMaxLines;
+ },
+ getWordBoundary$1: function(receiver, p0) {
+ return receiver.getWordBoundary(p0);
+ },
+ layout$1: function(receiver, p0) {
+ return receiver.layout(p0);
+ },
+ get$start: function(obj) {
+ return obj.start;
+ },
+ start$1: function(receiver, p0) {
+ return receiver.start(p0);
+ },
+ get$end: function(obj) {
+ return obj.end;
+ },
+ get$ambient: function(obj) {
+ return obj.ambient;
+ },
+ get$spot: function(obj) {
+ return obj.spot;
+ },
+ get$size: function(obj) {
+ return obj.size;
+ },
+ addPopStateListener$1: function(receiver, p0) {
+ return receiver.addPopStateListener(p0);
+ },
+ getPath$0: function(receiver) {
+ return receiver.getPath();
+ },
+ getState$0: function(receiver) {
+ return receiver.getState();
+ },
+ pushState$3: function(receiver, p0, p1, p2) {
+ return receiver.pushState(p0, p1, p2);
+ },
+ replaceState$3: function(receiver, p0, p1, p2) {
+ return receiver.replaceState(p0, p1, p2);
+ },
+ go$1: function(receiver, p0) {
+ return receiver.go(p0);
+ }
+ };
+ J.PlainJavaScriptObject.prototype = {};
+ J.UnknownJavaScriptObject.prototype = {};
+ J.JavaScriptFunction.prototype = {
+ toString$0: function(receiver) {
+ var dartClosure = receiver[$.$get$DART_CLOSURE_PROPERTY_NAME()];
+ if (dartClosure == null)
+ return this.super$JavaScriptObject$toString(receiver);
+ return "JavaScript function for " + H.S(J.toString$0$(dartClosure));
+ },
+ $isFunction: 1
+ };
+ J.JSArray.prototype = {
+ cast$1$0: function(receiver, $R) {
+ return new H.CastList(receiver, H._arrayInstanceType(receiver)._eval$1("@<1>")._bind$1($R)._eval$1("CastList<1,2>"));
+ },
+ add$1: function(receiver, value) {
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("add"));
+ receiver.push(value);
+ },
+ removeAt$1: function(receiver, index) {
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("removeAt"));
+ if (index < 0 || index >= receiver.length)
+ throw H.wrapException(P.RangeError$value(index, null, null));
+ return receiver.splice(index, 1)[0];
+ },
+ insert$2: function(receiver, index, value) {
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("insert"));
+ if (index < 0 || index > receiver.length)
+ throw H.wrapException(P.RangeError$value(index, null, null));
+ receiver.splice(index, 0, value);
+ },
+ insertAll$2: function(receiver, index, iterable) {
+ var insertionLength, end;
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("insertAll"));
+ P.RangeError_checkValueInInterval(index, 0, receiver.length, "index");
+ if (!type$.EfficientLengthIterable_dynamic._is(iterable))
+ iterable = J.toList$0$ax(iterable);
+ insertionLength = J.get$length$asx(iterable);
+ receiver.length = receiver.length + insertionLength;
+ end = index + insertionLength;
+ this.setRange$4(receiver, end, receiver.length, receiver, index);
+ this.setRange$3(receiver, index, end, iterable);
+ },
+ removeLast$0: function(receiver) {
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("removeLast"));
+ if (receiver.length === 0)
+ throw H.wrapException(H.diagnoseIndexError(receiver, -1));
+ return receiver.pop();
+ },
+ remove$1: function(receiver, element) {
+ var i;
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("remove"));
+ for (i = 0; i < receiver.length; ++i)
+ if (J.$eq$(receiver[i], element)) {
+ receiver.splice(i, 1);
+ return true;
+ }
+ return false;
+ },
+ _removeWhere$2: function(receiver, test, removeMatching) {
+ var i, element, t1, retained = [],
+ end = receiver.length;
+ for (i = 0; i < end; ++i) {
+ element = receiver[i];
+ if (!test.call$1(element))
+ retained.push(element);
+ if (receiver.length !== end)
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ t1 = retained.length;
+ if (t1 === end)
+ return;
+ this.set$length(receiver, t1);
+ for (i = 0; i < retained.length; ++i)
+ receiver[i] = retained[i];
+ },
+ where$1: function(receiver, f) {
+ return new H.WhereIterable(receiver, f, H._arrayInstanceType(receiver)._eval$1("WhereIterable<1>"));
+ },
+ addAll$1: function(receiver, collection) {
+ var t1;
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("addAll"));
+ for (t1 = J.get$iterator$ax(collection); t1.moveNext$0();)
+ receiver.push(t1.get$current(t1));
+ },
+ forEach$1: function(receiver, f) {
+ var i,
+ end = receiver.length;
+ for (i = 0; i < end; ++i) {
+ f.call$1(receiver[i]);
+ if (receiver.length !== end)
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ },
+ map$1$1: function(receiver, f, $T) {
+ return new H.MappedListIterable(receiver, f, H._arrayInstanceType(receiver)._eval$1("@<1>")._bind$1($T)._eval$1("MappedListIterable<1,2>"));
+ },
+ join$1: function(receiver, separator) {
+ var i,
+ list = P.List_List$filled(receiver.length, "", false, type$.String);
+ for (i = 0; i < receiver.length; ++i)
+ list[i] = H.S(receiver[i]);
+ return list.join(separator);
+ },
+ take$1: function(receiver, n) {
+ return H.SubListIterable$(receiver, 0, n, H._arrayInstanceType(receiver)._precomputed1);
+ },
+ skip$1: function(receiver, n) {
+ return H.SubListIterable$(receiver, n, null, H._arrayInstanceType(receiver)._precomputed1);
+ },
+ fold$1$2: function(receiver, initialValue, combine) {
+ var value, i,
+ $length = receiver.length;
+ for (value = initialValue, i = 0; i < $length; ++i) {
+ value = combine.call$2(value, receiver[i]);
+ if (receiver.length !== $length)
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ return value;
+ },
+ fold$2: function($receiver, initialValue, combine) {
+ return this.fold$1$2($receiver, initialValue, combine, type$.dynamic);
+ },
+ firstWhere$2$orElse: function(receiver, test, orElse) {
+ var i, element,
+ end = receiver.length;
+ for (i = 0; i < end; ++i) {
+ element = receiver[i];
+ if (test.call$1(element))
+ return element;
+ if (receiver.length !== end)
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ throw H.wrapException(H.IterableElementError_noElement());
+ },
+ firstWhere$1: function($receiver, test) {
+ return this.firstWhere$2$orElse($receiver, test, null);
+ },
+ lastWhere$2$orElse: function(receiver, test, orElse) {
+ var i, element,
+ $length = receiver.length;
+ for (i = $length - 1; i >= 0; --i) {
+ element = receiver[i];
+ if (test.call$1(element))
+ return element;
+ if ($length !== receiver.length)
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ if (orElse != null)
+ return orElse.call$0();
+ throw H.wrapException(H.IterableElementError_noElement());
+ },
+ lastWhere$1: function($receiver, test) {
+ return this.lastWhere$2$orElse($receiver, test, null);
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ sublist$2: function(receiver, start, end) {
+ var t1 = receiver.length;
+ if (start > t1)
+ throw H.wrapException(P.RangeError$range(start, 0, t1, "start", null));
+ if (start === t1)
+ return H.setRuntimeTypeInfo([], H._arrayInstanceType(receiver));
+ return H.setRuntimeTypeInfo(receiver.slice(start, t1), H._arrayInstanceType(receiver));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ },
+ getRange$2: function(receiver, start, end) {
+ P.RangeError_checkValidRange(start, end, receiver.length);
+ return H.SubListIterable$(receiver, start, end, H._arrayInstanceType(receiver)._precomputed1);
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(H.IterableElementError_noElement());
+ },
+ get$last: function(receiver) {
+ var t1 = receiver.length;
+ if (t1 > 0)
+ return receiver[t1 - 1];
+ throw H.wrapException(H.IterableElementError_noElement());
+ },
+ get$single: function(receiver) {
+ var t1 = receiver.length;
+ if (t1 === 1)
+ return receiver[0];
+ if (t1 === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ throw H.wrapException(H.IterableElementError_tooMany());
+ },
+ removeRange$2: function(receiver, start, end) {
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("removeRange"));
+ P.RangeError_checkValidRange(start, end, receiver.length);
+ receiver.splice(start, end - start);
+ },
+ setRange$4: function(receiver, start, end, iterable, skipCount) {
+ var $length, otherList, otherStart, t1, i;
+ if (!!receiver.immutable$list)
+ H.throwExpression(P.UnsupportedError$("setRange"));
+ P.RangeError_checkValidRange(start, end, receiver.length);
+ $length = end - start;
+ if ($length === 0)
+ return;
+ P.RangeError_checkNotNegative(skipCount, "skipCount");
+ if (type$.List_dynamic._is(iterable)) {
+ otherList = iterable;
+ otherStart = skipCount;
+ } else {
+ otherList = J.skip$1$ax(iterable, skipCount).toList$1$growable(0, false);
+ otherStart = 0;
+ }
+ t1 = J.getInterceptor$asx(otherList);
+ if (otherStart + $length > t1.get$length(otherList))
+ throw H.wrapException(H.IterableElementError_tooFew());
+ if (otherStart < start)
+ for (i = $length - 1; i >= 0; --i)
+ receiver[start + i] = t1.$index(otherList, otherStart + i);
+ else
+ for (i = 0; i < $length; ++i)
+ receiver[start + i] = t1.$index(otherList, otherStart + i);
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ any$1: function(receiver, test) {
+ var i,
+ end = receiver.length;
+ for (i = 0; i < end; ++i) {
+ if (test.call$1(receiver[i]))
+ return true;
+ if (receiver.length !== end)
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ return false;
+ },
+ sort$1: function(receiver, compare) {
+ if (!!receiver.immutable$list)
+ H.throwExpression(P.UnsupportedError$("sort"));
+ H.Sort_sort(receiver, compare == null ? J._interceptors_JSArray__compareAny$closure() : compare);
+ },
+ sort$0: function($receiver) {
+ return this.sort$1($receiver, null);
+ },
+ indexOf$1: function(receiver, element) {
+ var i,
+ $length = receiver.length;
+ if (0 >= $length)
+ return -1;
+ for (i = 0; i < $length; ++i)
+ if (J.$eq$(receiver[i], element))
+ return i;
+ return -1;
+ },
+ contains$1: function(receiver, other) {
+ var i;
+ for (i = 0; i < receiver.length; ++i)
+ if (J.$eq$(receiver[i], other))
+ return true;
+ return false;
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.length === 0;
+ },
+ get$isNotEmpty: function(receiver) {
+ return receiver.length !== 0;
+ },
+ toString$0: function(receiver) {
+ return P.IterableBase_iterableToFullString(receiver, "[", "]");
+ },
+ toList$1$growable: function(receiver, growable) {
+ var t1 = H.setRuntimeTypeInfo(receiver.slice(0), H._arrayInstanceType(receiver));
+ return t1;
+ },
+ toList$0: function($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
+ toSet$0: function(receiver) {
+ return P.LinkedHashSet_LinkedHashSet$from(receiver, H._arrayInstanceType(receiver)._precomputed1);
+ },
+ get$iterator: function(receiver) {
+ return new J.ArrayIterator(receiver, receiver.length);
+ },
+ get$hashCode: function(receiver) {
+ return H.Primitives_objectHashCode(receiver);
+ },
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ set$length: function(receiver, newLength) {
+ if (!!receiver.fixed$length)
+ H.throwExpression(P.UnsupportedError$("set length"));
+ if (newLength < 0)
+ throw H.wrapException(P.RangeError$range(newLength, 0, null, "newLength", null));
+ receiver.length = newLength;
+ },
+ $index: function(receiver, index) {
+ if (!H._isInt(index))
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ if (index >= receiver.length || index < 0)
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ if (!!receiver.immutable$list)
+ H.throwExpression(P.UnsupportedError$("indexed set"));
+ if (!H._isInt(index))
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ if (index >= receiver.length || index < 0)
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ receiver[index] = value;
+ },
+ $add: function(receiver, other) {
+ var t2, _i,
+ t1 = H.setRuntimeTypeInfo([], H._arrayInstanceType(receiver));
+ for (t2 = receiver.length, _i = 0; _i < receiver.length; receiver.length === t2 || (0, H.throwConcurrentModificationError)(receiver), ++_i)
+ t1.push(receiver[_i]);
+ for (t2 = J.get$iterator$ax(other); t2.moveNext$0();)
+ t1.push(t2.get$current(t2));
+ return t1;
+ },
+ indexWhere$1: function(receiver, test) {
+ var i;
+ if (0 >= receiver.length)
+ return -1;
+ for (i = 0; i < receiver.length; ++i)
+ if (test.call$1(receiver[i]))
+ return i;
+ return -1;
+ },
+ lastIndexWhere$1: function(receiver, test) {
+ var i,
+ start = receiver.length - 1;
+ if (start < 0)
+ return -1;
+ for (i = start; i >= 0; --i)
+ if (test.call$1(receiver[i]))
+ return i;
+ return -1;
+ },
+ set$last: function(receiver, element) {
+ var t1 = receiver.length;
+ if (t1 === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ this.$indexSet(receiver, t1 - 1, element);
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ J.JSUnmodifiableArray.prototype = {};
+ J.ArrayIterator.prototype = {
+ get$current: function(_) {
+ return this.__interceptors$_current;
+ },
+ moveNext$0: function() {
+ var t2, _this = this,
+ t1 = _this.__interceptors$_iterable,
+ $length = t1.length;
+ if (_this.__interceptors$_length !== $length)
+ throw H.wrapException(H.throwConcurrentModificationError(t1));
+ t2 = _this.__interceptors$_index;
+ if (t2 >= $length) {
+ _this.__interceptors$_current = null;
+ return false;
+ }
+ _this.__interceptors$_current = t1[t2];
+ _this.__interceptors$_index = t2 + 1;
+ return true;
+ }
+ };
+ J.JSNumber.prototype = {
+ compareTo$1: function(receiver, b) {
+ var bIsNegative;
+ if (typeof b != "number")
+ throw H.wrapException(H.argumentErrorValue(b));
+ if (receiver < b)
+ return -1;
+ else if (receiver > b)
+ return 1;
+ else if (receiver === b) {
+ if (receiver === 0) {
+ bIsNegative = this.get$isNegative(b);
+ if (this.get$isNegative(receiver) === bIsNegative)
+ return 0;
+ if (this.get$isNegative(receiver))
+ return -1;
+ return 1;
+ }
+ return 0;
+ } else if (isNaN(receiver)) {
+ if (isNaN(b))
+ return 0;
+ return 1;
+ } else
+ return -1;
+ },
+ get$isNegative: function(receiver) {
+ return receiver === 0 ? 1 / receiver < 0 : receiver < 0;
+ },
+ get$sign: function(receiver) {
+ var t1;
+ if (receiver > 0)
+ t1 = 1;
+ else
+ t1 = receiver < 0 ? -1 : receiver;
+ return t1;
+ },
+ toInt$0: function(receiver) {
+ var t1;
+ if (receiver >= -2147483648 && receiver <= 2147483647)
+ return receiver | 0;
+ if (isFinite(receiver)) {
+ t1 = receiver < 0 ? Math.ceil(receiver) : Math.floor(receiver);
+ return t1 + 0;
+ }
+ throw H.wrapException(P.UnsupportedError$("" + receiver + ".toInt()"));
+ },
+ ceil$0: function(receiver) {
+ var truncated, d;
+ if (receiver >= 0) {
+ if (receiver <= 2147483647) {
+ truncated = receiver | 0;
+ return receiver === truncated ? truncated : truncated + 1;
+ }
+ } else if (receiver >= -2147483648)
+ return receiver | 0;
+ d = Math.ceil(receiver);
+ if (isFinite(d))
+ return d;
+ throw H.wrapException(P.UnsupportedError$("" + receiver + ".ceil()"));
+ },
+ floor$0: function(receiver) {
+ var truncated, d;
+ if (receiver >= 0) {
+ if (receiver <= 2147483647)
+ return receiver | 0;
+ } else if (receiver >= -2147483648) {
+ truncated = receiver | 0;
+ return receiver === truncated ? truncated : truncated - 1;
+ }
+ d = Math.floor(receiver);
+ if (isFinite(d))
+ return d;
+ throw H.wrapException(P.UnsupportedError$("" + receiver + ".floor()"));
+ },
+ round$0: function(receiver) {
+ if (receiver > 0) {
+ if (receiver !== 1 / 0)
+ return Math.round(receiver);
+ } else if (receiver > -1 / 0)
+ return 0 - Math.round(0 - receiver);
+ throw H.wrapException(P.UnsupportedError$("" + receiver + ".round()"));
+ },
+ clamp$2: function(receiver, lowerLimit, upperLimit) {
+ if (typeof lowerLimit != "number")
+ throw H.wrapException(H.argumentErrorValue(lowerLimit));
+ if (typeof upperLimit != "number")
+ throw H.wrapException(H.argumentErrorValue(upperLimit));
+ if (this.compareTo$1(lowerLimit, upperLimit) > 0)
+ throw H.wrapException(H.argumentErrorValue(lowerLimit));
+ if (this.compareTo$1(receiver, lowerLimit) < 0)
+ return lowerLimit;
+ if (this.compareTo$1(receiver, upperLimit) > 0)
+ return upperLimit;
+ return receiver;
+ },
+ toStringAsFixed$1: function(receiver, fractionDigits) {
+ var result;
+ if (fractionDigits > 20)
+ throw H.wrapException(P.RangeError$range(fractionDigits, 0, 20, "fractionDigits", null));
+ result = receiver.toFixed(fractionDigits);
+ if (receiver === 0 && this.get$isNegative(receiver))
+ return "-" + result;
+ return result;
+ },
+ toRadixString$1: function(receiver, radix) {
+ var result, match, exponent, t1;
+ if (radix < 2 || radix > 36)
+ throw H.wrapException(P.RangeError$range(radix, 2, 36, "radix", null));
+ result = receiver.toString(radix);
+ if (C.JSString_methods.codeUnitAt$1(result, result.length - 1) !== 41)
+ return result;
+ match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);
+ if (match == null)
+ H.throwExpression(P.UnsupportedError$("Unexpected toString result: " + result));
+ result = match[1];
+ exponent = +match[3];
+ t1 = match[2];
+ if (t1 != null) {
+ result += t1;
+ exponent -= t1.length;
+ }
+ return result + C.JSString_methods.$mul("0", exponent);
+ },
+ toString$0: function(receiver) {
+ if (receiver === 0 && 1 / receiver < 0)
+ return "-0.0";
+ else
+ return "" + receiver;
+ },
+ get$hashCode: function(receiver) {
+ var absolute, floorLog2, factor, scaled,
+ intValue = receiver | 0;
+ if (receiver === intValue)
+ return intValue & 536870911;
+ absolute = Math.abs(receiver);
+ floorLog2 = Math.log(absolute) / 0.6931471805599453 | 0;
+ factor = Math.pow(2, floorLog2);
+ scaled = absolute < 1 ? absolute / factor : factor / absolute;
+ return ((scaled * 9007199254740992 | 0) + (scaled * 3542243181176521 | 0)) * 599197 + floorLog2 * 1259 & 536870911;
+ },
+ $add: function(receiver, other) {
+ if (typeof other != "number")
+ throw H.wrapException(H.argumentErrorValue(other));
+ return receiver + other;
+ },
+ $sub: function(receiver, other) {
+ if (typeof other != "number")
+ throw H.wrapException(H.argumentErrorValue(other));
+ return receiver - other;
+ },
+ $mul: function(receiver, other) {
+ if (typeof other != "number")
+ throw H.wrapException(H.argumentErrorValue(other));
+ return receiver * other;
+ },
+ $mod: function(receiver, other) {
+ var result = receiver % other;
+ if (result === 0)
+ return 0;
+ if (result > 0)
+ return result;
+ if (other < 0)
+ return result - other;
+ else
+ return result + other;
+ },
+ $tdiv: function(receiver, other) {
+ if (typeof other != "number")
+ throw H.wrapException(H.argumentErrorValue(other));
+ if ((receiver | 0) === receiver)
+ if (other >= 1 || other < -1)
+ return receiver / other | 0;
+ return this._tdivSlow$1(receiver, other);
+ },
+ _tdivFast$1: function(receiver, other) {
+ return (receiver | 0) === receiver ? receiver / other | 0 : this._tdivSlow$1(receiver, other);
+ },
+ _tdivSlow$1: function(receiver, other) {
+ var quotient = receiver / other;
+ if (quotient >= -2147483648 && quotient <= 2147483647)
+ return quotient | 0;
+ if (quotient > 0) {
+ if (quotient !== 1 / 0)
+ return Math.floor(quotient);
+ } else if (quotient > -1 / 0)
+ return Math.ceil(quotient);
+ throw H.wrapException(P.UnsupportedError$("Result of truncating division is " + H.S(quotient) + ": " + H.S(receiver) + " ~/ " + H.S(other)));
+ },
+ $shl: function(receiver, other) {
+ if (other < 0)
+ throw H.wrapException(H.argumentErrorValue(other));
+ return other > 31 ? 0 : receiver << other >>> 0;
+ },
+ _shlPositive$1: function(receiver, other) {
+ return other > 31 ? 0 : receiver << other >>> 0;
+ },
+ _shrOtherPositive$1: function(receiver, other) {
+ var t1;
+ if (receiver > 0)
+ t1 = this._shrBothPositive$1(receiver, other);
+ else {
+ t1 = other > 31 ? 31 : other;
+ t1 = receiver >> t1 >>> 0;
+ }
+ return t1;
+ },
+ _shrReceiverPositive$1: function(receiver, other) {
+ if (other < 0)
+ throw H.wrapException(H.argumentErrorValue(other));
+ return this._shrBothPositive$1(receiver, other);
+ },
+ _shrBothPositive$1: function(receiver, other) {
+ return other > 31 ? 0 : receiver >>> other;
+ },
+ get$runtimeType: function(receiver) {
+ return C.Type_num_cv7;
+ },
+ $isComparable: 1,
+ $isdouble: 1,
+ $isnum: 1
+ };
+ J.JSInt.prototype = {
+ get$sign: function(receiver) {
+ var t1;
+ if (receiver > 0)
+ t1 = 1;
+ else
+ t1 = receiver < 0 ? -1 : receiver;
+ return t1;
+ },
+ get$runtimeType: function(receiver) {
+ return C.Type_int_tHn;
+ },
+ $isint: 1
+ };
+ J.JSDouble.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_double_K1J;
+ }
+ };
+ J.JSString.prototype = {
+ codeUnitAt$1: function(receiver, index) {
+ if (!H._isInt(index))
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ if (index < 0)
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ if (index >= receiver.length)
+ H.throwExpression(H.diagnoseIndexError(receiver, index));
+ return receiver.charCodeAt(index);
+ },
+ _codeUnitAt$1: function(receiver, index) {
+ if (index >= receiver.length)
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ return receiver.charCodeAt(index);
+ },
+ allMatches$2: function(receiver, string, start) {
+ var t1 = string.length;
+ if (start > t1)
+ throw H.wrapException(P.RangeError$range(start, 0, t1, null, null));
+ return new H._StringAllMatchesIterable(string, receiver, start);
+ },
+ allMatches$1: function($receiver, string) {
+ return this.allMatches$2($receiver, string, 0);
+ },
+ matchAsPrefix$2: function(receiver, string, start) {
+ var t1, i, _null = null;
+ if (start < 0 || start > string.length)
+ throw H.wrapException(P.RangeError$range(start, 0, string.length, _null, _null));
+ t1 = receiver.length;
+ if (start + t1 > string.length)
+ return _null;
+ for (i = 0; i < t1; ++i)
+ if (this.codeUnitAt$1(string, start + i) !== this._codeUnitAt$1(receiver, i))
+ return _null;
+ return new H.StringMatch(start, receiver);
+ },
+ $add: function(receiver, other) {
+ if (typeof other != "string")
+ throw H.wrapException(P.ArgumentError$value(other, null, null));
+ return receiver + other;
+ },
+ endsWith$1: function(receiver, other) {
+ var otherLength, t1;
+ if (typeof other != "string")
+ H.throwExpression(H.argumentErrorValue(other));
+ otherLength = other.length;
+ t1 = receiver.length;
+ if (otherLength > t1)
+ return false;
+ return other === this.substring$1(receiver, t1 - otherLength);
+ },
+ replaceFirst$2: function(receiver, from, to) {
+ P.RangeError_checkValueInInterval(0, 0, receiver.length, "startIndex");
+ return H.stringReplaceFirstUnchecked(receiver, from, to, 0);
+ },
+ replaceRange$3: function(receiver, start, end, replacement) {
+ var e = P.RangeError_checkValidRange(start, end, receiver.length);
+ if (!H._isInt(e))
+ H.throwExpression(H.argumentErrorValue(e));
+ return H.stringReplaceRangeUnchecked(receiver, start, e, replacement);
+ },
+ startsWith$2: function(receiver, pattern, index) {
+ var endIndex;
+ if (index < 0 || index > receiver.length)
+ throw H.wrapException(P.RangeError$range(index, 0, receiver.length, null, null));
+ if (typeof pattern == "string") {
+ endIndex = index + pattern.length;
+ if (endIndex > receiver.length)
+ return false;
+ return pattern === receiver.substring(index, endIndex);
+ }
+ return J.matchAsPrefix$2$s(pattern, receiver, index) != null;
+ },
+ startsWith$1: function($receiver, pattern) {
+ return this.startsWith$2($receiver, pattern, 0);
+ },
+ substring$2: function(receiver, startIndex, endIndex) {
+ var _null = null;
+ if (!H._isInt(startIndex))
+ H.throwExpression(H.argumentErrorValue(startIndex));
+ if (endIndex == null)
+ endIndex = receiver.length;
+ if (startIndex < 0)
+ throw H.wrapException(P.RangeError$value(startIndex, _null, _null));
+ if (startIndex > endIndex)
+ throw H.wrapException(P.RangeError$value(startIndex, _null, _null));
+ if (endIndex > receiver.length)
+ throw H.wrapException(P.RangeError$value(endIndex, _null, _null));
+ return receiver.substring(startIndex, endIndex);
+ },
+ substring$1: function($receiver, startIndex) {
+ return this.substring$2($receiver, startIndex, null);
+ },
+ toLowerCase$0: function(receiver) {
+ return receiver.toLowerCase();
+ },
+ trim$0: function(receiver) {
+ var startIndex, t1, endIndex0,
+ result = receiver.trim(),
+ endIndex = result.length;
+ if (endIndex === 0)
+ return result;
+ if (this._codeUnitAt$1(result, 0) === 133) {
+ startIndex = J.JSString__skipLeadingWhitespace(result, 1);
+ if (startIndex === endIndex)
+ return "";
+ } else
+ startIndex = 0;
+ t1 = endIndex - 1;
+ endIndex0 = this.codeUnitAt$1(result, t1) === 133 ? J.JSString__skipTrailingWhitespace(result, t1) : endIndex;
+ if (startIndex === 0 && endIndex0 === endIndex)
+ return result;
+ return result.substring(startIndex, endIndex0);
+ },
+ trimLeft$0: function(receiver) {
+ var result, startIndex;
+ if (typeof receiver.trimLeft != "undefined") {
+ result = receiver.trimLeft();
+ if (result.length === 0)
+ return result;
+ startIndex = this._codeUnitAt$1(result, 0) === 133 ? J.JSString__skipLeadingWhitespace(result, 1) : 0;
+ } else {
+ startIndex = J.JSString__skipLeadingWhitespace(receiver, 0);
+ result = receiver;
+ }
+ if (startIndex === 0)
+ return result;
+ if (startIndex === result.length)
+ return "";
+ return result.substring(startIndex);
+ },
+ trimRight$0: function(receiver) {
+ var result, endIndex, t1;
+ if (typeof receiver.trimRight != "undefined") {
+ result = receiver.trimRight();
+ endIndex = result.length;
+ if (endIndex === 0)
+ return result;
+ t1 = endIndex - 1;
+ if (this.codeUnitAt$1(result, t1) === 133)
+ endIndex = J.JSString__skipTrailingWhitespace(result, t1);
+ } else {
+ endIndex = J.JSString__skipTrailingWhitespace(receiver, receiver.length);
+ result = receiver;
+ }
+ if (endIndex === result.length)
+ return result;
+ if (endIndex === 0)
+ return "";
+ return result.substring(0, endIndex);
+ },
+ $mul: function(receiver, times) {
+ var s, result;
+ if (0 >= times)
+ return "";
+ if (times === 1 || receiver.length === 0)
+ return receiver;
+ if (times !== times >>> 0)
+ throw H.wrapException(C.C_OutOfMemoryError);
+ for (s = receiver, result = ""; true;) {
+ if ((times & 1) === 1)
+ result = s + result;
+ times = times >>> 1;
+ if (times === 0)
+ break;
+ s += s;
+ }
+ return result;
+ },
+ padLeft$2: function(receiver, width, padding) {
+ var delta = width - receiver.length;
+ if (delta <= 0)
+ return receiver;
+ return this.$mul(padding, delta) + receiver;
+ },
+ padRight$1: function(receiver, width) {
+ var delta = width - receiver.length;
+ if (delta <= 0)
+ return receiver;
+ return receiver + this.$mul(" ", delta);
+ },
+ indexOf$2: function(receiver, pattern, start) {
+ var match, t1, t2, i;
+ if (start < 0 || start > receiver.length)
+ throw H.wrapException(P.RangeError$range(start, 0, receiver.length, null, null));
+ if (typeof pattern == "string")
+ return receiver.indexOf(pattern, start);
+ if (pattern instanceof H.JSSyntaxRegExp) {
+ match = pattern._execGlobal$2(receiver, start);
+ return match == null ? -1 : match._match.index;
+ }
+ for (t1 = receiver.length, t2 = J.getInterceptor$s(pattern), i = start; i <= t1; ++i)
+ if (t2.matchAsPrefix$2(pattern, receiver, i) != null)
+ return i;
+ return -1;
+ },
+ indexOf$1: function($receiver, pattern) {
+ return this.indexOf$2($receiver, pattern, 0);
+ },
+ lastIndexOf$2: function(receiver, pattern, start) {
+ var t1, t2, i;
+ if (start == null)
+ start = receiver.length;
+ else if (start < 0 || start > receiver.length)
+ throw H.wrapException(P.RangeError$range(start, 0, receiver.length, null, null));
+ if (typeof pattern == "string") {
+ t1 = pattern.length;
+ t2 = receiver.length;
+ if (start + t1 > t2)
+ start = t2 - t1;
+ return receiver.lastIndexOf(pattern, start);
+ }
+ for (t1 = J.getInterceptor$s(pattern), i = start; i >= 0; --i)
+ if (t1.matchAsPrefix$2(pattern, receiver, i) != null)
+ return i;
+ return -1;
+ },
+ lastIndexOf$1: function($receiver, pattern) {
+ return this.lastIndexOf$2($receiver, pattern, null);
+ },
+ contains$2: function(receiver, other, startIndex) {
+ var t1 = receiver.length;
+ if (startIndex > t1)
+ throw H.wrapException(P.RangeError$range(startIndex, 0, t1, null, null));
+ return H.stringContainsUnchecked(receiver, other, startIndex);
+ },
+ contains$1: function($receiver, other) {
+ return this.contains$2($receiver, other, 0);
+ },
+ compareTo$1: function(receiver, other) {
+ var t1;
+ if (typeof other != "string")
+ throw H.wrapException(H.argumentErrorValue(other));
+ if (receiver === other)
+ t1 = 0;
+ else
+ t1 = receiver < other ? -1 : 1;
+ return t1;
+ },
+ toString$0: function(receiver) {
+ return receiver;
+ },
+ get$hashCode: function(receiver) {
+ var t1, hash, i;
+ for (t1 = receiver.length, hash = 0, i = 0; i < t1; ++i) {
+ hash = hash + receiver.charCodeAt(i) & 536870911;
+ hash = hash + ((hash & 524287) << 10) & 536870911;
+ hash ^= hash >> 6;
+ }
+ hash = hash + ((hash & 67108863) << 3) & 536870911;
+ hash ^= hash >> 11;
+ return hash + ((hash & 16383) << 15) & 536870911;
+ },
+ get$runtimeType: function(receiver) {
+ return C.Type_String_k8F;
+ },
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (!H._isInt(index))
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ if (index >= receiver.length || index < 0)
+ throw H.wrapException(H.diagnoseIndexError(receiver, index));
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isComparable: 1,
+ $isPattern: 1,
+ $isString: 1
+ };
+ H._CastIterableBase.prototype = {
+ get$iterator: function(_) {
+ var t1 = H._instanceType(this);
+ return new H.CastIterator(J.get$iterator$ax(this.get$_source()), t1._eval$1("@<1>")._bind$1(t1._rest[1])._eval$1("CastIterator<1,2>"));
+ },
+ get$length: function(_) {
+ return J.get$length$asx(this.get$_source());
+ },
+ get$isEmpty: function(_) {
+ return J.get$isEmpty$asx(this.get$_source());
+ },
+ get$isNotEmpty: function(_) {
+ return J.get$isNotEmpty$asx(this.get$_source());
+ },
+ skip$1: function(_, count) {
+ var t1 = H._instanceType(this);
+ return H.CastIterable_CastIterable(J.skip$1$ax(this.get$_source(), count), t1._precomputed1, t1._rest[1]);
+ },
+ take$1: function(_, count) {
+ var t1 = H._instanceType(this);
+ return H.CastIterable_CastIterable(J.take$1$ax(this.get$_source(), count), t1._precomputed1, t1._rest[1]);
+ },
+ elementAt$1: function(_, index) {
+ return H._instanceType(this)._rest[1]._as(J.elementAt$1$ax(this.get$_source(), index));
+ },
+ get$first: function(_) {
+ return H._instanceType(this)._rest[1]._as(J.get$first$ax(this.get$_source()));
+ },
+ get$last: function(_) {
+ return H._instanceType(this)._rest[1]._as(J.get$last$ax(this.get$_source()));
+ },
+ contains$1: function(_, other) {
+ return J.contains$1$asx(this.get$_source(), other);
+ },
+ toString$0: function(_) {
+ return J.toString$0$(this.get$_source());
+ }
+ };
+ H.CastIterator.prototype = {
+ moveNext$0: function() {
+ return this._source.moveNext$0();
+ },
+ get$current: function(_) {
+ var t1 = this._source;
+ return this.$ti._rest[1]._as(t1.get$current(t1));
+ }
+ };
+ H.CastIterable.prototype = {
+ get$_source: function() {
+ return this._source;
+ }
+ };
+ H._EfficientLengthCastIterable.prototype = {$isEfficientLengthIterable: 1};
+ H._CastListBase.prototype = {
+ $index: function(_, index) {
+ return this.$ti._rest[1]._as(J.$index$asx(this._source, index));
+ },
+ $indexSet: function(_, index, value) {
+ J.$indexSet$ax(this._source, index, this.$ti._precomputed1._as(value));
+ },
+ set$length: function(_, $length) {
+ J.set$length$asx(this._source, $length);
+ },
+ add$1: function(_, value) {
+ J.add$1$ax(this._source, this.$ti._precomputed1._as(value));
+ },
+ sort$1: function(_, compare) {
+ var t1 = compare == null ? null : new H._CastListBase_sort_closure(this, compare);
+ J.sort$1$ax(this._source, t1);
+ },
+ remove$1: function(_, value) {
+ return J.remove$1$ax(this._source, value);
+ },
+ removeLast$0: function(_) {
+ return this.$ti._rest[1]._as(J.removeLast$0$ax(this._source));
+ },
+ getRange$2: function(_, start, end) {
+ var t1 = this.$ti;
+ return H.CastIterable_CastIterable(J.getRange$2$ax(this._source, start, end), t1._precomputed1, t1._rest[1]);
+ },
+ setRange$4: function(_, start, end, iterable, skipCount) {
+ var t1 = this.$ti;
+ J.setRange$4$ax(this._source, start, end, H.CastIterable_CastIterable(iterable, t1._rest[1], t1._precomputed1), skipCount);
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ $isEfficientLengthIterable: 1,
+ $isList: 1
+ };
+ H._CastListBase_sort_closure.prototype = {
+ call$2: function(v1, v2) {
+ var t1 = this.$this.$ti._rest[1];
+ return this.compare.call$2(t1._as(v1), t1._as(v2));
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: function() {
+ return this.$this.$ti._eval$1("int(1,1)");
+ }
+ };
+ H.CastList.prototype = {
+ cast$1$0: function(_, $R) {
+ return new H.CastList(this._source, this.$ti._eval$1("@<1>")._bind$1($R)._eval$1("CastList<1,2>"));
+ },
+ get$_source: function() {
+ return this._source;
+ }
+ };
+ H.CastMap.prototype = {
+ cast$2$0: function(_, RK, RV) {
+ var t1 = this.$ti;
+ return new H.CastMap(this._source, t1._eval$1("@<1>")._bind$1(t1._rest[1])._bind$1(RK)._bind$1(RV)._eval$1("CastMap<1,2,3,4>"));
+ },
+ containsKey$1: function(_, key) {
+ return J.containsKey$1$x(this._source, key);
+ },
+ $index: function(_, key) {
+ return this.$ti._eval$1("4?")._as(J.$index$asx(this._source, key));
+ },
+ $indexSet: function(_, key, value) {
+ var t1 = this.$ti;
+ J.$indexSet$ax(this._source, t1._precomputed1._as(key), t1._rest[1]._as(value));
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ var t1 = this.$ti;
+ return t1._rest[3]._as(J.putIfAbsent$2$x(this._source, t1._precomputed1._as(key), new H.CastMap_putIfAbsent_closure(this, ifAbsent)));
+ },
+ remove$1: function(_, key) {
+ return this.$ti._rest[3]._as(J.remove$1$ax(this._source, key));
+ },
+ forEach$1: function(_, f) {
+ J.forEach$1$ax(this._source, new H.CastMap_forEach_closure(this, f));
+ },
+ get$keys: function(_) {
+ var t1 = this.$ti;
+ return H.CastIterable_CastIterable(J.get$keys$x(this._source), t1._precomputed1, t1._rest[2]);
+ },
+ get$values: function(_) {
+ var t1 = this.$ti;
+ return H.CastIterable_CastIterable(J.get$values$x(this._source), t1._rest[1], t1._rest[3]);
+ },
+ get$length: function(_) {
+ return J.get$length$asx(this._source);
+ },
+ get$isEmpty: function(_) {
+ return J.get$isEmpty$asx(this._source);
+ },
+ get$isNotEmpty: function(_) {
+ return J.get$isNotEmpty$asx(this._source);
+ }
+ };
+ H.CastMap_putIfAbsent_closure.prototype = {
+ call$0: function() {
+ return this.$this.$ti._rest[1]._as(this.ifAbsent.call$0());
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("2()");
+ }
+ };
+ H.CastMap_forEach_closure.prototype = {
+ call$2: function(key, value) {
+ var t1 = this.$this.$ti;
+ this.f.call$2(t1._rest[2]._as(key), t1._rest[3]._as(value));
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("~(1,2)");
+ }
+ };
+ H.LateError.prototype = {
+ toString$0: function(_) {
+ var message = this.__internal$_message;
+ return message != null ? "LateInitializationError: " + message : "LateInitializationError";
+ }
+ };
+ H.ReachabilityError.prototype = {
+ toString$0: function(_) {
+ var t1 = "ReachabilityError: " + this.__internal$_message;
+ return t1;
+ }
+ };
+ H.CodeUnits.prototype = {
+ get$length: function(_) {
+ return this._string.length;
+ },
+ $index: function(_, i) {
+ return C.JSString_methods.codeUnitAt$1(this._string, i);
+ }
+ };
+ H.EfficientLengthIterable.prototype = {};
+ H.ListIterable.prototype = {
+ get$iterator: function(_) {
+ return new H.ListIterator(this, this.get$length(this));
+ },
+ forEach$1: function(_, action) {
+ var i, _this = this,
+ $length = _this.get$length(_this);
+ for (i = 0; i < $length; ++i) {
+ action.call$1(_this.elementAt$1(0, i));
+ if ($length !== _this.get$length(_this))
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ }
+ },
+ get$isEmpty: function(_) {
+ return this.get$length(this) === 0;
+ },
+ get$first: function(_) {
+ if (this.get$length(this) === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ return this.elementAt$1(0, 0);
+ },
+ get$last: function(_) {
+ var _this = this;
+ if (_this.get$length(_this) === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ return _this.elementAt$1(0, _this.get$length(_this) - 1);
+ },
+ contains$1: function(_, element) {
+ var i, _this = this,
+ $length = _this.get$length(_this);
+ for (i = 0; i < $length; ++i) {
+ if (J.$eq$(_this.elementAt$1(0, i), element))
+ return true;
+ if ($length !== _this.get$length(_this))
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ }
+ return false;
+ },
+ join$1: function(_, separator) {
+ var first, t1, i, _this = this,
+ $length = _this.get$length(_this);
+ if (separator.length !== 0) {
+ if ($length === 0)
+ return "";
+ first = H.S(_this.elementAt$1(0, 0));
+ if ($length != _this.get$length(_this))
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ for (t1 = first, i = 1; i < $length; ++i) {
+ t1 = t1 + separator + H.S(_this.elementAt$1(0, i));
+ if ($length !== _this.get$length(_this))
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ }
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ } else {
+ for (i = 0, t1 = ""; i < $length; ++i) {
+ t1 += H.S(_this.elementAt$1(0, i));
+ if ($length !== _this.get$length(_this))
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ }
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ },
+ where$1: function(_, test) {
+ return this.super$Iterable$where(0, test);
+ },
+ map$1$1: function(_, f, $T) {
+ return new H.MappedListIterable(this, f, H._instanceType(this)._eval$1("@")._bind$1($T)._eval$1("MappedListIterable<1,2>"));
+ },
+ reduce$1: function(_, combine) {
+ var value, i, _this = this,
+ $length = _this.get$length(_this);
+ if ($length === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ value = _this.elementAt$1(0, 0);
+ for (i = 1; i < $length; ++i) {
+ value = combine.call$2(value, _this.elementAt$1(0, i));
+ if ($length !== _this.get$length(_this))
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ }
+ return value;
+ },
+ skip$1: function(_, count) {
+ return H.SubListIterable$(this, count, null, H._instanceType(this)._eval$1("ListIterable.E"));
+ },
+ take$1: function(_, count) {
+ return H.SubListIterable$(this, 0, count, H._instanceType(this)._eval$1("ListIterable.E"));
+ },
+ toList$1$growable: function(_, growable) {
+ return P.List_List$of(this, growable, H._instanceType(this)._eval$1("ListIterable.E"));
+ },
+ toList$0: function($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
+ toSet$0: function(_) {
+ var i, _this = this,
+ result = P.LinkedHashSet_LinkedHashSet(H._instanceType(_this)._eval$1("ListIterable.E"));
+ for (i = 0; i < _this.get$length(_this); ++i)
+ result.add$1(0, _this.elementAt$1(0, i));
+ return result;
+ }
+ };
+ H.SubListIterable.prototype = {
+ SubListIterable$3: function(_iterable, _start, _endOrLength, $E) {
+ var endOrLength,
+ t1 = this._start;
+ P.RangeError_checkNotNegative(t1, "start");
+ endOrLength = this._endOrLength;
+ if (endOrLength != null) {
+ P.RangeError_checkNotNegative(endOrLength, "end");
+ if (t1 > endOrLength)
+ throw H.wrapException(P.RangeError$range(t1, 0, endOrLength, "start", null));
+ }
+ },
+ get$_endIndex: function() {
+ var $length = J.get$length$asx(this._iterable),
+ endOrLength = this._endOrLength;
+ if (endOrLength == null || endOrLength > $length)
+ return $length;
+ return endOrLength;
+ },
+ get$_startIndex: function() {
+ var $length = J.get$length$asx(this._iterable),
+ t1 = this._start;
+ if (t1 > $length)
+ return $length;
+ return t1;
+ },
+ get$length: function(_) {
+ var endOrLength,
+ $length = J.get$length$asx(this._iterable),
+ t1 = this._start;
+ if (t1 >= $length)
+ return 0;
+ endOrLength = this._endOrLength;
+ if (endOrLength == null || endOrLength >= $length)
+ return $length - t1;
+ return endOrLength - t1;
+ },
+ elementAt$1: function(_, index) {
+ var _this = this,
+ realIndex = _this.get$_startIndex() + index;
+ if (index < 0 || realIndex >= _this.get$_endIndex())
+ throw H.wrapException(P.IndexError$(index, _this, "index", null, null));
+ return J.elementAt$1$ax(_this._iterable, realIndex);
+ },
+ skip$1: function(_, count) {
+ var newStart, endOrLength, _this = this;
+ P.RangeError_checkNotNegative(count, "count");
+ newStart = _this._start + count;
+ endOrLength = _this._endOrLength;
+ if (endOrLength != null && newStart >= endOrLength)
+ return new H.EmptyIterable(_this.$ti._eval$1("EmptyIterable<1>"));
+ return H.SubListIterable$(_this._iterable, newStart, endOrLength, _this.$ti._precomputed1);
+ },
+ take$1: function(_, count) {
+ var endOrLength, t1, newEnd, _this = this;
+ P.RangeError_checkNotNegative(count, "count");
+ endOrLength = _this._endOrLength;
+ t1 = _this._start;
+ newEnd = t1 + count;
+ if (endOrLength == null)
+ return H.SubListIterable$(_this._iterable, t1, newEnd, _this.$ti._precomputed1);
+ else {
+ if (endOrLength < newEnd)
+ return _this;
+ return H.SubListIterable$(_this._iterable, t1, newEnd, _this.$ti._precomputed1);
+ }
+ },
+ toList$1$growable: function(_, growable) {
+ var $length, result, i, _this = this,
+ start = _this._start,
+ t1 = _this._iterable,
+ t2 = J.getInterceptor$asx(t1),
+ end = t2.get$length(t1),
+ endOrLength = _this._endOrLength;
+ if (endOrLength != null && endOrLength < end)
+ end = endOrLength;
+ $length = end - start;
+ if ($length <= 0) {
+ t1 = _this.$ti._precomputed1;
+ return growable ? J.JSArray_JSArray$growable(0, t1) : J.JSArray_JSArray$fixed(0, t1);
+ }
+ result = P.List_List$filled($length, t2.elementAt$1(t1, start), growable, _this.$ti._precomputed1);
+ for (i = 1; i < $length; ++i) {
+ result[i] = t2.elementAt$1(t1, start + i);
+ if (t2.get$length(t1) < end)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ }
+ return result;
+ },
+ toList$0: function($receiver) {
+ return this.toList$1$growable($receiver, true);
+ }
+ };
+ H.ListIterator.prototype = {
+ get$current: function(_) {
+ var cur = this._current;
+ return cur;
+ },
+ moveNext$0: function() {
+ var t3, _this = this,
+ t1 = _this._iterable,
+ t2 = J.getInterceptor$asx(t1),
+ $length = t2.get$length(t1);
+ if (_this._length != $length)
+ throw H.wrapException(P.ConcurrentModificationError$(t1));
+ t3 = _this._index;
+ if (t3 >= $length) {
+ _this._current = null;
+ return false;
+ }
+ _this._current = t2.elementAt$1(t1, t3);
+ ++_this._index;
+ return true;
+ }
+ };
+ H.MappedIterable.prototype = {
+ get$iterator: function(_) {
+ return new H.MappedIterator(J.get$iterator$ax(this._iterable), this._f);
+ },
+ get$length: function(_) {
+ return J.get$length$asx(this._iterable);
+ },
+ get$isEmpty: function(_) {
+ return J.get$isEmpty$asx(this._iterable);
+ },
+ get$first: function(_) {
+ return this._f.call$1(J.get$first$ax(this._iterable));
+ },
+ get$last: function(_) {
+ return this._f.call$1(J.get$last$ax(this._iterable));
+ },
+ elementAt$1: function(_, index) {
+ return this._f.call$1(J.elementAt$1$ax(this._iterable, index));
+ }
+ };
+ H.EfficientLengthMappedIterable.prototype = {$isEfficientLengthIterable: 1};
+ H.MappedIterator.prototype = {
+ moveNext$0: function() {
+ var _this = this,
+ t1 = _this._iterator;
+ if (t1.moveNext$0()) {
+ _this._current = _this._f.call$1(t1.get$current(t1));
+ return true;
+ }
+ _this._current = null;
+ return false;
+ },
+ get$current: function(_) {
+ var cur = this._current;
+ return cur;
+ }
+ };
+ H.MappedListIterable.prototype = {
+ get$length: function(_) {
+ return J.get$length$asx(this._source);
+ },
+ elementAt$1: function(_, index) {
+ return this._f.call$1(J.elementAt$1$ax(this._source, index));
+ }
+ };
+ H.WhereIterable.prototype = {
+ get$iterator: function(_) {
+ return new H.WhereIterator(J.get$iterator$ax(this._iterable), this._f);
+ },
+ map$1$1: function(_, f, $T) {
+ return new H.MappedIterable(this, f, this.$ti._eval$1("@<1>")._bind$1($T)._eval$1("MappedIterable<1,2>"));
+ }
+ };
+ H.WhereIterator.prototype = {
+ moveNext$0: function() {
+ var t1, t2;
+ for (t1 = this._iterator, t2 = this._f; t1.moveNext$0();)
+ if (t2.call$1(t1.get$current(t1)))
+ return true;
+ return false;
+ },
+ get$current: function(_) {
+ var t1 = this._iterator;
+ return t1.get$current(t1);
+ }
+ };
+ H.ExpandIterable.prototype = {
+ get$iterator: function(_) {
+ return new H.ExpandIterator(J.get$iterator$ax(this._iterable), this._f, C.C_EmptyIterator);
+ }
+ };
+ H.ExpandIterator.prototype = {
+ get$current: function(_) {
+ var cur = this._current;
+ return cur;
+ },
+ moveNext$0: function() {
+ var t2, t3, _this = this,
+ t1 = _this._currentExpansion;
+ if (t1 == null)
+ return false;
+ for (t2 = _this._iterator, t3 = _this._f; !t1.moveNext$0();) {
+ _this._current = null;
+ if (t2.moveNext$0()) {
+ _this._currentExpansion = null;
+ t1 = J.get$iterator$ax(t3.call$1(t2.get$current(t2)));
+ _this._currentExpansion = t1;
+ } else
+ return false;
+ }
+ t1 = _this._currentExpansion;
+ _this._current = t1.get$current(t1);
+ return true;
+ }
+ };
+ H.TakeIterable.prototype = {
+ get$iterator: function(_) {
+ return new H.TakeIterator(J.get$iterator$ax(this._iterable), this._takeCount);
+ }
+ };
+ H.EfficientLengthTakeIterable.prototype = {
+ get$length: function(_) {
+ var iterableLength = J.get$length$asx(this._iterable),
+ t1 = this._takeCount;
+ if (iterableLength > t1)
+ return t1;
+ return iterableLength;
+ },
+ $isEfficientLengthIterable: 1
+ };
+ H.TakeIterator.prototype = {
+ moveNext$0: function() {
+ if (--this._remaining >= 0)
+ return this._iterator.moveNext$0();
+ this._remaining = -1;
+ return false;
+ },
+ get$current: function(_) {
+ var t1;
+ if (this._remaining < 0)
+ return null;
+ t1 = this._iterator;
+ return t1.get$current(t1);
+ }
+ };
+ H.SkipIterable.prototype = {
+ skip$1: function(_, count) {
+ P.ArgumentError_checkNotNull(count, "count");
+ P.RangeError_checkNotNegative(count, "count");
+ return new H.SkipIterable(this._iterable, this._skipCount + count, H._instanceType(this)._eval$1("SkipIterable<1>"));
+ },
+ get$iterator: function(_) {
+ return new H.SkipIterator(J.get$iterator$ax(this._iterable), this._skipCount);
+ }
+ };
+ H.EfficientLengthSkipIterable.prototype = {
+ get$length: function(_) {
+ var $length = J.get$length$asx(this._iterable) - this._skipCount;
+ if ($length >= 0)
+ return $length;
+ return 0;
+ },
+ skip$1: function(_, count) {
+ P.ArgumentError_checkNotNull(count, "count");
+ P.RangeError_checkNotNegative(count, "count");
+ return new H.EfficientLengthSkipIterable(this._iterable, this._skipCount + count, this.$ti);
+ },
+ $isEfficientLengthIterable: 1
+ };
+ H.SkipIterator.prototype = {
+ moveNext$0: function() {
+ var t1, i;
+ for (t1 = this._iterator, i = 0; i < this._skipCount; ++i)
+ t1.moveNext$0();
+ this._skipCount = 0;
+ return t1.moveNext$0();
+ },
+ get$current: function(_) {
+ var t1 = this._iterator;
+ return t1.get$current(t1);
+ }
+ };
+ H.SkipWhileIterable.prototype = {
+ get$iterator: function(_) {
+ return new H.SkipWhileIterator(J.get$iterator$ax(this._iterable), this._f);
+ }
+ };
+ H.SkipWhileIterator.prototype = {
+ moveNext$0: function() {
+ var t1, t2, _this = this;
+ if (!_this._hasSkipped) {
+ _this._hasSkipped = true;
+ for (t1 = _this._iterator, t2 = _this._f; t1.moveNext$0();)
+ if (!t2.call$1(t1.get$current(t1)))
+ return true;
+ }
+ return _this._iterator.moveNext$0();
+ },
+ get$current: function(_) {
+ var t1 = this._iterator;
+ return t1.get$current(t1);
+ }
+ };
+ H.EmptyIterable.prototype = {
+ get$iterator: function(_) {
+ return C.C_EmptyIterator;
+ },
+ forEach$1: function(_, action) {
+ },
+ get$isEmpty: function(_) {
+ return true;
+ },
+ get$length: function(_) {
+ return 0;
+ },
+ get$first: function(_) {
+ throw H.wrapException(H.IterableElementError_noElement());
+ },
+ get$last: function(_) {
+ throw H.wrapException(H.IterableElementError_noElement());
+ },
+ elementAt$1: function(_, index) {
+ throw H.wrapException(P.RangeError$range(index, 0, 0, "index", null));
+ },
+ contains$1: function(_, element) {
+ return false;
+ },
+ map$1$1: function(_, f, $T) {
+ return new H.EmptyIterable($T._eval$1("EmptyIterable<0>"));
+ },
+ skip$1: function(_, count) {
+ P.RangeError_checkNotNegative(count, "count");
+ return this;
+ },
+ take$1: function(_, count) {
+ P.RangeError_checkNotNegative(count, "count");
+ return this;
+ },
+ toList$1$growable: function(_, growable) {
+ var t1 = this.$ti._precomputed1;
+ return growable ? J.JSArray_JSArray$growable(0, t1) : J.JSArray_JSArray$fixed(0, t1);
+ },
+ toList$0: function($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
+ toSet$0: function(_) {
+ return P.LinkedHashSet_LinkedHashSet(this.$ti._precomputed1);
+ }
+ };
+ H.EmptyIterator.prototype = {
+ moveNext$0: function() {
+ return false;
+ },
+ get$current: function(_) {
+ throw H.wrapException(H.IterableElementError_noElement());
+ }
+ };
+ H.FollowedByIterable.prototype = {
+ get$iterator: function(_) {
+ return new H.FollowedByIterator(J.get$iterator$ax(this.__internal$_first), this._second);
+ },
+ get$length: function(_) {
+ var t1 = this._second;
+ return J.get$length$asx(this.__internal$_first) + t1.get$length(t1);
+ },
+ get$isEmpty: function(_) {
+ var t1;
+ if (J.get$isEmpty$asx(this.__internal$_first)) {
+ t1 = this._second;
+ t1 = !t1.get$iterator(t1).moveNext$0();
+ } else
+ t1 = false;
+ return t1;
+ },
+ get$isNotEmpty: function(_) {
+ var t1;
+ if (!J.get$isNotEmpty$asx(this.__internal$_first)) {
+ t1 = this._second;
+ t1 = !t1.get$isEmpty(t1);
+ } else
+ t1 = true;
+ return t1;
+ },
+ contains$1: function(_, value) {
+ return J.contains$1$asx(this.__internal$_first, value) || this._second.contains$1(0, value);
+ },
+ get$first: function(_) {
+ var t1,
+ iterator = J.get$iterator$ax(this.__internal$_first);
+ if (iterator.moveNext$0())
+ return iterator.get$current(iterator);
+ t1 = this._second;
+ return t1.get$first(t1);
+ },
+ get$last: function(_) {
+ var last, cur,
+ t1 = this._second,
+ iterator = new H.ExpandIterator(J.get$iterator$ax(t1._iterable), t1._f, C.C_EmptyIterator);
+ if (iterator.moveNext$0()) {
+ last = iterator.get$current(iterator);
+ for (; iterator.moveNext$0(); last = cur)
+ cur = iterator._current;
+ return last;
+ }
+ return J.get$last$ax(this.__internal$_first);
+ }
+ };
+ H.FollowedByIterator.prototype = {
+ moveNext$0: function() {
+ var t1, _this = this;
+ if (_this._currentIterator.moveNext$0())
+ return true;
+ t1 = _this._nextIterable;
+ if (t1 != null) {
+ t1 = new H.ExpandIterator(J.get$iterator$ax(t1._iterable), t1._f, C.C_EmptyIterator);
+ _this._currentIterator = t1;
+ _this._nextIterable = null;
+ return t1.moveNext$0();
+ }
+ return false;
+ },
+ get$current: function(_) {
+ var t1 = this._currentIterator;
+ return t1.get$current(t1);
+ }
+ };
+ H.WhereTypeIterable.prototype = {
+ get$iterator: function(_) {
+ return new H.WhereTypeIterator(J.get$iterator$ax(this._source), this.$ti._eval$1("WhereTypeIterator<1>"));
+ }
+ };
+ H.WhereTypeIterator.prototype = {
+ moveNext$0: function() {
+ var t1, t2;
+ for (t1 = this._source, t2 = this.$ti._precomputed1; t1.moveNext$0();)
+ if (t2._is(t1.get$current(t1)))
+ return true;
+ return false;
+ },
+ get$current: function(_) {
+ var t1 = this._source;
+ return this.$ti._precomputed1._as(t1.get$current(t1));
+ }
+ };
+ H.FixedLengthListMixin.prototype = {
+ set$length: function(receiver, newLength) {
+ throw H.wrapException(P.UnsupportedError$("Cannot change the length of a fixed-length list"));
+ },
+ add$1: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot add to a fixed-length list"));
+ },
+ remove$1: function(receiver, element) {
+ throw H.wrapException(P.UnsupportedError$("Cannot remove from a fixed-length list"));
+ },
+ removeLast$0: function(receiver) {
+ throw H.wrapException(P.UnsupportedError$("Cannot remove from a fixed-length list"));
+ }
+ };
+ H.UnmodifiableListMixin.prototype = {
+ $indexSet: function(_, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify an unmodifiable list"));
+ },
+ set$length: function(_, newLength) {
+ throw H.wrapException(P.UnsupportedError$("Cannot change the length of an unmodifiable list"));
+ },
+ add$1: function(_, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot add to an unmodifiable list"));
+ },
+ remove$1: function(_, element) {
+ throw H.wrapException(P.UnsupportedError$("Cannot remove from an unmodifiable list"));
+ },
+ sort$1: function(_, compare) {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify an unmodifiable list"));
+ },
+ removeLast$0: function(_) {
+ throw H.wrapException(P.UnsupportedError$("Cannot remove from an unmodifiable list"));
+ },
+ setRange$4: function(_, start, end, iterable, skipCount) {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify an unmodifiable list"));
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ }
+ };
+ H.UnmodifiableListBase.prototype = {};
+ H.ReversedListIterable.prototype = {
+ get$length: function(_) {
+ return J.get$length$asx(this._source);
+ },
+ elementAt$1: function(_, index) {
+ var t1 = this._source,
+ t2 = J.getInterceptor$asx(t1);
+ return t2.elementAt$1(t1, t2.get$length(t1) - 1 - index);
+ }
+ };
+ H.Symbol.prototype = {
+ get$hashCode: function(_) {
+ var hash = this._hashCode;
+ if (hash != null)
+ return hash;
+ hash = 664597 * J.get$hashCode$(this.__internal$_name) & 536870911;
+ this._hashCode = hash;
+ return hash;
+ },
+ toString$0: function(_) {
+ return 'Symbol("' + H.S(this.__internal$_name) + '")';
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof H.Symbol && this.__internal$_name == other.__internal$_name;
+ },
+ $isSymbol0: 1
+ };
+ H.__CastListBase__CastIterableBase_ListMixin.prototype = {};
+ H.ConstantMapView.prototype = {};
+ H.ConstantMap.prototype = {
+ cast$2$0: function(_, RK, RV) {
+ var t1 = H._instanceType(this);
+ return P.Map_castFrom(this, t1._precomputed1, t1._rest[1], RK, RV);
+ },
+ get$isEmpty: function(_) {
+ return this.get$length(this) === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this.get$length(this) !== 0;
+ },
+ toString$0: function(_) {
+ return P.MapBase_mapToString(this);
+ },
+ $indexSet: function(_, key, val) {
+ H.ConstantMap__throwUnmodifiable();
+ H.ReachabilityError$(string$.x60null_t);
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ H.ConstantMap__throwUnmodifiable();
+ H.ReachabilityError$(string$.x60null_t);
+ },
+ remove$1: function(_, key) {
+ H.ConstantMap__throwUnmodifiable();
+ H.ReachabilityError$(string$.x60null_t);
+ },
+ map$2$1: function(_, transform, K2, V2) {
+ var result = P.LinkedHashMap_LinkedHashMap$_empty(K2, V2);
+ this.forEach$1(0, new H.ConstantMap_map_closure(this, transform, result));
+ return result;
+ },
+ $isMap: 1
+ };
+ H.ConstantMap_map_closure.prototype = {
+ call$2: function(key, value) {
+ var entry = this.transform.call$2(key, value);
+ this.result.$indexSet(0, entry.key, entry.value);
+ },
+ $signature: function() {
+ return H._instanceType(this.$this)._eval$1("~(1,2)");
+ }
+ };
+ H.ConstantStringMap.prototype = {
+ get$length: function(_) {
+ return this.__js_helper$_length;
+ },
+ containsKey$1: function(_, key) {
+ if (typeof key != "string")
+ return false;
+ if ("__proto__" === key)
+ return false;
+ return this._jsObject.hasOwnProperty(key);
+ },
+ $index: function(_, key) {
+ if (!this.containsKey$1(0, key))
+ return null;
+ return this._fetch$1(key);
+ },
+ _fetch$1: function(key) {
+ return this._jsObject[key];
+ },
+ forEach$1: function(_, f) {
+ var t1, i, key,
+ keys = this._keys;
+ for (t1 = keys.length, i = 0; i < t1; ++i) {
+ key = keys[i];
+ f.call$2(key, this._fetch$1(key));
+ }
+ },
+ get$keys: function(_) {
+ return new H._ConstantMapKeyIterable(this, H._instanceType(this)._eval$1("_ConstantMapKeyIterable<1>"));
+ },
+ get$values: function(_) {
+ var t1 = H._instanceType(this);
+ return H.MappedIterable_MappedIterable(this._keys, new H.ConstantStringMap_values_closure(this), t1._precomputed1, t1._rest[1]);
+ }
+ };
+ H.ConstantStringMap_values_closure.prototype = {
+ call$1: function(key) {
+ return this.$this._fetch$1(key);
+ },
+ $signature: function() {
+ return H._instanceType(this.$this)._eval$1("2(1)");
+ }
+ };
+ H._ConstantMapKeyIterable.prototype = {
+ get$iterator: function(_) {
+ var t1 = this._map._keys;
+ return new J.ArrayIterator(t1, t1.length);
+ },
+ get$length: function(_) {
+ return this._map._keys.length;
+ }
+ };
+ H.GeneralConstantMap.prototype = {
+ _getMap$0: function() {
+ var t1, _this = this,
+ backingMap = _this.$map;
+ if (backingMap == null) {
+ t1 = _this.$ti;
+ backingMap = new H.JsLinkedHashMap(t1._eval$1("@<1>")._bind$1(t1._rest[1])._eval$1("JsLinkedHashMap<1,2>"));
+ H.fillLiteralMap(_this._jsData, backingMap);
+ _this.$map = backingMap;
+ }
+ return backingMap;
+ },
+ containsKey$1: function(_, key) {
+ return this._getMap$0().containsKey$1(0, key);
+ },
+ $index: function(_, key) {
+ return this._getMap$0().$index(0, key);
+ },
+ forEach$1: function(_, f) {
+ this._getMap$0().forEach$1(0, f);
+ },
+ get$keys: function(_) {
+ var t1 = this._getMap$0();
+ return t1.get$keys(t1);
+ },
+ get$values: function(_) {
+ var t1 = this._getMap$0();
+ return t1.get$values(t1);
+ },
+ get$length: function(_) {
+ var t1 = this._getMap$0();
+ return t1.get$length(t1);
+ }
+ };
+ H.Instantiation.prototype = {
+ toString$0: function(_) {
+ var types = "<" + C.JSArray_methods.join$1([H.createRuntimeType(this.$ti._precomputed1)], ", ") + ">";
+ return H.S(this._genericClosure) + " with " + types;
+ }
+ };
+ H.Instantiation1.prototype = {
+ call$2: function(a0, a1) {
+ return this._genericClosure.call$1$2(a0, a1, this.$ti._rest[0]);
+ },
+ $signature: function() {
+ return H.instantiatedGenericFunctionType(H.closureFunctionType(this._genericClosure), this.$ti);
+ }
+ };
+ H.JSInvocationMirror.prototype = {
+ get$memberName: function() {
+ var t1 = this.__js_helper$_memberName;
+ return t1;
+ },
+ get$positionalArguments: function() {
+ var t1, argumentCount, list, index, _this = this;
+ if (_this.__js_helper$_kind === 1)
+ return C.List_empty1;
+ t1 = _this._arguments;
+ argumentCount = t1.length - _this._namedArgumentNames.length - _this._typeArgumentCount;
+ if (argumentCount === 0)
+ return C.List_empty1;
+ list = [];
+ for (index = 0; index < argumentCount; ++index)
+ list.push(t1[index]);
+ return J.JSArray_markUnmodifiableList(list);
+ },
+ get$namedArguments: function() {
+ var t1, namedArgumentCount, t2, namedArgumentsStartIndex, map, i, _this = this;
+ if (_this.__js_helper$_kind !== 0)
+ return C.Map_empty;
+ t1 = _this._namedArgumentNames;
+ namedArgumentCount = t1.length;
+ t2 = _this._arguments;
+ namedArgumentsStartIndex = t2.length - namedArgumentCount - _this._typeArgumentCount;
+ if (namedArgumentCount === 0)
+ return C.Map_empty;
+ map = new H.JsLinkedHashMap(type$.JsLinkedHashMap_Symbol_dynamic);
+ for (i = 0; i < namedArgumentCount; ++i)
+ map.$indexSet(0, new H.Symbol(t1[i]), t2[namedArgumentsStartIndex + i]);
+ return new H.ConstantMapView(map, type$.ConstantMapView_Symbol_dynamic);
+ }
+ };
+ H.Primitives_initTicker_closure.prototype = {
+ call$0: function() {
+ return C.JSNumber_methods.floor$0(1000 * this.performance.now());
+ },
+ $signature: 73
+ };
+ H.Primitives_functionNoSuchMethod_closure.prototype = {
+ call$2: function($name, argument) {
+ var t1 = this._box_0;
+ t1.names = t1.names + "$" + H.S($name);
+ this.namedArgumentList.push($name);
+ this.$arguments.push(argument);
+ ++t1.argumentCount;
+ },
+ $signature: 19
+ };
+ H.TypeErrorDecoder.prototype = {
+ matchTypeError$1: function(message) {
+ var result, t1, _this = this,
+ match = new RegExp(_this._pattern).exec(message);
+ if (match == null)
+ return null;
+ result = Object.create(null);
+ t1 = _this._arguments;
+ if (t1 !== -1)
+ result.arguments = match[t1 + 1];
+ t1 = _this._argumentsExpr;
+ if (t1 !== -1)
+ result.argumentsExpr = match[t1 + 1];
+ t1 = _this._expr;
+ if (t1 !== -1)
+ result.expr = match[t1 + 1];
+ t1 = _this._method;
+ if (t1 !== -1)
+ result.method = match[t1 + 1];
+ t1 = _this._receiver;
+ if (t1 !== -1)
+ result.receiver = match[t1 + 1];
+ return result;
+ }
+ };
+ H.NullError.prototype = {
+ toString$0: function(_) {
+ var t1 = this._method;
+ if (t1 == null)
+ return "NoSuchMethodError: " + H.S(this.__js_helper$_message);
+ return "NoSuchMethodError: method not found: '" + t1 + "' on null";
+ },
+ $isNoSuchMethodError: 1
+ };
+ H.JsNoSuchMethodError.prototype = {
+ toString$0: function(_) {
+ var t2, _this = this,
+ _s38_ = "NoSuchMethodError: method not found: '",
+ t1 = _this._method;
+ if (t1 == null)
+ return "NoSuchMethodError: " + H.S(_this.__js_helper$_message);
+ t2 = _this._receiver;
+ if (t2 == null)
+ return _s38_ + t1 + "' (" + H.S(_this.__js_helper$_message) + ")";
+ return _s38_ + t1 + "' on '" + t2 + "' (" + H.S(_this.__js_helper$_message) + ")";
+ },
+ $isNoSuchMethodError: 1
+ };
+ H.UnknownJsTypeError.prototype = {
+ toString$0: function(_) {
+ var t1 = this.__js_helper$_message;
+ return t1.length === 0 ? "Error" : "Error: " + t1;
+ }
+ };
+ H.NullThrownFromJavaScriptException.prototype = {
+ toString$0: function(_) {
+ return "Throw of null ('" + (this._irritant === null ? "null" : "undefined") + "' from JavaScript)";
+ },
+ $isException: 1
+ };
+ H.ExceptionAndStackTrace.prototype = {};
+ H._StackTrace.prototype = {
+ toString$0: function(_) {
+ var trace,
+ t1 = this._trace;
+ if (t1 != null)
+ return t1;
+ t1 = this._exception;
+ trace = t1 !== null && typeof t1 === "object" ? t1.stack : null;
+ return this._trace = trace == null ? "" : trace;
+ },
+ $isStackTrace: 1
+ };
+ H.Closure.prototype = {
+ toString$0: function(_) {
+ var $constructor = this.constructor,
+ $name = $constructor == null ? null : $constructor.name;
+ return "Closure '" + H.unminifyOrTag($name == null ? "unknown" : $name) + "'";
+ },
+ $isFunction: 1,
+ get$$call: function() {
+ return this;
+ },
+ "call*": "call$1",
+ $requiredArgCount: 1,
+ $defaultValues: null
+ };
+ H.TearOffClosure.prototype = {};
+ H.StaticClosure.prototype = {
+ toString$0: function(_) {
+ var $name = this.$static_name;
+ if ($name == null)
+ return "Closure of unknown static method";
+ return "Closure '" + H.unminifyOrTag($name) + "'";
+ }
+ };
+ H.BoundClosure.prototype = {
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (!(other instanceof H.BoundClosure))
+ return false;
+ return _this._self === other._self && _this._target === other._target && _this._receiver === other._receiver;
+ },
+ get$hashCode: function(_) {
+ var receiverHashCode,
+ t1 = this._receiver;
+ if (t1 == null)
+ receiverHashCode = H.Primitives_objectHashCode(this._self);
+ else
+ receiverHashCode = typeof t1 !== "object" ? J.get$hashCode$(t1) : H.Primitives_objectHashCode(t1);
+ return (receiverHashCode ^ H.Primitives_objectHashCode(this._target)) >>> 0;
+ },
+ toString$0: function(_) {
+ var receiver = this._receiver;
+ if (receiver == null)
+ receiver = this._self;
+ return "Closure '" + H.S(this.__js_helper$_name) + "' of " + ("Instance of '" + H.S(H.Primitives_objectTypeName(receiver)) + "'");
+ }
+ };
+ H.RuntimeError.prototype = {
+ toString$0: function(_) {
+ return "RuntimeError: " + this.message;
+ }
+ };
+ H._Required.prototype = {};
+ H.JsLinkedHashMap.prototype = {
+ get$length: function(_) {
+ return this.__js_helper$_length;
+ },
+ get$isEmpty: function(_) {
+ return this.__js_helper$_length === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return !this.get$isEmpty(this);
+ },
+ get$keys: function(_) {
+ return new H.LinkedHashMapKeyIterable(this, H._instanceType(this)._eval$1("LinkedHashMapKeyIterable<1>"));
+ },
+ get$values: function(_) {
+ var _this = this,
+ t1 = H._instanceType(_this);
+ return H.MappedIterable_MappedIterable(_this.get$keys(_this), new H.JsLinkedHashMap_values_closure(_this), t1._precomputed1, t1._rest[1]);
+ },
+ containsKey$1: function(_, key) {
+ var strings, nums, _this = this;
+ if (typeof key == "string") {
+ strings = _this._strings;
+ if (strings == null)
+ return false;
+ return _this._containsTableEntry$2(strings, key);
+ } else if (typeof key == "number" && (key & 0x3ffffff) === key) {
+ nums = _this._nums;
+ if (nums == null)
+ return false;
+ return _this._containsTableEntry$2(nums, key);
+ } else
+ return _this.internalContainsKey$1(key);
+ },
+ internalContainsKey$1: function(key) {
+ var _this = this,
+ rest = _this.__js_helper$_rest;
+ if (rest == null)
+ return false;
+ return _this.internalFindBucketIndex$2(_this._getTableBucket$2(rest, _this.internalComputeHashCode$1(key)), key) >= 0;
+ },
+ addAll$1: function(_, other) {
+ other.forEach$1(0, new H.JsLinkedHashMap_addAll_closure(this));
+ },
+ $index: function(_, key) {
+ var strings, cell, t1, nums, _this = this, _null = null;
+ if (typeof key == "string") {
+ strings = _this._strings;
+ if (strings == null)
+ return _null;
+ cell = _this._getTableCell$2(strings, key);
+ t1 = cell == null ? _null : cell.hashMapCellValue;
+ return t1;
+ } else if (typeof key == "number" && (key & 0x3ffffff) === key) {
+ nums = _this._nums;
+ if (nums == null)
+ return _null;
+ cell = _this._getTableCell$2(nums, key);
+ t1 = cell == null ? _null : cell.hashMapCellValue;
+ return t1;
+ } else
+ return _this.internalGet$1(key);
+ },
+ internalGet$1: function(key) {
+ var bucket, index, _this = this,
+ rest = _this.__js_helper$_rest;
+ if (rest == null)
+ return null;
+ bucket = _this._getTableBucket$2(rest, _this.internalComputeHashCode$1(key));
+ index = _this.internalFindBucketIndex$2(bucket, key);
+ if (index < 0)
+ return null;
+ return bucket[index].hashMapCellValue;
+ },
+ $indexSet: function(_, key, value) {
+ var strings, nums, _this = this;
+ if (typeof key == "string") {
+ strings = _this._strings;
+ _this._addHashTableEntry$3(strings == null ? _this._strings = _this._newHashTable$0() : strings, key, value);
+ } else if (typeof key == "number" && (key & 0x3ffffff) === key) {
+ nums = _this._nums;
+ _this._addHashTableEntry$3(nums == null ? _this._nums = _this._newHashTable$0() : nums, key, value);
+ } else
+ _this.internalSet$2(key, value);
+ },
+ internalSet$2: function(key, value) {
+ var hash, bucket, index, _this = this,
+ rest = _this.__js_helper$_rest;
+ if (rest == null)
+ rest = _this.__js_helper$_rest = _this._newHashTable$0();
+ hash = _this.internalComputeHashCode$1(key);
+ bucket = _this._getTableBucket$2(rest, hash);
+ if (bucket == null)
+ _this._setTableEntry$3(rest, hash, [_this._newLinkedCell$2(key, value)]);
+ else {
+ index = _this.internalFindBucketIndex$2(bucket, key);
+ if (index >= 0)
+ bucket[index].hashMapCellValue = value;
+ else
+ bucket.push(_this._newLinkedCell$2(key, value));
+ }
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ var value;
+ if (this.containsKey$1(0, key))
+ return this.$index(0, key);
+ value = ifAbsent.call$0();
+ this.$indexSet(0, key, value);
+ return value;
+ },
+ remove$1: function(_, key) {
+ var _this = this;
+ if (typeof key == "string")
+ return _this._removeHashTableEntry$2(_this._strings, key);
+ else if (typeof key == "number" && (key & 0x3ffffff) === key)
+ return _this._removeHashTableEntry$2(_this._nums, key);
+ else
+ return _this.internalRemove$1(key);
+ },
+ internalRemove$1: function(key) {
+ var hash, bucket, index, cell, _this = this,
+ rest = _this.__js_helper$_rest;
+ if (rest == null)
+ return null;
+ hash = _this.internalComputeHashCode$1(key);
+ bucket = _this._getTableBucket$2(rest, hash);
+ index = _this.internalFindBucketIndex$2(bucket, key);
+ if (index < 0)
+ return null;
+ cell = bucket.splice(index, 1)[0];
+ _this._unlinkCell$1(cell);
+ if (bucket.length === 0)
+ _this._deleteTableEntry$2(rest, hash);
+ return cell.hashMapCellValue;
+ },
+ clear$0: function(_) {
+ var _this = this;
+ if (_this.__js_helper$_length > 0) {
+ _this._strings = _this._nums = _this.__js_helper$_rest = _this._first = _this._last = null;
+ _this.__js_helper$_length = 0;
+ _this._modified$0();
+ }
+ },
+ forEach$1: function(_, action) {
+ var _this = this,
+ cell = _this._first,
+ modifications = _this._modifications;
+ for (; cell != null;) {
+ action.call$2(cell.hashMapCellKey, cell.hashMapCellValue);
+ if (modifications !== _this._modifications)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ cell = cell._next;
+ }
+ },
+ _addHashTableEntry$3: function(table, key, value) {
+ var cell = this._getTableCell$2(table, key);
+ if (cell == null)
+ this._setTableEntry$3(table, key, this._newLinkedCell$2(key, value));
+ else
+ cell.hashMapCellValue = value;
+ },
+ _removeHashTableEntry$2: function(table, key) {
+ var cell;
+ if (table == null)
+ return null;
+ cell = this._getTableCell$2(table, key);
+ if (cell == null)
+ return null;
+ this._unlinkCell$1(cell);
+ this._deleteTableEntry$2(table, key);
+ return cell.hashMapCellValue;
+ },
+ _modified$0: function() {
+ this._modifications = this._modifications + 1 & 67108863;
+ },
+ _newLinkedCell$2: function(key, value) {
+ var t1, _this = this,
+ cell = new H.LinkedHashMapCell(key, value);
+ if (_this._first == null)
+ _this._first = _this._last = cell;
+ else {
+ t1 = _this._last;
+ t1.toString;
+ cell._previous = t1;
+ _this._last = t1._next = cell;
+ }
+ ++_this.__js_helper$_length;
+ _this._modified$0();
+ return cell;
+ },
+ _unlinkCell$1: function(cell) {
+ var _this = this,
+ previous = cell._previous,
+ next = cell._next;
+ if (previous == null)
+ _this._first = next;
+ else
+ previous._next = next;
+ if (next == null)
+ _this._last = previous;
+ else
+ next._previous = previous;
+ --_this.__js_helper$_length;
+ _this._modified$0();
+ },
+ internalComputeHashCode$1: function(key) {
+ return J.get$hashCode$(key) & 0x3ffffff;
+ },
+ internalFindBucketIndex$2: function(bucket, key) {
+ var $length, i;
+ if (bucket == null)
+ return -1;
+ $length = bucket.length;
+ for (i = 0; i < $length; ++i)
+ if (J.$eq$(bucket[i].hashMapCellKey, key))
+ return i;
+ return -1;
+ },
+ toString$0: function(_) {
+ return P.MapBase_mapToString(this);
+ },
+ _getTableCell$2: function(table, key) {
+ return table[key];
+ },
+ _getTableBucket$2: function(table, key) {
+ return table[key];
+ },
+ _setTableEntry$3: function(table, key, value) {
+ table[key] = value;
+ },
+ _deleteTableEntry$2: function(table, key) {
+ delete table[key];
+ },
+ _containsTableEntry$2: function(table, key) {
+ return this._getTableCell$2(table, key) != null;
+ },
+ _newHashTable$0: function() {
+ var _s20_ = "",
+ table = Object.create(null);
+ this._setTableEntry$3(table, _s20_, table);
+ this._deleteTableEntry$2(table, _s20_);
+ return table;
+ },
+ $isLinkedHashMap: 1
+ };
+ H.JsLinkedHashMap_values_closure.prototype = {
+ call$1: function(each) {
+ return this.$this.$index(0, each);
+ },
+ $signature: function() {
+ return H._instanceType(this.$this)._eval$1("2(1)");
+ }
+ };
+ H.JsLinkedHashMap_addAll_closure.prototype = {
+ call$2: function(key, value) {
+ this.$this.$indexSet(0, key, value);
+ },
+ $signature: function() {
+ return H._instanceType(this.$this)._eval$1("~(1,2)");
+ }
+ };
+ H.LinkedHashMapCell.prototype = {};
+ H.LinkedHashMapKeyIterable.prototype = {
+ get$length: function(_) {
+ return this._map.__js_helper$_length;
+ },
+ get$isEmpty: function(_) {
+ return this._map.__js_helper$_length === 0;
+ },
+ get$iterator: function(_) {
+ var t1 = this._map,
+ t2 = new H.LinkedHashMapKeyIterator(t1, t1._modifications);
+ t2._cell = t1._first;
+ return t2;
+ },
+ contains$1: function(_, element) {
+ return this._map.containsKey$1(0, element);
+ },
+ forEach$1: function(_, f) {
+ var t1 = this._map,
+ cell = t1._first,
+ modifications = t1._modifications;
+ for (; cell != null;) {
+ f.call$1(cell.hashMapCellKey);
+ if (modifications !== t1._modifications)
+ throw H.wrapException(P.ConcurrentModificationError$(t1));
+ cell = cell._next;
+ }
+ }
+ };
+ H.LinkedHashMapKeyIterator.prototype = {
+ get$current: function(_) {
+ return this.__js_helper$_current;
+ },
+ moveNext$0: function() {
+ var cell, _this = this,
+ t1 = _this._map;
+ if (_this._modifications !== t1._modifications)
+ throw H.wrapException(P.ConcurrentModificationError$(t1));
+ cell = _this._cell;
+ if (cell == null) {
+ _this.__js_helper$_current = null;
+ return false;
+ } else {
+ _this.__js_helper$_current = cell.hashMapCellKey;
+ _this._cell = cell._next;
+ return true;
+ }
+ }
+ };
+ H.initHooks_closure.prototype = {
+ call$1: function(o) {
+ return this.getTag(o);
+ },
+ $signature: 34
+ };
+ H.initHooks_closure0.prototype = {
+ call$2: function(o, tag) {
+ return this.getUnknownTag(o, tag);
+ },
+ $signature: 259
+ };
+ H.initHooks_closure1.prototype = {
+ call$1: function(tag) {
+ return this.prototypeForTag(tag);
+ },
+ $signature: 247
+ };
+ H.JSSyntaxRegExp.prototype = {
+ toString$0: function(_) {
+ return "RegExp/" + this.pattern + "/" + this._nativeRegExp.flags;
+ },
+ get$_nativeGlobalVersion: function() {
+ var _this = this,
+ t1 = _this._nativeGlobalRegExp;
+ if (t1 != null)
+ return t1;
+ t1 = _this._nativeRegExp;
+ return _this._nativeGlobalRegExp = H.JSSyntaxRegExp_makeNative(_this.pattern, t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, true);
+ },
+ get$_nativeAnchoredVersion: function() {
+ var _this = this,
+ t1 = _this._nativeAnchoredRegExp;
+ if (t1 != null)
+ return t1;
+ t1 = _this._nativeRegExp;
+ return _this._nativeAnchoredRegExp = H.JSSyntaxRegExp_makeNative(_this.pattern + "|()", t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, true);
+ },
+ firstMatch$1: function(string) {
+ var m;
+ if (typeof string != "string")
+ H.throwExpression(H.argumentErrorValue(string));
+ m = this._nativeRegExp.exec(string);
+ if (m == null)
+ return null;
+ return new H._MatchImplementation(m);
+ },
+ stringMatch$1: function(string) {
+ var match = this.firstMatch$1(string);
+ if (match != null)
+ return match._match[0];
+ return null;
+ },
+ allMatches$2: function(_, string, start) {
+ var t1 = string.length;
+ if (start > t1)
+ throw H.wrapException(P.RangeError$range(start, 0, t1, null, null));
+ return new H._AllMatchesIterable(this, string, start);
+ },
+ allMatches$1: function($receiver, string) {
+ return this.allMatches$2($receiver, string, 0);
+ },
+ _execGlobal$2: function(string, start) {
+ var match,
+ regexp = this.get$_nativeGlobalVersion();
+ regexp.lastIndex = start;
+ match = regexp.exec(string);
+ if (match == null)
+ return null;
+ return new H._MatchImplementation(match);
+ },
+ _execAnchored$2: function(string, start) {
+ var match,
+ regexp = this.get$_nativeAnchoredVersion();
+ regexp.lastIndex = start;
+ match = regexp.exec(string);
+ if (match == null)
+ return null;
+ if (match.pop() != null)
+ return null;
+ return new H._MatchImplementation(match);
+ },
+ matchAsPrefix$2: function(_, string, start) {
+ if (start < 0 || start > string.length)
+ throw H.wrapException(P.RangeError$range(start, 0, string.length, null, null));
+ return this._execAnchored$2(string, start);
+ },
+ $isPattern: 1,
+ $isRegExp: 1
+ };
+ H._MatchImplementation.prototype = {
+ get$start: function(_) {
+ return this._match.index;
+ },
+ get$end: function(_) {
+ var t1 = this._match;
+ return t1.index + t1[0].length;
+ },
+ $index: function(_, index) {
+ return this._match[index];
+ },
+ $isMatch: 1,
+ $isRegExpMatch: 1
+ };
+ H._AllMatchesIterable.prototype = {
+ get$iterator: function(_) {
+ return new H._AllMatchesIterator(this._re, this.__js_helper$_string, this.__js_helper$_start);
+ }
+ };
+ H._AllMatchesIterator.prototype = {
+ get$current: function(_) {
+ return this.__js_helper$_current;
+ },
+ moveNext$0: function() {
+ var t1, t2, t3, match, nextIndex, _this = this,
+ string = _this.__js_helper$_string;
+ if (string == null)
+ return false;
+ t1 = _this._nextIndex;
+ t2 = string.length;
+ if (t1 <= t2) {
+ t3 = _this._regExp;
+ match = t3._execGlobal$2(string, t1);
+ if (match != null) {
+ _this.__js_helper$_current = match;
+ nextIndex = match.get$end(match);
+ if (match._match.index === nextIndex) {
+ if (t3._nativeRegExp.unicode) {
+ t1 = _this._nextIndex;
+ t3 = t1 + 1;
+ if (t3 < t2) {
+ t1 = C.JSString_methods.codeUnitAt$1(string, t1);
+ if (t1 >= 55296 && t1 <= 56319) {
+ t1 = C.JSString_methods.codeUnitAt$1(string, t3);
+ t1 = t1 >= 56320 && t1 <= 57343;
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ nextIndex = (t1 ? nextIndex + 1 : nextIndex) + 1;
+ }
+ _this._nextIndex = nextIndex;
+ return true;
+ }
+ }
+ _this.__js_helper$_string = _this.__js_helper$_current = null;
+ return false;
+ }
+ };
+ H.StringMatch.prototype = {
+ get$end: function(_) {
+ return this.start + this.pattern.length;
+ },
+ $index: function(_, g) {
+ if (g !== 0)
+ H.throwExpression(P.RangeError$value(g, null, null));
+ return this.pattern;
+ },
+ $isMatch: 1,
+ get$start: function(receiver) {
+ return this.start;
+ }
+ };
+ H._StringAllMatchesIterable.prototype = {
+ get$iterator: function(_) {
+ return new H._StringAllMatchesIterator(this._input, this._pattern, this.__js_helper$_index);
+ },
+ get$first: function(_) {
+ var t1 = this._pattern,
+ index = this._input.indexOf(t1, this.__js_helper$_index);
+ if (index >= 0)
+ return new H.StringMatch(index, t1);
+ throw H.wrapException(H.IterableElementError_noElement());
+ }
+ };
+ H._StringAllMatchesIterator.prototype = {
+ moveNext$0: function() {
+ var index, end, _this = this,
+ t1 = _this.__js_helper$_index,
+ t2 = _this._pattern,
+ t3 = t2.length,
+ t4 = _this._input,
+ t5 = t4.length;
+ if (t1 + t3 > t5) {
+ _this.__js_helper$_current = null;
+ return false;
+ }
+ index = t4.indexOf(t2, t1);
+ if (index < 0) {
+ _this.__js_helper$_index = t5 + 1;
+ _this.__js_helper$_current = null;
+ return false;
+ }
+ end = index + t3;
+ _this.__js_helper$_current = new H.StringMatch(index, t2);
+ _this.__js_helper$_index = end === _this.__js_helper$_index ? end + 1 : end;
+ return true;
+ },
+ get$current: function(_) {
+ var t1 = this.__js_helper$_current;
+ t1.toString;
+ return t1;
+ }
+ };
+ H.NativeByteBuffer.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_ByteBuffer_RkP;
+ },
+ asUint8List$2: function(receiver, offsetInBytes, $length) {
+ H._checkViewArguments(receiver, offsetInBytes, $length);
+ return $length == null ? new Uint8Array(receiver, offsetInBytes) : new Uint8Array(receiver, offsetInBytes, $length);
+ },
+ asUint8List$0: function($receiver) {
+ return this.asUint8List$2($receiver, 0, null);
+ },
+ asInt64List$2: function(receiver, offsetInBytes, $length) {
+ throw H.wrapException(P.UnsupportedError$("Int64List not supported by dart2js."));
+ },
+ $isNativeByteBuffer: 1,
+ $isByteBuffer: 1
+ };
+ H.NativeTypedData.prototype = {
+ _invalidPosition$3: function(receiver, position, $length, $name) {
+ var t1 = P.RangeError$range(position, 0, $length, $name, null);
+ throw H.wrapException(t1);
+ },
+ _checkPosition$3: function(receiver, position, $length, $name) {
+ if (position >>> 0 !== position || position > $length)
+ this._invalidPosition$3(receiver, position, $length, $name);
+ },
+ $isNativeTypedData: 1,
+ $isTypedData: 1
+ };
+ H.NativeByteData.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_ByteData_zNC;
+ },
+ getInt64$2: function(receiver, byteOffset, endian) {
+ throw H.wrapException(P.UnsupportedError$("Int64 accessor not supported by dart2js."));
+ },
+ setInt64$3: function(receiver, byteOffset, value, endian) {
+ throw H.wrapException(P.UnsupportedError$("Int64 accessor not supported by dart2js."));
+ },
+ $isByteData: 1
+ };
+ H.NativeTypedArray.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ _setRangeFast$4: function(receiver, start, end, source, skipCount) {
+ var count, sourceLength,
+ targetLength = receiver.length;
+ this._checkPosition$3(receiver, start, targetLength, "start");
+ this._checkPosition$3(receiver, end, targetLength, "end");
+ if (start > end)
+ throw H.wrapException(P.RangeError$range(start, 0, end, null, null));
+ count = end - start;
+ if (skipCount < 0)
+ throw H.wrapException(P.ArgumentError$(skipCount));
+ sourceLength = source.length;
+ if (sourceLength - skipCount < count)
+ throw H.wrapException(P.StateError$("Not enough elements"));
+ if (skipCount !== 0 || sourceLength !== count)
+ source = source.subarray(skipCount, skipCount + count);
+ receiver.set(source, start);
+ },
+ $isJSIndexable: 1,
+ $isJavaScriptIndexingBehavior: 1
+ };
+ H.NativeTypedArrayOfDouble.prototype = {
+ $index: function(receiver, index) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ receiver[index] = value;
+ },
+ setRange$4: function(receiver, start, end, iterable, skipCount) {
+ if (type$.NativeTypedArrayOfDouble._is(iterable)) {
+ this._setRangeFast$4(receiver, start, end, iterable, skipCount);
+ return;
+ }
+ this.super$ListMixin$setRange(receiver, start, end, iterable, skipCount);
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ H.NativeTypedArrayOfInt.prototype = {
+ $indexSet: function(receiver, index, value) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ receiver[index] = value;
+ },
+ setRange$4: function(receiver, start, end, iterable, skipCount) {
+ if (type$.NativeTypedArrayOfInt._is(iterable)) {
+ this._setRangeFast$4(receiver, start, end, iterable, skipCount);
+ return;
+ }
+ this.super$ListMixin$setRange(receiver, start, end, iterable, skipCount);
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ H.NativeFloat32List.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Float32List_LB7;
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Float32Array(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ }
+ };
+ H.NativeFloat64List.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Float64List_LB7;
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Float64Array(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ },
+ $isFloat64List: 1
+ };
+ H.NativeInt16List.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Int16List_uXf;
+ },
+ $index: function(receiver, index) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ return receiver[index];
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Int16Array(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ }
+ };
+ H.NativeInt32List.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Int32List_O50;
+ },
+ $index: function(receiver, index) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ return receiver[index];
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Int32Array(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ },
+ $isInt32List: 1
+ };
+ H.NativeInt8List.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Int8List_ekJ;
+ },
+ $index: function(receiver, index) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ return receiver[index];
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Int8Array(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ }
+ };
+ H.NativeUint16List.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Uint16List_2bx;
+ },
+ $index: function(receiver, index) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ return receiver[index];
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Uint16Array(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ }
+ };
+ H.NativeUint32List.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Uint32List_2bx;
+ },
+ $index: function(receiver, index) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ return receiver[index];
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Uint32Array(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ }
+ };
+ H.NativeUint8ClampedList.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Uint8ClampedList_Jik;
+ },
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ return receiver[index];
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Uint8ClampedArray(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ }
+ };
+ H.NativeUint8List.prototype = {
+ get$runtimeType: function(receiver) {
+ return C.Type_Uint8List_WLA;
+ },
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ H._checkValidIndex(index, receiver, receiver.length);
+ return receiver[index];
+ },
+ sublist$2: function(receiver, start, end) {
+ return new Uint8Array(receiver.subarray(start, H._checkValidRange(start, end, receiver.length)));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ },
+ $isNativeUint8List: 1,
+ $isUint8List: 1
+ };
+ H._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.prototype = {};
+ H._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.prototype = {};
+ H._NativeTypedArrayOfInt_NativeTypedArray_ListMixin.prototype = {};
+ H._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin.prototype = {};
+ H.Rti.prototype = {
+ _eval$1: function(recipe) {
+ return H._Universe_evalInEnvironment(init.typeUniverse, this, recipe);
+ },
+ _bind$1: function(typeOrTuple) {
+ return H._Universe_bind(init.typeUniverse, this, typeOrTuple);
+ }
+ };
+ H._FunctionParameters.prototype = {};
+ H._Type.prototype = {
+ toString$0: function(_) {
+ return H._rtiToString(this._rti, null);
+ },
+ $isType: 1
+ };
+ H._Error.prototype = {
+ toString$0: function(_) {
+ return this._message;
+ }
+ };
+ H._TypeError.prototype = {};
+ P._AsyncRun__initializeScheduleImmediate_internalCallback.prototype = {
+ call$1: function(_) {
+ var t1 = this._box_0,
+ f = t1.storedCallback;
+ t1.storedCallback = null;
+ f.call$0();
+ },
+ $signature: 3
+ };
+ P._AsyncRun__initializeScheduleImmediate_closure.prototype = {
+ call$1: function(callback) {
+ var t1, t2;
+ this._box_0.storedCallback = callback;
+ t1 = this.div;
+ t2 = this.span;
+ t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2);
+ },
+ $signature: 242
+ };
+ P._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = {
+ call$0: function() {
+ this.callback.call$0();
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 2
+ };
+ P._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback.prototype = {
+ call$0: function() {
+ this.callback.call$0();
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 2
+ };
+ P._TimerImpl.prototype = {
+ _TimerImpl$2: function(milliseconds, callback) {
+ if (self.setTimeout != null)
+ this._handle = self.setTimeout(H.convertDartClosureToJS(new P._TimerImpl_internalCallback(this, callback), 0), milliseconds);
+ else
+ throw H.wrapException(P.UnsupportedError$("`setTimeout()` not found."));
+ },
+ _TimerImpl$periodic$2: function(milliseconds, callback) {
+ if (self.setTimeout != null)
+ this._handle = self.setInterval(H.convertDartClosureToJS(new P._TimerImpl$periodic_closure(this, milliseconds, Date.now(), callback), 0), milliseconds);
+ else
+ throw H.wrapException(P.UnsupportedError$("Periodic timer."));
+ },
+ cancel$0: function(_) {
+ var t1;
+ if (self.setTimeout != null) {
+ t1 = this._handle;
+ if (t1 == null)
+ return;
+ if (this._once)
+ self.clearTimeout(t1);
+ else
+ self.clearInterval(t1);
+ this._handle = null;
+ } else
+ throw H.wrapException(P.UnsupportedError$("Canceling a timer."));
+ },
+ $isTimer: 1
+ };
+ P._TimerImpl_internalCallback.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._handle = null;
+ t1._tick = 1;
+ this.callback.call$0();
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ P._TimerImpl$periodic_closure.prototype = {
+ call$0: function() {
+ var duration, _this = this,
+ t1 = _this.$this,
+ tick = t1._tick + 1,
+ t2 = _this.milliseconds;
+ if (t2 > 0) {
+ duration = Date.now() - _this.start;
+ if (duration > (tick + 1) * t2)
+ tick = C.JSInt_methods.$tdiv(duration, t2);
+ }
+ t1._tick = tick;
+ _this.callback.call$1(t1);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 2
+ };
+ P._AsyncAwaitCompleter.prototype = {
+ complete$1: function(_, value) {
+ var t1, _this = this;
+ if (!_this.isSync)
+ _this._future._asyncComplete$1(value);
+ else {
+ t1 = _this._future;
+ if (_this.$ti._eval$1("Future<1>")._is(value))
+ t1._chainFuture$1(value);
+ else
+ t1._completeWithValue$1(value);
+ }
+ },
+ completeError$2: function(e, st) {
+ var t1;
+ if (st == null)
+ st = P.AsyncError_defaultStackTrace(e);
+ t1 = this._future;
+ if (this.isSync)
+ t1._completeError$2(e, st);
+ else
+ t1._asyncCompleteError$2(e, st);
+ }
+ };
+ P._awaitOnObject_closure.prototype = {
+ call$1: function(result) {
+ return this.bodyFunction.call$2(0, result);
+ },
+ $signature: 8
+ };
+ P._awaitOnObject_closure0.prototype = {
+ call$2: function(error, stackTrace) {
+ this.bodyFunction.call$2(1, new H.ExceptionAndStackTrace(error, stackTrace));
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 241
+ };
+ P._wrapJsFunctionForAsync_closure.prototype = {
+ call$2: function(errorCode, result) {
+ this.$protected(errorCode, result);
+ },
+ $signature: 235
+ };
+ P._asyncStarHelper_closure.prototype = {
+ call$0: function() {
+ var t1 = this.controller,
+ t2 = t1.get$controller(t1),
+ t3 = t2._state;
+ if ((t3 & 1) !== 0 ? (t2.get$_subscription()._state & 4) !== 0 : (t3 & 2) === 0) {
+ t1.isSuspended = true;
+ return;
+ }
+ this.bodyFunction.call$2(0, null);
+ },
+ $signature: 0
+ };
+ P._asyncStarHelper_closure0.prototype = {
+ call$1: function(_) {
+ var errorCode = this.controller.cancelationFuture != null ? 2 : 0;
+ this.bodyFunction.call$2(errorCode, null);
+ },
+ $signature: 3
+ };
+ P._AsyncStarStreamController.prototype = {
+ get$controller: function(_) {
+ return this.___AsyncStarStreamController_controller_isSet ? this.___AsyncStarStreamController_controller : H.throwExpression(H.LateError$fieldNI("controller"));
+ },
+ _AsyncStarStreamController$1: function(body, $T) {
+ var _this = this,
+ t1 = new P._AsyncStarStreamController__resumeBody(body);
+ t1 = P.StreamController_StreamController(new P._AsyncStarStreamController_closure(_this, body), new P._AsyncStarStreamController_closure0(t1), new P._AsyncStarStreamController_closure1(_this, t1), false, $T);
+ _this.___AsyncStarStreamController_controller_isSet = true;
+ _this.___AsyncStarStreamController_controller = t1;
+ }
+ };
+ P._AsyncStarStreamController__resumeBody.prototype = {
+ call$0: function() {
+ P.scheduleMicrotask(new P._AsyncStarStreamController__resumeBody_closure(this.body));
+ },
+ $signature: 2
+ };
+ P._AsyncStarStreamController__resumeBody_closure.prototype = {
+ call$0: function() {
+ this.body.call$2(0, null);
+ },
+ $signature: 0
+ };
+ P._AsyncStarStreamController_closure0.prototype = {
+ call$0: function() {
+ this._resumeBody.call$0();
+ },
+ $signature: 0
+ };
+ P._AsyncStarStreamController_closure1.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ if (t1.isSuspended) {
+ t1.isSuspended = false;
+ this._resumeBody.call$0();
+ }
+ },
+ $signature: 0
+ };
+ P._AsyncStarStreamController_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ if ((t1.get$controller(t1)._state & 4) === 0) {
+ t1.cancelationFuture = new P._Future($.Zone__current, type$._Future_dynamic);
+ if (t1.isSuspended) {
+ t1.isSuspended = false;
+ P.scheduleMicrotask(new P._AsyncStarStreamController__closure(this.body));
+ }
+ return t1.cancelationFuture;
+ }
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 234
+ };
+ P._AsyncStarStreamController__closure.prototype = {
+ call$0: function() {
+ this.body.call$2(2, null);
+ },
+ $signature: 0
+ };
+ P._IterationMarker.prototype = {
+ toString$0: function(_) {
+ return "IterationMarker(" + this.state + ", " + H.S(this.value) + ")";
+ }
+ };
+ P._SyncStarIterator.prototype = {
+ get$current: function(_) {
+ var nested = this._nestedIterator;
+ if (nested == null)
+ return this._async$_current;
+ return nested.get$current(nested);
+ },
+ moveNext$0: function() {
+ var t1, value, state, suspendedBodies, inner, _this = this;
+ for (; true;) {
+ t1 = _this._nestedIterator;
+ if (t1 != null)
+ if (t1.moveNext$0())
+ return true;
+ else
+ _this._nestedIterator = null;
+ value = function(body, SUCCESS, ERROR) {
+ var errorValue,
+ errorCode = SUCCESS;
+ while (true)
+ try {
+ return body(errorCode, errorValue);
+ } catch (error) {
+ errorValue = error;
+ errorCode = ERROR;
+ }
+ }(_this._body, 0, 1);
+ if (value instanceof P._IterationMarker) {
+ state = value.state;
+ if (state === 2) {
+ suspendedBodies = _this._suspendedBodies;
+ if (suspendedBodies == null || suspendedBodies.length === 0) {
+ _this._async$_current = null;
+ return false;
+ }
+ _this._body = suspendedBodies.pop();
+ continue;
+ } else {
+ t1 = value.value;
+ if (state === 3)
+ throw t1;
+ else {
+ inner = J.get$iterator$ax(t1);
+ if (inner instanceof P._SyncStarIterator) {
+ t1 = _this._suspendedBodies;
+ if (t1 == null)
+ t1 = _this._suspendedBodies = [];
+ t1.push(_this._body);
+ _this._body = inner._body;
+ continue;
+ } else {
+ _this._nestedIterator = inner;
+ continue;
+ }
+ }
+ }
+ } else {
+ _this._async$_current = value;
+ return true;
+ }
+ }
+ return false;
+ }
+ };
+ P._SyncStarIterable.prototype = {
+ get$iterator: function(_) {
+ return new P._SyncStarIterator(this._outerHelper());
+ }
+ };
+ P._BroadcastSubscription.prototype = {
+ _onPause$0: function() {
+ },
+ _onResume$0: function() {
+ }
+ };
+ P._BroadcastStreamController.prototype = {
+ get$_mayAddEvent: function() {
+ return this._state < 4;
+ },
+ _removeListener$1: function(subscription) {
+ var previous = subscription._async$_previous,
+ next = subscription._async$_next;
+ if (previous == null)
+ this._firstSubscription = next;
+ else
+ previous._async$_next = next;
+ if (next == null)
+ this._lastSubscription = previous;
+ else
+ next._async$_previous = previous;
+ subscription._async$_previous = subscription;
+ subscription._async$_next = subscription;
+ },
+ _subscribe$4: function(onData, onError, onDone, cancelOnError) {
+ var t1, t2, t3, t4, subscription, oldLast, _this = this;
+ if ((_this._state & 4) !== 0) {
+ t1 = new P._DoneStreamSubscription($.Zone__current, onDone, H._instanceType(_this)._eval$1("_DoneStreamSubscription<1>"));
+ t1._schedule$0();
+ return t1;
+ }
+ t1 = $.Zone__current;
+ t2 = cancelOnError ? 1 : 0;
+ t3 = P._BufferingStreamSubscription__registerDataHandler(t1, onData);
+ t4 = P._BufferingStreamSubscription__registerErrorHandler(t1, onError);
+ subscription = new P._BroadcastSubscription(_this, t3, t4, onDone, t1, t2, H._instanceType(_this)._eval$1("_BroadcastSubscription<1>"));
+ subscription._async$_previous = subscription;
+ subscription._async$_next = subscription;
+ subscription._eventState = _this._state & 1;
+ oldLast = _this._lastSubscription;
+ _this._lastSubscription = subscription;
+ subscription._async$_next = null;
+ subscription._async$_previous = oldLast;
+ if (oldLast == null)
+ _this._firstSubscription = subscription;
+ else
+ oldLast._async$_next = subscription;
+ if (_this._firstSubscription === subscription)
+ P._runGuarded(_this.onListen);
+ return subscription;
+ },
+ _recordCancel$1: function(sub) {
+ var t1, _this = this;
+ H._instanceType(_this)._eval$1("_BroadcastSubscription<1>")._as(sub);
+ if (sub._async$_next === sub)
+ return null;
+ t1 = sub._eventState;
+ if ((t1 & 2) !== 0)
+ sub._eventState = t1 | 4;
+ else {
+ _this._removeListener$1(sub);
+ if ((_this._state & 2) === 0 && _this._firstSubscription == null)
+ _this._callOnCancel$0();
+ }
+ return null;
+ },
+ _recordPause$1: function(subscription) {
+ },
+ _recordResume$1: function(subscription) {
+ },
+ _addEventError$0: function() {
+ if ((this._state & 4) !== 0)
+ return new P.StateError("Cannot add new events after calling close");
+ return new P.StateError("Cannot add new events while doing an addStream");
+ },
+ add$1: function(_, data) {
+ if (!this.get$_mayAddEvent())
+ throw H.wrapException(this._addEventError$0());
+ this._sendData$1(data);
+ },
+ _forEachListener$1: function(action) {
+ var subscription, id, next, _this = this,
+ t1 = _this._state;
+ if ((t1 & 2) !== 0)
+ throw H.wrapException(P.StateError$(string$.Cannotf));
+ subscription = _this._firstSubscription;
+ if (subscription == null)
+ return;
+ id = t1 & 1;
+ _this._state = t1 ^ 3;
+ for (; subscription != null;) {
+ t1 = subscription._eventState;
+ if ((t1 & 1) === id) {
+ subscription._eventState = t1 | 2;
+ action.call$1(subscription);
+ t1 = subscription._eventState ^= 1;
+ next = subscription._async$_next;
+ if ((t1 & 4) !== 0)
+ _this._removeListener$1(subscription);
+ subscription._eventState &= 4294967293;
+ subscription = next;
+ } else
+ subscription = subscription._async$_next;
+ }
+ _this._state &= 4294967293;
+ if (_this._firstSubscription == null)
+ _this._callOnCancel$0();
+ },
+ _callOnCancel$0: function() {
+ if ((this._state & 4) !== 0) {
+ var doneFuture = this._doneFuture;
+ if (doneFuture._state === 0)
+ doneFuture._asyncComplete$1(null);
+ }
+ P._runGuarded(this.onCancel);
+ }
+ };
+ P._SyncBroadcastStreamController.prototype = {
+ get$_mayAddEvent: function() {
+ return P._BroadcastStreamController.prototype.get$_mayAddEvent.call(this) && (this._state & 2) === 0;
+ },
+ _addEventError$0: function() {
+ if ((this._state & 2) !== 0)
+ return new P.StateError(string$.Cannotf);
+ return this.super$_BroadcastStreamController$_addEventError();
+ },
+ _sendData$1: function(data) {
+ var _this = this,
+ t1 = _this._firstSubscription;
+ if (t1 == null)
+ return;
+ if (t1 === _this._lastSubscription) {
+ _this._state |= 2;
+ t1._async$_add$1(0, data);
+ _this._state &= 4294967293;
+ if (_this._firstSubscription == null)
+ _this._callOnCancel$0();
+ return;
+ }
+ _this._forEachListener$1(new P._SyncBroadcastStreamController__sendData_closure(_this, data));
+ }
+ };
+ P._SyncBroadcastStreamController__sendData_closure.prototype = {
+ call$1: function(subscription) {
+ subscription._async$_add$1(0, this.data);
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("~(_BufferingStreamSubscription<1>)");
+ }
+ };
+ P.Future_Future$delayed_closure.prototype = {
+ call$0: function() {
+ this.result._complete$1(null);
+ },
+ $signature: 0
+ };
+ P.Future_wait__error_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._error_isSet = true;
+ return t2.error = t1;
+ },
+ $signature: 137
+ };
+ P.Future_wait__stackTrace_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._stackTrace_isSet = true;
+ return t2.stackTrace = t1;
+ },
+ $signature: 232
+ };
+ P.Future_wait__error_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._error_isSet ? t1.error : H.throwExpression(H.LateError$localNI("error"));
+ },
+ $signature: 230
+ };
+ P.Future_wait__stackTrace_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._stackTrace_isSet ? t1.stackTrace : H.throwExpression(H.LateError$localNI("stackTrace"));
+ },
+ $signature: 228
+ };
+ P.Future_wait_handleError.prototype = {
+ call$2: function(theError, theStackTrace) {
+ var _this = this,
+ t1 = _this._box_0,
+ t2 = --t1.remaining;
+ if (t1.values != null) {
+ t1.values = null;
+ if (t1.remaining === 0 || _this.eagerError)
+ _this._future._completeError$2(theError, theStackTrace);
+ else {
+ _this._error_set.call$1(theError);
+ _this._stackTrace_set.call$1(theStackTrace);
+ }
+ } else if (t2 === 0 && !_this.eagerError)
+ _this._future._completeError$2(_this._error_get.call$0(), _this._stackTrace_get.call$0());
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 63
+ };
+ P.Future_wait_closure.prototype = {
+ call$1: function(value) {
+ var valueList, _this = this,
+ t1 = _this._box_0;
+ --t1.remaining;
+ valueList = t1.values;
+ if (valueList != null) {
+ J.$indexSet$ax(valueList, _this.pos, value);
+ if (t1.remaining === 0)
+ _this._future._completeWithValue$1(P.List_List$from(valueList, true, _this.T));
+ } else if (t1.remaining === 0 && !_this.eagerError)
+ _this._future._completeError$2(_this._error_get.call$0(), _this._stackTrace_get.call$0());
+ },
+ $signature: function() {
+ return this.T._eval$1("Null(0)");
+ }
+ };
+ P._Completer.prototype = {
+ completeError$2: function(error, stackTrace) {
+ P.ArgumentError_checkNotNull(error, "error");
+ if (this.future._state !== 0)
+ throw H.wrapException(P.StateError$("Future already completed"));
+ if (stackTrace == null)
+ stackTrace = P.AsyncError_defaultStackTrace(error);
+ this._completeError$2(error, stackTrace);
+ },
+ completeError$1: function(error) {
+ return this.completeError$2(error, null);
+ }
+ };
+ P._AsyncCompleter.prototype = {
+ complete$1: function(_, value) {
+ var t1 = this.future;
+ if (t1._state !== 0)
+ throw H.wrapException(P.StateError$("Future already completed"));
+ t1._asyncComplete$1(value);
+ },
+ complete$0: function($receiver) {
+ return this.complete$1($receiver, null);
+ },
+ _completeError$2: function(error, stackTrace) {
+ this.future._asyncCompleteError$2(error, stackTrace);
+ }
+ };
+ P._FutureListener.prototype = {
+ matchesErrorTest$1: function(asyncError) {
+ if ((this.state & 15) !== 6)
+ return true;
+ return this.result._zone.runUnary$2(this.callback, asyncError.error);
+ },
+ handleError$1: function(asyncError) {
+ var errorCallback = this.errorCallback,
+ t1 = this.result._zone;
+ if (type$.dynamic_Function_Object_StackTrace._is(errorCallback))
+ return t1.runBinary$3(errorCallback, asyncError.error, asyncError.stackTrace);
+ else
+ return t1.runUnary$2(errorCallback, asyncError.error);
+ }
+ };
+ P._Future.prototype = {
+ then$1$2$onError: function(_, f, onError, $R) {
+ var result,
+ currentZone = $.Zone__current;
+ if (currentZone !== C.C__RootZone)
+ onError = onError != null ? P._registerErrorHandler(onError, currentZone) : onError;
+ result = new P._Future(currentZone, $R._eval$1("_Future<0>"));
+ this._addListener$1(new P._FutureListener(result, onError == null ? 1 : 3, f, onError));
+ return result;
+ },
+ then$1$1: function($receiver, f, $R) {
+ return this.then$1$2$onError($receiver, f, null, $R);
+ },
+ then$1: function($receiver, f) {
+ return this.then$1$2$onError($receiver, f, null, type$.dynamic);
+ },
+ _thenAwait$1$2: function(f, onError, $E) {
+ var result = new P._Future($.Zone__current, $E._eval$1("_Future<0>"));
+ this._addListener$1(new P._FutureListener(result, 19, f, onError));
+ return result;
+ },
+ catchError$2$test: function(onError, test) {
+ var t1 = $.Zone__current,
+ result = new P._Future(t1, this.$ti);
+ if (t1 !== C.C__RootZone)
+ onError = P._registerErrorHandler(onError, t1);
+ this._addListener$1(new P._FutureListener(result, 2, test, onError));
+ return result;
+ },
+ catchError$1: function(onError) {
+ return this.catchError$2$test(onError, null);
+ },
+ whenComplete$1: function(action) {
+ var result = new P._Future($.Zone__current, this.$ti);
+ this._addListener$1(new P._FutureListener(result, 8, action, null));
+ return result;
+ },
+ _addListener$1: function(listener) {
+ var t2, _this = this,
+ t1 = _this._state;
+ if (t1 <= 1) {
+ listener._nextListener = _this._resultOrListeners;
+ _this._resultOrListeners = listener;
+ } else {
+ if (t1 === 2) {
+ t1 = _this._resultOrListeners;
+ t2 = t1._state;
+ if (t2 < 4) {
+ t1._addListener$1(listener);
+ return;
+ }
+ _this._state = t2;
+ _this._resultOrListeners = t1._resultOrListeners;
+ }
+ P._rootScheduleMicrotask(null, null, _this._zone, new P._Future__addListener_closure(_this, listener));
+ }
+ },
+ _prependListeners$1: function(listeners) {
+ var t1, existingListeners, next, cursor, next0, t2, _this = this, _box_0 = {};
+ _box_0.listeners = listeners;
+ if (listeners == null)
+ return;
+ t1 = _this._state;
+ if (t1 <= 1) {
+ existingListeners = _this._resultOrListeners;
+ _this._resultOrListeners = listeners;
+ if (existingListeners != null) {
+ next = listeners._nextListener;
+ for (cursor = listeners; next != null; cursor = next, next = next0)
+ next0 = next._nextListener;
+ cursor._nextListener = existingListeners;
+ }
+ } else {
+ if (t1 === 2) {
+ t1 = _this._resultOrListeners;
+ t2 = t1._state;
+ if (t2 < 4) {
+ t1._prependListeners$1(listeners);
+ return;
+ }
+ _this._state = t2;
+ _this._resultOrListeners = t1._resultOrListeners;
+ }
+ _box_0.listeners = _this._reverseListeners$1(listeners);
+ P._rootScheduleMicrotask(null, null, _this._zone, new P._Future__prependListeners_closure(_box_0, _this));
+ }
+ },
+ _removeListeners$0: function() {
+ var current = this._resultOrListeners;
+ this._resultOrListeners = null;
+ return this._reverseListeners$1(current);
+ },
+ _reverseListeners$1: function(listeners) {
+ var current, prev, next;
+ for (current = listeners, prev = null; current != null; prev = current, current = next) {
+ next = current._nextListener;
+ current._nextListener = prev;
+ }
+ return prev;
+ },
+ _complete$1: function(value) {
+ var listeners, _this = this,
+ t1 = _this.$ti;
+ if (t1._eval$1("Future<1>")._is(value))
+ if (t1._is(value))
+ P._Future__chainCoreFuture(value, _this);
+ else
+ P._Future__chainForeignFuture(value, _this);
+ else {
+ listeners = _this._removeListeners$0();
+ _this._state = 4;
+ _this._resultOrListeners = value;
+ P._Future__propagateToListeners(_this, listeners);
+ }
+ },
+ _completeWithValue$1: function(value) {
+ var _this = this,
+ listeners = _this._removeListeners$0();
+ _this._state = 4;
+ _this._resultOrListeners = value;
+ P._Future__propagateToListeners(_this, listeners);
+ },
+ _completeError$2: function(error, stackTrace) {
+ var _this = this,
+ listeners = _this._removeListeners$0(),
+ t1 = P.AsyncError$(error, stackTrace);
+ _this._state = 8;
+ _this._resultOrListeners = t1;
+ P._Future__propagateToListeners(_this, listeners);
+ },
+ _asyncComplete$1: function(value) {
+ if (this.$ti._eval$1("Future<1>")._is(value)) {
+ this._chainFuture$1(value);
+ return;
+ }
+ this._asyncCompleteWithValue$1(value);
+ },
+ _asyncCompleteWithValue$1: function(value) {
+ this._state = 1;
+ P._rootScheduleMicrotask(null, null, this._zone, new P._Future__asyncCompleteWithValue_closure(this, value));
+ },
+ _chainFuture$1: function(value) {
+ var _this = this;
+ if (_this.$ti._is(value)) {
+ if (value._state === 8) {
+ _this._state = 1;
+ P._rootScheduleMicrotask(null, null, _this._zone, new P._Future__chainFuture_closure(_this, value));
+ } else
+ P._Future__chainCoreFuture(value, _this);
+ return;
+ }
+ P._Future__chainForeignFuture(value, _this);
+ },
+ _asyncCompleteError$2: function(error, stackTrace) {
+ this._state = 1;
+ P._rootScheduleMicrotask(null, null, this._zone, new P._Future__asyncCompleteError_closure(this, error, stackTrace));
+ },
+ $isFuture: 1
+ };
+ P._Future__addListener_closure.prototype = {
+ call$0: function() {
+ P._Future__propagateToListeners(this.$this, this.listener);
+ },
+ $signature: 0
+ };
+ P._Future__prependListeners_closure.prototype = {
+ call$0: function() {
+ P._Future__propagateToListeners(this.$this, this._box_0.listeners);
+ },
+ $signature: 0
+ };
+ P._Future__chainForeignFuture_closure.prototype = {
+ call$1: function(value) {
+ var t1 = this.target;
+ t1._state = 0;
+ t1._complete$1(value);
+ },
+ $signature: 3
+ };
+ P._Future__chainForeignFuture_closure0.prototype = {
+ call$2: function(error, stackTrace) {
+ this.target._completeError$2(error, stackTrace);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 222
+ };
+ P._Future__chainForeignFuture_closure1.prototype = {
+ call$0: function() {
+ this.target._completeError$2(this.e, this.s);
+ },
+ $signature: 0
+ };
+ P._Future__asyncCompleteWithValue_closure.prototype = {
+ call$0: function() {
+ this.$this._completeWithValue$1(this.value);
+ },
+ $signature: 0
+ };
+ P._Future__chainFuture_closure.prototype = {
+ call$0: function() {
+ P._Future__chainCoreFuture(this.value, this.$this);
+ },
+ $signature: 0
+ };
+ P._Future__asyncCompleteError_closure.prototype = {
+ call$0: function() {
+ this.$this._completeError$2(this.error, this.stackTrace);
+ },
+ $signature: 0
+ };
+ P._Future__propagateToListeners_handleWhenCompleteCallback.prototype = {
+ call$0: function() {
+ var e, s, t1, exception, t2, originalSource, _this = this, completeResult = null;
+ try {
+ t1 = _this._box_0.listener;
+ completeResult = t1.result._zone.run$1(t1.callback);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ if (_this.hasError) {
+ t1 = _this._box_1.source._resultOrListeners.error;
+ t2 = e;
+ t2 = t1 == null ? t2 == null : t1 === t2;
+ t1 = t2;
+ } else
+ t1 = false;
+ t2 = _this._box_0;
+ if (t1)
+ t2.listenerValueOrError = _this._box_1.source._resultOrListeners;
+ else
+ t2.listenerValueOrError = P.AsyncError$(e, s);
+ t2.listenerHasError = true;
+ return;
+ }
+ if (completeResult instanceof P._Future && completeResult._state >= 4) {
+ if (completeResult._state === 8) {
+ t1 = _this._box_0;
+ t1.listenerValueOrError = completeResult._resultOrListeners;
+ t1.listenerHasError = true;
+ }
+ return;
+ }
+ if (type$.Future_dynamic._is(completeResult)) {
+ originalSource = _this._box_1.source;
+ t1 = _this._box_0;
+ t1.listenerValueOrError = J.then$1$1$x(completeResult, new P._Future__propagateToListeners_handleWhenCompleteCallback_closure(originalSource), type$.dynamic);
+ t1.listenerHasError = false;
+ }
+ },
+ $signature: 0
+ };
+ P._Future__propagateToListeners_handleWhenCompleteCallback_closure.prototype = {
+ call$1: function(_) {
+ return this.originalSource;
+ },
+ $signature: 221
+ };
+ P._Future__propagateToListeners_handleValueCallback.prototype = {
+ call$0: function() {
+ var e, s, t1, t2, exception;
+ try {
+ t1 = this._box_0;
+ t2 = t1.listener;
+ t1.listenerValueOrError = t2.result._zone.runUnary$2(t2.callback, this.sourceResult);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ t1 = this._box_0;
+ t1.listenerValueOrError = P.AsyncError$(e, s);
+ t1.listenerHasError = true;
+ }
+ },
+ $signature: 0
+ };
+ P._Future__propagateToListeners_handleError.prototype = {
+ call$0: function() {
+ var asyncError, e, s, t1, exception, t2, t3, t4, _this = this;
+ try {
+ asyncError = _this._box_1.source._resultOrListeners;
+ t1 = _this._box_0;
+ if (t1.listener.matchesErrorTest$1(asyncError) && t1.listener.errorCallback != null) {
+ t1.listenerValueOrError = t1.listener.handleError$1(asyncError);
+ t1.listenerHasError = false;
+ }
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ t1 = _this._box_1.source._resultOrListeners;
+ t2 = t1.error;
+ t3 = e;
+ t4 = _this._box_0;
+ if (t2 == null ? t3 == null : t2 === t3)
+ t4.listenerValueOrError = t1;
+ else
+ t4.listenerValueOrError = P.AsyncError$(e, s);
+ t4.listenerHasError = true;
+ }
+ },
+ $signature: 0
+ };
+ P._AsyncCallbackEntry.prototype = {};
+ P.Stream.prototype = {
+ get$length: function(_) {
+ var t1 = {},
+ future = new P._Future($.Zone__current, type$._Future_int);
+ t1.count = 0;
+ this.listen$4$cancelOnError$onDone$onError(new P.Stream_length_closure(t1, this), true, new P.Stream_length_closure0(t1, future), future.get$_completeError());
+ return future;
+ },
+ get$first: function(_) {
+ var future = new P._Future($.Zone__current, H._instanceType(this)._eval$1("_Future")),
+ subscription = this.listen$4$cancelOnError$onDone$onError(null, true, new P.Stream_first_closure(future), future.get$_completeError());
+ subscription.onData$1(new P.Stream_first_closure0(this, subscription, future));
+ return future;
+ }
+ };
+ P.Stream_Stream$fromIterable_closure.prototype = {
+ call$0: function() {
+ return new P._IterablePendingEvents(J.get$iterator$ax(this.elements));
+ },
+ $signature: function() {
+ return this.T._eval$1("_IterablePendingEvents<0>()");
+ }
+ };
+ P.Stream_length_closure.prototype = {
+ call$1: function(_) {
+ ++this._box_0.count;
+ },
+ $signature: function() {
+ return H._instanceType(this.$this)._eval$1("~(Stream.T)");
+ }
+ };
+ P.Stream_length_closure0.prototype = {
+ call$0: function() {
+ this.future._complete$1(this._box_0.count);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ P.Stream_first_closure.prototype = {
+ call$0: function() {
+ var e, s, t1, exception;
+ try {
+ t1 = H.IterableElementError_noElement();
+ throw H.wrapException(t1);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ P._completeWithErrorCallback(this.future, e, s);
+ }
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ P.Stream_first_closure0.prototype = {
+ call$1: function(value) {
+ P._cancelAndValue(this.subscription, this.future, value);
+ },
+ $signature: function() {
+ return H._instanceType(this.$this)._eval$1("~(Stream.T)");
+ }
+ };
+ P.StreamSubscription.prototype = {};
+ P.StreamView.prototype = {
+ listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onDone, onError) {
+ return this._stream.listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError);
+ }
+ };
+ P.StreamTransformerBase.prototype = {};
+ P._StreamController.prototype = {
+ get$_pendingEvents: function() {
+ if ((this._state & 8) === 0)
+ return this._varData;
+ return this._varData.varData;
+ },
+ _ensurePendingEvents$0: function() {
+ var events, state, _this = this;
+ if ((_this._state & 8) === 0) {
+ events = _this._varData;
+ return events == null ? _this._varData = new P._StreamImplEvents() : events;
+ }
+ state = _this._varData;
+ events = state.varData;
+ return events == null ? state.varData = new P._StreamImplEvents() : events;
+ },
+ get$_subscription: function() {
+ var varData = this._varData;
+ return (this._state & 8) !== 0 ? varData.varData : varData;
+ },
+ _badEventState$0: function() {
+ if ((this._state & 4) !== 0)
+ return new P.StateError("Cannot add event after closing");
+ return new P.StateError("Cannot add event while adding a stream");
+ },
+ addStream$2$cancelOnError: function(_, source, cancelOnError) {
+ var t2, t3, t4, _this = this,
+ t1 = _this._state;
+ if (t1 >= 4)
+ throw H.wrapException(_this._badEventState$0());
+ if ((t1 & 2) !== 0) {
+ t1 = new P._Future($.Zone__current, type$._Future_dynamic);
+ t1._asyncComplete$1(null);
+ return t1;
+ }
+ t1 = _this._varData;
+ t2 = new P._Future($.Zone__current, type$._Future_dynamic);
+ t3 = source.listen$4$cancelOnError$onDone$onError(_this.get$_async$_add(_this), false, _this.get$_async$_close(), _this.get$_addError());
+ t4 = _this._state;
+ if ((t4 & 1) !== 0 ? (_this.get$_subscription()._state & 4) !== 0 : (t4 & 2) === 0)
+ t3.pause$0(0);
+ _this._varData = new P._StreamControllerAddStreamState(t1, t2, t3);
+ _this._state |= 8;
+ return t2;
+ },
+ _ensureDoneFuture$0: function() {
+ var t1 = this._doneFuture;
+ if (t1 == null)
+ t1 = this._doneFuture = (this._state & 2) !== 0 ? $.$get$Future__nullFuture() : new P._Future($.Zone__current, type$._Future_void);
+ return t1;
+ },
+ add$1: function(_, value) {
+ if (this._state >= 4)
+ throw H.wrapException(this._badEventState$0());
+ this._async$_add$1(0, value);
+ },
+ addError$2: function(error, stackTrace) {
+ P.ArgumentError_checkNotNull(error, "error");
+ if (this._state >= 4)
+ throw H.wrapException(this._badEventState$0());
+ if (stackTrace == null)
+ stackTrace = P.AsyncError_defaultStackTrace(error);
+ this._addError$2(error, stackTrace);
+ },
+ close$0: function(_) {
+ var _this = this,
+ t1 = _this._state;
+ if ((t1 & 4) !== 0)
+ return _this._ensureDoneFuture$0();
+ if (t1 >= 4)
+ throw H.wrapException(_this._badEventState$0());
+ t1 = _this._state = t1 | 4;
+ if ((t1 & 1) !== 0)
+ _this._sendDone$0();
+ else if ((t1 & 3) === 0)
+ _this._ensurePendingEvents$0().add$1(0, C.C__DelayedDone);
+ return _this._ensureDoneFuture$0();
+ },
+ _async$_add$1: function(_, value) {
+ var t1 = this._state;
+ if ((t1 & 1) !== 0)
+ this._sendData$1(value);
+ else if ((t1 & 3) === 0)
+ this._ensurePendingEvents$0().add$1(0, new P._DelayedData(value));
+ },
+ _addError$2: function(error, stackTrace) {
+ var t1 = this._state;
+ if ((t1 & 1) !== 0)
+ this._sendError$2(error, stackTrace);
+ else if ((t1 & 3) === 0)
+ this._ensurePendingEvents$0().add$1(0, new P._DelayedError(error, stackTrace));
+ },
+ _async$_close$0: function() {
+ var addState = this._varData;
+ this._varData = addState.varData;
+ this._state &= 4294967287;
+ addState.addStreamFuture._asyncComplete$1(null);
+ },
+ _subscribe$4: function(onData, onError, onDone, cancelOnError) {
+ var subscription, pendingEvents, t1, addState, _this = this;
+ if ((_this._state & 3) !== 0)
+ throw H.wrapException(P.StateError$("Stream has already been listened to."));
+ subscription = P._ControllerSubscription$(_this, onData, onError, onDone, cancelOnError, H._instanceType(_this)._precomputed1);
+ pendingEvents = _this.get$_pendingEvents();
+ t1 = _this._state |= 1;
+ if ((t1 & 8) !== 0) {
+ addState = _this._varData;
+ addState.varData = subscription;
+ addState.addSubscription.resume$0(0);
+ } else
+ _this._varData = subscription;
+ subscription._setPendingEvents$1(pendingEvents);
+ subscription._guardCallback$1(new P._StreamController__subscribe_closure(_this));
+ return subscription;
+ },
+ _recordCancel$1: function(subscription) {
+ var onCancel, cancelResult, e, s, exception, result0, t1, _this = this, result = null;
+ if ((_this._state & 8) !== 0)
+ result = _this._varData.cancel$0(0);
+ _this._varData = null;
+ _this._state = _this._state & 4294967286 | 2;
+ onCancel = _this.onCancel;
+ if (onCancel != null)
+ if (result == null)
+ try {
+ cancelResult = onCancel.call$0();
+ if (type$.Future_void._is(cancelResult))
+ result = cancelResult;
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ result0 = new P._Future($.Zone__current, type$._Future_void);
+ result0._asyncCompleteError$2(e, s);
+ result = result0;
+ }
+ else
+ result = result.whenComplete$1(onCancel);
+ t1 = new P._StreamController__recordCancel_complete(_this);
+ if (result != null)
+ result = result.whenComplete$1(t1);
+ else
+ t1.call$0();
+ return result;
+ },
+ _recordPause$1: function(subscription) {
+ if ((this._state & 8) !== 0)
+ this._varData.addSubscription.pause$0(0);
+ P._runGuarded(this.onPause);
+ },
+ _recordResume$1: function(subscription) {
+ if ((this._state & 8) !== 0)
+ this._varData.addSubscription.resume$0(0);
+ P._runGuarded(this.onResume);
+ }
+ };
+ P._StreamController__subscribe_closure.prototype = {
+ call$0: function() {
+ P._runGuarded(this.$this.onListen);
+ },
+ $signature: 0
+ };
+ P._StreamController__recordCancel_complete.prototype = {
+ call$0: function() {
+ var doneFuture = this.$this._doneFuture;
+ if (doneFuture != null && doneFuture._state === 0)
+ doneFuture._asyncComplete$1(null);
+ },
+ $signature: 0
+ };
+ P._SyncStreamControllerDispatch.prototype = {
+ _sendData$1: function(data) {
+ this.get$_subscription()._async$_add$1(0, data);
+ },
+ _sendError$2: function(error, stackTrace) {
+ this.get$_subscription()._addError$2(error, stackTrace);
+ },
+ _sendDone$0: function() {
+ this.get$_subscription()._async$_close$0();
+ }
+ };
+ P._AsyncStreamControllerDispatch.prototype = {
+ _sendData$1: function(data) {
+ this.get$_subscription()._addPending$1(new P._DelayedData(data));
+ },
+ _sendError$2: function(error, stackTrace) {
+ this.get$_subscription()._addPending$1(new P._DelayedError(error, stackTrace));
+ },
+ _sendDone$0: function() {
+ this.get$_subscription()._addPending$1(C.C__DelayedDone);
+ }
+ };
+ P._AsyncStreamController.prototype = {};
+ P._SyncStreamController.prototype = {};
+ P._ControllerStream.prototype = {
+ _createSubscription$4: function(onData, onError, onDone, cancelOnError) {
+ return this._async$_controller._subscribe$4(onData, onError, onDone, cancelOnError);
+ },
+ get$hashCode: function(_) {
+ return (H.Primitives_objectHashCode(this._async$_controller) ^ 892482866) >>> 0;
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ return other instanceof P._ControllerStream && other._async$_controller === this._async$_controller;
+ }
+ };
+ P._ControllerSubscription.prototype = {
+ _onCancel$0: function() {
+ return this._async$_controller._recordCancel$1(this);
+ },
+ _onPause$0: function() {
+ this._async$_controller._recordPause$1(this);
+ },
+ _onResume$0: function() {
+ this._async$_controller._recordResume$1(this);
+ }
+ };
+ P._AddStreamState.prototype = {
+ cancel$0: function(_) {
+ var cancel = this.addSubscription.cancel$0(0);
+ if (cancel == null) {
+ this.addStreamFuture._asyncComplete$1(null);
+ return $.$get$Future__nullFuture();
+ }
+ return cancel.whenComplete$1(new P._AddStreamState_cancel_closure(this));
+ }
+ };
+ P._AddStreamState_cancel_closure.prototype = {
+ call$0: function() {
+ this.$this.addStreamFuture._asyncComplete$1(null);
+ },
+ $signature: 2
+ };
+ P._StreamControllerAddStreamState.prototype = {};
+ P._BufferingStreamSubscription.prototype = {
+ _setPendingEvents$1: function(pendingEvents) {
+ var _this = this;
+ if (pendingEvents == null)
+ return;
+ _this._pending = pendingEvents;
+ if (!pendingEvents.get$isEmpty(pendingEvents)) {
+ _this._state = (_this._state | 64) >>> 0;
+ pendingEvents.schedule$1(_this);
+ }
+ },
+ onData$1: function(handleData) {
+ this._async$_onData = P._BufferingStreamSubscription__registerDataHandler(this._zone, handleData);
+ },
+ pause$0: function(_) {
+ var t2, t3, _this = this,
+ t1 = _this._state;
+ if ((t1 & 8) !== 0)
+ return;
+ t2 = (t1 + 128 | 4) >>> 0;
+ _this._state = t2;
+ if (t1 < 128) {
+ t3 = _this._pending;
+ if (t3 != null)
+ if (t3._state === 1)
+ t3._state = 3;
+ }
+ if ((t1 & 4) === 0 && (t2 & 32) === 0)
+ _this._guardCallback$1(_this.get$_onPause());
+ },
+ resume$0: function(_) {
+ var _this = this,
+ t1 = _this._state;
+ if ((t1 & 8) !== 0)
+ return;
+ if (t1 >= 128) {
+ t1 = _this._state = t1 - 128;
+ if (t1 < 128) {
+ if ((t1 & 64) !== 0) {
+ t1 = _this._pending;
+ t1 = !t1.get$isEmpty(t1);
+ } else
+ t1 = false;
+ if (t1)
+ _this._pending.schedule$1(_this);
+ else {
+ t1 = (_this._state & 4294967291) >>> 0;
+ _this._state = t1;
+ if ((t1 & 32) === 0)
+ _this._guardCallback$1(_this.get$_onResume());
+ }
+ }
+ }
+ },
+ cancel$0: function(_) {
+ var _this = this,
+ t1 = (_this._state & 4294967279) >>> 0;
+ _this._state = t1;
+ if ((t1 & 8) === 0)
+ _this._async$_cancel$0();
+ t1 = _this._cancelFuture;
+ return t1 == null ? $.$get$Future__nullFuture() : t1;
+ },
+ _async$_cancel$0: function() {
+ var t2, _this = this,
+ t1 = _this._state = (_this._state | 8) >>> 0;
+ if ((t1 & 64) !== 0) {
+ t2 = _this._pending;
+ if (t2._state === 1)
+ t2._state = 3;
+ }
+ if ((t1 & 32) === 0)
+ _this._pending = null;
+ _this._cancelFuture = _this._onCancel$0();
+ },
+ _async$_add$1: function(_, data) {
+ var t1 = this._state;
+ if ((t1 & 8) !== 0)
+ return;
+ if (t1 < 32)
+ this._sendData$1(data);
+ else
+ this._addPending$1(new P._DelayedData(data));
+ },
+ _addError$2: function(error, stackTrace) {
+ var t1 = this._state;
+ if ((t1 & 8) !== 0)
+ return;
+ if (t1 < 32)
+ this._sendError$2(error, stackTrace);
+ else
+ this._addPending$1(new P._DelayedError(error, stackTrace));
+ },
+ _async$_close$0: function() {
+ var _this = this,
+ t1 = _this._state;
+ if ((t1 & 8) !== 0)
+ return;
+ t1 = (t1 | 2) >>> 0;
+ _this._state = t1;
+ if (t1 < 32)
+ _this._sendDone$0();
+ else
+ _this._addPending$1(C.C__DelayedDone);
+ },
+ _onPause$0: function() {
+ },
+ _onResume$0: function() {
+ },
+ _onCancel$0: function() {
+ return null;
+ },
+ _addPending$1: function($event) {
+ var t1, _this = this,
+ pending = _this._pending;
+ if (pending == null)
+ pending = new P._StreamImplEvents();
+ _this._pending = pending;
+ pending.add$1(0, $event);
+ t1 = _this._state;
+ if ((t1 & 64) === 0) {
+ t1 = (t1 | 64) >>> 0;
+ _this._state = t1;
+ if (t1 < 128)
+ pending.schedule$1(_this);
+ }
+ },
+ _sendData$1: function(data) {
+ var _this = this,
+ t1 = _this._state;
+ _this._state = (t1 | 32) >>> 0;
+ _this._zone.runUnaryGuarded$2(_this._async$_onData, data);
+ _this._state = (_this._state & 4294967263) >>> 0;
+ _this._checkState$1((t1 & 4) !== 0);
+ },
+ _sendError$2: function(error, stackTrace) {
+ var cancelFuture, _this = this,
+ t1 = _this._state,
+ t2 = new P._BufferingStreamSubscription__sendError_sendError(_this, error, stackTrace);
+ if ((t1 & 1) !== 0) {
+ _this._state = (t1 | 16) >>> 0;
+ _this._async$_cancel$0();
+ cancelFuture = _this._cancelFuture;
+ if (cancelFuture != null && cancelFuture !== $.$get$Future__nullFuture())
+ cancelFuture.whenComplete$1(t2);
+ else
+ t2.call$0();
+ } else {
+ t2.call$0();
+ _this._checkState$1((t1 & 4) !== 0);
+ }
+ },
+ _sendDone$0: function() {
+ var cancelFuture, _this = this,
+ t1 = new P._BufferingStreamSubscription__sendDone_sendDone(_this);
+ _this._async$_cancel$0();
+ _this._state = (_this._state | 16) >>> 0;
+ cancelFuture = _this._cancelFuture;
+ if (cancelFuture != null && cancelFuture !== $.$get$Future__nullFuture())
+ cancelFuture.whenComplete$1(t1);
+ else
+ t1.call$0();
+ },
+ _guardCallback$1: function(callback) {
+ var _this = this,
+ t1 = _this._state;
+ _this._state = (t1 | 32) >>> 0;
+ callback.call$0();
+ _this._state = (_this._state & 4294967263) >>> 0;
+ _this._checkState$1((t1 & 4) !== 0);
+ },
+ _checkState$1: function(wasInputPaused) {
+ var t1, isInputPaused, _this = this;
+ if ((_this._state & 64) !== 0) {
+ t1 = _this._pending;
+ t1 = t1.get$isEmpty(t1);
+ } else
+ t1 = false;
+ if (t1) {
+ t1 = _this._state = (_this._state & 4294967231) >>> 0;
+ if ((t1 & 4) !== 0)
+ if (t1 < 128) {
+ t1 = _this._pending;
+ t1 = t1 == null ? null : t1.get$isEmpty(t1);
+ t1 = t1 !== false;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ _this._state = (_this._state & 4294967291) >>> 0;
+ }
+ for (; true; wasInputPaused = isInputPaused) {
+ t1 = _this._state;
+ if ((t1 & 8) !== 0) {
+ _this._pending = null;
+ return;
+ }
+ isInputPaused = (t1 & 4) !== 0;
+ if (wasInputPaused === isInputPaused)
+ break;
+ _this._state = (t1 ^ 32) >>> 0;
+ if (isInputPaused)
+ _this._onPause$0();
+ else
+ _this._onResume$0();
+ _this._state = (_this._state & 4294967263) >>> 0;
+ }
+ t1 = _this._state;
+ if ((t1 & 64) !== 0 && t1 < 128)
+ _this._pending.schedule$1(_this);
+ },
+ $isStreamSubscription: 1
+ };
+ P._BufferingStreamSubscription__sendError_sendError.prototype = {
+ call$0: function() {
+ var onError, t3,
+ t1 = this.$this,
+ t2 = t1._state;
+ if ((t2 & 8) !== 0 && (t2 & 16) === 0)
+ return;
+ t1._state = (t2 | 32) >>> 0;
+ onError = t1._onError;
+ t2 = this.error;
+ t3 = t1._zone;
+ if (type$.void_Function_Object_StackTrace._is(onError))
+ t3.runBinaryGuarded$3(onError, t2, this.stackTrace);
+ else
+ t3.runUnaryGuarded$2(onError, t2);
+ t1._state = (t1._state & 4294967263) >>> 0;
+ },
+ $signature: 0
+ };
+ P._BufferingStreamSubscription__sendDone_sendDone.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ t2 = t1._state;
+ if ((t2 & 16) === 0)
+ return;
+ t1._state = (t2 | 42) >>> 0;
+ t1._zone.runGuarded$1(t1._onDone);
+ t1._state = (t1._state & 4294967263) >>> 0;
+ },
+ $signature: 0
+ };
+ P._StreamImpl.prototype = {
+ listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onDone, onError) {
+ return this._createSubscription$4(onData, onError, onDone, cancelOnError === true);
+ },
+ _createSubscription$4: function(onData, onError, onDone, cancelOnError) {
+ return P._BufferingStreamSubscription$(onData, onError, onDone, cancelOnError, H._instanceType(this)._precomputed1);
+ }
+ };
+ P._GeneratedStreamImpl.prototype = {
+ _createSubscription$4: function(onData, onError, onDone, cancelOnError) {
+ var t1, _this = this;
+ if (_this._isUsed)
+ throw H.wrapException(P.StateError$("Stream has already been listened to."));
+ _this._isUsed = true;
+ t1 = P._BufferingStreamSubscription$(onData, onError, onDone, cancelOnError, _this.$ti._precomputed1);
+ t1._setPendingEvents$1(_this._pending.call$0());
+ return t1;
+ }
+ };
+ P._IterablePendingEvents.prototype = {
+ get$isEmpty: function(_) {
+ return this._async$_iterator == null;
+ },
+ handleNext$1: function(dispatch) {
+ var movedNext, e, s, exception,
+ iterator = this._async$_iterator;
+ if (iterator == null)
+ throw H.wrapException(P.StateError$("No events pending."));
+ movedNext = false;
+ try {
+ if (iterator.moveNext$0()) {
+ movedNext = true;
+ dispatch._sendData$1(J.get$current$z(iterator));
+ } else {
+ this._async$_iterator = null;
+ dispatch._sendDone$0();
+ }
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ if (!movedNext)
+ this._async$_iterator = C.C_EmptyIterator;
+ dispatch._sendError$2(e, s);
+ }
+ }
+ };
+ P._DelayedEvent.prototype = {
+ get$next: function(receiver) {
+ return this.next;
+ },
+ set$next: function(receiver, val) {
+ return this.next = val;
+ }
+ };
+ P._DelayedData.prototype = {
+ perform$1: function(dispatch) {
+ dispatch._sendData$1(this.value);
+ }
+ };
+ P._DelayedError.prototype = {
+ perform$1: function(dispatch) {
+ dispatch._sendError$2(this.error, this.stackTrace);
+ }
+ };
+ P._DelayedDone.prototype = {
+ perform$1: function(dispatch) {
+ dispatch._sendDone$0();
+ },
+ get$next: function(_) {
+ return null;
+ },
+ set$next: function(_, _0) {
+ throw H.wrapException(P.StateError$("No events after a done."));
+ }
+ };
+ P._PendingEvents.prototype = {
+ schedule$1: function(dispatch) {
+ var _this = this,
+ t1 = _this._state;
+ if (t1 === 1)
+ return;
+ if (t1 >= 1) {
+ _this._state = 1;
+ return;
+ }
+ P.scheduleMicrotask(new P._PendingEvents_schedule_closure(_this, dispatch));
+ _this._state = 1;
+ }
+ };
+ P._PendingEvents_schedule_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ oldState = t1._state;
+ t1._state = 0;
+ if (oldState === 3)
+ return;
+ t1.handleNext$1(this.dispatch);
+ },
+ $signature: 0
+ };
+ P._StreamImplEvents.prototype = {
+ get$isEmpty: function(_) {
+ return this.lastPendingEvent == null;
+ },
+ add$1: function(_, $event) {
+ var _this = this,
+ lastEvent = _this.lastPendingEvent;
+ if (lastEvent == null)
+ _this.firstPendingEvent = _this.lastPendingEvent = $event;
+ else {
+ lastEvent.set$next(0, $event);
+ _this.lastPendingEvent = $event;
+ }
+ },
+ handleNext$1: function(dispatch) {
+ var $event = this.firstPendingEvent,
+ nextEvent = $event.get$next($event);
+ this.firstPendingEvent = nextEvent;
+ if (nextEvent == null)
+ this.lastPendingEvent = null;
+ $event.perform$1(dispatch);
+ }
+ };
+ P._DoneStreamSubscription.prototype = {
+ _schedule$0: function() {
+ var _this = this;
+ if ((_this._state & 2) !== 0)
+ return;
+ P._rootScheduleMicrotask(null, null, _this._zone, _this.get$_sendDone());
+ _this._state = (_this._state | 2) >>> 0;
+ },
+ onData$1: function(handleData) {
+ },
+ pause$0: function(_) {
+ this._state += 4;
+ },
+ resume$0: function(_) {
+ var t1 = this._state;
+ if (t1 >= 4) {
+ t1 = this._state = t1 - 4;
+ if (t1 < 4 && (t1 & 1) === 0)
+ this._schedule$0();
+ }
+ },
+ cancel$0: function(_) {
+ return $.$get$Future__nullFuture();
+ },
+ _sendDone$0: function() {
+ var _this = this,
+ t1 = _this._state = (_this._state & 4294967293) >>> 0;
+ if (t1 >= 4)
+ return;
+ _this._state = (t1 | 1) >>> 0;
+ _this._zone.runGuarded$1(_this._onDone);
+ },
+ $isStreamSubscription: 1
+ };
+ P._StreamIterator.prototype = {};
+ P._cancelAndValue_closure.prototype = {
+ call$0: function() {
+ return this.future._complete$1(this.value);
+ },
+ $signature: 0
+ };
+ P.AsyncError.prototype = {
+ toString$0: function(_) {
+ return H.S(this.error);
+ },
+ $isError: 1,
+ get$stackTrace: function() {
+ return this.stackTrace;
+ }
+ };
+ P._Zone.prototype = {};
+ P._rootHandleUncaughtError_closure.prototype = {
+ call$0: function() {
+ var error = H.wrapException(this.error);
+ error.stack = J.toString$0$(this.stackTrace);
+ throw error;
+ },
+ $signature: 0
+ };
+ P._RootZone.prototype = {
+ runGuarded$1: function(f) {
+ var e, s, exception, _null = null;
+ try {
+ if (C.C__RootZone === $.Zone__current) {
+ f.call$0();
+ return;
+ }
+ P._rootRun(_null, _null, this, f);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ P._rootHandleUncaughtError(_null, _null, this, e, s);
+ }
+ },
+ runUnaryGuarded$1$2: function(f, arg) {
+ var e, s, exception, _null = null;
+ try {
+ if (C.C__RootZone === $.Zone__current) {
+ f.call$1(arg);
+ return;
+ }
+ P._rootRunUnary(_null, _null, this, f, arg);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ P._rootHandleUncaughtError(_null, _null, this, e, s);
+ }
+ },
+ runUnaryGuarded$2: function(f, arg) {
+ return this.runUnaryGuarded$1$2(f, arg, type$.dynamic);
+ },
+ runBinaryGuarded$2$3: function(f, arg1, arg2) {
+ var e, s, exception, _null = null;
+ try {
+ if (C.C__RootZone === $.Zone__current) {
+ f.call$2(arg1, arg2);
+ return;
+ }
+ P._rootRunBinary(_null, _null, this, f, arg1, arg2);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ s = H.getTraceFromException(exception);
+ P._rootHandleUncaughtError(_null, _null, this, e, s);
+ }
+ },
+ runBinaryGuarded$3: function(f, arg1, arg2) {
+ return this.runBinaryGuarded$2$3(f, arg1, arg2, type$.dynamic, type$.dynamic);
+ },
+ bindCallback$1$1: function(f, $R) {
+ return new P._RootZone_bindCallback_closure(this, f, $R);
+ },
+ bindCallbackGuarded$1: function(f) {
+ return new P._RootZone_bindCallbackGuarded_closure(this, f);
+ },
+ bindUnaryCallbackGuarded$1$1: function(f, $T) {
+ return new P._RootZone_bindUnaryCallbackGuarded_closure(this, f, $T);
+ },
+ $index: function(_, key) {
+ return null;
+ },
+ run$1$1: function(f) {
+ if ($.Zone__current === C.C__RootZone)
+ return f.call$0();
+ return P._rootRun(null, null, this, f);
+ },
+ run$1: function(f) {
+ return this.run$1$1(f, type$.dynamic);
+ },
+ runUnary$2$2: function(f, arg) {
+ if ($.Zone__current === C.C__RootZone)
+ return f.call$1(arg);
+ return P._rootRunUnary(null, null, this, f, arg);
+ },
+ runUnary$2: function(f, arg) {
+ return this.runUnary$2$2(f, arg, type$.dynamic, type$.dynamic);
+ },
+ runBinary$3$3: function(f, arg1, arg2) {
+ if ($.Zone__current === C.C__RootZone)
+ return f.call$2(arg1, arg2);
+ return P._rootRunBinary(null, null, this, f, arg1, arg2);
+ },
+ runBinary$3: function(f, arg1, arg2) {
+ return this.runBinary$3$3(f, arg1, arg2, type$.dynamic, type$.dynamic, type$.dynamic);
+ },
+ registerBinaryCallback$3$1: function(f) {
+ return f;
+ },
+ registerBinaryCallback$1: function(f) {
+ return this.registerBinaryCallback$3$1(f, type$.dynamic, type$.dynamic, type$.dynamic);
+ }
+ };
+ P._RootZone_bindCallback_closure.prototype = {
+ call$0: function() {
+ return this.$this.run$1(this.f);
+ },
+ $signature: function() {
+ return this.R._eval$1("0()");
+ }
+ };
+ P._RootZone_bindCallbackGuarded_closure.prototype = {
+ call$0: function() {
+ return this.$this.runGuarded$1(this.f);
+ },
+ $signature: 0
+ };
+ P._RootZone_bindUnaryCallbackGuarded_closure.prototype = {
+ call$1: function(arg) {
+ return this.$this.runUnaryGuarded$2(this.f, arg);
+ },
+ $signature: function() {
+ return this.T._eval$1("~(0)");
+ }
+ };
+ P._HashMap.prototype = {
+ get$length: function(_) {
+ return this._collection$_length;
+ },
+ get$isEmpty: function(_) {
+ return this._collection$_length === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this._collection$_length !== 0;
+ },
+ get$keys: function(_) {
+ return new P._HashMapKeyIterable(this, H._instanceType(this)._eval$1("_HashMapKeyIterable<1>"));
+ },
+ get$values: function(_) {
+ var t1 = H._instanceType(this);
+ return H.MappedIterable_MappedIterable(new P._HashMapKeyIterable(this, t1._eval$1("_HashMapKeyIterable<1>")), new P._HashMap_values_closure(this), t1._precomputed1, t1._rest[1]);
+ },
+ containsKey$1: function(_, key) {
+ var strings, nums;
+ if (typeof key == "string" && key !== "__proto__") {
+ strings = this._collection$_strings;
+ return strings == null ? false : strings[key] != null;
+ } else if (typeof key == "number" && (key & 1073741823) === key) {
+ nums = this._collection$_nums;
+ return nums == null ? false : nums[key] != null;
+ } else
+ return this._containsKey$1(key);
+ },
+ _containsKey$1: function(key) {
+ var rest = this._collection$_rest;
+ if (rest == null)
+ return false;
+ return this._findBucketIndex$2(this._getBucket$2(rest, key), key) >= 0;
+ },
+ $index: function(_, key) {
+ var strings, t1, nums;
+ if (typeof key == "string" && key !== "__proto__") {
+ strings = this._collection$_strings;
+ t1 = strings == null ? null : P._HashMap__getTableEntry(strings, key);
+ return t1;
+ } else if (typeof key == "number" && (key & 1073741823) === key) {
+ nums = this._collection$_nums;
+ t1 = nums == null ? null : P._HashMap__getTableEntry(nums, key);
+ return t1;
+ } else
+ return this._get$1(0, key);
+ },
+ _get$1: function(_, key) {
+ var bucket, index,
+ rest = this._collection$_rest;
+ if (rest == null)
+ return null;
+ bucket = this._getBucket$2(rest, key);
+ index = this._findBucketIndex$2(bucket, key);
+ return index < 0 ? null : bucket[index + 1];
+ },
+ $indexSet: function(_, key, value) {
+ var strings, nums, _this = this;
+ if (typeof key == "string" && key !== "__proto__") {
+ strings = _this._collection$_strings;
+ _this._collection$_addHashTableEntry$3(strings == null ? _this._collection$_strings = P._HashMap__newHashTable() : strings, key, value);
+ } else if (typeof key == "number" && (key & 1073741823) === key) {
+ nums = _this._collection$_nums;
+ _this._collection$_addHashTableEntry$3(nums == null ? _this._collection$_nums = P._HashMap__newHashTable() : nums, key, value);
+ } else
+ _this._set$2(key, value);
+ },
+ _set$2: function(key, value) {
+ var hash, bucket, index, _this = this,
+ rest = _this._collection$_rest;
+ if (rest == null)
+ rest = _this._collection$_rest = P._HashMap__newHashTable();
+ hash = _this._computeHashCode$1(key);
+ bucket = rest[hash];
+ if (bucket == null) {
+ P._HashMap__setTableEntry(rest, hash, [key, value]);
+ ++_this._collection$_length;
+ _this._collection$_keys = null;
+ } else {
+ index = _this._findBucketIndex$2(bucket, key);
+ if (index >= 0)
+ bucket[index + 1] = value;
+ else {
+ bucket.push(key, value);
+ ++_this._collection$_length;
+ _this._collection$_keys = null;
+ }
+ }
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ var value;
+ if (this.containsKey$1(0, key))
+ return this.$index(0, key);
+ value = ifAbsent.call$0();
+ this.$indexSet(0, key, value);
+ return value;
+ },
+ remove$1: function(_, key) {
+ var _this = this;
+ if (typeof key == "string" && key !== "__proto__")
+ return _this._collection$_removeHashTableEntry$2(_this._collection$_strings, key);
+ else if (typeof key == "number" && (key & 1073741823) === key)
+ return _this._collection$_removeHashTableEntry$2(_this._collection$_nums, key);
+ else
+ return _this._remove$1(0, key);
+ },
+ _remove$1: function(_, key) {
+ var hash, bucket, index, result, _this = this,
+ rest = _this._collection$_rest;
+ if (rest == null)
+ return null;
+ hash = _this._computeHashCode$1(key);
+ bucket = rest[hash];
+ index = _this._findBucketIndex$2(bucket, key);
+ if (index < 0)
+ return null;
+ --_this._collection$_length;
+ _this._collection$_keys = null;
+ result = bucket.splice(index, 2)[1];
+ if (0 === bucket.length)
+ delete rest[hash];
+ return result;
+ },
+ forEach$1: function(_, action) {
+ var $length, i, key, _this = this,
+ keys = _this._collection$_computeKeys$0();
+ for ($length = keys.length, i = 0; i < $length; ++i) {
+ key = keys[i];
+ action.call$2(key, _this.$index(0, key));
+ if (keys !== _this._collection$_keys)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ }
+ },
+ _collection$_computeKeys$0: function() {
+ var strings, names, entries, index, i, nums, rest, bucket, $length, i0, _this = this,
+ result = _this._collection$_keys;
+ if (result != null)
+ return result;
+ result = P.List_List$filled(_this._collection$_length, null, false, type$.dynamic);
+ strings = _this._collection$_strings;
+ if (strings != null) {
+ names = Object.getOwnPropertyNames(strings);
+ entries = names.length;
+ for (index = 0, i = 0; i < entries; ++i) {
+ result[index] = names[i];
+ ++index;
+ }
+ } else
+ index = 0;
+ nums = _this._collection$_nums;
+ if (nums != null) {
+ names = Object.getOwnPropertyNames(nums);
+ entries = names.length;
+ for (i = 0; i < entries; ++i) {
+ result[index] = +names[i];
+ ++index;
+ }
+ }
+ rest = _this._collection$_rest;
+ if (rest != null) {
+ names = Object.getOwnPropertyNames(rest);
+ entries = names.length;
+ for (i = 0; i < entries; ++i) {
+ bucket = rest[names[i]];
+ $length = bucket.length;
+ for (i0 = 0; i0 < $length; i0 += 2) {
+ result[index] = bucket[i0];
+ ++index;
+ }
+ }
+ }
+ return _this._collection$_keys = result;
+ },
+ _collection$_addHashTableEntry$3: function(table, key, value) {
+ if (table[key] == null) {
+ ++this._collection$_length;
+ this._collection$_keys = null;
+ }
+ P._HashMap__setTableEntry(table, key, value);
+ },
+ _collection$_removeHashTableEntry$2: function(table, key) {
+ var value;
+ if (table != null && table[key] != null) {
+ value = P._HashMap__getTableEntry(table, key);
+ delete table[key];
+ --this._collection$_length;
+ this._collection$_keys = null;
+ return value;
+ } else
+ return null;
+ },
+ _computeHashCode$1: function(key) {
+ return J.get$hashCode$(key) & 1073741823;
+ },
+ _getBucket$2: function(table, key) {
+ return table[this._computeHashCode$1(key)];
+ },
+ _findBucketIndex$2: function(bucket, key) {
+ var $length, i;
+ if (bucket == null)
+ return -1;
+ $length = bucket.length;
+ for (i = 0; i < $length; i += 2)
+ if (J.$eq$(bucket[i], key))
+ return i;
+ return -1;
+ }
+ };
+ P._HashMap_values_closure.prototype = {
+ call$1: function(each) {
+ return this.$this.$index(0, each);
+ },
+ $signature: function() {
+ return H._instanceType(this.$this)._eval$1("2(1)");
+ }
+ };
+ P._IdentityHashMap.prototype = {
+ _computeHashCode$1: function(key) {
+ return H.objectHashCode(key) & 1073741823;
+ },
+ _findBucketIndex$2: function(bucket, key) {
+ var $length, i, t1;
+ if (bucket == null)
+ return -1;
+ $length = bucket.length;
+ for (i = 0; i < $length; i += 2) {
+ t1 = bucket[i];
+ if (t1 == null ? key == null : t1 === key)
+ return i;
+ }
+ return -1;
+ }
+ };
+ P._HashMapKeyIterable.prototype = {
+ get$length: function(_) {
+ return this._collection$_map._collection$_length;
+ },
+ get$isEmpty: function(_) {
+ return this._collection$_map._collection$_length === 0;
+ },
+ get$iterator: function(_) {
+ var t1 = this._collection$_map;
+ return new P._HashMapKeyIterator(t1, t1._collection$_computeKeys$0());
+ },
+ contains$1: function(_, element) {
+ return this._collection$_map.containsKey$1(0, element);
+ },
+ forEach$1: function(_, f) {
+ var $length, i,
+ t1 = this._collection$_map,
+ keys = t1._collection$_computeKeys$0();
+ for ($length = keys.length, i = 0; i < $length; ++i) {
+ f.call$1(keys[i]);
+ if (keys !== t1._collection$_keys)
+ throw H.wrapException(P.ConcurrentModificationError$(t1));
+ }
+ }
+ };
+ P._HashMapKeyIterator.prototype = {
+ get$current: function(_) {
+ return this._collection$_current;
+ },
+ moveNext$0: function() {
+ var _this = this,
+ keys = _this._collection$_keys,
+ offset = _this._offset,
+ t1 = _this._collection$_map;
+ if (keys !== t1._collection$_keys)
+ throw H.wrapException(P.ConcurrentModificationError$(t1));
+ else if (offset >= keys.length) {
+ _this._collection$_current = null;
+ return false;
+ } else {
+ _this._collection$_current = keys[offset];
+ _this._offset = offset + 1;
+ return true;
+ }
+ }
+ };
+ P._LinkedIdentityHashMap.prototype = {
+ internalComputeHashCode$1: function(key) {
+ return H.objectHashCode(key) & 1073741823;
+ },
+ internalFindBucketIndex$2: function(bucket, key) {
+ var $length, i, t1;
+ if (bucket == null)
+ return -1;
+ $length = bucket.length;
+ for (i = 0; i < $length; ++i) {
+ t1 = bucket[i].hashMapCellKey;
+ if (t1 == null ? key == null : t1 === key)
+ return i;
+ }
+ return -1;
+ }
+ };
+ P._LinkedCustomHashMap.prototype = {
+ $index: function(_, key) {
+ if (!this._validKey.call$1(key))
+ return null;
+ return this.super$JsLinkedHashMap$internalGet(key);
+ },
+ $indexSet: function(_, key, value) {
+ this.super$JsLinkedHashMap$internalSet(key, value);
+ },
+ containsKey$1: function(_, key) {
+ if (!this._validKey.call$1(key))
+ return false;
+ return this.super$JsLinkedHashMap$internalContainsKey(key);
+ },
+ remove$1: function(_, key) {
+ if (!this._validKey.call$1(key))
+ return null;
+ return this.super$JsLinkedHashMap$internalRemove(key);
+ },
+ internalComputeHashCode$1: function(key) {
+ return this._hashCode.call$1(key) & 1073741823;
+ },
+ internalFindBucketIndex$2: function(bucket, key) {
+ var $length, t1, i;
+ if (bucket == null)
+ return -1;
+ $length = bucket.length;
+ for (t1 = this._equals, i = 0; i < $length; ++i)
+ if (t1.call$2(bucket[i].hashMapCellKey, key))
+ return i;
+ return -1;
+ }
+ };
+ P._LinkedCustomHashMap_closure.prototype = {
+ call$1: function(v) {
+ return this.K._is(v);
+ },
+ $signature: 55
+ };
+ P._HashSet.prototype = {
+ _newSet$0: function() {
+ return new P._HashSet(H._instanceType(this)._eval$1("_HashSet<1>"));
+ },
+ get$iterator: function(_) {
+ return new P._HashSetIterator(this, this._computeElements$0());
+ },
+ get$length: function(_) {
+ return this._collection$_length;
+ },
+ get$isEmpty: function(_) {
+ return this._collection$_length === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this._collection$_length !== 0;
+ },
+ contains$1: function(_, object) {
+ var strings, nums;
+ if (typeof object == "string" && object !== "__proto__") {
+ strings = this._collection$_strings;
+ return strings == null ? false : strings[object] != null;
+ } else if (typeof object == "number" && (object & 1073741823) === object) {
+ nums = this._collection$_nums;
+ return nums == null ? false : nums[object] != null;
+ } else
+ return this._contains$1(object);
+ },
+ _contains$1: function(object) {
+ var rest = this._collection$_rest;
+ if (rest == null)
+ return false;
+ return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], object) >= 0;
+ },
+ add$1: function(_, element) {
+ var strings, nums, _this = this;
+ if (typeof element == "string" && element !== "__proto__") {
+ strings = _this._collection$_strings;
+ return _this._collection$_addHashTableEntry$2(strings == null ? _this._collection$_strings = P._HashSet__newHashTable() : strings, element);
+ } else if (typeof element == "number" && (element & 1073741823) === element) {
+ nums = _this._collection$_nums;
+ return _this._collection$_addHashTableEntry$2(nums == null ? _this._collection$_nums = P._HashSet__newHashTable() : nums, element);
+ } else
+ return _this._add$1(0, element);
+ },
+ _add$1: function(_, element) {
+ var hash, bucket, _this = this,
+ rest = _this._collection$_rest;
+ if (rest == null)
+ rest = _this._collection$_rest = P._HashSet__newHashTable();
+ hash = _this._computeHashCode$1(element);
+ bucket = rest[hash];
+ if (bucket == null)
+ rest[hash] = [element];
+ else {
+ if (_this._findBucketIndex$2(bucket, element) >= 0)
+ return false;
+ bucket.push(element);
+ }
+ ++_this._collection$_length;
+ _this._elements = null;
+ return true;
+ },
+ addAll$1: function(_, objects) {
+ var t1;
+ for (t1 = J.get$iterator$ax(objects); t1.moveNext$0();)
+ this.add$1(0, t1.get$current(t1));
+ },
+ remove$1: function(_, object) {
+ var _this = this;
+ if (typeof object == "string" && object !== "__proto__")
+ return _this._collection$_removeHashTableEntry$2(_this._collection$_strings, object);
+ else if (typeof object == "number" && (object & 1073741823) === object)
+ return _this._collection$_removeHashTableEntry$2(_this._collection$_nums, object);
+ else
+ return _this._remove$1(0, object);
+ },
+ _remove$1: function(_, object) {
+ var hash, bucket, index, _this = this,
+ rest = _this._collection$_rest;
+ if (rest == null)
+ return false;
+ hash = _this._computeHashCode$1(object);
+ bucket = rest[hash];
+ index = _this._findBucketIndex$2(bucket, object);
+ if (index < 0)
+ return false;
+ --_this._collection$_length;
+ _this._elements = null;
+ bucket.splice(index, 1);
+ if (0 === bucket.length)
+ delete rest[hash];
+ return true;
+ },
+ clear$0: function(_) {
+ var _this = this;
+ if (_this._collection$_length > 0) {
+ _this._collection$_strings = _this._collection$_nums = _this._collection$_rest = _this._elements = null;
+ _this._collection$_length = 0;
+ }
+ },
+ _computeElements$0: function() {
+ var strings, names, entries, index, i, nums, rest, bucket, $length, i0, _this = this,
+ result = _this._elements;
+ if (result != null)
+ return result;
+ result = P.List_List$filled(_this._collection$_length, null, false, type$.dynamic);
+ strings = _this._collection$_strings;
+ if (strings != null) {
+ names = Object.getOwnPropertyNames(strings);
+ entries = names.length;
+ for (index = 0, i = 0; i < entries; ++i) {
+ result[index] = names[i];
+ ++index;
+ }
+ } else
+ index = 0;
+ nums = _this._collection$_nums;
+ if (nums != null) {
+ names = Object.getOwnPropertyNames(nums);
+ entries = names.length;
+ for (i = 0; i < entries; ++i) {
+ result[index] = +names[i];
+ ++index;
+ }
+ }
+ rest = _this._collection$_rest;
+ if (rest != null) {
+ names = Object.getOwnPropertyNames(rest);
+ entries = names.length;
+ for (i = 0; i < entries; ++i) {
+ bucket = rest[names[i]];
+ $length = bucket.length;
+ for (i0 = 0; i0 < $length; ++i0) {
+ result[index] = bucket[i0];
+ ++index;
+ }
+ }
+ }
+ return _this._elements = result;
+ },
+ _collection$_addHashTableEntry$2: function(table, element) {
+ if (table[element] != null)
+ return false;
+ table[element] = 0;
+ ++this._collection$_length;
+ this._elements = null;
+ return true;
+ },
+ _collection$_removeHashTableEntry$2: function(table, element) {
+ if (table != null && table[element] != null) {
+ delete table[element];
+ --this._collection$_length;
+ this._elements = null;
+ return true;
+ } else
+ return false;
+ },
+ _computeHashCode$1: function(element) {
+ return J.get$hashCode$(element) & 1073741823;
+ },
+ _findBucketIndex$2: function(bucket, element) {
+ var $length, i;
+ if (bucket == null)
+ return -1;
+ $length = bucket.length;
+ for (i = 0; i < $length; ++i)
+ if (J.$eq$(bucket[i], element))
+ return i;
+ return -1;
+ }
+ };
+ P._HashSetIterator.prototype = {
+ get$current: function(_) {
+ return this._collection$_current;
+ },
+ moveNext$0: function() {
+ var _this = this,
+ elements = _this._elements,
+ offset = _this._offset,
+ t1 = _this._set;
+ if (elements !== t1._elements)
+ throw H.wrapException(P.ConcurrentModificationError$(t1));
+ else if (offset >= elements.length) {
+ _this._collection$_current = null;
+ return false;
+ } else {
+ _this._collection$_current = elements[offset];
+ _this._offset = offset + 1;
+ return true;
+ }
+ }
+ };
+ P._LinkedHashSet.prototype = {
+ _newSet$0: function() {
+ return new P._LinkedHashSet(H._instanceType(this)._eval$1("_LinkedHashSet<1>"));
+ },
+ get$iterator: function(_) {
+ var t1 = new P._LinkedHashSetIterator(this, this._collection$_modifications);
+ t1._collection$_cell = this._collection$_first;
+ return t1;
+ },
+ get$length: function(_) {
+ return this._collection$_length;
+ },
+ get$isEmpty: function(_) {
+ return this._collection$_length === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this._collection$_length !== 0;
+ },
+ contains$1: function(_, object) {
+ var strings, nums;
+ if (typeof object == "string" && object !== "__proto__") {
+ strings = this._collection$_strings;
+ if (strings == null)
+ return false;
+ return strings[object] != null;
+ } else if (typeof object == "number" && (object & 1073741823) === object) {
+ nums = this._collection$_nums;
+ if (nums == null)
+ return false;
+ return nums[object] != null;
+ } else
+ return this._contains$1(object);
+ },
+ _contains$1: function(object) {
+ var rest = this._collection$_rest;
+ if (rest == null)
+ return false;
+ return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], object) >= 0;
+ },
+ forEach$1: function(_, action) {
+ var _this = this,
+ cell = _this._collection$_first,
+ modifications = _this._collection$_modifications;
+ for (; cell != null;) {
+ action.call$1(cell._collection$_element);
+ if (modifications !== _this._collection$_modifications)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ cell = cell._collection$_next;
+ }
+ },
+ get$first: function(_) {
+ var first = this._collection$_first;
+ if (first == null)
+ throw H.wrapException(P.StateError$("No elements"));
+ return first._collection$_element;
+ },
+ get$last: function(_) {
+ var last = this._collection$_last;
+ if (last == null)
+ throw H.wrapException(P.StateError$("No elements"));
+ return last._collection$_element;
+ },
+ add$1: function(_, element) {
+ var strings, nums, _this = this;
+ if (typeof element == "string" && element !== "__proto__") {
+ strings = _this._collection$_strings;
+ return _this._collection$_addHashTableEntry$2(strings == null ? _this._collection$_strings = P._LinkedHashSet__newHashTable() : strings, element);
+ } else if (typeof element == "number" && (element & 1073741823) === element) {
+ nums = _this._collection$_nums;
+ return _this._collection$_addHashTableEntry$2(nums == null ? _this._collection$_nums = P._LinkedHashSet__newHashTable() : nums, element);
+ } else
+ return _this._add$1(0, element);
+ },
+ _add$1: function(_, element) {
+ var hash, bucket, _this = this,
+ rest = _this._collection$_rest;
+ if (rest == null)
+ rest = _this._collection$_rest = P._LinkedHashSet__newHashTable();
+ hash = _this._computeHashCode$1(element);
+ bucket = rest[hash];
+ if (bucket == null)
+ rest[hash] = [_this._collection$_newLinkedCell$1(element)];
+ else {
+ if (_this._findBucketIndex$2(bucket, element) >= 0)
+ return false;
+ bucket.push(_this._collection$_newLinkedCell$1(element));
+ }
+ return true;
+ },
+ remove$1: function(_, object) {
+ var _this = this;
+ if (typeof object == "string" && object !== "__proto__")
+ return _this._collection$_removeHashTableEntry$2(_this._collection$_strings, object);
+ else if (typeof object == "number" && (object & 1073741823) === object)
+ return _this._collection$_removeHashTableEntry$2(_this._collection$_nums, object);
+ else
+ return _this._remove$1(0, object);
+ },
+ _remove$1: function(_, object) {
+ var hash, bucket, index, cell, _this = this,
+ rest = _this._collection$_rest;
+ if (rest == null)
+ return false;
+ hash = _this._computeHashCode$1(object);
+ bucket = rest[hash];
+ index = _this._findBucketIndex$2(bucket, object);
+ if (index < 0)
+ return false;
+ cell = bucket.splice(index, 1)[0];
+ if (0 === bucket.length)
+ delete rest[hash];
+ _this._collection$_unlinkCell$1(cell);
+ return true;
+ },
+ clear$0: function(_) {
+ var _this = this;
+ if (_this._collection$_length > 0) {
+ _this._collection$_strings = _this._collection$_nums = _this._collection$_rest = _this._collection$_first = _this._collection$_last = null;
+ _this._collection$_length = 0;
+ _this._collection$_modified$0();
+ }
+ },
+ _collection$_addHashTableEntry$2: function(table, element) {
+ if (table[element] != null)
+ return false;
+ table[element] = this._collection$_newLinkedCell$1(element);
+ return true;
+ },
+ _collection$_removeHashTableEntry$2: function(table, element) {
+ var cell;
+ if (table == null)
+ return false;
+ cell = table[element];
+ if (cell == null)
+ return false;
+ this._collection$_unlinkCell$1(cell);
+ delete table[element];
+ return true;
+ },
+ _collection$_modified$0: function() {
+ this._collection$_modifications = this._collection$_modifications + 1 & 1073741823;
+ },
+ _collection$_newLinkedCell$1: function(element) {
+ var t1, _this = this,
+ cell = new P._LinkedHashSetCell(element);
+ if (_this._collection$_first == null)
+ _this._collection$_first = _this._collection$_last = cell;
+ else {
+ t1 = _this._collection$_last;
+ t1.toString;
+ cell._collection$_previous = t1;
+ _this._collection$_last = t1._collection$_next = cell;
+ }
+ ++_this._collection$_length;
+ _this._collection$_modified$0();
+ return cell;
+ },
+ _collection$_unlinkCell$1: function(cell) {
+ var _this = this,
+ previous = cell._collection$_previous,
+ next = cell._collection$_next;
+ if (previous == null)
+ _this._collection$_first = next;
+ else
+ previous._collection$_next = next;
+ if (next == null)
+ _this._collection$_last = previous;
+ else
+ next._collection$_previous = previous;
+ --_this._collection$_length;
+ _this._collection$_modified$0();
+ },
+ _computeHashCode$1: function(element) {
+ return J.get$hashCode$(element) & 1073741823;
+ },
+ _findBucketIndex$2: function(bucket, element) {
+ var $length, i;
+ if (bucket == null)
+ return -1;
+ $length = bucket.length;
+ for (i = 0; i < $length; ++i)
+ if (J.$eq$(bucket[i]._collection$_element, element))
+ return i;
+ return -1;
+ }
+ };
+ P._LinkedHashSetCell.prototype = {};
+ P._LinkedHashSetIterator.prototype = {
+ get$current: function(_) {
+ return this._collection$_current;
+ },
+ moveNext$0: function() {
+ var _this = this,
+ cell = _this._collection$_cell,
+ t1 = _this._set;
+ if (_this._collection$_modifications !== t1._collection$_modifications)
+ throw H.wrapException(P.ConcurrentModificationError$(t1));
+ else if (cell == null) {
+ _this._collection$_current = null;
+ return false;
+ } else {
+ _this._collection$_current = cell._collection$_element;
+ _this._collection$_cell = cell._collection$_next;
+ return true;
+ }
+ }
+ };
+ P.HashMap_HashMap$from_closure.prototype = {
+ call$2: function(k, v) {
+ this.result.$indexSet(0, this.K._as(k), this.V._as(v));
+ },
+ $signature: 31
+ };
+ P.IterableMixin.prototype = {
+ map$1$1: function(_, f, $T) {
+ return H.MappedIterable_MappedIterable(this, f, this.$ti._precomputed1, $T);
+ },
+ contains$1: function(_, element) {
+ var t1;
+ for (t1 = this.$ti, t1 = P._SplayTreeKeyIterator$(this, t1._precomputed1, t1._eval$1("_SplayTreeSetNode<1>")); t1.moveNext$0();)
+ if (J.$eq$(t1.get$current(t1), element))
+ return true;
+ return false;
+ },
+ forEach$1: function(_, f) {
+ var t1;
+ for (t1 = this.$ti, t1 = P._SplayTreeKeyIterator$(this, t1._precomputed1, t1._eval$1("_SplayTreeSetNode<1>")); t1.moveNext$0();)
+ f.call$1(t1.get$current(t1));
+ },
+ toSet$0: function(_) {
+ return P.LinkedHashSet_LinkedHashSet$from(this, this.$ti._precomputed1);
+ },
+ get$length: function(_) {
+ var count,
+ t1 = this.$ti,
+ it = P._SplayTreeKeyIterator$(this, t1._precomputed1, t1._eval$1("_SplayTreeSetNode<1>"));
+ for (count = 0; it.moveNext$0();)
+ ++count;
+ return count;
+ },
+ get$isEmpty: function(_) {
+ var t1 = this.$ti;
+ return !P._SplayTreeKeyIterator$(this, t1._precomputed1, t1._eval$1("_SplayTreeSetNode<1>")).moveNext$0();
+ },
+ get$isNotEmpty: function(_) {
+ return this._root != null;
+ },
+ take$1: function(_, count) {
+ return H.TakeIterable_TakeIterable(this, count, this.$ti._precomputed1);
+ },
+ skip$1: function(_, count) {
+ return H.SkipIterable_SkipIterable(this, count, this.$ti._precomputed1);
+ },
+ get$first: function(_) {
+ var t1 = this.$ti,
+ it = P._SplayTreeKeyIterator$(this, t1._precomputed1, t1._eval$1("_SplayTreeSetNode<1>"));
+ if (!it.moveNext$0())
+ throw H.wrapException(H.IterableElementError_noElement());
+ return it.get$current(it);
+ },
+ get$last: function(_) {
+ var result,
+ t1 = this.$ti,
+ it = P._SplayTreeKeyIterator$(this, t1._precomputed1, t1._eval$1("_SplayTreeSetNode<1>"));
+ if (!it.moveNext$0())
+ throw H.wrapException(H.IterableElementError_noElement());
+ do
+ result = it.get$current(it);
+ while (it.moveNext$0());
+ return result;
+ },
+ elementAt$1: function(_, index) {
+ var t1, elementIndex, element, _s5_ = "index";
+ P.ArgumentError_checkNotNull(index, _s5_);
+ P.RangeError_checkNotNegative(index, _s5_);
+ for (t1 = this.$ti, t1 = P._SplayTreeKeyIterator$(this, t1._precomputed1, t1._eval$1("_SplayTreeSetNode<1>")), elementIndex = 0; t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ if (index === elementIndex)
+ return element;
+ ++elementIndex;
+ }
+ throw H.wrapException(P.IndexError$(index, this, _s5_, null, elementIndex));
+ },
+ toString$0: function(_) {
+ return P.IterableBase_iterableToShortString(this, "(", ")");
+ }
+ };
+ P.IterableBase.prototype = {};
+ P.LinkedHashMap_LinkedHashMap$from_closure.prototype = {
+ call$2: function(k, v) {
+ this.result.$indexSet(0, this.K._as(k), this.V._as(v));
+ },
+ $signature: 31
+ };
+ P.LinkedList.prototype = {
+ remove$1: function(_, entry) {
+ entry.get$_list();
+ return false;
+ },
+ get$iterator: function(_) {
+ return new P._LinkedListIterator(this, this._modificationCount, this._collection$_first);
+ },
+ get$length: function(_) {
+ return this._collection$_length;
+ },
+ get$first: function(_) {
+ var t1;
+ if (this._collection$_length === 0)
+ throw H.wrapException(P.StateError$("No such element"));
+ t1 = this._collection$_first;
+ t1.toString;
+ return t1;
+ },
+ get$last: function(_) {
+ var t1;
+ if (this._collection$_length === 0)
+ throw H.wrapException(P.StateError$("No such element"));
+ t1 = this._collection$_first._collection$_previous;
+ t1.toString;
+ return t1;
+ },
+ forEach$1: function(_, action) {
+ var t1, current, _this = this,
+ modificationCount = _this._modificationCount;
+ if (_this._collection$_length === 0)
+ return;
+ t1 = _this._collection$_first;
+ t1.toString;
+ current = t1;
+ do {
+ action.call$1(current);
+ if (modificationCount !== _this._modificationCount)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ t1 = current._collection$_next;
+ t1.toString;
+ if (t1 !== _this._collection$_first) {
+ current = t1;
+ continue;
+ } else
+ break;
+ } while (true);
+ },
+ get$isEmpty: function(_) {
+ return this._collection$_length === 0;
+ },
+ _insertBefore$3$updateFirst: function(entry, newEntry, updateFirst) {
+ var t1, t2, _this = this;
+ if (newEntry._list != null)
+ throw H.wrapException(P.StateError$("LinkedListEntry is already in a LinkedList"));
+ ++_this._modificationCount;
+ newEntry._list = _this;
+ t1 = _this._collection$_length;
+ if (t1 === 0) {
+ newEntry._collection$_next = newEntry;
+ _this._collection$_first = newEntry._collection$_previous = newEntry;
+ _this._collection$_length = t1 + 1;
+ return;
+ }
+ t2 = entry._collection$_previous;
+ t2.toString;
+ newEntry._collection$_previous = t2;
+ newEntry._collection$_next = entry;
+ entry._collection$_previous = t2._collection$_next = newEntry;
+ _this._collection$_length = t1 + 1;
+ },
+ _unlink$1: function(entry) {
+ var t1, t2, _this = this;
+ ++_this._modificationCount;
+ t1 = entry._collection$_next;
+ t1._collection$_previous = entry._collection$_previous;
+ entry._collection$_previous._collection$_next = t1;
+ t2 = --_this._collection$_length;
+ entry._list = entry._collection$_next = entry._collection$_previous = null;
+ if (t2 === 0)
+ _this._collection$_first = null;
+ else if (entry === _this._collection$_first)
+ _this._collection$_first = t1;
+ }
+ };
+ P._LinkedListIterator.prototype = {
+ get$current: function(_) {
+ var cur = this._collection$_current;
+ return cur;
+ },
+ moveNext$0: function() {
+ var _this = this,
+ t1 = _this._list;
+ if (_this._modificationCount !== t1._modificationCount)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ if (t1._collection$_length !== 0)
+ t1 = _this._visitedFirst && _this._collection$_next == t1.get$first(t1);
+ else
+ t1 = true;
+ if (t1) {
+ _this._collection$_current = null;
+ return false;
+ }
+ _this._visitedFirst = true;
+ t1 = _this._collection$_next;
+ _this._collection$_current = t1;
+ _this._collection$_next = t1._collection$_next;
+ return true;
+ }
+ };
+ P.LinkedListEntry.prototype = {};
+ P.ListBase.prototype = {$isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1};
+ P.ListMixin.prototype = {
+ get$iterator: function(receiver) {
+ return new H.ListIterator(receiver, this.get$length(receiver));
+ },
+ elementAt$1: function(receiver, index) {
+ return this.$index(receiver, index);
+ },
+ forEach$1: function(receiver, action) {
+ var i,
+ $length = this.get$length(receiver);
+ for (i = 0; i < $length; ++i) {
+ action.call$1(this.$index(receiver, i));
+ if ($length !== this.get$length(receiver))
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ },
+ get$isEmpty: function(receiver) {
+ return this.get$length(receiver) === 0;
+ },
+ get$isNotEmpty: function(receiver) {
+ return !this.get$isEmpty(receiver);
+ },
+ get$first: function(receiver) {
+ if (this.get$length(receiver) === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ return this.$index(receiver, 0);
+ },
+ get$last: function(receiver) {
+ if (this.get$length(receiver) === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ return this.$index(receiver, this.get$length(receiver) - 1);
+ },
+ contains$1: function(receiver, element) {
+ var i,
+ $length = this.get$length(receiver);
+ for (i = 0; i < $length; ++i) {
+ if (J.$eq$(this.$index(receiver, i), element))
+ return true;
+ if ($length !== this.get$length(receiver))
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ return false;
+ },
+ firstWhere$2$orElse: function(receiver, test, orElse) {
+ var i, element,
+ $length = this.get$length(receiver);
+ for (i = 0; i < $length; ++i) {
+ element = this.$index(receiver, i);
+ if (test.call$1(element))
+ return element;
+ if ($length !== this.get$length(receiver))
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ return orElse.call$0();
+ },
+ lastWhere$2$orElse: function(receiver, test, orElse) {
+ var i, element,
+ $length = this.get$length(receiver);
+ for (i = $length - 1; i >= 0; --i) {
+ element = this.$index(receiver, i);
+ if (test.call$1(element))
+ return element;
+ if ($length !== this.get$length(receiver))
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ if (orElse != null)
+ return orElse.call$0();
+ throw H.wrapException(H.IterableElementError_noElement());
+ },
+ join$1: function(receiver, separator) {
+ var t1;
+ if (this.get$length(receiver) === 0)
+ return "";
+ t1 = P.StringBuffer__writeAll("", receiver, separator);
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ map$1$1: function(receiver, f, $T) {
+ return new H.MappedListIterable(receiver, f, H.instanceType(receiver)._eval$1("@")._bind$1($T)._eval$1("MappedListIterable<1,2>"));
+ },
+ fold$1$2: function(receiver, initialValue, combine) {
+ var value, i,
+ $length = this.get$length(receiver);
+ for (value = initialValue, i = 0; i < $length; ++i) {
+ value = combine.call$2(value, this.$index(receiver, i));
+ if ($length !== this.get$length(receiver))
+ throw H.wrapException(P.ConcurrentModificationError$(receiver));
+ }
+ return value;
+ },
+ fold$2: function($receiver, initialValue, combine) {
+ return this.fold$1$2($receiver, initialValue, combine, type$.dynamic);
+ },
+ skip$1: function(receiver, count) {
+ return H.SubListIterable$(receiver, count, null, H.instanceType(receiver)._eval$1("ListMixin.E"));
+ },
+ take$1: function(receiver, count) {
+ return H.SubListIterable$(receiver, 0, count, H.instanceType(receiver)._eval$1("ListMixin.E"));
+ },
+ toList$1$growable: function(receiver, growable) {
+ var t1, first, result, i, _this = this;
+ if (_this.get$isEmpty(receiver)) {
+ t1 = H.instanceType(receiver)._eval$1("ListMixin.E");
+ return growable ? J.JSArray_JSArray$growable(0, t1) : J.JSArray_JSArray$fixed(0, t1);
+ }
+ first = _this.$index(receiver, 0);
+ result = P.List_List$filled(_this.get$length(receiver), first, growable, H.instanceType(receiver)._eval$1("ListMixin.E"));
+ for (i = 1; i < _this.get$length(receiver); ++i)
+ result[i] = _this.$index(receiver, i);
+ return result;
+ },
+ toList$0: function($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
+ toSet$0: function(receiver) {
+ var i,
+ result = P.LinkedHashSet_LinkedHashSet(H.instanceType(receiver)._eval$1("ListMixin.E"));
+ for (i = 0; i < this.get$length(receiver); ++i)
+ result.add$1(0, this.$index(receiver, i));
+ return result;
+ },
+ add$1: function(receiver, element) {
+ var t1 = this.get$length(receiver);
+ this.set$length(receiver, t1 + 1);
+ this.$indexSet(receiver, t1, element);
+ },
+ remove$1: function(receiver, element) {
+ var i;
+ for (i = 0; i < this.get$length(receiver); ++i)
+ if (J.$eq$(this.$index(receiver, i), element)) {
+ this._closeGap$2(receiver, i, i + 1);
+ return true;
+ }
+ return false;
+ },
+ _closeGap$2: function(receiver, start, end) {
+ var i, _this = this,
+ $length = _this.get$length(receiver),
+ size = end - start;
+ for (i = end; i < $length; ++i)
+ _this.$indexSet(receiver, i - size, _this.$index(receiver, i));
+ _this.set$length(receiver, $length - size);
+ },
+ cast$1$0: function(receiver, $R) {
+ return new H.CastList(receiver, H.instanceType(receiver)._eval$1("@")._bind$1($R)._eval$1("CastList<1,2>"));
+ },
+ removeLast$0: function(receiver) {
+ var result, _this = this;
+ if (_this.get$length(receiver) === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ result = _this.$index(receiver, _this.get$length(receiver) - 1);
+ _this.set$length(receiver, _this.get$length(receiver) - 1);
+ return result;
+ },
+ sort$1: function(receiver, compare) {
+ H.Sort_sort(receiver, compare == null ? P.collection_ListMixin__compareAny$closure() : compare);
+ },
+ $add: function(receiver, other) {
+ var t2,
+ t1 = H.setRuntimeTypeInfo([], H.instanceType(receiver)._eval$1("JSArray"));
+ for (t2 = this.get$iterator(receiver); t2.moveNext$0();)
+ t1.push(t2.get$current(t2));
+ for (t2 = J.get$iterator$ax(other); t2.moveNext$0();)
+ t1.push(t2.get$current(t2));
+ return t1;
+ },
+ sublist$2: function(receiver, start, end) {
+ var listLength = this.get$length(receiver);
+ if (listLength == null)
+ throw H.wrapException("!");
+ P.RangeError_checkValidRange(start, listLength, listLength);
+ return P.List_List$from(this.getRange$2(receiver, start, listLength), true, H.instanceType(receiver)._eval$1("ListMixin.E"));
+ },
+ sublist$1: function($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ },
+ getRange$2: function(receiver, start, end) {
+ P.RangeError_checkValidRange(start, end, this.get$length(receiver));
+ return H.SubListIterable$(receiver, start, end, H.instanceType(receiver)._eval$1("ListMixin.E"));
+ },
+ fillRange$3: function(receiver, start, end, fill) {
+ var i;
+ P.RangeError_checkValidRange(start, end, this.get$length(receiver));
+ for (i = start; i < end; ++i)
+ this.$indexSet(receiver, i, fill);
+ },
+ setRange$4: function(receiver, start, end, iterable, skipCount) {
+ var $length, otherStart, otherList, t1, i;
+ P.RangeError_checkValidRange(start, end, this.get$length(receiver));
+ $length = end - start;
+ if ($length === 0)
+ return;
+ P.RangeError_checkNotNegative(skipCount, "skipCount");
+ if (H.instanceType(receiver)._eval$1("List")._is(iterable)) {
+ otherStart = skipCount;
+ otherList = iterable;
+ } else {
+ t1 = J.skip$1$ax(iterable, skipCount);
+ otherList = t1.toList$1$growable(t1, false);
+ otherStart = 0;
+ }
+ t1 = J.getInterceptor$asx(otherList);
+ if (otherStart + $length > t1.get$length(otherList))
+ throw H.wrapException(H.IterableElementError_tooFew());
+ if (otherStart < start)
+ for (i = $length - 1; i >= 0; --i)
+ this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i));
+ else
+ for (i = 0; i < $length; ++i)
+ this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i));
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ setAll$2: function(receiver, index, iterable) {
+ var t1, index0;
+ if (type$.List_dynamic._is(iterable))
+ this.setRange$3(receiver, index, index + iterable.length, iterable);
+ else
+ for (t1 = J.get$iterator$ax(iterable); t1.moveNext$0(); index = index0) {
+ index0 = index + 1;
+ this.$indexSet(receiver, index, t1.get$current(t1));
+ }
+ },
+ toString$0: function(receiver) {
+ return P.IterableBase_iterableToFullString(receiver, "[", "]");
+ }
+ };
+ P.MapBase.prototype = {};
+ P.MapBase_mapToString_closure.prototype = {
+ call$2: function(k, v) {
+ var t2,
+ t1 = this._box_0;
+ if (!t1.first)
+ this.result._contents += ", ";
+ t1.first = false;
+ t1 = this.result;
+ t2 = t1._contents += H.S(k);
+ t1._contents = t2 + ": ";
+ t1._contents += H.S(v);
+ },
+ $signature: 115
+ };
+ P.MapMixin.prototype = {
+ cast$2$0: function(receiver, RK, RV) {
+ var t1 = H.instanceType(receiver);
+ return P.Map_castFrom(receiver, t1._eval$1("MapMixin.K"), t1._eval$1("MapMixin.V"), RK, RV);
+ },
+ forEach$1: function(receiver, action) {
+ var t1, key;
+ for (t1 = J.get$iterator$ax(this.get$keys(receiver)); t1.moveNext$0();) {
+ key = t1.get$current(t1);
+ action.call$2(key, this.$index(receiver, key));
+ }
+ },
+ putIfAbsent$2: function(receiver, key, ifAbsent) {
+ var t1;
+ if (this.containsKey$1(receiver, key))
+ return this.$index(receiver, key);
+ t1 = ifAbsent.call$0();
+ this.$indexSet(receiver, key, t1);
+ return t1;
+ },
+ update$3$ifAbsent: function(receiver, key, update, ifAbsent) {
+ var t1, _this = this;
+ if (_this.containsKey$1(receiver, key)) {
+ t1 = update.call$1(_this.$index(receiver, key));
+ _this.$indexSet(receiver, key, t1);
+ return t1;
+ }
+ if (ifAbsent != null) {
+ t1 = ifAbsent.call$0();
+ _this.$indexSet(receiver, key, t1);
+ return t1;
+ }
+ throw H.wrapException(P.ArgumentError$value(key, "key", "Key not in map."));
+ },
+ update$2: function($receiver, key, update) {
+ return this.update$3$ifAbsent($receiver, key, update, null);
+ },
+ get$entries: function(receiver) {
+ return J.map$1$1$ax(this.get$keys(receiver), new P.MapMixin_entries_closure(receiver), H.instanceType(receiver)._eval$1("MapEntry"));
+ },
+ map$2$1: function(receiver, transform, K2, V2) {
+ var t1, key, entry,
+ result = P.LinkedHashMap_LinkedHashMap$_empty(K2, V2);
+ for (t1 = J.get$iterator$ax(this.get$keys(receiver)); t1.moveNext$0();) {
+ key = t1.get$current(t1);
+ entry = transform.call$2(key, this.$index(receiver, key));
+ result.$indexSet(0, entry.key, entry.value);
+ }
+ return result;
+ },
+ removeWhere$1: function(receiver, test) {
+ var t1, key, _i,
+ keysToRemove = H.setRuntimeTypeInfo([], H.instanceType(receiver)._eval$1("JSArray"));
+ for (t1 = J.get$iterator$ax(this.get$keys(receiver)); t1.moveNext$0();) {
+ key = t1.get$current(t1);
+ if (test.call$2(key, this.$index(receiver, key)))
+ keysToRemove.push(key);
+ }
+ for (t1 = keysToRemove.length, _i = 0; _i < keysToRemove.length; keysToRemove.length === t1 || (0, H.throwConcurrentModificationError)(keysToRemove), ++_i)
+ this.remove$1(receiver, keysToRemove[_i]);
+ },
+ containsKey$1: function(receiver, key) {
+ return J.contains$1$asx(this.get$keys(receiver), key);
+ },
+ get$length: function(receiver) {
+ return J.get$length$asx(this.get$keys(receiver));
+ },
+ get$isEmpty: function(receiver) {
+ return J.get$isEmpty$asx(this.get$keys(receiver));
+ },
+ get$isNotEmpty: function(receiver) {
+ return J.get$isNotEmpty$asx(this.get$keys(receiver));
+ },
+ get$values: function(receiver) {
+ var t1 = H.instanceType(receiver);
+ return new P._MapBaseValueIterable(receiver, t1._eval$1("@")._bind$1(t1._eval$1("MapMixin.V"))._eval$1("_MapBaseValueIterable<1,2>"));
+ },
+ toString$0: function(receiver) {
+ return P.MapBase_mapToString(receiver);
+ },
+ $isMap: 1
+ };
+ P.MapMixin_entries_closure.prototype = {
+ call$1: function(key) {
+ var t1 = this.$this,
+ t2 = H.instanceType(t1);
+ return new P.MapEntry(key, J.$index$asx(t1, key), t2._eval$1("@")._bind$1(t2._eval$1("MapMixin.V"))._eval$1("MapEntry<1,2>"));
+ },
+ $signature: function() {
+ return H.instanceType(this.$this)._eval$1("MapEntry(MapMixin.K)");
+ }
+ };
+ P._MapBaseValueIterable.prototype = {
+ get$length: function(_) {
+ return J.get$length$asx(this._collection$_map);
+ },
+ get$isEmpty: function(_) {
+ return J.get$isEmpty$asx(this._collection$_map);
+ },
+ get$isNotEmpty: function(_) {
+ return J.get$isNotEmpty$asx(this._collection$_map);
+ },
+ get$first: function(_) {
+ var t1 = this._collection$_map,
+ t2 = J.getInterceptor$x(t1);
+ return t2.$index(t1, J.get$first$ax(t2.get$keys(t1)));
+ },
+ get$last: function(_) {
+ var t1 = this._collection$_map,
+ t2 = J.getInterceptor$x(t1);
+ return t2.$index(t1, J.get$last$ax(t2.get$keys(t1)));
+ },
+ get$iterator: function(_) {
+ var t1 = this._collection$_map;
+ return new P._MapBaseValueIterator(J.get$iterator$ax(J.get$keys$x(t1)), t1);
+ }
+ };
+ P._MapBaseValueIterator.prototype = {
+ moveNext$0: function() {
+ var _this = this,
+ t1 = _this._collection$_keys;
+ if (t1.moveNext$0()) {
+ _this._collection$_current = J.$index$asx(_this._collection$_map, t1.get$current(t1));
+ return true;
+ }
+ _this._collection$_current = null;
+ return false;
+ },
+ get$current: function(_) {
+ var cur = this._collection$_current;
+ return cur;
+ }
+ };
+ P._UnmodifiableMapMixin.prototype = {
+ $indexSet: function(_, key, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify unmodifiable map"));
+ },
+ remove$1: function(_, key) {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify unmodifiable map"));
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify unmodifiable map"));
+ }
+ };
+ P.MapView.prototype = {
+ cast$2$0: function(_, RK, RV) {
+ var t1 = this._collection$_map;
+ return t1.cast$2$0(t1, RK, RV);
+ },
+ $index: function(_, key) {
+ return this._collection$_map.$index(0, key);
+ },
+ $indexSet: function(_, key, value) {
+ this._collection$_map.$indexSet(0, key, value);
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ return this._collection$_map.putIfAbsent$2(0, key, ifAbsent);
+ },
+ containsKey$1: function(_, key) {
+ return this._collection$_map.containsKey$1(0, key);
+ },
+ forEach$1: function(_, action) {
+ this._collection$_map.forEach$1(0, action);
+ },
+ get$isEmpty: function(_) {
+ var t1 = this._collection$_map;
+ return t1.get$isEmpty(t1);
+ },
+ get$isNotEmpty: function(_) {
+ var t1 = this._collection$_map;
+ return t1.get$isNotEmpty(t1);
+ },
+ get$length: function(_) {
+ var t1 = this._collection$_map;
+ return t1.get$length(t1);
+ },
+ get$keys: function(_) {
+ var t1 = this._collection$_map;
+ return t1.get$keys(t1);
+ },
+ remove$1: function(_, key) {
+ return this._collection$_map.remove$1(0, key);
+ },
+ toString$0: function(_) {
+ var t1 = this._collection$_map;
+ return t1.toString$0(t1);
+ },
+ get$values: function(_) {
+ var t1 = this._collection$_map;
+ return t1.get$values(t1);
+ },
+ map$2$1: function(_, transform, K2, V2) {
+ var t1 = this._collection$_map;
+ return t1.map$2$1(t1, transform, K2, V2);
+ },
+ $isMap: 1
+ };
+ P.UnmodifiableMapView.prototype = {
+ cast$2$0: function(_, RK, RV) {
+ var t1 = this._collection$_map;
+ return new P.UnmodifiableMapView(t1.cast$2$0(t1, RK, RV), RK._eval$1("@<0>")._bind$1(RV)._eval$1("UnmodifiableMapView<1,2>"));
+ }
+ };
+ P._DoubleLink.prototype = {
+ _collection$_link$2: function(previous, next) {
+ var _this = this;
+ _this._nextLink = next;
+ _this._previousLink = previous;
+ if (previous != null)
+ previous._nextLink = H._instanceType(_this)._eval$1("_DoubleLink.0")._as(_this);
+ if (next != null)
+ next._previousLink = H._instanceType(_this)._eval$1("_DoubleLink.0")._as(_this);
+ },
+ _unlink$0: function() {
+ var t2, _this = this,
+ t1 = _this._previousLink;
+ if (t1 != null)
+ t1._nextLink = _this._nextLink;
+ t2 = _this._nextLink;
+ if (t2 != null)
+ t2._previousLink = t1;
+ _this._previousLink = _this._nextLink = null;
+ }
+ };
+ P.DoubleLinkedQueueEntry.prototype = {
+ remove$0: function(_) {
+ this._unlink$0();
+ return this.get$_collection$_element();
+ }
+ };
+ P._DoubleLinkedQueueEntry.prototype = {
+ get$_collection$_element: function() {
+ return this._collection$_element;
+ },
+ nextEntry$0: function() {
+ return H._instanceType(this)._eval$1("_DoubleLinkedQueueEntry<1>")._as(this._nextLink)._asNonSentinelEntry$0();
+ }
+ };
+ P._DoubleLinkedQueueElement.prototype = {
+ _remove$0: function(_) {
+ this._queue = null;
+ this._unlink$0();
+ return this.get$_collection$_element();
+ },
+ remove$0: function(_) {
+ var _this = this,
+ t1 = _this._queue;
+ if (t1 != null)
+ --t1._elementCount;
+ _this._queue = null;
+ _this._unlink$0();
+ return _this.get$_collection$_element();
+ },
+ _asNonSentinelEntry$0: function() {
+ return this;
+ }
+ };
+ P._DoubleLinkedQueueSentinel.prototype = {
+ _asNonSentinelEntry$0: function() {
+ return null;
+ },
+ _remove$0: function(_) {
+ throw H.wrapException(H.IterableElementError_noElement());
+ },
+ get$_collection$_element: function() {
+ throw H.wrapException(H.IterableElementError_noElement());
+ }
+ };
+ P.DoubleLinkedQueue.prototype = {
+ get$_sentinel: function() {
+ var t1, _this = this;
+ if (!_this.__DoubleLinkedQueue__sentinel_isSet) {
+ t1 = new P._DoubleLinkedQueueSentinel(_this, null, _this.$ti._eval$1("_DoubleLinkedQueueSentinel<1>"));
+ t1._previousLink = t1;
+ _this.__DoubleLinkedQueue__sentinel = t1._nextLink = t1;
+ _this.__DoubleLinkedQueue__sentinel_isSet = true;
+ }
+ return _this.__DoubleLinkedQueue__sentinel;
+ },
+ get$length: function(_) {
+ return this._elementCount;
+ },
+ addFirst$1: function(value) {
+ var t1 = this.get$_sentinel();
+ new P._DoubleLinkedQueueElement(t1._queue, value, H._instanceType(t1)._eval$1("_DoubleLinkedQueueElement<1>"))._collection$_link$2(t1, t1._nextLink);
+ ++this._elementCount;
+ },
+ remove$1: function(_, o) {
+ var t3, equals, _this = this,
+ t1 = _this.$ti,
+ t2 = t1._eval$1("_DoubleLinkedQueueEntry<1>"),
+ entry = t2._as(_this.get$_sentinel()._nextLink);
+ t1 = t1._eval$1("_DoubleLinkedQueueSentinel<1>");
+ while (true) {
+ if (!_this.__DoubleLinkedQueue__sentinel_isSet) {
+ t3 = new P._DoubleLinkedQueueSentinel(_this, null, t1);
+ t3._previousLink = t3;
+ _this.__DoubleLinkedQueue__sentinel = t3._nextLink = t3;
+ _this.__DoubleLinkedQueue__sentinel_isSet = true;
+ }
+ if (!(entry != _this.__DoubleLinkedQueue__sentinel))
+ break;
+ equals = J.$eq$(entry.get$_collection$_element(), o);
+ if (_this !== entry._queue)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ if (equals) {
+ entry._remove$0(0);
+ --_this._elementCount;
+ return true;
+ }
+ entry = t2._as(entry._nextLink);
+ }
+ return false;
+ },
+ get$first: function(_) {
+ return this.get$_sentinel()._nextLink.get$_collection$_element();
+ },
+ get$last: function(_) {
+ return this.get$_sentinel()._previousLink.get$_collection$_element();
+ },
+ get$isEmpty: function(_) {
+ return this.get$_sentinel()._nextLink == this.get$_sentinel();
+ },
+ get$iterator: function(_) {
+ var t1 = this.get$_sentinel();
+ return new P._DoubleLinkedQueueIterator(t1, t1._nextLink, this.$ti._eval$1("_DoubleLinkedQueueIterator<1>"));
+ },
+ toString$0: function(_) {
+ return P.IterableBase_iterableToFullString(this, "{", "}");
+ },
+ $isEfficientLengthIterable: 1
+ };
+ P._DoubleLinkedQueueIterator.prototype = {
+ moveNext$0: function() {
+ var _this = this,
+ t1 = _this._nextEntry,
+ t2 = _this._sentinel;
+ if (t1 == t2) {
+ _this._sentinel = _this._nextEntry = _this._collection$_current = null;
+ return false;
+ }
+ _this.$ti._eval$1("_DoubleLinkedQueueEntry<1>")._as(t1);
+ t2 = t2._queue;
+ if (t2 != t1._queue)
+ throw H.wrapException(P.ConcurrentModificationError$(t2));
+ _this._collection$_current = t1.get$_collection$_element();
+ _this._nextEntry = t1._nextLink;
+ return true;
+ },
+ get$current: function(_) {
+ var cur = this._collection$_current;
+ return cur;
+ }
+ };
+ P.ListQueue.prototype = {
+ get$iterator: function(_) {
+ var _this = this;
+ return new P._ListQueueIterator(_this, _this._tail, _this._modificationCount, _this._head);
+ },
+ forEach$1: function(_, f) {
+ var i, _this = this,
+ modificationCount = _this._modificationCount;
+ for (i = _this._head; i !== _this._tail; i = (i + 1 & _this._table.length - 1) >>> 0) {
+ f.call$1(_this._table[i]);
+ if (modificationCount !== _this._modificationCount)
+ H.throwExpression(P.ConcurrentModificationError$(_this));
+ }
+ },
+ get$isEmpty: function(_) {
+ return this._head === this._tail;
+ },
+ get$length: function(_) {
+ return (this._tail - this._head & this._table.length - 1) >>> 0;
+ },
+ get$first: function(_) {
+ var t1 = this._head;
+ if (t1 === this._tail)
+ throw H.wrapException(H.IterableElementError_noElement());
+ return this._table[t1];
+ },
+ get$last: function(_) {
+ var t1 = this._head,
+ t2 = this._tail;
+ if (t1 === t2)
+ throw H.wrapException(H.IterableElementError_noElement());
+ t1 = this._table;
+ return t1[(t2 - 1 & t1.length - 1) >>> 0];
+ },
+ elementAt$1: function(_, index) {
+ var t1;
+ P.RangeError_checkValidIndex(index, this, null, null);
+ t1 = this._table;
+ return t1[(this._head + index & t1.length - 1) >>> 0];
+ },
+ toList$1$growable: function(_, growable) {
+ var t1, list, t2, i, _this = this,
+ mask = _this._table.length - 1,
+ $length = (_this._tail - _this._head & mask) >>> 0;
+ if ($length === 0) {
+ t1 = _this.$ti._precomputed1;
+ return growable ? J.JSArray_JSArray$growable(0, t1) : J.JSArray_JSArray$fixed(0, t1);
+ }
+ list = P.List_List$filled($length, _this.get$first(_this), growable, _this.$ti._precomputed1);
+ for (t1 = _this._table, t2 = _this._head, i = 0; i < $length; ++i)
+ list[i] = t1[(t2 + i & mask) >>> 0];
+ return list;
+ },
+ toList$0: function($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
+ addAll$1: function(_, elements) {
+ var addCount, $length, t2, t3, t4, newTable, endSpace, preSpace, _this = this,
+ t1 = _this.$ti;
+ if (t1._eval$1("List<1>")._is(elements)) {
+ addCount = elements.length;
+ $length = _this.get$length(_this);
+ t2 = $length + addCount;
+ t3 = _this._table;
+ t4 = t3.length;
+ if (t2 >= t4) {
+ newTable = P.List_List$filled(P.ListQueue__nextPowerOf2(t2 + (t2 >>> 1)), null, false, t1._eval$1("1?"));
+ _this._tail = _this._writeToList$1(newTable);
+ _this._table = newTable;
+ _this._head = 0;
+ C.JSArray_methods.setRange$4(newTable, $length, t2, elements, 0);
+ _this._tail += addCount;
+ } else {
+ t1 = _this._tail;
+ endSpace = t4 - t1;
+ if (addCount < endSpace) {
+ C.JSArray_methods.setRange$4(t3, t1, t1 + addCount, elements, 0);
+ _this._tail += addCount;
+ } else {
+ preSpace = addCount - endSpace;
+ C.JSArray_methods.setRange$4(t3, t1, t1 + endSpace, elements, 0);
+ C.JSArray_methods.setRange$4(_this._table, 0, preSpace, elements, endSpace);
+ _this._tail = preSpace;
+ }
+ }
+ ++_this._modificationCount;
+ } else
+ for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
+ _this._add$1(0, t1.get$current(t1));
+ },
+ remove$1: function(_, value) {
+ var i, _this = this;
+ for (i = _this._head; i !== _this._tail; i = (i + 1 & _this._table.length - 1) >>> 0)
+ if (J.$eq$(_this._table[i], value)) {
+ _this._remove$1(0, i);
+ ++_this._modificationCount;
+ return true;
+ }
+ return false;
+ },
+ clear$0: function(_) {
+ var t2, t3, _this = this,
+ i = _this._head,
+ t1 = _this._tail;
+ if (i !== t1) {
+ for (t2 = _this._table, t3 = t2.length - 1; i !== t1; i = (i + 1 & t3) >>> 0)
+ t2[i] = null;
+ _this._head = _this._tail = 0;
+ ++_this._modificationCount;
+ }
+ },
+ toString$0: function(_) {
+ return P.IterableBase_iterableToFullString(this, "{", "}");
+ },
+ addFirst$1: function(value) {
+ var _this = this,
+ t1 = _this._head,
+ t2 = _this._table;
+ t1 = _this._head = (t1 - 1 & t2.length - 1) >>> 0;
+ t2[t1] = value;
+ if (t1 === _this._tail)
+ _this._grow$0();
+ ++_this._modificationCount;
+ },
+ removeFirst$0: function() {
+ var t2, result, _this = this,
+ t1 = _this._head;
+ if (t1 === _this._tail)
+ throw H.wrapException(H.IterableElementError_noElement());
+ ++_this._modificationCount;
+ t2 = _this._table;
+ result = t2[t1];
+ t2[t1] = null;
+ _this._head = (t1 + 1 & t2.length - 1) >>> 0;
+ return result;
+ },
+ removeLast$0: function(_) {
+ var result, _this = this,
+ t1 = _this._head,
+ t2 = _this._tail;
+ if (t1 === t2)
+ throw H.wrapException(H.IterableElementError_noElement());
+ ++_this._modificationCount;
+ t1 = _this._table;
+ t2 = _this._tail = (t2 - 1 & t1.length - 1) >>> 0;
+ result = t1[t2];
+ t1[t2] = null;
+ return result;
+ },
+ _add$1: function(_, element) {
+ var _this = this,
+ t1 = _this._table,
+ t2 = _this._tail;
+ t1[t2] = element;
+ t1 = (t2 + 1 & t1.length - 1) >>> 0;
+ _this._tail = t1;
+ if (_this._head === t1)
+ _this._grow$0();
+ ++_this._modificationCount;
+ },
+ _remove$1: function(_, offset) {
+ var i, prevOffset, nextOffset, _this = this,
+ t1 = _this._table,
+ mask = t1.length - 1,
+ t2 = _this._head,
+ t3 = _this._tail;
+ if ((offset - t2 & mask) >>> 0 < (t3 - offset & mask) >>> 0) {
+ for (i = offset; i !== t2; i = prevOffset) {
+ prevOffset = (i - 1 & mask) >>> 0;
+ t1[i] = t1[prevOffset];
+ }
+ t1[t2] = null;
+ _this._head = (t2 + 1 & mask) >>> 0;
+ return (offset + 1 & mask) >>> 0;
+ } else {
+ t2 = _this._tail = (t3 - 1 & mask) >>> 0;
+ for (i = offset; i !== t2; i = nextOffset) {
+ nextOffset = (i + 1 & mask) >>> 0;
+ t1[i] = t1[nextOffset];
+ }
+ t1[t2] = null;
+ return offset;
+ }
+ },
+ _grow$0: function() {
+ var _this = this,
+ newTable = P.List_List$filled(_this._table.length * 2, null, false, _this.$ti._eval$1("1?")),
+ t1 = _this._table,
+ t2 = _this._head,
+ split = t1.length - t2;
+ C.JSArray_methods.setRange$4(newTable, 0, split, t1, t2);
+ C.JSArray_methods.setRange$4(newTable, split, split + _this._head, _this._table, 0);
+ _this._head = 0;
+ _this._tail = _this._table.length;
+ _this._table = newTable;
+ },
+ _writeToList$1: function(target) {
+ var $length, firstPartSize, _this = this,
+ t1 = _this._head,
+ t2 = _this._tail,
+ t3 = _this._table;
+ if (t1 <= t2) {
+ $length = t2 - t1;
+ C.JSArray_methods.setRange$4(target, 0, $length, t3, t1);
+ return $length;
+ } else {
+ firstPartSize = t3.length - t1;
+ C.JSArray_methods.setRange$4(target, 0, firstPartSize, t3, t1);
+ C.JSArray_methods.setRange$4(target, firstPartSize, firstPartSize + _this._tail, _this._table, 0);
+ return _this._tail + firstPartSize;
+ }
+ }
+ };
+ P._ListQueueIterator.prototype = {
+ get$current: function(_) {
+ var cur = this._collection$_current;
+ return cur;
+ },
+ moveNext$0: function() {
+ var t2, _this = this,
+ t1 = _this._queue;
+ if (_this._modificationCount !== t1._modificationCount)
+ H.throwExpression(P.ConcurrentModificationError$(t1));
+ t2 = _this._position;
+ if (t2 === _this._end) {
+ _this._collection$_current = null;
+ return false;
+ }
+ t1 = t1._table;
+ _this._collection$_current = t1[t2];
+ _this._position = (t2 + 1 & t1.length - 1) >>> 0;
+ return true;
+ }
+ };
+ P.SetMixin.prototype = {
+ get$isEmpty: function(_) {
+ return this.get$length(this) === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this.get$length(this) !== 0;
+ },
+ addAll$1: function(_, elements) {
+ var t1;
+ for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
+ this.add$1(0, t1.get$current(t1));
+ },
+ removeAll$1: function(elements) {
+ var t1, _i;
+ for (t1 = elements.length, _i = 0; _i < elements.length; elements.length === t1 || (0, H.throwConcurrentModificationError)(elements), ++_i)
+ this.remove$1(0, elements[_i]);
+ },
+ intersection$1: function(_, other) {
+ var t1, element,
+ result = this.toSet$0(0);
+ for (t1 = this.get$iterator(this); t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ if (!other.contains$1(0, element))
+ result.remove$1(0, element);
+ }
+ return result;
+ },
+ toList$1$growable: function(_, growable) {
+ return P.List_List$of(this, growable, H._instanceType(this)._eval$1("SetMixin.E"));
+ },
+ toList$0: function($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
+ map$1$1: function(_, f, $T) {
+ return new H.EfficientLengthMappedIterable(this, f, H._instanceType(this)._eval$1("@")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>"));
+ },
+ toString$0: function(_) {
+ return P.IterableBase_iterableToFullString(this, "{", "}");
+ },
+ forEach$1: function(_, f) {
+ var t1;
+ for (t1 = this.get$iterator(this); t1.moveNext$0();)
+ f.call$1(t1.get$current(t1));
+ },
+ take$1: function(_, n) {
+ return H.TakeIterable_TakeIterable(this, n, H._instanceType(this)._eval$1("SetMixin.E"));
+ },
+ skip$1: function(_, n) {
+ return H.SkipIterable_SkipIterable(this, n, H._instanceType(this)._eval$1("SetMixin.E"));
+ },
+ get$first: function(_) {
+ var it = this.get$iterator(this);
+ if (!it.moveNext$0())
+ throw H.wrapException(H.IterableElementError_noElement());
+ return it.get$current(it);
+ },
+ get$last: function(_) {
+ var result,
+ it = this.get$iterator(this);
+ if (!it.moveNext$0())
+ throw H.wrapException(H.IterableElementError_noElement());
+ do
+ result = it.get$current(it);
+ while (it.moveNext$0());
+ return result;
+ },
+ elementAt$1: function(_, index) {
+ var t1, elementIndex, element, _s5_ = "index";
+ P.ArgumentError_checkNotNull(index, _s5_);
+ P.RangeError_checkNotNegative(index, _s5_);
+ for (t1 = this.get$iterator(this), elementIndex = 0; t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ if (index === elementIndex)
+ return element;
+ ++elementIndex;
+ }
+ throw H.wrapException(P.IndexError$(index, this, _s5_, null, elementIndex));
+ }
+ };
+ P._SetBase.prototype = {
+ difference$1: function(other) {
+ var t1, element,
+ result = this._newSet$0();
+ for (t1 = this.get$iterator(this); t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ if (!other.contains$1(0, element))
+ result.add$1(0, element);
+ }
+ return result;
+ },
+ intersection$1: function(_, other) {
+ var t1, element,
+ result = this._newSet$0();
+ for (t1 = this.get$iterator(this); t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ if (other.contains$1(0, element))
+ result.add$1(0, element);
+ }
+ return result;
+ },
+ toSet$0: function(_) {
+ var t1 = this._newSet$0();
+ t1.addAll$1(0, this);
+ return t1;
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isSet: 1
+ };
+ P._UnmodifiableSet.prototype = {
+ _newSet$0: function() {
+ return P.LinkedHashSet_LinkedHashSet(this.$ti._precomputed1);
+ },
+ contains$1: function(_, element) {
+ return J.containsKey$1$x(this._collection$_map, element);
+ },
+ get$iterator: function(_) {
+ return J.get$iterator$ax(J.get$keys$x(this._collection$_map));
+ },
+ get$length: function(_) {
+ return J.get$length$asx(this._collection$_map);
+ },
+ add$1: function(_, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot change unmodifiable set"));
+ },
+ remove$1: function(_, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot change unmodifiable set"));
+ }
+ };
+ P._SplayTreeNode.prototype = {};
+ P._SplayTreeSetNode.prototype = {};
+ P._SplayTreeMapNode.prototype = {};
+ P._SplayTree.prototype = {
+ _splay$1: function(key) {
+ var t1, compare, comp, current, newTreeLeft, left, newTreeRight, right, currentLeft, currentLeft0, currentRight, currentRight0, _this = this, _null = null;
+ if (_this.get$_root() == null)
+ return -1;
+ t1 = _this.get$_root();
+ t1.toString;
+ compare = _this.get$_compare();
+ for (comp = _null, current = t1, newTreeLeft = comp, left = newTreeLeft, newTreeRight = left, right = newTreeRight; true;) {
+ comp = compare.call$2(current.key, key);
+ if (comp > 0) {
+ currentLeft = current.left;
+ if (currentLeft == null)
+ break;
+ comp = compare.call$2(currentLeft.key, key);
+ if (comp > 0) {
+ current.left = currentLeft.right;
+ currentLeft.right = current;
+ currentLeft0 = currentLeft.left;
+ if (currentLeft0 == null) {
+ current = currentLeft;
+ break;
+ }
+ current = currentLeft;
+ currentLeft = currentLeft0;
+ }
+ if (right == null)
+ newTreeRight = current;
+ else
+ right.left = current;
+ right = current;
+ current = currentLeft;
+ } else {
+ if (comp < 0) {
+ currentRight = current.right;
+ if (currentRight == null)
+ break;
+ comp = compare.call$2(currentRight.key, key);
+ if (comp < 0) {
+ current.right = currentRight.left;
+ currentRight.left = current;
+ currentRight0 = currentRight.right;
+ if (currentRight0 == null) {
+ current = currentRight;
+ break;
+ }
+ current = currentRight;
+ currentRight = currentRight0;
+ }
+ if (left == null)
+ newTreeLeft = current;
+ else
+ left.right = current;
+ } else
+ break;
+ left = current;
+ current = currentRight;
+ }
+ }
+ if (left != null) {
+ left.right = current.left;
+ current.left = newTreeLeft;
+ }
+ if (right != null) {
+ right.left = current.right;
+ current.right = newTreeRight;
+ }
+ _this.set$_root(current);
+ ++_this._splayCount;
+ return comp;
+ },
+ _splayMin$1: function(node) {
+ var current, nextLeft0,
+ nextLeft = node.left;
+ for (current = node; nextLeft != null; current = nextLeft, nextLeft = nextLeft0) {
+ current.left = nextLeft.right;
+ nextLeft.right = current;
+ nextLeft0 = nextLeft.left;
+ }
+ return current;
+ },
+ _splayMax$1: function(node) {
+ var current, nextRight0,
+ nextRight = node.right;
+ for (current = node; nextRight != null; current = nextRight, nextRight = nextRight0) {
+ current.right = nextRight.left;
+ nextRight.left = current;
+ nextRight0 = nextRight.right;
+ }
+ return current;
+ },
+ _remove$1: function(_, key) {
+ var root, left, t1, root0, _this = this;
+ if (_this.get$_root() == null)
+ return null;
+ if (_this._splay$1(key) !== 0)
+ return null;
+ root = _this.get$_root();
+ left = root.left;
+ --_this._count;
+ t1 = root.right;
+ if (left == null)
+ _this.set$_root(t1);
+ else {
+ root0 = _this._splayMax$1(left);
+ root0.right = t1;
+ _this.set$_root(root0);
+ }
+ ++_this._modificationCount;
+ return root;
+ },
+ _addNewRoot$2: function(node, comp) {
+ var root, _this = this;
+ ++_this._count;
+ ++_this._modificationCount;
+ root = _this.get$_root();
+ if (root == null) {
+ _this.set$_root(node);
+ return;
+ }
+ if (comp < 0) {
+ node.left = root;
+ node.right = root.right;
+ root.right = null;
+ } else {
+ node.right = root;
+ node.left = root.left;
+ root.left = null;
+ }
+ _this.set$_root(node);
+ },
+ get$_collection$_first: function() {
+ var _this = this,
+ root = _this.get$_root();
+ if (root == null)
+ return null;
+ _this.set$_root(_this._splayMin$1(root));
+ return _this.get$_root();
+ },
+ get$_collection$_last: function() {
+ var _this = this,
+ root = _this.get$_root();
+ if (root == null)
+ return null;
+ _this.set$_root(_this._splayMax$1(root));
+ return _this.get$_root();
+ }
+ };
+ P.SplayTreeMap.prototype = {
+ $index: function(_, key) {
+ var _this = this;
+ if (!_this._validKey.call$1(key))
+ return null;
+ if (_this._root != null)
+ if (_this._splay$1(key) === 0)
+ return _this._root.value;
+ return null;
+ },
+ remove$1: function(_, key) {
+ var mapRoot;
+ if (!this._validKey.call$1(key))
+ return null;
+ mapRoot = this._remove$1(0, key);
+ if (mapRoot != null)
+ return mapRoot.value;
+ return null;
+ },
+ $indexSet: function(_, key, value) {
+ var comp, t1, _this = this;
+ if (key == null)
+ throw H.wrapException(P.ArgumentError$(key));
+ comp = _this._splay$1(key);
+ if (comp === 0) {
+ _this._root.value = value;
+ return;
+ }
+ t1 = _this.$ti;
+ _this._addNewRoot$2(new P._SplayTreeMapNode(value, key, t1._eval$1("@<1>")._bind$1(t1._rest[1])._eval$1("_SplayTreeMapNode<1,2>")), comp);
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ var comp, modificationCount, splayCount, value, t1, _this = this;
+ if (key == null)
+ throw H.wrapException(P.ArgumentError$(key));
+ comp = _this._splay$1(key);
+ if (comp === 0)
+ return _this._root.value;
+ modificationCount = _this._modificationCount;
+ splayCount = _this._splayCount;
+ value = ifAbsent.call$0();
+ if (modificationCount !== _this._modificationCount)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ if (splayCount !== _this._splayCount)
+ comp = _this._splay$1(key);
+ t1 = _this.$ti;
+ _this._addNewRoot$2(new P._SplayTreeMapNode(value, key, t1._eval$1("@<1>")._bind$1(t1._rest[1])._eval$1("_SplayTreeMapNode<1,2>")), comp);
+ return value;
+ },
+ get$isEmpty: function(_) {
+ return this._root == null;
+ },
+ get$isNotEmpty: function(_) {
+ return this._root != null;
+ },
+ forEach$1: function(_, f) {
+ var node, _this = this,
+ t1 = _this.$ti,
+ nodes = new P._SplayTreeNodeIterator(_this, H.setRuntimeTypeInfo([], t1._eval$1("JSArray<_SplayTreeMapNode<1,2>>")), _this._modificationCount, _this._splayCount, t1._eval$1("@<1>")._bind$1(t1._eval$1("_SplayTreeMapNode<1,2>"))._eval$1("_SplayTreeNodeIterator<1,2>"));
+ nodes._findLeftMostDescendent$1(_this._root);
+ for (; nodes.moveNext$0();) {
+ node = nodes.get$current(nodes);
+ f.call$2(node.key, node.value);
+ }
+ },
+ get$length: function(_) {
+ return this._count;
+ },
+ containsKey$1: function(_, key) {
+ return this._validKey.call$1(key) && this._splay$1(key) === 0;
+ },
+ get$keys: function(_) {
+ var t1 = this.$ti;
+ return new P._SplayTreeKeyIterable(this, t1._eval$1("@<1>")._bind$1(t1._eval$1("_SplayTreeMapNode<1,2>"))._eval$1("_SplayTreeKeyIterable<1,2>"));
+ },
+ get$values: function(_) {
+ var t1 = this.$ti;
+ return new P._SplayTreeValueIterable(this, t1._eval$1("@<1>")._bind$1(t1._rest[1])._eval$1("_SplayTreeValueIterable<1,2>"));
+ },
+ firstKey$0: function() {
+ if (this._root == null)
+ return null;
+ return this.get$_collection$_first().key;
+ },
+ lastKey$0: function() {
+ if (this._root == null)
+ return null;
+ return this.get$_collection$_last().key;
+ },
+ $isMap: 1,
+ get$_root: function() {
+ return this._root;
+ },
+ get$_compare: function() {
+ return this._compare;
+ },
+ set$_root: function(val) {
+ return this._root = val;
+ }
+ };
+ P.SplayTreeMap_closure.prototype = {
+ call$1: function(v) {
+ return this.K._is(v);
+ },
+ $signature: 55
+ };
+ P._SplayTreeIterator.prototype = {
+ get$current: function(_) {
+ var node = this._currentNode;
+ if (node == null)
+ return null;
+ return this._getValue$1(node);
+ },
+ _findLeftMostDescendent$1: function(node) {
+ var t1;
+ for (t1 = this._workList; node != null;) {
+ t1.push(node);
+ node = node.left;
+ }
+ },
+ moveNext$0: function() {
+ var t2, t3, _this = this,
+ t1 = _this._tree;
+ if (_this._modificationCount !== t1._modificationCount)
+ throw H.wrapException(P.ConcurrentModificationError$(t1));
+ t2 = _this._workList;
+ if (t2.length === 0) {
+ _this._currentNode = null;
+ return false;
+ }
+ if (t1._splayCount !== _this._splayCount && _this._currentNode != null) {
+ t3 = _this._currentNode;
+ t3.toString;
+ C.JSArray_methods.set$length(t2, 0);
+ t1._splay$1(t3.key);
+ _this._findLeftMostDescendent$1(t1.get$_root().right);
+ }
+ t1 = t2.pop();
+ _this._currentNode = t1;
+ _this._findLeftMostDescendent$1(t1.right);
+ return true;
+ }
+ };
+ P._SplayTreeKeyIterable.prototype = {
+ get$length: function(_) {
+ return this._tree._count;
+ },
+ get$isEmpty: function(_) {
+ return this._tree._count === 0;
+ },
+ get$iterator: function(_) {
+ var t1 = this.$ti;
+ return P._SplayTreeKeyIterator$(this._tree, t1._precomputed1, t1._rest[1]);
+ },
+ toSet$0: function(_) {
+ var t1 = this._tree,
+ t2 = this.$ti,
+ set = P.SplayTreeSet$(t1._compare, t1._validKey, t2._precomputed1);
+ set._count = t1._count;
+ set._root = set._copyNode$1$1(t1._root, t2._rest[1]);
+ return set;
+ }
+ };
+ P._SplayTreeValueIterable.prototype = {
+ get$length: function(_) {
+ return this._collection$_map._count;
+ },
+ get$isEmpty: function(_) {
+ return this._collection$_map._count === 0;
+ },
+ get$iterator: function(_) {
+ var t1 = this._collection$_map,
+ t2 = this.$ti;
+ t2 = t2._eval$1("@<1>")._bind$1(t2._rest[1]);
+ t2 = new P._SplayTreeValueIterator(t1, H.setRuntimeTypeInfo([], t2._eval$1("JSArray<_SplayTreeMapNode<1,2>>")), t1._modificationCount, t1._splayCount, t2._eval$1("_SplayTreeValueIterator<1,2>"));
+ t2._findLeftMostDescendent$1(t1._root);
+ return t2;
+ }
+ };
+ P._SplayTreeKeyIterator.prototype = {
+ _getValue$1: function(node) {
+ return node.key;
+ }
+ };
+ P._SplayTreeValueIterator.prototype = {
+ _getValue$1: function(node) {
+ return node.value;
+ }
+ };
+ P._SplayTreeNodeIterator.prototype = {
+ _getValue$1: function(node) {
+ return node;
+ }
+ };
+ P.SplayTreeSet.prototype = {
+ get$iterator: function(_) {
+ var t1 = this.$ti;
+ return P._SplayTreeKeyIterator$(this, t1._precomputed1, t1._eval$1("_SplayTreeSetNode<1>"));
+ },
+ get$length: function(_) {
+ return this._count;
+ },
+ get$isEmpty: function(_) {
+ return this._root == null;
+ },
+ get$isNotEmpty: function(_) {
+ return this._root != null;
+ },
+ get$first: function(_) {
+ if (this._count === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ return this.get$_collection$_first().key;
+ },
+ get$last: function(_) {
+ if (this._count === 0)
+ throw H.wrapException(H.IterableElementError_noElement());
+ return this.get$_collection$_last().key;
+ },
+ contains$1: function(_, element) {
+ return this._validKey.call$1(element) && this._splay$1(this.$ti._precomputed1._as(element)) === 0;
+ },
+ add$1: function(_, element) {
+ var compare = this._splay$1(element);
+ if (compare === 0)
+ return false;
+ this._addNewRoot$2(new P._SplayTreeSetNode(element, this.$ti._eval$1("_SplayTreeSetNode<1>")), compare);
+ return true;
+ },
+ remove$1: function(_, object) {
+ if (!this._validKey.call$1(object))
+ return false;
+ return this._remove$1(0, this.$ti._precomputed1._as(object)) != null;
+ },
+ addAll$1: function(_, elements) {
+ var t1, t2, element, compare;
+ for (t1 = J.get$iterator$ax(elements), t2 = this.$ti._eval$1("_SplayTreeSetNode<1>"); t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ compare = this._splay$1(element);
+ if (compare !== 0)
+ this._addNewRoot$2(new P._SplayTreeSetNode(element, t2), compare);
+ }
+ },
+ intersection$1: function(_, other) {
+ var element, _this = this,
+ t1 = _this.$ti,
+ t2 = t1._precomputed1,
+ result = P.SplayTreeSet$(_this._compare, _this._validKey, t2);
+ for (t1 = P._SplayTreeKeyIterator$(_this, t2, t1._eval$1("_SplayTreeSetNode<1>")); t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ if (other.contains$1(0, element))
+ result.add$1(0, element);
+ }
+ return result;
+ },
+ _copyNode$1$1: function(node, $Node) {
+ var result;
+ if (node == null)
+ return null;
+ result = new P._SplayTreeSetNode(node.key, this.$ti._eval$1("_SplayTreeSetNode<1>"));
+ new P.SplayTreeSet__copyNode_copyChildren(this, $Node).call$2(node, result);
+ return result;
+ },
+ toSet$0: function(_) {
+ var _this = this,
+ t1 = _this.$ti,
+ set = P.SplayTreeSet$(_this._compare, _this._validKey, t1._precomputed1);
+ set._count = _this._count;
+ set._root = _this._copyNode$1$1(_this._root, t1._eval$1("_SplayTreeSetNode<1>"));
+ return set;
+ },
+ toString$0: function(_) {
+ return P.IterableBase_iterableToFullString(this, "{", "}");
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isSet: 1,
+ get$_root: function() {
+ return this._root;
+ },
+ get$_compare: function() {
+ return this._compare;
+ },
+ set$_root: function(val) {
+ return this._root = val;
+ }
+ };
+ P.SplayTreeSet_closure.prototype = {
+ call$1: function(v) {
+ return this.E._is(v);
+ },
+ $signature: 55
+ };
+ P.SplayTreeSet__copyNode_copyChildren.prototype = {
+ call$2: function(node, dest) {
+ var left, right, newLeft, t2, newRight,
+ t1 = this.$this.$ti._eval$1("_SplayTreeSetNode<1>");
+ do {
+ left = node.left;
+ right = node.right;
+ if (left != null) {
+ newLeft = new P._SplayTreeSetNode(left.key, t1);
+ dest.left = newLeft;
+ this.call$2(left, newLeft);
+ }
+ t2 = right != null;
+ if (t2) {
+ newRight = new P._SplayTreeSetNode(right.key, t1);
+ dest.right = newRight;
+ dest = newRight;
+ node = right;
+ }
+ } while (t2);
+ },
+ $signature: function() {
+ return this.$this.$ti._bind$1(this.Node)._eval$1("~(1,_SplayTreeSetNode<2>)");
+ }
+ };
+ P._ListBase_Object_ListMixin.prototype = {};
+ P._SplayTreeMap__SplayTree_MapMixin.prototype = {};
+ P._SplayTreeSet__SplayTree_IterableMixin.prototype = {};
+ P._SplayTreeSet__SplayTree_IterableMixin_SetMixin.prototype = {};
+ P._UnmodifiableMapView_MapView__UnmodifiableMapMixin.prototype = {};
+ P.__SetBase_Object_SetMixin.prototype = {};
+ P._JsonMap.prototype = {
+ $index: function(_, key) {
+ var result,
+ t1 = this._processed;
+ if (t1 == null)
+ return this._data.$index(0, key);
+ else if (typeof key != "string")
+ return null;
+ else {
+ result = t1[key];
+ return typeof result == "undefined" ? this._process$1(key) : result;
+ }
+ },
+ get$length: function(_) {
+ var t1;
+ if (this._processed == null) {
+ t1 = this._data;
+ t1 = t1.get$length(t1);
+ } else
+ t1 = this._computeKeys$0().length;
+ return t1;
+ },
+ get$isEmpty: function(_) {
+ return this.get$length(this) === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this.get$length(this) > 0;
+ },
+ get$keys: function(_) {
+ var t1;
+ if (this._processed == null) {
+ t1 = this._data;
+ return t1.get$keys(t1);
+ }
+ return new P._JsonMapKeyIterable(this);
+ },
+ get$values: function(_) {
+ var t1, _this = this;
+ if (_this._processed == null) {
+ t1 = _this._data;
+ return t1.get$values(t1);
+ }
+ return H.MappedIterable_MappedIterable(_this._computeKeys$0(), new P._JsonMap_values_closure(_this), type$.String, type$.dynamic);
+ },
+ $indexSet: function(_, key, value) {
+ var processed, original, _this = this;
+ if (_this._processed == null)
+ _this._data.$indexSet(0, key, value);
+ else if (_this.containsKey$1(0, key)) {
+ processed = _this._processed;
+ processed[key] = value;
+ original = _this._original;
+ if (original == null ? processed != null : original !== processed)
+ original[key] = null;
+ } else
+ _this._upgrade$0().$indexSet(0, key, value);
+ },
+ containsKey$1: function(_, key) {
+ if (this._processed == null)
+ return this._data.containsKey$1(0, key);
+ if (typeof key != "string")
+ return false;
+ return Object.prototype.hasOwnProperty.call(this._original, key);
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ var value;
+ if (this.containsKey$1(0, key))
+ return this.$index(0, key);
+ value = ifAbsent.call$0();
+ this.$indexSet(0, key, value);
+ return value;
+ },
+ remove$1: function(_, key) {
+ if (this._processed != null && !this.containsKey$1(0, key))
+ return null;
+ return this._upgrade$0().remove$1(0, key);
+ },
+ forEach$1: function(_, f) {
+ var keys, i, key, value, _this = this;
+ if (_this._processed == null)
+ return _this._data.forEach$1(0, f);
+ keys = _this._computeKeys$0();
+ for (i = 0; i < keys.length; ++i) {
+ key = keys[i];
+ value = _this._processed[key];
+ if (typeof value == "undefined") {
+ value = P._convertJsonToDartLazy(_this._original[key]);
+ _this._processed[key] = value;
+ }
+ f.call$2(key, value);
+ if (keys !== _this._data)
+ throw H.wrapException(P.ConcurrentModificationError$(_this));
+ }
+ },
+ _computeKeys$0: function() {
+ var keys = this._data;
+ if (keys == null)
+ keys = this._data = H.setRuntimeTypeInfo(Object.keys(this._original), type$.JSArray_String);
+ return keys;
+ },
+ _upgrade$0: function() {
+ var result, keys, i, t1, key, _this = this;
+ if (_this._processed == null)
+ return _this._data;
+ result = P.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic);
+ keys = _this._computeKeys$0();
+ for (i = 0; t1 = keys.length, i < t1; ++i) {
+ key = keys[i];
+ result.$indexSet(0, key, _this.$index(0, key));
+ }
+ if (t1 === 0)
+ keys.push("");
+ else
+ C.JSArray_methods.set$length(keys, 0);
+ _this._original = _this._processed = null;
+ return _this._data = result;
+ },
+ _process$1: function(key) {
+ var result;
+ if (!Object.prototype.hasOwnProperty.call(this._original, key))
+ return null;
+ result = P._convertJsonToDartLazy(this._original[key]);
+ return this._processed[key] = result;
+ }
+ };
+ P._JsonMap_values_closure.prototype = {
+ call$1: function(each) {
+ return this.$this.$index(0, each);
+ },
+ $signature: 118
+ };
+ P._JsonMapKeyIterable.prototype = {
+ get$length: function(_) {
+ var t1 = this._parent;
+ return t1.get$length(t1);
+ },
+ elementAt$1: function(_, index) {
+ var t1 = this._parent;
+ return t1._processed == null ? t1.get$keys(t1).elementAt$1(0, index) : t1._computeKeys$0()[index];
+ },
+ get$iterator: function(_) {
+ var t1 = this._parent;
+ if (t1._processed == null) {
+ t1 = t1.get$keys(t1);
+ t1 = t1.get$iterator(t1);
+ } else {
+ t1 = t1._computeKeys$0();
+ t1 = new J.ArrayIterator(t1, t1.length);
+ }
+ return t1;
+ },
+ contains$1: function(_, key) {
+ return this._parent.containsKey$1(0, key);
+ }
+ };
+ P.Utf8Decoder_closure.prototype = {
+ call$0: function() {
+ var t1, exception;
+ try {
+ t1 = new TextDecoder("utf-8", {fatal: true});
+ return t1;
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ return null;
+ },
+ $signature: 13
+ };
+ P.Utf8Decoder_closure0.prototype = {
+ call$0: function() {
+ var t1, exception;
+ try {
+ t1 = new TextDecoder("utf-8", {fatal: false});
+ return t1;
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ return null;
+ },
+ $signature: 13
+ };
+ P.AsciiCodec.prototype = {
+ get$name: function(_) {
+ return "us-ascii";
+ },
+ encode$1: function(source) {
+ return C.AsciiEncoder_127.convert$1(source);
+ },
+ decode$1: function(_, bytes) {
+ var t1 = C.AsciiDecoder_false_127.convert$1(bytes);
+ return t1;
+ },
+ get$encoder: function() {
+ return C.AsciiEncoder_127;
+ }
+ };
+ P._UnicodeSubsetEncoder.prototype = {
+ convert$1: function(string) {
+ var $length, result, t1, t2, i, codeUnit,
+ end = P.RangeError_checkValidRange(0, null, string.length);
+ if (end == null)
+ throw H.wrapException(P.RangeError$("Invalid range"));
+ $length = end - 0;
+ result = new Uint8Array($length);
+ for (t1 = ~this._subsetMask, t2 = J.getInterceptor$s(string), i = 0; i < $length; ++i) {
+ codeUnit = t2._codeUnitAt$1(string, i);
+ if ((codeUnit & t1) !== 0)
+ throw H.wrapException(P.ArgumentError$value(string, "string", "Contains invalid characters."));
+ result[i] = codeUnit;
+ }
+ return result;
+ }
+ };
+ P.AsciiEncoder.prototype = {};
+ P._UnicodeSubsetDecoder.prototype = {
+ convert$1: function(bytes) {
+ var t2, i, byte,
+ t1 = J.getInterceptor$asx(bytes),
+ end = P.RangeError_checkValidRange(0, null, t1.get$length(bytes));
+ if (end == null)
+ throw H.wrapException(P.RangeError$("Invalid range"));
+ for (t2 = ~this._subsetMask, i = 0; i < end; ++i) {
+ byte = t1.$index(bytes, i);
+ if ((byte & t2) !== 0) {
+ if (!this._allowInvalid)
+ throw H.wrapException(P.FormatException$("Invalid value in input: " + byte, null, null));
+ return this._convertInvalid$3(bytes, 0, end);
+ }
+ }
+ return P.String_String$fromCharCodes(bytes, 0, end);
+ },
+ _convertInvalid$3: function(bytes, start, end) {
+ var t1, t2, i, t3, value;
+ for (t1 = ~this._subsetMask, t2 = J.getInterceptor$asx(bytes), i = start, t3 = ""; i < end; ++i) {
+ value = t2.$index(bytes, i);
+ t3 += H.Primitives_stringFromCharCode((value & t1) !== 0 ? 65533 : value);
+ }
+ return t3.charCodeAt(0) == 0 ? t3 : t3;
+ }
+ };
+ P.AsciiDecoder.prototype = {};
+ P.Base64Codec.prototype = {
+ get$encoder: function() {
+ return C.C_Base64Encoder;
+ },
+ normalize$3: function(_, source, start, end) {
+ var inverseAlphabet, t1, i, sliceStart, buffer, firstPadding, firstPaddingSourceIndex, paddingCount, i0, char, i1, char0, value, t2, endLength, $length,
+ _s31_ = "Invalid base64 encoding length ";
+ end = P.RangeError_checkValidRange(start, end, source.length);
+ if (end == null)
+ throw H.wrapException(P.RangeError$("Invalid range"));
+ inverseAlphabet = $.$get$_Base64Decoder__inverseAlphabet();
+ for (t1 = J.getInterceptor$asx(source), i = start, sliceStart = i, buffer = null, firstPadding = -1, firstPaddingSourceIndex = -1, paddingCount = 0; i < end; i = i0) {
+ i0 = i + 1;
+ char = t1._codeUnitAt$1(source, i);
+ if (char === 37) {
+ i1 = i0 + 2;
+ if (i1 <= end) {
+ char0 = H.parseHexByte(source, i0);
+ if (char0 === 37)
+ char0 = -1;
+ i0 = i1;
+ } else
+ char0 = -1;
+ } else
+ char0 = char;
+ if (0 <= char0 && char0 <= 127) {
+ value = inverseAlphabet[char0];
+ if (value >= 0) {
+ char0 = C.JSString_methods.codeUnitAt$1(string$.ABCDEF, value);
+ if (char0 === char)
+ continue;
+ char = char0;
+ } else {
+ if (value === -1) {
+ if (firstPadding < 0) {
+ t2 = buffer == null ? null : buffer._contents.length;
+ if (t2 == null)
+ t2 = 0;
+ firstPadding = t2 + (i - sliceStart);
+ firstPaddingSourceIndex = i;
+ }
+ ++paddingCount;
+ if (char === 61)
+ continue;
+ }
+ char = char0;
+ }
+ if (value !== -2) {
+ if (buffer == null) {
+ buffer = new P.StringBuffer("");
+ t2 = buffer;
+ } else
+ t2 = buffer;
+ t2._contents += C.JSString_methods.substring$2(source, sliceStart, i);
+ t2._contents += H.Primitives_stringFromCharCode(char);
+ sliceStart = i0;
+ continue;
+ }
+ }
+ throw H.wrapException(P.FormatException$("Invalid base64 data", source, i));
+ }
+ if (buffer != null) {
+ t1 = buffer._contents += t1.substring$2(source, sliceStart, end);
+ t2 = t1.length;
+ if (firstPadding >= 0)
+ P.Base64Codec__checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, t2);
+ else {
+ endLength = C.JSInt_methods.$mod(t2 - 1, 4) + 1;
+ if (endLength === 1)
+ throw H.wrapException(P.FormatException$(_s31_, source, end));
+ for (; endLength < 4;) {
+ t1 += "=";
+ buffer._contents = t1;
+ ++endLength;
+ }
+ }
+ t1 = buffer._contents;
+ return C.JSString_methods.replaceRange$3(source, start, end, t1.charCodeAt(0) == 0 ? t1 : t1);
+ }
+ $length = end - start;
+ if (firstPadding >= 0)
+ P.Base64Codec__checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, $length);
+ else {
+ endLength = C.JSInt_methods.$mod($length, 4);
+ if (endLength === 1)
+ throw H.wrapException(P.FormatException$(_s31_, source, end));
+ if (endLength > 1)
+ source = t1.replaceRange$3(source, end, end, endLength === 2 ? "==" : "=");
+ }
+ return source;
+ }
+ };
+ P.Base64Encoder.prototype = {
+ convert$1: function(input) {
+ var t1;
+ input.toString;
+ t1 = J.getInterceptor$asx(input);
+ if (t1.get$length(input) === 0)
+ return "";
+ t1 = new P._Base64Encoder(string$.ABCDEF).encode$4(input, 0, t1.get$length(input), true);
+ t1.toString;
+ return P.String_String$fromCharCodes(t1, 0, null);
+ }
+ };
+ P._Base64Encoder.prototype = {
+ encode$4: function(bytes, start, end, isLast) {
+ var output, _this = this,
+ byteCount = (_this._convert$_state & 3) + (end - start),
+ fullChunks = C.JSInt_methods._tdivFast$1(byteCount, 3),
+ bufferLength = fullChunks * 4;
+ if (byteCount - fullChunks * 3 > 0)
+ bufferLength += 4;
+ output = new Uint8Array(bufferLength);
+ _this._convert$_state = P._Base64Encoder_encodeChunk(_this._alphabet, bytes, start, end, true, output, 0, _this._convert$_state);
+ if (bufferLength > 0)
+ return output;
+ return null;
+ }
+ };
+ P.ByteConversionSink.prototype = {};
+ P.ByteConversionSinkBase.prototype = {};
+ P._ByteCallbackSink.prototype = {
+ add$1: function(_, chunk) {
+ var v, grown, _this = this,
+ t1 = _this._convert$_buffer,
+ t2 = _this._bufferIndex,
+ t3 = J.getInterceptor$asx(chunk);
+ if (t3.get$length(chunk) > t1.length - t2) {
+ t1 = _this._convert$_buffer;
+ v = t3.get$length(chunk) + t1.length - 1;
+ v |= C.JSInt_methods._shrOtherPositive$1(v, 1);
+ v |= v >>> 2;
+ v |= v >>> 4;
+ v |= v >>> 8;
+ grown = new Uint8Array((((v | v >>> 16) >>> 0) + 1) * 2);
+ t1 = _this._convert$_buffer;
+ C.NativeUint8List_methods.setRange$3(grown, 0, t1.length, t1);
+ _this._convert$_buffer = grown;
+ }
+ t1 = _this._convert$_buffer;
+ t2 = _this._bufferIndex;
+ C.NativeUint8List_methods.setRange$3(t1, t2, t2 + t3.get$length(chunk), chunk);
+ _this._bufferIndex = _this._bufferIndex + t3.get$length(chunk);
+ },
+ close$0: function(_) {
+ this._convert$_callback.call$1(C.NativeUint8List_methods.sublist$2(this._convert$_buffer, 0, this._bufferIndex));
+ }
+ };
+ P.ChunkedConversionSink.prototype = {};
+ P.Codec.prototype = {
+ encode$1: function(input) {
+ return this.get$encoder().convert$1(input);
+ }
+ };
+ P.Converter.prototype = {};
+ P.Encoding.prototype = {};
+ P.JsonUnsupportedObjectError.prototype = {
+ toString$0: function(_) {
+ var safeString = P.Error_safeToString(this.unsupportedObject);
+ return (this.cause != null ? "Converting object to an encodable object failed:" : "Converting object did not return an encodable object:") + " " + safeString;
+ }
+ };
+ P.JsonCyclicError.prototype = {
+ toString$0: function(_) {
+ return "Cyclic error in JSON stringify";
+ }
+ };
+ P.JsonCodec.prototype = {
+ decode$1: function(_, source) {
+ var t1 = P._parseJson(source, this.get$decoder()._reviver);
+ return t1;
+ },
+ encode$2$toEncodable: function(value, toEncodable) {
+ if (toEncodable == null)
+ toEncodable = null;
+ if (toEncodable == null)
+ return P._JsonStringStringifier_stringify(value, this.get$encoder()._toEncodable, null);
+ return P._JsonStringStringifier_stringify(value, toEncodable, null);
+ },
+ encode$1: function(value) {
+ return this.encode$2$toEncodable(value, null);
+ },
+ get$encoder: function() {
+ return C.JsonEncoder_null;
+ },
+ get$decoder: function() {
+ return C.JsonDecoder_null;
+ }
+ };
+ P.JsonEncoder.prototype = {
+ convert$1: function(object) {
+ var t1,
+ output = new P.StringBuffer(""),
+ stringifier = P._JsonStringStringifier$(output, this._toEncodable);
+ stringifier.writeObject$1(object);
+ t1 = output._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ P.JsonDecoder.prototype = {
+ convert$1: function(input) {
+ return P._parseJson(input, this._reviver);
+ }
+ };
+ P._JsonStringifier.prototype = {
+ writeStringContent$1: function(s) {
+ var t1, t2, offset, i, charCode, t3, t4,
+ $length = s.length;
+ for (t1 = J.getInterceptor$s(s), t2 = this._sink, offset = 0, i = 0; i < $length; ++i) {
+ charCode = t1._codeUnitAt$1(s, i);
+ if (charCode > 92) {
+ if (charCode >= 55296) {
+ t3 = charCode & 64512;
+ if (t3 === 55296) {
+ t4 = i + 1;
+ t4 = !(t4 < $length && (C.JSString_methods._codeUnitAt$1(s, t4) & 64512) === 56320);
+ } else
+ t4 = false;
+ if (!t4)
+ if (t3 === 56320) {
+ t3 = i - 1;
+ t3 = !(t3 >= 0 && (C.JSString_methods.codeUnitAt$1(s, t3) & 64512) === 55296);
+ } else
+ t3 = false;
+ else
+ t3 = true;
+ if (t3) {
+ if (i > offset)
+ t2._contents += C.JSString_methods.substring$2(s, offset, i);
+ offset = i + 1;
+ t2._contents += H.Primitives_stringFromCharCode(92);
+ t2._contents += H.Primitives_stringFromCharCode(117);
+ t2._contents += H.Primitives_stringFromCharCode(100);
+ t3 = charCode >>> 8 & 15;
+ t2._contents += H.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3);
+ t3 = charCode >>> 4 & 15;
+ t2._contents += H.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3);
+ t3 = charCode & 15;
+ t2._contents += H.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3);
+ }
+ }
+ continue;
+ }
+ if (charCode < 32) {
+ if (i > offset)
+ t2._contents += C.JSString_methods.substring$2(s, offset, i);
+ offset = i + 1;
+ t2._contents += H.Primitives_stringFromCharCode(92);
+ switch (charCode) {
+ case 8:
+ t2._contents += H.Primitives_stringFromCharCode(98);
+ break;
+ case 9:
+ t2._contents += H.Primitives_stringFromCharCode(116);
+ break;
+ case 10:
+ t2._contents += H.Primitives_stringFromCharCode(110);
+ break;
+ case 12:
+ t2._contents += H.Primitives_stringFromCharCode(102);
+ break;
+ case 13:
+ t2._contents += H.Primitives_stringFromCharCode(114);
+ break;
+ default:
+ t2._contents += H.Primitives_stringFromCharCode(117);
+ t2._contents += H.Primitives_stringFromCharCode(48);
+ t2._contents += H.Primitives_stringFromCharCode(48);
+ t3 = charCode >>> 4 & 15;
+ t2._contents += H.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3);
+ t3 = charCode & 15;
+ t2._contents += H.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3);
+ break;
+ }
+ } else if (charCode === 34 || charCode === 92) {
+ if (i > offset)
+ t2._contents += C.JSString_methods.substring$2(s, offset, i);
+ offset = i + 1;
+ t2._contents += H.Primitives_stringFromCharCode(92);
+ t2._contents += H.Primitives_stringFromCharCode(charCode);
+ }
+ }
+ if (offset === 0)
+ t2._contents += H.S(s);
+ else if (offset < $length)
+ t2._contents += t1.substring$2(s, offset, $length);
+ },
+ _checkCycle$1: function(object) {
+ var t1, t2, i, t3;
+ for (t1 = this._seen, t2 = t1.length, i = 0; i < t2; ++i) {
+ t3 = t1[i];
+ if (object == null ? t3 == null : object === t3)
+ throw H.wrapException(new P.JsonCyclicError(object, null));
+ }
+ t1.push(object);
+ },
+ writeObject$1: function(object) {
+ var customJson, e, t1, exception, _this = this;
+ if (_this.writeJsonValue$1(object))
+ return;
+ _this._checkCycle$1(object);
+ try {
+ customJson = _this._toEncodable.call$1(object);
+ if (!_this.writeJsonValue$1(customJson)) {
+ t1 = P.JsonUnsupportedObjectError$(object, null, _this.get$_partialResult());
+ throw H.wrapException(t1);
+ }
+ _this._seen.pop();
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ t1 = P.JsonUnsupportedObjectError$(object, e, _this.get$_partialResult());
+ throw H.wrapException(t1);
+ }
+ },
+ writeJsonValue$1: function(object) {
+ var t1, success, _this = this;
+ if (typeof object == "number") {
+ if (!isFinite(object))
+ return false;
+ _this._sink._contents += C.JSNumber_methods.toString$0(object);
+ return true;
+ } else if (object === true) {
+ _this._sink._contents += "true";
+ return true;
+ } else if (object === false) {
+ _this._sink._contents += "false";
+ return true;
+ } else if (object == null) {
+ _this._sink._contents += "null";
+ return true;
+ } else if (typeof object == "string") {
+ t1 = _this._sink;
+ t1._contents += '"';
+ _this.writeStringContent$1(object);
+ t1._contents += '"';
+ return true;
+ } else if (type$.List_dynamic._is(object)) {
+ _this._checkCycle$1(object);
+ _this.writeList$1(object);
+ _this._seen.pop();
+ return true;
+ } else if (type$.Map_dynamic_dynamic._is(object)) {
+ _this._checkCycle$1(object);
+ success = _this.writeMap$1(object);
+ _this._seen.pop();
+ return success;
+ } else
+ return false;
+ },
+ writeList$1: function(list) {
+ var t2, i,
+ t1 = this._sink;
+ t1._contents += "[";
+ t2 = J.getInterceptor$asx(list);
+ if (t2.get$isNotEmpty(list)) {
+ this.writeObject$1(t2.$index(list, 0));
+ for (i = 1; i < t2.get$length(list); ++i) {
+ t1._contents += ",";
+ this.writeObject$1(t2.$index(list, i));
+ }
+ }
+ t1._contents += "]";
+ },
+ writeMap$1: function(map) {
+ var t2, keyValueList, i, separator, _this = this, _box_0 = {},
+ t1 = J.getInterceptor$asx(map);
+ if (t1.get$isEmpty(map)) {
+ _this._sink._contents += "{}";
+ return true;
+ }
+ t2 = t1.get$length(map) * 2;
+ keyValueList = P.List_List$filled(t2, null, false, type$.nullable_Object);
+ i = _box_0.i = 0;
+ _box_0.allStringKeys = true;
+ t1.forEach$1(map, new P._JsonStringifier_writeMap_closure(_box_0, keyValueList));
+ if (!_box_0.allStringKeys)
+ return false;
+ t1 = _this._sink;
+ t1._contents += "{";
+ for (separator = '"'; i < t2; i += 2, separator = ',"') {
+ t1._contents += separator;
+ _this.writeStringContent$1(H._asStringS(keyValueList[i]));
+ t1._contents += '":';
+ _this.writeObject$1(keyValueList[i + 1]);
+ }
+ t1._contents += "}";
+ return true;
+ }
+ };
+ P._JsonStringifier_writeMap_closure.prototype = {
+ call$2: function(key, value) {
+ var t1, t2, t3, i;
+ if (typeof key != "string")
+ this._box_0.allStringKeys = false;
+ t1 = this.keyValueList;
+ t2 = this._box_0;
+ t3 = t2.i;
+ i = t2.i = t3 + 1;
+ t1[t3] = key;
+ t2.i = i + 1;
+ t1[i] = value;
+ },
+ $signature: 115
+ };
+ P._JsonStringStringifier.prototype = {
+ get$_partialResult: function() {
+ var t1 = this._sink._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ P.Latin1Codec.prototype = {
+ get$name: function(_) {
+ return "iso-8859-1";
+ },
+ encode$1: function(source) {
+ return C.Latin1Encoder_255.convert$1(source);
+ },
+ decode$1: function(_, bytes) {
+ var t1 = C.Latin1Decoder_false_255.convert$1(bytes);
+ return t1;
+ },
+ get$encoder: function() {
+ return C.Latin1Encoder_255;
+ }
+ };
+ P.Latin1Encoder.prototype = {};
+ P.Latin1Decoder.prototype = {};
+ P.Utf8Codec.prototype = {
+ get$name: function(_) {
+ return "utf-8";
+ },
+ decode$2$allowMalformed: function(_, codeUnits, allowMalformed) {
+ return (allowMalformed === true ? C.Utf8Decoder_true : C.Utf8Decoder_false).convert$1(codeUnits);
+ },
+ decode$1: function($receiver, codeUnits) {
+ return this.decode$2$allowMalformed($receiver, codeUnits, null);
+ },
+ get$encoder: function() {
+ return C.C_Utf8Encoder;
+ }
+ };
+ P.Utf8Encoder.prototype = {
+ convert$1: function(string) {
+ var $length, t1, encoder,
+ end = P.RangeError_checkValidRange(0, null, string.length);
+ if (end == null)
+ throw H.wrapException(P.RangeError$("Invalid range"));
+ $length = end - 0;
+ if ($length === 0)
+ return new Uint8Array(0);
+ t1 = new Uint8Array($length * 3);
+ encoder = new P._Utf8Encoder(t1);
+ if (encoder._fillBuffer$3(string, 0, end) !== end) {
+ J.codeUnitAt$1$s(string, end - 1);
+ encoder._writeReplacementCharacter$0();
+ }
+ return C.NativeUint8List_methods.sublist$2(t1, 0, encoder._bufferIndex);
+ }
+ };
+ P._Utf8Encoder.prototype = {
+ _writeReplacementCharacter$0: function() {
+ var _this = this,
+ t1 = _this._convert$_buffer,
+ t2 = _this._bufferIndex,
+ t3 = _this._bufferIndex = t2 + 1;
+ t1[t2] = 239;
+ t2 = _this._bufferIndex = t3 + 1;
+ t1[t3] = 191;
+ _this._bufferIndex = t2 + 1;
+ t1[t2] = 189;
+ },
+ _writeSurrogate$2: function(leadingSurrogate, nextCodeUnit) {
+ var rune, t1, t2, t3, _this = this;
+ if ((nextCodeUnit & 64512) === 56320) {
+ rune = 65536 + ((leadingSurrogate & 1023) << 10) | nextCodeUnit & 1023;
+ t1 = _this._convert$_buffer;
+ t2 = _this._bufferIndex;
+ t3 = _this._bufferIndex = t2 + 1;
+ t1[t2] = rune >>> 18 | 240;
+ t2 = _this._bufferIndex = t3 + 1;
+ t1[t3] = rune >>> 12 & 63 | 128;
+ t3 = _this._bufferIndex = t2 + 1;
+ t1[t2] = rune >>> 6 & 63 | 128;
+ _this._bufferIndex = t3 + 1;
+ t1[t3] = rune & 63 | 128;
+ return true;
+ } else {
+ _this._writeReplacementCharacter$0();
+ return false;
+ }
+ },
+ _fillBuffer$3: function(str, start, end) {
+ var t1, t2, stringIndex, codeUnit, t3, stringIndex0, t4, _this = this;
+ if (start !== end && (C.JSString_methods.codeUnitAt$1(str, end - 1) & 64512) === 55296)
+ --end;
+ for (t1 = _this._convert$_buffer, t2 = t1.length, stringIndex = start; stringIndex < end; ++stringIndex) {
+ codeUnit = C.JSString_methods._codeUnitAt$1(str, stringIndex);
+ if (codeUnit <= 127) {
+ t3 = _this._bufferIndex;
+ if (t3 >= t2)
+ break;
+ _this._bufferIndex = t3 + 1;
+ t1[t3] = codeUnit;
+ } else {
+ t3 = codeUnit & 64512;
+ if (t3 === 55296) {
+ if (_this._bufferIndex + 4 > t2)
+ break;
+ stringIndex0 = stringIndex + 1;
+ if (_this._writeSurrogate$2(codeUnit, C.JSString_methods._codeUnitAt$1(str, stringIndex0)))
+ stringIndex = stringIndex0;
+ } else if (t3 === 56320) {
+ if (_this._bufferIndex + 3 > t2)
+ break;
+ _this._writeReplacementCharacter$0();
+ } else if (codeUnit <= 2047) {
+ t3 = _this._bufferIndex;
+ t4 = t3 + 1;
+ if (t4 >= t2)
+ break;
+ _this._bufferIndex = t4;
+ t1[t3] = codeUnit >>> 6 | 192;
+ _this._bufferIndex = t4 + 1;
+ t1[t4] = codeUnit & 63 | 128;
+ } else {
+ t3 = _this._bufferIndex;
+ if (t3 + 2 >= t2)
+ break;
+ t4 = _this._bufferIndex = t3 + 1;
+ t1[t3] = codeUnit >>> 12 | 224;
+ t3 = _this._bufferIndex = t4 + 1;
+ t1[t4] = codeUnit >>> 6 & 63 | 128;
+ _this._bufferIndex = t3 + 1;
+ t1[t3] = codeUnit & 63 | 128;
+ }
+ }
+ }
+ return stringIndex;
+ }
+ };
+ P.Utf8Decoder.prototype = {
+ convert$1: function(codeUnits) {
+ var t1 = this._allowMalformed,
+ result = P.Utf8Decoder__convertIntercepted(t1, codeUnits, 0, null);
+ if (result != null)
+ return result;
+ return new P._Utf8Decoder(t1).convertGeneral$4(codeUnits, 0, null, true);
+ }
+ };
+ P._Utf8Decoder.prototype = {
+ convertGeneral$4: function(codeUnits, start, maybeEnd, single) {
+ var bytes, errorOffset, result, t1, message, _this = this,
+ end = P.RangeError_checkValidRange(start, maybeEnd, J.get$length$asx(codeUnits));
+ if (start === end)
+ return "";
+ if (type$.Uint8List._is(codeUnits)) {
+ bytes = codeUnits;
+ errorOffset = 0;
+ } else {
+ bytes = P._Utf8Decoder__makeUint8List(codeUnits, start, end);
+ end -= start;
+ errorOffset = start;
+ start = 0;
+ }
+ result = _this._convertRecursive$4(bytes, start, end, true);
+ t1 = _this._convert$_state;
+ if ((t1 & 1) !== 0) {
+ message = P._Utf8Decoder_errorDescription(t1);
+ _this._convert$_state = 0;
+ throw H.wrapException(P.FormatException$(message, codeUnits, errorOffset + _this._charOrIndex));
+ }
+ return result;
+ },
+ _convertRecursive$4: function(bytes, start, end, single) {
+ var mid, s1, _this = this;
+ if (end - start > 1000) {
+ mid = C.JSInt_methods._tdivFast$1(start + end, 2);
+ s1 = _this._convertRecursive$4(bytes, start, mid, false);
+ if ((_this._convert$_state & 1) !== 0)
+ return s1;
+ return s1 + _this._convertRecursive$4(bytes, mid, end, single);
+ }
+ return _this.decodeGeneral$4(bytes, start, end, single);
+ },
+ decodeGeneral$4: function(bytes, start, end, single) {
+ var t1, type, t2, i0, markEnd, i1, m, _this = this, _65533 = 65533,
+ state = _this._convert$_state,
+ char = _this._charOrIndex,
+ buffer = new P.StringBuffer(""),
+ i = start + 1,
+ byte = bytes[start];
+ $label0$0:
+ for (t1 = _this.allowMalformed; true;) {
+ for (; true; i = i0) {
+ type = C.JSString_methods._codeUnitAt$1("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE", byte) & 31;
+ char = state <= 32 ? byte & 61694 >>> type : (byte & 63 | char << 6) >>> 0;
+ state = C.JSString_methods._codeUnitAt$1(" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA", state + type);
+ if (state === 0) {
+ buffer._contents += H.Primitives_stringFromCharCode(char);
+ if (i === end)
+ break $label0$0;
+ break;
+ } else if ((state & 1) !== 0) {
+ if (t1)
+ switch (state) {
+ case 69:
+ case 67:
+ buffer._contents += H.Primitives_stringFromCharCode(_65533);
+ break;
+ case 65:
+ buffer._contents += H.Primitives_stringFromCharCode(_65533);
+ --i;
+ break;
+ default:
+ t2 = buffer._contents += H.Primitives_stringFromCharCode(_65533);
+ buffer._contents = t2 + H.Primitives_stringFromCharCode(_65533);
+ break;
+ }
+ else {
+ _this._convert$_state = state;
+ _this._charOrIndex = i - 1;
+ return "";
+ }
+ state = 0;
+ }
+ if (i === end)
+ break $label0$0;
+ i0 = i + 1;
+ byte = bytes[i];
+ }
+ i0 = i + 1;
+ byte = bytes[i];
+ if (byte < 128) {
+ while (true) {
+ if (!(i0 < end)) {
+ markEnd = end;
+ break;
+ }
+ i1 = i0 + 1;
+ byte = bytes[i0];
+ if (byte >= 128) {
+ markEnd = i1 - 1;
+ i0 = i1;
+ break;
+ }
+ i0 = i1;
+ }
+ if (markEnd - i < 20)
+ for (m = i; m < markEnd; ++m)
+ buffer._contents += H.Primitives_stringFromCharCode(bytes[m]);
+ else
+ buffer._contents += P.String_String$fromCharCodes(bytes, i, markEnd);
+ if (markEnd === end)
+ break $label0$0;
+ i = i0;
+ } else
+ i = i0;
+ }
+ if (single && state > 32)
+ if (t1)
+ buffer._contents += H.Primitives_stringFromCharCode(_65533);
+ else {
+ _this._convert$_state = 77;
+ _this._charOrIndex = end;
+ return "";
+ }
+ _this._convert$_state = state;
+ _this._charOrIndex = char;
+ t1 = buffer._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ P.NoSuchMethodError_toString_closure.prototype = {
+ call$2: function(key, value) {
+ var t3,
+ t1 = this.sb,
+ t2 = this._box_0;
+ t1._contents += t2.comma;
+ t3 = t1._contents += H.S(key.__internal$_name);
+ t1._contents = t3 + ": ";
+ t1._contents += P.Error_safeToString(value);
+ t2.comma = ", ";
+ },
+ $signature: 218
+ };
+ P.Comparable.prototype = {};
+ P.DateTime.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.DateTime && this._core$_value === other._core$_value && this.isUtc === other.isUtc;
+ },
+ compareTo$1: function(_, other) {
+ return C.JSInt_methods.compareTo$1(this._core$_value, other._core$_value);
+ },
+ get$hashCode: function(_) {
+ var t1 = this._core$_value;
+ return (t1 ^ C.JSInt_methods._shrOtherPositive$1(t1, 30)) & 1073741823;
+ },
+ toString$0: function(_) {
+ var _this = this,
+ y = P.DateTime__fourDigits(H.Primitives_getYear(_this)),
+ m = P.DateTime__twoDigits(H.Primitives_getMonth(_this)),
+ d = P.DateTime__twoDigits(H.Primitives_getDay(_this)),
+ h = P.DateTime__twoDigits(H.Primitives_getHours(_this)),
+ min = P.DateTime__twoDigits(H.Primitives_getMinutes(_this)),
+ sec = P.DateTime__twoDigits(H.Primitives_getSeconds(_this)),
+ ms = P.DateTime__threeDigits(H.Primitives_getMilliseconds(_this));
+ if (_this.isUtc)
+ return y + "-" + m + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms + "Z";
+ else
+ return y + "-" + m + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms;
+ },
+ $isComparable: 1
+ };
+ P.Duration.prototype = {
+ $add: function(_, other) {
+ return new P.Duration(this._duration + other._duration);
+ },
+ $sub: function(_, other) {
+ return new P.Duration(this._duration - other._duration);
+ },
+ $mul: function(_, factor) {
+ return new P.Duration(C.JSNumber_methods.round$0(this._duration * factor));
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.Duration && this._duration === other._duration;
+ },
+ get$hashCode: function(_) {
+ return C.JSInt_methods.get$hashCode(this._duration);
+ },
+ compareTo$1: function(_, other) {
+ return C.JSInt_methods.compareTo$1(this._duration, other._duration);
+ },
+ toString$0: function(_) {
+ var twoDigitMinutes, twoDigitSeconds, sixDigitUs,
+ t1 = new P.Duration_toString_twoDigits(),
+ t2 = this._duration;
+ if (t2 < 0)
+ return "-" + new P.Duration(0 - t2).toString$0(0);
+ twoDigitMinutes = t1.call$1(C.JSInt_methods._tdivFast$1(t2, 60000000) % 60);
+ twoDigitSeconds = t1.call$1(C.JSInt_methods._tdivFast$1(t2, 1000000) % 60);
+ sixDigitUs = new P.Duration_toString_sixDigits().call$1(t2 % 1000000);
+ return "" + C.JSInt_methods._tdivFast$1(t2, 3600000000) + ":" + H.S(twoDigitMinutes) + ":" + H.S(twoDigitSeconds) + "." + H.S(sixDigitUs);
+ },
+ $isComparable: 1
+ };
+ P.Duration_toString_sixDigits.prototype = {
+ call$1: function(n) {
+ if (n >= 100000)
+ return "" + n;
+ if (n >= 10000)
+ return "0" + n;
+ if (n >= 1000)
+ return "00" + n;
+ if (n >= 100)
+ return "000" + n;
+ if (n >= 10)
+ return "0000" + n;
+ return "00000" + n;
+ },
+ $signature: 120
+ };
+ P.Duration_toString_twoDigits.prototype = {
+ call$1: function(n) {
+ if (n >= 10)
+ return "" + n;
+ return "0" + n;
+ },
+ $signature: 120
+ };
+ P.Error.prototype = {
+ get$stackTrace: function() {
+ return H.getTraceFromException(this.$thrownJsError);
+ }
+ };
+ P.AssertionError.prototype = {
+ toString$0: function(_) {
+ var t1 = this.message;
+ if (t1 != null)
+ return "Assertion failed: " + P.Error_safeToString(t1);
+ return "Assertion failed";
+ },
+ get$message: function(receiver) {
+ return this.message;
+ }
+ };
+ P.TypeError.prototype = {};
+ P.NullThrownError.prototype = {
+ toString$0: function(_) {
+ return "Throw of null.";
+ }
+ };
+ P.ArgumentError.prototype = {
+ get$_errorName: function() {
+ return "Invalid argument" + (!this._hasValue ? "(s)" : "");
+ },
+ get$_errorExplanation: function() {
+ return "";
+ },
+ toString$0: function(_) {
+ var explanation, errorValue, _this = this,
+ $name = _this.name,
+ nameString = $name == null ? "" : " (" + $name + ")",
+ message = _this.message,
+ messageString = message == null ? "" : ": " + H.S(message),
+ prefix = _this.get$_errorName() + nameString + messageString;
+ if (!_this._hasValue)
+ return prefix;
+ explanation = _this.get$_errorExplanation();
+ errorValue = P.Error_safeToString(_this.invalidValue);
+ return prefix + explanation + ": " + errorValue;
+ },
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ P.RangeError.prototype = {
+ get$_errorName: function() {
+ return "RangeError";
+ },
+ get$_errorExplanation: function() {
+ var explanation,
+ start = this.start,
+ end = this.end;
+ if (start == null)
+ explanation = end != null ? ": Not less than or equal to " + H.S(end) : "";
+ else if (end == null)
+ explanation = ": Not greater than or equal to " + H.S(start);
+ else if (end > start)
+ explanation = ": Not in inclusive range " + H.S(start) + ".." + H.S(end);
+ else
+ explanation = end < start ? ": Valid value range is empty" : ": Only valid value is " + H.S(start);
+ return explanation;
+ }
+ };
+ P.IndexError.prototype = {
+ get$_errorName: function() {
+ return "RangeError";
+ },
+ get$_errorExplanation: function() {
+ if (this.invalidValue < 0)
+ return ": index must not be negative";
+ var t1 = this.length;
+ if (t1 === 0)
+ return ": no indices are valid";
+ return ": index should be less than " + H.S(t1);
+ },
+ get$length: function(receiver) {
+ return this.length;
+ }
+ };
+ P.NoSuchMethodError.prototype = {
+ toString$0: function(_) {
+ var $arguments, t1, _i, t2, t3, argument, receiverText, actualParameters, _this = this, _box_0 = {},
+ sb = new P.StringBuffer("");
+ _box_0.comma = "";
+ $arguments = _this._core$_arguments;
+ for (t1 = $arguments.length, _i = 0, t2 = "", t3 = ""; _i < t1; ++_i, t3 = ", ") {
+ argument = $arguments[_i];
+ sb._contents = t2 + t3;
+ t2 = sb._contents += P.Error_safeToString(argument);
+ _box_0.comma = ", ";
+ }
+ _this._namedArguments.forEach$1(0, new P.NoSuchMethodError_toString_closure(_box_0, sb));
+ receiverText = P.Error_safeToString(_this._core$_receiver);
+ actualParameters = sb.toString$0(0);
+ t1 = "NoSuchMethodError: method not found: '" + H.S(_this._memberName.__internal$_name) + "'\nReceiver: " + receiverText + "\nArguments: [" + actualParameters + "]";
+ return t1;
+ }
+ };
+ P.UnsupportedError.prototype = {
+ toString$0: function(_) {
+ return "Unsupported operation: " + this.message;
+ }
+ };
+ P.UnimplementedError.prototype = {
+ toString$0: function(_) {
+ var message = this.message;
+ return message != null ? "UnimplementedError: " + message : "UnimplementedError";
+ }
+ };
+ P.StateError.prototype = {
+ toString$0: function(_) {
+ return "Bad state: " + this.message;
+ }
+ };
+ P.ConcurrentModificationError.prototype = {
+ toString$0: function(_) {
+ var t1 = this.modifiedObject;
+ if (t1 == null)
+ return "Concurrent modification during iteration.";
+ return "Concurrent modification during iteration: " + P.Error_safeToString(t1) + ".";
+ }
+ };
+ P.OutOfMemoryError.prototype = {
+ toString$0: function(_) {
+ return "Out of Memory";
+ },
+ get$stackTrace: function() {
+ return null;
+ },
+ $isError: 1
+ };
+ P.StackOverflowError.prototype = {
+ toString$0: function(_) {
+ return "Stack Overflow";
+ },
+ get$stackTrace: function() {
+ return null;
+ },
+ $isError: 1
+ };
+ P.CyclicInitializationError.prototype = {
+ toString$0: function(_) {
+ var variableName = this.variableName;
+ return variableName == null ? "Reading static variable during its initialization" : "Reading static variable '" + variableName + "' during its initialization";
+ }
+ };
+ P._Exception.prototype = {
+ toString$0: function(_) {
+ return "Exception: " + this.message;
+ },
+ $isException: 1
+ };
+ P.FormatException.prototype = {
+ toString$0: function(_) {
+ var t1, lineNum, lineStart, previousCharWasCR, i, char, lineEnd, end, start, prefix, postfix, slice,
+ message = this.message,
+ report = message != null && "" !== message ? "FormatException: " + H.S(message) : "FormatException",
+ offset = this.offset,
+ source = this.source;
+ if (typeof source == "string") {
+ if (offset != null)
+ t1 = offset < 0 || offset > source.length;
+ else
+ t1 = false;
+ if (t1)
+ offset = null;
+ if (offset == null) {
+ if (source.length > 78)
+ source = C.JSString_methods.substring$2(source, 0, 75) + "...";
+ return report + "\n" + source;
+ }
+ for (lineNum = 1, lineStart = 0, previousCharWasCR = false, i = 0; i < offset; ++i) {
+ char = C.JSString_methods._codeUnitAt$1(source, i);
+ if (char === 10) {
+ if (lineStart !== i || !previousCharWasCR)
+ ++lineNum;
+ lineStart = i + 1;
+ previousCharWasCR = false;
+ } else if (char === 13) {
+ ++lineNum;
+ lineStart = i + 1;
+ previousCharWasCR = true;
+ }
+ }
+ report = lineNum > 1 ? report + (" (at line " + lineNum + ", character " + (offset - lineStart + 1) + ")\n") : report + (" (at character " + (offset + 1) + ")\n");
+ lineEnd = source.length;
+ for (i = offset; i < lineEnd; ++i) {
+ char = C.JSString_methods.codeUnitAt$1(source, i);
+ if (char === 10 || char === 13) {
+ lineEnd = i;
+ break;
+ }
+ }
+ if (lineEnd - lineStart > 78)
+ if (offset - lineStart < 75) {
+ end = lineStart + 75;
+ start = lineStart;
+ prefix = "";
+ postfix = "...";
+ } else {
+ if (lineEnd - offset < 75) {
+ start = lineEnd - 75;
+ end = lineEnd;
+ postfix = "";
+ } else {
+ start = offset - 36;
+ end = offset + 36;
+ postfix = "...";
+ }
+ prefix = "...";
+ }
+ else {
+ end = lineEnd;
+ start = lineStart;
+ prefix = "";
+ postfix = "";
+ }
+ slice = C.JSString_methods.substring$2(source, start, end);
+ return report + prefix + slice + postfix + "\n" + C.JSString_methods.$mul(" ", offset - start + prefix.length) + "^\n";
+ } else
+ return offset != null ? report + (" (at offset " + H.S(offset) + ")") : report;
+ },
+ $isException: 1,
+ get$message: function(receiver) {
+ return this.message;
+ },
+ get$source: function(receiver) {
+ return this.source;
+ },
+ get$offset: function(receiver) {
+ return this.offset;
+ }
+ };
+ P.Expando.prototype = {
+ $index: function(_, object) {
+ var t2, values,
+ t1 = this._jsWeakMapOrKey;
+ if (typeof t1 != "string") {
+ if (object != null)
+ t2 = typeof object == "number" || typeof object == "string";
+ else
+ t2 = true;
+ if (t2)
+ H.throwExpression(P.ArgumentError$value(object, "Expandos are not allowed on strings, numbers, booleans or null", null));
+ return t1.get(object);
+ }
+ values = H.Primitives_getProperty(object, "expando$values");
+ t1 = values == null ? null : H.Primitives_getProperty(values, t1);
+ return this.$ti._eval$1("1?")._as(t1);
+ },
+ toString$0: function(_) {
+ return "Expando:" + C.JSNull_methods.toString$0(null);
+ },
+ get$name: function() {
+ return null;
+ }
+ };
+ P.Iterable.prototype = {
+ cast$1$0: function(_, $R) {
+ return H.CastIterable_CastIterable(this, H._instanceType(this)._eval$1("Iterable.E"), $R);
+ },
+ followedBy$1: function(_, other) {
+ var _this = this,
+ t1 = H._instanceType(_this);
+ if (t1._eval$1("EfficientLengthIterable")._is(_this))
+ return H.FollowedByIterable_FollowedByIterable$firstEfficient(_this, other, t1._eval$1("Iterable.E"));
+ return new H.FollowedByIterable(_this, other, t1._eval$1("FollowedByIterable"));
+ },
+ map$1$1: function(_, f, $T) {
+ return H.MappedIterable_MappedIterable(this, f, H._instanceType(this)._eval$1("Iterable.E"), $T);
+ },
+ where$1: function(_, test) {
+ return new H.WhereIterable(this, test, H._instanceType(this)._eval$1("WhereIterable"));
+ },
+ contains$1: function(_, element) {
+ var t1;
+ for (t1 = this.get$iterator(this); t1.moveNext$0();)
+ if (J.$eq$(t1.get$current(t1), element))
+ return true;
+ return false;
+ },
+ forEach$1: function(_, f) {
+ var t1;
+ for (t1 = this.get$iterator(this); t1.moveNext$0();)
+ f.call$1(t1.get$current(t1));
+ },
+ join$1: function(_, separator) {
+ var t1,
+ iterator = this.get$iterator(this);
+ if (!iterator.moveNext$0())
+ return "";
+ if (separator === "") {
+ t1 = "";
+ do
+ t1 += H.S(J.toString$0$(iterator.get$current(iterator)));
+ while (iterator.moveNext$0());
+ } else {
+ t1 = H.S(J.toString$0$(iterator.get$current(iterator)));
+ for (; iterator.moveNext$0();)
+ t1 = t1 + separator + H.S(J.toString$0$(iterator.get$current(iterator)));
+ }
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ toList$1$growable: function(_, growable) {
+ return P.List_List$of(this, growable, H._instanceType(this)._eval$1("Iterable.E"));
+ },
+ toList$0: function($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
+ toSet$0: function(_) {
+ var t1 = P.LinkedHashSet_LinkedHashSet(H._instanceType(this)._eval$1("Iterable.E"));
+ t1.addAll$1(0, this);
+ return t1;
+ },
+ get$length: function(_) {
+ var count,
+ it = this.get$iterator(this);
+ for (count = 0; it.moveNext$0();)
+ ++count;
+ return count;
+ },
+ get$isEmpty: function(_) {
+ return !this.get$iterator(this).moveNext$0();
+ },
+ get$isNotEmpty: function(_) {
+ return !this.get$isEmpty(this);
+ },
+ take$1: function(_, count) {
+ return H.TakeIterable_TakeIterable(this, count, H._instanceType(this)._eval$1("Iterable.E"));
+ },
+ skip$1: function(_, count) {
+ return H.SkipIterable_SkipIterable(this, count, H._instanceType(this)._eval$1("Iterable.E"));
+ },
+ get$first: function(_) {
+ var it = this.get$iterator(this);
+ if (!it.moveNext$0())
+ throw H.wrapException(H.IterableElementError_noElement());
+ return it.get$current(it);
+ },
+ get$last: function(_) {
+ var result,
+ it = this.get$iterator(this);
+ if (!it.moveNext$0())
+ throw H.wrapException(H.IterableElementError_noElement());
+ do
+ result = it.get$current(it);
+ while (it.moveNext$0());
+ return result;
+ },
+ get$single: function(_) {
+ var result,
+ it = this.get$iterator(this);
+ if (!it.moveNext$0())
+ throw H.wrapException(H.IterableElementError_noElement());
+ result = it.get$current(it);
+ if (it.moveNext$0())
+ throw H.wrapException(H.IterableElementError_tooMany());
+ return result;
+ },
+ firstWhere$2$orElse: function(_, test, orElse) {
+ var t1, element;
+ for (t1 = this.get$iterator(this); t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ if (test.call$1(element))
+ return element;
+ }
+ return orElse.call$0();
+ },
+ elementAt$1: function(_, index) {
+ var t1, elementIndex, element;
+ P.RangeError_checkNotNegative(index, "index");
+ for (t1 = this.get$iterator(this), elementIndex = 0; t1.moveNext$0();) {
+ element = t1.get$current(t1);
+ if (index === elementIndex)
+ return element;
+ ++elementIndex;
+ }
+ throw H.wrapException(P.IndexError$(index, this, "index", null, elementIndex));
+ },
+ toString$0: function(_) {
+ return P.IterableBase_iterableToShortString(this, "(", ")");
+ }
+ };
+ P.Iterator.prototype = {};
+ P.MapEntry.prototype = {
+ toString$0: function(_) {
+ return "MapEntry(" + H.S(J.toString$0$(this.key)) + ": " + H.S(J.toString$0$(this.value)) + ")";
+ }
+ };
+ P.Null.prototype = {
+ get$hashCode: function(_) {
+ return P.Object.prototype.get$hashCode.call(C.JSNull_methods, this);
+ },
+ toString$0: function(_) {
+ return "null";
+ }
+ };
+ P.Object.prototype = {constructor: P.Object, $isObject: 1,
+ $eq: function(_, other) {
+ return this === other;
+ },
+ get$hashCode: function(_) {
+ return H.Primitives_objectHashCode(this);
+ },
+ toString$0: function(_) {
+ return "Instance of '" + H.S(H.Primitives_objectTypeName(this)) + "'";
+ },
+ noSuchMethod$1: function(_, invocation) {
+ throw H.wrapException(P.NoSuchMethodError$(this, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments()));
+ },
+ get$runtimeType: function(_) {
+ return H.getRuntimeType(this);
+ },
+ toString: function() {
+ return this.toString$0(this);
+ }
+ };
+ P._StringStackTrace.prototype = {
+ toString$0: function(_) {
+ return "";
+ },
+ $isStackTrace: 1
+ };
+ P.Stopwatch.prototype = {
+ get$elapsedMicroseconds: function() {
+ var ticks,
+ t1 = this._stop;
+ if (t1 == null)
+ t1 = $.Primitives_timerTicks.call$0();
+ ticks = t1 - this._core$_start;
+ if ($.$get$Stopwatch__frequency() === 1000000)
+ return ticks;
+ return ticks * 1000;
+ },
+ start$0: function(_) {
+ var _this = this,
+ $stop = _this._stop;
+ if ($stop != null) {
+ _this._core$_start = _this._core$_start + ($.Primitives_timerTicks.call$0() - $stop);
+ _this._stop = null;
+ }
+ },
+ stop$0: function(_) {
+ if (this._stop == null)
+ this._stop = $.Primitives_timerTicks.call$0();
+ }
+ };
+ P.Runes.prototype = {
+ get$iterator: function(_) {
+ return new P.RuneIterator(this.string);
+ },
+ get$last: function(_) {
+ var code, previousCode,
+ t1 = this.string,
+ t2 = t1.length;
+ if (t2 === 0)
+ throw H.wrapException(P.StateError$("No elements."));
+ code = C.JSString_methods.codeUnitAt$1(t1, t2 - 1);
+ if ((code & 64512) === 56320 && t2 > 1) {
+ previousCode = C.JSString_methods.codeUnitAt$1(t1, t2 - 2);
+ if ((previousCode & 64512) === 55296)
+ return P._combineSurrogatePair(previousCode, code);
+ }
+ return code;
+ }
+ };
+ P.RuneIterator.prototype = {
+ get$current: function(_) {
+ return this._currentCodePoint;
+ },
+ moveNext$0: function() {
+ var codeUnit, nextPosition, nextCodeUnit, _this = this,
+ t1 = _this._core$_position = _this._nextPosition,
+ t2 = _this.string,
+ t3 = t2.length;
+ if (t1 === t3) {
+ _this._currentCodePoint = -1;
+ return false;
+ }
+ codeUnit = C.JSString_methods._codeUnitAt$1(t2, t1);
+ nextPosition = t1 + 1;
+ if ((codeUnit & 64512) === 55296 && nextPosition < t3) {
+ nextCodeUnit = C.JSString_methods._codeUnitAt$1(t2, nextPosition);
+ if ((nextCodeUnit & 64512) === 56320) {
+ _this._nextPosition = nextPosition + 1;
+ _this._currentCodePoint = P._combineSurrogatePair(codeUnit, nextCodeUnit);
+ return true;
+ }
+ }
+ _this._nextPosition = nextPosition;
+ _this._currentCodePoint = codeUnit;
+ return true;
+ }
+ };
+ P.StringBuffer.prototype = {
+ get$length: function(_) {
+ return this._contents.length;
+ },
+ toString$0: function(_) {
+ var t1 = this._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ P.Uri__parseIPv4Address_error.prototype = {
+ call$2: function(msg, position) {
+ throw H.wrapException(P.FormatException$("Illegal IPv4 address, " + msg, this.host, position));
+ },
+ $signature: 216
+ };
+ P.Uri_parseIPv6Address_error.prototype = {
+ call$2: function(msg, position) {
+ throw H.wrapException(P.FormatException$("Illegal IPv6 address, " + msg, this.host, position));
+ },
+ call$1: function(msg) {
+ return this.call$2(msg, null);
+ },
+ $signature: 212
+ };
+ P.Uri_parseIPv6Address_parseHex.prototype = {
+ call$2: function(start, end) {
+ var value;
+ if (end - start > 4)
+ this.error.call$2("an IPv6 part can only contain a maximum of 4 hex digits", start);
+ value = P.int_parse(C.JSString_methods.substring$2(this.host, start, end), 16);
+ if (value < 0 || value > 65535)
+ this.error.call$2("each part must be in the range of `0x0..0xFFFF`", start);
+ return value;
+ },
+ $signature: 211
+ };
+ P._Uri.prototype = {
+ get$_text: function() {
+ var t1, t2, t3, t4, _this = this;
+ if (!_this.___Uri__text_isSet) {
+ t1 = _this.scheme;
+ t2 = t1.length !== 0 ? t1 + ":" : "";
+ t3 = _this._host;
+ t4 = t3 == null;
+ if (!t4 || t1 === "file") {
+ t1 = t2 + "//";
+ t2 = _this._userInfo;
+ if (t2.length !== 0)
+ t1 = t1 + t2 + "@";
+ if (!t4)
+ t1 += t3;
+ t2 = _this._port;
+ if (t2 != null)
+ t1 = t1 + ":" + H.S(t2);
+ } else
+ t1 = t2;
+ t1 += _this.path;
+ t2 = _this._query;
+ if (t2 != null)
+ t1 = t1 + "?" + t2;
+ t2 = _this._fragment;
+ if (t2 != null)
+ t1 = t1 + "#" + t2;
+ if (_this.___Uri__text_isSet)
+ throw H.wrapException(H.LateError$fieldADI("_text"));
+ _this.___Uri__text = t1.charCodeAt(0) == 0 ? t1 : t1;
+ _this.___Uri__text_isSet = true;
+ }
+ return _this.___Uri__text;
+ },
+ get$pathSegments: function() {
+ var pathToSplit, t1, _this = this;
+ if (!_this.___Uri_pathSegments_isSet) {
+ pathToSplit = _this.path;
+ if (pathToSplit.length !== 0 && C.JSString_methods._codeUnitAt$1(pathToSplit, 0) === 47)
+ pathToSplit = C.JSString_methods.substring$1(pathToSplit, 1);
+ t1 = pathToSplit.length === 0 ? C.List_empty0 : P.List_List$unmodifiable(new H.MappedListIterable(H.setRuntimeTypeInfo(pathToSplit.split("/"), type$.JSArray_String), P.core_Uri_decodeComponent$closure(), type$.MappedListIterable_String_dynamic), type$.String);
+ if (_this.___Uri_pathSegments_isSet)
+ throw H.wrapException(H.LateError$fieldADI("pathSegments"));
+ _this.___Uri_pathSegments = t1;
+ _this.___Uri_pathSegments_isSet = true;
+ }
+ return _this.___Uri_pathSegments;
+ },
+ get$hashCode: function(_) {
+ var t1, _this = this;
+ if (!_this.___Uri_hashCode_isSet) {
+ t1 = J.get$hashCode$(_this.get$_text());
+ if (_this.___Uri_hashCode_isSet)
+ throw H.wrapException(H.LateError$fieldADI("hashCode"));
+ _this.___Uri_hashCode = t1;
+ _this.___Uri_hashCode_isSet = true;
+ }
+ return _this.___Uri_hashCode;
+ },
+ get$userInfo: function() {
+ return this._userInfo;
+ },
+ get$host: function(_) {
+ var host = this._host;
+ if (host == null)
+ return "";
+ if (C.JSString_methods.startsWith$1(host, "["))
+ return C.JSString_methods.substring$2(host, 1, host.length - 1);
+ return host;
+ },
+ get$port: function(_) {
+ var t1 = this._port;
+ return t1 == null ? P._Uri__defaultPort(this.scheme) : t1;
+ },
+ get$query: function(_) {
+ var t1 = this._query;
+ return t1 == null ? "" : t1;
+ },
+ get$fragment: function() {
+ var t1 = this._fragment;
+ return t1 == null ? "" : t1;
+ },
+ _mergePaths$2: function(base, reference) {
+ var backCount, refStart, baseEnd, newEnd, delta, t1;
+ for (backCount = 0, refStart = 0; C.JSString_methods.startsWith$2(reference, "../", refStart);) {
+ refStart += 3;
+ ++backCount;
+ }
+ baseEnd = C.JSString_methods.lastIndexOf$1(base, "/");
+ while (true) {
+ if (!(baseEnd > 0 && backCount > 0))
+ break;
+ newEnd = C.JSString_methods.lastIndexOf$2(base, "/", baseEnd - 1);
+ if (newEnd < 0)
+ break;
+ delta = baseEnd - newEnd;
+ t1 = delta !== 2;
+ if (!t1 || delta === 3)
+ if (C.JSString_methods.codeUnitAt$1(base, newEnd + 1) === 46)
+ t1 = !t1 || C.JSString_methods.codeUnitAt$1(base, newEnd + 2) === 46;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ break;
+ --backCount;
+ baseEnd = newEnd;
+ }
+ return C.JSString_methods.replaceRange$3(base, baseEnd + 1, null, C.JSString_methods.substring$1(reference, refStart - 3 * backCount));
+ },
+ resolve$1: function(reference) {
+ return this.resolveUri$1(P.Uri_parse(reference));
+ },
+ resolveUri$1: function(reference) {
+ var targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, t1, mergedPath, t2, _this = this, _null = null;
+ if (reference.get$scheme().length !== 0) {
+ targetScheme = reference.get$scheme();
+ if (reference.get$hasAuthority()) {
+ targetUserInfo = reference.get$userInfo();
+ targetHost = reference.get$host(reference);
+ targetPort = reference.get$hasPort() ? reference.get$port(reference) : _null;
+ } else {
+ targetPort = _null;
+ targetHost = targetPort;
+ targetUserInfo = "";
+ }
+ targetPath = P._Uri__removeDotSegments(reference.get$path(reference));
+ targetQuery = reference.get$hasQuery() ? reference.get$query(reference) : _null;
+ } else {
+ targetScheme = _this.scheme;
+ if (reference.get$hasAuthority()) {
+ targetUserInfo = reference.get$userInfo();
+ targetHost = reference.get$host(reference);
+ targetPort = P._Uri__makePort(reference.get$hasPort() ? reference.get$port(reference) : _null, targetScheme);
+ targetPath = P._Uri__removeDotSegments(reference.get$path(reference));
+ targetQuery = reference.get$hasQuery() ? reference.get$query(reference) : _null;
+ } else {
+ targetUserInfo = _this._userInfo;
+ targetHost = _this._host;
+ targetPort = _this._port;
+ if (reference.get$path(reference) === "") {
+ targetPath = _this.path;
+ targetQuery = reference.get$hasQuery() ? reference.get$query(reference) : _this._query;
+ } else {
+ if (reference.get$hasAbsolutePath())
+ targetPath = P._Uri__removeDotSegments(reference.get$path(reference));
+ else {
+ t1 = _this.path;
+ if (t1.length === 0)
+ if (targetHost == null)
+ targetPath = targetScheme.length === 0 ? reference.get$path(reference) : P._Uri__removeDotSegments(reference.get$path(reference));
+ else
+ targetPath = P._Uri__removeDotSegments("/" + reference.get$path(reference));
+ else {
+ mergedPath = _this._mergePaths$2(t1, reference.get$path(reference));
+ t2 = targetScheme.length === 0;
+ if (!t2 || targetHost != null || C.JSString_methods.startsWith$1(t1, "/"))
+ targetPath = P._Uri__removeDotSegments(mergedPath);
+ else
+ targetPath = P._Uri__normalizeRelativePath(mergedPath, !t2 || targetHost != null);
+ }
+ }
+ targetQuery = reference.get$hasQuery() ? reference.get$query(reference) : _null;
+ }
+ }
+ }
+ return new P._Uri(targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, reference.get$hasFragment() ? reference.get$fragment() : _null);
+ },
+ get$hasScheme: function() {
+ return this.scheme.length !== 0;
+ },
+ get$hasAuthority: function() {
+ return this._host != null;
+ },
+ get$hasPort: function() {
+ return this._port != null;
+ },
+ get$hasQuery: function() {
+ return this._query != null;
+ },
+ get$hasFragment: function() {
+ return this._fragment != null;
+ },
+ get$hasAbsolutePath: function() {
+ return C.JSString_methods.startsWith$1(this.path, "/");
+ },
+ toFilePath$0: function() {
+ var pathSegments, _this = this,
+ t1 = _this.scheme;
+ if (t1 !== "" && t1 !== "file")
+ throw H.wrapException(P.UnsupportedError$("Cannot extract a file path from a " + t1 + " URI"));
+ if (_this.get$query(_this) !== "")
+ throw H.wrapException(P.UnsupportedError$(string$.Cannotefq));
+ if (_this.get$fragment() !== "")
+ throw H.wrapException(P.UnsupportedError$(string$.Cannoteff));
+ t1 = $.$get$_Uri__isWindowsCached();
+ if (t1)
+ t1 = P._Uri__toWindowsFilePath(_this);
+ else {
+ if (_this._host != null && _this.get$host(_this) !== "")
+ H.throwExpression(P.UnsupportedError$(string$.Cannoten));
+ pathSegments = _this.get$pathSegments();
+ P._Uri__checkNonWindowsPathReservedCharacters(pathSegments, false);
+ t1 = P.StringBuffer__writeAll(C.JSString_methods.startsWith$1(_this.path, "/") ? "/" : "", pathSegments, "/");
+ t1 = t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ return t1;
+ },
+ toString$0: function(_) {
+ return this.get$_text();
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ return type$.Uri._is(other) && _this.scheme === other.get$scheme() && _this._host != null === other.get$hasAuthority() && _this._userInfo === other.get$userInfo() && _this.get$host(_this) === other.get$host(other) && _this.get$port(_this) === other.get$port(other) && _this.path === other.get$path(other) && _this._query != null === other.get$hasQuery() && _this.get$query(_this) === other.get$query(other) && _this._fragment != null === other.get$hasFragment() && _this.get$fragment() === other.get$fragment();
+ },
+ $isUri: 1,
+ get$scheme: function() {
+ return this.scheme;
+ },
+ get$path: function(receiver) {
+ return this.path;
+ }
+ };
+ P.UriData.prototype = {
+ get$uri: function() {
+ var t2, queryIndex, end, query, _this = this, _null = null,
+ t1 = _this._uriCache;
+ if (t1 == null) {
+ t1 = _this._text;
+ t2 = _this._separatorIndices[0] + 1;
+ queryIndex = C.JSString_methods.indexOf$2(t1, "?", t2);
+ end = t1.length;
+ if (queryIndex >= 0) {
+ query = P._Uri__normalizeOrSubstring(t1, queryIndex + 1, end, C.List_CVk, false);
+ end = queryIndex;
+ } else
+ query = _null;
+ t1 = _this._uriCache = new P._DataUri(_this, "data", "", _null, _null, P._Uri__normalizeOrSubstring(t1, t2, end, C.List_qg4, false), query, _null);
+ }
+ return t1;
+ },
+ toString$0: function(_) {
+ var t1 = this._text;
+ return this._separatorIndices[0] === -1 ? "data:" + t1 : t1;
+ }
+ };
+ P._createTables_closure.prototype = {
+ call$1: function(_) {
+ return new Uint8Array(96);
+ },
+ $signature: 207
+ };
+ P._createTables_build.prototype = {
+ call$2: function(state, defaultTransition) {
+ var t1 = this.tables[state];
+ C.NativeUint8List_methods.fillRange$3(t1, 0, 96, defaultTransition);
+ return t1;
+ },
+ $signature: 206
+ };
+ P._createTables_setChars.prototype = {
+ call$3: function(target, chars, transition) {
+ var t1, i;
+ for (t1 = chars.length, i = 0; i < t1; ++i)
+ target[C.JSString_methods._codeUnitAt$1(chars, i) ^ 96] = transition;
+ },
+ $signature: 84
+ };
+ P._createTables_setRange.prototype = {
+ call$3: function(target, range, transition) {
+ var i, n;
+ for (i = C.JSString_methods._codeUnitAt$1(range, 0), n = C.JSString_methods._codeUnitAt$1(range, 1); i <= n; ++i)
+ target[(i ^ 96) >>> 0] = transition;
+ },
+ $signature: 84
+ };
+ P._SimpleUri.prototype = {
+ get$hasScheme: function() {
+ return this._schemeEnd > 0;
+ },
+ get$hasAuthority: function() {
+ return this._hostStart > 0;
+ },
+ get$hasPort: function() {
+ return this._hostStart > 0 && this._portStart + 1 < this._pathStart;
+ },
+ get$hasQuery: function() {
+ return this._queryStart < this._fragmentStart;
+ },
+ get$hasFragment: function() {
+ return this._fragmentStart < this._uri.length;
+ },
+ get$_isFile: function() {
+ return this._schemeEnd === 4 && C.JSString_methods.startsWith$1(this._uri, "file");
+ },
+ get$_isHttp: function() {
+ return this._schemeEnd === 4 && C.JSString_methods.startsWith$1(this._uri, "http");
+ },
+ get$_isHttps: function() {
+ return this._schemeEnd === 5 && C.JSString_methods.startsWith$1(this._uri, "https");
+ },
+ get$hasAbsolutePath: function() {
+ return C.JSString_methods.startsWith$2(this._uri, "/", this._pathStart);
+ },
+ get$scheme: function() {
+ var t1 = this._schemeCache;
+ return t1 == null ? this._schemeCache = this._computeScheme$0() : t1;
+ },
+ _computeScheme$0: function() {
+ var _this = this,
+ t1 = _this._schemeEnd;
+ if (t1 <= 0)
+ return "";
+ if (_this.get$_isHttp())
+ return "http";
+ if (_this.get$_isHttps())
+ return "https";
+ if (_this.get$_isFile())
+ return "file";
+ if (t1 === 7 && C.JSString_methods.startsWith$1(_this._uri, "package"))
+ return "package";
+ return C.JSString_methods.substring$2(_this._uri, 0, t1);
+ },
+ get$userInfo: function() {
+ var t1 = this._hostStart,
+ t2 = this._schemeEnd + 3;
+ return t1 > t2 ? C.JSString_methods.substring$2(this._uri, t2, t1 - 1) : "";
+ },
+ get$host: function(_) {
+ var t1 = this._hostStart;
+ return t1 > 0 ? C.JSString_methods.substring$2(this._uri, t1, this._portStart) : "";
+ },
+ get$port: function(_) {
+ var _this = this;
+ if (_this.get$hasPort())
+ return P.int_parse(C.JSString_methods.substring$2(_this._uri, _this._portStart + 1, _this._pathStart), null);
+ if (_this.get$_isHttp())
+ return 80;
+ if (_this.get$_isHttps())
+ return 443;
+ return 0;
+ },
+ get$path: function(_) {
+ return C.JSString_methods.substring$2(this._uri, this._pathStart, this._queryStart);
+ },
+ get$query: function(_) {
+ var t1 = this._queryStart,
+ t2 = this._fragmentStart;
+ return t1 < t2 ? C.JSString_methods.substring$2(this._uri, t1 + 1, t2) : "";
+ },
+ get$fragment: function() {
+ var t1 = this._fragmentStart,
+ t2 = this._uri;
+ return t1 < t2.length ? C.JSString_methods.substring$1(t2, t1 + 1) : "";
+ },
+ get$pathSegments: function() {
+ var parts, i,
+ start = this._pathStart,
+ end = this._queryStart,
+ t1 = this._uri;
+ if (C.JSString_methods.startsWith$2(t1, "/", start))
+ ++start;
+ if (start === end)
+ return C.List_empty0;
+ parts = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ for (i = start; i < end; ++i)
+ if (C.JSString_methods.codeUnitAt$1(t1, i) === 47) {
+ parts.push(C.JSString_methods.substring$2(t1, start, i));
+ start = i + 1;
+ }
+ parts.push(C.JSString_methods.substring$2(t1, start, end));
+ return P.List_List$unmodifiable(parts, type$.String);
+ },
+ _isPort$1: function(port) {
+ var portDigitStart = this._portStart + 1;
+ return portDigitStart + port.length === this._pathStart && C.JSString_methods.startsWith$2(this._uri, port, portDigitStart);
+ },
+ removeFragment$0: function() {
+ var _this = this,
+ t1 = _this._fragmentStart,
+ t2 = _this._uri;
+ if (t1 >= t2.length)
+ return _this;
+ return new P._SimpleUri(C.JSString_methods.substring$2(t2, 0, t1), _this._schemeEnd, _this._hostStart, _this._portStart, _this._pathStart, _this._queryStart, t1, _this._schemeCache);
+ },
+ resolve$1: function(reference) {
+ return this.resolveUri$1(P.Uri_parse(reference));
+ },
+ resolveUri$1: function(reference) {
+ if (reference instanceof P._SimpleUri)
+ return this._simpleMerge$2(this, reference);
+ return this._toNonSimple$0().resolveUri$1(reference);
+ },
+ _simpleMerge$2: function(base, ref) {
+ var t2, t3, isSimple, delta, refStart, baseStart, baseEnd, baseUri, baseStart0, backCount, refStart0, insert,
+ t1 = ref._schemeEnd;
+ if (t1 > 0)
+ return ref;
+ t2 = ref._hostStart;
+ if (t2 > 0) {
+ t3 = base._schemeEnd;
+ if (t3 <= 0)
+ return ref;
+ if (base.get$_isFile())
+ isSimple = ref._pathStart !== ref._queryStart;
+ else if (base.get$_isHttp())
+ isSimple = !ref._isPort$1("80");
+ else
+ isSimple = !base.get$_isHttps() || !ref._isPort$1("443");
+ if (isSimple) {
+ delta = t3 + 1;
+ return new P._SimpleUri(C.JSString_methods.substring$2(base._uri, 0, delta) + C.JSString_methods.substring$1(ref._uri, t1 + 1), t3, t2 + delta, ref._portStart + delta, ref._pathStart + delta, ref._queryStart + delta, ref._fragmentStart + delta, base._schemeCache);
+ } else
+ return this._toNonSimple$0().resolveUri$1(ref);
+ }
+ refStart = ref._pathStart;
+ t1 = ref._queryStart;
+ if (refStart === t1) {
+ t2 = ref._fragmentStart;
+ if (t1 < t2) {
+ t3 = base._queryStart;
+ delta = t3 - t1;
+ return new P._SimpleUri(C.JSString_methods.substring$2(base._uri, 0, t3) + C.JSString_methods.substring$1(ref._uri, t1), base._schemeEnd, base._hostStart, base._portStart, base._pathStart, t1 + delta, t2 + delta, base._schemeCache);
+ }
+ t1 = ref._uri;
+ if (t2 < t1.length) {
+ t3 = base._fragmentStart;
+ return new P._SimpleUri(C.JSString_methods.substring$2(base._uri, 0, t3) + C.JSString_methods.substring$1(t1, t2), base._schemeEnd, base._hostStart, base._portStart, base._pathStart, base._queryStart, t2 + (t3 - t2), base._schemeCache);
+ }
+ return base.removeFragment$0();
+ }
+ t2 = ref._uri;
+ if (C.JSString_methods.startsWith$2(t2, "/", refStart)) {
+ t3 = base._pathStart;
+ delta = t3 - refStart;
+ return new P._SimpleUri(C.JSString_methods.substring$2(base._uri, 0, t3) + C.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, t3, t1 + delta, ref._fragmentStart + delta, base._schemeCache);
+ }
+ baseStart = base._pathStart;
+ baseEnd = base._queryStart;
+ if (baseStart === baseEnd && base._hostStart > 0) {
+ for (; C.JSString_methods.startsWith$2(t2, "../", refStart);)
+ refStart += 3;
+ delta = baseStart - refStart + 1;
+ return new P._SimpleUri(C.JSString_methods.substring$2(base._uri, 0, baseStart) + "/" + C.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, baseStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache);
+ }
+ baseUri = base._uri;
+ for (baseStart0 = baseStart; C.JSString_methods.startsWith$2(baseUri, "../", baseStart0);)
+ baseStart0 += 3;
+ backCount = 0;
+ while (true) {
+ refStart0 = refStart + 3;
+ if (!(refStart0 <= t1 && C.JSString_methods.startsWith$2(t2, "../", refStart)))
+ break;
+ ++backCount;
+ refStart = refStart0;
+ }
+ for (insert = ""; baseEnd > baseStart0;) {
+ --baseEnd;
+ if (C.JSString_methods.codeUnitAt$1(baseUri, baseEnd) === 47) {
+ if (backCount === 0) {
+ insert = "/";
+ break;
+ }
+ --backCount;
+ insert = "/";
+ }
+ }
+ if (baseEnd === baseStart0 && base._schemeEnd <= 0 && !C.JSString_methods.startsWith$2(baseUri, "/", baseStart)) {
+ refStart -= backCount * 3;
+ insert = "";
+ }
+ delta = baseEnd - refStart + insert.length;
+ return new P._SimpleUri(C.JSString_methods.substring$2(baseUri, 0, baseEnd) + insert + C.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, baseStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache);
+ },
+ toFilePath$0: function() {
+ var t1, t2, t3, _this = this;
+ if (_this._schemeEnd >= 0 && !_this.get$_isFile())
+ throw H.wrapException(P.UnsupportedError$("Cannot extract a file path from a " + _this.get$scheme() + " URI"));
+ t1 = _this._queryStart;
+ t2 = _this._uri;
+ if (t1 < t2.length) {
+ if (t1 < _this._fragmentStart)
+ throw H.wrapException(P.UnsupportedError$(string$.Cannotefq));
+ throw H.wrapException(P.UnsupportedError$(string$.Cannoteff));
+ }
+ t3 = $.$get$_Uri__isWindowsCached();
+ if (t3)
+ t1 = P._Uri__toWindowsFilePath(_this);
+ else {
+ if (_this._hostStart < _this._portStart)
+ H.throwExpression(P.UnsupportedError$(string$.Cannoten));
+ t1 = C.JSString_methods.substring$2(t2, _this._pathStart, t1);
+ }
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var t1 = this._hashCodeCache;
+ return t1 == null ? this._hashCodeCache = C.JSString_methods.get$hashCode(this._uri) : t1;
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ return type$.Uri._is(other) && this._uri === other.toString$0(0);
+ },
+ _toNonSimple$0: function() {
+ var _this = this, _null = null,
+ t1 = _this.get$scheme(),
+ t2 = _this.get$userInfo(),
+ t3 = _this._hostStart > 0 ? _this.get$host(_this) : _null,
+ t4 = _this.get$hasPort() ? _this.get$port(_this) : _null,
+ t5 = _this._uri,
+ t6 = _this._queryStart,
+ t7 = C.JSString_methods.substring$2(t5, _this._pathStart, t6),
+ t8 = _this._fragmentStart;
+ t6 = t6 < t8 ? _this.get$query(_this) : _null;
+ return new P._Uri(t1, t2, t3, t4, t7, t6, t8 < t5.length ? _this.get$fragment() : _null);
+ },
+ toString$0: function(_) {
+ return this._uri;
+ },
+ $isUri: 1
+ };
+ P._DataUri.prototype = {};
+ P.ServiceExtensionResponse.prototype = {};
+ P.TimelineTask.prototype = {
+ start$2$arguments: function(_, $name, $arguments) {
+ var t1, map, t2, key;
+ P.ArgumentError_checkNotNull($name, "name");
+ this._stack.push(new P._AsyncBlock($name, this._taskId));
+ t1 = type$.nullable_Object;
+ map = P.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
+ if ($arguments != null)
+ for (t1 = J.getInterceptor$x($arguments), t2 = J.get$iterator$ax(t1.get$keys($arguments)); t2.moveNext$0();) {
+ key = t2.get$current(t2);
+ map.$indexSet(0, key, t1.$index($arguments, key));
+ }
+ P._argumentsAsJson(map);
+ },
+ start$1: function($receiver, $name) {
+ return this.start$2$arguments($receiver, $name, null);
+ },
+ finish$0: function(_) {
+ var t1 = this._stack;
+ if (t1.length === 0)
+ throw H.wrapException(P.StateError$("Uneven calls to start and finish"));
+ t1.pop();
+ P._argumentsAsJson(null);
+ }
+ };
+ P._AsyncBlock.prototype = {
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ W.HtmlElement.prototype = {$isHtmlElement: 1};
+ W.AccessibleNodeList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ remove$1: function(receiver, index) {
+ return receiver.remove(index);
+ }
+ };
+ W.AnchorElement.prototype = {
+ toString$0: function(receiver) {
+ return String(receiver);
+ }
+ };
+ W.ApplicationCacheErrorEvent.prototype = {
+ get$reason: function(receiver) {
+ return receiver.reason;
+ }
+ };
+ W.AreaElement.prototype = {
+ toString$0: function(receiver) {
+ return String(receiver);
+ }
+ };
+ W.BaseElement.prototype = {$isBaseElement: 1};
+ W.Blob.prototype = {$isBlob: 1};
+ W.BlobEvent.prototype = {
+ get$data: function(receiver) {
+ return receiver.data;
+ }
+ };
+ W.BodyElement.prototype = {$isBodyElement: 1};
+ W.BroadcastChannel.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.ButtonElement.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.CanvasElement.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ },
+ $isCanvasElement: 1
+ };
+ W.CanvasRenderingContext2D.prototype = {
+ fillText$3: function(receiver, text, x, y) {
+ receiver.fillText(text, x, y);
+ }
+ };
+ W.CharacterData.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.CloseEvent.prototype = {
+ get$code: function(receiver) {
+ return receiver.code;
+ },
+ get$reason: function(receiver) {
+ return receiver.reason;
+ },
+ $isCloseEvent: 1
+ };
+ W.CompositionEvent.prototype = {
+ get$data: function(receiver) {
+ return receiver.data;
+ }
+ };
+ W.Credential.prototype = {};
+ W.CredentialUserData.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.CssKeyframesRule.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.CssPerspective.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.CssRule.prototype = {$isCssRule: 1};
+ W.CssStyleDeclaration.prototype = {
+ _browserPropertyName$1: function(receiver, propertyName) {
+ var t1 = $.$get$CssStyleDeclaration__propertyCache(),
+ $name = t1[propertyName];
+ if (typeof $name == "string")
+ return $name;
+ $name = this._supportedBrowserPropertyName$1(receiver, propertyName);
+ t1[propertyName] = $name;
+ return $name;
+ },
+ _supportedBrowserPropertyName$1: function(receiver, propertyName) {
+ var prefixed;
+ if (propertyName.replace(/^-ms-/, "ms-").replace(/-([\da-z])/ig, function(_, letter) {
+ return letter.toUpperCase();
+ }) in receiver)
+ return propertyName;
+ prefixed = $.$get$Device_cssPrefix() + propertyName;
+ if (prefixed in receiver)
+ return prefixed;
+ return propertyName;
+ },
+ _setPropertyHelper$3: function(receiver, propertyName, value, priority) {
+ if (value == null)
+ value = "";
+ if (priority == null)
+ priority = "";
+ receiver.setProperty(propertyName, value, priority);
+ },
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value == null ? "" : value;
+ }
+ };
+ W.CssStyleDeclarationBase.prototype = {
+ set$height: function(receiver, value) {
+ this._setPropertyHelper$3(receiver, this._browserPropertyName$1(receiver, "height"), value, "");
+ },
+ set$width: function(receiver, value) {
+ this._setPropertyHelper$3(receiver, this._browserPropertyName$1(receiver, "width"), value, "");
+ }
+ };
+ W.CssStyleSheet.prototype = {$isCssStyleSheet: 1};
+ W.CssStyleValue.prototype = {};
+ W.CssTransformComponent.prototype = {};
+ W.CssTransformValue.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.CssUnparsedValue.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.DataTransferItemList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ remove$1: function(receiver, index) {
+ return receiver.remove(index);
+ },
+ $index: function(receiver, index) {
+ return receiver[index];
+ }
+ };
+ W.DivElement.prototype = {};
+ W.Document.prototype = {$isDocument: 1};
+ W.DomError.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.DomException.prototype = {
+ get$name: function(receiver) {
+ var errorName = receiver.name,
+ t1 = $.$get$Device_isWebKit();
+ if (t1 && errorName === "SECURITY_ERR")
+ return "SecurityError";
+ if (t1 && errorName === "SYNTAX_ERR")
+ return "SyntaxError";
+ return errorName;
+ },
+ toString$0: function(receiver) {
+ return String(receiver);
+ },
+ $isDomException: 1
+ };
+ W.DomRectList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.DomRectReadOnly.prototype = {
+ toString$0: function(receiver) {
+ var t2,
+ t1 = receiver.left;
+ t1.toString;
+ t1 = "Rectangle (" + H.S(t1) + ", ";
+ t2 = receiver.top;
+ t2.toString;
+ return t1 + H.S(t2) + ") " + H.S(this.get$width(receiver)) + " x " + H.S(this.get$height(receiver));
+ },
+ $eq: function(receiver, other) {
+ var t1, t2;
+ if (other == null)
+ return false;
+ if (type$.Rectangle_num._is(other)) {
+ t1 = receiver.left;
+ t1.toString;
+ t2 = J.getInterceptor$x(other);
+ if (t1 === t2.get$left(other)) {
+ t1 = receiver.top;
+ t1.toString;
+ t1 = t1 === t2.get$top(other) && this.get$width(receiver) == t2.get$width(other) && this.get$height(receiver) == t2.get$height(other);
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(receiver) {
+ var t2,
+ t1 = receiver.left;
+ t1.toString;
+ t1 = C.JSNumber_methods.get$hashCode(t1);
+ t2 = receiver.top;
+ t2.toString;
+ return W._JenkinsSmiHash_hash4(t1, C.JSNumber_methods.get$hashCode(t2), J.get$hashCode$(this.get$width(receiver)), J.get$hashCode$(this.get$height(receiver)));
+ },
+ get$bottom: function(receiver) {
+ var t1 = receiver.bottom;
+ t1.toString;
+ return t1;
+ },
+ get$_height: function(receiver) {
+ return receiver.height;
+ },
+ get$height: function(receiver) {
+ var t1 = this.get$_height(receiver);
+ t1.toString;
+ return t1;
+ },
+ get$left: function(receiver) {
+ var t1 = receiver.left;
+ t1.toString;
+ return t1;
+ },
+ get$right: function(receiver) {
+ var t1 = receiver.right;
+ t1.toString;
+ return t1;
+ },
+ get$top: function(receiver) {
+ var t1 = receiver.top;
+ t1.toString;
+ return t1;
+ },
+ get$_width: function(receiver) {
+ return receiver.width;
+ },
+ get$width: function(receiver) {
+ var t1 = this.get$_width(receiver);
+ t1.toString;
+ return t1;
+ },
+ $isRectangle: 1
+ };
+ W.DomStringList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.DomTokenList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ remove$1: function(receiver, tokens) {
+ return receiver.remove(tokens);
+ }
+ };
+ W._ChildrenElementList.prototype = {
+ contains$1: function(_, element) {
+ return J.contains$1$asx(this._html$_childElements, element);
+ },
+ get$isEmpty: function(_) {
+ return this._html$_element.firstElementChild == null;
+ },
+ get$length: function(_) {
+ return this._html$_childElements.length;
+ },
+ $index: function(_, index) {
+ return type$.Element._as(this._html$_childElements[index]);
+ },
+ $indexSet: function(_, index, value) {
+ this._html$_element.replaceChild(value, this._html$_childElements[index]);
+ },
+ set$length: function(_, newLength) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize element lists"));
+ },
+ add$1: function(_, value) {
+ this._html$_element.appendChild(value);
+ return value;
+ },
+ get$iterator: function(_) {
+ var t1 = this.toList$0(this);
+ return new J.ArrayIterator(t1, t1.length);
+ },
+ sort$1: function(_, compare) {
+ throw H.wrapException(P.UnsupportedError$("Cannot sort element lists"));
+ },
+ setRange$4: function(_, start, end, iterable, skipCount) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ remove$1: function(_, object) {
+ return W._ChildrenElementList__remove(this._html$_element, object);
+ },
+ removeLast$0: function(_) {
+ var result = this.get$last(this);
+ this._html$_element.removeChild(result);
+ return result;
+ },
+ get$first: function(_) {
+ return W._ChildrenElementList__first(this._html$_element);
+ },
+ get$last: function(_) {
+ var result = this._html$_element.lastElementChild;
+ if (result == null)
+ throw H.wrapException(P.StateError$("No elements"));
+ return result;
+ }
+ };
+ W._FrozenElementList.prototype = {
+ get$length: function(_) {
+ return this._nodeList.length;
+ },
+ $index: function(_, index) {
+ return this.$ti._precomputed1._as(this._nodeList[index]);
+ },
+ $indexSet: function(_, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify list"));
+ },
+ set$length: function(_, newLength) {
+ throw H.wrapException(P.UnsupportedError$("Cannot modify list"));
+ },
+ sort$1: function(_, compare) {
+ throw H.wrapException(P.UnsupportedError$("Cannot sort list"));
+ },
+ get$first: function(_) {
+ return this.$ti._precomputed1._as(C.NodeList_methods.get$first(this._nodeList));
+ },
+ get$last: function(_) {
+ return this.$ti._precomputed1._as(C.NodeList_methods.get$last(this._nodeList));
+ }
+ };
+ W.Element0.prototype = {
+ get$attributes: function(receiver) {
+ return new W._ElementAttributeMap(receiver);
+ },
+ get$children: function(receiver) {
+ return new W._ChildrenElementList(receiver, receiver.children);
+ },
+ toString$0: function(receiver) {
+ return receiver.localName;
+ },
+ createFragment$3$treeSanitizer$validator: function(receiver, html, treeSanitizer, validator) {
+ var t1, t2, contextElement, fragment;
+ if (treeSanitizer == null) {
+ t1 = $.Element__defaultValidator;
+ if (t1 == null) {
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_NodeValidator);
+ t2 = new W.NodeValidatorBuilder(t1);
+ t1.push(W._Html5NodeValidator$(null));
+ t1.push(W._TemplatingNodeValidator$());
+ $.Element__defaultValidator = t2;
+ validator = t2;
+ } else
+ validator = t1;
+ t1 = $.Element__defaultSanitizer;
+ if (t1 == null) {
+ t1 = new W._ValidatingTreeSanitizer(validator);
+ $.Element__defaultSanitizer = t1;
+ treeSanitizer = t1;
+ } else {
+ t1.validator = validator;
+ treeSanitizer = t1;
+ }
+ }
+ if ($.Element__parseDocument == null) {
+ t1 = document;
+ t2 = t1.implementation.createHTMLDocument("");
+ $.Element__parseDocument = t2;
+ $.Element__parseRange = t2.createRange();
+ t2 = $.Element__parseDocument.createElement("base");
+ type$.BaseElement._as(t2);
+ t1 = t1.baseURI;
+ t1.toString;
+ t2.href = t1;
+ $.Element__parseDocument.head.appendChild(t2);
+ }
+ t1 = $.Element__parseDocument;
+ if (t1.body == null) {
+ t2 = t1.createElement("body");
+ t1.body = type$.BodyElement._as(t2);
+ }
+ t1 = $.Element__parseDocument;
+ if (type$.BodyElement._is(receiver)) {
+ t1 = t1.body;
+ t1.toString;
+ contextElement = t1;
+ } else {
+ t1.toString;
+ contextElement = t1.createElement(receiver.tagName);
+ $.Element__parseDocument.body.appendChild(contextElement);
+ }
+ if ("createContextualFragment" in window.Range.prototype && !C.JSArray_methods.contains$1(C.List_ego, receiver.tagName)) {
+ $.Element__parseRange.selectNodeContents(contextElement);
+ t1 = $.Element__parseRange;
+ fragment = t1.createContextualFragment(html);
+ } else {
+ contextElement.innerHTML = html;
+ fragment = $.Element__parseDocument.createDocumentFragment();
+ for (; t1 = contextElement.firstChild, t1 != null;)
+ fragment.appendChild(t1);
+ }
+ if (contextElement !== $.Element__parseDocument.body)
+ J.remove$0$ax(contextElement);
+ treeSanitizer.sanitizeTree$1(fragment);
+ document.adoptNode(fragment);
+ return fragment;
+ },
+ createFragment$2$treeSanitizer: function($receiver, html, treeSanitizer) {
+ return this.createFragment$3$treeSanitizer$validator($receiver, html, treeSanitizer, null);
+ },
+ setInnerHtml$1: function(receiver, html) {
+ receiver.textContent = null;
+ receiver.appendChild(this.createFragment$3$treeSanitizer$validator(receiver, html, null, null));
+ },
+ focus$0: function(receiver) {
+ return receiver.focus();
+ },
+ get$tagName: function(receiver) {
+ return receiver.tagName;
+ },
+ $isElement0: 1
+ };
+ W.Element_Element$html_closure.prototype = {
+ call$1: function(e) {
+ return type$.Element._is(e);
+ },
+ $signature: 85
+ };
+ W.EmbedElement.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ }
+ };
+ W.Entry.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ _html$_remove$2: function(receiver, successCallback, errorCallback) {
+ return receiver.remove(H.convertDartClosureToJS(successCallback, 0), H.convertDartClosureToJS(errorCallback, 1));
+ },
+ remove$0: function(receiver) {
+ var t1 = new P._Future($.Zone__current, type$._Future_dynamic),
+ completer = new P._AsyncCompleter(t1, type$._AsyncCompleter_dynamic);
+ this._html$_remove$2(receiver, new W.Entry_remove_closure(completer), new W.Entry_remove_closure0(completer));
+ return t1;
+ }
+ };
+ W.Entry_remove_closure.prototype = {
+ call$0: function() {
+ this.completer.complete$0(0);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ W.Entry_remove_closure0.prototype = {
+ call$1: function(error) {
+ this.completer.completeError$1(error);
+ },
+ $signature: 205
+ };
+ W.Event.prototype = {
+ get$target: function(receiver) {
+ return W._convertNativeToDart_EventTarget(receiver.target);
+ },
+ $isEvent: 1
+ };
+ W.EventTarget.prototype = {
+ addEventListener$3: function(receiver, type, listener, useCapture) {
+ if (listener != null)
+ this._addEventListener$3(receiver, type, listener, useCapture);
+ },
+ addEventListener$2: function($receiver, type, listener) {
+ return this.addEventListener$3($receiver, type, listener, null);
+ },
+ removeEventListener$3: function(receiver, type, listener, useCapture) {
+ if (listener != null)
+ this._removeEventListener$3(receiver, type, listener, useCapture);
+ },
+ removeEventListener$2: function($receiver, type, listener) {
+ return this.removeEventListener$3($receiver, type, listener, null);
+ },
+ _addEventListener$3: function(receiver, type, listener, options) {
+ return receiver.addEventListener(type, H.convertDartClosureToJS(listener, 1), options);
+ },
+ _removeEventListener$3: function(receiver, type, listener, options) {
+ return receiver.removeEventListener(type, H.convertDartClosureToJS(listener, 1), options);
+ }
+ };
+ W.ExtendableEvent.prototype = {};
+ W.ExtendableMessageEvent.prototype = {
+ get$data: function(receiver) {
+ return receiver.data;
+ }
+ };
+ W.FederatedCredential.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.FieldSetElement.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.File.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ $isFile: 1
+ };
+ W.FileList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1,
+ $isFileList: 1
+ };
+ W.FileReader.prototype = {
+ get$result: function(receiver) {
+ var res = receiver.result;
+ if (type$.ByteBuffer._is(res))
+ return H.NativeUint8List_NativeUint8List$view(res, 0, null);
+ return res;
+ }
+ };
+ W.FileSystem.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.FileWriter.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.FontFace.prototype = {$isFontFace: 1};
+ W.FormElement.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ $isFormElement: 1
+ };
+ W.Gamepad.prototype = {$isGamepad: 1};
+ W.History.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.HtmlCollection.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.HttpRequest.prototype = {
+ get$responseHeaders: function(receiver) {
+ var headersList, _i, header, t2, splitIdx, key, value,
+ t1 = type$.String,
+ headers = P.LinkedHashMap_LinkedHashMap$_empty(t1, t1),
+ headersString = receiver.getAllResponseHeaders();
+ if (headersString == null)
+ return headers;
+ headersList = headersString.split("\r\n");
+ for (t1 = headersList.length, _i = 0; _i < t1; ++_i) {
+ header = headersList[_i];
+ header.toString;
+ t2 = J.getInterceptor$asx(header);
+ if (t2.get$length(header) === 0)
+ continue;
+ splitIdx = t2.indexOf$1(header, ": ");
+ if (splitIdx === -1)
+ continue;
+ key = t2.substring$2(header, 0, splitIdx).toLowerCase();
+ value = t2.substring$1(header, splitIdx + 2);
+ if (headers.containsKey$1(0, key))
+ headers.$indexSet(0, key, H.S(headers.$index(0, key)) + ", " + value);
+ else
+ headers.$indexSet(0, key, value);
+ }
+ return headers;
+ },
+ open$3$async: function(receiver, method, url, async) {
+ return receiver.open(method, url, true);
+ },
+ send$1: function(receiver, body_OR_data) {
+ return receiver.send(body_OR_data);
+ },
+ setRequestHeader$2: function(receiver, $name, value) {
+ return receiver.setRequestHeader($name, value);
+ },
+ $isHttpRequest: 1
+ };
+ W.HttpRequest_request_closure.prototype = {
+ call$1: function(e) {
+ var accepted, unknownRedirect, t3,
+ t1 = this.xhr,
+ t2 = t1.status;
+ t2.toString;
+ accepted = t2 >= 200 && t2 < 300;
+ unknownRedirect = t2 > 307 && t2 < 400;
+ t2 = accepted || t2 === 0 || t2 === 304 || unknownRedirect;
+ t3 = this.completer;
+ if (t2)
+ t3.complete$1(0, t1);
+ else
+ t3.completeError$1(e);
+ },
+ $signature: 201
+ };
+ W.HttpRequestEventTarget.prototype = {};
+ W.IFrameElement.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ }
+ };
+ W.ImageData.prototype = {$isImageData: 1};
+ W.ImageElement.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ }
+ };
+ W.InputElement.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ },
+ $isInputElement: 1
+ };
+ W.KeyboardEvent.prototype = {
+ get$code: function(receiver) {
+ return receiver.code;
+ },
+ $isKeyboardEvent: 1
+ };
+ W.LabelElement.prototype = {};
+ W.Location.prototype = {
+ toString$0: function(receiver) {
+ return String(receiver);
+ }
+ };
+ W.MapElement.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.MediaElement.prototype = {};
+ W.MediaKeySession.prototype = {
+ remove$0: function(receiver) {
+ return P.promiseToFuture(receiver.remove(), type$.dynamic);
+ }
+ };
+ W.MediaList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.MediaQueryList.prototype = {
+ addListener$1: function(receiver, listener) {
+ return receiver.addListener(H.convertDartClosureToJS(listener, 1));
+ },
+ removeListener$1: function(receiver, listener) {
+ return receiver.removeListener(H.convertDartClosureToJS(listener, 1));
+ }
+ };
+ W.MediaQueryListEvent.prototype = {$isMediaQueryListEvent: 1};
+ W.MediaStream.prototype = {$isMediaStream: 1};
+ W.MediaStreamEvent.prototype = {$isMediaStreamEvent: 1};
+ W.MediaStreamTrack.prototype = {$isMediaStreamTrack: 1};
+ W.MediaStreamTrackEvent.prototype = {$isMediaStreamTrackEvent: 1};
+ W.MessageEvent.prototype = {
+ get$data: function(receiver) {
+ return new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(receiver.data, true);
+ },
+ $isMessageEvent: 1
+ };
+ W.MessagePort.prototype = {
+ addEventListener$3: function(receiver, type, listener, useCapture) {
+ if (type === "message")
+ receiver.start();
+ this.super$EventTarget$addEventListener(receiver, type, listener, false);
+ },
+ $isMessagePort: 1
+ };
+ W.MetaElement.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ $isMetaElement: 1
+ };
+ W.MidiInputMap.prototype = {
+ containsKey$1: function(receiver, key) {
+ return P.convertNativeToDart_Dictionary(receiver.get(key)) != null;
+ },
+ $index: function(receiver, key) {
+ return P.convertNativeToDart_Dictionary(receiver.get(key));
+ },
+ forEach$1: function(receiver, f) {
+ var entry,
+ entries = receiver.entries();
+ for (; true;) {
+ entry = entries.next();
+ if (entry.done)
+ return;
+ f.call$2(entry.value[0], P.convertNativeToDart_Dictionary(entry.value[1]));
+ }
+ },
+ get$keys: function(receiver) {
+ var keys = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ this.forEach$1(receiver, new W.MidiInputMap_keys_closure(keys));
+ return keys;
+ },
+ get$values: function(receiver) {
+ var values = H.setRuntimeTypeInfo([], type$.JSArray_Map_dynamic_dynamic);
+ this.forEach$1(receiver, new W.MidiInputMap_values_closure(values));
+ return values;
+ },
+ get$length: function(receiver) {
+ return receiver.size;
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.size === 0;
+ },
+ get$isNotEmpty: function(receiver) {
+ return receiver.size !== 0;
+ },
+ $indexSet: function(receiver, key, value) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ putIfAbsent$2: function(receiver, key, ifAbsent) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ remove$1: function(receiver, key) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ $isMap: 1
+ };
+ W.MidiInputMap_keys_closure.prototype = {
+ call$2: function(k, v) {
+ return this.keys.push(k);
+ },
+ $signature: 19
+ };
+ W.MidiInputMap_values_closure.prototype = {
+ call$2: function(k, v) {
+ return this.values.push(v);
+ },
+ $signature: 19
+ };
+ W.MidiMessageEvent.prototype = {
+ get$data: function(receiver) {
+ return receiver.data;
+ }
+ };
+ W.MidiOutputMap.prototype = {
+ containsKey$1: function(receiver, key) {
+ return P.convertNativeToDart_Dictionary(receiver.get(key)) != null;
+ },
+ $index: function(receiver, key) {
+ return P.convertNativeToDart_Dictionary(receiver.get(key));
+ },
+ forEach$1: function(receiver, f) {
+ var entry,
+ entries = receiver.entries();
+ for (; true;) {
+ entry = entries.next();
+ if (entry.done)
+ return;
+ f.call$2(entry.value[0], P.convertNativeToDart_Dictionary(entry.value[1]));
+ }
+ },
+ get$keys: function(receiver) {
+ var keys = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ this.forEach$1(receiver, new W.MidiOutputMap_keys_closure(keys));
+ return keys;
+ },
+ get$values: function(receiver) {
+ var values = H.setRuntimeTypeInfo([], type$.JSArray_Map_dynamic_dynamic);
+ this.forEach$1(receiver, new W.MidiOutputMap_values_closure(values));
+ return values;
+ },
+ get$length: function(receiver) {
+ return receiver.size;
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.size === 0;
+ },
+ get$isNotEmpty: function(receiver) {
+ return receiver.size !== 0;
+ },
+ $indexSet: function(receiver, key, value) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ putIfAbsent$2: function(receiver, key, ifAbsent) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ remove$1: function(receiver, key) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ $isMap: 1
+ };
+ W.MidiOutputMap_keys_closure.prototype = {
+ call$2: function(k, v) {
+ return this.keys.push(k);
+ },
+ $signature: 19
+ };
+ W.MidiOutputMap_values_closure.prototype = {
+ call$2: function(k, v) {
+ return this.values.push(v);
+ },
+ $signature: 19
+ };
+ W.MidiPort.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.MimeType.prototype = {$isMimeType: 1};
+ W.MimeTypeArray.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.MouseEvent.prototype = {
+ get$offset: function(receiver) {
+ var t1, t2, target, t3, t4, t5, point;
+ if (!!receiver.offsetX)
+ return new P.Point(receiver.offsetX, receiver.offsetY, type$.Point_num);
+ else {
+ t1 = receiver.target;
+ t2 = type$.Element;
+ if (!t2._is(W._convertNativeToDart_EventTarget(t1)))
+ throw H.wrapException(P.UnsupportedError$("offsetX is only supported on elements"));
+ target = t2._as(W._convertNativeToDart_EventTarget(t1));
+ t1 = receiver.clientX;
+ t2 = receiver.clientY;
+ t3 = type$.Point_num;
+ t4 = target.getBoundingClientRect();
+ t5 = t4.left;
+ t5.toString;
+ t4 = t4.top;
+ t4.toString;
+ point = new P.Point(t1, t2, t3).$sub(0, new P.Point(t5, t4, t3));
+ return new P.Point(J.toInt$0$n(point.x), J.toInt$0$n(point.y), t3);
+ }
+ },
+ $isMouseEvent: 1
+ };
+ W.Navigator0.prototype = {
+ getUserMedia$2$audio$video: function(receiver, audio, video) {
+ var t1 = new P._Future($.Zone__current, type$._Future_MediaStream),
+ completer = new P._AsyncCompleter(t1, type$._AsyncCompleter_MediaStream),
+ options = P.LinkedHashMap_LinkedHashMap$_literal(["audio", audio, "video", video], type$.String, type$.dynamic);
+ if (!receiver.getUserMedia)
+ receiver.getUserMedia = receiver.getUserMedia || receiver.webkitGetUserMedia || receiver.mozGetUserMedia || receiver.msGetUserMedia;
+ this._getUserMedia$3(receiver, new P._StructuredCloneDart2Js([], []).walk$1(options), new W.Navigator_getUserMedia_closure(completer), new W.Navigator_getUserMedia_closure0(completer));
+ return t1;
+ },
+ _getUserMedia$3: function(receiver, options, success, error) {
+ return receiver.getUserMedia(options, H.convertDartClosureToJS(success, 1), H.convertDartClosureToJS(error, 1));
+ }
+ };
+ W.Navigator_getUserMedia_closure.prototype = {
+ call$1: function(stream) {
+ this.completer.complete$1(0, stream);
+ },
+ $signature: 200
+ };
+ W.Navigator_getUserMedia_closure0.prototype = {
+ call$1: function(error) {
+ this.completer.completeError$1(error);
+ },
+ $signature: 198
+ };
+ W.NavigatorConcurrentHardware.prototype = {};
+ W.NavigatorUserMediaError.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ $isNavigatorUserMediaError: 1
+ };
+ W._ChildNodeListLazy.prototype = {
+ get$first: function(_) {
+ var result = this._this.firstChild;
+ if (result == null)
+ throw H.wrapException(P.StateError$("No elements"));
+ return result;
+ },
+ get$last: function(_) {
+ var result = this._this.lastChild;
+ if (result == null)
+ throw H.wrapException(P.StateError$("No elements"));
+ return result;
+ },
+ get$single: function(_) {
+ var t1 = this._this,
+ l = t1.childNodes.length;
+ if (l === 0)
+ throw H.wrapException(P.StateError$("No elements"));
+ if (l > 1)
+ throw H.wrapException(P.StateError$("More than one element"));
+ t1 = t1.firstChild;
+ t1.toString;
+ return t1;
+ },
+ add$1: function(_, value) {
+ this._this.appendChild(value);
+ },
+ addAll$1: function(_, iterable) {
+ var t1, t2, len, i, t3;
+ if (iterable instanceof W._ChildNodeListLazy) {
+ t1 = iterable._this;
+ t2 = this._this;
+ if (t1 !== t2)
+ for (len = t1.childNodes.length, i = 0; i < len; ++i) {
+ t3 = t1.firstChild;
+ t3.toString;
+ t2.appendChild(t3);
+ }
+ return;
+ }
+ for (t1 = J.get$iterator$ax(iterable), t2 = this._this; t1.moveNext$0();)
+ t2.appendChild(t1.get$current(t1));
+ },
+ removeLast$0: function(_) {
+ var result = this.get$last(this);
+ this._this.removeChild(result);
+ return result;
+ },
+ remove$1: function(_, object) {
+ return false;
+ },
+ $indexSet: function(_, index, value) {
+ var t1 = this._this;
+ t1.replaceChild(value, t1.childNodes[index]);
+ },
+ get$iterator: function(_) {
+ var t1 = this._this.childNodes;
+ return new W.FixedSizeListIterator(t1, t1.length);
+ },
+ sort$1: function(_, compare) {
+ throw H.wrapException(P.UnsupportedError$("Cannot sort Node list"));
+ },
+ setRange$4: function(_, start, end, iterable, skipCount) {
+ throw H.wrapException(P.UnsupportedError$("Cannot setRange on Node list"));
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ get$length: function(_) {
+ return this._this.childNodes.length;
+ },
+ set$length: function(_, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot set length on immutable List."));
+ },
+ $index: function(_, index) {
+ return this._this.childNodes[index];
+ }
+ };
+ W.Node.prototype = {
+ remove$0: function(receiver) {
+ var t1 = receiver.parentNode;
+ if (t1 != null)
+ t1.removeChild(receiver);
+ },
+ replaceWith$1: function(receiver, otherNode) {
+ var $parent, t1, exception;
+ try {
+ t1 = receiver.parentNode;
+ t1.toString;
+ $parent = t1;
+ J._replaceChild$2$x($parent, otherNode, receiver);
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ return receiver;
+ },
+ toString$0: function(receiver) {
+ var value = receiver.nodeValue;
+ return value == null ? this.super$Interceptor$toString(receiver) : value;
+ },
+ _replaceChild$2: function(receiver, node, child) {
+ return receiver.replaceChild(node, child);
+ },
+ $isNode: 1
+ };
+ W.NodeList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.ObjectElement.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ }
+ };
+ W.OffscreenCanvas.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ }
+ };
+ W.OutputElement.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.OverconstrainedError.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.ParagraphElement.prototype = {};
+ W.ParamElement.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.PasswordCredential.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.PerformanceEntry.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.PerformanceServerTiming.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.Plugin.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ $isPlugin: 1
+ };
+ W.PluginArray.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.PointerEvent.prototype = {$isPointerEvent: 1};
+ W.PresentationConnectionCloseEvent.prototype = {
+ get$reason: function(receiver) {
+ return receiver.reason;
+ }
+ };
+ W.ProgressEvent.prototype = {$isProgressEvent: 1};
+ W.PromiseRejectionEvent.prototype = {
+ get$reason: function(receiver) {
+ return receiver.reason;
+ }
+ };
+ W.PushEvent.prototype = {
+ get$data: function(receiver) {
+ return receiver.data;
+ }
+ };
+ W.RtcDataChannelEvent.prototype = {$isRtcDataChannelEvent: 1};
+ W.RtcPeerConnection.prototype = {
+ createDataChannel$2: function(receiver, label, dataChannelDict) {
+ var t1 = receiver.createDataChannel(label, P.convertDartToNative_Dictionary(dataChannelDict));
+ return t1;
+ }
+ };
+ W.RtcPeerConnectionIceEvent.prototype = {$isRtcPeerConnectionIceEvent: 1};
+ W.RtcSessionDescription.prototype = {$isRtcSessionDescription: 1};
+ W.RtcStatsReport.prototype = {
+ containsKey$1: function(receiver, key) {
+ return P.convertNativeToDart_Dictionary(receiver.get(key)) != null;
+ },
+ $index: function(receiver, key) {
+ return P.convertNativeToDart_Dictionary(receiver.get(key));
+ },
+ forEach$1: function(receiver, f) {
+ var entry,
+ entries = receiver.entries();
+ for (; true;) {
+ entry = entries.next();
+ if (entry.done)
+ return;
+ f.call$2(entry.value[0], P.convertNativeToDart_Dictionary(entry.value[1]));
+ }
+ },
+ get$keys: function(receiver) {
+ var keys = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ this.forEach$1(receiver, new W.RtcStatsReport_keys_closure(keys));
+ return keys;
+ },
+ get$values: function(receiver) {
+ var values = H.setRuntimeTypeInfo([], type$.JSArray_Map_dynamic_dynamic);
+ this.forEach$1(receiver, new W.RtcStatsReport_values_closure(values));
+ return values;
+ },
+ get$length: function(receiver) {
+ return receiver.size;
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.size === 0;
+ },
+ get$isNotEmpty: function(receiver) {
+ return receiver.size !== 0;
+ },
+ $indexSet: function(receiver, key, value) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ putIfAbsent$2: function(receiver, key, ifAbsent) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ remove$1: function(receiver, key) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ $isMap: 1
+ };
+ W.RtcStatsReport_keys_closure.prototype = {
+ call$2: function(k, v) {
+ return this.keys.push(k);
+ },
+ $signature: 19
+ };
+ W.RtcStatsReport_values_closure.prototype = {
+ call$2: function(k, v) {
+ return this.values.push(v);
+ },
+ $signature: 19
+ };
+ W.RtcTrackEvent.prototype = {$isRtcTrackEvent: 1};
+ W.ScreenOrientation.prototype = {
+ unlock$0: function(receiver) {
+ return receiver.unlock();
+ }
+ };
+ W.SelectElement.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.SharedWorkerGlobalScope.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.SlotElement.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.SourceBuffer.prototype = {$isSourceBuffer: 1};
+ W.SourceBufferList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.SpanElement.prototype = {$isSpanElement: 1};
+ W.SpeechGrammar.prototype = {$isSpeechGrammar: 1};
+ W.SpeechGrammarList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.SpeechRecognitionResult.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $isSpeechRecognitionResult: 1
+ };
+ W.SpeechSynthesisEvent.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.SpeechSynthesisVoice.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ W.Storage.prototype = {
+ containsKey$1: function(receiver, key) {
+ return receiver.getItem(H._asStringS(key)) != null;
+ },
+ $index: function(receiver, key) {
+ return receiver.getItem(H._asStringS(key));
+ },
+ $indexSet: function(receiver, key, value) {
+ receiver.setItem(key, value);
+ },
+ putIfAbsent$2: function(receiver, key, ifAbsent) {
+ if (receiver.getItem(key) == null)
+ receiver.setItem(key, ifAbsent.call$0());
+ return receiver.getItem(key);
+ },
+ remove$1: function(receiver, key) {
+ var value;
+ H._asStringS(key);
+ value = receiver.getItem(key);
+ receiver.removeItem(key);
+ return value;
+ },
+ forEach$1: function(receiver, f) {
+ var i, key, t1;
+ for (i = 0; true; ++i) {
+ key = receiver.key(i);
+ if (key == null)
+ return;
+ t1 = receiver.getItem(key);
+ t1.toString;
+ f.call$2(key, t1);
+ }
+ },
+ get$keys: function(receiver) {
+ var keys = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ this.forEach$1(receiver, new W.Storage_keys_closure(keys));
+ return keys;
+ },
+ get$values: function(receiver) {
+ var values = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ this.forEach$1(receiver, new W.Storage_values_closure(values));
+ return values;
+ },
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.key(0) == null;
+ },
+ get$isNotEmpty: function(receiver) {
+ return receiver.key(0) != null;
+ },
+ $isMap: 1
+ };
+ W.Storage_keys_closure.prototype = {
+ call$2: function(k, v) {
+ return this.keys.push(k);
+ },
+ $signature: 69
+ };
+ W.Storage_values_closure.prototype = {
+ call$2: function(k, v) {
+ return this.values.push(v);
+ },
+ $signature: 69
+ };
+ W.StyleElement.prototype = {};
+ W.StyleSheet.prototype = {$isStyleSheet: 1};
+ W.TableElement.prototype = {
+ createFragment$3$treeSanitizer$validator: function(receiver, html, treeSanitizer, validator) {
+ var table, fragment;
+ if ("createContextualFragment" in window.Range.prototype)
+ return this.super$Element$createFragment(receiver, html, treeSanitizer, validator);
+ table = W.Element_Element$html("", treeSanitizer, validator);
+ fragment = document.createDocumentFragment();
+ fragment.toString;
+ table.toString;
+ new W._ChildNodeListLazy(fragment).addAll$1(0, new W._ChildNodeListLazy(table));
+ return fragment;
+ }
+ };
+ W.TableRowElement.prototype = {
+ createFragment$3$treeSanitizer$validator: function(receiver, html, treeSanitizer, validator) {
+ var t1, fragment, section, row;
+ if ("createContextualFragment" in window.Range.prototype)
+ return this.super$Element$createFragment(receiver, html, treeSanitizer, validator);
+ t1 = document;
+ fragment = t1.createDocumentFragment();
+ t1 = C.TableElement_methods.createFragment$3$treeSanitizer$validator(t1.createElement("table"), html, treeSanitizer, validator);
+ t1.toString;
+ t1 = new W._ChildNodeListLazy(t1);
+ section = t1.get$single(t1);
+ section.toString;
+ t1 = new W._ChildNodeListLazy(section);
+ row = t1.get$single(t1);
+ fragment.toString;
+ row.toString;
+ new W._ChildNodeListLazy(fragment).addAll$1(0, new W._ChildNodeListLazy(row));
+ return fragment;
+ }
+ };
+ W.TableSectionElement.prototype = {
+ createFragment$3$treeSanitizer$validator: function(receiver, html, treeSanitizer, validator) {
+ var t1, fragment, section;
+ if ("createContextualFragment" in window.Range.prototype)
+ return this.super$Element$createFragment(receiver, html, treeSanitizer, validator);
+ t1 = document;
+ fragment = t1.createDocumentFragment();
+ t1 = C.TableElement_methods.createFragment$3$treeSanitizer$validator(t1.createElement("table"), html, treeSanitizer, validator);
+ t1.toString;
+ t1 = new W._ChildNodeListLazy(t1);
+ section = t1.get$single(t1);
+ fragment.toString;
+ section.toString;
+ new W._ChildNodeListLazy(fragment).addAll$1(0, new W._ChildNodeListLazy(section));
+ return fragment;
+ }
+ };
+ W.TemplateElement.prototype = {$isTemplateElement: 1};
+ W.TextAreaElement.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ select$0: function(receiver) {
+ return receiver.select();
+ },
+ $isTextAreaElement: 1
+ };
+ W.TextEvent.prototype = {
+ get$data: function(receiver) {
+ return receiver.data;
+ }
+ };
+ W.TextTrack.prototype = {$isTextTrack: 1};
+ W.TextTrackCue.prototype = {$isTextTrackCue: 1};
+ W.TextTrackCueList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.TextTrackList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.TimeRanges.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.Touch.prototype = {$isTouch: 1};
+ W.TouchEvent.prototype = {$isTouchEvent: 1};
+ W.TouchList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W.TrackDefaultList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.UIEvent.prototype = {};
+ W.Url.prototype = {
+ toString$0: function(receiver) {
+ return String(receiver);
+ }
+ };
+ W.VRDisplayEvent.prototype = {
+ get$reason: function(receiver) {
+ return receiver.reason;
+ }
+ };
+ W.VideoElement.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ },
+ $isVideoElement: 1
+ };
+ W.VideoTrackList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ W.VttRegion.prototype = {
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ }
+ };
+ W.WheelEvent.prototype = {
+ get$deltaY: function(receiver) {
+ var value = receiver.deltaY;
+ if (value != null)
+ return value;
+ throw H.wrapException(P.UnsupportedError$("deltaY is not supported"));
+ },
+ get$deltaX: function(receiver) {
+ var value = receiver.deltaX;
+ if (value != null)
+ return value;
+ throw H.wrapException(P.UnsupportedError$("deltaX is not supported"));
+ },
+ get$deltaMode: function(receiver) {
+ if (!!receiver.deltaMode)
+ return receiver.deltaMode;
+ return 0;
+ },
+ $isWheelEvent: 1
+ };
+ W.Window.prototype = {
+ _requestAnimationFrame$1: function(receiver, callback) {
+ return receiver.requestAnimationFrame(H.convertDartClosureToJS(callback, 1));
+ },
+ _ensureRequestAnimationFrame$0: function(receiver) {
+ if (!!(receiver.requestAnimationFrame && receiver.cancelAnimationFrame))
+ return;
+ (function($this) {
+ var vendors = ['ms', 'moz', 'webkit', 'o'];
+ for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++i) {
+ $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFrame'];
+ $this.cancelAnimationFrame = $this[vendors[i] + 'CancelAnimationFrame'] || $this[vendors[i] + 'CancelRequestAnimationFrame'];
+ }
+ if ($this.requestAnimationFrame && $this.cancelAnimationFrame)
+ return;
+ $this.requestAnimationFrame = function(callback) {
+ return window.setTimeout(function() {
+ callback(Date.now());
+ }, 16);
+ };
+ $this.cancelAnimationFrame = function(id) {
+ clearTimeout(id);
+ };
+ })(receiver);
+ },
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ $isWindow: 1
+ };
+ W.WorkerGlobalScope.prototype = {$isWorkerGlobalScope: 1};
+ W._Attr.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ },
+ $is_Attr: 1
+ };
+ W._CssRuleList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W._DomRect.prototype = {
+ toString$0: function(receiver) {
+ var t2,
+ t1 = receiver.left;
+ t1.toString;
+ t1 = "Rectangle (" + H.S(t1) + ", ";
+ t2 = receiver.top;
+ t2.toString;
+ t2 = t1 + H.S(t2) + ") ";
+ t1 = receiver.width;
+ t1.toString;
+ t1 = t2 + H.S(t1) + " x ";
+ t2 = receiver.height;
+ t2.toString;
+ return t1 + H.S(t2);
+ },
+ $eq: function(receiver, other) {
+ var t1, t2;
+ if (other == null)
+ return false;
+ if (type$.Rectangle_num._is(other)) {
+ t1 = receiver.left;
+ t1.toString;
+ t2 = J.getInterceptor$x(other);
+ if (t1 === t2.get$left(other)) {
+ t1 = receiver.top;
+ t1.toString;
+ if (t1 === t2.get$top(other)) {
+ t1 = receiver.width;
+ t1.toString;
+ if (t1 === t2.get$width(other)) {
+ t1 = receiver.height;
+ t1.toString;
+ t2 = t1 === t2.get$height(other);
+ t1 = t2;
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(receiver) {
+ var t2, t3, t4,
+ t1 = receiver.left;
+ t1.toString;
+ t1 = C.JSNumber_methods.get$hashCode(t1);
+ t2 = receiver.top;
+ t2.toString;
+ t2 = C.JSNumber_methods.get$hashCode(t2);
+ t3 = receiver.width;
+ t3.toString;
+ t3 = C.JSNumber_methods.get$hashCode(t3);
+ t4 = receiver.height;
+ t4.toString;
+ return W._JenkinsSmiHash_hash4(t1, t2, t3, C.JSNumber_methods.get$hashCode(t4));
+ },
+ get$_height: function(receiver) {
+ return receiver.height;
+ },
+ get$height: function(receiver) {
+ var t1 = receiver.height;
+ t1.toString;
+ return t1;
+ },
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ get$_width: function(receiver) {
+ return receiver.width;
+ },
+ get$width: function(receiver) {
+ var t1 = receiver.width;
+ t1.toString;
+ return t1;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ }
+ };
+ W._GamepadList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W._NamedNodeMap.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W._SpeechRecognitionResultList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W._StyleSheetList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver[index];
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return receiver[index];
+ },
+ $isJSIndexable: 1,
+ $isEfficientLengthIterable: 1,
+ $isJavaScriptIndexingBehavior: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ W._AttributeMap.prototype = {
+ cast$2$0: function(_, $K, $V) {
+ var t1 = type$.String;
+ return P.Map_castFrom(this, t1, t1, $K, $V);
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ var t1 = this._html$_element,
+ t2 = t1.hasAttribute(key);
+ if (!t2)
+ t1.setAttribute(key, ifAbsent.call$0());
+ return t1.getAttribute(key);
+ },
+ forEach$1: function(_, f) {
+ var t1, t2, t3, _i, t4;
+ for (t1 = this.get$keys(this), t2 = t1.length, t3 = this._html$_element, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ t4 = H._asStringS(t1[_i]);
+ f.call$2(t4, t3.getAttribute(t4));
+ }
+ },
+ get$keys: function(_) {
+ var keys, len, t2, i, attr, t3,
+ t1 = this._html$_element.attributes;
+ t1.toString;
+ keys = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ for (len = t1.length, t2 = type$._Attr, i = 0; i < len; ++i) {
+ attr = t2._as(t1[i]);
+ if (attr.namespaceURI == null) {
+ t3 = attr.name;
+ t3.toString;
+ keys.push(t3);
+ }
+ }
+ return keys;
+ },
+ get$values: function(_) {
+ var values, len, t2, i, attr, t3,
+ t1 = this._html$_element.attributes;
+ t1.toString;
+ values = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ for (len = t1.length, t2 = type$._Attr, i = 0; i < len; ++i) {
+ attr = t2._as(t1[i]);
+ if (attr.namespaceURI == null) {
+ t3 = attr.value;
+ t3.toString;
+ values.push(t3);
+ }
+ }
+ return values;
+ },
+ get$isEmpty: function(_) {
+ return this.get$keys(this).length === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this.get$keys(this).length !== 0;
+ }
+ };
+ W._ElementAttributeMap.prototype = {
+ containsKey$1: function(_, key) {
+ return typeof key == "string" && this._html$_element.hasAttribute(key);
+ },
+ $index: function(_, key) {
+ return this._html$_element.getAttribute(H._asStringS(key));
+ },
+ $indexSet: function(_, key, value) {
+ this._html$_element.setAttribute(key, value);
+ },
+ remove$1: function(_, key) {
+ var t1, value;
+ if (typeof key == "string") {
+ t1 = this._html$_element;
+ value = t1.getAttribute(key);
+ t1.removeAttribute(key);
+ t1 = value;
+ } else
+ t1 = null;
+ return t1;
+ },
+ get$length: function(_) {
+ return this.get$keys(this).length;
+ }
+ };
+ W.EventStreamProvider.prototype = {};
+ W._EventStream.prototype = {
+ listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onDone, onError) {
+ return W._EventStreamSubscription$(this._html$_target, this._eventType, onData, false, H._instanceType(this)._precomputed1);
+ }
+ };
+ W._ElementEventStreamImpl.prototype = {};
+ W._EventStreamSubscription.prototype = {
+ cancel$0: function(_) {
+ var _this = this;
+ if (_this._html$_target == null)
+ return null;
+ _this._unlisten$0();
+ return _this._onData = _this._html$_target = null;
+ },
+ onData$1: function(handleData) {
+ var t1, _this = this;
+ if (_this._html$_target == null)
+ throw H.wrapException(P.StateError$("Subscription has been canceled."));
+ _this._unlisten$0();
+ t1 = W._wrapZone(new W._EventStreamSubscription_onData_closure(handleData), type$.Event);
+ _this._onData = t1;
+ _this._tryResume$0();
+ },
+ pause$0: function(_) {
+ if (this._html$_target == null)
+ return;
+ ++this._pauseCount;
+ this._unlisten$0();
+ },
+ resume$0: function(_) {
+ var _this = this;
+ if (_this._html$_target == null || _this._pauseCount <= 0)
+ return;
+ --_this._pauseCount;
+ _this._tryResume$0();
+ },
+ _tryResume$0: function() {
+ var t2, _this = this,
+ t1 = _this._onData;
+ if (t1 != null && _this._pauseCount <= 0) {
+ t2 = _this._html$_target;
+ t2.toString;
+ J.addEventListener$3$x(t2, _this._eventType, t1, false);
+ }
+ },
+ _unlisten$0: function() {
+ var t2,
+ t1 = this._onData;
+ if (t1 != null) {
+ t2 = this._html$_target;
+ t2.toString;
+ J.removeEventListener$3$x(t2, this._eventType, t1, false);
+ }
+ }
+ };
+ W._EventStreamSubscription_closure.prototype = {
+ call$1: function(e) {
+ return this.onData.call$1(e);
+ },
+ $signature: 10
+ };
+ W._EventStreamSubscription_onData_closure.prototype = {
+ call$1: function(e) {
+ return this.handleData.call$1(e);
+ },
+ $signature: 10
+ };
+ W._Html5NodeValidator.prototype = {
+ _Html5NodeValidator$1$uriPolicy: function(uriPolicy) {
+ var _i;
+ if ($._Html5NodeValidator__attributeValidators.get$isEmpty($._Html5NodeValidator__attributeValidators)) {
+ for (_i = 0; _i < 262; ++_i)
+ $._Html5NodeValidator__attributeValidators.$indexSet(0, C.List_2Zi[_i], W.html__Html5NodeValidator__standardAttributeValidator$closure());
+ for (_i = 0; _i < 12; ++_i)
+ $._Html5NodeValidator__attributeValidators.$indexSet(0, C.List_yrN[_i], W.html__Html5NodeValidator__uriAttributeValidator$closure());
+ }
+ },
+ allowsElement$1: function(element) {
+ return $.$get$_Html5NodeValidator__allowedElements().contains$1(0, W.Element__safeTagName(element));
+ },
+ allowsAttribute$3: function(element, attributeName, value) {
+ var validator = $._Html5NodeValidator__attributeValidators.$index(0, H.S(W.Element__safeTagName(element)) + "::" + attributeName);
+ if (validator == null)
+ validator = $._Html5NodeValidator__attributeValidators.$index(0, "*::" + attributeName);
+ if (validator == null)
+ return false;
+ return validator.call$4(element, attributeName, value, this);
+ },
+ $isNodeValidator: 1
+ };
+ W.ImmutableListMixin.prototype = {
+ get$iterator: function(receiver) {
+ return new W.FixedSizeListIterator(receiver, this.get$length(receiver));
+ },
+ add$1: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot add to immutable List."));
+ },
+ sort$1: function(receiver, compare) {
+ throw H.wrapException(P.UnsupportedError$("Cannot sort immutable List."));
+ },
+ removeLast$0: function(receiver) {
+ throw H.wrapException(P.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ remove$1: function(receiver, object) {
+ throw H.wrapException(P.UnsupportedError$("Cannot remove from immutable List."));
+ },
+ setRange$4: function(receiver, start, end, iterable, skipCount) {
+ throw H.wrapException(P.UnsupportedError$("Cannot setRange on immutable List."));
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ }
+ };
+ W.NodeValidatorBuilder.prototype = {
+ allowsElement$1: function(element) {
+ return C.JSArray_methods.any$1(this._validators, new W.NodeValidatorBuilder_allowsElement_closure(element));
+ },
+ allowsAttribute$3: function(element, attributeName, value) {
+ return C.JSArray_methods.any$1(this._validators, new W.NodeValidatorBuilder_allowsAttribute_closure(element, attributeName, value));
+ },
+ $isNodeValidator: 1
+ };
+ W.NodeValidatorBuilder_allowsElement_closure.prototype = {
+ call$1: function(v) {
+ return v.allowsElement$1(this.element);
+ },
+ $signature: 91
+ };
+ W.NodeValidatorBuilder_allowsAttribute_closure.prototype = {
+ call$1: function(v) {
+ return v.allowsAttribute$3(this.element, this.attributeName, this.value);
+ },
+ $signature: 91
+ };
+ W._SimpleNodeValidator.prototype = {
+ _SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUriAttributes: function(uriPolicy, allowedAttributes, allowedElements, allowedUriAttributes) {
+ var legalAttributes, extraUriAttributes, t1;
+ this.allowedElements.addAll$1(0, allowedElements);
+ legalAttributes = allowedAttributes.where$1(0, new W._SimpleNodeValidator_closure());
+ extraUriAttributes = allowedAttributes.where$1(0, new W._SimpleNodeValidator_closure0());
+ this.allowedAttributes.addAll$1(0, legalAttributes);
+ t1 = this.allowedUriAttributes;
+ t1.addAll$1(0, C.List_empty0);
+ t1.addAll$1(0, extraUriAttributes);
+ },
+ allowsElement$1: function(element) {
+ return this.allowedElements.contains$1(0, W.Element__safeTagName(element));
+ },
+ allowsAttribute$3: function(element, attributeName, value) {
+ var _this = this,
+ tagName = W.Element__safeTagName(element),
+ t1 = _this.allowedUriAttributes;
+ if (t1.contains$1(0, H.S(tagName) + "::" + attributeName))
+ return _this.uriPolicy.allowsUri$1(value);
+ else if (t1.contains$1(0, "*::" + attributeName))
+ return _this.uriPolicy.allowsUri$1(value);
+ else {
+ t1 = _this.allowedAttributes;
+ if (t1.contains$1(0, H.S(tagName) + "::" + attributeName))
+ return true;
+ else if (t1.contains$1(0, "*::" + attributeName))
+ return true;
+ else if (t1.contains$1(0, H.S(tagName) + "::*"))
+ return true;
+ else if (t1.contains$1(0, "*::*"))
+ return true;
+ }
+ return false;
+ },
+ $isNodeValidator: 1
+ };
+ W._SimpleNodeValidator_closure.prototype = {
+ call$1: function(x) {
+ return !C.JSArray_methods.contains$1(C.List_yrN, x);
+ },
+ $signature: 30
+ };
+ W._SimpleNodeValidator_closure0.prototype = {
+ call$1: function(x) {
+ return C.JSArray_methods.contains$1(C.List_yrN, x);
+ },
+ $signature: 30
+ };
+ W._TemplatingNodeValidator.prototype = {
+ allowsAttribute$3: function(element, attributeName, value) {
+ if (this.super$_SimpleNodeValidator$allowsAttribute(element, attributeName, value))
+ return true;
+ if (attributeName === "template" && value === "")
+ return true;
+ if (element.getAttribute("template") === "")
+ return this._templateAttrs.contains$1(0, attributeName);
+ return false;
+ }
+ };
+ W._TemplatingNodeValidator_closure.prototype = {
+ call$1: function(attr) {
+ return "TEMPLATE::" + H.S(attr);
+ },
+ $signature: 38
+ };
+ W._SvgNodeValidator.prototype = {
+ allowsElement$1: function(element) {
+ var t1;
+ if (type$.ScriptElement._is(element))
+ return false;
+ t1 = type$.SvgElement._is(element);
+ if (t1 && W.Element__safeTagName(element) === "foreignObject")
+ return false;
+ if (t1)
+ return true;
+ return false;
+ },
+ allowsAttribute$3: function(element, attributeName, value) {
+ if (attributeName === "is" || C.JSString_methods.startsWith$1(attributeName, "on"))
+ return false;
+ return this.allowsElement$1(element);
+ },
+ $isNodeValidator: 1
+ };
+ W.FixedSizeListIterator.prototype = {
+ moveNext$0: function() {
+ var _this = this,
+ nextPosition = _this._html$_position + 1,
+ t1 = _this._html$_length;
+ if (nextPosition < t1) {
+ _this._html$_current = J.$index$asx(_this._array, nextPosition);
+ _this._html$_position = nextPosition;
+ return true;
+ }
+ _this._html$_current = null;
+ _this._html$_position = t1;
+ return false;
+ },
+ get$current: function(_) {
+ return this._html$_current;
+ }
+ };
+ W._DOMWindowCrossFrame.prototype = {};
+ W._SameOriginUriPolicy.prototype = {};
+ W._ValidatingTreeSanitizer.prototype = {
+ sanitizeTree$1: function(node) {
+ var _this = this,
+ walk = new W._ValidatingTreeSanitizer_sanitizeTree_walk(_this);
+ _this.modifiedTree = false;
+ walk.call$2(node, null);
+ for (; _this.modifiedTree;) {
+ _this.modifiedTree = false;
+ walk.call$2(node, null);
+ }
+ },
+ _removeNode$2: function(node, $parent) {
+ var t1 = this.modifiedTree = true;
+ if ($parent != null ? $parent !== node.parentNode : t1)
+ J.remove$0$ax(node);
+ else
+ $parent.removeChild(node);
+ },
+ _sanitizeUntrustedElement$2: function(element, $parent) {
+ var corruptedTest1, elementText, elementTagName, exception, t1,
+ corrupted = true,
+ attrs = null, isAttr = null;
+ try {
+ attrs = J.get$attributes$x(element);
+ isAttr = attrs._html$_element.getAttribute("is");
+ corruptedTest1 = function(element) {
+ if (!(element.attributes instanceof NamedNodeMap))
+ return true;
+ if (element.id == 'lastChild' || element.name == 'lastChild' || element.id == 'previousSibling' || element.name == 'previousSibling' || element.id == 'children' || element.name == 'children')
+ return true;
+ var childNodes = element.childNodes;
+ if (element.lastChild && element.lastChild !== childNodes[childNodes.length - 1])
+ return true;
+ if (element.children)
+ if (!(element.children instanceof HTMLCollection || element.children instanceof NodeList))
+ return true;
+ var length = 0;
+ if (element.children)
+ length = element.children.length;
+ for (var i = 0; i < length; i++) {
+ var child = element.children[i];
+ if (child.id == 'attributes' || child.name == 'attributes' || child.id == 'lastChild' || child.name == 'lastChild' || child.id == 'previousSibling' || child.name == 'previousSibling' || child.id == 'children' || child.name == 'children')
+ return true;
+ }
+ return false;
+ }(element);
+ corrupted = corruptedTest1 ? true : !(element.attributes instanceof NamedNodeMap);
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ elementText = "element unprintable";
+ try {
+ elementText = J.toString$0$(element);
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ try {
+ elementTagName = W.Element__safeTagName(element);
+ this._sanitizeElement$7(element, $parent, corrupted, elementText, elementTagName, attrs, isAttr);
+ } catch (exception) {
+ if (H.unwrapException(exception) instanceof P.ArgumentError)
+ throw exception;
+ else {
+ this._removeNode$2(element, $parent);
+ window;
+ t1 = "Removing corrupted element " + H.S(elementText);
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ }
+ }
+ },
+ _sanitizeElement$7: function(element, $parent, corrupted, text, tag, attrs, isAttr) {
+ var t1, keys, i, $name, t2, t3, _this = this;
+ if (corrupted) {
+ _this._removeNode$2(element, $parent);
+ window;
+ t1 = "Removing element due to corrupted attributes on <" + text + ">";
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ return;
+ }
+ if (!_this.validator.allowsElement$1(element)) {
+ _this._removeNode$2(element, $parent);
+ window;
+ t1 = "Removing disallowed element <" + H.S(tag) + "> from " + H.S($parent);
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ return;
+ }
+ if (isAttr != null)
+ if (!_this.validator.allowsAttribute$3(element, "is", isAttr)) {
+ _this._removeNode$2(element, $parent);
+ window;
+ t1 = "Removing disallowed type extension <" + H.S(tag) + ' is="' + isAttr + '">';
+ if (typeof console != "undefined")
+ window.console.warn(t1);
+ return;
+ }
+ t1 = attrs.get$keys(attrs);
+ keys = H.setRuntimeTypeInfo(t1.slice(0), H._arrayInstanceType(t1));
+ for (i = attrs.get$keys(attrs).length - 1, t1 = attrs._html$_element; i >= 0; --i) {
+ $name = keys[i];
+ t2 = _this.validator;
+ t3 = J.toLowerCase$0$s($name);
+ H._asStringS($name);
+ if (!t2.allowsAttribute$3(element, t3, t1.getAttribute($name))) {
+ window;
+ t2 = "Removing disallowed attribute <" + H.S(tag) + " " + $name + '="' + H.S(t1.getAttribute($name)) + '">';
+ if (typeof console != "undefined")
+ window.console.warn(t2);
+ t1.removeAttribute($name);
+ }
+ }
+ if (type$.TemplateElement._is(element)) {
+ t1 = element.content;
+ t1.toString;
+ _this.sanitizeTree$1(t1);
+ }
+ }
+ };
+ W._ValidatingTreeSanitizer_sanitizeTree_walk.prototype = {
+ call$2: function(node, $parent) {
+ var child, nextChild, t2, t3, exception,
+ t1 = this.$this;
+ switch (node.nodeType) {
+ case 1:
+ t1._sanitizeUntrustedElement$2(node, $parent);
+ break;
+ case 8:
+ case 11:
+ case 3:
+ case 4:
+ break;
+ default:
+ t1._removeNode$2(node, $parent);
+ }
+ child = node.lastChild;
+ for (; null != child;) {
+ nextChild = null;
+ try {
+ nextChild = child.previousSibling;
+ if (nextChild != null) {
+ t2 = nextChild.nextSibling;
+ t3 = child;
+ t3 = t2 == null ? t3 != null : t2 !== t3;
+ t2 = t3;
+ } else
+ t2 = false;
+ if (t2) {
+ t2 = P.StateError$("Corrupt HTML");
+ throw H.wrapException(t2);
+ }
+ } catch (exception) {
+ H.unwrapException(exception);
+ t2 = child;
+ t1.modifiedTree = true;
+ t3 = t2.parentNode;
+ t3 = node == null ? t3 != null : node !== t3;
+ if (t3) {
+ t3 = t2.parentNode;
+ if (t3 != null)
+ t3.removeChild(t2);
+ } else
+ node.removeChild(t2);
+ child = null;
+ nextChild = node.lastChild;
+ }
+ if (child != null)
+ this.call$2(child, node);
+ child = nextChild;
+ }
+ },
+ $signature: 190
+ };
+ W._CssStyleDeclaration_Interceptor_CssStyleDeclarationBase.prototype = {};
+ W._DomRectList_Interceptor_ListMixin.prototype = {};
+ W._DomRectList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._DomStringList_Interceptor_ListMixin.prototype = {};
+ W._DomStringList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._FileList_Interceptor_ListMixin.prototype = {};
+ W._FileList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._HtmlCollection_Interceptor_ListMixin.prototype = {};
+ W._HtmlCollection_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._MidiInputMap_Interceptor_MapMixin.prototype = {};
+ W._MidiOutputMap_Interceptor_MapMixin.prototype = {};
+ W._MimeTypeArray_Interceptor_ListMixin.prototype = {};
+ W._MimeTypeArray_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._NodeList_Interceptor_ListMixin.prototype = {};
+ W._NodeList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._PluginArray_Interceptor_ListMixin.prototype = {};
+ W._PluginArray_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._RtcStatsReport_Interceptor_MapMixin.prototype = {};
+ W._SourceBufferList_EventTarget_ListMixin.prototype = {};
+ W._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin.prototype = {};
+ W._SpeechGrammarList_Interceptor_ListMixin.prototype = {};
+ W._SpeechGrammarList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._Storage_Interceptor_MapMixin.prototype = {};
+ W._TextTrackCueList_Interceptor_ListMixin.prototype = {};
+ W._TextTrackCueList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W._TextTrackList_EventTarget_ListMixin.prototype = {};
+ W._TextTrackList_EventTarget_ListMixin_ImmutableListMixin.prototype = {};
+ W._TouchList_Interceptor_ListMixin.prototype = {};
+ W._TouchList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W.__CssRuleList_Interceptor_ListMixin.prototype = {};
+ W.__CssRuleList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W.__GamepadList_Interceptor_ListMixin.prototype = {};
+ W.__GamepadList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W.__NamedNodeMap_Interceptor_ListMixin.prototype = {};
+ W.__NamedNodeMap_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W.__SpeechRecognitionResultList_Interceptor_ListMixin.prototype = {};
+ W.__SpeechRecognitionResultList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ W.__StyleSheetList_Interceptor_ListMixin.prototype = {};
+ W.__StyleSheetList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ P._StructuredClone.prototype = {
+ findSlot$1: function(value) {
+ var i,
+ t1 = this.values,
+ $length = t1.length;
+ for (i = 0; i < $length; ++i)
+ if (t1[i] === value)
+ return i;
+ t1.push(value);
+ this.copies.push(null);
+ return $length;
+ },
+ walk$1: function(e) {
+ var slot, t2, copy, _this = this, t1 = {};
+ if (e == null)
+ return e;
+ if (H._isBool(e))
+ return e;
+ if (typeof e == "number")
+ return e;
+ if (typeof e == "string")
+ return e;
+ if (e instanceof P.DateTime)
+ return new Date(e._core$_value);
+ if (type$.RegExp._is(e))
+ throw H.wrapException(P.UnimplementedError$("structured clone of RegExp"));
+ if (type$.File._is(e))
+ return e;
+ if (type$.Blob._is(e))
+ return e;
+ if (type$.FileList._is(e))
+ return e;
+ if (type$.ImageData._is(e))
+ return e;
+ if (type$.NativeByteBuffer._is(e) || type$.NativeTypedData._is(e) || type$.MessagePort._is(e))
+ return e;
+ if (type$.Map_dynamic_dynamic._is(e)) {
+ slot = _this.findSlot$1(e);
+ t2 = _this.copies;
+ copy = t1.copy = t2[slot];
+ if (copy != null)
+ return copy;
+ copy = {};
+ t1.copy = copy;
+ t2[slot] = copy;
+ J.forEach$1$ax(e, new P._StructuredClone_walk_closure(t1, _this));
+ return t1.copy;
+ }
+ if (type$.List_dynamic._is(e)) {
+ slot = _this.findSlot$1(e);
+ copy = _this.copies[slot];
+ if (copy != null)
+ return copy;
+ return _this.copyList$2(e, slot);
+ }
+ if (type$.JSObject._is(e)) {
+ slot = _this.findSlot$1(e);
+ t2 = _this.copies;
+ copy = t1.copy = t2[slot];
+ if (copy != null)
+ return copy;
+ copy = {};
+ t1.copy = copy;
+ t2[slot] = copy;
+ _this.forEachObjectKey$2(e, new P._StructuredClone_walk_closure0(t1, _this));
+ return t1.copy;
+ }
+ throw H.wrapException(P.UnimplementedError$("structured clone of other type"));
+ },
+ copyList$2: function(e, slot) {
+ var i,
+ t1 = J.getInterceptor$asx(e),
+ $length = t1.get$length(e),
+ copy = new Array($length);
+ this.copies[slot] = copy;
+ for (i = 0; i < $length; ++i)
+ copy[i] = this.walk$1(t1.$index(e, i));
+ return copy;
+ }
+ };
+ P._StructuredClone_walk_closure.prototype = {
+ call$2: function(key, value) {
+ this._box_0.copy[key] = this.$this.walk$1(value);
+ },
+ $signature: 31
+ };
+ P._StructuredClone_walk_closure0.prototype = {
+ call$2: function(key, value) {
+ this._box_0.copy[key] = this.$this.walk$1(value);
+ },
+ $signature: 184
+ };
+ P._AcceptStructuredClone.prototype = {
+ findSlot$1: function(value) {
+ var i,
+ t1 = this.values,
+ $length = t1.length;
+ for (i = 0; i < $length; ++i)
+ if (t1[i] === value)
+ return i;
+ t1.push(value);
+ this.copies.push(null);
+ return $length;
+ },
+ walk$1: function(e) {
+ var proto, slot, t1, copy, t2, l, $length, i, _this = this, _box_0 = {};
+ if (e == null)
+ return e;
+ if (H._isBool(e))
+ return e;
+ if (typeof e == "number")
+ return e;
+ if (typeof e == "string")
+ return e;
+ if (e instanceof Date)
+ return P.DateTime$fromMillisecondsSinceEpoch(e.getTime(), true);
+ if (e instanceof RegExp)
+ throw H.wrapException(P.UnimplementedError$("structured clone of RegExp"));
+ if (typeof Promise != "undefined" && e instanceof Promise)
+ return P.promiseToFuture(e, type$.dynamic);
+ proto = Object.getPrototypeOf(e);
+ if (proto === Object.prototype || proto === null) {
+ slot = _this.findSlot$1(e);
+ t1 = _this.copies;
+ copy = _box_0.copy = t1[slot];
+ if (copy != null)
+ return copy;
+ t2 = type$.dynamic;
+ copy = P.LinkedHashMap_LinkedHashMap$_empty(t2, t2);
+ _box_0.copy = copy;
+ t1[slot] = copy;
+ _this.forEachJsField$2(e, new P._AcceptStructuredClone_walk_closure(_box_0, _this));
+ return _box_0.copy;
+ }
+ if (e instanceof Array) {
+ l = e;
+ slot = _this.findSlot$1(l);
+ t1 = _this.copies;
+ copy = t1[slot];
+ if (copy != null)
+ return copy;
+ t2 = J.getInterceptor$asx(l);
+ $length = t2.get$length(l);
+ copy = _this.mustCopy ? new Array($length) : l;
+ t1[slot] = copy;
+ for (t1 = J.getInterceptor$ax(copy), i = 0; i < $length; ++i)
+ t1.$indexSet(copy, i, _this.walk$1(t2.$index(l, i)));
+ return copy;
+ }
+ return e;
+ },
+ convertNativeToDart_AcceptStructuredClone$2$mustCopy: function(object, mustCopy) {
+ this.mustCopy = mustCopy;
+ return this.walk$1(object);
+ }
+ };
+ P._AcceptStructuredClone_walk_closure.prototype = {
+ call$2: function(key, value) {
+ var t1 = this._box_0.copy,
+ t2 = this.$this.walk$1(value);
+ J.$indexSet$ax(t1, key, t2);
+ return t2;
+ },
+ $signature: 181
+ };
+ P.convertDartToNative_Dictionary_closure.prototype = {
+ call$2: function(key, value) {
+ this.object[key] = value;
+ },
+ $signature: 31
+ };
+ P._StructuredCloneDart2Js.prototype = {
+ forEachObjectKey$2: function(object, action) {
+ var t1, t2, _i, key;
+ for (t1 = Object.keys(object), t2 = t1.length, _i = 0; _i < t2; ++_i) {
+ key = t1[_i];
+ action.call$2(key, object[key]);
+ }
+ }
+ };
+ P._AcceptStructuredCloneDart2Js.prototype = {
+ forEachJsField$2: function(object, action) {
+ var t1, t2, _i, key;
+ for (t1 = Object.keys(object), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ key = t1[_i];
+ action.call$2(key, object[key]);
+ }
+ }
+ };
+ P.FilteredElementList.prototype = {
+ get$_html_common$_iterable: function() {
+ var t1 = this._childNodes,
+ t2 = H._instanceType(t1);
+ return new H.MappedIterable(new H.WhereIterable(t1, new P.FilteredElementList__iterable_closure(), t2._eval$1("WhereIterable")), new P.FilteredElementList__iterable_closure0(), t2._eval$1("MappedIterable"));
+ },
+ forEach$1: function(_, f) {
+ C.JSArray_methods.forEach$1(P.List_List$from(this.get$_html_common$_iterable(), false, type$.Element), f);
+ },
+ $indexSet: function(_, index, value) {
+ var t1 = this.get$_html_common$_iterable();
+ J.replaceWith$1$x(t1._f.call$1(J.elementAt$1$ax(t1._iterable, index)), value);
+ },
+ set$length: function(_, newLength) {
+ var len = J.get$length$asx(this.get$_html_common$_iterable()._iterable);
+ if (newLength >= len)
+ return;
+ else if (newLength < 0)
+ throw H.wrapException(P.ArgumentError$("Invalid list length"));
+ this.removeRange$2(0, newLength, len);
+ },
+ add$1: function(_, value) {
+ this._childNodes._this.appendChild(value);
+ },
+ contains$1: function(_, needle) {
+ if (!type$.Element._is(needle))
+ return false;
+ return needle.parentNode === this._html_common$_node;
+ },
+ sort$1: function(_, compare) {
+ throw H.wrapException(P.UnsupportedError$("Cannot sort filtered list"));
+ },
+ setRange$4: function(_, start, end, iterable, skipCount) {
+ throw H.wrapException(P.UnsupportedError$("Cannot setRange on filtered list"));
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ removeRange$2: function(_, start, end) {
+ var t1 = this.get$_html_common$_iterable();
+ t1 = H.SkipIterable_SkipIterable(t1, start, t1.$ti._eval$1("Iterable.E"));
+ C.JSArray_methods.forEach$1(P.List_List$from(H.TakeIterable_TakeIterable(t1, end - start, H._instanceType(t1)._eval$1("Iterable.E")), true, type$.dynamic), new P.FilteredElementList_removeRange_closure());
+ },
+ removeLast$0: function(_) {
+ var t1 = this.get$_html_common$_iterable(),
+ result = t1._f.call$1(J.get$last$ax(t1._iterable));
+ if (result != null)
+ J.remove$0$ax(result);
+ return result;
+ },
+ remove$1: function(_, element) {
+ return false;
+ },
+ get$length: function(_) {
+ return J.get$length$asx(this.get$_html_common$_iterable()._iterable);
+ },
+ $index: function(_, index) {
+ var t1 = this.get$_html_common$_iterable();
+ return t1._f.call$1(J.elementAt$1$ax(t1._iterable, index));
+ },
+ get$iterator: function(_) {
+ var t1 = P.List_List$from(this.get$_html_common$_iterable(), false, type$.Element);
+ return new J.ArrayIterator(t1, t1.length);
+ }
+ };
+ P.FilteredElementList__iterable_closure.prototype = {
+ call$1: function(n) {
+ return type$.Element._is(n);
+ },
+ $signature: 85
+ };
+ P.FilteredElementList__iterable_closure0.prototype = {
+ call$1: function(n) {
+ return type$.Element._as(n);
+ },
+ $signature: 177
+ };
+ P.FilteredElementList_removeRange_closure.prototype = {
+ call$1: function(el) {
+ return J.remove$0$ax(el);
+ },
+ $signature: 8
+ };
+ P.Database.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ P.Index.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ P.KeyRange.prototype = {$isKeyRange: 1};
+ P.ObjectStore.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ P.VersionChangeEvent.prototype = {
+ get$target: function(receiver) {
+ return receiver.target;
+ }
+ };
+ P.JsObject__convertDataTree__convert.prototype = {
+ call$1: function(o) {
+ var convertedMap, t2, key, convertedList,
+ t1 = this._convertedObjects;
+ if (t1.containsKey$1(0, o))
+ return t1.$index(0, o);
+ if (type$.Map_dynamic_dynamic._is(o)) {
+ convertedMap = {};
+ t1.$indexSet(0, o, convertedMap);
+ for (t1 = J.getInterceptor$x(o), t2 = J.get$iterator$ax(t1.get$keys(o)); t2.moveNext$0();) {
+ key = t2.get$current(t2);
+ convertedMap[key] = this.call$1(t1.$index(o, key));
+ }
+ return convertedMap;
+ } else if (type$.Iterable_dynamic._is(o)) {
+ convertedList = [];
+ t1.$indexSet(0, o, convertedList);
+ C.JSArray_methods.addAll$1(convertedList, J.map$1$1$ax(o, this, type$.dynamic));
+ return convertedList;
+ } else
+ return P._convertToJS(o);
+ },
+ $signature: 118
+ };
+ P._convertToJS_closure.prototype = {
+ call$1: function(o) {
+ var jsFunction = function(_call, f, captureThis) {
+ return function() {
+ return _call(f, captureThis, this, Array.prototype.slice.apply(arguments));
+ };
+ }(P._callDartFunction, o, false);
+ P._defineProperty(jsFunction, $.$get$DART_CLOSURE_PROPERTY_NAME(), o);
+ return jsFunction;
+ },
+ $signature: 34
+ };
+ P._convertToJS_closure0.prototype = {
+ call$1: function(o) {
+ return new this.ctor(o);
+ },
+ $signature: 34
+ };
+ P._wrapToDart_closure.prototype = {
+ call$1: function(o) {
+ return new P.JsFunction(o);
+ },
+ $signature: 176
+ };
+ P._wrapToDart_closure0.prototype = {
+ call$1: function(o) {
+ return new P.JsArray(o, type$.JsArray_dynamic);
+ },
+ $signature: 175
+ };
+ P._wrapToDart_closure1.prototype = {
+ call$1: function(o) {
+ return new P.JsObject(o);
+ },
+ $signature: 174
+ };
+ P.JsObject.prototype = {
+ $index: function(_, property) {
+ if (typeof property != "string" && typeof property != "number")
+ throw H.wrapException(P.ArgumentError$("property is not a String or num"));
+ return P._convertToDart(this._js$_jsObject[property]);
+ },
+ $indexSet: function(_, property, value) {
+ if (typeof property != "string" && typeof property != "number")
+ throw H.wrapException(P.ArgumentError$("property is not a String or num"));
+ this._js$_jsObject[property] = P._convertToJS(value);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.JsObject && this._js$_jsObject === other._js$_jsObject;
+ },
+ toString$0: function(_) {
+ var t1, exception;
+ try {
+ t1 = String(this._js$_jsObject);
+ return t1;
+ } catch (exception) {
+ H.unwrapException(exception);
+ t1 = this.super$Object$toString(0);
+ return t1;
+ }
+ },
+ callMethod$2: function(method, args) {
+ var t1 = this._js$_jsObject,
+ t2 = args == null ? null : P.List_List$from(new H.MappedListIterable(args, P.js___convertToJS$closure(), H._arrayInstanceType(args)._eval$1("MappedListIterable<1,@>")), true, type$.dynamic);
+ return P._convertToDart(t1[method].apply(t1, t2));
+ },
+ callMethod$1: function(method) {
+ return this.callMethod$2(method, null);
+ },
+ get$hashCode: function(_) {
+ return 0;
+ }
+ };
+ P.JsFunction.prototype = {};
+ P.JsArray.prototype = {
+ _checkIndex$1: function(index) {
+ var _this = this,
+ t1 = index < 0 || index >= _this.get$length(_this);
+ if (t1)
+ throw H.wrapException(P.RangeError$range(index, 0, _this.get$length(_this), null, null));
+ },
+ $index: function(_, index) {
+ if (H._isInt(index))
+ this._checkIndex$1(index);
+ return this.super$JsObject$$index(0, index);
+ },
+ $indexSet: function(_, index, value) {
+ if (H._isInt(index))
+ this._checkIndex$1(index);
+ this.super$JsObject$$indexSet(0, index, value);
+ },
+ get$length: function(_) {
+ var len = this._js$_jsObject.length;
+ if (typeof len === "number" && len >>> 0 === len)
+ return len;
+ throw H.wrapException(P.StateError$("Bad JsArray length"));
+ },
+ set$length: function(_, $length) {
+ this.super$JsObject$$indexSet(0, "length", $length);
+ },
+ add$1: function(_, value) {
+ this.callMethod$2("push", [value]);
+ },
+ removeLast$0: function(_) {
+ if (this.get$length(this) === 0)
+ throw H.wrapException(P.RangeError$(-1));
+ return this.callMethod$1("pop");
+ },
+ setRange$4: function(_, start, end, iterable, skipCount) {
+ var $length, args;
+ P.JsArray__checkRange(start, end, this.get$length(this));
+ $length = end - start;
+ if ($length === 0)
+ return;
+ args = [start, $length];
+ C.JSArray_methods.addAll$1(args, J.skip$1$ax(iterable, skipCount).take$1(0, $length));
+ this.callMethod$2("splice", args);
+ },
+ setRange$3: function($receiver, start, end, iterable) {
+ return this.setRange$4($receiver, start, end, iterable, 0);
+ },
+ sort$1: function(_, compare) {
+ this.callMethod$2("sort", compare == null ? [] : [compare]);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ P._JsArray_JsObject_ListMixin.prototype = {};
+ P._convertDataTree__convert.prototype = {
+ call$1: function(o) {
+ var convertedMap, t2, key, convertedList,
+ t1 = this._convertedObjects;
+ if (t1.containsKey$1(0, o))
+ return t1.$index(0, o);
+ if (type$.Map_dynamic_dynamic._is(o)) {
+ convertedMap = {};
+ t1.$indexSet(0, o, convertedMap);
+ for (t1 = J.getInterceptor$x(o), t2 = J.get$iterator$ax(t1.get$keys(o)); t2.moveNext$0();) {
+ key = t2.get$current(t2);
+ convertedMap[key] = this.call$1(t1.$index(o, key));
+ }
+ return convertedMap;
+ } else if (type$.Iterable_dynamic._is(o)) {
+ convertedList = [];
+ t1.$indexSet(0, o, convertedList);
+ C.JSArray_methods.addAll$1(convertedList, J.map$1$1$ax(o, this, type$.dynamic));
+ return convertedList;
+ } else
+ return o;
+ },
+ $signature: 100
+ };
+ P.promiseToFuture_closure.prototype = {
+ call$1: function(r) {
+ return this.completer.complete$1(0, r);
+ },
+ $signature: 8
+ };
+ P.promiseToFuture_closure0.prototype = {
+ call$1: function(e) {
+ return this.completer.completeError$1(e);
+ },
+ $signature: 8
+ };
+ P._JSRandom.prototype = {
+ nextDouble$0: function() {
+ return Math.random();
+ }
+ };
+ P.Point.prototype = {
+ toString$0: function(_) {
+ return "Point(" + H.S(this.x) + ", " + H.S(this.y) + ")";
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.Point && this.x == other.x && this.y == other.y;
+ },
+ get$hashCode: function(_) {
+ var t1 = J.get$hashCode$(this.x),
+ t2 = J.get$hashCode$(this.y);
+ return H.SystemHash_finish(H.SystemHash_combine(H.SystemHash_combine(0, t1), t2));
+ },
+ $add: function(_, other) {
+ var t1 = this.$ti,
+ t2 = t1._precomputed1;
+ return new P.Point(t2._as(this.x + other.x), t2._as(this.y + other.y), t1);
+ },
+ $sub: function(_, other) {
+ var t1 = this.$ti,
+ t2 = t1._precomputed1;
+ return new P.Point(t2._as(this.x - other.x), t2._as(this.y - other.y), t1);
+ },
+ $mul: function(_, factor) {
+ var t1 = this.$ti,
+ t2 = t1._precomputed1;
+ return new P.Point(t2._as(this.x * factor), t2._as(this.y * factor), t1);
+ }
+ };
+ P.Length.prototype = {$isLength: 1};
+ P.LengthList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver.getItem(index);
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return this.$index(receiver, index);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ P.Number.prototype = {$isNumber: 1};
+ P.NumberList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver.getItem(index);
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return this.$index(receiver, index);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ P.PointList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ P.Rect0.prototype = {
+ set$height: function(receiver, value) {
+ receiver.height = value;
+ },
+ set$width: function(receiver, value) {
+ receiver.width = value;
+ }
+ };
+ P.ScriptElement0.prototype = {$isScriptElement0: 1};
+ P.StringList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver.getItem(index);
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return this.$index(receiver, index);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ P.SvgElement.prototype = {
+ get$children: function(receiver) {
+ return new P.FilteredElementList(receiver, new W._ChildNodeListLazy(receiver));
+ },
+ createFragment$3$treeSanitizer$validator: function(receiver, svg, treeSanitizer, validator) {
+ var html, t2, fragment, svgFragment, root,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_NodeValidator);
+ t1.push(W._Html5NodeValidator$(null));
+ t1.push(W._TemplatingNodeValidator$());
+ t1.push(new W._SvgNodeValidator());
+ treeSanitizer = new W._ValidatingTreeSanitizer(new W.NodeValidatorBuilder(t1));
+ html = '' + svg + "";
+ t1 = document;
+ t2 = t1.body;
+ t2.toString;
+ fragment = C.BodyElement_methods.createFragment$2$treeSanitizer(t2, html, treeSanitizer);
+ svgFragment = t1.createDocumentFragment();
+ fragment.toString;
+ t1 = new W._ChildNodeListLazy(fragment);
+ root = t1.get$single(t1);
+ for (; t1 = root.firstChild, t1 != null;)
+ svgFragment.appendChild(t1);
+ return svgFragment;
+ },
+ $isSvgElement: 1
+ };
+ P.Transform0.prototype = {$isTransform0: 1};
+ P.TransformList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ return receiver.getItem(index);
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return this.$index(receiver, index);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ P._LengthList_Interceptor_ListMixin.prototype = {};
+ P._LengthList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ P._NumberList_Interceptor_ListMixin.prototype = {};
+ P._NumberList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ P._StringList_Interceptor_ListMixin.prototype = {};
+ P._StringList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ P._TransformList_Interceptor_ListMixin.prototype = {};
+ P._TransformList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ P.Endian.prototype = {};
+ P.ClipOp.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.PathFillType.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P._StoredMessage.prototype = {};
+ P._Channel.prototype = {
+ get$length: function(_) {
+ var t1 = this._ui$_queue;
+ return t1.get$length(t1);
+ },
+ push$1: function(message) {
+ var result,
+ t1 = this._capacity;
+ if (t1 <= 0)
+ return true;
+ result = this._dropOverflowMessages$1(t1 - 1);
+ this._ui$_queue._add$1(0, message);
+ return result;
+ },
+ _dropOverflowMessages$1: function(lengthLimit) {
+ var t1, result;
+ for (t1 = this._ui$_queue, result = false; (t1._tail - t1._head & t1._table.length - 1) >>> 0 > lengthLimit; result = true)
+ t1.removeFirst$0().callback.call$1(null);
+ return result;
+ }
+ };
+ P.ChannelBuffers.prototype = {
+ push$3: function($name, data, callback) {
+ this._channels.putIfAbsent$2(0, $name, new P.ChannelBuffers_push_closure()).push$1(new P._StoredMessage(data, callback));
+ },
+ drain$2: function($name, callback) {
+ return this.drain$body$ChannelBuffers($name, callback);
+ },
+ drain$body$ChannelBuffers: function($name, callback) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t2, channel, t1;
+ var $async$drain$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ channel = $async$self._channels.$index(0, $name);
+ t1 = channel != null;
+ case 2:
+ // while condition
+ if (t1) {
+ t2 = channel._ui$_queue;
+ t2 = t2._head !== t2._tail;
+ } else
+ t2 = false;
+ if (!t2) {
+ // goto after while
+ $async$goto = 3;
+ break;
+ }
+ t2 = channel._ui$_queue.removeFirst$0();
+ $async$goto = 4;
+ return P._asyncAwait(callback.call$2(t2.data, t2.callback), $async$drain$2);
+ case 4:
+ // returning from await.
+ // goto while condition
+ $async$goto = 2;
+ break;
+ case 3:
+ // after while
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$drain$2, $async$completer);
+ },
+ resize$2: function(_, $name, newSize) {
+ var t1 = this._channels,
+ channel = t1.$index(0, $name);
+ if (channel == null)
+ t1.$indexSet(0, $name, new P._Channel(P.ListQueue$(newSize, type$._StoredMessage), newSize));
+ else {
+ channel._capacity = newSize;
+ channel._dropOverflowMessages$1(newSize);
+ }
+ }
+ };
+ P.ChannelBuffers_push_closure.prototype = {
+ call$0: function() {
+ return new P._Channel(P.ListQueue$(1, type$._StoredMessage), 1);
+ },
+ $signature: 169
+ };
+ P.OffsetBase.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.OffsetBase && other._dx == this._dx && other._dy == this._dy;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this._dx, this._dy, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "OffsetBase(" + J.toStringAsFixed$1$n(this._dx, 1) + ", " + J.toStringAsFixed$1$n(this._dy, 1) + ")";
+ }
+ };
+ P.Offset.prototype = {
+ get$distance: function() {
+ var t1 = this._dx,
+ t2 = this._dy;
+ return Math.sqrt(t1 * t1 + t2 * t2);
+ },
+ get$distanceSquared: function() {
+ var t1 = this._dx,
+ t2 = this._dy;
+ return t1 * t1 + t2 * t2;
+ },
+ $sub: function(_, other) {
+ return new P.Offset(this._dx - other._dx, this._dy - other._dy);
+ },
+ $add: function(_, other) {
+ return new P.Offset(this._dx + other._dx, this._dy + other._dy);
+ },
+ $mul: function(_, operand) {
+ return new P.Offset(this._dx * operand, this._dy * operand);
+ },
+ $div: function(_, operand) {
+ return new P.Offset(this._dx / operand, this._dy / operand);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.Offset && other._dx == this._dx && other._dy == this._dy;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this._dx, this._dy, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "Offset(" + J.toStringAsFixed$1$n(this._dx, 1) + ", " + J.toStringAsFixed$1$n(this._dy, 1) + ")";
+ }
+ };
+ P.Size.prototype = {
+ get$isEmpty: function(_) {
+ return this._dx <= 0 || this._dy <= 0;
+ },
+ $sub: function(_, other) {
+ var _this = this;
+ if (other instanceof P.Size)
+ return new P.Offset(_this._dx - other._dx, _this._dy - other._dy);
+ if (other instanceof P.Offset)
+ return new P.Size(_this._dx - other._dx, _this._dy - other._dy);
+ throw H.wrapException(P.ArgumentError$(other));
+ },
+ $add: function(_, other) {
+ return new P.Size(this._dx + other._dx, this._dy + other._dy);
+ },
+ $mul: function(_, operand) {
+ return new P.Size(this._dx * operand, this._dy * operand);
+ },
+ $div: function(_, operand) {
+ return new P.Size(this._dx / operand, this._dy / operand);
+ },
+ center$1: function(origin) {
+ return new P.Offset(origin._dx + this._dx / 2, origin._dy + this._dy / 2);
+ },
+ bottomRight$1: function(_, origin) {
+ return new P.Offset(origin._dx + this._dx, origin._dy + this._dy);
+ },
+ contains$1: function(_, offset) {
+ var t1 = offset._dx;
+ if (t1 >= 0)
+ if (t1 < this._dx) {
+ t1 = offset._dy;
+ t1 = t1 >= 0 && t1 < this._dy;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.Size && other._dx == this._dx && other._dy == this._dy;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this._dx, this._dy, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "Size(" + J.toStringAsFixed$1$n(this._dx, 1) + ", " + J.toStringAsFixed$1$n(this._dy, 1) + ")";
+ }
+ };
+ P.Rect.prototype = {
+ get$isFinite: function(_) {
+ var _this = this,
+ t1 = _this.left;
+ t1.toString;
+ if (isFinite(t1)) {
+ t1 = _this.top;
+ t1.toString;
+ if (isFinite(t1)) {
+ t1 = _this.right;
+ t1.toString;
+ if (isFinite(t1)) {
+ t1 = _this.bottom;
+ t1.toString;
+ t1 = isFinite(t1);
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ } else
+ t1 = false;
+ return t1;
+ },
+ get$isEmpty: function(_) {
+ var _this = this;
+ return _this.left >= _this.right || _this.top >= _this.bottom;
+ },
+ shift$1: function(offset) {
+ var _this = this,
+ t1 = offset._dx,
+ t2 = offset._dy;
+ return new P.Rect(_this.left + t1, _this.top + t2, _this.right + t1, _this.bottom + t2);
+ },
+ translate$2: function(_, translateX, translateY) {
+ var _this = this;
+ return new P.Rect(_this.left + translateX, _this.top + translateY, _this.right + translateX, _this.bottom + translateY);
+ },
+ inflate$1: function(delta) {
+ var _this = this;
+ return new P.Rect(_this.left - delta, _this.top - delta, _this.right + delta, _this.bottom + delta);
+ },
+ intersect$1: function(other) {
+ var t2, t3, t4, _this = this,
+ t1 = other.left;
+ t1 = Math.max(H.checkNum(_this.left), H.checkNum(t1));
+ t2 = other.top;
+ t2 = Math.max(H.checkNum(_this.top), H.checkNum(t2));
+ t3 = other.right;
+ t3 = Math.min(H.checkNum(_this.right), H.checkNum(t3));
+ t4 = other.bottom;
+ return new P.Rect(t1, t2, t3, Math.min(H.checkNum(_this.bottom), H.checkNum(t4)));
+ },
+ expandToInclude$1: function(other) {
+ var t2, t3, t4, _this = this,
+ t1 = other.left;
+ t1 = Math.min(H.checkNum(_this.left), H.checkNum(t1));
+ t2 = other.top;
+ t2 = Math.min(H.checkNum(_this.top), H.checkNum(t2));
+ t3 = other.right;
+ t3 = Math.max(H.checkNum(_this.right), H.checkNum(t3));
+ t4 = other.bottom;
+ return new P.Rect(t1, t2, t3, Math.max(H.checkNum(_this.bottom), H.checkNum(t4)));
+ },
+ get$shortestSide: function() {
+ var _this = this;
+ return Math.min(Math.abs(_this.right - _this.left), Math.abs(_this.bottom - _this.top));
+ },
+ get$centerLeft: function() {
+ var t1 = this.top;
+ return new P.Offset(this.left, t1 + (this.bottom - t1) / 2);
+ },
+ get$center: function() {
+ var _this = this,
+ t1 = _this.left,
+ t2 = _this.top;
+ return new P.Offset(t1 + (_this.right - t1) / 2, t2 + (_this.bottom - t2) / 2);
+ },
+ contains$1: function(_, offset) {
+ var _this = this,
+ t1 = offset._dx;
+ if (t1 >= _this.left)
+ if (t1 < _this.right) {
+ t1 = offset._dy;
+ t1 = t1 >= _this.top && t1 < _this.bottom;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (H.getRuntimeType(_this) !== J.get$runtimeType$(other))
+ return false;
+ return other instanceof P.Rect && other.left == _this.left && other.top == _this.top && other.right == _this.right && other.bottom == _this.bottom;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.left, _this.top, _this.right, _this.bottom, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "Rect.fromLTRB(" + J.toStringAsFixed$1$n(_this.left, 1) + ", " + J.toStringAsFixed$1$n(_this.top, 1) + ", " + J.toStringAsFixed$1$n(_this.right, 1) + ", " + J.toStringAsFixed$1$n(_this.bottom, 1) + ")";
+ }
+ };
+ P.Radius.prototype = {
+ $sub: function(_, other) {
+ return new P.Radius(this.x - other.x, this.y - other.y);
+ },
+ $add: function(_, other) {
+ return new P.Radius(this.x + other.x, this.y + other.y);
+ },
+ $mul: function(_, operand) {
+ return new P.Radius(this.x * operand, this.y * operand);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (H.getRuntimeType(_this) !== J.get$runtimeType$(other))
+ return false;
+ return other instanceof P.Radius && other.x === _this.x && other.y === _this.y;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.x, this.y, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t1 = this.x,
+ t2 = this.y;
+ return t1 === t2 ? "Radius.circular(" + C.JSNumber_methods.toStringAsFixed$1(t1, 1) + ")" : "Radius.elliptical(" + C.JSNumber_methods.toStringAsFixed$1(t1, 1) + ", " + C.JSNumber_methods.toStringAsFixed$1(t2, 1) + ")";
+ }
+ };
+ P.RRect.prototype = {
+ inflate$1: function(delta) {
+ var _this = this;
+ return new P.RRect(_this.left - delta, _this.top - delta, _this.right + delta, _this.bottom + delta, _this.tlRadiusX + delta, _this.tlRadiusY + delta, _this.trRadiusX + delta, _this.trRadiusY + delta, _this.brRadiusX + delta, _this.brRadiusY + delta, _this.blRadiusX + delta, _this.blRadiusY + delta, false);
+ },
+ _getMin$4: function(min, radius1, radius2, limit) {
+ var sum = radius1 + radius2;
+ if (sum > limit && sum !== 0)
+ return Math.min(min, limit / sum);
+ return min;
+ },
+ scaleRadii$0: function() {
+ var _this = this,
+ t1 = _this.blRadiusY,
+ t2 = _this.tlRadiusY,
+ t3 = _this.bottom,
+ t4 = _this.top,
+ t5 = t3 - t4,
+ t6 = _this.tlRadiusX,
+ t7 = _this.trRadiusX,
+ t8 = _this.right,
+ t9 = _this.left,
+ t10 = t8 - t9,
+ t11 = _this.trRadiusY,
+ t12 = _this.brRadiusY,
+ t13 = _this.brRadiusX,
+ t14 = _this.blRadiusX,
+ scale = _this._getMin$4(_this._getMin$4(_this._getMin$4(_this._getMin$4(1, t1, t2, t5), t6, t7, t10), t11, t12, t5), t13, t14, t10);
+ if (scale < 1)
+ return new P.RRect(t9, t4, t8, t3, t6 * scale, t2 * scale, t7 * scale, t11 * scale, t13 * scale, t12 * scale, t14 * scale, t1 * scale, false);
+ return new P.RRect(t9, t4, t8, t3, t6, t2, t7, t11, t13, t12, t14, t1, false);
+ },
+ contains$1: function(_, point) {
+ var t3, scaled, radiusX, x, radiusY, y, _this = this,
+ t1 = point._dx,
+ t2 = _this.left;
+ if (!(t1 < t2))
+ if (!(t1 >= _this.right)) {
+ t3 = point._dy;
+ t3 = t3 < _this.top || t3 >= _this.bottom;
+ } else
+ t3 = true;
+ else
+ t3 = true;
+ if (t3)
+ return false;
+ scaled = _this.scaleRadii$0();
+ radiusX = scaled.tlRadiusX;
+ if (t1 < t2 + radiusX && point._dy < _this.top + scaled.tlRadiusY) {
+ x = t1 - t2 - radiusX;
+ radiusY = scaled.tlRadiusY;
+ y = point._dy - _this.top - radiusY;
+ } else {
+ t3 = _this.right;
+ radiusX = scaled.trRadiusX;
+ if (t1 > t3 - radiusX && point._dy < _this.top + scaled.trRadiusY) {
+ x = t1 - t3 + radiusX;
+ radiusY = scaled.trRadiusY;
+ y = point._dy - _this.top - radiusY;
+ } else {
+ radiusX = scaled.brRadiusX;
+ if (t1 > t3 - radiusX && point._dy > _this.bottom - scaled.brRadiusY) {
+ x = t1 - t3 + radiusX;
+ radiusY = scaled.brRadiusY;
+ y = point._dy - _this.bottom + radiusY;
+ } else {
+ radiusX = scaled.blRadiusX;
+ if (t1 < t2 + radiusX && point._dy > _this.bottom - scaled.blRadiusY) {
+ x = t1 - t2 - radiusX;
+ radiusY = scaled.blRadiusY;
+ y = point._dy - _this.bottom + radiusY;
+ } else
+ return true;
+ }
+ }
+ }
+ x /= radiusX;
+ y /= radiusY;
+ if (x * x + y * y > 1)
+ return false;
+ return true;
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (H.getRuntimeType(_this) !== J.get$runtimeType$(other))
+ return false;
+ return other instanceof P.RRect && other.left == _this.left && other.top == _this.top && other.right == _this.right && other.bottom == _this.bottom && other.tlRadiusX === _this.tlRadiusX && other.tlRadiusY === _this.tlRadiusY && other.trRadiusX === _this.trRadiusX && other.trRadiusY === _this.trRadiusY && other.blRadiusX === _this.blRadiusX && other.blRadiusY === _this.blRadiusY && other.brRadiusX === _this.brRadiusX && other.brRadiusY === _this.brRadiusY;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.left, _this.top, _this.right, _this.bottom, _this.tlRadiusX, _this.tlRadiusY, _this.trRadiusX, _this.trRadiusY, _this.blRadiusX, _this.blRadiusY, _this.brRadiusX, _this.brRadiusY, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t5, t6, _this = this,
+ rect = J.toStringAsFixed$1$n(_this.left, 1) + ", " + J.toStringAsFixed$1$n(_this.top, 1) + ", " + J.toStringAsFixed$1$n(_this.right, 1) + ", " + J.toStringAsFixed$1$n(_this.bottom, 1),
+ t1 = _this.tlRadiusX,
+ t2 = _this.tlRadiusY,
+ t3 = _this.trRadiusX,
+ t4 = _this.trRadiusY;
+ if (new P.Radius(t1, t2).$eq(0, new P.Radius(t3, t4))) {
+ t5 = _this.brRadiusX;
+ t6 = _this.brRadiusY;
+ t5 = new P.Radius(t3, t4).$eq(0, new P.Radius(t5, t6)) && new P.Radius(t5, t6).$eq(0, new P.Radius(_this.blRadiusX, _this.blRadiusY));
+ } else
+ t5 = false;
+ if (t5) {
+ if (t1 === t2)
+ return "RRect.fromLTRBR(" + rect + ", " + C.JSNumber_methods.toStringAsFixed$1(t1, 1) + ")";
+ return "RRect.fromLTRBXY(" + rect + ", " + C.JSNumber_methods.toStringAsFixed$1(t1, 1) + ", " + C.JSNumber_methods.toStringAsFixed$1(t2, 1) + ")";
+ }
+ return "RRect.fromLTRBAndCorners(" + rect + ", topLeft: " + new P.Radius(t1, t2).toString$0(0) + ", topRight: " + new P.Radius(t3, t4).toString$0(0) + ", bottomRight: " + new P.Radius(_this.brRadiusX, _this.brRadiusY).toString$0(0) + ", bottomLeft: " + new P.Radius(_this.blRadiusX, _this.blRadiusY).toString$0(0) + ")";
+ }
+ };
+ P._HashEnd.prototype = {};
+ P.webOnlyInitializePlatform_closure.prototype = {
+ call$0: function() {
+ $.$get$lineLookup();
+ },
+ $signature: 0
+ };
+ P.Color.prototype = {
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof P.Color && other.get$value(other) === _this.get$value(_this);
+ },
+ get$hashCode: function(_) {
+ return C.JSInt_methods.get$hashCode(this.get$value(this));
+ },
+ toString$0: function(_) {
+ return "Color(0x" + C.JSString_methods.padLeft$2(C.JSInt_methods.toRadixString$1(this.get$value(this), 16), 8, "0") + ")";
+ },
+ get$value: function(receiver) {
+ return this.value;
+ }
+ };
+ P.StrokeCap.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.StrokeJoin.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.PaintingStyle.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.BlendMode.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.Clip.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.BlurStyle.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.MaskFilter.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.MaskFilter && other._ui$_style === this._ui$_style && other._sigma === this._sigma;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this._ui$_style, this._sigma, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "MaskFilter.blur(" + this._ui$_style.toString$0(0) + ", " + C.JSNumber_methods.toStringAsFixed$1(this._sigma, 1) + ")";
+ }
+ };
+ P.Shadow.prototype = {
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ return other instanceof P.Shadow && J.$eq$(other.color, _this.color) && J.$eq$(other.offset, _this.offset) && other.blurRadius == _this.blurRadius;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.color, this.offset, this.blurRadius, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "TextShadow(" + H.S(this.color) + ", " + H.S(this.offset) + ", " + H.S(this.blurRadius) + ")";
+ }
+ };
+ P.PlatformDispatcher.prototype = {};
+ P.PlatformConfiguration.prototype = {
+ copyWith$3$locales$platformBrightness$semanticsEnabled: function(locales, platformBrightness, semanticsEnabled) {
+ var _this = this,
+ t1 = semanticsEnabled == null ? _this.semanticsEnabled : semanticsEnabled,
+ t2 = platformBrightness == null ? _this.platformBrightness : platformBrightness,
+ t3 = locales == null ? _this.locales : locales;
+ return new P.PlatformConfiguration(_this.accessibilityFeatures, false, t1, t2, _this.textScaleFactor, t3, _this.defaultRouteName);
+ },
+ copyWith$1$platformBrightness: function(platformBrightness) {
+ return this.copyWith$3$locales$platformBrightness$semanticsEnabled(null, platformBrightness, null);
+ },
+ copyWith$1$locales: function(locales) {
+ return this.copyWith$3$locales$platformBrightness$semanticsEnabled(locales, null, null);
+ },
+ copyWith$1$semanticsEnabled: function(semanticsEnabled) {
+ return this.copyWith$3$locales$platformBrightness$semanticsEnabled(null, null, semanticsEnabled);
+ }
+ };
+ P.ViewConfiguration.prototype = {
+ toString$0: function(_) {
+ return H.getRuntimeType(this).toString$0(0) + "[window: null, geometry: " + C.Rect_0_0_0_0.toString$0(0) + "]";
+ }
+ };
+ P.FrameTiming.prototype = {
+ toString$0: function(_) {
+ var t1 = this._timestamps;
+ return H.getRuntimeType(this).toString$0(0) + "(buildDuration: " + (H.S((P.Duration$(t1[2], 0, 0)._duration - P.Duration$(t1[1], 0, 0)._duration) * 0.001) + "ms") + ", rasterDuration: " + (H.S((P.Duration$(t1[4], 0, 0)._duration - P.Duration$(t1[3], 0, 0)._duration) * 0.001) + "ms") + ", vsyncOverhead: " + (H.S((P.Duration$(t1[1], 0, 0)._duration - P.Duration$(t1[0], 0, 0)._duration) * 0.001) + "ms") + ", totalSpan: " + (H.S((P.Duration$(t1[4], 0, 0)._duration - P.Duration$(t1[0], 0, 0)._duration) * 0.001) + "ms") + ")";
+ }
+ };
+ P.AppLifecycleState.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.Locale.prototype = {
+ get$languageCode: function(_) {
+ var t1 = this._languageCode,
+ t2 = C.Map_YCOho.$index(0, t1);
+ return t2 == null ? t1 : t2;
+ },
+ get$countryCode: function() {
+ var t1 = this._countryCode,
+ t2 = C.Map_0Agg9.$index(0, t1);
+ return t2 == null ? t1 : t2;
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (other instanceof P.Locale)
+ if (other.get$languageCode(other) == _this.get$languageCode(_this))
+ t1 = other.get$countryCode() == _this.get$countryCode();
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.get$languageCode(this), null, this.get$countryCode(), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return this._rawToString$1("_");
+ },
+ _rawToString$1: function(separator) {
+ var _this = this,
+ t1 = H.S(_this.get$languageCode(_this));
+ if (_this._countryCode != null)
+ t1 += separator + H.S(_this.get$countryCode());
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ P.PointerChange.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.PointerDeviceKind.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.PointerSignalKind.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.PointerData.prototype = {
+ toString$0: function(_) {
+ return "PointerData(x: " + H.S(this.physicalX) + ", y: " + H.S(this.physicalY) + ")";
+ }
+ };
+ P.PointerDataPacket.prototype = {};
+ P.SemanticsAction.prototype = {
+ toString$0: function(_) {
+ switch (this.index) {
+ case 1:
+ return "SemanticsAction.tap";
+ case 2:
+ return "SemanticsAction.longPress";
+ case 4:
+ return "SemanticsAction.scrollLeft";
+ case 8:
+ return "SemanticsAction.scrollRight";
+ case 16:
+ return "SemanticsAction.scrollUp";
+ case 32:
+ return "SemanticsAction.scrollDown";
+ case 64:
+ return "SemanticsAction.increase";
+ case 128:
+ return "SemanticsAction.decrease";
+ case 256:
+ return "SemanticsAction.showOnScreen";
+ case 512:
+ return "SemanticsAction.moveCursorForwardByCharacter";
+ case 1024:
+ return "SemanticsAction.moveCursorBackwardByCharacter";
+ case 2048:
+ return "SemanticsAction.setSelection";
+ case 4096:
+ return "SemanticsAction.copy";
+ case 8192:
+ return "SemanticsAction.cut";
+ case 16384:
+ return "SemanticsAction.paste";
+ case 32768:
+ return "SemanticsAction.didGainAccessibilityFocus";
+ case 65536:
+ return "SemanticsAction.didLoseAccessibilityFocus";
+ case 131072:
+ return "SemanticsAction.customAction";
+ case 262144:
+ return "SemanticsAction.dismiss";
+ case 524288:
+ return "SemanticsAction.moveCursorForwardByWord";
+ case 1048576:
+ return "SemanticsAction.moveCursorBackwardByWord";
+ }
+ return "";
+ }
+ };
+ P.SemanticsFlag.prototype = {
+ toString$0: function(_) {
+ switch (this.index) {
+ case 1:
+ return "SemanticsFlag.hasCheckedState";
+ case 2:
+ return "SemanticsFlag.isChecked";
+ case 4:
+ return "SemanticsFlag.isSelected";
+ case 8:
+ return "SemanticsFlag.isButton";
+ case 4194304:
+ return "SemanticsFlag.isLink";
+ case 16:
+ return "SemanticsFlag.isTextField";
+ case 2097152:
+ return "SemanticsFlag.isFocusable";
+ case 32:
+ return "SemanticsFlag.isFocused";
+ case 64:
+ return "SemanticsFlag.hasEnabledState";
+ case 128:
+ return "SemanticsFlag.isEnabled";
+ case 256:
+ return "SemanticsFlag.isInMutuallyExclusiveGroup";
+ case 512:
+ return "SemanticsFlag.isHeader";
+ case 1024:
+ return "SemanticsFlag.isObscured";
+ case 2048:
+ return "SemanticsFlag.scopesRoute";
+ case 4096:
+ return "SemanticsFlag.namesRoute";
+ case 8192:
+ return "SemanticsFlag.isHidden";
+ case 16384:
+ return "SemanticsFlag.isImage";
+ case 32768:
+ return "SemanticsFlag.isLiveRegion";
+ case 65536:
+ return "SemanticsFlag.hasToggledState";
+ case 131072:
+ return "SemanticsFlag.isToggled";
+ case 262144:
+ return "SemanticsFlag.hasImplicitScrolling";
+ case 524288:
+ return "SemanticsFlag.isMultiline";
+ case 1048576:
+ return "SemanticsFlag.isReadOnly";
+ }
+ return "";
+ }
+ };
+ P.SemanticsUpdateBuilder.prototype = {};
+ P.PlaceholderAlignment.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.FontWeight.prototype = {
+ toString$0: function(_) {
+ var t1 = C.Map_yXAeS.$index(0, this.index);
+ t1.toString;
+ return t1;
+ }
+ };
+ P.TextAlign.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.TextBaseline.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.TextDecoration.prototype = {
+ contains$1: function(_, other) {
+ var t1 = this._mask;
+ return (t1 | other._mask) === t1;
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof P.TextDecoration && other._mask === this._mask;
+ },
+ get$hashCode: function(_) {
+ return C.JSInt_methods.get$hashCode(this._mask);
+ },
+ toString$0: function(_) {
+ var values,
+ t1 = this._mask;
+ if (t1 === 0)
+ return "TextDecoration.none";
+ values = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ if ((t1 & 1) !== 0)
+ values.push("underline");
+ if ((t1 & 2) !== 0)
+ values.push("overline");
+ if ((t1 & 4) !== 0)
+ values.push("lineThrough");
+ if (values.length === 1)
+ return "TextDecoration." + values[0];
+ return "TextDecoration.combine([" + C.JSArray_methods.join$1(values, ", ") + "])";
+ }
+ };
+ P.TextDecorationStyle.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.TextDirection.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.TextBox.prototype = {
+ get$start: function(_) {
+ return this.direction === C.TextDirection_1 ? this.left : this.right;
+ },
+ get$end: function(_) {
+ return this.direction === C.TextDirection_1 ? this.right : this.left;
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof P.TextBox && other.left == _this.left && other.top == _this.top && other.right == _this.right && other.bottom == _this.bottom && other.direction === _this.direction;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.left, _this.top, _this.right, _this.bottom, _this.direction, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "TextBox.fromLTRBD(" + J.toStringAsFixed$1$n(_this.left, 1) + ", " + J.toStringAsFixed$1$n(_this.top, 1) + ", " + J.toStringAsFixed$1$n(_this.right, 1) + ", " + J.toStringAsFixed$1$n(_this.bottom, 1) + ", " + _this.direction.toString$0(0) + ")";
+ }
+ };
+ P.TextAffinity.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.TextPosition.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof P.TextPosition && other.offset == this.offset && other.affinity === this.affinity;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.offset, this.affinity, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return H.getRuntimeType(this).toString$0(0) + "(offset: " + H.S(this.offset) + ", affinity: " + this.affinity.toString$0(0) + ")";
+ }
+ };
+ P.TextRange.prototype = {
+ get$isValid: function() {
+ return this.start >= 0 && this.end >= 0;
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ return other instanceof P.TextRange && other.start == this.start && other.end == this.end;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(J.get$hashCode$(this.start), J.get$hashCode$(this.end), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "TextRange(start: " + H.S(this.start) + ", end: " + H.S(this.end) + ")";
+ }
+ };
+ P.ParagraphConstraints.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof P.ParagraphConstraints && other.width == this.width;
+ },
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.width);
+ },
+ toString$0: function(_) {
+ return H.getRuntimeType(this).toString$0(0) + "(width: " + H.S(this.width) + ")";
+ }
+ };
+ P.BoxHeightStyle.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.BoxWidthStyle.prototype = {
+ toString$0: function(_) {
+ return "BoxWidthStyle.tight";
+ }
+ };
+ P.TileMode.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.FlutterView.prototype = {};
+ P.FlutterWindow.prototype = {};
+ P.SingletonFlutterWindow.prototype = {
+ get$locales: function() {
+ return this.platformDispatcher._configuration.locales;
+ }
+ };
+ P.Window0.prototype = {};
+ P.AccessibilityFeatures.prototype = {
+ toString$0: function(_) {
+ var features = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ return "AccessibilityFeatures" + H.S(features);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof P.AccessibilityFeatures && true;
+ },
+ get$hashCode: function(_) {
+ return C.JSInt_methods.get$hashCode(0);
+ }
+ };
+ P.Brightness.prototype = {
+ toString$0: function(_) {
+ return this._ui$_name;
+ }
+ };
+ P.CallbackHandle.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return this === other;
+ },
+ get$hashCode: function(_) {
+ return P.Object.prototype.get$hashCode.call(this, this);
+ }
+ };
+ P.PlatformViewRegistry.prototype = {
+ registerViewFactory$2: function(viewTypeId, factory) {
+ var t1 = this.registeredFactories;
+ if (t1.containsKey$1(0, viewTypeId))
+ return false;
+ t1.$indexSet(0, viewTypeId, factory);
+ return true;
+ }
+ };
+ P.AudioBuffer.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ P.AudioParamMap.prototype = {
+ containsKey$1: function(receiver, key) {
+ return P.convertNativeToDart_Dictionary(receiver.get(key)) != null;
+ },
+ $index: function(receiver, key) {
+ return P.convertNativeToDart_Dictionary(receiver.get(key));
+ },
+ forEach$1: function(receiver, f) {
+ var entry,
+ entries = receiver.entries();
+ for (; true;) {
+ entry = entries.next();
+ if (entry.done)
+ return;
+ f.call$2(entry.value[0], P.convertNativeToDart_Dictionary(entry.value[1]));
+ }
+ },
+ get$keys: function(receiver) {
+ var keys = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ this.forEach$1(receiver, new P.AudioParamMap_keys_closure(keys));
+ return keys;
+ },
+ get$values: function(receiver) {
+ var values = H.setRuntimeTypeInfo([], type$.JSArray_Map_dynamic_dynamic);
+ this.forEach$1(receiver, new P.AudioParamMap_values_closure(values));
+ return values;
+ },
+ get$length: function(receiver) {
+ return receiver.size;
+ },
+ get$isEmpty: function(receiver) {
+ return receiver.size === 0;
+ },
+ get$isNotEmpty: function(receiver) {
+ return receiver.size !== 0;
+ },
+ $indexSet: function(receiver, key, value) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ putIfAbsent$2: function(receiver, key, ifAbsent) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ remove$1: function(receiver, key) {
+ throw H.wrapException(P.UnsupportedError$("Not supported"));
+ },
+ $isMap: 1
+ };
+ P.AudioParamMap_keys_closure.prototype = {
+ call$2: function(k, v) {
+ return this.keys.push(k);
+ },
+ $signature: 19
+ };
+ P.AudioParamMap_values_closure.prototype = {
+ call$2: function(k, v) {
+ return this.values.push(v);
+ },
+ $signature: 19
+ };
+ P.AudioTrackList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ P.BaseAudioContext.prototype = {};
+ P.OfflineAudioContext.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ }
+ };
+ P._AudioParamMap_Interceptor_MapMixin.prototype = {};
+ P.ActiveInfo.prototype = {
+ get$name: function(receiver) {
+ return receiver.name;
+ }
+ };
+ P.SqlResultSetRowList.prototype = {
+ get$length: function(receiver) {
+ return receiver.length;
+ },
+ $index: function(receiver, index) {
+ var t1;
+ if (index >>> 0 !== index || index >= receiver.length)
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
+ t1 = P.convertNativeToDart_Dictionary(receiver.item(index));
+ t1.toString;
+ return t1;
+ },
+ $indexSet: function(receiver, index, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List."));
+ },
+ set$length: function(receiver, value) {
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List."));
+ },
+ get$first: function(receiver) {
+ if (receiver.length > 0)
+ return receiver[0];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ get$last: function(receiver) {
+ var len = receiver.length;
+ if (len > 0)
+ return receiver[len - 1];
+ throw H.wrapException(P.StateError$("No elements"));
+ },
+ elementAt$1: function(receiver, index) {
+ return this.$index(receiver, index);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
+ P._SqlResultSetRowList_Interceptor_ListMixin.prototype = {};
+ P._SqlResultSetRowList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
+ T.StringCharacters.prototype = {
+ get$iterator: function(_) {
+ return new T.StringCharacterRange(this.string, 0, 0);
+ },
+ get$first: function(_) {
+ var t1 = this.string,
+ t2 = t1.length;
+ return t2 === 0 ? H.throwExpression(P.StateError$("No element")) : C.JSString_methods.substring$2(t1, 0, new A.Breaks(t1, t2, 0, 176).nextBreak$0());
+ },
+ get$last: function(_) {
+ var t1 = this.string,
+ t2 = t1.length;
+ return t2 === 0 ? H.throwExpression(P.StateError$("No element")) : C.JSString_methods.substring$1(t1, new A.BackBreaks(t1, 0, t2, 176).nextBreak$0());
+ },
+ get$isEmpty: function(_) {
+ return this.string.length === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this.string.length !== 0;
+ },
+ get$length: function(_) {
+ var brk, $length,
+ t1 = this.string,
+ t2 = t1.length;
+ if (t2 === 0)
+ return 0;
+ brk = new A.Breaks(t1, t2, 0, 176);
+ for ($length = 0; brk.nextBreak$0() >= 0;)
+ ++$length;
+ return $length;
+ },
+ elementAt$1: function(_, index) {
+ var t1, t2, breaks, count, start, end;
+ P.RangeError_checkNotNegative(index, "index");
+ t1 = this.string;
+ t2 = t1.length;
+ if (t2 !== 0) {
+ breaks = new A.Breaks(t1, t2, 0, 176);
+ for (count = 0, start = 0; end = breaks.nextBreak$0(), end >= 0; start = end) {
+ if (count === index)
+ return C.JSString_methods.substring$2(t1, start, end);
+ ++count;
+ }
+ } else
+ count = 0;
+ throw H.wrapException(P.IndexError$(index, this, "index", null, count));
+ },
+ contains$1: function(_, other) {
+ var t1;
+ if (typeof other == "string") {
+ t1 = other.length;
+ if (t1 === 0)
+ return false;
+ if (new A.Breaks(other, t1, 0, 176).nextBreak$0() !== t1)
+ return false;
+ t1 = this.string;
+ return T._indexOf(t1, other, 0, t1.length) >= 0;
+ }
+ return false;
+ },
+ _skipIndices$3: function(count, cursor, breaks) {
+ var t1, nextBreak;
+ if (count === 0 || cursor === this.string.length)
+ return cursor;
+ t1 = this.string;
+ breaks = new A.Breaks(t1, t1.length, cursor, 176);
+ do {
+ nextBreak = breaks.nextBreak$0();
+ if (nextBreak < 0)
+ break;
+ if (--count, count > 0) {
+ cursor = nextBreak;
+ continue;
+ } else {
+ cursor = nextBreak;
+ break;
+ }
+ } while (true);
+ return cursor;
+ },
+ skip$1: function(_, count) {
+ P.RangeError_checkNotNegative(count, "count");
+ return this._skip$1(count);
+ },
+ _skip$1: function(count) {
+ var start = this._skipIndices$3(count, 0, null),
+ t1 = this.string;
+ if (start === t1.length)
+ return C.StringCharacters_ehH;
+ return new T.StringCharacters(J.substring$1$s(t1, start));
+ },
+ take$1: function(_, count) {
+ P.RangeError_checkNotNegative(count, "count");
+ return this._take$1(count);
+ },
+ _take$1: function(count) {
+ var end = this._skipIndices$3(count, 0, null),
+ t1 = this.string;
+ if (end === t1.length)
+ return this;
+ return new T.StringCharacters(J.substring$2$s(t1, 0, end));
+ },
+ $add: function(_, characters) {
+ return new T.StringCharacters(J.$add$ansx(this.string, characters.string));
+ },
+ toLowerCase$0: function(_) {
+ return new T.StringCharacters(this.string.toLowerCase());
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return type$.Characters._is(other) && this.string == other.string;
+ },
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.string);
+ },
+ toString$0: function(_) {
+ return this.string;
+ },
+ $isCharacters: 1
+ };
+ T.StringCharacterRange.prototype = {
+ get$current: function(_) {
+ var _this = this,
+ t1 = _this._currentCache;
+ return t1 == null ? _this._currentCache = J.substring$2$s(_this._characters_impl$_string, _this._characters_impl$_start, _this._characters_impl$_end) : t1;
+ },
+ moveNext$0: function() {
+ return this._advanceEnd$2(1, this._characters_impl$_end);
+ },
+ _advanceEnd$2: function(count, newStart) {
+ var index, t1, t2, t3, state, char, nextIndex, category, nextChar, t4, _this = this;
+ if (count > 0) {
+ index = _this._characters_impl$_end;
+ for (t1 = _this._characters_impl$_string, t2 = t1.length, t3 = J.getInterceptor$s(t1), state = 176; index < t2; index = nextIndex) {
+ char = t3.codeUnitAt$1(t1, index);
+ nextIndex = index + 1;
+ if ((char & 64512) !== 55296)
+ category = S.low(char);
+ else if (nextIndex < t2) {
+ nextChar = C.JSString_methods.codeUnitAt$1(t1, nextIndex);
+ if ((nextChar & 64512) === 56320) {
+ ++nextIndex;
+ category = S.high(char, nextChar);
+ } else
+ category = 2;
+ } else
+ category = 2;
+ state = C.JSString_methods._codeUnitAt$1(string$.x200_000, state & 240 | category);
+ if ((state & 1) === 0) {
+ --count;
+ t4 = count === 0;
+ } else
+ t4 = false;
+ if (t4) {
+ _this._characters_impl$_start = newStart;
+ _this._characters_impl$_end = index;
+ _this._currentCache = null;
+ return true;
+ }
+ }
+ _this._characters_impl$_start = newStart;
+ _this._characters_impl$_end = t2;
+ _this._currentCache = null;
+ return count === 1 && state !== 176;
+ } else {
+ _this._characters_impl$_start = newStart;
+ _this._currentCache = null;
+ return true;
+ }
+ }
+ };
+ A.Breaks.prototype = {
+ nextBreak$0: function() {
+ var t1, t2, t3, t4, t5, char, nextChar, category, _this = this,
+ _s192_ = string$.x200_000;
+ for (t1 = _this.end, t2 = _this.base, t3 = J.getInterceptor$s(t2); t4 = _this.cursor, t4 < t1;) {
+ t5 = _this.cursor = t4 + 1;
+ char = t3._codeUnitAt$1(t2, t4);
+ if ((char & 64512) !== 55296) {
+ t5 = C.JSString_methods._codeUnitAt$1(_s192_, _this.state & 240 | S.low(char));
+ _this.state = t5;
+ if ((t5 & 1) === 0)
+ return t4;
+ continue;
+ }
+ if (t5 < t1) {
+ nextChar = C.JSString_methods._codeUnitAt$1(t2, t5);
+ if ((nextChar & 64512) === 56320) {
+ category = S.high(char, nextChar);
+ ++_this.cursor;
+ } else
+ category = 2;
+ } else
+ category = 2;
+ t5 = C.JSString_methods._codeUnitAt$1(_s192_, _this.state & 240 | category);
+ _this.state = t5;
+ if ((t5 & 1) === 0)
+ return t4;
+ }
+ t1 = C.JSString_methods._codeUnitAt$1(_s192_, _this.state & 240 | 15);
+ _this.state = t1;
+ if ((t1 & 1) === 0)
+ return t4;
+ return -1;
+ }
+ };
+ A.BackBreaks.prototype = {
+ nextBreak$0: function() {
+ var t1, t2, t3, t4, t5, char, prevChar, category, t6, _this = this,
+ _s208_ = string$.x10__0__;
+ for (t1 = _this.start, t2 = _this.base, t3 = J.getInterceptor$s(t2); t4 = _this.cursor, t4 > t1;) {
+ t5 = _this.cursor = t4 - 1;
+ char = t3.codeUnitAt$1(t2, t5);
+ if ((char & 64512) !== 56320) {
+ t5 = _this.state = C.JSString_methods._codeUnitAt$1(_s208_, _this.state & 240 | S.low(char));
+ if (((t5 >= 208 ? _this.state = A.lookAhead(t2, t1, _this.cursor, t5) : t5) & 1) === 0)
+ return t4;
+ continue;
+ }
+ if (t5 >= t1) {
+ prevChar = C.JSString_methods.codeUnitAt$1(t2, t5 - 1);
+ if ((prevChar & 64512) === 55296) {
+ category = S.high(prevChar, char);
+ t5 = --_this.cursor;
+ } else
+ category = 2;
+ } else
+ category = 2;
+ t6 = _this.state = C.JSString_methods._codeUnitAt$1(_s208_, _this.state & 240 | category);
+ if (((t6 >= 208 ? _this.state = A.lookAhead(t2, t1, t5, t6) : t6) & 1) === 0)
+ return t4;
+ }
+ t3 = _this.state = C.JSString_methods._codeUnitAt$1(_s208_, _this.state & 240 | 15);
+ if (((t3 >= 208 ? _this.state = A.lookAhead(t2, t1, t4, t3) : t3) & 1) === 0)
+ return _this.cursor;
+ return -1;
+ }
+ };
+ M.CanonicalizedMap.prototype = {
+ $index: function(_, key) {
+ var pair, _this = this;
+ if (!_this._isValidKey$1(key))
+ return null;
+ pair = _this._base.$index(0, _this._canonicalize.call$1(_this.$ti._eval$1("CanonicalizedMap.K")._as(key)));
+ return pair == null ? null : pair.value;
+ },
+ $indexSet: function(_, key, value) {
+ var t1, _this = this;
+ if (!_this._isValidKey$1(key))
+ return;
+ t1 = _this.$ti;
+ _this._base.$indexSet(0, _this._canonicalize.call$1(key), new P.MapEntry(key, value, t1._eval$1("@")._bind$1(t1._eval$1("CanonicalizedMap.V"))._eval$1("MapEntry<1,2>")));
+ },
+ addAll$1: function(_, other) {
+ other.forEach$1(0, new M.CanonicalizedMap_addAll_closure(this));
+ },
+ cast$2$0: function(_, K2, V2) {
+ var t1 = this._base;
+ return t1.cast$2$0(t1, K2, V2);
+ },
+ containsKey$1: function(_, key) {
+ var _this = this;
+ if (!_this._isValidKey$1(key))
+ return false;
+ return _this._base.containsKey$1(0, _this._canonicalize.call$1(_this.$ti._eval$1("CanonicalizedMap.K")._as(key)));
+ },
+ forEach$1: function(_, f) {
+ this._base.forEach$1(0, new M.CanonicalizedMap_forEach_closure(this, f));
+ },
+ get$isEmpty: function(_) {
+ var t1 = this._base;
+ return t1.get$isEmpty(t1);
+ },
+ get$isNotEmpty: function(_) {
+ var t1 = this._base;
+ return t1.get$isNotEmpty(t1);
+ },
+ get$keys: function(_) {
+ var t1 = this._base;
+ t1 = t1.get$values(t1);
+ return H.MappedIterable_MappedIterable(t1, new M.CanonicalizedMap_keys_closure(this), H._instanceType(t1)._eval$1("Iterable.E"), this.$ti._eval$1("CanonicalizedMap.K"));
+ },
+ get$length: function(_) {
+ var t1 = this._base;
+ return t1.get$length(t1);
+ },
+ map$2$1: function(_, transform, K2, V2) {
+ var t1 = this._base;
+ return t1.map$2$1(t1, new M.CanonicalizedMap_map_closure(this, transform, K2, V2), K2, V2);
+ },
+ putIfAbsent$2: function(_, key, ifAbsent) {
+ return this._base.putIfAbsent$2(0, this._canonicalize.call$1(key), new M.CanonicalizedMap_putIfAbsent_closure(this, key, ifAbsent)).value;
+ },
+ remove$1: function(_, key) {
+ var pair, _this = this;
+ if (!_this._isValidKey$1(key))
+ return null;
+ pair = _this._base.remove$1(0, _this._canonicalize.call$1(_this.$ti._eval$1("CanonicalizedMap.K")._as(key)));
+ return pair == null ? null : pair.value;
+ },
+ get$values: function(_) {
+ var t1 = this._base;
+ t1 = t1.get$values(t1);
+ return H.MappedIterable_MappedIterable(t1, new M.CanonicalizedMap_values_closure(this), H._instanceType(t1)._eval$1("Iterable.E"), this.$ti._eval$1("CanonicalizedMap.V"));
+ },
+ toString$0: function(_) {
+ return P.MapBase_mapToString(this);
+ },
+ _isValidKey$1: function(key) {
+ var t1;
+ if (this.$ti._eval$1("CanonicalizedMap.K")._is(key)) {
+ t1 = this._isValidKeyFn.call$1(key);
+ t1 = t1;
+ } else
+ t1 = false;
+ return t1;
+ },
+ $isMap: 1
+ };
+ M.CanonicalizedMap_addAll_closure.prototype = {
+ call$2: function(key, value) {
+ this.$this.$indexSet(0, key, value);
+ return value;
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("~(CanonicalizedMap.K,CanonicalizedMap.V)");
+ }
+ };
+ M.CanonicalizedMap_forEach_closure.prototype = {
+ call$2: function(key, pair) {
+ return this.f.call$2(pair.key, pair.value);
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("~(CanonicalizedMap.C,MapEntry)");
+ }
+ };
+ M.CanonicalizedMap_keys_closure.prototype = {
+ call$1: function(pair) {
+ return pair.key;
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("CanonicalizedMap.K(MapEntry)");
+ }
+ };
+ M.CanonicalizedMap_map_closure.prototype = {
+ call$2: function(_, pair) {
+ return this.transform.call$2(pair.key, pair.value);
+ },
+ $signature: function() {
+ return this.$this.$ti._bind$1(this.K2)._bind$1(this.V2)._eval$1("MapEntry<1,2>(CanonicalizedMap.C,MapEntry)");
+ }
+ };
+ M.CanonicalizedMap_putIfAbsent_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this.$ti;
+ return new P.MapEntry(this.key, this.ifAbsent.call$0(), t1._eval$1("@")._bind$1(t1._eval$1("CanonicalizedMap.V"))._eval$1("MapEntry<1,2>"));
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("MapEntry()");
+ }
+ };
+ M.CanonicalizedMap_values_closure.prototype = {
+ call$1: function(pair) {
+ return pair.value;
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("CanonicalizedMap.V(MapEntry)");
+ }
+ };
+ Y.HeapPriorityQueue.prototype = {
+ _elementAt$1: function(index) {
+ var t1 = this._priority_queue$_queue[index];
+ return t1 == null ? null : t1;
+ },
+ get$length: function(_) {
+ return this._priority_queue$_length;
+ },
+ remove$1: function(_, element) {
+ var last, _this = this,
+ index = _this._locate$1(element);
+ if (index < 0)
+ return false;
+ ++_this._priority_queue$_modificationCount;
+ last = _this._removeLast$0();
+ if (index < _this._priority_queue$_length)
+ if (_this.comparison.call$2(last, element) <= 0)
+ _this._bubbleUp$2(last, index);
+ else
+ _this._bubbleDown$2(last, index);
+ return true;
+ },
+ toString$0: function(_) {
+ var t1 = this._priority_queue$_queue;
+ return P.IterableBase_iterableToShortString(H.SubListIterable$(t1, 0, this._priority_queue$_length, H._arrayInstanceType(t1)._precomputed1), "(", ")");
+ },
+ _locate$1: function(object) {
+ var t1, position, index, element, comp, leftChildPosition, t2, _this = this;
+ if (_this._priority_queue$_length === 0)
+ return -1;
+ t1 = _this.comparison;
+ position = 1;
+ do
+ c$0: {
+ index = position - 1;
+ element = _this._elementAt$1(index);
+ comp = t1.call$2(element, object);
+ if (comp <= 0) {
+ if (comp === 0 && J.$eq$(element, object))
+ return index;
+ leftChildPosition = position * 2;
+ if (leftChildPosition <= _this._priority_queue$_length) {
+ position = leftChildPosition;
+ break c$0;
+ }
+ }
+ t2 = _this._priority_queue$_length;
+ do {
+ for (; (position & 1) === 1;)
+ position = position >>> 1;
+ ++position;
+ } while (position > t2);
+ }
+ while (position !== 1);
+ return -1;
+ },
+ _removeLast$0: function() {
+ var _this = this,
+ newLength = _this._priority_queue$_length - 1,
+ last = _this._elementAt$1(newLength);
+ C.JSArray_methods.$indexSet(_this._priority_queue$_queue, newLength, null);
+ _this._priority_queue$_length = newLength;
+ return last;
+ },
+ _bubbleUp$2: function(element, index) {
+ var t1, parentIndex, $parent, _this = this;
+ for (t1 = _this.comparison; index > 0; index = parentIndex) {
+ parentIndex = C.JSInt_methods._tdivFast$1(index - 1, 2);
+ $parent = _this._priority_queue$_queue[parentIndex];
+ if ($parent == null)
+ $parent = null;
+ if (t1.call$2(element, $parent) > 0)
+ break;
+ C.JSArray_methods.$indexSet(_this._priority_queue$_queue, index, $parent);
+ }
+ C.JSArray_methods.$indexSet(_this._priority_queue$_queue, index, element);
+ },
+ _bubbleDown$2: function(element, index) {
+ var t1, t2, leftChildIndex, leftChild, rightChild, minChild, minChildIndex, child, _this = this,
+ rightChildIndex = index * 2 + 2;
+ for (t1 = _this.comparison; t2 = _this._priority_queue$_length, rightChildIndex < t2; index = minChildIndex) {
+ leftChildIndex = rightChildIndex - 1;
+ t2 = _this._priority_queue$_queue;
+ leftChild = t2[leftChildIndex];
+ if (leftChild == null)
+ leftChild = null;
+ rightChild = t2[rightChildIndex];
+ if (rightChild == null)
+ rightChild = null;
+ if (t1.call$2(leftChild, rightChild) < 0) {
+ minChild = leftChild;
+ minChildIndex = leftChildIndex;
+ } else {
+ minChild = rightChild;
+ minChildIndex = rightChildIndex;
+ }
+ if (t1.call$2(element, minChild) <= 0) {
+ C.JSArray_methods.$indexSet(_this._priority_queue$_queue, index, element);
+ return;
+ }
+ C.JSArray_methods.$indexSet(_this._priority_queue$_queue, index, minChild);
+ rightChildIndex = minChildIndex * 2 + 2;
+ }
+ leftChildIndex = rightChildIndex - 1;
+ if (leftChildIndex < t2) {
+ child = _this._elementAt$1(leftChildIndex);
+ if (t1.call$2(element, child) > 0) {
+ C.JSArray_methods.$indexSet(_this._priority_queue$_queue, index, child);
+ index = leftChildIndex;
+ }
+ }
+ C.JSArray_methods.$indexSet(_this._priority_queue$_queue, index, element);
+ }
+ };
+ X.AnimationStatus.prototype = {
+ toString$0: function(_) {
+ return this._animation$_name;
+ }
+ };
+ X.Animation0.prototype = {
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this) + "(" + this.toStringDetails$0() + ")";
+ },
+ toStringDetails$0: function() {
+ switch (this.get$status(this)) {
+ case C.AnimationStatus_1:
+ return "\u25b6";
+ case C.AnimationStatus_2:
+ return "\u25c0";
+ case C.AnimationStatus_3:
+ return "\u23ed";
+ case C.AnimationStatus_0:
+ return "\u23ee";
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ G._AnimationDirection.prototype = {
+ toString$0: function(_) {
+ return this._animation_controller$_name;
+ }
+ };
+ G.AnimationBehavior.prototype = {
+ toString$0: function(_) {
+ return this._animation_controller$_name;
+ }
+ };
+ G.AnimationController.prototype = {
+ get$value: function(_) {
+ return this.get$_animation_controller$_value();
+ },
+ get$_animation_controller$_value: function() {
+ return this.__AnimationController__value_isSet ? this.__AnimationController__value : H.throwExpression(H.LateError$fieldNI("_value"));
+ },
+ set$value: function(_, newValue) {
+ var _this = this;
+ _this.stop$0(0);
+ _this._internalSetValue$1(newValue);
+ _this.notifyListeners$0();
+ _this._checkStatusChanged$0();
+ },
+ get$velocity: function() {
+ if (!this.get$isAnimating())
+ return 0;
+ var t1 = this._simulation;
+ t1.toString;
+ return t1.dx$1(0, this._lastElapsedDuration._duration / 1000000);
+ },
+ _internalSetValue$1: function(newValue) {
+ var _this = this,
+ t1 = _this.lowerBound,
+ t2 = _this.upperBound,
+ t3 = J.clamp$2$n(newValue, t1, t2);
+ _this.__AnimationController__value_isSet = true;
+ _this.__AnimationController__value = t3;
+ if (_this.get$_animation_controller$_value() === t1) {
+ _this.__AnimationController__status_isSet = true;
+ _this.__AnimationController__status = C.AnimationStatus_0;
+ } else if (_this.get$_animation_controller$_value() === t2) {
+ _this.__AnimationController__status_isSet = true;
+ _this.__AnimationController__status = C.AnimationStatus_3;
+ } else {
+ t1 = _this._direction === C._AnimationDirection_0 ? C.AnimationStatus_1 : C.AnimationStatus_2;
+ _this.__AnimationController__status_isSet = true;
+ _this.__AnimationController__status = t1;
+ }
+ },
+ get$isAnimating: function() {
+ var t1 = this._ticker;
+ return t1 != null && t1._ticker$_future != null;
+ },
+ get$status: function(_) {
+ return this.__AnimationController__status_isSet ? this.__AnimationController__status : H.throwExpression(H.LateError$fieldNI("_status"));
+ },
+ get$_animation_controller$_status: function() {
+ return this.__AnimationController__status_isSet ? this.__AnimationController__status : H.throwExpression(H.LateError$fieldNI("_status"));
+ },
+ forward$1$from: function(_, from) {
+ var _this = this;
+ _this._direction = C._AnimationDirection_0;
+ if (from != null)
+ _this.set$value(0, from);
+ return _this._animateToInternal$1(_this.upperBound);
+ },
+ forward$0: function($receiver) {
+ return this.forward$1$from($receiver, null);
+ },
+ reverse$1$from: function(_, from) {
+ this._direction = C._AnimationDirection_1;
+ return this._animateToInternal$1(this.lowerBound);
+ },
+ reverse$0: function($receiver) {
+ return this.reverse$1$from($receiver, null);
+ },
+ _animateToInternal$3$curve$duration: function(target, curve, duration) {
+ var range, remainingFraction, t1, directionDuration, simulationDuration, _this = this;
+ $.SemanticsBinding__instance.get$_accessibilityFeatures().toString;
+ if (duration == null) {
+ range = _this.upperBound - _this.lowerBound;
+ remainingFraction = isFinite(range) ? Math.abs(target - _this.get$_animation_controller$_value()) / range : 1;
+ if (_this._direction === C._AnimationDirection_1 && _this.reverseDuration != null) {
+ t1 = _this.reverseDuration;
+ t1.toString;
+ directionDuration = t1;
+ } else {
+ t1 = _this.duration;
+ t1.toString;
+ directionDuration = t1;
+ }
+ simulationDuration = new P.Duration(C.JSNumber_methods.round$0(directionDuration._duration * remainingFraction));
+ } else
+ simulationDuration = target == _this.get$_animation_controller$_value() ? C.Duration_0 : duration;
+ _this.stop$0(0);
+ t1 = simulationDuration._duration;
+ if (t1 === 0) {
+ if (_this.get$_animation_controller$_value() != target) {
+ t1 = J.clamp$2$n(target, _this.lowerBound, _this.upperBound);
+ _this.__AnimationController__value_isSet = true;
+ _this.__AnimationController__value = t1;
+ _this.notifyListeners$0();
+ }
+ t1 = _this._direction === C._AnimationDirection_0 ? C.AnimationStatus_3 : C.AnimationStatus_0;
+ _this.__AnimationController__status_isSet = true;
+ _this.__AnimationController__status = t1;
+ _this._checkStatusChanged$0();
+ return M.TickerFuture$complete();
+ }
+ return _this._startSimulation$1(new G._InterpolationSimulation(t1 / 1000000, _this.get$_animation_controller$_value(), target, curve, C.Tolerance_Gdw));
+ },
+ _animateToInternal$1: function(target) {
+ return this._animateToInternal$3$curve$duration(target, C.C__Linear, null);
+ },
+ _startSimulation$1: function(simulation) {
+ var t1, result, _this = this;
+ _this._simulation = simulation;
+ _this._lastElapsedDuration = C.Duration_0;
+ t1 = J.clamp$2$n(simulation.x$1(0, 0), _this.lowerBound, _this.upperBound);
+ _this.__AnimationController__value_isSet = true;
+ _this.__AnimationController__value = t1;
+ result = _this._ticker.start$0(0);
+ t1 = _this._direction === C._AnimationDirection_0 ? C.AnimationStatus_1 : C.AnimationStatus_2;
+ _this.__AnimationController__status_isSet = true;
+ _this.__AnimationController__status = t1;
+ _this._checkStatusChanged$0();
+ return result;
+ },
+ stop$1$canceled: function(_, canceled) {
+ this._lastElapsedDuration = this._simulation = null;
+ this._ticker.stop$1$canceled(0, canceled);
+ },
+ stop$0: function($receiver) {
+ return this.stop$1$canceled($receiver, true);
+ },
+ dispose$0: function(_) {
+ this._ticker.dispose$0(0);
+ this._ticker = null;
+ this.super$AnimationEagerListenerMixin$dispose(0);
+ },
+ _checkStatusChanged$0: function() {
+ var _this = this,
+ newStatus = _this.get$_animation_controller$_status();
+ if (_this._lastReportedStatus != newStatus) {
+ _this._lastReportedStatus = newStatus;
+ _this.notifyStatusListeners$1(newStatus);
+ }
+ },
+ _animation_controller$_tick$1: function(elapsed) {
+ var elapsedInSeconds, t1, _this = this;
+ _this._lastElapsedDuration = elapsed;
+ elapsedInSeconds = elapsed._duration / 1000000;
+ t1 = J.clamp$2$n(_this._simulation.x$1(0, elapsedInSeconds), _this.lowerBound, _this.upperBound);
+ _this.__AnimationController__value_isSet = true;
+ _this.__AnimationController__value = t1;
+ if (_this._simulation.isDone$1(elapsedInSeconds)) {
+ t1 = _this._direction === C._AnimationDirection_0 ? C.AnimationStatus_3 : C.AnimationStatus_0;
+ _this.__AnimationController__status_isSet = true;
+ _this.__AnimationController__status = t1;
+ _this.stop$1$canceled(0, false);
+ }
+ _this.notifyListeners$0();
+ _this._checkStatusChanged$0();
+ },
+ toStringDetails$0: function() {
+ var ticker, label, _this = this,
+ paused = _this.get$isAnimating() ? "" : "; paused",
+ t1 = _this._ticker;
+ if (t1 == null)
+ ticker = "; DISPOSED";
+ else
+ ticker = t1._muted ? "; silenced" : "";
+ t1 = _this.debugLabel;
+ label = t1 == null ? "" : "; for " + t1;
+ return _this.super$Animation$toStringDetails() + " " + J.toStringAsFixed$1$n(_this.get$_animation_controller$_value(), 3) + paused + ticker + label;
+ }
+ };
+ G._InterpolationSimulation.prototype = {
+ x$1: function(_, timeInSeconds) {
+ var t1, t2, _this = this,
+ t = C.JSDouble_methods.clamp$2(timeInSeconds / _this._durationInSeconds, 0, 1);
+ if (t === 0)
+ return _this._begin;
+ else {
+ t1 = _this._animation_controller$_end;
+ if (t === 1)
+ return t1;
+ else {
+ t2 = _this._begin;
+ return t2 + (t1 - t2) * _this._curve.transform$1(0, t);
+ }
+ }
+ },
+ dx$1: function(_, timeInSeconds) {
+ this.tolerance.toString;
+ return (this.x$1(0, timeInSeconds + 0.001) - this.x$1(0, timeInSeconds - 0.001)) / 0.002;
+ },
+ isDone$1: function(timeInSeconds) {
+ return timeInSeconds > this._durationInSeconds;
+ }
+ };
+ G._AnimationController_Animation_AnimationEagerListenerMixin.prototype = {};
+ G._AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin.prototype = {};
+ G._AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin.prototype = {};
+ S._AlwaysCompleteAnimation.prototype = {
+ addListener$1: function(_, listener) {
+ },
+ removeListener$1: function(_, listener) {
+ },
+ addStatusListener$1: function(listener) {
+ },
+ removeStatusListener$1: function(listener) {
+ },
+ get$status: function(_) {
+ return C.AnimationStatus_3;
+ },
+ get$value: function(_) {
+ return 1;
+ },
+ toString$0: function(_) {
+ return "kAlwaysCompleteAnimation";
+ }
+ };
+ S._AlwaysDismissedAnimation.prototype = {
+ addListener$1: function(_, listener) {
+ },
+ removeListener$1: function(_, listener) {
+ },
+ addStatusListener$1: function(listener) {
+ },
+ removeStatusListener$1: function(listener) {
+ },
+ get$status: function(_) {
+ return C.AnimationStatus_0;
+ },
+ get$value: function(_) {
+ return 0;
+ },
+ toString$0: function(_) {
+ return "kAlwaysDismissedAnimation";
+ }
+ };
+ S.AnimationWithParentMixin.prototype = {
+ addListener$1: function(_, listener) {
+ return this.get$parent(this).addListener$1(0, listener);
+ },
+ removeListener$1: function(_, listener) {
+ return this.get$parent(this).removeListener$1(0, listener);
+ },
+ addStatusListener$1: function(listener) {
+ return this.get$parent(this).addStatusListener$1(listener);
+ },
+ removeStatusListener$1: function(listener) {
+ return this.get$parent(this).removeStatusListener$1(listener);
+ },
+ get$status: function(_) {
+ var t1 = this.get$parent(this);
+ return t1.get$status(t1);
+ }
+ };
+ S.ProxyAnimation.prototype = {
+ set$parent: function(_, value) {
+ var t2, _this = this,
+ t1 = _this._animations$_parent;
+ if (value == t1)
+ return;
+ if (t1 != null) {
+ _this._status = t1.get$status(t1);
+ t1 = _this._animations$_parent;
+ _this._animations$_value = t1.get$value(t1);
+ if (_this.AnimationLazyListenerMixin__listenerCounter > 0)
+ _this.didStopListening$0();
+ }
+ _this._animations$_parent = value;
+ if (value != null) {
+ if (_this.AnimationLazyListenerMixin__listenerCounter > 0)
+ _this.didStartListening$0();
+ t1 = _this._animations$_value;
+ t2 = _this._animations$_parent;
+ t2 = t2.get$value(t2);
+ if (t1 == null ? t2 != null : t1 !== t2)
+ _this.notifyListeners$0();
+ t1 = _this._status;
+ t2 = _this._animations$_parent;
+ if (t1 != t2.get$status(t2)) {
+ t1 = _this._animations$_parent;
+ _this.notifyStatusListeners$1(t1.get$status(t1));
+ }
+ _this._animations$_value = _this._status = null;
+ }
+ },
+ didStartListening$0: function() {
+ var _this = this,
+ t1 = _this._animations$_parent;
+ if (t1 != null) {
+ t1.addListener$1(0, _this.get$notifyListeners());
+ _this._animations$_parent.addStatusListener$1(_this.get$notifyStatusListeners());
+ }
+ },
+ didStopListening$0: function() {
+ var _this = this,
+ t1 = _this._animations$_parent;
+ if (t1 != null) {
+ t1.removeListener$1(0, _this.get$notifyListeners());
+ _this._animations$_parent.removeStatusListener$1(_this.get$notifyStatusListeners());
+ }
+ },
+ get$status: function(_) {
+ var t1 = this._animations$_parent;
+ if (t1 != null)
+ t1 = t1.get$status(t1);
+ else {
+ t1 = this._status;
+ t1.toString;
+ }
+ return t1;
+ },
+ get$value: function(_) {
+ var t1 = this._animations$_parent;
+ if (t1 != null)
+ t1 = t1.get$value(t1);
+ else {
+ t1 = this._animations$_value;
+ t1.toString;
+ }
+ return t1;
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this._animations$_parent;
+ if (t1 == null)
+ return "ProxyAnimation(null; " + _this.super$Animation$toStringDetails() + " " + J.toStringAsFixed$1$n(_this.get$value(_this), 3) + ")";
+ return t1.toString$0(0) + "\u27a9ProxyAnimation";
+ }
+ };
+ S.ReverseAnimation.prototype = {
+ addListener$1: function(_, listener) {
+ var t1;
+ this.didRegisterListener$0();
+ t1 = this.parent;
+ t1.get$parent(t1).addListener$1(0, listener);
+ },
+ removeListener$1: function(_, listener) {
+ var t1 = this.parent;
+ t1.get$parent(t1).removeListener$1(0, listener);
+ this.didUnregisterListener$0();
+ },
+ didStartListening$0: function() {
+ var t1 = this.parent;
+ t1.get$parent(t1).addStatusListener$1(this.get$_statusChangeHandler());
+ },
+ didStopListening$0: function() {
+ var t1 = this.parent;
+ t1.get$parent(t1).removeStatusListener$1(this.get$_statusChangeHandler());
+ },
+ _statusChangeHandler$1: function($status) {
+ this.notifyStatusListeners$1(this._reverseStatus$1($status));
+ },
+ get$status: function(_) {
+ var t1 = this.parent;
+ t1 = t1.get$parent(t1);
+ return this._reverseStatus$1(t1.get$status(t1));
+ },
+ get$value: function(_) {
+ var t1 = this.parent;
+ return 1 - t1.get$value(t1);
+ },
+ _reverseStatus$1: function($status) {
+ switch ($status) {
+ case C.AnimationStatus_1:
+ return C.AnimationStatus_2;
+ case C.AnimationStatus_2:
+ return C.AnimationStatus_1;
+ case C.AnimationStatus_3:
+ return C.AnimationStatus_0;
+ case C.AnimationStatus_0:
+ return C.AnimationStatus_3;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ toString$0: function(_) {
+ return this.parent.toString$0(0) + "\u27aaReverseAnimation";
+ }
+ };
+ S.CurvedAnimation.prototype = {
+ _updateCurveDirection$1: function($status) {
+ var _this = this;
+ switch ($status) {
+ case C.AnimationStatus_0:
+ case C.AnimationStatus_3:
+ _this._curveDirection = null;
+ break;
+ case C.AnimationStatus_1:
+ if (_this._curveDirection == null)
+ _this._curveDirection = C.AnimationStatus_1;
+ break;
+ case C.AnimationStatus_2:
+ if (_this._curveDirection == null)
+ _this._curveDirection = C.AnimationStatus_2;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$_useForwardCurve: function() {
+ if (this.reverseCurve != null) {
+ var t1 = this._curveDirection;
+ if (t1 == null) {
+ t1 = this.parent;
+ t1 = t1.get$status(t1);
+ }
+ t1 = t1 !== C.AnimationStatus_2;
+ } else
+ t1 = true;
+ return t1;
+ },
+ get$value: function(_) {
+ var _this = this,
+ activeCurve = _this.get$_useForwardCurve() ? _this.curve : _this.reverseCurve,
+ t1 = _this.parent,
+ t = t1.get$value(t1);
+ if (activeCurve == null)
+ return t;
+ if (t === 0 || t === 1)
+ return t;
+ return activeCurve.transform$1(0, t);
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.reverseCurve;
+ if (t1 == null)
+ return H.S(_this.parent) + "\u27a9" + _this.curve.toString$0(0);
+ if (_this.get$_useForwardCurve())
+ return H.S(_this.parent) + "\u27a9" + _this.curve.toString$0(0) + "\u2092\u2099/" + t1.toString$0(0);
+ return H.S(_this.parent) + "\u27a9" + _this.curve.toString$0(0) + "/" + t1.toString$0(0) + "\u2092\u2099";
+ },
+ get$parent: function(receiver) {
+ return this.parent;
+ }
+ };
+ S._TrainHoppingMode.prototype = {
+ toString$0: function(_) {
+ return this._animations$_name;
+ }
+ };
+ S.TrainHoppingAnimation.prototype = {
+ _statusChangeHandler$1: function($status) {
+ if ($status != this._lastStatus) {
+ this.notifyListeners$0();
+ this._lastStatus = $status;
+ }
+ },
+ get$status: function(_) {
+ var t1 = this._currentTrain;
+ return t1.get$status(t1);
+ },
+ _valueChangeHandler$0: function() {
+ var t2, hop, _this = this,
+ t1 = _this._nextTrain;
+ if (t1 != null) {
+ t2 = _this._mode;
+ t2.toString;
+ switch (t2) {
+ case C._TrainHoppingMode_0:
+ t1 = t1.get$value(t1);
+ t2 = _this._currentTrain;
+ hop = t1 <= t2.get$value(t2);
+ break;
+ case C._TrainHoppingMode_1:
+ t1 = t1.get$value(t1);
+ t2 = _this._currentTrain;
+ hop = t1 >= t2.get$value(t2);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ if (hop) {
+ t1 = _this._currentTrain;
+ t2 = _this.get$_statusChangeHandler();
+ t1.removeStatusListener$1(t2);
+ t1.removeListener$1(0, _this.get$_valueChangeHandler());
+ t1 = _this._nextTrain;
+ _this._currentTrain = t1;
+ _this._nextTrain = null;
+ t1.addStatusListener$1(t2);
+ t2 = _this._currentTrain;
+ _this._statusChangeHandler$1(t2.get$status(t2));
+ }
+ } else
+ hop = false;
+ t1 = _this._currentTrain;
+ t1 = t1.get$value(t1);
+ if (t1 != _this._lastValue) {
+ _this.notifyListeners$0();
+ _this._lastValue = t1;
+ }
+ if (hop && _this.onSwitchedTrain != null)
+ _this.onSwitchedTrain.call$0();
+ },
+ get$value: function(_) {
+ var t1 = this._currentTrain;
+ return t1.get$value(t1);
+ },
+ dispose$0: function(_) {
+ var t1, t2, _this = this;
+ _this._currentTrain.removeStatusListener$1(_this.get$_statusChangeHandler());
+ t1 = _this.get$_valueChangeHandler();
+ _this._currentTrain.removeListener$1(0, t1);
+ _this._currentTrain = null;
+ t2 = _this._nextTrain;
+ if (t2 != null)
+ t2.removeListener$1(0, t1);
+ _this._nextTrain = null;
+ _this.super$AnimationEagerListenerMixin$dispose(0);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ if (_this._nextTrain != null)
+ return H.S(_this._currentTrain) + "\u27a9TrainHoppingAnimation(next: " + H.S(_this._nextTrain) + ")";
+ return H.S(_this._currentTrain) + "\u27a9TrainHoppingAnimation(no next)";
+ }
+ };
+ S.CompoundAnimation.prototype = {
+ didStartListening$0: function() {
+ var t3, _this = this,
+ t1 = _this.first,
+ t2 = _this.get$_maybeNotifyListeners();
+ t1.addListener$1(0, t2);
+ t3 = _this.get$_maybeNotifyStatusListeners();
+ t1.addStatusListener$1(t3);
+ t1 = _this.next;
+ t1.addListener$1(0, t2);
+ t1.addStatusListener$1(t3);
+ },
+ didStopListening$0: function() {
+ var t3, _this = this,
+ t1 = _this.first,
+ t2 = _this.get$_maybeNotifyListeners();
+ t1.removeListener$1(0, t2);
+ t3 = _this.get$_maybeNotifyStatusListeners();
+ t1.removeStatusListener$1(t3);
+ t1 = _this.next;
+ t1.removeListener$1(0, t2);
+ t1.removeStatusListener$1(t3);
+ },
+ get$status: function(_) {
+ var t1 = this.next;
+ if (t1.get$status(t1) === C.AnimationStatus_1 || t1.get$status(t1) === C.AnimationStatus_2)
+ return t1.get$status(t1);
+ t1 = this.first;
+ return t1.get$status(t1);
+ },
+ toString$0: function(_) {
+ return "CompoundAnimation(" + this.first.toString$0(0) + ", " + this.next.toString$0(0) + ")";
+ },
+ _maybeNotifyStatusListeners$1: function(_) {
+ var _this = this;
+ if (_this.get$status(_this) != _this._lastStatus) {
+ _this._lastStatus = _this.get$status(_this);
+ _this.notifyStatusListeners$1(_this.get$status(_this));
+ }
+ },
+ _maybeNotifyListeners$0: function() {
+ var _this = this;
+ if (!J.$eq$(_this.get$value(_this), _this._lastValue)) {
+ _this._lastValue = _this.get$value(_this);
+ _this.notifyListeners$0();
+ }
+ }
+ };
+ S.AnimationMin.prototype = {
+ get$value: function(_) {
+ var t2,
+ t1 = this.first;
+ t1 = t1.get$value(t1);
+ t2 = this.next;
+ t2 = t2.get$value(t2);
+ return Math.min(H.checkNum(t1), H.checkNum(t2));
+ }
+ };
+ S._CompoundAnimation_Animation_AnimationLazyListenerMixin.prototype = {};
+ S._CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin.prototype = {};
+ S._CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin.prototype = {};
+ S._CurvedAnimation_Animation_AnimationWithParentMixin.prototype = {};
+ S._ProxyAnimation_Animation_AnimationLazyListenerMixin.prototype = {};
+ S._ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin.prototype = {};
+ S._ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin.prototype = {};
+ S._ReverseAnimation_Animation_AnimationLazyListenerMixin.prototype = {};
+ S._ReverseAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalStatusListenersMixin.prototype = {};
+ S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin.prototype = {};
+ S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin.prototype = {};
+ S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin.prototype = {};
+ Z.ParametricCurve.prototype = {
+ transform$1: function(_, t) {
+ return this.transformInternal$1(t);
+ },
+ transformInternal$1: function(t) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ toString$0: function(_) {
+ return "ParametricCurve";
+ }
+ };
+ Z.Curve.prototype = {
+ transform$1: function(_, t) {
+ if (t === 0 || t === 1)
+ return t;
+ return this.super$ParametricCurve$transform(0, t);
+ }
+ };
+ Z._Linear.prototype = {
+ transformInternal$1: function(t) {
+ return t;
+ }
+ };
+ Z.Interval.prototype = {
+ transformInternal$1: function(t) {
+ var t1 = this.begin;
+ t = C.JSDouble_methods.clamp$2((t - t1) / (this.end - t1), 0, 1);
+ if (t === 0 || t === 1)
+ return t;
+ return this.curve.transform$1(0, t);
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.curve;
+ if (!(t1 instanceof Z._Linear))
+ return "Interval(" + H.S(_this.begin) + "\u22ef" + H.S(_this.end) + ")\u27a9" + t1.toString$0(0);
+ return "Interval(" + H.S(_this.begin) + "\u22ef" + H.S(_this.end) + ")";
+ }
+ };
+ Z.Threshold.prototype = {
+ transformInternal$1: function(t) {
+ return t < 0.5 ? 0 : 1;
+ }
+ };
+ Z.Cubic.prototype = {
+ _evaluateCubic$3: function(a, b, m) {
+ var t1 = 1 - m;
+ return 3 * a * t1 * t1 * m + 3 * b * t1 * m * m + m * m * m;
+ },
+ transformInternal$1: function(t) {
+ var t1, t2, start, end, midpoint, estimate, _this = this;
+ for (t1 = _this.a, t2 = _this.c, start = 0, end = 1; true;) {
+ midpoint = (start + end) / 2;
+ estimate = _this._evaluateCubic$3(t1, t2, midpoint);
+ if (Math.abs(t - estimate) < 0.001)
+ return _this._evaluateCubic$3(_this.b, _this.d, midpoint);
+ if (estimate < t)
+ start = midpoint;
+ else
+ end = midpoint;
+ }
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "Cubic(" + C.JSNumber_methods.toStringAsFixed$1(_this.a, 2) + ", " + C.JSNumber_methods.toStringAsFixed$1(_this.b, 2) + ", " + C.JSNumber_methods.toStringAsFixed$1(_this.c, 2) + ", " + C.JSNumber_methods.toStringAsFixed$1(_this.d, 2) + ")";
+ }
+ };
+ Z.FlippedCurve.prototype = {
+ transformInternal$1: function(t) {
+ return 1 - this.curve.transform$1(0, 1 - t);
+ },
+ toString$0: function(_) {
+ return "FlippedCurve(" + this.curve.toString$0(0) + ")";
+ }
+ };
+ Z._DecelerateCurve.prototype = {
+ transformInternal$1: function(t) {
+ t = 1 - t;
+ return 1 - t * t;
+ }
+ };
+ S.AnimationLazyListenerMixin.prototype = {
+ didRegisterListener$0: function() {
+ if (this.AnimationLazyListenerMixin__listenerCounter === 0)
+ this.didStartListening$0();
+ ++this.AnimationLazyListenerMixin__listenerCounter;
+ },
+ didUnregisterListener$0: function() {
+ if (--this.AnimationLazyListenerMixin__listenerCounter === 0)
+ this.didStopListening$0();
+ }
+ };
+ S.AnimationEagerListenerMixin.prototype = {
+ didRegisterListener$0: function() {
+ },
+ didUnregisterListener$0: function() {
+ },
+ dispose$0: function(_) {
+ }
+ };
+ S.AnimationLocalListenersMixin.prototype = {
+ addListener$1: function(_, listener) {
+ var t1;
+ this.didRegisterListener$0();
+ t1 = this.AnimationLocalListenersMixin__listeners;
+ t1._isDirty = true;
+ t1._observer_list$_list.push(listener);
+ },
+ removeListener$1: function(_, listener) {
+ if (this.AnimationLocalListenersMixin__listeners.remove$1(0, listener))
+ this.didUnregisterListener$0();
+ },
+ notifyListeners$0: function() {
+ var listener, exception, stack, t2, _i, exception0, rti, t3, t4, _this = this,
+ t1 = _this.AnimationLocalListenersMixin__listeners,
+ localListeners = P.List_List$from(t1, true, type$.void_Function);
+ for (t2 = localListeners.length, _i = 0; _i < t2; ++_i) {
+ listener = localListeners[_i];
+ try {
+ if (t1.contains$1(0, listener))
+ listener.call$0();
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ rti = _this instanceof H.Closure ? H.closureFunctionType(_this) : null;
+ t3 = U.ErrorDescription$("while notifying listeners for " + H.createRuntimeType(rti == null ? H.instanceType(_this) : rti).toString$0(0));
+ t4 = $.$get$FlutterError_onError();
+ if (t4 != null)
+ t4.call$1(new U.FlutterErrorDetails(exception, stack, "animation library", t3, null, false));
+ }
+ }
+ }
+ };
+ S.AnimationLocalStatusListenersMixin.prototype = {
+ addStatusListener$1: function(listener) {
+ var t1;
+ this.didRegisterListener$0();
+ t1 = this.AnimationLocalStatusListenersMixin__statusListeners;
+ t1._isDirty = true;
+ t1._observer_list$_list.push(listener);
+ },
+ removeStatusListener$1: function(listener) {
+ if (this.AnimationLocalStatusListenersMixin__statusListeners.remove$1(0, listener))
+ this.didUnregisterListener$0();
+ },
+ notifyStatusListeners$1: function($status) {
+ var listener, exception, stack, t2, _i, exception0, rti, t3, t4, _this = this,
+ t1 = _this.AnimationLocalStatusListenersMixin__statusListeners,
+ localListeners = P.List_List$from(t1, true, type$.void_Function_AnimationStatus);
+ for (t2 = localListeners.length, _i = 0; _i < t2; ++_i) {
+ listener = localListeners[_i];
+ try {
+ if (t1.contains$1(0, listener))
+ listener.call$1($status);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ rti = _this instanceof H.Closure ? H.closureFunctionType(_this) : null;
+ t3 = U.ErrorDescription$("while notifying status listeners for " + H.createRuntimeType(rti == null ? H.instanceType(_this) : rti).toString$0(0));
+ t4 = $.$get$FlutterError_onError();
+ if (t4 != null)
+ t4.call$1(new U.FlutterErrorDetails(exception, stack, "animation library", t3, null, false));
+ }
+ }
+ }
+ };
+ R.Animatable.prototype = {
+ chain$1: function($parent) {
+ return new R._ChainedEvaluation($parent, this, H._instanceType(this)._eval$1("_ChainedEvaluation"));
+ }
+ };
+ R._AnimatedEvaluation.prototype = {
+ get$value: function(_) {
+ var t1 = this.parent;
+ return this._evaluatable.transform$1(0, t1.get$value(t1));
+ },
+ toString$0: function(_) {
+ var t1 = this.parent,
+ t2 = this._evaluatable;
+ return t1.toString$0(0) + "\u27a9" + t2.toString$0(0) + "\u27a9" + H.S(t2.transform$1(0, t1.get$value(t1)));
+ },
+ toStringDetails$0: function() {
+ return this.super$Animation$toStringDetails() + " " + this._evaluatable.toString$0(0);
+ },
+ get$parent: function(receiver) {
+ return this.parent;
+ }
+ };
+ R._ChainedEvaluation.prototype = {
+ transform$1: function(_, t) {
+ return this._evaluatable.transform$1(0, this._tween$_parent.transform$1(0, t));
+ },
+ toString$0: function(_) {
+ return H.S(this._tween$_parent) + "\u27a9" + this._evaluatable.toString$0(0);
+ }
+ };
+ R.Tween.prototype = {
+ lerp$1: function(t) {
+ var t1 = this.begin;
+ return H._instanceType(this)._eval$1("Tween.T")._as(J.$add$ansx(t1, J.$mul$ns(J.$sub$n(this.end, t1), t)));
+ },
+ transform$1: function(_, t) {
+ if (t === 0)
+ return this.begin;
+ if (t === 1)
+ return this.end;
+ return this.lerp$1(t);
+ },
+ toString$0: function(_) {
+ return "Animatable(" + H.S(this.begin) + " \u2192 " + H.S(this.end) + ")";
+ },
+ set$begin: function(val) {
+ return this.begin = val;
+ },
+ set$end: function(receiver, val) {
+ return this.end = val;
+ }
+ };
+ R.ReverseTween.prototype = {
+ lerp$1: function(t) {
+ return this.parent.lerp$1(1 - t);
+ }
+ };
+ R.ColorTween.prototype = {
+ lerp$1: function(t) {
+ return P.Color_lerp(this.begin, this.end, t);
+ }
+ };
+ R.RectTween.prototype = {
+ lerp$1: function(t) {
+ return P.Rect_lerp(this.begin, this.end, t);
+ }
+ };
+ R.IntTween.prototype = {
+ lerp$1: function(t) {
+ var t2,
+ t1 = this.begin;
+ t1.toString;
+ t2 = this.end;
+ t2.toString;
+ return C.JSNumber_methods.round$0(t1 + (t2 - t1) * t);
+ }
+ };
+ R.CurveTween.prototype = {
+ transform$1: function(_, t) {
+ if (t === 0 || t === 1)
+ return t;
+ return this.curve.transform$1(0, t);
+ },
+ toString$0: function(_) {
+ return "CurveTween(curve: " + this.curve.toString$0(0) + ")";
+ }
+ };
+ R.__AnimatedEvaluation_Animation_AnimationWithParentMixin.prototype = {};
+ E.CupertinoDynamicColor.prototype = {
+ get$value: function(_) {
+ return this._effectiveColor.value;
+ },
+ get$_isPlatformBrightnessDependent: function() {
+ var _this = this;
+ return !_this.color.$eq(0, _this.darkColor) || !_this.elevatedColor.$eq(0, _this.darkElevatedColor) || !_this.highContrastColor.$eq(0, _this.darkHighContrastColor) || !_this.highContrastElevatedColor.$eq(0, _this.darkHighContrastElevatedColor);
+ },
+ get$_isHighContrastDependent: function() {
+ var _this = this;
+ return !_this.color.$eq(0, _this.highContrastColor) || !_this.darkColor.$eq(0, _this.darkHighContrastColor) || !_this.elevatedColor.$eq(0, _this.highContrastElevatedColor) || !_this.darkElevatedColor.$eq(0, _this.darkHighContrastElevatedColor);
+ },
+ get$_isInterfaceElevationDependent: function() {
+ var _this = this;
+ return !_this.color.$eq(0, _this.elevatedColor) || !_this.darkColor.$eq(0, _this.darkElevatedColor) || !_this.highContrastColor.$eq(0, _this.highContrastElevatedColor) || !_this.darkHighContrastColor.$eq(0, _this.darkHighContrastElevatedColor);
+ },
+ resolveFrom$1: function(context) {
+ var inheritedTheme, t1, brightness, isHighContrastEnabled, resolved, _this = this, _null = null,
+ _s80_ = string$.x60null_c;
+ if (_this.get$_isPlatformBrightnessDependent()) {
+ inheritedTheme = context.dependOnInheritedWidgetOfExactType$1$0(type$._InheritedCupertinoTheme);
+ t1 = inheritedTheme == null ? _null : inheritedTheme.theme.data.get$brightness();
+ if (t1 == null) {
+ t1 = F.MediaQuery_maybeOf(context);
+ t1 = t1 == null ? _null : t1.platformBrightness;
+ brightness = t1;
+ } else
+ brightness = t1;
+ if (brightness == null)
+ brightness = C.Brightness_1;
+ } else
+ brightness = C.Brightness_1;
+ if (_this.get$_isHighContrastDependent()) {
+ t1 = F.MediaQuery_maybeOf(context);
+ t1 = t1 == null ? _null : t1.highContrast;
+ isHighContrastEnabled = t1 === true;
+ } else
+ isHighContrastEnabled = false;
+ if (_this.get$_isInterfaceElevationDependent())
+ K.CupertinoUserInterfaceLevel_maybeOf(context);
+ switch (brightness) {
+ case C.Brightness_1:
+ switch (C.CupertinoUserInterfaceLevelData_0) {
+ case C.CupertinoUserInterfaceLevelData_0:
+ resolved = isHighContrastEnabled ? _this.highContrastColor : _this.color;
+ break;
+ case C.CupertinoUserInterfaceLevelData_1:
+ resolved = isHighContrastEnabled ? _this.highContrastElevatedColor : _this.elevatedColor;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ break;
+ case C.Brightness_0:
+ switch (C.CupertinoUserInterfaceLevelData_0) {
+ case C.CupertinoUserInterfaceLevelData_0:
+ resolved = isHighContrastEnabled ? _this.darkHighContrastColor : _this.darkColor;
+ break;
+ case C.CupertinoUserInterfaceLevelData_1:
+ resolved = isHighContrastEnabled ? _this.darkHighContrastElevatedColor : _this.darkElevatedColor;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ return new E.CupertinoDynamicColor(resolved, _this._colors$_debugLabel, _null, _this.color, _this.darkColor, _this.highContrastColor, _this.darkHighContrastColor, _this.elevatedColor, _this.darkElevatedColor, _this.highContrastElevatedColor, _this.darkHighContrastElevatedColor, 0);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof E.CupertinoDynamicColor && other._effectiveColor.value === _this._effectiveColor.value && other.color.$eq(0, _this.color) && other.darkColor.$eq(0, _this.darkColor) && other.highContrastColor.$eq(0, _this.highContrastColor) && other.darkHighContrastColor.$eq(0, _this.darkHighContrastColor) && other.elevatedColor.$eq(0, _this.elevatedColor) && other.darkElevatedColor.$eq(0, _this.darkElevatedColor) && other.highContrastElevatedColor.$eq(0, _this.highContrastElevatedColor) && other.darkHighContrastElevatedColor.$eq(0, _this.darkHighContrastElevatedColor);
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this._effectiveColor.value, _this.color, _this.darkColor, _this.highContrastColor, _this.elevatedColor, _this.darkElevatedColor, _this.darkHighContrastColor, _this.darkHighContrastElevatedColor, _this.highContrastElevatedColor, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = new E.CupertinoDynamicColor_toString_toString(_this),
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ t2.push(t1.call$2("color", _this.color));
+ if (_this.get$_isPlatformBrightnessDependent())
+ t2.push(t1.call$2("darkColor", _this.darkColor));
+ if (_this.get$_isHighContrastDependent())
+ t2.push(t1.call$2("highContrastColor", _this.highContrastColor));
+ if (_this.get$_isPlatformBrightnessDependent() && _this.get$_isHighContrastDependent())
+ t2.push(t1.call$2("darkHighContrastColor", _this.darkHighContrastColor));
+ if (_this.get$_isInterfaceElevationDependent())
+ t2.push(t1.call$2("elevatedColor", _this.elevatedColor));
+ if (_this.get$_isPlatformBrightnessDependent() && _this.get$_isInterfaceElevationDependent())
+ t2.push(t1.call$2("darkElevatedColor", _this.darkElevatedColor));
+ if (_this.get$_isHighContrastDependent() && _this.get$_isInterfaceElevationDependent())
+ t2.push(t1.call$2("highContrastElevatedColor", _this.highContrastElevatedColor));
+ if (_this.get$_isPlatformBrightnessDependent() && _this.get$_isHighContrastDependent() && _this.get$_isInterfaceElevationDependent())
+ t2.push(t1.call$2("darkHighContrastElevatedColor", _this.darkHighContrastElevatedColor));
+ t1 = _this._colors$_debugLabel;
+ t1 = (t1 == null ? "CupertinoDynamicColor" : t1) + "(" + C.JSArray_methods.join$1(t2, ", ");
+ return t1 + ", resolved by: UNRESOLVED)";
+ }
+ };
+ E.CupertinoDynamicColor_toString_toString.prototype = {
+ call$2: function($name, color) {
+ var marker = color.$eq(0, this.$this._effectiveColor) ? "*" : "";
+ return marker + $name + " = " + color.toString$0(0) + marker;
+ },
+ $signature: 166
+ };
+ E._CupertinoDynamicColor_Color_Diagnosticable.prototype = {};
+ T.CupertinoIconThemeData.prototype = {
+ resolve$1: function(context) {
+ var t1 = this.color,
+ resolvedColor = E.CupertinoDynamicColor_maybeResolve(t1, context);
+ return J.$eq$(resolvedColor, t1) ? this : this.copyWith$1$color(resolvedColor);
+ },
+ copyWith$3$color$opacity$size: function(color, opacity, size) {
+ var _this = this,
+ t1 = color == null ? _this.color : color,
+ t2 = opacity == null ? _this.get$opacity(_this) : opacity;
+ return new T.CupertinoIconThemeData(t1, t2, size == null ? _this.size : size);
+ },
+ copyWith$1$color: function(color) {
+ return this.copyWith$3$color$opacity$size(color, null, null);
+ }
+ };
+ T._CupertinoIconThemeData_IconThemeData_Diagnosticable.prototype = {};
+ K.CupertinoUserInterfaceLevelData.prototype = {
+ toString$0: function(_) {
+ return this._interface_level$_name;
+ }
+ };
+ L._CupertinoLocalizationsDelegate.prototype = {
+ isSupported$1: function(locale) {
+ return locale.get$languageCode(locale) === "en";
+ },
+ load$1: function(_, locale) {
+ return new O.SynchronousFuture(C.C_DefaultCupertinoLocalizations, type$.SynchronousFuture_CupertinoLocalizations);
+ },
+ shouldReload$1: function(old) {
+ return false;
+ },
+ toString$0: function(_) {
+ return "DefaultCupertinoLocalizations.delegate(en_US)";
+ }
+ };
+ L.DefaultCupertinoLocalizations.prototype = {$isCupertinoLocalizations: 1};
+ D.CupertinoRouteTransitionMixin_buildPageTransitions_closure.prototype = {
+ call$0: function() {
+ return D.CupertinoRouteTransitionMixin__isPopGestureEnabled(this.route);
+ },
+ $signature: 72
+ };
+ D.CupertinoRouteTransitionMixin_buildPageTransitions_closure0.prototype = {
+ call$0: function() {
+ var t1 = this.route,
+ t2 = t1._navigator$_navigator;
+ t2.toString;
+ t1 = t1._routes$_controller;
+ t1.toString;
+ t2.didStartUserGesture$0();
+ return new D._CupertinoBackGestureController(t1, t2);
+ },
+ $signature: function() {
+ return this.T._eval$1("_CupertinoBackGestureController<0>()");
+ }
+ };
+ D.CupertinoPageTransition.prototype = {
+ build$1: function(_, context) {
+ var textDirection, _this = this,
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ textDirection = t1.textDirection;
+ t1 = _this._primaryShadowAnimation;
+ return K.SlideTransition$(K.SlideTransition$(new K.DecoratedBoxTransition(t1, _this.child, t1, null), _this._primaryPositionAnimation, textDirection, true), _this._secondaryPositionAnimation, textDirection, false);
+ }
+ };
+ D._CupertinoBackGestureDetector.prototype = {
+ createState$0: function() {
+ return new D._CupertinoBackGestureDetectorState(C._StateLifecycle_0, this.$ti._eval$1("_CupertinoBackGestureDetectorState<1>"));
+ },
+ enabledCallback$0: function() {
+ return this.enabledCallback.call$0();
+ },
+ onStartPopGesture$0: function() {
+ return this.onStartPopGesture.call$0();
+ }
+ };
+ D._CupertinoBackGestureDetectorState.prototype = {
+ get$_recognizer: function() {
+ return this.___CupertinoBackGestureDetectorState__recognizer_isSet ? this.___CupertinoBackGestureDetectorState__recognizer : H.throwExpression(H.LateError$fieldNI("_recognizer"));
+ },
+ initState$0: function() {
+ var t1, _this = this;
+ _this.super$State$initState();
+ t1 = O.HorizontalDragGestureRecognizer$(_this, null);
+ t1.onStart = _this.get$_handleDragStart();
+ t1.onUpdate = _this.get$_handleDragUpdate();
+ t1.onEnd = _this.get$_handleDragEnd();
+ t1.onCancel = _this.get$_handleDragCancel();
+ _this.___CupertinoBackGestureDetectorState__recognizer_isSet = true;
+ _this.___CupertinoBackGestureDetectorState__recognizer = t1;
+ },
+ dispose$0: function(_) {
+ var t1 = this.get$_recognizer();
+ t1._velocityTrackers.clear$0(0);
+ t1.super$OneSequenceGestureRecognizer$dispose(0);
+ this.super$State$dispose(0);
+ },
+ _handleDragStart$1: function(details) {
+ this._backGestureController = this._widget.onStartPopGesture$0();
+ },
+ _handleDragUpdate$1: function(details) {
+ var t2, t3,
+ t1 = this._backGestureController;
+ t1.toString;
+ t2 = details.primaryDelta;
+ t2.toString;
+ t3 = this._framework$_element;
+ t3 = this._convertToLogical$1(t2 / t3.get$size(t3)._dx);
+ t1 = t1.controller;
+ t1.set$value(0, t1.get$_animation_controller$_value() - t3);
+ },
+ _handleDragEnd$1: function(details) {
+ var t2, t3, _this = this,
+ t1 = _this._backGestureController;
+ t1.toString;
+ t2 = details.velocity;
+ t3 = _this._framework$_element;
+ t1.dragEnd$1(_this._convertToLogical$1(t2.pixelsPerSecond._dx / t3.get$size(t3)._dx));
+ _this._backGestureController = null;
+ },
+ _handleDragCancel$0: function() {
+ var t1 = this._backGestureController;
+ if (t1 != null)
+ t1.dragEnd$1(0);
+ this._backGestureController = null;
+ },
+ _route$_handlePointerDown$1: function($event) {
+ if (this._widget.enabledCallback$0())
+ this.get$_recognizer().addPointer$1($event);
+ },
+ _convertToLogical$1: function(value) {
+ var t1 = this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ switch (t1.textDirection) {
+ case C.TextDirection_0:
+ return -value;
+ case C.TextDirection_1:
+ return value;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ build$1: function(_, context) {
+ var t2, dragAreaWidth, _null = null,
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ t2 = type$.MediaQuery;
+ dragAreaWidth = Math.max(H.checkNum(t1.textDirection === C.TextDirection_1 ? context.dependOnInheritedWidgetOfExactType$1$0(t2).data.padding.left : context.dependOnInheritedWidgetOfExactType$1$0(t2).data.padding.right), 20);
+ return T.Stack$(C.AlignmentDirectional_m1_m1, H.setRuntimeTypeInfo([this._widget.child, new T.PositionedDirectional(0, 0, 0, dragAreaWidth, T.Listener$(C.HitTestBehavior_2, _null, _null, this.get$_route$_handlePointerDown(), _null, _null), _null)], type$.JSArray_Widget), C.StackFit_2);
+ }
+ };
+ D._CupertinoBackGestureController.prototype = {
+ dragEnd$1: function(velocity) {
+ var t2, t3, _this = this, t1 = {};
+ if (Math.abs(velocity) >= 1 ? velocity <= 0 : _this.controller.get$_animation_controller$_value() > 0.5) {
+ t2 = _this.controller;
+ t3 = P.lerpDouble(800, 0, t2.get$_animation_controller$_value());
+ t3.toString;
+ t3 = P.Duration$(0, Math.min(C.JSNumber_methods.floor$0(t3), 300), 0);
+ t2._direction = C._AnimationDirection_0;
+ t2._animateToInternal$3$curve$duration(1, C.Cubic_2Vk, t3);
+ } else {
+ _this.navigator.pop$0(0);
+ t2 = _this.controller;
+ if (t2.get$isAnimating()) {
+ t3 = P.lerpDouble(0, 800, t2.get$_animation_controller$_value());
+ t3.toString;
+ t3 = P.Duration$(0, C.JSNumber_methods.floor$0(t3), 0);
+ t2._direction = C._AnimationDirection_1;
+ t2._animateToInternal$3$curve$duration(0, C.Cubic_2Vk, t3);
+ }
+ }
+ if (t2.get$isAnimating()) {
+ t1.animationStatusCallback = null;
+ t1._animationStatusCallback_isSet = false;
+ t3 = new D._CupertinoBackGestureController_dragEnd__animationStatusCallback_get(t1);
+ new D._CupertinoBackGestureController_dragEnd__animationStatusCallback_set(t1).call$1(new D._CupertinoBackGestureController_dragEnd_closure(_this, t3));
+ t2.addStatusListener$1(t3.call$0());
+ } else
+ _this.navigator.didStopUserGesture$0();
+ }
+ };
+ D._CupertinoBackGestureController_dragEnd__animationStatusCallback_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._animationStatusCallback_isSet = true;
+ return t2.animationStatusCallback = t1;
+ },
+ $signature: 165
+ };
+ D._CupertinoBackGestureController_dragEnd__animationStatusCallback_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._animationStatusCallback_isSet ? t1.animationStatusCallback : H.throwExpression(H.LateError$localNI("animationStatusCallback"));
+ },
+ $signature: 164
+ };
+ D._CupertinoBackGestureController_dragEnd_closure.prototype = {
+ call$1: function($status) {
+ var t1 = this.$this;
+ t1.navigator.didStopUserGesture$0();
+ t1.controller.removeStatusListener$1(this._animationStatusCallback_get.call$0());
+ },
+ $signature: 7
+ };
+ D._CupertinoEdgeShadowDecoration.prototype = {
+ lerpFrom$2: function(a, t) {
+ var t1;
+ if (a instanceof D._CupertinoEdgeShadowDecoration) {
+ t1 = D._CupertinoEdgeShadowDecoration_lerp(a, this, t);
+ t1.toString;
+ return t1;
+ }
+ t1 = D._CupertinoEdgeShadowDecoration_lerp(null, this, t);
+ t1.toString;
+ return t1;
+ },
+ lerpTo$2: function(b, t) {
+ var t1;
+ if (b instanceof D._CupertinoEdgeShadowDecoration) {
+ t1 = D._CupertinoEdgeShadowDecoration_lerp(this, b, t);
+ t1.toString;
+ return t1;
+ }
+ t1 = D._CupertinoEdgeShadowDecoration_lerp(this, null, t);
+ t1.toString;
+ return t1;
+ },
+ createBoxPainter$1: function(onChanged) {
+ return new D._CupertinoEdgeShadowPainter(this, onChanged);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof D._CupertinoEdgeShadowDecoration && J.$eq$(other.edgeGradient, this.edgeGradient);
+ },
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.edgeGradient);
+ }
+ };
+ D._CupertinoEdgeShadowPainter.prototype = {
+ paint$3: function(canvas, offset, configuration) {
+ var textDirection, t1, deltaX, t2, t3, rect, paint, t4, t5,
+ gradient = this._route$_decoration.edgeGradient;
+ if (gradient == null)
+ return;
+ textDirection = configuration.textDirection;
+ textDirection.toString;
+ switch (textDirection) {
+ case C.TextDirection_0:
+ t1 = configuration.size;
+ deltaX = t1._dx;
+ break;
+ case C.TextDirection_1:
+ t1 = configuration.size;
+ deltaX = -t1._dx;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ t2 = offset._dx;
+ t3 = offset._dy;
+ rect = new P.Rect(t2, t3, t2 + t1._dx, t3 + t1._dy).translate$2(0, deltaX, 0);
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ t1 = gradient.begin.resolve$1(textDirection).withinRect$1(rect);
+ t2 = gradient.end.resolve$1(textDirection).withinRect$1(rect);
+ t3 = gradient.colors;
+ t4 = gradient._impliedStops$0();
+ t5 = gradient.tileMode;
+ paint.set$shader(P.Gradient_Gradient$linear(t1, t2, t3, t4, t5, null));
+ canvas.drawRect$2(0, rect, paint);
+ }
+ };
+ F._TextSelectionHandlePainter0.prototype = {
+ paint$2: function(canvas, size) {
+ var circle, line, path,
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$color(0, this.color);
+ circle = P.Rect$fromCircle(C.Offset_6_6, 6);
+ line = P.Rect$fromPoints(C.Offset_6pl, new P.Offset(7, size._dy));
+ path = P.Path_Path();
+ path.addOval$1(0, circle);
+ path.addRect$1(0, line);
+ canvas.drawPath$2(0, path, paint);
+ },
+ shouldRepaint$1: function(oldPainter) {
+ return !J.$eq$(this.color, oldPainter.color);
+ }
+ };
+ F._CupertinoTextSelectionControls.prototype = {
+ getHandleSize$1: function(textLineHeight) {
+ return new P.Size(12, textLineHeight + 12 - 1.5);
+ },
+ buildHandle$3: function(context, type, textLineHeight) {
+ var t3, cosAngle, sinAngle, t4, t5, t6, t7, t8, t9, t10, t11, t12, _null = null,
+ t1 = textLineHeight + 12 - 1.5,
+ t2 = T.CustomPaint$(_null, _null, new F._TextSelectionHandlePainter0(K.CupertinoTheme_of(context).get$primaryColor(), _null)),
+ handle = new T.SizedBox(12, t1, t2, _null);
+ switch (type) {
+ case C.TextSelectionHandleType_0:
+ return handle;
+ case C.TextSelectionHandleType_1:
+ t2 = new Float64Array(16);
+ t3 = new E.Matrix4(t2);
+ t3.setIdentity$0();
+ t3.translate$2(0, 6, t1 / 2);
+ cosAngle = Math.cos(3.141592653589793);
+ sinAngle = Math.sin(3.141592653589793);
+ t4 = t2[0];
+ t5 = t2[4];
+ t6 = t2[1];
+ t7 = t2[5];
+ t8 = t2[2];
+ t9 = t2[6];
+ t10 = t2[3];
+ t11 = t2[7];
+ t12 = -sinAngle;
+ t2[0] = t4 * cosAngle + t5 * sinAngle;
+ t2[1] = t6 * cosAngle + t7 * sinAngle;
+ t2[2] = t8 * cosAngle + t9 * sinAngle;
+ t2[3] = t10 * cosAngle + t11 * sinAngle;
+ t2[4] = t4 * t12 + t5 * cosAngle;
+ t2[5] = t6 * t12 + t7 * cosAngle;
+ t2[6] = t8 * t12 + t9 * cosAngle;
+ t2[7] = t10 * t12 + t11 * cosAngle;
+ t3.translate$2(0, -6, -t1 / 2);
+ return T.Transform$(_null, handle, t3, true);
+ case C.TextSelectionHandleType_2:
+ return C.SizedBox_null_null_null_null;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getHandleAnchor$2: function(type, textLineHeight) {
+ var t1 = textLineHeight + 12 - 1.5;
+ switch (type) {
+ case C.TextSelectionHandleType_0:
+ return new P.Offset(6, t1);
+ case C.TextSelectionHandleType_1:
+ return new P.Offset(6, t1 - 12 + 1.5);
+ case C.TextSelectionHandleType_2:
+ return new P.Offset(6, textLineHeight + (t1 - textLineHeight) / 2);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ R.CupertinoTextThemeData.prototype = {
+ resolveFrom$1: function(context) {
+ var _this = this,
+ t1 = _this._text_theme$_defaults,
+ resolvedLabelColor = t1.labelColor,
+ resolvedLabelColor0 = resolvedLabelColor instanceof E.CupertinoDynamicColor ? resolvedLabelColor.resolveFrom$1(context) : resolvedLabelColor,
+ resolvedInactiveGray = t1.inactiveGrayColor;
+ if (resolvedInactiveGray instanceof E.CupertinoDynamicColor)
+ resolvedInactiveGray = resolvedInactiveGray.resolveFrom$1(context);
+ t1 = resolvedLabelColor0.$eq(0, resolvedLabelColor) && resolvedInactiveGray.$eq(0, C.CupertinoDynamicColor_YIZ) ? t1 : new R._TextThemeDefaultsBuilder(resolvedLabelColor0, resolvedInactiveGray);
+ return new R.CupertinoTextThemeData(t1, E.CupertinoDynamicColor_maybeResolve(_this._primaryColor, context), R._resolveTextStyle(_this._textStyle, context), R._resolveTextStyle(_this._actionTextStyle, context), R._resolveTextStyle(_this._tabLabelTextStyle, context), R._resolveTextStyle(_this._navTitleTextStyle, context), R._resolveTextStyle(_this._navLargeTitleTextStyle, context), R._resolveTextStyle(_this._navActionTextStyle, context), R._resolveTextStyle(_this._pickerTextStyle, context), R._resolveTextStyle(_this._dateTimePickerTextStyle, context));
+ }
+ };
+ R._TextThemeDefaultsBuilder.prototype = {};
+ R._CupertinoTextThemeData_Object_Diagnosticable.prototype = {};
+ K.CupertinoTheme.prototype = {
+ build$1: function(_, context) {
+ var _null = null;
+ return new K._InheritedCupertinoTheme(this, Y.IconTheme$(this.child, new T.CupertinoIconThemeData(this.data.get$primaryColor(), _null, _null), _null), _null);
+ }
+ };
+ K._InheritedCupertinoTheme.prototype = {
+ updateShouldNotify$1: function(old) {
+ return this.theme.data !== old.theme.data;
+ }
+ };
+ K.CupertinoThemeData.prototype = {
+ get$primaryColor: function() {
+ var t1 = this.primaryColor;
+ return t1 == null ? this._defaults.primaryColor : t1;
+ },
+ get$primaryContrastingColor: function() {
+ var t1 = this.primaryContrastingColor;
+ return t1 == null ? this._defaults.primaryContrastingColor : t1;
+ },
+ get$textTheme: function() {
+ var _null = null,
+ t1 = this.textTheme;
+ if (t1 == null) {
+ t1 = this._defaults.textThemeDefaults;
+ t1 = new K._DefaultCupertinoTextThemeData(t1.labelColor, t1.inactiveGray, C._TextThemeDefaultsBuilder_1yH, this.get$primaryColor(), _null, _null, _null, _null, _null, _null, _null, _null);
+ }
+ return t1;
+ },
+ get$barBackgroundColor: function() {
+ var t1 = this.barBackgroundColor;
+ return t1 == null ? this._defaults.barBackgroundColor : t1;
+ },
+ get$scaffoldBackgroundColor: function() {
+ var t1 = this.scaffoldBackgroundColor;
+ return t1 == null ? this._defaults.scaffoldBackgroundColor : t1;
+ },
+ resolveFrom$1: function(context) {
+ var _this = this,
+ t1 = new K.CupertinoThemeData_resolveFrom_convertColor(context),
+ t2 = _this.get$brightness(),
+ t3 = t1.call$1(_this.primaryColor),
+ t4 = t1.call$1(_this.primaryContrastingColor),
+ t5 = _this.textTheme;
+ t5 = t5 == null ? null : t5.resolveFrom$1(context);
+ return K.CupertinoThemeData$_rawWithDefaults(t2, t3, t4, t5, t1.call$1(_this.barBackgroundColor), t1.call$1(_this.scaffoldBackgroundColor), _this._defaults.resolveFrom$2(context, _this.textTheme == null));
+ }
+ };
+ K.CupertinoThemeData_resolveFrom_convertColor.prototype = {
+ call$1: function(color) {
+ return E.CupertinoDynamicColor_maybeResolve(color, this.context);
+ },
+ $signature: 113
+ };
+ K.NoDefaultCupertinoThemeData.prototype = {
+ resolveFrom$1: function(context) {
+ var _this = this,
+ t1 = new K.NoDefaultCupertinoThemeData_resolveFrom_convertColor(context),
+ t2 = _this.get$brightness(),
+ t3 = t1.call$1(_this.get$primaryColor()),
+ t4 = t1.call$1(_this.get$primaryContrastingColor()),
+ t5 = _this.get$textTheme();
+ t5 = t5 == null ? null : t5.resolveFrom$1(context);
+ return new K.NoDefaultCupertinoThemeData(t2, t3, t4, t5, t1.call$1(_this.get$barBackgroundColor()), t1.call$1(_this.get$scaffoldBackgroundColor()));
+ },
+ get$brightness: function() {
+ return this.brightness;
+ },
+ get$primaryColor: function() {
+ return this.primaryColor;
+ },
+ get$primaryContrastingColor: function() {
+ return this.primaryContrastingColor;
+ },
+ get$textTheme: function() {
+ return this.textTheme;
+ },
+ get$barBackgroundColor: function() {
+ return this.barBackgroundColor;
+ },
+ get$scaffoldBackgroundColor: function() {
+ return this.scaffoldBackgroundColor;
+ }
+ };
+ K.NoDefaultCupertinoThemeData_resolveFrom_convertColor.prototype = {
+ call$1: function(color) {
+ return E.CupertinoDynamicColor_maybeResolve(color, this.context);
+ },
+ $signature: 113
+ };
+ K._CupertinoThemeDefaults.prototype = {
+ resolveFrom$2: function(context, resolveTextTheme) {
+ var t5, t6, _this = this,
+ t1 = new K._CupertinoThemeDefaults_resolveFrom_convertColor(context),
+ t2 = t1.call$1(_this.primaryColor),
+ t3 = t1.call$1(_this.primaryContrastingColor),
+ t4 = t1.call$1(_this.barBackgroundColor);
+ t1 = t1.call$1(_this.scaffoldBackgroundColor);
+ t5 = _this.textThemeDefaults;
+ if (resolveTextTheme) {
+ t6 = t5.labelColor;
+ if (t6 instanceof E.CupertinoDynamicColor)
+ t6 = t6.resolveFrom$1(context);
+ t5 = t5.inactiveGray;
+ t5 = new K._CupertinoTextThemeDefaults(t6, t5 instanceof E.CupertinoDynamicColor ? t5.resolveFrom$1(context) : t5);
+ }
+ return new K._CupertinoThemeDefaults(_this.brightness, t2, t3, t4, t1, t5);
+ }
+ };
+ K._CupertinoThemeDefaults_resolveFrom_convertColor.prototype = {
+ call$1: function(color) {
+ return color instanceof E.CupertinoDynamicColor ? color.resolveFrom$1(this.context) : color;
+ },
+ $signature: 114
+ };
+ K._CupertinoTextThemeDefaults.prototype = {};
+ K._DefaultCupertinoTextThemeData.prototype = {};
+ K._CupertinoThemeData_NoDefaultCupertinoThemeData_Diagnosticable.prototype = {};
+ U._ErrorDiagnostic.prototype = {
+ get$value: function(_) {
+ var t1 = Y.DiagnosticsProperty.prototype.get$value.call(this, this);
+ t1.toString;
+ return t1;
+ },
+ valueToString$1$parentConfiguration: function(parentConfiguration) {
+ var t1 = Y.DiagnosticsProperty.prototype.get$value.call(this, this);
+ t1.toString;
+ return J.join$1$ax(t1, "");
+ }
+ };
+ U.ErrorDescription.prototype = {};
+ U.ErrorSummary.prototype = {};
+ U.ErrorHint.prototype = {};
+ U.ErrorSpacer.prototype = {};
+ U.FlutterErrorDetails.prototype = {
+ exceptionAsString$0: function() {
+ var message, fullMessage, t1, t2, position, body, splitPoint,
+ longMessage = this.exception;
+ if (type$.AssertionError._is(longMessage)) {
+ message = longMessage.get$message(longMessage);
+ fullMessage = longMessage.toString$0(0);
+ if (typeof message == "string" && message !== fullMessage) {
+ t1 = fullMessage.length;
+ t2 = J.getInterceptor$asx(message);
+ if (t1 > t2.get$length(message)) {
+ position = C.JSString_methods.lastIndexOf$1(fullMessage, message);
+ if (position === t1 - t2.get$length(message) && position > 2 && C.JSString_methods.substring$2(fullMessage, position - 2, position) === ": ") {
+ body = C.JSString_methods.substring$2(fullMessage, 0, position - 2);
+ splitPoint = C.JSString_methods.indexOf$1(body, " Failed assertion:");
+ if (splitPoint >= 0)
+ body = C.JSString_methods.substring$2(body, 0, splitPoint) + "\n" + C.JSString_methods.substring$1(body, splitPoint + 1);
+ longMessage = t2.trimRight$0(message) + "\n" + body;
+ } else
+ longMessage = null;
+ } else
+ longMessage = null;
+ } else
+ longMessage = null;
+ if (longMessage == null)
+ longMessage = fullMessage;
+ } else if (!(typeof longMessage == "string")) {
+ t1 = type$.Error._is(longMessage) || type$.Exception._is(longMessage);
+ t2 = J.getInterceptor$(longMessage);
+ longMessage = t1 ? t2.toString$0(longMessage) : " " + H.S(t2.toString$0(longMessage));
+ }
+ longMessage = J.trimRight$0$s(longMessage);
+ return longMessage.length === 0 ? " " : longMessage;
+ },
+ _exceptionToDiagnosticable$0: function() {
+ var t1,
+ exception = this.exception;
+ if (exception instanceof U.FlutterError)
+ return exception;
+ if (type$.AssertionError._is(exception) && exception.get$message(exception) instanceof U.FlutterError) {
+ t1 = J.get$message$x(exception);
+ t1.toString;
+ return type$.FlutterError._as(t1);
+ }
+ return null;
+ },
+ get$summary: function() {
+ var t1, summary;
+ if (this._exceptionToDiagnosticable$0() != null) {
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode);
+ this.debugFillProperties$1(new Y.DiagnosticPropertiesBuilder(t1, C.DiagnosticsTreeStyle_1));
+ t1 = new H.CastList(t1, type$.CastList_of_DiagnosticsNode_and_nullable_DiagnosticsNode);
+ summary = t1.firstWhere$2$orElse(t1, new U.FlutterErrorDetails_summary_closure(), new U.FlutterErrorDetails_summary_closure0());
+ } else
+ summary = null;
+ return summary == null ? U.ErrorSummary$(new U.FlutterErrorDetails_summary_formatException(this).call$0()) : summary;
+ },
+ debugFillProperties$1: function(properties) {
+ var t1, verb, diagnosticable, errorName, t2, t3, prefix, message, stackFrames, _this = this;
+ _this.super$Diagnosticable$debugFillProperties(properties);
+ t1 = _this.context;
+ verb = U.ErrorDescription$("thrown" + H.S(t1 != null ? U.ErrorDescription$(" " + t1.toString$0(0)) : ""));
+ diagnosticable = _this._exceptionToDiagnosticable$0();
+ t1 = _this.exception;
+ if (t1 instanceof P.NullThrownError)
+ U.ErrorDescription$("The null value was " + verb.toString$0(0) + ".");
+ else if (typeof t1 == "number")
+ U.ErrorDescription$("The number " + H.S(t1) + " was " + verb.toString$0(0) + ".");
+ else {
+ if (type$.AssertionError._is(t1))
+ errorName = U.ErrorDescription$("assertion");
+ else if (typeof t1 == "string")
+ errorName = U.ErrorDescription$("message");
+ else {
+ t2 = type$.Error._is(t1) || type$.Exception._is(t1);
+ t3 = J.getInterceptor$(t1);
+ errorName = t2 ? U.ErrorDescription$(t3.get$runtimeType(t1).toString$0(0)) : U.ErrorDescription$(t3.get$runtimeType(t1).toString$0(0) + " object");
+ }
+ U.ErrorDescription$("The following " + errorName.toString$0(0) + " was " + verb.toString$0(0) + ":");
+ if (diagnosticable != null)
+ C.JSArray_methods.forEach$1(diagnosticable.diagnostics, properties.get$add(properties));
+ else {
+ prefix = J.get$runtimeType$(t1).toString$0(0) + ": ";
+ message = _this.exceptionAsString$0();
+ U.ErrorSummary$(C.JSString_methods.startsWith$1(message, prefix) ? C.JSString_methods.substring$1(message, prefix.length) : message);
+ }
+ }
+ t2 = _this.stack;
+ if (t2 != null) {
+ if (type$.AssertionError._is(t1) && diagnosticable == null) {
+ t1 = R.StackFrame_fromStackString(J.toString$0$($.$get$FlutterError_demangleStackTrace().call$1(t2)));
+ t3 = H._arrayInstanceType(t1)._eval$1("SkipWhileIterable<1>");
+ stackFrames = P.List_List$of(new H.SkipWhileIterable(t1, new U.FlutterErrorDetails_debugFillProperties_closure(), t3), true, t3._eval$1("Iterable.E"));
+ if (stackFrames.length >= 2 && stackFrames[0].$package === "flutter" && stackFrames[1].$package === "flutter") {
+ U.ErrorSpacer$();
+ U.ErrorHint$("Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.\nIn either case, please report this assertion by filing a bug on GitHub:\n https://github.com/flutter/flutter/issues/new?template=2_bug.md");
+ }
+ }
+ U.ErrorSpacer$();
+ U.DiagnosticsStackTrace$("When the exception was thrown, this was the stack", t2, null);
+ }
+ t1 = _this.informationCollector;
+ if (t1 != null) {
+ U.ErrorSpacer$();
+ J.forEach$1$ax(t1.call$0(), properties.get$add(properties));
+ }
+ },
+ toStringShort$0: function() {
+ var t1 = "Exception caught by " + this.library;
+ return t1;
+ },
+ toString$0: function(_) {
+ U._FlutterErrorDetailsNode$(null, C.DiagnosticsTreeStyle_5, this);
+ return "";
+ }
+ };
+ U.FlutterErrorDetails_summary_formatException.prototype = {
+ call$0: function() {
+ return J.trimLeft$0$s(this.$this.exceptionAsString$0().split("\n")[0]);
+ },
+ $signature: 75
+ };
+ U.FlutterErrorDetails_summary_closure.prototype = {
+ call$1: function(node) {
+ return node.get$level(node) === C.DiagnosticLevel_6;
+ },
+ $signature: 163
+ };
+ U.FlutterErrorDetails_summary_closure0.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ U.FlutterErrorDetails_debugFillProperties_closure.prototype = {
+ call$1: function(frame) {
+ return frame.packageScheme === "dart";
+ },
+ $signature: 162
+ };
+ U.FlutterError.prototype = {
+ get$message: function(_) {
+ return this.toString$0(0);
+ },
+ toStringShort$0: function() {
+ return "FlutterError";
+ },
+ toString$0: function(_) {
+ var t1 = this.diagnostics;
+ return new H.MappedListIterable(t1, new U.FlutterError_toString_closure(new Y.TextTreeRenderer(4000000000, 65, C.DiagnosticLevel_2, -1)), H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,String>")).join$1(0, "\n");
+ },
+ $isAssertionError: 1,
+ $isDiagnosticableTree: 1
+ };
+ U.FlutterError_FlutterError_closure.prototype = {
+ call$1: function(line) {
+ return U.ErrorDescription$(line);
+ },
+ $signature: 160
+ };
+ U.FlutterError_closure.prototype = {
+ call$1: function(details) {
+ return $.FlutterError_presentError.call$1(details);
+ },
+ $signature: 159
+ };
+ U.FlutterError_closure0.prototype = {
+ call$1: function(stackTrace) {
+ return stackTrace;
+ },
+ $signature: 158
+ };
+ U.FlutterError_defaultStackFilter_closure.prototype = {
+ call$1: function(value) {
+ return value + 1;
+ },
+ $signature: 121
+ };
+ U.FlutterError_defaultStackFilter_closure0.prototype = {
+ call$1: function(value) {
+ return value + 1;
+ },
+ $signature: 121
+ };
+ U.FlutterError_toString_closure.prototype = {
+ call$1: function(node) {
+ return C.JSString_methods.trimRight$0(this.renderer.render$1(node));
+ },
+ $signature: 153
+ };
+ U.debugPrintStack_closure.prototype = {
+ call$1: function(line) {
+ return J.getInterceptor$asx(line).contains$1(line, "StackTrace.current") || C.JSString_methods.contains$1(line, "dart-sdk/lib/_internal") || C.JSString_methods.contains$1(line, "dart:sdk_internal");
+ },
+ $signature: 30
+ };
+ U.DiagnosticsStackTrace.prototype = {};
+ U._FlutterErrorDetailsNode.prototype = {
+ get$builder: function() {
+ Y.DiagnosticableNode.prototype.get$builder.call(this);
+ return null;
+ }
+ };
+ U._FlutterError_Error_DiagnosticableTreeMixin.prototype = {};
+ U._FlutterErrorDetails_Object_Diagnosticable.prototype = {};
+ N.BindingBase.prototype = {
+ BindingBase$0: function() {
+ var t1, t2, t3, t4, _this = this, _null = null;
+ P.Timeline_startSync("Framework initialization", _null, _null);
+ _this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding$initInstances();
+ $.WidgetsBinding__instance = _this;
+ t1 = P.HashSet_HashSet(type$.Element_2);
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_Element_2);
+ t3 = P.LinkedHashMap_LinkedHashMap(_null, _null, type$.void_Function_FocusHighlightMode, type$.int);
+ t4 = O.FocusScopeNode$(true, "Root Focus Scope", false);
+ t4 = t4._focus_manager$_manager = new O.FocusManager(new R.HashedObserverList(t3, type$.HashedObserverList_of_void_Function_FocusHighlightMode), t4, P.LinkedHashSet_LinkedHashSet$_empty(type$.FocusNode), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ $.$get$RawKeyboard_instance().keyEventHandler = t4.get$_handleRawKeyEvent();
+ $.GestureBinding__instance.GestureBinding_pointerRouter._globalRoutes.$indexSet(0, t4.get$_focus_manager$_handlePointerEvent(), _null);
+ t4 = new N.BuildOwner(new N._InactiveElements(t1), t2, t4);
+ _this.WidgetsBinding__buildOwner = t4;
+ t4.onBuildScheduled = _this.get$_handleBuildScheduled();
+ $.$get$window().platformDispatcher._onLocaleChanged = _this.get$handleLocaleChanged();
+ C.OptionalMethodChannel_urv.setMethodCallHandler$1(_this.get$_handleNavigationInvocation());
+ $.FlutterErrorDetails_propertiesTransformers.push(N.widget_inspector__transformDebugCreator$closure());
+ _this.initServiceExtensions$0();
+ t4 = type$.String;
+ P.postEvent("Flutter.FrameworkInitialization", P.LinkedHashMap_LinkedHashMap$_empty(t4, t4));
+ P.Timeline_finishSync();
+ },
+ initInstances$0: function() {
+ },
+ initServiceExtensions$0: function() {
+ },
+ lockEvents$1: function(callback) {
+ var future;
+ P.Timeline_startSync("Lock events", null, null);
+ ++this._lockCount;
+ future = callback.call$0();
+ future.whenComplete$1(new N.BindingBase_lockEvents_closure(this));
+ return future;
+ },
+ unlocked$0: function() {
+ },
+ registerSignalServiceExtension$2$callback$name: function(callback, $name) {
+ this.registerServiceExtension$2$callback$name(new N.BindingBase_registerSignalServiceExtension_closure(callback), $name);
+ },
+ registerBoolServiceExtension$3$getter$name$setter: function(getter, $name, setter) {
+ this.registerServiceExtension$2$callback$name(new N.BindingBase_registerBoolServiceExtension_closure(this, setter, $name, getter), $name);
+ },
+ registerNumericServiceExtension$3$getter$name$setter: function(getter, $name, setter) {
+ this.registerServiceExtension$2$callback$name(new N.BindingBase_registerNumericServiceExtension_closure(this, $name, setter, getter), $name);
+ },
+ _postExtensionStateChangedEvent$2: function($name, value) {
+ P.postEvent("Flutter.ServiceExtensionStateChanged", P.LinkedHashMap_LinkedHashMap$_literal(["extension", "ext.flutter." + $name, "value", value], type$.String, type$.dynamic));
+ },
+ registerServiceExtension$2$callback$name: function(callback, $name) {
+ var methodName = "ext.flutter." + $name;
+ P.registerExtension(methodName, new N.BindingBase_registerServiceExtension_closure(methodName, callback));
+ },
+ toString$0: function(_) {
+ return "";
+ }
+ };
+ N.BindingBase_lockEvents_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ if (--t1._lockCount <= 0) {
+ P.Timeline_finishSync();
+ t1.super$_WidgetsFlutterBinding_BindingBase_GestureBinding$unlocked();
+ if (t1.SchedulerBinding__taskQueue._priority_queue$_length !== 0)
+ t1._ensureEventLoopCallback$0();
+ }
+ },
+ $signature: 2
+ };
+ N.BindingBase_registerSignalServiceExtension_closure.prototype = {
+ call$1: function(parameters) {
+ return this.$call$body$BindingBase_registerSignalServiceExtension_closure(parameters);
+ },
+ $call$body$BindingBase_registerSignalServiceExtension_closure: function(parameters) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Map_String_dynamic),
+ $async$returnValue, $async$self = this;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait($async$self.callback.call$0(), $async$call$1);
+ case 3:
+ // returning from await.
+ $async$returnValue = P.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 40
+ };
+ N.BindingBase_registerBoolServiceExtension_closure.prototype = {
+ call$1: function(parameters) {
+ return this.$call$body$BindingBase_registerBoolServiceExtension_closure(parameters);
+ },
+ $call$body$BindingBase_registerBoolServiceExtension_closure: function(parameters) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Map_String_dynamic),
+ $async$returnValue, $async$self = this, t1, $async$temp1;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = J.getInterceptor$x(parameters);
+ $async$goto = t1.containsKey$1(parameters, "enabled") ? 3 : 4;
+ break;
+ case 3:
+ // then
+ $async$goto = 5;
+ return P._asyncAwait($async$self.setter.call$1(J.$eq$(t1.$index(parameters, "enabled"), "true")), $async$call$1);
+ case 5:
+ // returning from await.
+ $async$goto = 6;
+ return P._asyncAwait($async$self.getter.call$0(), $async$call$1);
+ case 6:
+ // returning from await.
+ t1 = $async$result ? "true" : "false";
+ $async$self.$this._postExtensionStateChangedEvent$2($async$self.name, t1);
+ case 4:
+ // join
+ $async$temp1 = P;
+ $async$goto = 7;
+ return P._asyncAwait($async$self.getter.call$0(), $async$call$1);
+ case 7:
+ // returning from await.
+ $async$returnValue = $async$temp1.LinkedHashMap_LinkedHashMap$_literal(["enabled", $async$result ? "true" : "false"], type$.String, type$.dynamic);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 40
+ };
+ N.BindingBase_registerNumericServiceExtension_closure.prototype = {
+ call$1: function(parameters) {
+ return this.$call$body$BindingBase_registerNumericServiceExtension_closure(parameters);
+ },
+ $call$body$BindingBase_registerNumericServiceExtension_closure: function(parameters) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Map_String_dynamic),
+ $async$returnValue, $async$self = this, t1, t2, $async$temp1, $async$temp2, $async$temp3;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self.name;
+ t2 = J.getInterceptor$x(parameters);
+ $async$goto = t2.containsKey$1(parameters, t1) ? 3 : 4;
+ break;
+ case 3:
+ // then
+ t2 = t2.$index(parameters, t1);
+ t2.toString;
+ $async$goto = 5;
+ return P._asyncAwait($async$self.setter.call$1(P.double_parse(t2)), $async$call$1);
+ case 5:
+ // returning from await.
+ $async$temp1 = $async$self.$this;
+ $async$temp2 = t1;
+ $async$temp3 = J;
+ $async$goto = 6;
+ return P._asyncAwait($async$self.getter.call$0(), $async$call$1);
+ case 6:
+ // returning from await.
+ $async$temp1._postExtensionStateChangedEvent$2($async$temp2, $async$temp3.toString$0$($async$result));
+ case 4:
+ // join
+ $async$temp1 = P;
+ $async$temp2 = t1;
+ $async$temp3 = J;
+ $async$goto = 7;
+ return P._asyncAwait($async$self.getter.call$0(), $async$call$1);
+ case 7:
+ // returning from await.
+ $async$returnValue = $async$temp1.LinkedHashMap_LinkedHashMap$_literal([$async$temp2, $async$temp3.toString$0$($async$result)], type$.String, type$.dynamic);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 40
+ };
+ N.BindingBase_registerServiceExtension_closure.prototype = {
+ call$2: function(method, parameters) {
+ return this.$call$body$BindingBase_registerServiceExtension_closure(method, parameters);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $call$body$BindingBase_registerServiceExtension_closure: function(method, parameters) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.ServiceExtensionResponse),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], $async$self = this, caughtException, caughtStack, _result_set, exception, stack, t2, exception0, t3, t4, t1, $async$exception0, $async$temp1;
+ var $async$call$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = {};
+ $async$goto = 3;
+ return P._asyncAwait(E.debugInstrumentAction("Wait for outer event loop", new N.BindingBase_registerServiceExtension__closure(), type$.void), $async$call$2);
+ case 3:
+ // returning from await.
+ caughtException = null;
+ caughtStack = null;
+ t1.result = null;
+ t1._result_isSet = false;
+ t2 = new N.BindingBase_registerServiceExtension_closure__result_get(t1);
+ _result_set = new N.BindingBase_registerServiceExtension_closure__result_set(t1);
+ $async$handler = 5;
+ $async$temp1 = _result_set;
+ $async$goto = 8;
+ return P._asyncAwait($async$self.callback.call$1(parameters), $async$call$2);
+ case 8:
+ // returning from await.
+ $async$temp1.call$1($async$result);
+ $async$handler = 2;
+ // goto after finally
+ $async$goto = 7;
+ break;
+ case 5:
+ // catch
+ $async$handler = 4;
+ $async$exception0 = $async$currentError;
+ exception = H.unwrapException($async$exception0);
+ stack = H.getTraceFromException($async$exception0);
+ caughtException = exception;
+ caughtStack = stack;
+ // goto after finally
+ $async$goto = 7;
+ break;
+ case 4:
+ // uncaught
+ // goto rethrow
+ $async$goto = 2;
+ break;
+ case 7:
+ // after finally
+ if (caughtException == null) {
+ J.$indexSet$ax(t2.call$0(), "type", "_extensionType");
+ J.$indexSet$ax(t2.call$0(), "method", method);
+ $async$returnValue = P.ServiceExtensionResponse$result(C.C_JsonCodec.encode$1(t2.call$0()));
+ // goto return
+ $async$goto = 1;
+ break;
+ } else {
+ t1 = caughtException;
+ t2 = caughtStack;
+ t3 = U.ErrorDescription$('during a service extension callback for "' + H.S(method) + '"');
+ t4 = $.$get$FlutterError_onError();
+ if (t4 != null)
+ t4.call$1(new U.FlutterErrorDetails(t1, t2, "Flutter framework", t3, null, false));
+ t1 = type$.String;
+ t1 = C.C_JsonCodec.encode$1(P.LinkedHashMap_LinkedHashMap$_literal(["exception", J.toString$0$(caughtException), "stack", J.toString$0$(caughtStack), "method", method], t1, t1));
+ P.ServiceExtensionResponse__validateErrorCode(-32000);
+ P.ArgumentError_checkNotNull(t1, "errorDetail");
+ $async$returnValue = new P.ServiceExtensionResponse();
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$2, $async$completer);
+ },
+ $signature: 133
+ };
+ N.BindingBase_registerServiceExtension_closure__result_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._result_isSet = true;
+ return t2.result = t1;
+ },
+ $signature: 150
+ };
+ N.BindingBase_registerServiceExtension__closure.prototype = {
+ call$0: function() {
+ return P.Future_Future$delayed(C.Duration_0, type$.void);
+ },
+ $signature: 29
+ };
+ N.BindingBase_registerServiceExtension_closure__result_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._result_isSet ? t1.result : H.throwExpression(H.LateError$localNI("result"));
+ },
+ $signature: 149
+ };
+ B.Listenable.prototype = {};
+ B._ListenerEntry.prototype = {
+ listener$0: function($receiver) {
+ return this.listener.call$0();
+ }
+ };
+ B.ChangeNotifier.prototype = {
+ addListener$1: function(_, listener) {
+ var t1 = this.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(listener), false);
+ },
+ removeListener$1: function(_, listener) {
+ var cur,
+ t1 = this.ChangeNotifier__listeners;
+ t1.toString;
+ t1 = P._LinkedListIterator$(t1);
+ for (; t1.moveNext$0();) {
+ cur = t1._collection$_current;
+ if (J.$eq$(cur.listener, listener)) {
+ t1 = cur._list;
+ t1.toString;
+ t1._unlink$1(H._instanceType(cur)._eval$1("LinkedListEntry.E")._as(cur));
+ return;
+ }
+ }
+ },
+ dispose$0: function(_) {
+ this.ChangeNotifier__listeners = null;
+ },
+ notifyListeners$0: function() {
+ var entry, exception, stack, localListeners, _i, exception0, rti, t2, t3, _this = this,
+ t1 = _this.ChangeNotifier__listeners;
+ if (t1._collection$_length === 0)
+ return;
+ localListeners = P.List_List$from(t1, true, type$._ListenerEntry);
+ for (t1 = localListeners.length, _i = 0; _i < t1; ++_i) {
+ entry = localListeners[_i];
+ try {
+ if (entry._list != null)
+ J.listener$0$z(entry);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ rti = _this instanceof H.Closure ? H.closureFunctionType(_this) : null;
+ t2 = U.ErrorDescription$("while dispatching notifications for " + H.createRuntimeType(rti == null ? H.instanceType(_this) : rti).toString$0(0));
+ t3 = $.$get$FlutterError_onError();
+ if (t3 != null)
+ t3.call$1(new U.FlutterErrorDetails(exception, stack, "foundation library", t2, new B.ChangeNotifier_notifyListeners_closure(_this), false));
+ }
+ }
+ },
+ $isListenable: 1
+ };
+ B.ChangeNotifier_notifyListeners_closure.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self.$this;
+ $async$goto = 2;
+ return Y.DiagnosticsProperty$("The " + H.getRuntimeType(t1).toString$0(0) + " sending notification was", t1, true, C.C__NoDefaultValue, null, false, null, null, C.DiagnosticLevel_3, null, false, true, true, C.DiagnosticsTreeStyle_9, null, type$.ChangeNotifier);
+ case 2:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ B._MergingListenable.prototype = {
+ addListener$1: function(_, listener) {
+ var t1, t2, _i, child;
+ for (t1 = this._change_notifier$_children, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ child = t1[_i];
+ if (child != null)
+ child.addListener$1(0, listener);
+ }
+ },
+ removeListener$1: function(_, listener) {
+ var t1, t2, _i, child;
+ for (t1 = this._change_notifier$_children, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ child = t1[_i];
+ if (child != null)
+ child.removeListener$1(0, listener);
+ }
+ },
+ toString$0: function(_) {
+ return "Listenable.merge([" + C.JSArray_methods.join$1(this._change_notifier$_children, ", ") + "])";
+ }
+ };
+ B.ValueNotifier.prototype = {
+ set$value: function(_, newValue) {
+ if (J.$eq$(this._change_notifier$_value, newValue))
+ return;
+ this._change_notifier$_value = newValue;
+ this.notifyListeners$0();
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this) + "(" + H.S(this._change_notifier$_value) + ")";
+ }
+ };
+ Y.DiagnosticLevel.prototype = {
+ toString$0: function(_) {
+ return this._diagnostics$_name;
+ }
+ };
+ Y.DiagnosticsTreeStyle.prototype = {
+ toString$0: function(_) {
+ return this._diagnostics$_name;
+ }
+ };
+ Y.TextTreeConfiguration.prototype = {};
+ Y._WordWrapParseMode.prototype = {
+ toString$0: function(_) {
+ return this._diagnostics$_name;
+ }
+ };
+ Y._PrefixedStringBuilder.prototype = {
+ get$prefixOtherLines: function() {
+ var t1 = this._nextPrefixOtherLines;
+ return t1 == null ? this._prefixOtherLines : t1;
+ },
+ incrementPrefixOtherLines$2$updateCurrentLine: function(suffix, updateCurrentLine) {
+ var t1, _this = this;
+ if (_this._currentLine._contents.length === 0 || updateCurrentLine) {
+ t1 = _this.get$prefixOtherLines();
+ t1.toString;
+ _this._prefixOtherLines = t1 + suffix;
+ _this._nextPrefixOtherLines = null;
+ } else {
+ t1 = _this.get$prefixOtherLines();
+ t1.toString;
+ _this._nextPrefixOtherLines = t1 + suffix;
+ }
+ },
+ get$requiresMultipleLines: function() {
+ var t2, _this = this,
+ t1 = _this._numLines;
+ if (t1 <= 1)
+ if (!(t1 === 1 && _this._currentLine._contents.length !== 0)) {
+ t1 = _this._currentLine._contents;
+ if (_this._diagnostics$_buffer._contents.length === 0)
+ t2 = _this.prefixLineOne;
+ else
+ t2 = _this._prefixOtherLines;
+ t2 = t1.length + t2.length > _this.wrapWidth;
+ t1 = t2;
+ } else
+ t1 = true;
+ else
+ t1 = true;
+ return t1;
+ },
+ _finalizeLine$1: function(addTrailingLineBreak) {
+ var t3, lines, $length, i, t4, _this = this,
+ firstLine = _this._diagnostics$_buffer._contents.length === 0,
+ t1 = _this._currentLine,
+ t2 = t1._contents,
+ text = t2.charCodeAt(0) == 0 ? t2 : t2;
+ t1._contents = "";
+ t1 = _this._wrappableRanges;
+ if (t1.length === 0) {
+ _this._writeLine$3$firstLine$includeLineBreak(text, firstLine, addTrailingLineBreak);
+ return;
+ }
+ t2 = firstLine ? _this.prefixLineOne.length : _this._prefixOtherLines.length;
+ t3 = _this._prefixOtherLines;
+ t3 = firstLine ? t3.length : t3.length;
+ lines = Y._PrefixedStringBuilder__wordWrapLine(text, t1, _this.wrapWidth, t3, t2);
+ $length = lines.get$length(lines);
+ for (t2 = new P._SyncStarIterator(lines._outerHelper()), t3 = !addTrailingLineBreak, i = 0; t2.moveNext$0();) {
+ t4 = t2.get$current(t2);
+ ++i;
+ _this._writeLine$3$firstLine$includeLineBreak(t4, firstLine, !t3 || i < $length);
+ }
+ C.JSArray_methods.set$length(t1, 0);
+ },
+ write$2$allowWrap: function(_, s, allowWrap) {
+ var lines, t1, t2, i, t3, line, wrapStart, wrapEnd, _this = this;
+ if (s.length === 0)
+ return;
+ lines = s.split("\n");
+ for (t1 = _this._currentLine, t2 = _this._wrappableRanges, i = 0; i < lines.length; ++i) {
+ if (i > 0) {
+ _this._finalizeLine$1(true);
+ t3 = _this._nextPrefixOtherLines;
+ if (t3 != null) {
+ _this._prefixOtherLines = t3;
+ _this._nextPrefixOtherLines = null;
+ }
+ }
+ line = lines[i];
+ t3 = line.length;
+ if (t3 !== 0) {
+ if (allowWrap && true) {
+ wrapStart = t1._contents.length;
+ wrapEnd = wrapStart + t3;
+ if (t2.length !== 0 && C.JSArray_methods.get$last(t2) === wrapStart)
+ C.JSArray_methods.set$last(t2, wrapEnd);
+ else {
+ t2.push(wrapStart);
+ t2.push(wrapEnd);
+ }
+ }
+ t1._contents += line;
+ }
+ }
+ },
+ write$1: function($receiver, s) {
+ return this.write$2$allowWrap($receiver, s, false);
+ },
+ _updatePrefix$0: function() {
+ var t1 = this._nextPrefixOtherLines;
+ if (t1 != null) {
+ this._prefixOtherLines = t1;
+ this._nextPrefixOtherLines = null;
+ }
+ },
+ _writeLine$3$firstLine$includeLineBreak: function(line, firstLine, includeLineBreak) {
+ var t2, _this = this,
+ t1 = _this._diagnostics$_buffer;
+ if (t1._contents.length === 0)
+ t2 = _this.prefixLineOne;
+ else
+ t2 = _this._prefixOtherLines;
+ t2 = t1._contents += C.JSString_methods.trimRight$0(H.S(t2) + H.S(line));
+ if (includeLineBreak)
+ t1._contents = t2 + "\n";
+ ++_this._numLines;
+ },
+ writeRawLines$1: function(lines) {
+ var t1, t2, _this = this;
+ if (lines.length === 0)
+ return;
+ if (_this._currentLine._contents.length !== 0)
+ _this._finalizeLine$1(true);
+ t1 = _this._diagnostics$_buffer;
+ t2 = t1._contents += lines;
+ if (!C.JSString_methods.endsWith$1(lines, "\n"))
+ t1._contents = t2 + "\n";
+ ++_this._numLines;
+ _this._updatePrefix$0();
+ },
+ writeStretched$2: function(text, targetLineLength) {
+ var t1, t2, t3, targetLength, _this = this;
+ _this.write$1(0, text);
+ t1 = _this._currentLine;
+ t2 = t1._contents;
+ if (_this._diagnostics$_buffer._contents.length === 0)
+ t3 = _this.prefixLineOne;
+ else
+ t3 = _this._prefixOtherLines;
+ targetLength = targetLineLength - (t2.length + t3.length);
+ if (targetLength > 0)
+ t1._contents += C.JSString_methods.$mul(text[text.length - 1], targetLength);
+ C.JSArray_methods.set$length(_this._wrappableRanges, 0);
+ }
+ };
+ Y._PrefixedStringBuilder__wordWrapLine__lastWordStart_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._lastWordStart_isSet = true;
+ return t2.lastWordStart = t1;
+ },
+ $signature: 148
+ };
+ Y._PrefixedStringBuilder__wordWrapLine__lastWordStart_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._lastWordStart_isSet ? t1.lastWordStart : H.throwExpression(H.LateError$localNI("lastWordStart"));
+ },
+ $signature: 73
+ };
+ Y._PrefixedStringBuilder__wordWrapLine_noWrap.prototype = {
+ call$1: function(index) {
+ var t1, t2, t3;
+ for (t1 = this._box_0, t2 = this.wrapRanges; true;) {
+ t3 = t1.currentChunk;
+ if (t3 >= t2.length)
+ return true;
+ if (index < t2[t3 + 1])
+ break;
+ t1.currentChunk = t3 + 2;
+ }
+ return index < t2[t1.currentChunk];
+ },
+ $signature: 129
+ };
+ Y._NoDefaultValue.prototype = {};
+ Y.TextTreeRenderer.prototype = {
+ render$4$parentConfiguration$prefixLineOne$prefixOtherLines: function(node, parentConfiguration, prefixLineOne, prefixOtherLines) {
+ var t1 = this._debugRender$4$parentConfiguration$prefixLineOne$prefixOtherLines(node, parentConfiguration, prefixLineOne, prefixOtherLines);
+ return t1;
+ },
+ render$1: function(node) {
+ return this.render$4$parentConfiguration$prefixLineOne$prefixOtherLines(node, null, "", null);
+ },
+ _debugRender$4$parentConfiguration$prefixLineOne$prefixOtherLines: function(node, parentConfiguration, prefixLineOne, prefixOtherLines) {
+ var isSingleLine, t1, t2, descendants, t3, t4, t5, builder, children, description, wrapName, wrapDescription, uppercaseTitle, $name, includeName, propertiesIterable, properties, i, t6, property, propertyRender, propertyLines, t7, t8, prefixChildrenRaw, child, childStyle, lastChildPrefixLineOne, childPrefixOtherLines, nextChildStyle, childPrefixLineOne, _this = this, _s1_ = "\n", _box_0 = {};
+ _box_0.prefixOtherLines = prefixOtherLines;
+ if (node.get$style(node) === C.DiagnosticsTreeStyle_8)
+ isSingleLine = (parentConfiguration == null ? null : parentConfiguration.lineBreakProperties) !== true;
+ else
+ isSingleLine = false;
+ if (prefixOtherLines == null) {
+ _box_0.prefixOtherLines = prefixLineOne;
+ t1 = prefixLineOne;
+ } else
+ t1 = prefixOtherLines;
+ t2 = node.get$textTreeConfiguration();
+ t2.toString;
+ if (t1.length === 0)
+ t1 = _box_0.prefixOtherLines = t1 + t2.prefixOtherLinesRootNode;
+ if (node.get$style(node) === C.DiagnosticsTreeStyle_11) {
+ descendants = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ _box_0.lines = _box_0.depth = 0;
+ new Y.TextTreeRenderer__debugRender_visitor(_box_0, descendants).call$1(node);
+ if (_box_0.lines > 1)
+ t1 = prefixLineOne + ("This " + H.S(node.name) + " had the following descendants (showing up to depth 5):\n");
+ else {
+ t1 = descendants.length;
+ t2 = node.name;
+ t1 = t1 === 1 ? prefixLineOne + ("This " + H.S(t2) + " had the following child:\n") : prefixLineOne + ("This " + H.S(t2) + " has no descendants.\n");
+ }
+ t1 = P.StringBuffer__writeAll(t1, descendants, _s1_);
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ t3 = _this._wrapWidthProperties;
+ t4 = Math.max(_this._wrapWidth, t1.length + t3);
+ t5 = new P.StringBuffer("");
+ builder = new Y._PrefixedStringBuilder(prefixLineOne, t1, t4, new P.StringBuffer(""), t5, H.setRuntimeTypeInfo([], type$.JSArray_int));
+ children = node.getChildren$0();
+ description = node.toDescription$1$parentConfiguration(parentConfiguration);
+ t1 = t2.beforeName;
+ if (t1.length !== 0)
+ builder.write$1(0, t1);
+ t1 = !isSingleLine;
+ wrapName = t1 && node.get$allowNameWrap();
+ wrapDescription = t1 && node.get$allowWrap();
+ uppercaseTitle = node.get$style(node) === C.DiagnosticsTreeStyle_5;
+ $name = node.name;
+ if (uppercaseTitle)
+ $name = $name == null ? null : $name.toUpperCase();
+ if (description == null || description.length === 0) {
+ if (node.get$showName() && $name != null)
+ builder.write$2$allowWrap(0, $name, wrapName);
+ } else {
+ if ($name != null && $name.length !== 0 && node.get$showName()) {
+ builder.write$2$allowWrap(0, $name, wrapName);
+ if (node.showSeparator)
+ builder.write$2$allowWrap(0, t2.afterName, wrapName);
+ builder.write$2$allowWrap(0, t2.isNameOnOwnLine || J.contains$1$asx(description, _s1_) ? _s1_ : " ", wrapName);
+ includeName = true;
+ } else
+ includeName = false;
+ if (t1 && builder.get$requiresMultipleLines() && t5._contents.length !== 0)
+ builder.write$1(0, _s1_);
+ if (includeName)
+ builder.incrementPrefixOtherLines$2$updateCurrentLine(children.length === 0 ? t2.propertyPrefixNoChildren : t2.propertyPrefixIfChildren, true);
+ if (uppercaseTitle)
+ description = description.toUpperCase();
+ builder.write$2$allowWrap(0, J.trimRight$0$s(description), wrapDescription);
+ if (!includeName)
+ builder.incrementPrefixOtherLines$2$updateCurrentLine(children.length === 0 ? t2.propertyPrefixNoChildren : t2.propertyPrefixIfChildren, false);
+ }
+ t1 = t2.suffixLineOne;
+ if (t1.length !== 0)
+ builder.writeStretched$2(t1, t4);
+ t1 = node.getProperties$0(0);
+ t4 = H._arrayInstanceType(t1)._eval$1("WhereIterable<1>");
+ propertiesIterable = new H.WhereIterable(t1, new Y.TextTreeRenderer__debugRender_closure(_this), t4);
+ t1 = _this._maxDescendentsTruncatableNode;
+ if (t1 >= 0 && node.get$allowTruncate()) {
+ t4 = t4._eval$1("Iterable.E");
+ if (propertiesIterable.get$length(propertiesIterable) < t1) {
+ t4 = H.TakeIterable_TakeIterable(propertiesIterable, t1, t4);
+ properties = P.List_List$of(t4, true, H._instanceType(t4)._eval$1("Iterable.E"));
+ C.JSArray_methods.add$1(properties, Y.DiagnosticsNode_DiagnosticsNode$message("...", true, C.DiagnosticsTreeStyle_8));
+ } else
+ properties = P.List_List$of(propertiesIterable, true, t4);
+ if (t1 < children.length) {
+ children = H.SubListIterable$(children, 0, t1, H._arrayInstanceType(children)._precomputed1).toList$0(0);
+ C.JSArray_methods.add$1(children, Y.DiagnosticsNode_DiagnosticsNode$message("...", true, C.DiagnosticsTreeStyle_8));
+ }
+ } else
+ properties = P.List_List$of(propertiesIterable, true, t4._eval$1("Iterable.E"));
+ if (properties.length !== 0 || children.length !== 0 || node.get$emptyBodyDescription() != null)
+ if (!node.showSeparator)
+ t1 = (description == null ? null : description.length !== 0) === true;
+ else
+ t1 = true;
+ else
+ t1 = false;
+ if (t1)
+ builder.write$1(0, t2.afterDescriptionIfBody);
+ t1 = t2.lineBreakProperties;
+ if (t1)
+ builder.write$1(0, t2.lineBreak);
+ if (properties.length !== 0)
+ builder.write$1(0, t2.beforeProperties);
+ t4 = t2.bodyIndent;
+ builder.incrementPrefixOtherLines$2$updateCurrentLine(t4, false);
+ if (node.get$emptyBodyDescription() != null && properties.length === 0 && children.length === 0 && prefixLineOne.length !== 0) {
+ t5 = node.get$emptyBodyDescription();
+ t5.toString;
+ builder.write$1(0, t5);
+ if (t1)
+ builder.write$1(0, t2.lineBreak);
+ }
+ for (t5 = t2.propertySeparator, t1 = !t1, i = 0; t6 = properties.length, i < t6; ++i) {
+ property = properties[i];
+ if (i > 0)
+ builder.write$1(0, t5);
+ t6 = property.get$textTreeConfiguration();
+ t6.toString;
+ if (property.get$style(property) === C.DiagnosticsTreeStyle_8) {
+ propertyRender = _this.render$4$parentConfiguration$prefixLineOne$prefixOtherLines(property, t2, t6.prefixLineOne, t6.childLinkSpace + t6.prefixOtherLines);
+ propertyLines = propertyRender.split(_s1_);
+ if (propertyLines.length === 1 && t1)
+ builder.write$1(0, C.JSArray_methods.get$first(propertyLines));
+ else {
+ builder.write$2$allowWrap(0, propertyRender, false);
+ if (!C.JSString_methods.endsWith$1(propertyRender, _s1_))
+ builder.write$1(0, _s1_);
+ }
+ } else {
+ t7 = builder._nextPrefixOtherLines;
+ t7 = H.S(t7 == null ? builder._prefixOtherLines : t7) + t6.prefixLineOne;
+ t8 = builder._nextPrefixOtherLines;
+ builder.writeRawLines$1(_this.render$4$parentConfiguration$prefixLineOne$prefixOtherLines(property, t2, t7, H.S(t8 == null ? builder._prefixOtherLines : t8) + t6.childLinkSpace + t6.prefixOtherLines));
+ }
+ }
+ if (t6 !== 0)
+ builder.write$1(0, t2.afterProperties);
+ builder.write$1(0, "");
+ if (t1)
+ builder.write$1(0, t2.lineBreak);
+ prefixChildrenRaw = H.S(_box_0.prefixOtherLines) + t4;
+ if (children.length === 0)
+ if (t2.addBlankLineIfNoChildren)
+ if (builder.get$requiresMultipleLines()) {
+ t1 = builder.get$prefixOtherLines();
+ t1.toString;
+ t1 = C.JSString_methods.trimRight$0(t1).length !== 0;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ builder.write$1(0, t2.lineBreak);
+ if (children.length !== 0 && t2.showChildren) {
+ if (t2.isBlankLineBetweenPropertiesAndChildren && properties.length !== 0 && C.JSArray_methods.get$first(children).get$textTreeConfiguration().isBlankLineBetweenPropertiesAndChildren)
+ builder.write$1(0, t2.lineBreak);
+ builder._prefixOtherLines = _box_0.prefixOtherLines;
+ builder._nextPrefixOtherLines = null;
+ for (t1 = t2.lineBreak, t4 = builder.wrapWidth, i = 0; i < children.length; ++i) {
+ child = children[i];
+ childStyle = child.get$style(child);
+ if (childStyle === C.DiagnosticsTreeStyle_8 || childStyle === C.DiagnosticsTreeStyle_9)
+ t5 = t2;
+ else
+ t5 = child.get$textTreeConfiguration();
+ t5.toString;
+ if (i === children.length - 1) {
+ lastChildPrefixLineOne = prefixChildrenRaw + t5.prefixLastChildLineOne;
+ t6 = t5.childLinkSpace;
+ childPrefixOtherLines = prefixChildrenRaw + t6 + t5.prefixOtherLines;
+ builder.writeRawLines$1(_this.render$4$parentConfiguration$prefixLineOne$prefixOtherLines(child, t2, lastChildPrefixLineOne, childPrefixOtherLines));
+ t7 = t5.footer;
+ if (t7.length !== 0) {
+ builder._prefixOtherLines = prefixChildrenRaw;
+ builder._nextPrefixOtherLines = null;
+ builder.write$1(0, t6 + t7);
+ t5 = t5.mandatoryFooter;
+ if (t5.length !== 0)
+ builder.writeStretched$2(t5, Math.max(t4, t3 + childPrefixOtherLines.length));
+ builder.write$1(0, t1);
+ }
+ } else {
+ t6 = children[i + 1];
+ childStyle = t6.get$style(t6);
+ if (childStyle === C.DiagnosticsTreeStyle_8 || childStyle === C.DiagnosticsTreeStyle_9)
+ nextChildStyle = t2;
+ else
+ nextChildStyle = t6.get$textTreeConfiguration();
+ childPrefixLineOne = prefixChildrenRaw + t5.prefixLineOne;
+ childPrefixOtherLines = prefixChildrenRaw + nextChildStyle.linkCharacter + t5.prefixOtherLines;
+ builder.writeRawLines$1(_this.render$4$parentConfiguration$prefixLineOne$prefixOtherLines(child, t2, childPrefixLineOne, childPrefixOtherLines));
+ t6 = t5.footer;
+ if (t6.length !== 0) {
+ builder._prefixOtherLines = prefixChildrenRaw;
+ builder._nextPrefixOtherLines = null;
+ builder.write$1(0, t5.linkCharacter + t6);
+ t5 = t5.mandatoryFooter;
+ if (t5.length !== 0)
+ builder.writeStretched$2(t5, Math.max(t4, t3 + childPrefixOtherLines.length));
+ builder.write$1(0, t1);
+ }
+ }
+ }
+ }
+ if (parentConfiguration == null && t2.mandatoryFooter.length !== 0) {
+ builder.writeStretched$2(t2.mandatoryFooter, builder.wrapWidth);
+ builder.write$1(0, t2.lineBreak);
+ }
+ if (builder._currentLine._contents.length !== 0)
+ builder._finalizeLine$1(false);
+ t1 = builder._diagnostics$_buffer._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ Y.TextTreeRenderer__debugRender_visitor.prototype = {
+ call$1: function(node) {
+ var t1, t2, t3, t4, _i, child, t5;
+ for (t1 = node.getChildren$0(), t2 = t1.length, t3 = this._box_0, t4 = this.descendants, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ child = t1[_i];
+ t5 = t3.lines;
+ if (t5 < 25) {
+ ++t3.depth;
+ t4.push(H.S(t3.prefixOtherLines) + C.JSString_methods.$mul(" ", t3.depth) + H.S(child));
+ if (t3.depth < 5)
+ this.call$1(child);
+ --t3.depth;
+ } else if (t5 === 25)
+ t4.push(H.S(t3.prefixOtherLines) + " ...(descendants list truncated after " + t3.lines + " lines)");
+ ++t3.lines;
+ }
+ },
+ $signature: 130
+ };
+ Y.TextTreeRenderer__debugRender_closure.prototype = {
+ call$1: function(n) {
+ var t1 = n.get$level(n);
+ return t1.index >= this.$this._minLevel.index;
+ },
+ $signature: 146
+ };
+ Y.DiagnosticsNode.prototype = {
+ get$level: function(_) {
+ return C.DiagnosticLevel_3;
+ },
+ get$emptyBodyDescription: function() {
+ return null;
+ },
+ get$allowWrap: function() {
+ return false;
+ },
+ get$allowNameWrap: function() {
+ return false;
+ },
+ get$allowTruncate: function() {
+ return false;
+ },
+ toString$1$minLevel: function(_, minLevel) {
+ return this.super$Object$toString(0);
+ },
+ toString$0: function($receiver) {
+ return this.toString$1$minLevel($receiver, C.DiagnosticLevel_3);
+ },
+ get$textTreeConfiguration: function() {
+ var t1 = this.get$style(this);
+ t1.toString;
+ switch (t1) {
+ case C.DiagnosticsTreeStyle_0:
+ return null;
+ case C.DiagnosticsTreeStyle_3:
+ return $.$get$denseTextConfiguration();
+ case C.DiagnosticsTreeStyle_1:
+ return $.$get$sparseTextConfiguration();
+ case C.DiagnosticsTreeStyle_2:
+ return $.$get$dashedTextConfiguration();
+ case C.DiagnosticsTreeStyle_6:
+ return $.$get$whitespaceTextConfiguration();
+ case C.DiagnosticsTreeStyle_4:
+ return $.$get$transitionTextConfiguration();
+ case C.DiagnosticsTreeStyle_8:
+ return $.$get$singleLineTextConfiguration();
+ case C.DiagnosticsTreeStyle_9:
+ return $.$get$errorPropertyTextConfiguration();
+ case C.DiagnosticsTreeStyle_10:
+ return $.$get$shallowTextConfiguration();
+ case C.DiagnosticsTreeStyle_5:
+ return $.$get$errorTextConfiguration();
+ case C.DiagnosticsTreeStyle_11:
+ return $.$get$whitespaceTextConfiguration();
+ case C.DiagnosticsTreeStyle_7:
+ return $.$get$flatTextConfiguration();
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$name: function(receiver) {
+ return this.name;
+ },
+ get$showName: function() {
+ return this.showName;
+ },
+ get$style: function(receiver) {
+ return this.style;
+ }
+ };
+ Y.DiagnosticsProperty.prototype = {
+ valueToString$1$parentConfiguration: function(parentConfiguration) {
+ var v = this.get$value(this);
+ return type$.DiagnosticableTree._is(v) ? v.toStringShort$0() : J.toString$0$(v);
+ },
+ toDescription$1$parentConfiguration: function(parentConfiguration) {
+ var result, _this = this,
+ t1 = _this._description;
+ if (t1 != null)
+ return _this._addTooltip$1(t1);
+ _this._maybeCacheValue$0();
+ if (_this._diagnostics$_exception != null) {
+ _this._maybeCacheValue$0();
+ return "EXCEPTION (" + J.get$runtimeType$(_this._diagnostics$_exception).toString$0(0) + ")";
+ }
+ t1 = _this.ifNull;
+ if (t1 != null && _this.get$value(_this) == null) {
+ t1.toString;
+ return _this._addTooltip$1(t1);
+ }
+ result = _this.valueToString$1$parentConfiguration(parentConfiguration);
+ if (result.length === 0 && _this.ifEmpty != null) {
+ t1 = _this.ifEmpty;
+ t1.toString;
+ result = t1;
+ }
+ return _this._addTooltip$1(result);
+ },
+ _addTooltip$1: function(text) {
+ var t1 = this.tooltip;
+ return t1 == null ? text : H.S(text) + " (" + t1 + ")";
+ },
+ get$value: function(_) {
+ this._maybeCacheValue$0();
+ return this._value;
+ },
+ _maybeCacheValue$0: function() {
+ return;
+ },
+ get$level: function(_) {
+ var t2, _this = this,
+ t1 = _this._defaultLevel;
+ if (t1 === C.DiagnosticLevel_0)
+ return t1;
+ _this._maybeCacheValue$0();
+ if (_this._diagnostics$_exception != null)
+ return C.DiagnosticLevel_7;
+ if (_this.get$value(_this) == null && _this.missingIfNull)
+ return C.DiagnosticLevel_4;
+ t2 = _this.defaultValue;
+ if (!J.$eq$(t2, C.C__NoDefaultValue) && J.$eq$(_this.get$value(_this), t2))
+ return C.DiagnosticLevel_1;
+ return t1;
+ },
+ getProperties$0: function(_) {
+ return C.List_empty;
+ },
+ getChildren$0: function() {
+ return C.List_empty;
+ },
+ get$allowWrap: function() {
+ return this.allowWrap;
+ },
+ get$allowNameWrap: function() {
+ return true;
+ }
+ };
+ Y.DiagnosticableNode.prototype = {
+ get$builder: function() {
+ var t1 = this._cachedBuilder;
+ return t1;
+ },
+ get$style: function(_) {
+ var t1 = this.style;
+ if (t1 == null)
+ t1 = this.get$builder().defaultDiagnosticsTreeStyle;
+ return t1;
+ },
+ get$emptyBodyDescription: function() {
+ return "";
+ },
+ getProperties$0: function(_) {
+ return C.List_empty;
+ },
+ getChildren$0: function() {
+ return C.List_empty;
+ },
+ toDescription$1$parentConfiguration: function(parentConfiguration) {
+ return "";
+ }
+ };
+ Y.DiagnosticableTreeNode.prototype = {
+ getChildren$0: function() {
+ return this.value.debugDescribeChildren$0();
+ }
+ };
+ Y.DiagnosticPropertiesBuilder.prototype = {
+ add$1: function(_, property) {
+ }
+ };
+ Y.Diagnosticable.prototype = {
+ toStringShort$0: function() {
+ return "#" + Y.shortHash(this);
+ },
+ toString$1$minLevel: function(_, minLevel) {
+ var t1 = this.toStringShort$0();
+ return t1;
+ },
+ toString$0: function($receiver) {
+ return this.toString$1$minLevel($receiver, C.DiagnosticLevel_3);
+ },
+ debugFillProperties$1: function(properties) {
+ }
+ };
+ Y.DiagnosticableTree.prototype = {
+ toStringShort$0: function() {
+ return "#" + Y.shortHash(this);
+ },
+ debugDescribeChildren$0: function() {
+ return C.List_empty;
+ }
+ };
+ Y.DiagnosticableTreeMixin.prototype = {
+ toString$0: function(_) {
+ return this.toDiagnosticsNode$1$style(C.DiagnosticsTreeStyle_8).super$Object$toString(0);
+ },
+ toStringDeep$3$minLevel$prefixLineOne$prefixOtherLines: function(minLevel, prefixLineOne, prefixOtherLines) {
+ this.toDiagnosticsNode$0();
+ return "";
+ },
+ toStringShort$0: function() {
+ return "#" + Y.shortHash(this);
+ },
+ toDiagnosticsNode$2$name$style: function($name, style) {
+ return Y.DiagnosticableTreeNode$($name, style, this);
+ },
+ toDiagnosticsNode$1$style: function(style) {
+ return this.toDiagnosticsNode$2$name$style(null, style);
+ },
+ toDiagnosticsNode$0: function() {
+ return this.toDiagnosticsNode$2$name$style(null, null);
+ },
+ debugDescribeChildren$0: function() {
+ return C.List_empty;
+ }
+ };
+ Y.DiagnosticsBlock.prototype = {
+ getChildren$0: function() {
+ return this._diagnostics$_children;
+ },
+ getProperties$0: function(_) {
+ return this._properties;
+ },
+ toDescription$1$parentConfiguration: function(parentConfiguration) {
+ return null;
+ },
+ get$level: function() {
+ return C.DiagnosticLevel_3;
+ },
+ get$allowTruncate: function() {
+ return this.allowTruncate;
+ }
+ };
+ Y._DiagnosticableTree_Object_Diagnosticable.prototype = {};
+ D.Key.prototype = {};
+ D.LocalKey.prototype = {};
+ D.ValueKey.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return H._instanceType(this)._eval$1("ValueKey")._is(other) && J.$eq$(other.value, this.value);
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(H.getRuntimeType(this), this.value, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t1 = H._instanceType(this),
+ t2 = t1._eval$1("ValueKey.T"),
+ t3 = this.value,
+ valueString = H.createRuntimeType(t2) === C.Type_String_k8F ? "<'" + H.S(t3) + "'>" : "<" + H.S(t3) + ">";
+ if (H.getRuntimeType(this) === H.createRuntimeType(t1._eval$1("ValueKey")))
+ return "[" + valueString + "]";
+ return "[" + H.createRuntimeType(t2).toString$0(0) + " " + valueString + "]";
+ }
+ };
+ D._TypeLiteral.prototype = {};
+ F.LicenseEntry.prototype = {};
+ F.LicenseEntryWithLineBreaks.prototype = {};
+ B.AbstractNode.prototype = {
+ redepthChild$1: function(child) {
+ var t1 = child._node$_depth,
+ t2 = this._node$_depth;
+ if (t1 <= t2) {
+ child._node$_depth = t2 + 1;
+ child.redepthChildren$0();
+ }
+ },
+ redepthChildren$0: function() {
+ },
+ get$owner: function() {
+ return this._node$_owner;
+ },
+ attach$1: function(owner) {
+ this._node$_owner = owner;
+ },
+ detach$0: function(_) {
+ this._node$_owner = null;
+ },
+ get$parent: function(_) {
+ return this._node$_parent;
+ },
+ adoptChild$1: function(child) {
+ var t1;
+ child._node$_parent = this;
+ t1 = this._node$_owner;
+ if (t1 != null)
+ child.attach$1(t1);
+ this.redepthChild$1(child);
+ },
+ dropChild$1: function(child) {
+ child._node$_parent = null;
+ if (this._node$_owner != null)
+ child.detach$0(0);
+ }
+ };
+ R.ObserverList.prototype = {
+ get$_observer_list$_set: function() {
+ var t1, _this = this;
+ if (!_this.__ObserverList__set_isSet) {
+ t1 = P.HashSet_HashSet(_this.$ti._precomputed1);
+ if (_this.__ObserverList__set_isSet)
+ throw H.wrapException(H.LateError$fieldADI("_set"));
+ _this.__ObserverList__set = t1;
+ _this.__ObserverList__set_isSet = true;
+ }
+ return _this.__ObserverList__set;
+ },
+ remove$1: function(_, item) {
+ this._isDirty = true;
+ this.get$_observer_list$_set().clear$0(0);
+ return C.JSArray_methods.remove$1(this._observer_list$_list, item);
+ },
+ contains$1: function(_, element) {
+ var _this = this,
+ t1 = _this._observer_list$_list;
+ if (t1.length < 3)
+ return C.JSArray_methods.contains$1(t1, element);
+ if (_this._isDirty) {
+ _this.get$_observer_list$_set().addAll$1(0, t1);
+ _this._isDirty = false;
+ }
+ return _this.get$_observer_list$_set().contains$1(0, element);
+ },
+ get$iterator: function(_) {
+ var t1 = this._observer_list$_list;
+ return new J.ArrayIterator(t1, t1.length);
+ },
+ get$isEmpty: function(_) {
+ return this._observer_list$_list.length === 0;
+ },
+ get$isNotEmpty: function(_) {
+ return this._observer_list$_list.length !== 0;
+ }
+ };
+ R.HashedObserverList.prototype = {
+ remove$1: function(_, item) {
+ var t1 = this._observer_list$_map,
+ value = t1.$index(0, item);
+ if (value == null)
+ return false;
+ if (value === 1)
+ t1.remove$1(0, item);
+ else
+ t1.$indexSet(0, item, value - 1);
+ return true;
+ },
+ contains$1: function(_, element) {
+ return this._observer_list$_map.containsKey$1(0, element);
+ },
+ get$iterator: function(_) {
+ var t1 = this._observer_list$_map;
+ t1 = t1.get$keys(t1);
+ return t1.get$iterator(t1);
+ },
+ get$isEmpty: function(_) {
+ var t1 = this._observer_list$_map;
+ return t1.get$isEmpty(t1);
+ },
+ get$isNotEmpty: function(_) {
+ var t1 = this._observer_list$_map;
+ return t1.get$isNotEmpty(t1);
+ }
+ };
+ T.TargetPlatform.prototype = {
+ toString$0: function(_) {
+ return this._platform$_name;
+ }
+ };
+ G.WriteBuffer.prototype = {
+ get$_eightBytesAsList: function() {
+ return this.__WriteBuffer__eightBytesAsList_isSet ? this.__WriteBuffer__eightBytesAsList : H.throwExpression(H.LateError$fieldNI("_eightBytesAsList"));
+ },
+ _alignTo$1: function(alignment) {
+ var t1, i,
+ mod = C.JSInt_methods.$mod(this._buffer._typed_buffer$_length, alignment);
+ if (mod !== 0)
+ for (t1 = alignment - mod, i = 0; i < t1; ++i)
+ this._buffer._typed_buffer$_add$1(0, 0);
+ },
+ done$0: function() {
+ var t1 = this._buffer,
+ t2 = t1._typed_buffer$_buffer,
+ result = H.NativeByteData_NativeByteData$view(t2.buffer, 0, t1._typed_buffer$_length * t2.BYTES_PER_ELEMENT);
+ this._buffer = null;
+ return result;
+ }
+ };
+ G.ReadBuffer.prototype = {
+ getUint8$0: function(_) {
+ return this.data.getUint8(this._serialization$_position++);
+ },
+ getInt64$0: function(_) {
+ var t1 = this.data,
+ t2 = this._serialization$_position,
+ t3 = $.$get$Endian_host();
+ (t1 && C.NativeByteData_methods).getInt64$2(t1, t2, t3);
+ },
+ getUint8List$1: function($length) {
+ var _this = this,
+ t1 = _this.data,
+ list = H.NativeUint8List_NativeUint8List$view(t1.buffer, t1.byteOffset + _this._serialization$_position, $length);
+ _this._serialization$_position = _this._serialization$_position + $length;
+ return list;
+ },
+ getInt64List$1: function($length) {
+ var t1;
+ this._alignTo$1(8);
+ t1 = this.data;
+ C.NativeByteBuffer_methods.asInt64List$2(t1.buffer, t1.byteOffset + this._serialization$_position, $length);
+ },
+ _alignTo$1: function(alignment) {
+ var t1 = this._serialization$_position,
+ mod = C.JSInt_methods.$mod(t1, alignment);
+ if (mod !== 0)
+ this._serialization$_position = t1 + (alignment - mod);
+ }
+ };
+ R.StackFrame.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.number, _this.$package, _this.line, _this.column, _this.className, _this.method, _this.source, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof R.StackFrame && other.number === _this.number && other.$package == _this.$package && other.line === _this.line && other.column === _this.column && other.className == _this.className && other.method == _this.method && other.source === _this.source;
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "StackFrame(#" + _this.number + ", " + _this.packageScheme + ":" + H.S(_this.$package) + "/" + _this.packagePath + ":" + _this.line + ":" + _this.column + ", className: " + H.S(_this.className) + ", method: " + H.S(_this.method) + ")";
+ }
+ };
+ R.StackFrame_fromStackString_closure.prototype = {
+ call$1: function(line) {
+ return line.length !== 0;
+ },
+ $signature: 30
+ };
+ O.SynchronousFuture.prototype = {
+ then$1$2$onError: function(_, onValue, onError, $R) {
+ var result = onValue.call$1(this._synchronous_future$_value);
+ if ($R._eval$1("Future<0>")._is(result))
+ return result;
+ return new O.SynchronousFuture($R._as(result), $R._eval$1("SynchronousFuture<0>"));
+ },
+ then$1$1: function($receiver, onValue, $R) {
+ return this.then$1$2$onError($receiver, onValue, null, $R);
+ },
+ whenComplete$1: function(action) {
+ var result, e, stack, t1, exception, _this = this;
+ try {
+ result = action.call$0();
+ if (type$.Future_dynamic._is(result)) {
+ t1 = J.then$1$1$x(result, new O.SynchronousFuture_whenComplete_closure(_this), _this.$ti._precomputed1);
+ return t1;
+ }
+ return _this;
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ stack = H.getTraceFromException(exception);
+ t1 = P.Future_Future$error(e, stack, _this.$ti._precomputed1);
+ return t1;
+ }
+ },
+ $isFuture: 1
+ };
+ O.SynchronousFuture_whenComplete_closure.prototype = {
+ call$1: function(value) {
+ return this.$this._synchronous_future$_value;
+ },
+ $signature: function() {
+ return this.$this.$ti._eval$1("1(@)");
+ }
+ };
+ D.GestureDisposition.prototype = {
+ toString$0: function(_) {
+ return this._arena$_name;
+ }
+ };
+ D.GestureArenaMember.prototype = {};
+ D.GestureArenaEntry.prototype = {
+ resolve$1: function(disposition) {
+ this._arena._resolve$3(this._arena$_pointer, this._member, disposition);
+ }
+ };
+ D._GestureArena.prototype = {
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.members;
+ t1 = t1.length === 0 ? "" : new H.MappedListIterable(t1, new D._GestureArena_toString_closure(_this), H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,String>")).join$1(0, ", ");
+ if (_this.isOpen)
+ t1 += " [open]";
+ if (_this.isHeld)
+ t1 += " [held]";
+ if (_this.hasPendingSweep)
+ t1 += " [hasPendingSweep]";
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ D._GestureArena_toString_closure.prototype = {
+ call$1: function(member) {
+ if (member == this.$this.eagerWinner)
+ return H.S(member) + " (eager winner)";
+ return H.S(member);
+ },
+ $signature: 141
+ };
+ D.GestureArenaManager.prototype = {
+ add$2: function(_, pointer, member) {
+ this._arenas.putIfAbsent$2(0, pointer, new D.GestureArenaManager_add_closure(this, pointer)).members.push(member);
+ return new D.GestureArenaEntry(this, pointer, member);
+ },
+ close$1: function(_, pointer) {
+ var state = this._arenas.$index(0, pointer);
+ if (state == null)
+ return;
+ state.isOpen = false;
+ this._tryToResolveArena$2(pointer, state);
+ },
+ sweep$1: function(pointer) {
+ var i,
+ t1 = this._arenas,
+ state = t1.$index(0, pointer);
+ if (state == null)
+ return;
+ if (state.isHeld) {
+ state.hasPendingSweep = true;
+ return;
+ }
+ t1.remove$1(0, pointer);
+ t1 = state.members;
+ if (t1.length !== 0) {
+ C.JSArray_methods.get$first(t1).acceptGesture$1(pointer);
+ for (i = 1; i < t1.length; ++i)
+ t1[i].rejectGesture$1(pointer);
+ }
+ },
+ hold$1: function(pointer) {
+ var state = this._arenas.$index(0, pointer);
+ if (state == null)
+ return;
+ state.isHeld = true;
+ },
+ release$1: function(_, pointer) {
+ var state = this._arenas.$index(0, pointer);
+ if (state == null)
+ return;
+ state.isHeld = false;
+ if (state.hasPendingSweep)
+ this.sweep$1(pointer);
+ },
+ _resolve$3: function(pointer, member, disposition) {
+ var state = this._arenas.$index(0, pointer);
+ if (state == null)
+ return;
+ if (disposition === C.GestureDisposition_1) {
+ C.JSArray_methods.remove$1(state.members, member);
+ member.rejectGesture$1(pointer);
+ if (!state.isOpen)
+ this._tryToResolveArena$2(pointer, state);
+ } else if (state.isOpen) {
+ if (state.eagerWinner == null)
+ state.eagerWinner = member;
+ } else
+ this._resolveInFavorOf$3(pointer, state, member);
+ },
+ _tryToResolveArena$2: function(pointer, state) {
+ var t1 = state.members.length;
+ if (t1 === 1)
+ P.scheduleMicrotask(new D.GestureArenaManager__tryToResolveArena_closure(this, pointer, state));
+ else if (t1 === 0)
+ this._arenas.remove$1(0, pointer);
+ else {
+ t1 = state.eagerWinner;
+ if (t1 != null)
+ this._resolveInFavorOf$3(pointer, state, t1);
+ }
+ },
+ _resolveByDefault$2: function(pointer, state) {
+ var t1 = this._arenas;
+ if (!t1.containsKey$1(0, pointer))
+ return;
+ t1.remove$1(0, pointer);
+ C.JSArray_methods.get$first(state.members).acceptGesture$1(pointer);
+ },
+ _resolveInFavorOf$3: function(pointer, state, member) {
+ var t1, t2, _i, rejectedMember;
+ this._arenas.remove$1(0, pointer);
+ for (t1 = state.members, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ rejectedMember = t1[_i];
+ if (rejectedMember !== member)
+ rejectedMember.rejectGesture$1(pointer);
+ }
+ member.acceptGesture$1(pointer);
+ }
+ };
+ D.GestureArenaManager_add_closure.prototype = {
+ call$0: function() {
+ return new D._GestureArena(H.setRuntimeTypeInfo([], type$.JSArray_GestureArenaMember));
+ },
+ $signature: 233
+ };
+ D.GestureArenaManager__tryToResolveArena_closure.prototype = {
+ call$0: function() {
+ return this.$this._resolveByDefault$2(this.pointer, this.state);
+ },
+ $signature: 0
+ };
+ N._Resampler.prototype = {
+ stop$0: function(_) {
+ var t1, t2, t3;
+ for (t1 = this._resamplers, t2 = t1.get$values(t1), t2 = t2.get$iterator(t2), t3 = this._handlePointerEvent; t2.moveNext$0();)
+ t2.get$current(t2).stop$1(0, t3);
+ t1.clear$0(0);
+ }
+ };
+ N.GestureBinding.prototype = {
+ _handlePointerDataPacket$1: function(packet) {
+ var t1 = packet.data,
+ t2 = $.$get$window();
+ this.GestureBinding__pendingPointerEvents.addAll$1(0, G.PointerEventConverter_expand(t1, t2.get$devicePixelRatio(t2)));
+ if (this._lockCount <= 0)
+ this._flushPointerEventQueue$0();
+ },
+ cancelPointer$1: function(pointer) {
+ var t1 = this.GestureBinding__pendingPointerEvents;
+ if (t1._head === t1._tail && this._lockCount <= 0)
+ P.scheduleMicrotask(this.get$_flushPointerEventQueue());
+ t1.addFirst$1(F.PointerCancelEvent$(0, 0, 0, 0, 0, C.PointerDeviceKind_0, false, 0, pointer, C.Offset_0_0, 1, 1, 0, 0, 0, 0, 0, 0, C.Duration_0));
+ },
+ _flushPointerEventQueue$0: function() {
+ for (var t1 = this.GestureBinding__pendingPointerEvents; !t1.get$isEmpty(t1);)
+ this.handlePointerEvent$1(t1.removeFirst$0());
+ },
+ handlePointerEvent$1: function($event) {
+ this.get$_resampler().stop$0(0);
+ this._handlePointerEventImmediately$1($event);
+ },
+ _handlePointerEventImmediately$1: function($event) {
+ var hitTestResult, t2, _this = this,
+ t1 = type$.PointerDownEvent._is($event);
+ if (t1 || type$.PointerSignalEvent._is($event) || type$.PointerHoverEvent._is($event)) {
+ hitTestResult = O.HitTestResult$();
+ t2 = $event.get$position($event);
+ _this.get$_pipelineOwner()._rootNode.hitTest$2$position(hitTestResult, t2);
+ _this.super$GestureBinding$hitTest(hitTestResult, t2);
+ if (t1)
+ _this.GestureBinding__hitTests.$indexSet(0, $event.get$pointer(), hitTestResult);
+ t1 = hitTestResult;
+ } else if (type$.PointerUpEvent._is($event) || type$.PointerCancelEvent._is($event)) {
+ hitTestResult = _this.GestureBinding__hitTests.remove$1(0, $event.get$pointer());
+ t1 = hitTestResult;
+ } else
+ t1 = $event.get$down() ? _this.GestureBinding__hitTests.$index(0, $event.get$pointer()) : null;
+ if (t1 != null || type$.PointerAddedEvent._is($event) || type$.PointerRemovedEvent._is($event))
+ _this.dispatchEvent$2(0, $event, t1);
+ },
+ hitTest$2: function(result, position) {
+ var t1 = new O.HitTestEntry(this);
+ result._globalizeTransforms$0();
+ t1._transform = C.JSArray_methods.get$last(result._transforms);
+ result._path.push(t1);
+ },
+ dispatchEvent$2: function(_, $event, hitTestResult) {
+ var exception, stack, entry, exception0, stack0, t1, t2, _i, t3, t4,
+ _s15_ = "gesture library";
+ if (hitTestResult == null) {
+ try {
+ this.GestureBinding_pointerRouter.route$1($event);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = N.FlutterErrorDetailsForPointerEventDispatcher$(U.ErrorDescription$("while dispatching a non-hit-tested pointer event"), $event, exception, null, new N.GestureBinding_dispatchEvent_closure($event), _s15_, stack);
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(t1);
+ }
+ return;
+ }
+ for (t1 = hitTestResult._path, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ entry = t1[_i];
+ try {
+ J.get$target$x(entry).handleEvent$2($event.transformed$1(entry._transform), entry);
+ } catch (exception) {
+ exception0 = H.unwrapException(exception);
+ stack0 = H.getTraceFromException(exception);
+ t3 = U.ErrorDescription$("while dispatching a pointer event");
+ t4 = $.$get$FlutterError_onError();
+ if (t4 != null)
+ t4.call$1(new N.FlutterErrorDetailsForPointerEventDispatcher(exception0, stack0, _s15_, t3, new N.GestureBinding_dispatchEvent_closure0($event, entry), false));
+ }
+ }
+ },
+ handleEvent$2: function($event, entry) {
+ var _this = this;
+ _this.GestureBinding_pointerRouter.route$1($event);
+ if (type$.PointerDownEvent._is($event))
+ _this.GestureBinding_gestureArena.close$1(0, $event.get$pointer());
+ else if (type$.PointerUpEvent._is($event))
+ _this.GestureBinding_gestureArena.sweep$1($event.get$pointer());
+ else if (type$.PointerSignalEvent._is($event))
+ _this.GestureBinding_pointerSignalResolver.resolve$1($event);
+ },
+ _handleSampleTimeChanged$0: function() {
+ if (this._lockCount <= 0)
+ this.get$_resampler().stop$0(0);
+ },
+ get$_resampler: function() {
+ var _this = this;
+ if (!_this.GestureBinding___GestureBinding__resampler_isSet) {
+ _this.GestureBinding___GestureBinding__resampler = new N._Resampler(P.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.PointerEventResampler), C.Duration_0, C.Duration_0, C.Duration_0, _this.get$_handlePointerEventImmediately(), _this.get$_handleSampleTimeChanged());
+ _this.GestureBinding___GestureBinding__resampler_isSet = true;
+ }
+ return _this.GestureBinding___GestureBinding__resampler;
+ }
+ };
+ N.GestureBinding_dispatchEvent_closure.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return Y.DiagnosticsProperty$("Event", $async$self.event, true, C.C__NoDefaultValue, null, false, null, null, C.DiagnosticLevel_3, null, false, true, true, C.DiagnosticsTreeStyle_9, null, type$.PointerEvent);
+ case 2:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ N.GestureBinding_dispatchEvent_closure0.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return Y.DiagnosticsProperty$("Event", $async$self.event, true, C.C__NoDefaultValue, null, false, null, null, C.DiagnosticLevel_3, null, false, true, true, C.DiagnosticsTreeStyle_9, null, type$.PointerEvent);
+ case 2:
+ // after yield
+ t1 = $async$self.entry;
+ $async$goto = 3;
+ return Y.DiagnosticsProperty$("Target", t1.get$target(t1), true, C.C__NoDefaultValue, null, false, null, null, C.DiagnosticLevel_3, null, false, true, true, C.DiagnosticsTreeStyle_9, null, type$.HitTestTarget);
+ case 3:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ N.FlutterErrorDetailsForPointerEventDispatcher.prototype = {};
+ O.DragDownDetails.prototype = {
+ toString$0: function(_) {
+ return "DragDownDetails(" + H.S(this.globalPosition) + ")";
+ }
+ };
+ O.DragStartDetails.prototype = {
+ toString$0: function(_) {
+ return "DragStartDetails(" + H.S(this.globalPosition) + ")";
+ }
+ };
+ O.DragUpdateDetails.prototype = {
+ toString$0: function(_) {
+ return "DragUpdateDetails(" + H.S(this.delta) + ")";
+ }
+ };
+ O.DragEndDetails.prototype = {
+ toString$0: function(_) {
+ return "DragEndDetails(" + this.velocity.toString$0(0) + ")";
+ }
+ };
+ F.PointerEvent0.prototype = {
+ get$localPosition: function() {
+ return this.position;
+ },
+ get$localDelta: function() {
+ return this.delta;
+ },
+ get$timeStamp: function(receiver) {
+ return this.timeStamp;
+ },
+ get$pointer: function() {
+ return this.pointer;
+ },
+ get$kind: function(receiver) {
+ return this.kind;
+ },
+ get$device: function(receiver) {
+ return this.device;
+ },
+ get$position: function(receiver) {
+ return this.position;
+ },
+ get$delta: function() {
+ return this.delta;
+ },
+ get$buttons: function(receiver) {
+ return this.buttons;
+ },
+ get$down: function() {
+ return this.down;
+ },
+ get$obscured: function() {
+ return this.obscured;
+ },
+ get$pressure: function(receiver) {
+ return this.pressure;
+ },
+ get$pressureMin: function() {
+ return this.pressureMin;
+ },
+ get$pressureMax: function() {
+ return this.pressureMax;
+ },
+ get$distance: function() {
+ return this.distance;
+ },
+ get$distanceMax: function() {
+ return this.distanceMax;
+ },
+ get$size: function(receiver) {
+ return this.size;
+ },
+ get$radiusMajor: function() {
+ return this.radiusMajor;
+ },
+ get$radiusMinor: function() {
+ return this.radiusMinor;
+ },
+ get$radiusMin: function() {
+ return this.radiusMin;
+ },
+ get$radiusMax: function() {
+ return this.radiusMax;
+ },
+ get$orientation: function(receiver) {
+ return this.orientation;
+ },
+ get$tilt: function() {
+ return this.tilt;
+ },
+ get$synthesized: function() {
+ return this.synthesized;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._PointerEventDescription.prototype = {};
+ F._AbstractPointerEvent.prototype = {$isPointerEvent0: 1};
+ F._TransformedPointerEvent.prototype = {
+ get$timeStamp: function(_) {
+ return this.get$original().timeStamp;
+ },
+ get$pointer: function() {
+ return this.get$original().pointer;
+ },
+ get$kind: function(_) {
+ return this.get$original().kind;
+ },
+ get$device: function(_) {
+ return this.get$original().device;
+ },
+ get$position: function(_) {
+ return this.get$original().position;
+ },
+ get$delta: function() {
+ return this.get$original().delta;
+ },
+ get$buttons: function(_) {
+ return this.get$original().buttons;
+ },
+ get$down: function() {
+ return this.get$original().down;
+ },
+ get$obscured: function() {
+ this.get$original();
+ return false;
+ },
+ get$pressure: function(_) {
+ return this.get$original().pressure;
+ },
+ get$pressureMin: function() {
+ return this.get$original().pressureMin;
+ },
+ get$pressureMax: function() {
+ return this.get$original().pressureMax;
+ },
+ get$distance: function() {
+ return this.get$original().distance;
+ },
+ get$distanceMax: function() {
+ return this.get$original().distanceMax;
+ },
+ get$size: function(_) {
+ return this.get$original().size;
+ },
+ get$radiusMajor: function() {
+ return this.get$original().radiusMajor;
+ },
+ get$radiusMinor: function() {
+ return this.get$original().radiusMinor;
+ },
+ get$radiusMin: function() {
+ return this.get$original().radiusMin;
+ },
+ get$radiusMax: function() {
+ return this.get$original().radiusMax;
+ },
+ get$orientation: function(_) {
+ return this.get$original().orientation;
+ },
+ get$tilt: function() {
+ return this.get$original().tilt;
+ },
+ get$synthesized: function() {
+ return this.get$original().synthesized;
+ },
+ get$localPosition: function() {
+ var t1, _this = this;
+ if (!_this.___TransformedPointerEvent_localPosition_isSet) {
+ t1 = F.PointerEvent_transformPosition(_this.get$transform(_this), _this.get$original().position);
+ if (_this.___TransformedPointerEvent_localPosition_isSet)
+ throw H.wrapException(H.LateError$fieldADI("localPosition"));
+ _this.___TransformedPointerEvent_localPosition = t1;
+ _this.___TransformedPointerEvent_localPosition_isSet = true;
+ }
+ return _this.___TransformedPointerEvent_localPosition;
+ },
+ get$localDelta: function() {
+ var t1, t2, t3, _this = this;
+ if (!_this.___TransformedPointerEvent_localDelta_isSet) {
+ t1 = _this.get$transform(_this);
+ t2 = _this.get$original();
+ t3 = _this.get$original();
+ t3 = F.PointerEvent_transformDeltaViaPositions(t1, _this.get$localPosition(), t2.delta, t3.position);
+ if (_this.___TransformedPointerEvent_localDelta_isSet)
+ throw H.wrapException(H.LateError$fieldADI("localDelta"));
+ _this.___TransformedPointerEvent_localDelta = t3;
+ _this.___TransformedPointerEvent_localDelta_isSet = true;
+ }
+ return _this.___TransformedPointerEvent_localDelta;
+ }
+ };
+ F._CopyPointerAddedEvent.prototype = {};
+ F.PointerAddedEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerAddedEvent(this, transform);
+ }
+ };
+ F._TransformedPointerAddedEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerAddedEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._CopyPointerRemovedEvent.prototype = {};
+ F.PointerRemovedEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerRemovedEvent(this, transform);
+ }
+ };
+ F._TransformedPointerRemovedEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerRemovedEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._CopyPointerHoverEvent.prototype = {};
+ F.PointerHoverEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerHoverEvent(this, transform);
+ }
+ };
+ F._TransformedPointerHoverEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerHoverEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._CopyPointerEnterEvent.prototype = {};
+ F.PointerEnterEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerEnterEvent(this, transform);
+ }
+ };
+ F._TransformedPointerEnterEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerEnterEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._CopyPointerExitEvent.prototype = {};
+ F.PointerExitEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerExitEvent(this, transform);
+ }
+ };
+ F._TransformedPointerExitEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerExitEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._CopyPointerDownEvent.prototype = {};
+ F.PointerDownEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerDownEvent(this, transform);
+ }
+ };
+ F._TransformedPointerDownEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerDownEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._CopyPointerMoveEvent.prototype = {};
+ F.PointerMoveEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerMoveEvent(this, transform);
+ }
+ };
+ F._TransformedPointerMoveEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerMoveEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._CopyPointerUpEvent.prototype = {};
+ F.PointerUpEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerUpEvent(this, transform);
+ }
+ };
+ F._TransformedPointerUpEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerUpEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F.PointerSignalEvent.prototype = {};
+ F._CopyPointerScrollEvent.prototype = {};
+ F.PointerScrollEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerScrollEvent(this, transform);
+ },
+ get$scrollDelta: function() {
+ return this.scrollDelta;
+ }
+ };
+ F._TransformedPointerScrollEvent.prototype = {
+ get$scrollDelta: function() {
+ return this.original.scrollDelta;
+ },
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerSignalEvent: 1,
+ $isPointerScrollEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._CopyPointerCancelEvent.prototype = {};
+ F.PointerCancelEvent.prototype = {
+ transformed$1: function(transform) {
+ if (transform == null || transform.$eq(0, this.transform))
+ return this;
+ return new F._TransformedPointerCancelEvent(this, transform);
+ }
+ };
+ F._TransformedPointerCancelEvent.prototype = {
+ transformed$1: function(transform) {
+ return this.original.transformed$1(transform);
+ },
+ $isPointerCancelEvent: 1,
+ get$original: function() {
+ return this.original;
+ },
+ get$transform: function(receiver) {
+ return this.transform;
+ }
+ };
+ F._PointerAddedEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerAddedEvent_PointerEvent__PointerEventDescription__CopyPointerAddedEvent.prototype = {};
+ F._PointerCancelEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerCancelEvent_PointerEvent__PointerEventDescription__CopyPointerCancelEvent.prototype = {};
+ F._PointerDownEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerDownEvent_PointerEvent__PointerEventDescription__CopyPointerDownEvent.prototype = {};
+ F._PointerEnterEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerEnterEvent_PointerEvent__PointerEventDescription__CopyPointerEnterEvent.prototype = {};
+ F._PointerEvent_Object_Diagnosticable.prototype = {};
+ F._PointerExitEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerExitEvent_PointerEvent__PointerEventDescription__CopyPointerExitEvent.prototype = {};
+ F._PointerHoverEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerHoverEvent_PointerEvent__PointerEventDescription__CopyPointerHoverEvent.prototype = {};
+ F._PointerMoveEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerMoveEvent_PointerEvent__PointerEventDescription__CopyPointerMoveEvent.prototype = {};
+ F._PointerRemovedEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerRemovedEvent_PointerEvent__PointerEventDescription__CopyPointerRemovedEvent.prototype = {};
+ F._PointerScrollEvent_PointerSignalEvent__PointerEventDescription.prototype = {};
+ F._PointerScrollEvent_PointerSignalEvent__PointerEventDescription__CopyPointerScrollEvent.prototype = {};
+ F._PointerUpEvent_PointerEvent__PointerEventDescription.prototype = {};
+ F._PointerUpEvent_PointerEvent__PointerEventDescription__CopyPointerUpEvent.prototype = {};
+ F.__TransformedPointerAddedEvent__TransformedPointerEvent__CopyPointerAddedEvent.prototype = {};
+ F.__TransformedPointerCancelEvent__TransformedPointerEvent__CopyPointerCancelEvent.prototype = {};
+ F.__TransformedPointerDownEvent__TransformedPointerEvent__CopyPointerDownEvent.prototype = {};
+ F.__TransformedPointerEnterEvent__TransformedPointerEvent__CopyPointerEnterEvent.prototype = {};
+ F.__TransformedPointerEvent__AbstractPointerEvent_Diagnosticable.prototype = {};
+ F.__TransformedPointerEvent__AbstractPointerEvent_Diagnosticable__PointerEventDescription.prototype = {};
+ F.__TransformedPointerExitEvent__TransformedPointerEvent__CopyPointerExitEvent.prototype = {};
+ F.__TransformedPointerHoverEvent__TransformedPointerEvent__CopyPointerHoverEvent.prototype = {};
+ F.__TransformedPointerMoveEvent__TransformedPointerEvent__CopyPointerMoveEvent.prototype = {};
+ F.__TransformedPointerRemovedEvent__TransformedPointerEvent__CopyPointerRemovedEvent.prototype = {};
+ F.__TransformedPointerScrollEvent__TransformedPointerEvent__CopyPointerScrollEvent.prototype = {};
+ F.__TransformedPointerUpEvent__TransformedPointerEvent__CopyPointerUpEvent.prototype = {};
+ K._ForceState.prototype = {
+ toString$0: function(_) {
+ return this._force_press$_name;
+ }
+ };
+ K.ForcePressDetails.prototype = {};
+ K.ForcePressGestureRecognizer.prototype = {
+ get$_lastPosition: function() {
+ return this.__ForcePressGestureRecognizer__lastPosition_isSet ? this.__ForcePressGestureRecognizer__lastPosition : H.throwExpression(H.LateError$fieldNI("_lastPosition"));
+ },
+ addAllowedPointer$1: function($event) {
+ var t2, _this = this,
+ t1 = $event.get$pressureMax();
+ if (t1 <= 1)
+ _this.resolve$1(C.GestureDisposition_1);
+ else {
+ _this.startTrackingPointer$2($event.get$pointer(), $event.get$transform($event));
+ if (_this._force_press$_state === C._ForceState_0) {
+ _this._force_press$_state = C._ForceState_1;
+ t1 = $event.get$localPosition();
+ t2 = $event.get$position($event);
+ _this.__ForcePressGestureRecognizer__lastPosition_isSet = true;
+ _this.__ForcePressGestureRecognizer__lastPosition = new S.OffsetPair(t1, t2);
+ }
+ }
+ },
+ handleEvent$1: function($event) {
+ var pressure, t1, t2, _this = this;
+ if (type$.PointerMoveEvent._is($event) || type$.PointerDownEvent._is($event)) {
+ if ($event.get$pressure($event) > $event.get$pressureMax() || $event.get$pressure($event) < $event.get$pressureMin())
+ D.print__debugPrintThrottled$closure().call$1("The reported device pressure " + J.toString$0$($event.get$pressure($event)) + " is outside of the device pressure range where: " + C.JSInt_methods.toString$0($event.get$pressureMin()) + " <= pressure <= " + C.JSInt_methods.toString$0($event.get$pressureMax()));
+ pressure = K.ForcePressGestureRecognizer__inverseLerp($event.get$pressureMin(), $event.get$pressureMax(), $event.get$pressure($event));
+ t1 = $event.get$localPosition();
+ t2 = $event.get$position($event);
+ _this.__ForcePressGestureRecognizer__lastPosition_isSet = true;
+ _this.__ForcePressGestureRecognizer__lastPosition = new S.OffsetPair(t1, t2);
+ _this.__ForcePressGestureRecognizer__lastPressure_isSet = true;
+ _this.__ForcePressGestureRecognizer__lastPressure = pressure;
+ if (_this._force_press$_state === C._ForceState_1)
+ if (pressure > 0.4) {
+ _this._force_press$_state = C._ForceState_3;
+ _this.resolve$1(C.GestureDisposition_0);
+ } else if ($event.get$delta().get$distanceSquared() > F.computeHitSlop($event.get$kind($event)))
+ _this.resolve$1(C.GestureDisposition_1);
+ if (pressure > 0.4 && _this._force_press$_state === C._ForceState_2) {
+ _this._force_press$_state = C._ForceState_3;
+ if (_this.onStart != null)
+ _this.invokeCallback$2("onStart", new K.ForcePressGestureRecognizer_handleEvent_closure(_this, pressure));
+ }
+ }
+ _this.stopTrackingIfPointerNoLongerDown$1($event);
+ },
+ acceptGesture$1: function(pointer) {
+ var _this = this,
+ t1 = _this._force_press$_state;
+ if (t1 === C._ForceState_1)
+ t1 = _this._force_press$_state = C._ForceState_2;
+ if (_this.onStart != null && t1 === C._ForceState_3)
+ _this.invokeCallback$2("onStart", new K.ForcePressGestureRecognizer_acceptGesture_closure(_this));
+ },
+ didStopTrackingLastPointer$1: function(pointer) {
+ var _this = this,
+ t1 = _this._force_press$_state,
+ wasAccepted = t1 === C._ForceState_3 || t1 === C._ForceState_4;
+ if (t1 === C._ForceState_1) {
+ _this.resolve$1(C.GestureDisposition_1);
+ return;
+ }
+ if (wasAccepted && _this.onEnd != null)
+ if (_this.onEnd != null)
+ _this.invokeCallback$2("onEnd", new K.ForcePressGestureRecognizer_didStopTrackingLastPointer_closure(_this));
+ _this._force_press$_state = C._ForceState_0;
+ },
+ rejectGesture$1: function(pointer) {
+ this.stopTrackingPointer$1(pointer);
+ this.didStopTrackingLastPointer$1(pointer);
+ }
+ };
+ K.ForcePressGestureRecognizer_handleEvent_closure.prototype = {
+ call$0: function() {
+ var t3,
+ t1 = this.$this,
+ t2 = t1.onStart;
+ t2.toString;
+ t3 = t1.get$_lastPosition().global;
+ t1.get$_lastPosition().toString;
+ return t2.call$1(new K.ForcePressDetails(t3));
+ },
+ $signature: 0
+ };
+ K.ForcePressGestureRecognizer_acceptGesture_closure.prototype = {
+ call$0: function() {
+ var t3,
+ t1 = this.$this,
+ t2 = t1.onStart;
+ t2.toString;
+ if (!t1.__ForcePressGestureRecognizer__lastPressure_isSet)
+ H.throwExpression(H.LateError$fieldNI("_lastPressure"));
+ t3 = t1.get$_lastPosition().global;
+ t1.get$_lastPosition().toString;
+ return t2.call$1(new K.ForcePressDetails(t3));
+ },
+ $signature: 0
+ };
+ K.ForcePressGestureRecognizer_didStopTrackingLastPointer_closure.prototype = {
+ call$0: function() {
+ var t3,
+ t1 = this.$this,
+ t2 = t1.onEnd;
+ t2.toString;
+ t3 = t1.get$_lastPosition().global;
+ t1.get$_lastPosition().toString;
+ return t2.call$1(new K.ForcePressDetails(t3));
+ },
+ $signature: 0
+ };
+ O.HitTestEntry.prototype = {
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this) + "(" + this.get$target(this).toString$0(0) + ")";
+ },
+ get$target: function(receiver) {
+ return this.target;
+ }
+ };
+ O._TransformPart.prototype = {};
+ O._MatrixTransformPart.prototype = {
+ multiply$1: function(_, rhs) {
+ return type$.Matrix4._as(this.matrix.$mul(0, rhs));
+ }
+ };
+ O._OffsetTransformPart.prototype = {
+ multiply$1: function(_, rhs) {
+ var t3, tx, ty, tz, t4, _null = null,
+ t1 = new Float64Array(16),
+ t2 = new E.Matrix4(t1);
+ t2.setFrom$1(rhs);
+ t3 = this.offset;
+ tx = t3._dx;
+ ty = t3._dy;
+ if (typeof tx == "number")
+ tz = 0;
+ else {
+ H.throwExpression(P.UnimplementedError$(_null));
+ tz = _null;
+ ty = tz;
+ tx = ty;
+ }
+ t3 = t1[0];
+ t4 = t1[3];
+ t1[0] = t3 + tx * t4;
+ t1[1] = t1[1] + ty * t4;
+ t1[2] = t1[2] + tz * t4;
+ t1[3] = t4;
+ t4 = t1[4];
+ t3 = t1[7];
+ t1[4] = t4 + tx * t3;
+ t1[5] = t1[5] + ty * t3;
+ t1[6] = t1[6] + tz * t3;
+ t1[7] = t3;
+ t3 = t1[8];
+ t4 = t1[11];
+ t1[8] = t3 + tx * t4;
+ t1[9] = t1[9] + ty * t4;
+ t1[10] = t1[10] + tz * t4;
+ t1[11] = t4;
+ t4 = t1[12];
+ t3 = t1[15];
+ t1[12] = t4 + tx * t3;
+ t1[13] = t1[13] + ty * t3;
+ t1[14] = t1[14] + tz * t3;
+ t1[15] = t3;
+ return t2;
+ }
+ };
+ O.HitTestResult.prototype = {
+ _globalizeTransforms$0: function() {
+ var t2, last, t3, _i,
+ t1 = this._localTransforms;
+ if (t1.length === 0)
+ return;
+ t2 = this._transforms;
+ last = C.JSArray_methods.get$last(t2);
+ for (t3 = t1.length, _i = 0; _i < t1.length; t1.length === t3 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ last = t1[_i].multiply$1(0, last);
+ t2.push(last);
+ }
+ C.JSArray_methods.set$length(t1, 0);
+ },
+ popTransform$0: function() {
+ var t1 = this._localTransforms;
+ if (t1.length !== 0)
+ t1.pop();
+ else
+ this._transforms.pop();
+ },
+ toString$0: function(_) {
+ var t1 = this._path;
+ return "HitTestResult(" + (t1.length === 0 ? "" : C.JSArray_methods.join$1(t1, ", ")) + ")";
+ }
+ };
+ T.LongPressStartDetails.prototype = {};
+ T.LongPressMoveUpdateDetails.prototype = {};
+ T.LongPressEndDetails.prototype = {};
+ T.LongPressGestureRecognizer.prototype = {
+ isPointerAllowed$1: function($event) {
+ var _this = this;
+ switch ($event.get$buttons($event)) {
+ case 1:
+ if (_this.onLongPressStart == null && _this.onLongPress == null && _this.onLongPressMoveUpdate == null && _this.onLongPressEnd == null && true)
+ return false;
+ break;
+ case 2:
+ return false;
+ case 4:
+ return false;
+ default:
+ return false;
+ }
+ return _this.super$GestureRecognizer$isPointerAllowed($event);
+ },
+ didExceedDeadline$0: function() {
+ var t1, _this = this;
+ _this.resolve$1(C.GestureDisposition_0);
+ _this._longPressAccepted = true;
+ t1 = _this.primaryPointer;
+ t1.toString;
+ _this.super$PrimaryPointerGestureRecognizer$acceptGesture(t1);
+ _this._checkLongPressStart$0();
+ },
+ handlePrimaryPointer$1: function($event) {
+ var t1, _this = this;
+ if (!$event.get$synthesized()) {
+ if (type$.PointerDownEvent._is($event)) {
+ t1 = new R.VelocityTracker($event.get$kind($event), P.List_List$filled(20, null, false, type$.nullable__PointAtTime));
+ _this._velocityTracker = t1;
+ t1.addPosition$2($event.get$timeStamp($event), $event.get$localPosition());
+ }
+ if (type$.PointerMoveEvent._is($event)) {
+ t1 = _this._velocityTracker;
+ t1.toString;
+ t1.addPosition$2($event.get$timeStamp($event), $event.get$localPosition());
+ }
+ }
+ if (type$.PointerUpEvent._is($event)) {
+ if (_this._longPressAccepted)
+ _this._checkLongPressEnd$1($event);
+ else
+ _this.resolve$1(C.GestureDisposition_1);
+ _this._reset$0();
+ } else if (type$.PointerCancelEvent._is($event))
+ _this._reset$0();
+ else if (type$.PointerDownEvent._is($event)) {
+ _this._longPressOrigin = new S.OffsetPair($event.get$localPosition(), $event.get$position($event));
+ _this._long_press$_initialButtons = $event.get$buttons($event);
+ } else if (type$.PointerMoveEvent._is($event))
+ if ($event.get$buttons($event) != _this._long_press$_initialButtons) {
+ _this.resolve$1(C.GestureDisposition_1);
+ t1 = _this.primaryPointer;
+ t1.toString;
+ _this.stopTrackingPointer$1(t1);
+ } else if (_this._longPressAccepted)
+ _this._checkLongPressMoveUpdate$1($event);
+ },
+ _checkLongPressStart$0: function() {
+ var t1, _this = this;
+ switch (_this._long_press$_initialButtons) {
+ case 1:
+ if (_this.onLongPressStart != null) {
+ t1 = _this._longPressOrigin.global;
+ _this.invokeCallback$2("onLongPressStart", new T.LongPressGestureRecognizer__checkLongPressStart_closure(_this, new T.LongPressStartDetails(t1)));
+ }
+ t1 = _this.onLongPress;
+ if (t1 != null)
+ _this.invokeCallback$2("onLongPress", t1);
+ break;
+ case 2:
+ break;
+ case 4:
+ break;
+ }
+ },
+ _checkLongPressMoveUpdate$1: function($event) {
+ var t2, _this = this,
+ t1 = $event.get$position($event);
+ $event.get$localPosition();
+ t2 = $event.get$position($event).$sub(0, _this._longPressOrigin.global);
+ $event.get$localPosition().$sub(0, _this._longPressOrigin.local);
+ switch (_this._long_press$_initialButtons) {
+ case 1:
+ if (_this.onLongPressMoveUpdate != null)
+ _this.invokeCallback$2("onLongPressMoveUpdate", new T.LongPressGestureRecognizer__checkLongPressMoveUpdate_closure(_this, new T.LongPressMoveUpdateDetails(t1, t2)));
+ break;
+ case 2:
+ break;
+ case 4:
+ break;
+ }
+ },
+ _checkLongPressEnd$1: function($event) {
+ var _this = this;
+ _this._velocityTracker.getVelocityEstimate$0();
+ $event.get$position($event);
+ $event.get$localPosition();
+ _this._velocityTracker = null;
+ switch (_this._long_press$_initialButtons) {
+ case 1:
+ if (_this.onLongPressEnd != null)
+ _this.invokeCallback$2("onLongPressEnd", new T.LongPressGestureRecognizer__checkLongPressEnd_closure(_this, new T.LongPressEndDetails()));
+ break;
+ case 2:
+ break;
+ case 4:
+ break;
+ }
+ },
+ _reset$0: function() {
+ var _this = this;
+ _this._longPressAccepted = false;
+ _this._velocityTracker = _this._long_press$_initialButtons = _this._longPressOrigin = null;
+ },
+ resolve$1: function(disposition) {
+ if (this._longPressAccepted && disposition === C.GestureDisposition_1)
+ this._reset$0();
+ this.super$OneSequenceGestureRecognizer$resolve(disposition);
+ },
+ acceptGesture$1: function(pointer) {
+ }
+ };
+ T.LongPressGestureRecognizer__checkLongPressStart_closure.prototype = {
+ call$0: function() {
+ return this.$this.onLongPressStart.call$1(this.details);
+ },
+ $signature: 0
+ };
+ T.LongPressGestureRecognizer__checkLongPressMoveUpdate_closure.prototype = {
+ call$0: function() {
+ return this.$this.onLongPressMoveUpdate.call$1(this.details);
+ },
+ $signature: 0
+ };
+ T.LongPressGestureRecognizer__checkLongPressEnd_closure.prototype = {
+ call$0: function() {
+ return this.$this.onLongPressEnd.call$1(this.details);
+ },
+ $signature: 0
+ };
+ B._Vector.prototype = {
+ $index: function(_, i) {
+ return this._lsq_solver$_elements[i + this._lsq_solver$_offset];
+ },
+ $mul: function(_, a) {
+ var t1, t2, t3, result, i;
+ for (t1 = this._lsq_solver$_length, t2 = this._lsq_solver$_elements, t3 = this._lsq_solver$_offset, result = 0, i = 0; i < t1; ++i)
+ result += t2[i + t3] * a._lsq_solver$_elements[i + a._lsq_solver$_offset];
+ return result;
+ }
+ };
+ B._Matrix.prototype = {};
+ B.PolynomialFit.prototype = {
+ get$confidence: function(_) {
+ return this.__PolynomialFit_confidence_isSet ? this.__PolynomialFit_confidence : H.throwExpression(H.LateError$fieldNI("confidence"));
+ }
+ };
+ B.LeastSquaresSolver.prototype = {
+ solve$1: function(degree) {
+ var t2, result, m, t3, t4, t5, t6, h, i, j, t7, t8, dot, t9, norm, inverseNorm, wy, i0, yMean, sumSquaredError, sumSquaredTotal, err, term, v,
+ t1 = this.x;
+ if (degree > t1.length)
+ return null;
+ t2 = degree + 1;
+ result = new B.PolynomialFit(new Float64Array(t2));
+ m = t1.length;
+ t3 = t2 * m;
+ t4 = new Float64Array(t3);
+ for (t5 = this.w, t6 = 0 * m, h = 0; h < m; ++h) {
+ t4[t6 + h] = t5[h];
+ for (i = 1; i < t2; ++i)
+ t4[i * m + h] = t4[(i - 1) * m + h] * t1[h];
+ }
+ t3 = new Float64Array(t3);
+ t6 = new Float64Array(t2 * t2);
+ for (j = 0; j < t2; ++j) {
+ for (t7 = j * m, h = 0; h < m; ++h) {
+ t8 = t7 + h;
+ t3[t8] = t4[t8];
+ }
+ for (i = 0; i < j; ++i) {
+ t8 = i * m;
+ dot = new B._Vector(t7, m, t3).$mul(0, new B._Vector(t8, m, t3));
+ for (h = 0; h < m; ++h) {
+ t9 = t7 + h;
+ t3[t9] = t3[t9] - dot * t3[t8 + h];
+ }
+ }
+ t8 = new B._Vector(t7, m, t3);
+ norm = Math.sqrt(t8.$mul(0, t8));
+ if (norm < 1e-10)
+ return null;
+ inverseNorm = 1 / norm;
+ for (h = 0; h < m; ++h) {
+ t8 = t7 + h;
+ t3[t8] = t3[t8] * inverseNorm;
+ }
+ for (t8 = j * t2, i = 0; i < t2; ++i) {
+ t9 = i < j ? 0 : new B._Vector(t7, m, t3).$mul(0, new B._Vector(i * m, m, t4));
+ t6[t8 + i] = t9;
+ }
+ }
+ t4 = new Float64Array(m);
+ wy = new B._Vector(0, m, t4);
+ for (t7 = this.y, h = 0; h < m; ++h)
+ t4[h] = t7[h] * t5[h];
+ for (i = t2 - 1, t4 = result.coefficients, i0 = i; i0 >= 0; --i0) {
+ t4[i0] = new B._Vector(i0 * m, m, t3).$mul(0, wy);
+ for (t8 = i0 * t2, j = i; j > i0; --j)
+ t4[i0] = t4[i0] - t6[t8 + j] * t4[j];
+ t4[i0] = t4[i0] / t6[t8 + i0];
+ }
+ for (yMean = 0, h = 0; h < m; ++h)
+ yMean += t7[h];
+ yMean /= m;
+ for (sumSquaredError = 0, sumSquaredTotal = 0, h = 0; h < m; ++h) {
+ t3 = t7[h];
+ err = t3 - t4[0];
+ for (term = 1, i = 1; i < t2; ++i) {
+ term *= t1[h];
+ err -= term * t4[i];
+ }
+ t6 = t5[h];
+ t6 *= t6;
+ sumSquaredError += t6 * err * err;
+ v = t3 - yMean;
+ sumSquaredTotal += t6 * v * v;
+ }
+ t1 = sumSquaredTotal <= 1e-10 ? 1 : 1 - sumSquaredError / sumSquaredTotal;
+ result.__PolynomialFit_confidence_isSet = true;
+ result.__PolynomialFit_confidence = t1;
+ return result;
+ }
+ };
+ O._DragState.prototype = {
+ toString$0: function(_) {
+ return this._monodrag$_name;
+ }
+ };
+ O.DragGestureRecognizer.prototype = {
+ get$_initialPosition: function() {
+ return this.__DragGestureRecognizer__initialPosition_isSet ? this.__DragGestureRecognizer__initialPosition : H.throwExpression(H.LateError$fieldNI("_initialPosition"));
+ },
+ get$_pendingDragOffset: function() {
+ return this.__DragGestureRecognizer__pendingDragOffset_isSet ? this.__DragGestureRecognizer__pendingDragOffset : H.throwExpression(H.LateError$fieldNI("_pendingDragOffset"));
+ },
+ get$_globalDistanceMoved: function() {
+ return this.__DragGestureRecognizer__globalDistanceMoved_isSet ? this.__DragGestureRecognizer__globalDistanceMoved : H.throwExpression(H.LateError$fieldNI("_globalDistanceMoved"));
+ },
+ isPointerAllowed$1: function($event) {
+ var _this = this;
+ if (_this._initialButtons == null)
+ switch ($event.get$buttons($event)) {
+ case 1:
+ if (_this.onDown == null && _this.onStart == null && _this.onUpdate == null && _this.onEnd == null && _this.onCancel == null)
+ return false;
+ break;
+ default:
+ return false;
+ }
+ else if ($event.get$buttons($event) != _this._initialButtons)
+ return false;
+ return _this.super$GestureRecognizer$isPointerAllowed($event);
+ },
+ addAllowedPointer$1: function($event) {
+ var t1, t2, _this = this;
+ _this.startTrackingPointer$2($event.get$pointer(), $event.get$transform($event));
+ _this._velocityTrackers.$indexSet(0, $event.get$pointer(), _this.velocityTrackerBuilder.call$1($event));
+ t1 = _this._monodrag$_state;
+ if (t1 === C._DragState_0) {
+ _this._monodrag$_state = C._DragState_1;
+ t1 = $event.get$position($event);
+ t2 = $event.get$localPosition();
+ _this.__DragGestureRecognizer__initialPosition_isSet = true;
+ _this.__DragGestureRecognizer__initialPosition = new S.OffsetPair(t2, t1);
+ _this._initialButtons = $event.get$buttons($event);
+ _this.__DragGestureRecognizer__pendingDragOffset_isSet = true;
+ _this.__DragGestureRecognizer__pendingDragOffset = C.OffsetPair_G6F;
+ _this.__DragGestureRecognizer__globalDistanceMoved_isSet = true;
+ _this.__DragGestureRecognizer__globalDistanceMoved = 0;
+ _this._lastPendingEventTimestamp = $event.get$timeStamp($event);
+ _this._lastTransform = $event.get$transform($event);
+ _this._checkDown$0();
+ } else if (t1 === C._DragState_2)
+ _this.resolve$1(C.GestureDisposition_0);
+ },
+ handleEvent$1: function($event) {
+ var t1, t2, t3, movedLocally, localToGlobalTransform, _this = this;
+ if (!$event.get$synthesized())
+ t1 = type$.PointerDownEvent._is($event) || type$.PointerMoveEvent._is($event);
+ else
+ t1 = false;
+ if (t1) {
+ t1 = _this._velocityTrackers.$index(0, $event.get$pointer());
+ t1.toString;
+ t1.addPosition$2($event.get$timeStamp($event), $event.get$localPosition());
+ }
+ if (type$.PointerMoveEvent._is($event)) {
+ if ($event.get$buttons($event) != _this._initialButtons) {
+ t1 = $event.get$pointer();
+ _this.stopTrackingPointer$1(t1);
+ _this.resolvePointer$2(t1, C.GestureDisposition_1);
+ return;
+ }
+ if (_this._monodrag$_state === C._DragState_2) {
+ t1 = $event.get$timeStamp($event);
+ t2 = _this._getDeltaForDetails$1($event.get$localDelta());
+ t3 = _this._getPrimaryValueFromOffset$1($event.get$localDelta());
+ _this._checkUpdate$5$delta$globalPosition$localPosition$primaryDelta$sourceTimeStamp(t2, $event.get$position($event), $event.get$localPosition(), t3, t1);
+ } else {
+ t1 = _this.get$_pendingDragOffset().$add(0, new S.OffsetPair($event.get$localDelta(), $event.get$delta()));
+ _this.__DragGestureRecognizer__pendingDragOffset_isSet = true;
+ _this.__DragGestureRecognizer__pendingDragOffset = t1;
+ _this._lastPendingEventTimestamp = $event.get$timeStamp($event);
+ _this._lastTransform = $event.get$transform($event);
+ movedLocally = _this._getDeltaForDetails$1($event.get$localDelta());
+ if ($event.get$transform($event) == null)
+ localToGlobalTransform = null;
+ else {
+ t1 = $event.get$transform($event);
+ t1.toString;
+ localToGlobalTransform = E.Matrix4_tryInvert(t1);
+ }
+ t1 = _this.get$_globalDistanceMoved();
+ t2 = F.PointerEvent_transformDeltaViaPositions(localToGlobalTransform, null, movedLocally, $event.get$localPosition()).get$distance();
+ t3 = _this._getPrimaryValueFromOffset$1(movedLocally);
+ t3 = J.get$sign$in(t3 == null ? 1 : t3);
+ _this.__DragGestureRecognizer__globalDistanceMoved_isSet = true;
+ _this.__DragGestureRecognizer__globalDistanceMoved = t1 + t2 * t3;
+ if (_this._hasSufficientGlobalDistanceToAccept$1($event.get$kind($event)))
+ _this.resolve$1(C.GestureDisposition_0);
+ }
+ }
+ if (type$.PointerUpEvent._is($event) || type$.PointerCancelEvent._is($event)) {
+ t1 = $event.get$pointer();
+ t2 = type$.PointerCancelEvent._is($event) || _this._monodrag$_state === C._DragState_1;
+ _this.stopTrackingPointer$1(t1);
+ if (t2)
+ _this.resolvePointer$2(t1, C.GestureDisposition_1);
+ }
+ },
+ acceptGesture$1: function(pointer) {
+ var delta, t1, transform, t2, localUpdateDelta, localToGlobal, globalUpdateDelta, correctedPosition, _this = this;
+ if (_this._monodrag$_state !== C._DragState_2) {
+ _this._monodrag$_state = C._DragState_2;
+ delta = _this.get$_pendingDragOffset();
+ t1 = _this._lastPendingEventTimestamp;
+ t1.toString;
+ transform = _this._lastTransform;
+ switch (_this.dragStartBehavior) {
+ case C.DragStartBehavior_1:
+ t2 = _this.get$_initialPosition().$add(0, delta);
+ _this.__DragGestureRecognizer__initialPosition_isSet = true;
+ _this.__DragGestureRecognizer__initialPosition = t2;
+ localUpdateDelta = C.Offset_0_0;
+ break;
+ case C.DragStartBehavior_0:
+ localUpdateDelta = _this._getDeltaForDetails$1(delta.local);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ _this.__DragGestureRecognizer__pendingDragOffset_isSet = true;
+ _this.__DragGestureRecognizer__pendingDragOffset = C.OffsetPair_G6F;
+ _this._lastTransform = _this._lastPendingEventTimestamp = null;
+ _this._checkStart$2(t1, pointer);
+ if (!J.$eq$(localUpdateDelta, C.Offset_0_0) && _this.onUpdate != null) {
+ localToGlobal = transform != null ? E.Matrix4_tryInvert(transform) : null;
+ globalUpdateDelta = F.PointerEvent_transformDeltaViaPositions(localToGlobal, null, localUpdateDelta, _this.get$_initialPosition().local.$add(0, localUpdateDelta));
+ correctedPosition = _this.get$_initialPosition().$add(0, new S.OffsetPair(localUpdateDelta, globalUpdateDelta));
+ _this._checkUpdate$5$delta$globalPosition$localPosition$primaryDelta$sourceTimeStamp(localUpdateDelta, correctedPosition.global, correctedPosition.local, _this._getPrimaryValueFromOffset$1(localUpdateDelta), t1);
+ }
+ }
+ },
+ rejectGesture$1: function(pointer) {
+ this.stopTrackingPointer$1(pointer);
+ this.resolvePointer$2(pointer, C.GestureDisposition_1);
+ },
+ didStopTrackingLastPointer$1: function(pointer) {
+ var t1, _this = this;
+ switch (_this._monodrag$_state) {
+ case C._DragState_0:
+ break;
+ case C._DragState_1:
+ _this.resolve$1(C.GestureDisposition_1);
+ t1 = _this.onCancel;
+ if (t1 != null)
+ _this.invokeCallback$2("onCancel", t1);
+ break;
+ case C._DragState_2:
+ _this._checkEnd$1(pointer);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ _this._velocityTrackers.clear$0(0);
+ _this._initialButtons = null;
+ _this._monodrag$_state = C._DragState_0;
+ },
+ _checkDown$0: function() {
+ var _this = this,
+ t1 = _this.get$_initialPosition().global;
+ _this.get$_initialPosition().toString;
+ if (_this.onDown != null)
+ _this.invokeCallback$2("onDown", new O.DragGestureRecognizer__checkDown_closure(_this, new O.DragDownDetails(t1)));
+ },
+ _checkStart$2: function(timestamp, pointer) {
+ var details, _this = this,
+ t1 = _this.get$_initialPosition().global,
+ t2 = _this.get$_initialPosition().local,
+ t3 = _this._pointerToKind.$index(0, pointer);
+ t3.toString;
+ details = O.DragStartDetails$(t1, t3, t2, timestamp);
+ if (_this.onStart != null)
+ _this.invokeCallback$2("onStart", new O.DragGestureRecognizer__checkStart_closure(_this, details));
+ },
+ _checkUpdate$5$delta$globalPosition$localPosition$primaryDelta$sourceTimeStamp: function(delta, globalPosition, localPosition, primaryDelta, sourceTimeStamp) {
+ var details = O.DragUpdateDetails$(delta, globalPosition, localPosition, primaryDelta, sourceTimeStamp);
+ if (this.onUpdate != null)
+ this.invokeCallback$2("onUpdate", new O.DragGestureRecognizer__checkUpdate_closure(this, details));
+ },
+ _checkEnd$1: function(pointer) {
+ var t2, estimate, t3, t4, velocity, debugReport, _this = this, t1 = {};
+ if (_this.onEnd == null)
+ return;
+ t2 = _this._velocityTrackers.$index(0, pointer);
+ t2.toString;
+ t1.details = null;
+ estimate = t2.getVelocityEstimate$0();
+ if (estimate != null && _this.isFlingGesture$2(estimate, t2.kind)) {
+ t2 = estimate.pixelsPerSecond;
+ t3 = _this.minFlingVelocity;
+ if (t3 == null)
+ t3 = 50;
+ t4 = _this.maxFlingVelocity;
+ if (t4 == null)
+ t4 = 8000;
+ velocity = new R.Velocity(t2).clampMagnitude$2(t3, t4);
+ t1.details = new O.DragEndDetails(velocity, _this._getPrimaryValueFromOffset$1(velocity.pixelsPerSecond));
+ debugReport = new O.DragGestureRecognizer__checkEnd_closure(estimate, velocity);
+ } else {
+ t1.details = new O.DragEndDetails(C.Velocity_Offset_0_0, 0);
+ debugReport = new O.DragGestureRecognizer__checkEnd_closure0(estimate);
+ }
+ _this.invokeCallback$3$debugReport("onEnd", new O.DragGestureRecognizer__checkEnd_closure1(t1, _this), debugReport);
+ },
+ dispose$0: function(_) {
+ this._velocityTrackers.clear$0(0);
+ this.super$OneSequenceGestureRecognizer$dispose(0);
+ }
+ };
+ O.DragGestureRecognizer__checkDown_closure.prototype = {
+ call$0: function() {
+ return this.$this.onDown.call$1(this.details);
+ },
+ $signature: 0
+ };
+ O.DragGestureRecognizer__checkStart_closure.prototype = {
+ call$0: function() {
+ return this.$this.onStart.call$1(this.details);
+ },
+ $signature: 0
+ };
+ O.DragGestureRecognizer__checkUpdate_closure.prototype = {
+ call$0: function() {
+ return this.$this.onUpdate.call$1(this.details);
+ },
+ $signature: 0
+ };
+ O.DragGestureRecognizer__checkEnd_closure.prototype = {
+ call$0: function() {
+ return this.estimate.toString$0(0) + "; fling at " + this.velocity.toString$0(0) + ".";
+ },
+ $signature: 75
+ };
+ O.DragGestureRecognizer__checkEnd_closure0.prototype = {
+ call$0: function() {
+ var t1 = this.estimate;
+ if (t1 == null)
+ return "Could not estimate velocity.";
+ return t1.toString$0(0) + "; judged to not be a fling.";
+ },
+ $signature: 75
+ };
+ O.DragGestureRecognizer__checkEnd_closure1.prototype = {
+ call$0: function() {
+ return this.$this.onEnd.call$1(this._box_0.details);
+ },
+ $signature: 0
+ };
+ O.VerticalDragGestureRecognizer.prototype = {
+ isFlingGesture$2: function(estimate, kind) {
+ var minDistance,
+ minVelocity = this.minFlingVelocity;
+ if (minVelocity == null)
+ minVelocity = 50;
+ minDistance = this.minFlingDistance;
+ if (minDistance == null)
+ minDistance = F.computeHitSlop(kind);
+ return Math.abs(estimate.pixelsPerSecond._dy) > minVelocity && Math.abs(estimate.offset._dy) > minDistance;
+ },
+ _hasSufficientGlobalDistanceToAccept$1: function(pointerDeviceKind) {
+ return Math.abs(this.get$_globalDistanceMoved()) > F.computeHitSlop(pointerDeviceKind);
+ },
+ _getDeltaForDetails$1: function(delta) {
+ return new P.Offset(0, delta._dy);
+ },
+ _getPrimaryValueFromOffset$1: function(value) {
+ return value._dy;
+ }
+ };
+ O.HorizontalDragGestureRecognizer.prototype = {
+ isFlingGesture$2: function(estimate, kind) {
+ var minDistance,
+ minVelocity = this.minFlingVelocity;
+ if (minVelocity == null)
+ minVelocity = 50;
+ minDistance = this.minFlingDistance;
+ if (minDistance == null)
+ minDistance = F.computeHitSlop(kind);
+ return Math.abs(estimate.pixelsPerSecond._dx) > minVelocity && Math.abs(estimate.offset._dx) > minDistance;
+ },
+ _hasSufficientGlobalDistanceToAccept$1: function(pointerDeviceKind) {
+ return Math.abs(this.get$_globalDistanceMoved()) > F.computeHitSlop(pointerDeviceKind);
+ },
+ _getDeltaForDetails$1: function(delta) {
+ return new P.Offset(delta._dx, 0);
+ },
+ _getPrimaryValueFromOffset$1: function(value) {
+ return value._dx;
+ }
+ };
+ O.PanGestureRecognizer.prototype = {
+ isFlingGesture$2: function(estimate, kind) {
+ var minDistance,
+ minVelocity = this.minFlingVelocity;
+ if (minVelocity == null)
+ minVelocity = 50;
+ minDistance = this.minFlingDistance;
+ if (minDistance == null)
+ minDistance = F.computeHitSlop(kind);
+ return estimate.pixelsPerSecond.get$distanceSquared() > minVelocity * minVelocity && estimate.offset.get$distanceSquared() > minDistance * minDistance;
+ },
+ _hasSufficientGlobalDistanceToAccept$1: function(pointerDeviceKind) {
+ return Math.abs(this.get$_globalDistanceMoved()) > F.computePanSlop(pointerDeviceKind);
+ },
+ _getDeltaForDetails$1: function(delta) {
+ return delta;
+ },
+ _getPrimaryValueFromOffset$1: function(value) {
+ return null;
+ }
+ };
+ F._CountdownZoned.prototype = {
+ _onTimeout$0: function() {
+ this._timeout = true;
+ }
+ };
+ F._TapTracker.prototype = {
+ stopTrackingPointer$1: function(route) {
+ if (this._isTrackingPointer) {
+ this._isTrackingPointer = false;
+ $.GestureBinding__instance.GestureBinding_pointerRouter.removeRoute$2(this.pointer, route);
+ }
+ },
+ isWithinGlobalTolerance$2: function($event, tolerance) {
+ return $event.get$position($event).$sub(0, this._initialGlobalPosition).get$distance() <= tolerance;
+ }
+ };
+ F.DoubleTapGestureRecognizer.prototype = {
+ isPointerAllowed$1: function($event) {
+ var t1;
+ if (this._firstTap == null)
+ switch ($event.get$buttons($event)) {
+ case 1:
+ t1 = this.onDoubleTap == null && true;
+ if (t1)
+ return false;
+ break;
+ default:
+ return false;
+ }
+ return this.super$GestureRecognizer$isPointerAllowed($event);
+ },
+ addAllowedPointer$1: function($event) {
+ var _this = this,
+ t1 = _this._firstTap;
+ if (t1 != null)
+ if (!t1.isWithinGlobalTolerance$2($event, 100))
+ return;
+ else {
+ t1 = _this._firstTap;
+ if (!t1._doubleTapMinTimeCountdown._timeout || $event.get$buttons($event) != t1.initialButtons) {
+ _this._multitap$_reset$0();
+ return _this._trackTap$1($event);
+ }
+ }
+ _this._trackTap$1($event);
+ },
+ _trackTap$1: function($event) {
+ var t1, t2, t3, t4, t5, tracker, _this = this;
+ _this._stopDoubleTapTimer$0();
+ t1 = $.GestureBinding__instance.GestureBinding_gestureArena.add$2(0, $event.get$pointer(), _this);
+ t2 = $event.get$pointer();
+ t3 = $event.get$position($event);
+ t4 = $event.get$buttons($event);
+ t5 = new F._CountdownZoned();
+ P.Timer_Timer(C.Duration_40000, t5.get$_onTimeout());
+ tracker = new F._TapTracker(t2, t1, t3, t4, t5);
+ _this._trackers.$indexSet(0, $event.get$pointer(), tracker);
+ t5 = $event.get$transform($event);
+ if (!tracker._isTrackingPointer) {
+ tracker._isTrackingPointer = true;
+ $.GestureBinding__instance.GestureBinding_pointerRouter.addRoute$3(t2, _this.get$_handleEvent(), t5);
+ }
+ },
+ _handleEvent$1: function($event) {
+ var t3, _this = this,
+ t1 = _this._trackers,
+ t2 = t1.$index(0, $event.get$pointer());
+ t2.toString;
+ if (type$.PointerUpEvent._is($event)) {
+ t3 = _this._firstTap;
+ if (t3 == null) {
+ if (_this._doubleTapTimer == null)
+ _this._doubleTapTimer = P.Timer_Timer(C.Duration_300000, _this.get$_multitap$_reset());
+ t3 = t2.pointer;
+ $.GestureBinding__instance.GestureBinding_gestureArena.hold$1(t3);
+ t2.stopTrackingPointer$1(_this.get$_handleEvent());
+ t1.remove$1(0, t3);
+ _this._clearTrackers$0();
+ _this._firstTap = t2;
+ } else {
+ t3 = t3.entry;
+ t3._arena._resolve$3(t3._arena$_pointer, t3._member, C.GestureDisposition_0);
+ t3 = t2.entry;
+ t3._arena._resolve$3(t3._arena$_pointer, t3._member, C.GestureDisposition_0);
+ t2.stopTrackingPointer$1(_this.get$_handleEvent());
+ t1.remove$1(0, t2.pointer);
+ t1 = _this.onDoubleTap;
+ if (t1 != null)
+ _this.invokeCallback$2("onDoubleTap", t1);
+ _this._multitap$_reset$0();
+ }
+ } else if (type$.PointerMoveEvent._is($event)) {
+ if (!t2.isWithinGlobalTolerance$2($event, 18))
+ _this._reject$1(t2);
+ } else if (type$.PointerCancelEvent._is($event))
+ _this._reject$1(t2);
+ },
+ acceptGesture$1: function(pointer) {
+ },
+ rejectGesture$1: function(pointer) {
+ var t1, _this = this,
+ tracker = _this._trackers.$index(0, pointer);
+ if (tracker == null) {
+ t1 = _this._firstTap;
+ t1 = t1 != null && t1.pointer == pointer;
+ } else
+ t1 = false;
+ if (t1)
+ tracker = _this._firstTap;
+ if (tracker != null)
+ _this._reject$1(tracker);
+ },
+ _reject$1: function(tracker) {
+ var t2, _this = this,
+ t1 = _this._trackers;
+ t1.remove$1(0, tracker.pointer);
+ t2 = tracker.entry;
+ t2._arena._resolve$3(t2._arena$_pointer, t2._member, C.GestureDisposition_1);
+ tracker.stopTrackingPointer$1(_this.get$_handleEvent());
+ t2 = _this._firstTap;
+ if (t2 != null)
+ if (tracker === t2)
+ _this._multitap$_reset$0();
+ else {
+ _this._checkCancel$0();
+ if (t1.get$isEmpty(t1))
+ _this._multitap$_reset$0();
+ }
+ },
+ dispose$0: function(_) {
+ this._multitap$_reset$0();
+ this.super$GestureRecognizer$dispose(0);
+ },
+ _multitap$_reset$0: function() {
+ var t1, _this = this;
+ _this._stopDoubleTapTimer$0();
+ if (_this._firstTap != null) {
+ t1 = _this._trackers;
+ if (t1.get$isNotEmpty(t1))
+ _this._checkCancel$0();
+ t1 = _this._firstTap;
+ t1.toString;
+ _this._firstTap = null;
+ _this._reject$1(t1);
+ $.GestureBinding__instance.GestureBinding_gestureArena.release$1(0, t1.pointer);
+ }
+ _this._clearTrackers$0();
+ },
+ _clearTrackers$0: function() {
+ var t1 = this._trackers;
+ t1 = t1.get$values(t1);
+ C.JSArray_methods.forEach$1(P.List_List$of(t1, true, H._instanceType(t1)._eval$1("Iterable.E")), this.get$_reject());
+ },
+ _stopDoubleTapTimer$0: function() {
+ var t1 = this._doubleTapTimer;
+ if (t1 != null) {
+ t1.cancel$0(0);
+ this._doubleTapTimer = null;
+ }
+ },
+ _checkCancel$0: function() {
+ }
+ };
+ O.PointerRouter.prototype = {
+ addRoute$3: function(pointer, route, transform) {
+ J.$indexSet$ax(this._routeMap.putIfAbsent$2(0, pointer, new O.PointerRouter_addRoute_closure()), route, transform);
+ },
+ removeRoute$2: function(pointer, route) {
+ var t3,
+ t1 = this._routeMap,
+ t2 = t1.$index(0, pointer);
+ t2.toString;
+ t3 = J.getInterceptor$ax(t2);
+ t3.remove$1(t2, route);
+ if (t3.get$isEmpty(t2))
+ t1.remove$1(0, pointer);
+ },
+ _dispatch$3: function($event, route, transform) {
+ var exception, stack, exception0, t1, t2;
+ try {
+ route.call$1($event.transformed$1(transform));
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("while routing a pointer event");
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "gesture library", t1, null, false));
+ }
+ },
+ route$1: function($event) {
+ var _this = this,
+ routes = _this._routeMap.$index(0, $event.get$pointer()),
+ t1 = _this._globalRoutes,
+ t2 = type$.void_Function_PointerEvent,
+ t3 = type$.nullable_Matrix4,
+ copiedGlobalRoutes = P.LinkedHashMap_LinkedHashMap$from(t1, t2, t3);
+ if (routes != null)
+ _this._dispatchEventToRoutes$3($event, routes, P.LinkedHashMap_LinkedHashMap$from(routes, t2, t3));
+ _this._dispatchEventToRoutes$3($event, t1, copiedGlobalRoutes);
+ },
+ _dispatchEventToRoutes$3: function($event, referenceRoutes, copiedRoutes) {
+ copiedRoutes.forEach$1(0, new O.PointerRouter__dispatchEventToRoutes_closure(this, referenceRoutes, $event));
+ }
+ };
+ O.PointerRouter_addRoute_closure.prototype = {
+ call$0: function() {
+ return P.LinkedHashMap_LinkedHashMap$_empty(type$.void_Function_PointerEvent, type$.nullable_Matrix4);
+ },
+ $signature: 139
+ };
+ O.PointerRouter__dispatchEventToRoutes_closure.prototype = {
+ call$2: function(route, transform) {
+ if (J.containsKey$1$x(this.referenceRoutes, route))
+ this.$this._dispatch$3(this.event, route, transform);
+ },
+ $signature: 140
+ };
+ G.PointerSignalResolver.prototype = {
+ register$2: function(_, $event, callback) {
+ if (this._firstRegisteredCallback != null)
+ return;
+ this._currentEvent = $event;
+ this._firstRegisteredCallback = callback;
+ },
+ resolve$1: function($event) {
+ var exception, stack, t2, exception0, _this = this,
+ t1 = _this._firstRegisteredCallback;
+ if (t1 == null)
+ return;
+ try {
+ t2 = _this._currentEvent;
+ t2.toString;
+ t1.call$1(t2);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("while resolving a PointerSignalEvent");
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "gesture library", t1, null, false));
+ }
+ _this._currentEvent = _this._firstRegisteredCallback = null;
+ }
+ };
+ S.DragStartBehavior.prototype = {
+ toString$0: function(_) {
+ return this._recognizer$_name;
+ }
+ };
+ S.GestureRecognizer.prototype = {
+ addPointer$1: function($event) {
+ var _this = this;
+ _this._pointerToKind.$indexSet(0, $event.get$pointer(), $event.get$kind($event));
+ if (_this.isPointerAllowed$1($event))
+ _this.addAllowedPointer$1($event);
+ else
+ _this.handleNonAllowedPointer$1($event);
+ },
+ addAllowedPointer$1: function($event) {
+ },
+ handleNonAllowedPointer$1: function($event) {
+ },
+ isPointerAllowed$1: function($event) {
+ var t1 = this._kindFilter;
+ return t1 == null || t1 === $event.get$kind($event);
+ },
+ dispose$0: function(_) {
+ },
+ invokeCallback$1$3$debugReport: function($name, callback, debugReport) {
+ var exception, stack, exception0, t1, t2, result = null;
+ try {
+ result = callback.call$0();
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("while handling a gesture");
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "gesture", t1, null, false));
+ }
+ return result;
+ },
+ invokeCallback$2: function($name, callback) {
+ return this.invokeCallback$1$3$debugReport($name, callback, null, type$.dynamic);
+ },
+ invokeCallback$3$debugReport: function($name, callback, debugReport) {
+ return this.invokeCallback$1$3$debugReport($name, callback, debugReport, type$.dynamic);
+ },
+ $isDiagnosticableTree: 1
+ };
+ S.OneSequenceGestureRecognizer.prototype = {
+ handleNonAllowedPointer$1: function($event) {
+ this.resolve$1(C.GestureDisposition_1);
+ },
+ acceptGesture$1: function(pointer) {
+ },
+ rejectGesture$1: function(pointer) {
+ },
+ resolve$1: function(disposition) {
+ var _i,
+ t1 = this._recognizer$_entries,
+ localEntries = P.List_List$from(t1.get$values(t1), true, type$.GestureArenaEntry);
+ t1.clear$0(0);
+ for (t1 = localEntries.length, _i = 0; _i < t1; ++_i)
+ localEntries[_i].resolve$1(disposition);
+ },
+ resolvePointer$2: function(pointer, disposition) {
+ var t1 = this._recognizer$_entries,
+ entry = t1.$index(0, pointer);
+ if (entry != null) {
+ t1.remove$1(0, pointer);
+ entry.resolve$1(disposition);
+ }
+ },
+ dispose$0: function(_) {
+ var t1, t2, t3, t4, t5, t6, t7, _this = this;
+ _this.resolve$1(C.GestureDisposition_1);
+ for (t1 = _this._trackedPointers, t2 = new P._HashSetIterator(t1, t1._computeElements$0()); t2.moveNext$0();) {
+ t3 = t2._collection$_current;
+ t4 = $.GestureBinding__instance.GestureBinding_pointerRouter;
+ t5 = _this.get$handleEvent();
+ t4 = t4._routeMap;
+ t6 = t4.$index(0, t3);
+ t6.toString;
+ t7 = J.getInterceptor$ax(t6);
+ t7.remove$1(t6, t5);
+ if (t7.get$isEmpty(t6))
+ t4.remove$1(0, t3);
+ }
+ t1.clear$0(0);
+ _this.super$GestureRecognizer$dispose(0);
+ },
+ _addPointerToArena$1: function(pointer) {
+ var t1 = this._team;
+ if (t1 != null)
+ return t1.add$2(0, pointer, this);
+ return $.GestureBinding__instance.GestureBinding_gestureArena.add$2(0, pointer, this);
+ },
+ startTrackingPointer$2: function(pointer, transform) {
+ var _this = this;
+ $.GestureBinding__instance.GestureBinding_pointerRouter.addRoute$3(pointer, _this.get$handleEvent(), transform);
+ _this._trackedPointers.add$1(0, pointer);
+ _this._recognizer$_entries.$indexSet(0, pointer, _this._addPointerToArena$1(pointer));
+ },
+ stopTrackingPointer$1: function(pointer) {
+ var t1 = this._trackedPointers;
+ if (t1.contains$1(0, pointer)) {
+ $.GestureBinding__instance.GestureBinding_pointerRouter.removeRoute$2(pointer, this.get$handleEvent());
+ t1.remove$1(0, pointer);
+ if (t1._collection$_length === 0)
+ this.didStopTrackingLastPointer$1(pointer);
+ }
+ },
+ stopTrackingIfPointerNoLongerDown$1: function($event) {
+ if (type$.PointerUpEvent._is($event) || type$.PointerCancelEvent._is($event))
+ this.stopTrackingPointer$1($event.get$pointer());
+ }
+ };
+ S.GestureRecognizerState.prototype = {
+ toString$0: function(_) {
+ return this._recognizer$_name;
+ }
+ };
+ S.PrimaryPointerGestureRecognizer.prototype = {
+ addAllowedPointer$1: function($event) {
+ var _this = this;
+ _this.startTrackingPointer$2($event.get$pointer(), $event.get$transform($event));
+ if (_this.state === C.GestureRecognizerState_0) {
+ _this.state = C.GestureRecognizerState_1;
+ _this.primaryPointer = $event.get$pointer();
+ _this.initialPosition = new S.OffsetPair($event.get$localPosition(), $event.get$position($event));
+ _this._recognizer$_timer = P.Timer_Timer(_this.deadline, new S.PrimaryPointerGestureRecognizer_addAllowedPointer_closure(_this, $event));
+ }
+ },
+ handleEvent$1: function($event) {
+ var isPreAcceptSlopPastTolerance, t1, isPostAcceptSlopPastTolerance, _this = this;
+ if (_this.state === C.GestureRecognizerState_1 && $event.get$pointer() == _this.primaryPointer) {
+ if (!_this._gestureAccepted)
+ isPreAcceptSlopPastTolerance = _this._getGlobalDistance$1($event) > 18;
+ else
+ isPreAcceptSlopPastTolerance = false;
+ if (_this._gestureAccepted) {
+ t1 = _this.postAcceptSlopTolerance;
+ isPostAcceptSlopPastTolerance = t1 != null && _this._getGlobalDistance$1($event) > t1;
+ } else
+ isPostAcceptSlopPastTolerance = false;
+ if (type$.PointerMoveEvent._is($event))
+ t1 = isPreAcceptSlopPastTolerance || isPostAcceptSlopPastTolerance;
+ else
+ t1 = false;
+ if (t1) {
+ _this.resolve$1(C.GestureDisposition_1);
+ t1 = _this.primaryPointer;
+ t1.toString;
+ _this.stopTrackingPointer$1(t1);
+ } else
+ _this.handlePrimaryPointer$1($event);
+ }
+ _this.stopTrackingIfPointerNoLongerDown$1($event);
+ },
+ didExceedDeadline$0: function() {
+ },
+ acceptGesture$1: function(pointer) {
+ if (pointer == this.primaryPointer) {
+ this._stopTimer$0();
+ this._gestureAccepted = true;
+ }
+ },
+ rejectGesture$1: function(pointer) {
+ var _this = this;
+ if (pointer == _this.primaryPointer && _this.state === C.GestureRecognizerState_1) {
+ _this._stopTimer$0();
+ _this.state = C.GestureRecognizerState_2;
+ }
+ },
+ didStopTrackingLastPointer$1: function(pointer) {
+ this._stopTimer$0();
+ this.state = C.GestureRecognizerState_0;
+ },
+ dispose$0: function(_) {
+ this._stopTimer$0();
+ this.super$OneSequenceGestureRecognizer$dispose(0);
+ },
+ _stopTimer$0: function() {
+ var t1 = this._recognizer$_timer;
+ if (t1 != null) {
+ t1.cancel$0(0);
+ this._recognizer$_timer = null;
+ }
+ },
+ _getGlobalDistance$1: function($event) {
+ return $event.get$position($event).$sub(0, this.initialPosition.global).get$distance();
+ }
+ };
+ S.PrimaryPointerGestureRecognizer_addAllowedPointer_closure.prototype = {
+ call$0: function() {
+ this.$this.didExceedDeadline$0();
+ return null;
+ },
+ $signature: 0
+ };
+ S.OffsetPair.prototype = {
+ $add: function(_, other) {
+ return new S.OffsetPair(this.local.$add(0, other.local), this.global.$add(0, other.global));
+ },
+ $sub: function(_, other) {
+ return new S.OffsetPair(this.local.$sub(0, other.local), this.global.$sub(0, other.global));
+ },
+ toString$0: function(_) {
+ return "OffsetPair(local: " + H.S(this.local) + ", global: " + H.S(this.global) + ")";
+ }
+ };
+ S._GestureRecognizer_GestureArenaMember_DiagnosticableTreeMixin.prototype = {};
+ N.TapDownDetails.prototype = {};
+ N.TapUpDetails.prototype = {};
+ N.BaseTapGestureRecognizer.prototype = {
+ addAllowedPointer$1: function($event) {
+ var _this = this;
+ if (_this.state === C.GestureRecognizerState_0)
+ _this._down = $event;
+ if (_this._down != null)
+ _this.super$PrimaryPointerGestureRecognizer$addAllowedPointer($event);
+ },
+ startTrackingPointer$2: function(pointer, transform) {
+ this.super$OneSequenceGestureRecognizer$startTrackingPointer(pointer, transform);
+ },
+ handlePrimaryPointer$1: function($event) {
+ var t1, t2, _this = this;
+ if (type$.PointerUpEvent._is($event)) {
+ _this._up = $event;
+ _this._checkUp$0();
+ } else if (type$.PointerCancelEvent._is($event)) {
+ _this.resolve$1(C.GestureDisposition_1);
+ if (_this._sentTapDown) {
+ t1 = _this._down;
+ t1.toString;
+ _this.handleTapCancel$3$cancel$down$reason($event, t1, "");
+ }
+ _this._tap$_reset$0();
+ } else {
+ t1 = $event.get$buttons($event);
+ t2 = _this._down;
+ if (t1 != t2.get$buttons(t2)) {
+ _this.resolve$1(C.GestureDisposition_1);
+ t1 = _this.primaryPointer;
+ t1.toString;
+ _this.stopTrackingPointer$1(t1);
+ }
+ }
+ },
+ resolve$1: function(disposition) {
+ var t1, _this = this;
+ if (_this._wonArenaForPrimaryPointer && disposition === C.GestureDisposition_1) {
+ t1 = _this._down;
+ t1.toString;
+ _this.handleTapCancel$3$cancel$down$reason(null, t1, "spontaneous");
+ _this._tap$_reset$0();
+ }
+ _this.super$OneSequenceGestureRecognizer$resolve(disposition);
+ },
+ didExceedDeadline$0: function() {
+ this._tap$_checkDown$0();
+ },
+ acceptGesture$1: function(pointer) {
+ var _this = this;
+ _this.super$PrimaryPointerGestureRecognizer$acceptGesture(pointer);
+ if (pointer == _this.primaryPointer) {
+ _this._tap$_checkDown$0();
+ _this._wonArenaForPrimaryPointer = true;
+ _this._checkUp$0();
+ }
+ },
+ rejectGesture$1: function(pointer) {
+ var t1, _this = this;
+ _this.super$PrimaryPointerGestureRecognizer$rejectGesture(pointer);
+ if (pointer == _this.primaryPointer) {
+ if (_this._sentTapDown) {
+ t1 = _this._down;
+ t1.toString;
+ _this.handleTapCancel$3$cancel$down$reason(null, t1, "forced");
+ }
+ _this._tap$_reset$0();
+ }
+ },
+ _tap$_checkDown$0: function() {
+ var t1, _this = this;
+ if (_this._sentTapDown)
+ return;
+ t1 = _this._down;
+ t1.toString;
+ _this.handleTapDown$1$down(t1);
+ _this._sentTapDown = true;
+ },
+ _checkUp$0: function() {
+ var t1, t2, _this = this;
+ if (!_this._wonArenaForPrimaryPointer || _this._up == null)
+ return;
+ t1 = _this._down;
+ t1.toString;
+ t2 = _this._up;
+ t2.toString;
+ _this.handleTapUp$2$down$up(t1, t2);
+ _this._tap$_reset$0();
+ },
+ _tap$_reset$0: function() {
+ var _this = this;
+ _this._wonArenaForPrimaryPointer = _this._sentTapDown = false;
+ _this._down = _this._up = null;
+ }
+ };
+ N.TapGestureRecognizer.prototype = {
+ isPointerAllowed$1: function($event) {
+ var _this = this;
+ switch ($event.get$buttons($event)) {
+ case 1:
+ if (_this.onTapDown == null && _this.onTap == null && _this.onTapUp == null && _this.onTapCancel == null)
+ return false;
+ break;
+ case 2:
+ return false;
+ case 4:
+ return false;
+ default:
+ return false;
+ }
+ return _this.super$GestureRecognizer$isPointerAllowed($event);
+ },
+ handleTapDown$1$down: function(down) {
+ var t2, _this = this,
+ t1 = down.get$position(down);
+ down.get$localPosition();
+ t2 = _this._pointerToKind.$index(0, down.get$pointer());
+ t2.toString;
+ switch (down.get$buttons(down)) {
+ case 1:
+ if (_this.onTapDown != null)
+ _this.invokeCallback$2("onTapDown", new N.TapGestureRecognizer_handleTapDown_closure(_this, new N.TapDownDetails(t1, t2)));
+ break;
+ case 2:
+ break;
+ case 4:
+ break;
+ }
+ },
+ handleTapUp$2$down$up: function(down, up) {
+ var _this = this,
+ t1 = up.get$kind(up),
+ t2 = up.get$position(up);
+ up.get$localPosition();
+ switch (down.get$buttons(down)) {
+ case 1:
+ if (_this.onTapUp != null)
+ _this.invokeCallback$2("onTapUp", new N.TapGestureRecognizer_handleTapUp_closure(_this, new N.TapUpDetails(t2, t1)));
+ t1 = _this.onTap;
+ if (t1 != null)
+ _this.invokeCallback$2("onTap", t1);
+ break;
+ case 2:
+ break;
+ case 4:
+ break;
+ }
+ },
+ handleTapCancel$3$cancel$down$reason: function(cancel, down, reason) {
+ var t1,
+ note = reason === "" ? reason : reason + " ";
+ switch (down.get$buttons(down)) {
+ case 1:
+ t1 = this.onTapCancel;
+ if (t1 != null)
+ this.invokeCallback$2(note + "onTapCancel", t1);
+ break;
+ case 2:
+ break;
+ case 4:
+ break;
+ }
+ }
+ };
+ N.TapGestureRecognizer_handleTapDown_closure.prototype = {
+ call$0: function() {
+ return this.$this.onTapDown.call$1(this.details);
+ },
+ $signature: 0
+ };
+ N.TapGestureRecognizer_handleTapUp_closure.prototype = {
+ call$0: function() {
+ return this.$this.onTapUp.call$1(this.details);
+ },
+ $signature: 0
+ };
+ V._CombiningGestureArenaEntry.prototype = {
+ resolve$1: function(disposition) {
+ this._combiner._team$_resolve$2(this._team$_member, disposition);
+ },
+ $isGestureArenaEntry: 1
+ };
+ V._CombiningGestureArenaMember.prototype = {
+ acceptGesture$1: function(pointer) {
+ var t1, t2, _i, member, _this = this;
+ _this._close$0();
+ if (_this._winner == null) {
+ t1 = _this._team$_owner.captain;
+ _this._winner = t1 == null ? _this._members[0] : t1;
+ }
+ for (t1 = _this._members, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ member = t1[_i];
+ if (member !== _this._winner)
+ member.rejectGesture$1(pointer);
+ }
+ _this._winner.acceptGesture$1(pointer);
+ },
+ rejectGesture$1: function(pointer) {
+ var t1, t2, _i;
+ this._close$0();
+ for (t1 = this._members, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].rejectGesture$1(pointer);
+ },
+ _close$0: function() {
+ this._resolved = true;
+ this._team$_owner._combiners.remove$1(0, this._team$_pointer);
+ },
+ _team$_resolve$2: function(member, disposition) {
+ var t1, _this = this;
+ if (_this._resolved)
+ return;
+ if (disposition === C.GestureDisposition_1) {
+ t1 = _this._members;
+ C.JSArray_methods.remove$1(t1, member);
+ member.rejectGesture$1(_this._team$_pointer);
+ if (t1.length === 0) {
+ t1 = _this._entry;
+ t1._arena._resolve$3(t1._arena$_pointer, t1._member, disposition);
+ }
+ } else {
+ if (_this._winner == null) {
+ t1 = _this._team$_owner.captain;
+ _this._winner = t1 == null ? member : t1;
+ }
+ t1 = _this._entry;
+ t1._arena._resolve$3(t1._arena$_pointer, t1._member, disposition);
+ }
+ }
+ };
+ V.GestureArenaTeam.prototype = {
+ add$2: function(_, pointer, member) {
+ var combiner = this._combiners.putIfAbsent$2(0, pointer, new V.GestureArenaTeam_add_closure(this, pointer));
+ combiner._members.push(member);
+ if (combiner._entry == null)
+ combiner._entry = $.GestureBinding__instance.GestureBinding_gestureArena.add$2(0, pointer, combiner);
+ return new V._CombiningGestureArenaEntry(combiner, member);
+ }
+ };
+ V.GestureArenaTeam_add_closure.prototype = {
+ call$0: function() {
+ return new V._CombiningGestureArenaMember(this.$this, H.setRuntimeTypeInfo([], type$.JSArray_GestureArenaMember), this.pointer);
+ },
+ $signature: 354
+ };
+ R.Velocity.prototype = {
+ $sub: function(_, other) {
+ return new R.Velocity(this.pixelsPerSecond.$sub(0, other.pixelsPerSecond));
+ },
+ $add: function(_, other) {
+ return new R.Velocity(this.pixelsPerSecond.$add(0, other.pixelsPerSecond));
+ },
+ clampMagnitude$2: function(minValue, maxValue) {
+ var t1 = this.pixelsPerSecond,
+ valueSquared = t1.get$distanceSquared();
+ if (valueSquared > maxValue * maxValue)
+ return new R.Velocity(t1.$div(0, t1.get$distance()).$mul(0, maxValue));
+ if (valueSquared < minValue * minValue)
+ return new R.Velocity(t1.$div(0, t1.get$distance()).$mul(0, minValue));
+ return this;
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof R.Velocity && other.pixelsPerSecond.$eq(0, this.pixelsPerSecond);
+ },
+ get$hashCode: function(_) {
+ var t1 = this.pixelsPerSecond;
+ return P.hashValues(t1._dx, t1._dy, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t1 = this.pixelsPerSecond;
+ return "Velocity(" + J.toStringAsFixed$1$n(t1._dx, 1) + ", " + J.toStringAsFixed$1$n(t1._dy, 1) + ")";
+ }
+ };
+ R.VelocityEstimate.prototype = {
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.pixelsPerSecond;
+ return "VelocityEstimate(" + J.toStringAsFixed$1$n(t1._dx, 1) + ", " + J.toStringAsFixed$1$n(t1._dy, 1) + "; offset: " + _this.offset.toString$0(0) + ", duration: " + _this.duration.toString$0(0) + ", confidence: " + C.JSNumber_methods.toStringAsFixed$1(_this.confidence, 1) + ")";
+ }
+ };
+ R._PointAtTime.prototype = {
+ toString$0: function(_) {
+ return "_PointAtTime(" + H.S(this.point) + " at " + this.time.toString$0(0) + ")";
+ }
+ };
+ R.VelocityTracker.prototype = {
+ addPosition$2: function(time, position) {
+ var t1 = ++this._velocity_tracker$_index;
+ if (t1 === 20)
+ t1 = this._velocity_tracker$_index = 0;
+ this._samples[t1] = new R._PointAtTime(time, position);
+ },
+ getVelocityEstimate$0: function() {
+ var newestSample, t2, oldestSample, previousSample, sampleCount, sample, t3, age, position, xFit, yFit,
+ t1 = type$.JSArray_double,
+ x = H.setRuntimeTypeInfo([], t1),
+ y = H.setRuntimeTypeInfo([], t1),
+ w = H.setRuntimeTypeInfo([], t1),
+ time = H.setRuntimeTypeInfo([], t1),
+ index = this._velocity_tracker$_index;
+ t1 = this._samples;
+ newestSample = t1[index];
+ if (newestSample == null)
+ return null;
+ t2 = newestSample.time._duration;
+ oldestSample = newestSample;
+ previousSample = oldestSample;
+ sampleCount = 0;
+ do {
+ sample = t1[index];
+ if (sample == null)
+ break;
+ t3 = sample.time._duration;
+ age = (t2 - t3) / 1000;
+ if (age > 100 || Math.abs(t3 - previousSample.time._duration) / 1000 > 40)
+ break;
+ position = sample.point;
+ x.push(position._dx);
+ y.push(position._dy);
+ w.push(1);
+ time.push(-age);
+ index = (index === 0 ? 20 : index) - 1;
+ ++sampleCount;
+ if (sampleCount < 20) {
+ oldestSample = sample;
+ previousSample = oldestSample;
+ continue;
+ } else {
+ oldestSample = sample;
+ break;
+ }
+ } while (true);
+ if (sampleCount >= 3) {
+ xFit = new B.LeastSquaresSolver(time, x, w).solve$1(2);
+ if (xFit != null) {
+ yFit = new B.LeastSquaresSolver(time, y, w).solve$1(2);
+ if (yFit != null)
+ return new R.VelocityEstimate(new P.Offset(xFit.coefficients[1] * 1000, yFit.coefficients[1] * 1000), xFit.get$confidence(xFit) * yFit.get$confidence(yFit), new P.Duration(t2 - oldestSample.time._duration), newestSample.point.$sub(0, oldestSample.point));
+ }
+ }
+ return new R.VelocityEstimate(C.Offset_0_0, 1, new P.Duration(t2 - oldestSample.time._duration), newestSample.point.$sub(0, oldestSample.point));
+ }
+ };
+ R.IOSScrollViewFlingVelocityTracker.prototype = {
+ addPosition$2: function(time, position) {
+ var t1 = (this._velocity_tracker$_index + 1) % 20;
+ this._velocity_tracker$_index = t1;
+ this._touchSamples[t1] = new R._PointAtTime(time, position);
+ },
+ _previousVelocityAt$1: function(index) {
+ var end, start,
+ t1 = this._velocity_tracker$_index + index,
+ endIndex = C.JSInt_methods.$mod(t1, 20),
+ startIndex = C.JSInt_methods.$mod(t1 - 1, 20);
+ t1 = this._touchSamples;
+ end = t1[endIndex];
+ start = t1[startIndex];
+ if (end == null || start == null)
+ return C.Offset_0_0;
+ t1 = end.time._duration - start.time._duration;
+ return t1 > 0 ? end.point.$sub(0, start.point).$mul(0, 1000).$div(0, t1 / 1000) : C.Offset_0_0;
+ },
+ getVelocityEstimate$0: function() {
+ var oldestNonNullSample, i, _this = this,
+ estimatedVelocity = _this._previousVelocityAt$1(-2).$mul(0, 0.6).$add(0, _this._previousVelocityAt$1(-1).$mul(0, 0.35)).$add(0, _this._previousVelocityAt$1(0).$mul(0, 0.05)),
+ t1 = _this._touchSamples,
+ t2 = _this._velocity_tracker$_index,
+ newestSample = t1[t2];
+ for (oldestNonNullSample = null, i = 1; i <= 20; ++i) {
+ oldestNonNullSample = t1[C.JSInt_methods.$mod(t2 + i, 20)];
+ if (oldestNonNullSample != null)
+ break;
+ }
+ if (oldestNonNullSample == null || newestSample == null)
+ return C.VelocityEstimate_MMm;
+ else
+ return new R.VelocityEstimate(estimatedVelocity, 1, new P.Duration(newestSample.time._duration - oldestNonNullSample.time._duration), newestSample.point.$sub(0, oldestNonNullSample.point));
+ }
+ };
+ S.ThemeMode.prototype = {
+ toString$0: function(_) {
+ return this._app0$_name;
+ }
+ };
+ S.MaterialApp.prototype = {
+ createState$0: function() {
+ return new S._MaterialAppState(C._StateLifecycle_0);
+ }
+ };
+ S.MaterialApp_createMaterialHeroController_closure.prototype = {
+ call$2: function(begin, end) {
+ return new D.MaterialRectArcTween(begin, end);
+ },
+ $signature: 142
+ };
+ S._MaterialScrollBehavior.prototype = {
+ getPlatform$1: function(context) {
+ return K.Theme_of(context).platform;
+ },
+ buildViewportChrome$3: function(context, child, axisDirection) {
+ switch (K.Theme_of(context).platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_5:
+ return child;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ return L.GlowingOverscrollIndicator$(axisDirection, child, K.Theme_of(context).accentColor);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ S._MaterialAppState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ var t1 = S.MaterialApp_createMaterialHeroController();
+ this.___MaterialAppState__heroController_isSet = true;
+ this.___MaterialAppState__heroController = t1;
+ },
+ get$_localizationsDelegates: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError;
+ return function $async$get$_localizationsDelegates($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$self._widget.toString;
+ $async$goto = 2;
+ return C.C__MaterialLocalizationsDelegate;
+ case 2:
+ // after yield
+ $async$goto = 3;
+ return C.C__CupertinoLocalizationsDelegate;
+ case 3:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.LocalizationsDelegate_dynamic);
+ },
+ _inspectorSelectButtonBuilder$2: function(context, onPressed) {
+ return E.FloatingActionButton$(null, C.Icon_IconData_59828_false_null, true, onPressed, null);
+ },
+ _materialBuilder$2: function(context, child) {
+ var t1, platformBrightness, useDarkTheme, highContrast, theme, _this = this, _null = null;
+ _this._widget.toString;
+ t1 = F.MediaQuery_maybeOf(context);
+ platformBrightness = t1 == null ? _null : t1.platformBrightness;
+ if (platformBrightness == null)
+ platformBrightness = C.Brightness_1;
+ useDarkTheme = platformBrightness === C.Brightness_0;
+ t1 = F.MediaQuery_maybeOf(context);
+ t1 = t1 == null ? _null : t1.highContrast;
+ highContrast = t1 === true;
+ if (useDarkTheme)
+ if (highContrast)
+ _this._widget.toString;
+ if (useDarkTheme)
+ _this._widget.toString;
+ if (highContrast)
+ _this._widget.toString;
+ t1 = _this._widget;
+ t1.toString;
+ theme = X.ThemeData_ThemeData(C.Brightness_1);
+ _this._widget.toString;
+ child.toString;
+ t1 = child;
+ return new M.ScaffoldMessenger(new K.AnimatedTheme(theme, true, t1, C.C__Linear, C.Duration_200000, _null, _null), _null);
+ },
+ _buildWidgetApp$1: function(context) {
+ var t2, _this = this, _null = null,
+ t1 = _this._widget;
+ t1 = t1.home;
+ t2 = _this.get$_localizationsDelegates();
+ _this._widget.toString;
+ return new S.WidgetsApp(_null, _null, _null, new S._MaterialAppState__buildWidgetApp_closure(), _null, _null, _null, _null, t1, C.Map_empty0, _null, _null, C.List_empty2, _this.get$_materialBuilder(), "", _null, C.TextStyle_OEU, C.MaterialColor_Map_JNwaj_4280391411, _null, t2, _null, _null, C.List_Locale_en_US, false, false, false, false, _this.get$_inspectorSelectButtonBuilder(), true, _null, _null, _null, new N.GlobalObjectKey(_this, type$.GlobalObjectKey_State_StatefulWidget));
+ },
+ build$1: function(_, context) {
+ var result = this._buildWidgetApp$1(context),
+ t1 = this.___MaterialAppState__heroController_isSet ? this.___MaterialAppState__heroController : H.throwExpression(H.LateError$fieldNI("_heroController"));
+ return new K.ScrollConfiguration(new S._MaterialScrollBehavior(), new K.HeroControllerScope(t1, result, null), null);
+ }
+ };
+ S._MaterialAppState__buildWidgetApp_closure.prototype = {
+ call$1$2: function(settings, builder, $T) {
+ return V.MaterialPageRoute$(builder, settings, $T);
+ },
+ call$2: function(settings, builder) {
+ return this.call$1$2(settings, builder, type$.dynamic);
+ },
+ $signature: 145
+ };
+ E._ToolbarContainerLayout.prototype = {
+ getConstraintsForChild$1: function(constraints) {
+ return constraints.tighten$1$height(this.toolbarHeight);
+ },
+ getSize$1: function(constraints) {
+ return new P.Size(constraints.maxWidth, this.toolbarHeight);
+ },
+ getPositionForChild$2: function(size, childSize) {
+ return new P.Offset(0, size._dy - childSize._dy);
+ },
+ shouldRelayout$1: function(oldDelegate) {
+ return this.toolbarHeight !== oldDelegate.toolbarHeight;
+ }
+ };
+ E.AppBar.prototype = {
+ _getEffectiveCenterTitle$1: function(theme) {
+ switch (theme.platform) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ return false;
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ return true;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ createState$0: function() {
+ return new E._AppBarState(C._StateLifecycle_0);
+ }
+ };
+ E._AppBarState.prototype = {
+ _handleDrawerButton$0: function() {
+ var t2,
+ t1 = this._framework$_element;
+ t1.toString;
+ t1 = M.Scaffold_of(t1);
+ t2 = t1._endDrawerKey;
+ if (t2.get$currentState() != null && t1._endDrawerOpened)
+ t2.get$currentState().close$0(0);
+ t1 = t1._drawerKey.get$currentState();
+ if (t1 != null)
+ t1.open$0(0);
+ },
+ _handleDrawerButtonEnd$0: function() {
+ var t2,
+ t1 = this._framework$_element;
+ t1.toString;
+ t1 = M.Scaffold_of(t1);
+ t2 = t1._drawerKey;
+ if (t2.get$currentState() != null && t1._drawerOpened)
+ t2.get$currentState().close$0(0);
+ t1 = t1._endDrawerKey.get$currentState();
+ if (t1 != null)
+ t1.open$0(0);
+ },
+ build$1: function(_, context) {
+ var t3, hasEndDrawer, canPop, overallIconTheme, actionsIconTheme, centerStyle, sideStyle, leading, title, namesRoute, mediaQueryData, actions, appBar, overlayStyle, _this = this, _null = null,
+ _s20_ = "Open navigation menu",
+ theme = K.Theme_of(context),
+ appBarTheme = K.Theme_of(context).appBarTheme,
+ t1 = context.findAncestorStateOfType$1$0(type$.ScaffoldState),
+ parentRoute = T.ModalRoute_of(context, type$.nullable_Object),
+ t2 = t1 == null;
+ if (t2)
+ t3 = _null;
+ else {
+ t1._widget.toString;
+ t3 = false;
+ }
+ if (t2)
+ t1 = _null;
+ else {
+ t1._widget.toString;
+ t1 = false;
+ }
+ hasEndDrawer = t1 === true;
+ if (parentRoute == null)
+ t1 = _null;
+ else
+ t1 = !parentRoute.get$isFirst() || parentRoute.get$willHandlePopInternally();
+ canPop = t1 === true;
+ _this._widget.toString;
+ overallIconTheme = appBarTheme.iconTheme;
+ if (overallIconTheme == null)
+ overallIconTheme = theme.primaryIconTheme;
+ actionsIconTheme = appBarTheme.actionsIconTheme;
+ if (actionsIconTheme == null)
+ actionsIconTheme = overallIconTheme;
+ t1 = appBarTheme.textTheme;
+ t2 = t1 == null ? _null : t1.headline6;
+ centerStyle = t2;
+ if (centerStyle == null)
+ centerStyle = theme.primaryTextTheme.headline6;
+ t1 = t1 == null ? _null : t1.bodyText2;
+ sideStyle = t1;
+ if (sideStyle == null)
+ sideStyle = theme.primaryTextTheme.bodyText2;
+ if (t3 === true) {
+ L.Localizations_of(context, C.Type_MaterialLocalizations_flR, type$.MaterialLocalizations).toString;
+ leading = B.IconButton$(_null, C.Icon_IconData_59495_false_null, _this.get$_handleDrawerButton(), _s20_);
+ } else if (!hasEndDrawer && canPop)
+ leading = C.BackButton_null;
+ else
+ leading = _null;
+ if (leading != null) {
+ _this._widget.toString;
+ leading = new T.ConstrainedBox(S.BoxConstraints$tightFor(_null, 56), leading, _null);
+ }
+ title = _this._widget.title;
+ switch (theme.platform) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ namesRoute = true;
+ break;
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ namesRoute = _null;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ title = T.Semantics$(_null, new E._AppBarTitleBox(title, _null), false, _null, _null, false, _null, _null, true, _null, _null, _null, namesRoute, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ centerStyle.toString;
+ title = L.DefaultTextStyle$(title, _null, _null, C.TextOverflow_2, false, centerStyle, _null, _null, C.TextWidthBasis_0);
+ mediaQueryData = context.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data;
+ title = new F.MediaQuery(mediaQueryData.copyWith$1$textScaleFactor(Math.min(mediaQueryData.textScaleFactor, 1.34)), title, _null);
+ t1 = _this._widget.actions;
+ if (t1 != null && true) {
+ t1.toString;
+ actions = T.Row$(t1, C.CrossAxisAlignment_3, C.MainAxisAlignment_0, C.MainAxisSize_0);
+ } else if (hasEndDrawer) {
+ L.Localizations_of(context, C.Type_MaterialLocalizations_flR, type$.MaterialLocalizations).toString;
+ actions = B.IconButton$(_null, C.Icon_IconData_59495_false_null, _this.get$_handleDrawerButtonEnd(), _s20_);
+ } else
+ actions = _null;
+ if (actions != null)
+ actions = Y.IconTheme_merge(actions, actionsIconTheme);
+ t1 = _this._widget._getEffectiveCenterTitle$1(theme);
+ _this._widget.toString;
+ t2 = appBarTheme.titleSpacing;
+ if (t2 == null)
+ t2 = 16;
+ sideStyle.toString;
+ t2 = Y.IconTheme_merge(L.DefaultTextStyle$(new E.NavigationToolbar(leading, title, actions, t1, t2, _null), _null, _null, C.TextOverflow_0, true, sideStyle, _null, _null, C.TextWidthBasis_0), overallIconTheme);
+ appBar = Q.SafeArea$(false, new T.ClipRect(new T.CustomSingleChildLayout(new E._ToolbarContainerLayout(56), t2, _null), _null), C.EdgeInsets_0_0_0_0, true);
+ overlayStyle = theme.primaryColorBrightness === C.Brightness_0 ? C.SystemUiOverlayStyle_4EL : C.SystemUiOverlayStyle_yjH;
+ t1 = appBarTheme.color;
+ if (t1 == null)
+ t1 = theme.primaryColor;
+ t2 = appBarTheme.elevation;
+ if (t2 == null)
+ t2 = 4;
+ t3 = appBarTheme.shadowColor;
+ if (t3 == null)
+ t3 = C.Color_4278190080;
+ return T.Semantics$(_null, new X.AnnotatedRegion(overlayStyle, M.Material$(C.Duration_200000, _null, T.Semantics$(_null, new T.Align(C.Alignment_0_m1, _null, _null, appBar, _null), false, _null, _null, true, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null), C.Clip_0, t1, t2, _null, t3, _null, _null, C.MaterialType_0), _null, type$.AnnotatedRegion_SystemUiOverlayStyle), true, _null, _null, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ }
+ };
+ E._AppBarTitleBox.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ t1 = new E._RenderAppBarTitleBox(C.Alignment_0_0, t1.textDirection, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ renderObject.set$textDirection(0, t1.textDirection);
+ }
+ };
+ E._RenderAppBarTitleBox.prototype = {
+ performLayout$0: function() {
+ var t2, _this = this,
+ t1 = type$.BoxConstraints,
+ innerConstraints = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).copyWith$1$maxHeight(1 / 0);
+ _this.RenderObjectWithChildMixin__child.layout$2$parentUsesSize(0, innerConstraints, true);
+ t1 = t1._as(K.RenderObject.prototype.get$constraints.call(_this));
+ t2 = _this.RenderObjectWithChildMixin__child._size;
+ t2.toString;
+ _this._size = t1.constrain$1(t2);
+ _this.alignChild$0();
+ }
+ };
+ V.AppBarTheme.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.brightness, _this.color, _this.elevation, _this.shadowColor, _this.iconTheme, _this.actionsIconTheme, _this.textTheme, _this.centerTitle, _this.titleSpacing, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof V.AppBarTheme)
+ if (J.$eq$(other.color, _this.color))
+ if (other.elevation == _this.elevation)
+ if (J.$eq$(other.shadowColor, _this.shadowColor))
+ if (J.$eq$(other.iconTheme, _this.iconTheme))
+ if (J.$eq$(other.actionsIconTheme, _this.actionsIconTheme))
+ if (J.$eq$(other.textTheme, _this.textTheme))
+ t1 = other.titleSpacing == _this.titleSpacing;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ V._AppBarTheme_Object_Diagnosticable.prototype = {};
+ D.MaterialPointArcTween.prototype = {
+ _initialize$0: function() {
+ var t2, delta, deltaX, deltaY, distanceFromAtoB, t3, t4, c, t5, t6, t7, t8, _this = this,
+ t1 = _this.begin;
+ t1.toString;
+ t2 = _this.end;
+ t2.toString;
+ delta = t2.$sub(0, t1);
+ deltaX = Math.abs(delta._dx);
+ deltaY = Math.abs(delta._dy);
+ distanceFromAtoB = delta.get$distance();
+ t3 = t2._dx;
+ t4 = t1._dy;
+ c = new P.Offset(t3, t4);
+ t5 = new D.MaterialPointArcTween__initialize_sweepAngle(_this, distanceFromAtoB);
+ if (deltaX > 2 && deltaY > 2) {
+ t6 = distanceFromAtoB * distanceFromAtoB;
+ t7 = t1._dx;
+ t8 = t2._dy;
+ if (deltaX < deltaY) {
+ t1 = t6 / c.$sub(0, t1).get$distance() / 2;
+ _this._radius = t1;
+ _this._center = new P.Offset(t3 + t1 * J.get$sign$in(t7 - t3), t8);
+ if (t7 < t3) {
+ _this._beginAngle = t5.call$0() * J.get$sign$in(t4 - t8);
+ _this._endAngle = 0;
+ } else {
+ _this._beginAngle = 3.141592653589793 + t5.call$0() * J.get$sign$in(t8 - t4);
+ _this._endAngle = 3.141592653589793;
+ }
+ } else {
+ _this._radius = t6 / c.$sub(0, t2).get$distance() / 2;
+ t1 = J.get$sign$in(t8 - t4);
+ t2 = _this._radius;
+ t2.toString;
+ _this._center = new P.Offset(t7, t4 + t1 * t2);
+ if (t4 < t8) {
+ _this._beginAngle = -1.5707963267948966;
+ _this._endAngle = -1.5707963267948966 + t5.call$0() * J.get$sign$in(t3 - t7);
+ } else {
+ _this._beginAngle = 1.5707963267948966;
+ _this._endAngle = 1.5707963267948966 + t5.call$0() * J.get$sign$in(t7 - t3);
+ }
+ }
+ } else
+ _this._endAngle = _this._beginAngle = null;
+ _this._arc$_dirty = false;
+ },
+ get$center: function() {
+ var _this = this;
+ if (_this.begin == null || _this.end == null)
+ return null;
+ if (_this._arc$_dirty)
+ _this._initialize$0();
+ return _this._center;
+ },
+ get$radius: function() {
+ var _this = this;
+ if (_this.begin == null || _this.end == null)
+ return null;
+ if (_this._arc$_dirty)
+ _this._initialize$0();
+ return _this._radius;
+ },
+ get$beginAngle: function() {
+ var _this = this;
+ if (_this.begin == null || _this.end == null)
+ return null;
+ if (_this._arc$_dirty)
+ _this._initialize$0();
+ return _this._beginAngle;
+ },
+ get$endAngle: function() {
+ var _this = this;
+ if (_this.begin == null || _this.end == null)
+ return null;
+ if (_this._arc$_dirty)
+ _this._initialize$0();
+ return _this._beginAngle;
+ },
+ set$begin: function(value) {
+ if (!J.$eq$(value, this.begin)) {
+ this.begin = value;
+ this._arc$_dirty = true;
+ }
+ },
+ set$end: function(_, value) {
+ if (!J.$eq$(value, this.end)) {
+ this.end = value;
+ this._arc$_dirty = true;
+ }
+ },
+ lerp$1: function(t) {
+ var t1, t2, t3, t4, _this = this;
+ if (_this._arc$_dirty)
+ _this._initialize$0();
+ if (t === 0) {
+ t1 = _this.begin;
+ t1.toString;
+ return t1;
+ }
+ if (t === 1) {
+ t1 = _this.end;
+ t1.toString;
+ return t1;
+ }
+ t1 = _this._beginAngle;
+ if (t1 == null || _this._endAngle == null) {
+ t1 = P.Offset_lerp(_this.begin, _this.end, t);
+ t1.toString;
+ return t1;
+ }
+ t1 = P.lerpDouble(t1, _this._endAngle, t);
+ t1.toString;
+ t2 = Math.cos(t1);
+ t3 = _this._radius;
+ t3.toString;
+ t1 = Math.sin(t1);
+ t4 = _this._radius;
+ t4.toString;
+ return _this._center.$add(0, new P.Offset(t2 * t3, t1 * t4));
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "MaterialPointArcTween(" + H.S(_this.begin) + " \u2192 " + H.S(_this.end) + "; center=" + H.S(_this.get$center()) + ", radius=" + H.S(_this.get$radius()) + ", beginAngle=" + H.S(_this.get$beginAngle()) + ", endAngle=" + H.S(_this.get$endAngle()) + ")";
+ }
+ };
+ D.MaterialPointArcTween__initialize_sweepAngle.prototype = {
+ call$0: function() {
+ var t1 = this.$this._radius;
+ t1.toString;
+ return 2 * Math.asin(this.distanceFromAtoB / (2 * t1));
+ },
+ $signature: 18
+ };
+ D._CornerId.prototype = {
+ toString$0: function(_) {
+ return this._arc$_name;
+ }
+ };
+ D._Diagonal.prototype = {};
+ D._maxBy__maxValue_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._maxValue_isSet = true;
+ return t2.maxValue = t1;
+ },
+ $signature: function() {
+ return this.T._eval$1("@(0)");
+ }
+ };
+ D._maxBy__maxValue_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._maxValue_isSet ? t1.maxValue : H.throwExpression(H.LateError$localNI("maxValue"));
+ },
+ $signature: function() {
+ return this.T._eval$1("0()");
+ }
+ };
+ D.MaterialRectArcTween.prototype = {
+ _initialize$0: function() {
+ var t2, t3, _this = this,
+ diagonal = D._maxBy(C.List_yvP, new D.MaterialRectArcTween__initialize_closure(_this, _this.end.get$center().$sub(0, _this.begin.get$center())), type$._Diagonal),
+ t1 = _this.begin;
+ t1.toString;
+ t2 = diagonal.beginId;
+ t1 = _this._cornerFor$2(t1, t2);
+ t3 = _this.end;
+ t3.toString;
+ t2 = _this._cornerFor$2(t3, t2);
+ _this.__MaterialRectArcTween__beginArc_isSet = true;
+ _this.__MaterialRectArcTween__beginArc = new D.MaterialPointArcTween(t1, t2);
+ t2 = _this.begin;
+ t2.toString;
+ t1 = diagonal.endId;
+ t2 = _this._cornerFor$2(t2, t1);
+ t3 = _this.end;
+ t3.toString;
+ t1 = _this._cornerFor$2(t3, t1);
+ _this.__MaterialRectArcTween__endArc_isSet = true;
+ _this.__MaterialRectArcTween__endArc = new D.MaterialPointArcTween(t2, t1);
+ _this._arc$_dirty = false;
+ },
+ _cornerFor$2: function(rect, id) {
+ switch (id) {
+ case C._CornerId_0:
+ return new P.Offset(rect.left, rect.top);
+ case C._CornerId_1:
+ return new P.Offset(rect.right, rect.top);
+ case C._CornerId_2:
+ return new P.Offset(rect.left, rect.bottom);
+ case C._CornerId_3:
+ return new P.Offset(rect.right, rect.bottom);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$beginArc: function() {
+ var _this = this;
+ if (_this.begin == null)
+ return null;
+ if (_this._arc$_dirty)
+ _this._initialize$0();
+ return _this.get$_beginArc();
+ },
+ get$_beginArc: function() {
+ return this.__MaterialRectArcTween__beginArc_isSet ? this.__MaterialRectArcTween__beginArc : H.throwExpression(H.LateError$fieldNI("_beginArc"));
+ },
+ get$endArc: function() {
+ var _this = this;
+ if (_this.end == null)
+ return null;
+ if (_this._arc$_dirty)
+ _this._initialize$0();
+ return _this.get$_endArc();
+ },
+ get$_endArc: function() {
+ return this.__MaterialRectArcTween__endArc_isSet ? this.__MaterialRectArcTween__endArc : H.throwExpression(H.LateError$fieldNI("_endArc"));
+ },
+ set$begin: function(value) {
+ if (!J.$eq$(value, this.begin)) {
+ this.begin = value;
+ this._arc$_dirty = true;
+ }
+ },
+ set$end: function(_, value) {
+ if (!J.$eq$(value, this.end)) {
+ this.end = value;
+ this._arc$_dirty = true;
+ }
+ },
+ lerp$1: function(t) {
+ var t1, _this = this;
+ if (_this._arc$_dirty)
+ _this._initialize$0();
+ if (t === 0) {
+ t1 = _this.begin;
+ t1.toString;
+ return t1;
+ }
+ if (t === 1) {
+ t1 = _this.end;
+ t1.toString;
+ return t1;
+ }
+ return P.Rect$fromPoints(_this.get$_beginArc().lerp$1(t), _this.get$_endArc().lerp$1(t));
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "MaterialRectArcTween(" + H.S(_this.begin) + " \u2192 " + H.S(_this.end) + "; beginArc=" + H.S(_this.get$beginArc()) + ", endArc=" + H.S(_this.get$endArc()) + ")";
+ }
+ };
+ D.MaterialRectArcTween__initialize_closure.prototype = {
+ call$1: function(d) {
+ var t4, delta, $length,
+ t1 = this.$this,
+ t2 = this.centersVector,
+ t3 = t1.begin;
+ t3.toString;
+ t3 = t1._cornerFor$2(t3, d.endId);
+ t4 = t1.begin;
+ t4.toString;
+ delta = t3.$sub(0, t1._cornerFor$2(t4, d.beginId));
+ $length = delta.get$distance();
+ return t2._dx * delta._dx / $length + t2._dy * delta._dy / $length;
+ },
+ $signature: 147
+ };
+ R.BackButtonIcon.prototype = {
+ build$1: function(_, context) {
+ return L.Icon$(R.BackButtonIcon__getIconData(K.Theme_of(context).platform));
+ }
+ };
+ R.BackButton.prototype = {
+ build$1: function(_, context) {
+ L.Localizations_of(context, C.Type_MaterialLocalizations_flR, type$.MaterialLocalizations).toString;
+ return B.IconButton$(null, C.BackButtonIcon_null, new R.BackButton_build_closure(this, context), "Back");
+ }
+ };
+ R.BackButton_build_closure.prototype = {
+ call$0: function() {
+ K.Navigator_maybePop(this.context);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ Q.MaterialBannerThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.backgroundColor, _this.contentTextStyle, _this.padding, _this.leadingPadding, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof Q.MaterialBannerThemeData && J.$eq$(other.backgroundColor, _this.backgroundColor) && J.$eq$(other.contentTextStyle, _this.contentTextStyle) && J.$eq$(other.padding, _this.padding) && J.$eq$(other.leadingPadding, _this.leadingPadding);
+ }
+ };
+ Q._MaterialBannerThemeData_Object_Diagnosticable.prototype = {};
+ D.BottomAppBarTheme.prototype = {
+ get$hashCode: function(_) {
+ return P.hashValues(this.color, this.elevation, this.shape, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof D.BottomAppBarTheme && J.$eq$(other.color, _this.color) && other.elevation == _this.elevation && true;
+ }
+ };
+ D._BottomAppBarTheme_Object_Diagnosticable.prototype = {};
+ M.BottomNavigationBarThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.backgroundColor, _this.elevation, _this.selectedIconTheme, _this.unselectedIconTheme, _this.selectedItemColor, _this.unselectedItemColor, _this.selectedLabelStyle, _this.unselectedLabelStyle, _this.showSelectedLabels, _this.showUnselectedLabels, _this.type, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof M.BottomNavigationBarThemeData)
+ if (J.$eq$(other.backgroundColor, _this.backgroundColor))
+ if (other.elevation == _this.elevation)
+ if (J.$eq$(other.selectedIconTheme, _this.selectedIconTheme))
+ if (J.$eq$(other.unselectedIconTheme, _this.unselectedIconTheme))
+ if (J.$eq$(other.selectedItemColor, _this.selectedItemColor))
+ if (J.$eq$(other.unselectedItemColor, _this.unselectedItemColor))
+ if (J.$eq$(other.selectedLabelStyle, _this.selectedLabelStyle))
+ if (J.$eq$(other.unselectedLabelStyle, _this.unselectedLabelStyle))
+ t1 = true;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ M._BottomNavigationBarThemeData_Object_Diagnosticable.prototype = {};
+ X.BottomSheetThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.backgroundColor, _this.elevation, _this.modalBackgroundColor, _this.modalElevation, _this.shape, _this.clipBehavior, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof X.BottomSheetThemeData && J.$eq$(other.backgroundColor, _this.backgroundColor) && other.elevation == _this.elevation && J.$eq$(other.modalBackgroundColor, _this.modalBackgroundColor) && other.modalElevation == _this.modalElevation && J.$eq$(other.shape, _this.shape) && true;
+ }
+ };
+ X._BottomSheetThemeData_Object_Diagnosticable.prototype = {};
+ Z.RawMaterialButton.prototype = {
+ get$enabled: function(_) {
+ return true;
+ },
+ createState$0: function() {
+ return new Z._RawMaterialButtonState(P.LinkedHashSet_LinkedHashSet$_empty(type$.MaterialState), C._StateLifecycle_0);
+ }
+ };
+ Z._RawMaterialButtonState.prototype = {
+ _handleHighlightChanged$1: function(value) {
+ if (this._states.contains$1(0, C.MaterialState_2) !== value)
+ this.setState$1(new Z._RawMaterialButtonState__handleHighlightChanged_closure(this, value));
+ },
+ _handleHoveredChanged$1: function(value) {
+ if (this._states.contains$1(0, C.MaterialState_0) !== value)
+ this.setState$1(new Z._RawMaterialButtonState__handleHoveredChanged_closure(this, value));
+ },
+ _handleFocusedChanged$1: function(value) {
+ if (this._states.contains$1(0, C.MaterialState_1) !== value)
+ this.setState$1(new Z._RawMaterialButtonState__handleFocusedChanged_closure(this, value));
+ },
+ initState$0: function() {
+ var t1, t2;
+ this.super$State$initState();
+ t1 = this._widget;
+ t2 = this._states;
+ if (!t1.get$enabled(t1))
+ t2.add$1(0, C.MaterialState_5);
+ else
+ t2.remove$1(0, C.MaterialState_5);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, t2, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ t1 = _this._widget;
+ t2 = _this._states;
+ if (!t1.get$enabled(t1))
+ t2.add$1(0, C.MaterialState_5);
+ else
+ t2.remove$1(0, C.MaterialState_5);
+ if (t2.contains$1(0, C.MaterialState_5) && t2.contains$1(0, C.MaterialState_2))
+ _this._handleHighlightChanged$1(false);
+ },
+ get$_effectiveElevation: function() {
+ var _this = this,
+ t1 = _this._states;
+ if (t1.contains$1(0, C.MaterialState_5))
+ return _this._widget.disabledElevation;
+ if (t1.contains$1(0, C.MaterialState_2))
+ return _this._widget.highlightElevation;
+ if (t1.contains$1(0, C.MaterialState_0))
+ return _this._widget.hoverElevation;
+ if (t1.contains$1(0, C.MaterialState_1))
+ return _this._widget.focusElevation;
+ return _this._widget.elevation;
+ },
+ build$1: function(_, context) {
+ var densityAdjustment, effectiveConstraints, effectiveMouseCursor, padding, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, minSize, _this = this, _null = null,
+ t1 = _this._widget.textStyle,
+ t2 = _this._states,
+ effectiveTextColor = V.MaterialStateProperty_resolveAs(t1.color, t2, type$.nullable_Color),
+ effectiveShape = V.MaterialStateProperty_resolveAs(_this._widget.shape, t2, type$.nullable_ShapeBorder);
+ t1 = _this._widget.visualDensity;
+ densityAdjustment = new P.Offset(t1.horizontal, t1.vertical).$mul(0, 4);
+ t1 = _this._widget;
+ effectiveConstraints = t1.visualDensity.effectiveConstraints$1(t1.constraints);
+ _this._widget.toString;
+ effectiveMouseCursor = V.MaterialStateProperty_resolveAs(C._EnabledAndDisabledMouseCursor_SystemMouseCursor_click_clickable, t2, type$.nullable_MouseCursor);
+ t1 = densityAdjustment._dx;
+ t2 = densityAdjustment._dy;
+ padding = _this._widget.padding.add$1(0, new V.EdgeInsets(t1, t2, t1, t2)).clamp$2(0, C.EdgeInsets_0_0_0_0, C._MixedEdgeInsets_QWq);
+ t3 = _this.get$_effectiveElevation();
+ t4 = _this._widget.textStyle.copyWith$1$color(effectiveTextColor);
+ t5 = _this._widget;
+ t6 = t5.fillColor;
+ t7 = t6 == null ? C.MaterialType_4 : C.MaterialType_3;
+ t8 = t5.animationDuration;
+ t9 = t5.clipBehavior;
+ t10 = t5.focusNode;
+ t5 = t5.get$enabled(t5);
+ t11 = _this._widget;
+ t12 = t11.splashColor;
+ t13 = t11.highlightColor;
+ t14 = t11.focusColor;
+ t15 = t11.hoverColor;
+ t16 = t11.onPressed;
+ t17 = t11.onLongPress;
+ t7 = M.Material$(t8, _null, R.InkWell$(false, t5, Y.IconTheme_merge(M.Container$(_null, T.Center$(t11.child, 1, 1), _null, _null, _null, _null, _null, padding, _null), new T.IconThemeData(effectiveTextColor, _null, _null)), effectiveShape, true, t14, t10, t13, t15, effectiveMouseCursor, _this.get$_handleFocusedChanged(), _this.get$_handleHighlightChanged(), _this.get$_handleHoveredChanged(), t17, t16, _null, t12, _null), t9, t6, t3, _null, _null, effectiveShape, t4, t7);
+ switch (t11.materialTapTargetSize) {
+ case C.MaterialTapTargetSize_0:
+ minSize = new P.Size(48 + t1, 48 + t2);
+ break;
+ case C.MaterialTapTargetSize_1:
+ minSize = C.Size_0_0;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return T.Semantics$(true, new Z._InputPadding(minSize, new T.ConstrainedBox(effectiveConstraints, t7, _null), _null), true, _null, t11.get$enabled(t11), false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ }
+ };
+ Z._RawMaterialButtonState__handleHighlightChanged_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ t2 = t1._states;
+ if (this.value)
+ t2.add$1(0, C.MaterialState_2);
+ else
+ t2.remove$1(0, C.MaterialState_2);
+ t1._widget.toString;
+ },
+ $signature: 0
+ };
+ Z._RawMaterialButtonState__handleHoveredChanged_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this._states;
+ if (this.value)
+ t1.add$1(0, C.MaterialState_0);
+ else
+ t1.remove$1(0, C.MaterialState_0);
+ },
+ $signature: 0
+ };
+ Z._RawMaterialButtonState__handleFocusedChanged_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this._states;
+ if (this.value)
+ t1.add$1(0, C.MaterialState_1);
+ else
+ t1.remove$1(0, C.MaterialState_1);
+ },
+ $signature: 0
+ };
+ Z._InputPadding.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new Z._RenderInputPadding(this.minSize, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$minSize(this.minSize);
+ }
+ };
+ Z._RenderInputPadding.prototype = {
+ set$minSize: function(value) {
+ if (this._minSize.$eq(0, value))
+ return;
+ this._minSize = value;
+ this.markNeedsLayout$0();
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t2,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t1 = t1._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t1.get$computeMinIntrinsicWidth());
+ t2 = this._minSize;
+ return Math.max(H.checkNum(t1), H.checkNum(t2._dx));
+ }
+ return 0;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t2,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t1 = t1._computeIntrinsicDimension$3(C._IntrinsicDimension_2, width, t1.get$computeMinIntrinsicHeight());
+ t2 = this._minSize;
+ return Math.max(H.checkNum(t1), H.checkNum(t2._dy));
+ }
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t2,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t1 = t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth());
+ t2 = this._minSize;
+ return Math.max(H.checkNum(t1), H.checkNum(t2._dx));
+ }
+ return 0;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ var t2,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t1 = t1._computeIntrinsicDimension$3(C._IntrinsicDimension_3, width, t1.get$computeMaxIntrinsicHeight());
+ t2 = this._minSize;
+ return Math.max(H.checkNum(t1), H.checkNum(t2._dy));
+ }
+ return 0;
+ },
+ performLayout$0: function() {
+ var t2, t3, t4, height, width, _this = this,
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t2 = type$.BoxConstraints;
+ t1.layout$2$parentUsesSize(0, t2._as(K.RenderObject.prototype.get$constraints.call(_this)), true);
+ t1 = _this.RenderObjectWithChildMixin__child._size;
+ t3 = t1._dx;
+ t4 = _this._minSize;
+ height = Math.max(H.checkNum(t3), H.checkNum(t4._dx));
+ width = Math.max(H.checkNum(t1._dy), H.checkNum(t4._dy));
+ t2 = t2._as(K.RenderObject.prototype.get$constraints.call(_this)).constrain$1(new P.Size(height, width));
+ _this._size = t2;
+ t4 = _this.RenderObjectWithChildMixin__child;
+ t1 = t4.parentData;
+ t1.toString;
+ type$.BoxParentData._as(t1);
+ t4 = t4._size;
+ t4.toString;
+ t1.offset = C.Alignment_0_0.alongOffset$1(type$.Offset._as(t2.$sub(0, t4)));
+ } else
+ _this._size = C.Size_0_0;
+ },
+ hitTest$2$position: function(result, position) {
+ var center;
+ if (this.super$RenderBox$hitTest(result, position))
+ return true;
+ center = this.RenderObjectWithChildMixin__child._size.center$1(C.Offset_0_0);
+ return result.addWithRawTransform$3$hitTest$position$transform(new Z._RenderInputPadding_hitTest_closure(this, center), center, T.MatrixUtils_forceToPoint(center));
+ }
+ };
+ Z._RenderInputPadding_hitTest_closure.prototype = {
+ call$2: function(result, position) {
+ return this.$this.RenderObjectWithChildMixin__child.hitTest$2$position(result, this.center);
+ },
+ $signature: 23
+ };
+ K.ButtonBar.prototype = {
+ build$1: function(_, context) {
+ var t1, barTheme, t2, t3, buttonTheme, paddingUnit, child, _null = null,
+ parentButtonTheme = M.ButtonTheme_of(context);
+ context.dependOnInheritedWidgetOfExactType$1$0(type$.ButtonBarTheme);
+ t1 = K.Theme_of(context);
+ barTheme = t1.buttonBarTheme;
+ barTheme.toString;
+ t1 = barTheme.buttonMinWidth;
+ if (t1 == null)
+ t1 = 64;
+ t2 = barTheme.buttonHeight;
+ if (t2 == null)
+ t2 = 36;
+ t3 = barTheme.buttonPadding;
+ if (t3 == null)
+ t3 = C.EdgeInsets_8_0_8_0;
+ barTheme.toString;
+ barTheme.toString;
+ buttonTheme = parentButtonTheme.copyWith$6$alignedDropdown$height$layoutBehavior$minWidth$padding$textTheme(false, t2, C.ButtonBarLayoutBehavior_1, t1, t3, C.ButtonTextTheme_2);
+ paddingUnit = buttonTheme.get$padding(buttonTheme).get$horizontal() / 4;
+ barTheme.toString;
+ barTheme.toString;
+ barTheme.toString;
+ t1 = this.children;
+ t1.toString;
+ t2 = H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,Widget>");
+ child = M.ButtonTheme$fromButtonThemeData(new K._ButtonBarRow(this.overflowButtonSpacing, C.Axis_0, C.MainAxisAlignment_1, C.MainAxisSize_1, C.CrossAxisAlignment_2, _null, C.VerticalDirection_1, _null, P.List_List$of(new H.MappedListIterable(t1, new K.ButtonBar_build_closure(paddingUnit), t2), true, t2._eval$1("ListIterable.E")), _null), buttonTheme);
+ switch (buttonTheme.layoutBehavior) {
+ case C.ButtonBarLayoutBehavior_1:
+ t1 = 2 * paddingUnit;
+ return new T.Padding(new V.EdgeInsets(paddingUnit, t1, paddingUnit, t1), child, _null);
+ case C.ButtonBarLayoutBehavior_0:
+ return M.Container$(C.Alignment_0_0, child, _null, C.BoxConstraints_mlX1, _null, _null, _null, new V.EdgeInsets(paddingUnit, 0, paddingUnit, 0), _null);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ K.ButtonBar_build_closure.prototype = {
+ call$1: function(child) {
+ var t1 = this.paddingUnit;
+ return new T.Padding(new V.EdgeInsets(t1, 0, t1, 0), child, null);
+ },
+ $signature: 151
+ };
+ K._ButtonBarRow.prototype = {
+ createRenderObject$1: function(context) {
+ var _this = this, _null = null,
+ t1 = _this.getEffectiveTextDirection$1(context);
+ t1.toString;
+ t1 = new K._RenderButtonBarRow(_this.overflowButtonSpacing, _this.direction, _this.mainAxisAlignment, _this.mainAxisSize, _this.crossAxisAlignment, t1, _this.verticalDirection, _this.textBaseline, C.Clip_0, P.List_List$filled(4, new U.TextPainter(_null, C.TextAlign_4, C.TextDirection_1, 1, _null, _null, _null, _null, C.TextWidthBasis_0, _null), false, type$.TextPainter), true, 0, _null, _null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.addAll$1(0, _null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var _this = this;
+ renderObject.set$direction(0, _this.direction);
+ renderObject.set$mainAxisAlignment(_this.mainAxisAlignment);
+ renderObject.set$mainAxisSize(_this.mainAxisSize);
+ renderObject.set$crossAxisAlignment(_this.crossAxisAlignment);
+ renderObject.set$textDirection(0, _this.getEffectiveTextDirection$1(context));
+ renderObject.set$verticalDirection(_this.verticalDirection);
+ renderObject.set$textBaseline(0, _this.textBaseline);
+ renderObject.overflowButtonSpacing = _this.overflowButtonSpacing;
+ }
+ };
+ K._RenderButtonBarRow.prototype = {
+ get$constraints: function() {
+ if (this._hasCheckedLayoutWidth)
+ return S.RenderBox.prototype.get$constraints.call(this);
+ return S.RenderBox.prototype.get$constraints.call(this).copyWith$1$maxWidth(1 / 0);
+ },
+ performLayout$0: function() {
+ var childConstraints, child, t1, currentHeight, t2, t3, _this = this,
+ _s80_ = string$.x60null_c;
+ _this._hasCheckedLayoutWidth = false;
+ _this.super$RenderFlex$performLayout();
+ _this._hasCheckedLayoutWidth = true;
+ if (_this._size._dx <= _this.get$constraints().maxWidth)
+ _this.super$RenderFlex$performLayout();
+ else {
+ childConstraints = _this.get$constraints().copyWith$1$minWidth(0);
+ switch (_this._verticalDirection) {
+ case C.VerticalDirection_1:
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ break;
+ case C.VerticalDirection_0:
+ child = _this.ContainerRenderObjectMixin__lastChild;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ for (t1 = type$.FlexParentData, currentHeight = 0; child != null;) {
+ t2 = child.parentData;
+ t2.toString;
+ t1._as(t2);
+ child.layout$2$parentUsesSize(0, childConstraints, true);
+ t3 = _this._flex$_textDirection;
+ t3.toString;
+ switch (t3) {
+ case C.TextDirection_1:
+ switch (_this._mainAxisAlignment) {
+ case C.MainAxisAlignment_2:
+ t2.offset = new P.Offset((_this.get$constraints().maxWidth - child._size._dx) / 2, currentHeight);
+ break;
+ case C.MainAxisAlignment_1:
+ t2.offset = new P.Offset(_this.get$constraints().maxWidth - child._size._dx, currentHeight);
+ break;
+ default:
+ t2.offset = new P.Offset(0, currentHeight);
+ break;
+ }
+ break;
+ case C.TextDirection_0:
+ switch (_this._mainAxisAlignment) {
+ case C.MainAxisAlignment_2:
+ t2.offset = new P.Offset(_this.get$constraints().maxWidth / 2 - child._size._dx / 2, currentHeight);
+ break;
+ case C.MainAxisAlignment_1:
+ t2.offset = new P.Offset(0, currentHeight);
+ break;
+ default:
+ t2.offset = new P.Offset(_this.get$constraints().maxWidth - child._size._dx, currentHeight);
+ break;
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ currentHeight += child._size._dy;
+ switch (_this._verticalDirection) {
+ case C.VerticalDirection_1:
+ child = t2.ContainerParentDataMixin_nextSibling;
+ break;
+ case C.VerticalDirection_0:
+ child = t2.ContainerParentDataMixin_previousSibling;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ }
+ _this._size = _this.get$constraints().constrain$1(new P.Size(_this.get$constraints().maxWidth, currentHeight));
+ }
+ }
+ };
+ M.ButtonBarThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.alignment, _this.mainAxisSize, _this.buttonTextTheme, _this.buttonMinWidth, _this.buttonHeight, _this.buttonPadding, _this.buttonAlignedDropdown, _this.layoutBehavior, _this.overflowDirection, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof M.ButtonBarThemeData)
+ if (other.buttonMinWidth == _this.buttonMinWidth)
+ if (other.buttonHeight == _this.buttonHeight)
+ if (J.$eq$(other.buttonPadding, _this.buttonPadding))
+ t1 = true;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ M._ButtonBarThemeData_Object_Diagnosticable.prototype = {};
+ A.ButtonStyle.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.textStyle, _this.backgroundColor, _this.foregroundColor, _this.overlayColor, _this.shadowColor, _this.elevation, _this.padding, _this.minimumSize, _this.side, _this.shape, _this.mouseCursor, _this.visualDensity, _this.tapTargetSize, _this.animationDuration, _this.enableFeedback, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof A.ButtonStyle && other.textStyle == _this.textStyle && other.backgroundColor == _this.backgroundColor && other.foregroundColor == _this.foregroundColor && other.overlayColor == _this.overlayColor && other.shadowColor == _this.shadowColor && other.elevation == _this.elevation && other.padding == _this.padding && other.minimumSize == _this.minimumSize && other.side == _this.side && other.shape == _this.shape && other.mouseCursor == _this.mouseCursor && J.$eq$(other.visualDensity, _this.visualDensity) && other.tapTargetSize == _this.tapTargetSize && J.$eq$(other.animationDuration, _this.animationDuration) && other.enableFeedback == _this.enableFeedback;
+ }
+ };
+ A._LerpProperties0.prototype = {$isMaterialStateProperty: 1};
+ A._LerpSides.prototype = {$isMaterialStateProperty: 1};
+ A._LerpShapes.prototype = {$isMaterialStateProperty: 1};
+ A._ButtonStyle_Object_Diagnosticable.prototype = {};
+ M.ButtonTextTheme.prototype = {
+ toString$0: function(_) {
+ return this._button_theme$_name;
+ }
+ };
+ M.ButtonBarLayoutBehavior.prototype = {
+ toString$0: function(_) {
+ return this._button_theme$_name;
+ }
+ };
+ M.ButtonTheme.prototype = {
+ wrap$2: function(_, context, child) {
+ return M.ButtonTheme$fromButtonThemeData(child, this.data);
+ },
+ updateShouldNotify$1: function(oldWidget) {
+ return !this.data.$eq(0, oldWidget.data);
+ }
+ };
+ M.ButtonThemeData.prototype = {
+ get$padding: function(_) {
+ var t1 = this._padding;
+ if (t1 != null)
+ return t1;
+ switch (this.textTheme) {
+ case C.ButtonTextTheme_0:
+ case C.ButtonTextTheme_1:
+ return C.EdgeInsets_16_0_16_0;
+ case C.ButtonTextTheme_2:
+ return C.EdgeInsets_24_0_24_0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$shape: function(_) {
+ var t1 = this._shape;
+ if (t1 != null)
+ return t1;
+ switch (this.textTheme) {
+ case C.ButtonTextTheme_0:
+ case C.ButtonTextTheme_1:
+ return C.RoundedRectangleBorder_a51;
+ case C.ButtonTextTheme_2:
+ return C.RoundedRectangleBorder_a510;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getBrightness$1: function(button) {
+ return this.colorScheme.brightness;
+ },
+ getTextTheme$1: function(button) {
+ return this.textTheme;
+ },
+ getDisabledTextColor$1: function(button) {
+ var t1 = this.colorScheme.onSurface.value;
+ return P.Color$fromARGB(97, t1 >>> 16 & 255, t1 >>> 8 & 255, t1 & 255);
+ },
+ getFillColor$1: function(button) {
+ button.get$enabled(button);
+ return null;
+ },
+ getTextColor$1: function(button) {
+ var fillColor, _this = this;
+ if (!button.get$enabled(button))
+ return _this.getDisabledTextColor$1(button);
+ switch (_this.getTextTheme$1(button)) {
+ case C.ButtonTextTheme_0:
+ return _this.getBrightness$1(button) === C.Brightness_0 ? C.Color_4294967295 : C.Color_3707764736;
+ case C.ButtonTextTheme_1:
+ return _this.colorScheme.secondary;
+ case C.ButtonTextTheme_2:
+ fillColor = _this.getFillColor$1(button);
+ if (fillColor != null ? X.ThemeData_estimateBrightnessForColor(fillColor) === C.Brightness_0 : _this.getBrightness$1(button) === C.Brightness_0)
+ return C.Color_4294967295;
+ return _this.colorScheme.primary;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getSplashColor$1: function(button) {
+ var t1 = this.getTextColor$1(button);
+ return P.Color$fromARGB(31, t1.get$value(t1) >>> 16 & 255, t1.get$value(t1) >>> 8 & 255, t1.get$value(t1) & 255);
+ },
+ getFocusColor$1: function(button) {
+ var t1 = this._focusColor;
+ if (t1 == null) {
+ t1 = this.getTextColor$1(button);
+ t1 = P.Color$fromARGB(31, t1.get$value(t1) >>> 16 & 255, t1.get$value(t1) >>> 8 & 255, t1.get$value(t1) & 255);
+ }
+ return t1;
+ },
+ getHoverColor$1: function(button) {
+ var t1 = this._hoverColor;
+ if (t1 == null) {
+ t1 = this.getTextColor$1(button);
+ t1 = P.Color$fromARGB(10, t1.get$value(t1) >>> 16 & 255, t1.get$value(t1) >>> 8 & 255, t1.get$value(t1) & 255);
+ }
+ return t1;
+ },
+ getHighlightColor$1: function(button) {
+ var t1;
+ switch (this.getTextTheme$1(button)) {
+ case C.ButtonTextTheme_0:
+ case C.ButtonTextTheme_1:
+ t1 = this.getTextColor$1(button);
+ return P.Color$fromARGB(41, t1.get$value(t1) >>> 16 & 255, t1.get$value(t1) >>> 8 & 255, t1.get$value(t1) & 255);
+ case C.ButtonTextTheme_2:
+ return C.Color_0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getElevation$1: function(button) {
+ return 0;
+ },
+ getFocusElevation$1: function(button) {
+ return 0;
+ },
+ getHoverElevation$1: function(button) {
+ return 0;
+ },
+ getHighlightElevation$1: function(button) {
+ return 0;
+ },
+ getDisabledElevation$1: function(button) {
+ return 0;
+ },
+ getPadding$1: function(button) {
+ var t1 = this._padding;
+ if (t1 != null)
+ return t1;
+ switch (this.getTextTheme$1(button)) {
+ case C.ButtonTextTheme_0:
+ case C.ButtonTextTheme_1:
+ return C.EdgeInsets_16_0_16_0;
+ case C.ButtonTextTheme_2:
+ return C.EdgeInsets_24_0_24_0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getShape$1: function(button) {
+ var t1 = this.get$shape(this);
+ return t1;
+ },
+ getAnimationDuration$1: function(button) {
+ return C.Duration_200000;
+ },
+ copyWith$7$alignedDropdown$colorScheme$height$layoutBehavior$minWidth$padding$textTheme: function(alignedDropdown, colorScheme, height, layoutBehavior, minWidth, padding, textTheme) {
+ var _this = this,
+ t1 = textTheme == null ? _this.textTheme : textTheme,
+ t2 = layoutBehavior == null ? _this.layoutBehavior : layoutBehavior,
+ t3 = minWidth == null ? _this.minWidth : minWidth,
+ t4 = height == null ? _this.height : height,
+ t5 = padding == null ? _this.get$padding(_this) : padding,
+ t6 = _this.get$shape(_this),
+ t7 = colorScheme == null ? _this.colorScheme : colorScheme;
+ return M.ButtonThemeData$(alignedDropdown === true, _this._buttonColor, t7, _this._disabledColor, _this._focusColor, t4, _this._highlightColor, _this._hoverColor, t2, _this._materialTapTargetSize, t3, t5, t6, _this._splashColor, t1);
+ },
+ copyWith$6$alignedDropdown$height$layoutBehavior$minWidth$padding$textTheme: function(alignedDropdown, height, layoutBehavior, minWidth, padding, textTheme) {
+ return this.copyWith$7$alignedDropdown$colorScheme$height$layoutBehavior$minWidth$padding$textTheme(alignedDropdown, null, height, layoutBehavior, minWidth, padding, textTheme);
+ },
+ copyWith$1$colorScheme: function(colorScheme) {
+ return this.copyWith$7$alignedDropdown$colorScheme$height$layoutBehavior$minWidth$padding$textTheme(null, colorScheme, null, null, null, null, null);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof M.ButtonThemeData)
+ if (other.textTheme === _this.textTheme)
+ if (other.minWidth === _this.minWidth)
+ if (other.height === _this.height)
+ if (J.$eq$(other.get$padding(other), _this.get$padding(_this)))
+ if (J.$eq$(other.get$shape(other), _this.get$shape(_this)))
+ if (J.$eq$(other._buttonColor, _this._buttonColor))
+ if (J.$eq$(other._focusColor, _this._focusColor))
+ if (J.$eq$(other._hoverColor, _this._hoverColor))
+ t1 = J.$eq$(other.colorScheme, _this.colorScheme) && other._materialTapTargetSize == _this._materialTapTargetSize;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.textTheme, _this.minWidth, _this.height, _this.get$padding(_this), _this.get$shape(_this), false, _this._buttonColor, _this._disabledColor, _this._focusColor, _this._hoverColor, _this._highlightColor, _this._splashColor, _this.colorScheme, _this._materialTapTargetSize, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ M._ButtonThemeData_Object_Diagnosticable.prototype = {};
+ A.CardTheme.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.clipBehavior, _this.color, _this.shadowColor, _this.elevation, _this.margin, _this.shape, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof A.CardTheme)
+ t1 = J.$eq$(other.color, _this.color) && J.$eq$(other.shadowColor, _this.shadowColor) && other.elevation == _this.elevation && J.$eq$(other.margin, _this.margin) && J.$eq$(other.shape, _this.shape);
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ A._CardTheme_Object_Diagnosticable.prototype = {};
+ K.ChipThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.backgroundColor, _this.deleteIconColor, _this.disabledColor, _this.selectedColor, _this.secondarySelectedColor, _this.shadowColor, _this.selectedShadowColor, _this.checkmarkColor, _this.labelPadding, _this.padding, _this.side, _this.shape, _this.labelStyle, _this.secondaryLabelStyle, _this.brightness, _this.elevation, _this.pressElevation, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof K.ChipThemeData && J.$eq$(other.backgroundColor, _this.backgroundColor) && J.$eq$(other.deleteIconColor, _this.deleteIconColor) && J.$eq$(other.disabledColor, _this.disabledColor) && J.$eq$(other.selectedColor, _this.selectedColor) && J.$eq$(other.secondarySelectedColor, _this.secondarySelectedColor) && J.$eq$(other.shadowColor, _this.shadowColor) && J.$eq$(other.selectedShadowColor, _this.selectedShadowColor) && J.$eq$(other.checkmarkColor, _this.checkmarkColor) && J.$eq$(other.labelPadding, _this.labelPadding) && J.$eq$(other.padding, _this.padding) && J.$eq$(other.side, _this.side) && J.$eq$(other.shape, _this.shape) && J.$eq$(other.labelStyle, _this.labelStyle) && J.$eq$(other.secondaryLabelStyle, _this.secondaryLabelStyle) && other.brightness === _this.brightness && other.elevation == _this.elevation && other.pressElevation == _this.pressElevation;
+ }
+ };
+ K._ChipThemeData_Object_Diagnosticable.prototype = {};
+ A.ColorScheme.prototype = {
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof A.ColorScheme && J.$eq$(other.primary, _this.primary) && J.$eq$(other.primaryVariant, _this.primaryVariant) && J.$eq$(other.secondary, _this.secondary) && J.$eq$(other.secondaryVariant, _this.secondaryVariant) && J.$eq$(other.surface, _this.surface) && J.$eq$(other.background, _this.background) && J.$eq$(other.error, _this.error) && J.$eq$(other.onPrimary, _this.onPrimary) && J.$eq$(other.onSecondary, _this.onSecondary) && J.$eq$(other.onSurface, _this.onSurface) && J.$eq$(other.onBackground, _this.onBackground) && J.$eq$(other.onError, _this.onError) && other.brightness === _this.brightness;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.primary, _this.primaryVariant, _this.secondary, _this.secondaryVariant, _this.surface, _this.background, _this.error, _this.onPrimary, _this.onSecondary, _this.onSurface, _this.onBackground, _this.onError, _this.brightness, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ A._ColorScheme_Object_Diagnosticable.prototype = {};
+ E.MaterialColor.prototype = {};
+ Z.DataTableThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.decoration, _this.dataRowColor, _this.dataRowHeight, _this.dataTextStyle, _this.headingRowColor, _this.headingRowHeight, _this.headingTextStyle, _this.horizontalMargin, _this.columnSpacing, _this.dividerThickness, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof Z.DataTableThemeData && J.$eq$(other.decoration, _this.decoration) && other.dataRowColor == _this.dataRowColor && other.dataRowHeight == _this.dataRowHeight && J.$eq$(other.dataTextStyle, _this.dataTextStyle) && other.headingRowColor == _this.headingRowColor && other.headingRowHeight == _this.headingRowHeight && J.$eq$(other.headingTextStyle, _this.headingTextStyle) && other.horizontalMargin == _this.horizontalMargin && other.columnSpacing == _this.columnSpacing && other.dividerThickness == _this.dividerThickness;
+ }
+ };
+ Z._LerpProperties.prototype = {$isMaterialStateProperty: 1};
+ Z._DataTableThemeData_Object_Diagnosticable.prototype = {};
+ E.Dialog.prototype = {
+ build$1: function(_, context) {
+ var t3, t4, _null = null,
+ dialogTheme = K.Theme_of(context).dialogTheme,
+ t1 = type$.MediaQuery,
+ t2 = context.dependOnInheritedWidgetOfExactType$1$0(t1).data,
+ effectivePadding = t2.viewInsets.$add(0, this.insetPadding);
+ t2 = dialogTheme.backgroundColor;
+ if (t2 == null)
+ t2 = K.Theme_of(context).dialogBackgroundColor;
+ t3 = dialogTheme.elevation;
+ if (t3 == null)
+ t3 = 24;
+ t4 = dialogTheme.shape;
+ if (t4 == null)
+ t4 = C.RoundedRectangleBorder_a510;
+ t4 = T.Center$(new T.ConstrainedBox(C.BoxConstraints_mlX0, M.Material$(C.Duration_200000, _null, this.child, this.clipBehavior, t2, t3, _null, _null, t4, _null, C.MaterialType_1), _null), _null, _null);
+ return new G.AnimatedPadding(effectivePadding, new F.MediaQuery(context.dependOnInheritedWidgetOfExactType$1$0(t1).data.removeViewInsets$4$removeBottom$removeLeft$removeRight$removeTop(true, true, true, true), t4, _null), C.C__DecelerateCurve, C.Duration_100000, _null, _null);
+ }
+ };
+ E.AlertDialog.prototype = {
+ build$1: function(_, context) {
+ var label, t1, t2, t3, titleWidget, contentWidget, dialogChild, _null = null,
+ theme = K.Theme_of(context),
+ dialogTheme = K.Theme_of(context).dialogTheme;
+ switch (theme.platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ label = _null;
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ t1 = L.Localizations_of(context, C.Type_MaterialLocalizations_flR, type$.MaterialLocalizations);
+ t1.toString;
+ label = "Alert";
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ t1 = P.lerpDouble(1, 0.3333333333333333, C.JSNumber_methods.clamp$2(context.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data.textScaleFactor, 1, 2) - 1);
+ t1.toString;
+ T.Directionality_maybeOf(context);
+ t2 = 24 * t1;
+ t3 = dialogTheme.titleTextStyle;
+ if (t3 == null) {
+ t3 = theme.textTheme.headline6;
+ t3.toString;
+ }
+ titleWidget = new T.Padding(new V.EdgeInsets(t2, t2, t2, 0), L.DefaultTextStyle$(T.Semantics$(_null, this.title, true, _null, _null, false, _null, _null, _null, _null, _null, _null, label == null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null), _null, _null, C.TextOverflow_0, true, t3, _null, _null, C.TextWidthBasis_0), _null);
+ t1 = 24 * t1;
+ t2 = dialogTheme.contentTextStyle;
+ if (t2 == null) {
+ t2 = theme.textTheme.subtitle1;
+ t2.toString;
+ }
+ contentWidget = new T.Padding(new V.EdgeInsets(t1, 20, t1, 24), L.DefaultTextStyle$(this.content, _null, _null, C.TextOverflow_0, true, t2, _null, _null, C.TextWidthBasis_0), _null);
+ t1 = K.ButtonBar$(_null, this.actions, _null, _null);
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_Widget);
+ t2.push(titleWidget);
+ t2.push(T.Flexible$(contentWidget));
+ t2.push(new T.Padding(C.EdgeInsets_0_0_0_0, t1, _null));
+ dialogChild = new T.IntrinsicWidth(T.Column$(t2, C.CrossAxisAlignment_3, C.MainAxisAlignment_0, C.MainAxisSize_0), _null);
+ return new E.Dialog(_null, _null, C.EdgeInsets_40_24_40_24, C.Clip_0, _null, label != null ? T.Semantics$(_null, dialogChild, false, _null, _null, true, _null, _null, _null, label, _null, _null, true, _null, _null, _null, _null, _null, _null, true, _null, _null, _null, _null) : dialogChild, _null);
+ }
+ };
+ E.showDialog_closure.prototype = {
+ call$3: function(buildContext, animation, secondaryAnimation) {
+ var dialog = Q.SafeArea$(true, new M._CaptureAll(this.themes._themes, new T.Builder(this.builder, null), null), C.EdgeInsets_0_0_0_0, true);
+ return dialog;
+ },
+ "call*": "call$3",
+ $requiredArgCount: 3,
+ $signature: 152
+ };
+ Y.DialogTheme.prototype = {
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.shape);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof Y.DialogTheme && J.$eq$(other.backgroundColor, _this.backgroundColor) && other.elevation == _this.elevation && J.$eq$(other.shape, _this.shape) && J.$eq$(other.titleTextStyle, _this.titleTextStyle) && J.$eq$(other.contentTextStyle, _this.contentTextStyle);
+ }
+ };
+ Y._DialogTheme_Object_Diagnosticable.prototype = {};
+ Z.Divider.prototype = {
+ build$1: function(_, context) {
+ var thickness, indent, endIndent, _null = null,
+ dividerTheme = G.DividerTheme_of(context),
+ height = dividerTheme.space;
+ if (height == null)
+ height = 16;
+ thickness = dividerTheme.thickness;
+ if (thickness == null)
+ thickness = 0;
+ indent = dividerTheme.indent;
+ if (indent == null)
+ indent = 0;
+ endIndent = dividerTheme.endIndent;
+ if (endIndent == null)
+ endIndent = 0;
+ return T.SizedBox$(T.Center$(M.Container$(_null, _null, _null, _null, new S.BoxDecoration(_null, _null, new F.Border(C.BorderSide_m7u, C.BorderSide_m7u, Z.Divider_createBorderSide(context, _null, thickness), C.BorderSide_m7u), _null, _null, _null, C.BoxShape_0), thickness, new V.EdgeInsetsDirectional(indent, 0, endIndent, 0), _null, _null), _null, _null), height, _null);
+ }
+ };
+ G.DividerThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.color, _this.space, _this.thickness, _this.indent, _this.endIndent, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof G.DividerThemeData && J.$eq$(other.color, _this.color) && other.space == _this.space && other.thickness == _this.thickness && other.indent == _this.indent && other.endIndent == _this.endIndent;
+ }
+ };
+ G._DividerThemeData_Object_Diagnosticable.prototype = {};
+ T.ElevatedButtonThemeData.prototype = {
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.style);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof T.ElevatedButtonThemeData && J.$eq$(other.style, this.style);
+ }
+ };
+ T._ElevatedButtonThemeData_Object_Diagnosticable.prototype = {};
+ N.FlatButton.prototype = {
+ build$1: function(_, context) {
+ var t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, _this = this,
+ theme = K.Theme_of(context),
+ buttonTheme = M.ButtonTheme_of(context),
+ t1 = buttonTheme.getFillColor$1(_this),
+ t2 = theme.textTheme.button;
+ t2.toString;
+ t2 = t2.copyWith$1$color(buttonTheme.getTextColor$1(_this));
+ t3 = buttonTheme.getFocusColor$1(_this);
+ t4 = buttonTheme.getHoverColor$1(_this);
+ t5 = buttonTheme.getHighlightColor$1(_this);
+ t6 = buttonTheme.getSplashColor$1(_this);
+ t7 = buttonTheme.getElevation$1(_this);
+ t8 = buttonTheme.getFocusElevation$1(_this);
+ t9 = buttonTheme.getHoverElevation$1(_this);
+ t10 = buttonTheme.getHighlightElevation$1(_this);
+ t11 = buttonTheme.getDisabledElevation$1(_this);
+ t12 = buttonTheme.getPadding$1(_this);
+ t13 = theme.visualDensity;
+ t14 = new S.BoxConstraints(buttonTheme.minWidth, 1 / 0, buttonTheme.height, 1 / 0).copyWith$2$minHeight$minWidth(_this.height, _this.minWidth);
+ t15 = buttonTheme.getShape$1(_this);
+ t16 = buttonTheme._materialTapTargetSize;
+ if (t16 == null)
+ t16 = C.MaterialTapTargetSize_0;
+ return Z.RawMaterialButton$(buttonTheme.getAnimationDuration$1(_this), false, _this.child, _this.clipBehavior, t14, t11, t7, true, t1, t3, t8, _this.focusNode, t5, t10, t4, t9, t16, _this.mouseCursor, _this.onHighlightChanged, _this.onLongPress, _this.onPressed, t12, t15, t6, t2, t13);
+ }
+ };
+ Z.FlexibleSpaceBarSettings.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ var _this = this;
+ return _this.toolbarOpacity !== oldWidget.toolbarOpacity || _this.minExtent != oldWidget.minExtent || _this.maxExtent != oldWidget.maxExtent || _this.currentExtent != oldWidget.currentExtent;
+ }
+ };
+ E._DefaultHeroTag.prototype = {
+ toString$0: function(_) {
+ return "";
+ }
+ };
+ E.FloatingActionButton.prototype = {
+ build$1: function(_, context) {
+ var defaultAccentIconThemeColor, foregroundColor, t1, backgroundColor, focusColor, hoverColor, splashColor, elevation, focusElevation, hoverElevation, disabledElevation, highlightElevation, materialTapTargetSize, textStyle, shape, result, _this = this, _null = null,
+ theme = K.Theme_of(context),
+ floatingActionButtonTheme = theme.floatingActionButtonTheme;
+ if (floatingActionButtonTheme.foregroundColor == null) {
+ defaultAccentIconThemeColor = theme.accentColorBrightness === C.Brightness_0 ? C.Color_4294967295 : C.Color_4278190080;
+ if (!J.$eq$(theme.accentIconTheme.color, defaultAccentIconThemeColor))
+ D.print__debugPrintThrottled$closure().call$1("Warning: The support for configuring the foreground color of FloatingActionButtons using ThemeData.accentIconTheme has been deprecated. Please use ThemeData.floatingActionButtonTheme instead. See https://flutter.dev/go/remove-fab-accent-theme-dependency. This feature was deprecated after v1.13.2.");
+ }
+ foregroundColor = floatingActionButtonTheme.foregroundColor;
+ if (foregroundColor == null)
+ foregroundColor = theme.colorScheme.onSecondary;
+ t1 = _this.backgroundColor;
+ backgroundColor = t1 == null ? floatingActionButtonTheme.backgroundColor : t1;
+ if (backgroundColor == null)
+ backgroundColor = theme.colorScheme.secondary;
+ focusColor = floatingActionButtonTheme.focusColor;
+ if (focusColor == null)
+ focusColor = theme.focusColor;
+ hoverColor = floatingActionButtonTheme.hoverColor;
+ if (hoverColor == null)
+ hoverColor = theme.hoverColor;
+ splashColor = floatingActionButtonTheme.splashColor;
+ if (splashColor == null)
+ splashColor = theme.splashColor;
+ elevation = floatingActionButtonTheme.elevation;
+ if (elevation == null)
+ elevation = 6;
+ focusElevation = floatingActionButtonTheme.focusElevation;
+ if (focusElevation == null)
+ focusElevation = 8;
+ hoverElevation = floatingActionButtonTheme.hoverElevation;
+ if (hoverElevation == null)
+ hoverElevation = 10;
+ disabledElevation = floatingActionButtonTheme.disabledElevation;
+ if (disabledElevation == null)
+ disabledElevation = elevation;
+ highlightElevation = floatingActionButtonTheme.highlightElevation;
+ if (highlightElevation == null)
+ highlightElevation = 12;
+ materialTapTargetSize = theme.materialTapTargetSize;
+ textStyle = theme.textTheme.button.copyWith$2$color$letterSpacing(foregroundColor, 1.2);
+ shape = floatingActionButtonTheme.shape;
+ if (shape == null)
+ shape = C.CircleBorder_61T;
+ result = Z.RawMaterialButton$(C.Duration_200000, false, _this.child, C.Clip_0, _this._sizeConstraints, disabledElevation, elevation, true, backgroundColor, focusColor, focusElevation, _null, _null, highlightElevation, hoverColor, hoverElevation, materialTapTargetSize, _null, _null, _null, _this.onPressed, C.EdgeInsets_0_0_0_0, shape, splashColor, textStyle, C.VisualDensity_0_0);
+ t1 = _this.tooltip;
+ if (t1 != null)
+ result = S.Tooltip$(result, t1);
+ return new T.MergeSemantics(new T.Hero(C.C__DefaultHeroTag, result, _null), _null);
+ }
+ };
+ A.FloatingActionButtonLocation.prototype = {
+ toString$0: function(_) {
+ return "FloatingActionButtonLocation";
+ }
+ };
+ A.StandardFabLocation.prototype = {
+ getOffset$1: function(scaffoldGeometry) {
+ return new P.Offset(this.getOffsetX$2(scaffoldGeometry, 0), this.getOffsetY$2(scaffoldGeometry, 0));
+ }
+ };
+ A.FabFloatOffsetY.prototype = {
+ getOffsetY$2: function(scaffoldGeometry, adjustment) {
+ var contentBottom = scaffoldGeometry.contentBottom,
+ bottomSheetHeight = scaffoldGeometry.bottomSheetSize._dy,
+ fabHeight = scaffoldGeometry.floatingActionButtonSize._dy,
+ snackBarHeight = scaffoldGeometry.snackBarSize._dy,
+ fabY = contentBottom - fabHeight - Math.max(16, scaffoldGeometry.minViewPadding.bottom - (scaffoldGeometry.scaffoldSize._dy - contentBottom));
+ if (snackBarHeight > 0)
+ fabY = Math.min(fabY, contentBottom - snackBarHeight - fabHeight - 16);
+ return (bottomSheetHeight > 0 ? Math.min(fabY, contentBottom - bottomSheetHeight - fabHeight / 2) : fabY) + adjustment;
+ }
+ };
+ A.FabCenterOffsetX.prototype = {
+ getOffsetX$2: function(scaffoldGeometry, adjustment) {
+ return (scaffoldGeometry.scaffoldSize._dx - scaffoldGeometry.floatingActionButtonSize._dx) / 2;
+ }
+ };
+ A.FabEndOffsetX.prototype = {
+ getOffsetX$2: function(scaffoldGeometry, adjustment) {
+ switch (scaffoldGeometry.textDirection) {
+ case C.TextDirection_0:
+ return 16 + scaffoldGeometry.minInsets.left - adjustment;
+ case C.TextDirection_1:
+ return scaffoldGeometry.scaffoldSize._dx - 16 - scaffoldGeometry.minInsets.right - scaffoldGeometry.floatingActionButtonSize._dx + adjustment;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ A._CenterFloatFabLocation.prototype = {
+ toString$0: function(_) {
+ return "FloatingActionButtonLocation.centerFloat";
+ }
+ };
+ A._EndFloatFabLocation.prototype = {
+ toString$0: function(_) {
+ return "FloatingActionButtonLocation.endFloat";
+ }
+ };
+ A.FloatingActionButtonAnimator.prototype = {
+ toString$0: function(_) {
+ return "FloatingActionButtonAnimator";
+ }
+ };
+ A._ScalingFabMotionAnimator.prototype = {
+ getOffset$3$begin$end$progress: function(begin, end, progress) {
+ if (progress < 0.5)
+ return begin;
+ else
+ return end;
+ }
+ };
+ A._AnimationSwap.prototype = {
+ get$value: function(_) {
+ var t1, _this = this;
+ if (_this.parent.get$_animation_controller$_value() < _this.swapThreshold) {
+ t1 = _this.first;
+ t1 = t1.get$value(t1);
+ } else {
+ t1 = _this.next;
+ t1 = t1.get$value(t1);
+ }
+ return t1;
+ }
+ };
+ A.__CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX.prototype = {};
+ A.__CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX_FabFloatOffsetY.prototype = {};
+ A.__EndFloatFabLocation_StandardFabLocation_FabEndOffsetX.prototype = {};
+ A.__EndFloatFabLocation_StandardFabLocation_FabEndOffsetX_FabFloatOffsetY.prototype = {};
+ S.FloatingActionButtonThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.foregroundColor, _this.backgroundColor, _this.focusColor, _this.hoverColor, _this.splashColor, _this.elevation, _this.focusElevation, _this.hoverElevation, _this.disabledElevation, _this.highlightElevation, _this.shape, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof S.FloatingActionButtonThemeData && J.$eq$(other.foregroundColor, _this.foregroundColor) && J.$eq$(other.backgroundColor, _this.backgroundColor) && J.$eq$(other.focusColor, _this.focusColor) && J.$eq$(other.hoverColor, _this.hoverColor) && J.$eq$(other.splashColor, _this.splashColor) && other.elevation == _this.elevation && other.focusElevation == _this.focusElevation && other.hoverElevation == _this.hoverElevation && other.disabledElevation == _this.disabledElevation && other.highlightElevation == _this.highlightElevation && J.$eq$(other.shape, _this.shape);
+ }
+ };
+ S._FloatingActionButtonThemeData_Object_Diagnosticable.prototype = {};
+ B.IconButton.prototype = {
+ build$1: function(_, context) {
+ var currentColor, effectiveVisualDensity, result, t3, t4, t5, t6, t7, t8, t9, _this = this, _null = null,
+ theme = K.Theme_of(context),
+ t1 = _this.onPressed,
+ t2 = t1 != null;
+ if (t2)
+ currentColor = _this.color;
+ else
+ currentColor = theme.disabledColor;
+ effectiveVisualDensity = theme.visualDensity;
+ result = S.Tooltip$(new T.ConstrainedBox(effectiveVisualDensity.effectiveConstraints$1(C.BoxConstraints_mlX), new T.Padding(C.EdgeInsets_8_8_8_8, T.SizedBox$(new T.Align(C.Alignment_0_0, _null, _null, Y.IconTheme_merge(_this.icon, new T.IconThemeData(currentColor, _null, 24)), _null), 24, 24), _null), _null), _this.tooltip);
+ t3 = theme.focusColor;
+ t4 = theme.hoverColor;
+ t5 = theme.highlightColor;
+ t6 = theme.splashColor;
+ t7 = C.EdgeInsets_8_8_8_8.get$horizontal();
+ t8 = C.EdgeInsets_8_8_8_8.get$_top(C.EdgeInsets_8_8_8_8);
+ t9 = C.EdgeInsets_8_8_8_8.get$_bottom(C.EdgeInsets_8_8_8_8);
+ return T.Semantics$(true, R.InkResponse$(false, _null, t2, result, false, _null, true, false, t3, _null, t5, C.BoxShape_1, t4, _null, C.SystemMouseCursor_click, _null, _null, _null, _null, _null, t1, _null, _null, _null, Math.max(35, (24 + Math.min(t7, t8 + t9)) * 0.7), t6, _null), false, _null, t2, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ }
+ };
+ Y.InkHighlight.prototype = {
+ get$_alphaController: function() {
+ return this.__InkHighlight__alphaController_isSet ? this.__InkHighlight__alphaController : H.throwExpression(H.LateError$fieldNI("_alphaController"));
+ },
+ _handleAlphaStatusChanged$1: function($status) {
+ if ($status === C.AnimationStatus_0 && !this._active) {
+ this.get$_alphaController().dispose$0(0);
+ this.super$InkFeature$dispose(0);
+ }
+ },
+ dispose$0: function(_) {
+ this.get$_alphaController().dispose$0(0);
+ this.super$InkFeature$dispose(0);
+ },
+ _paintHighlight$3: function(canvas, rect, paint) {
+ var t1, t2, _this = this;
+ canvas.save$0(0);
+ t1 = _this._ink_highlight$_customBorder;
+ if (t1 != null)
+ canvas.clipPath$1(0, t1.getOuterPath$2$textDirection(rect, _this._ink_highlight$_textDirection));
+ switch (_this._ink_highlight$_shape) {
+ case C.BoxShape_1:
+ t1 = rect.get$center();
+ t2 = _this._ink_highlight$_radius;
+ canvas.drawCircle$3(0, t1, t2 == null ? 35 : t2, paint);
+ break;
+ case C.BoxShape_0:
+ t1 = _this._ink_highlight$_borderRadius;
+ if (!t1.$eq(0, C.BorderRadius_tLn))
+ canvas.drawRRect$2(0, P.RRect$fromRectAndCorners(rect, t1.bottomLeft, t1.bottomRight, t1.topLeft, t1.topRight), paint);
+ else
+ canvas.drawRect$2(0, rect, paint);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ canvas.restore$0(0);
+ },
+ paintFeature$2: function(canvas, transform) {
+ var originOffset, rect, _this = this,
+ paint = new H.SurfacePaint(new H.SurfacePaintData()),
+ t1 = _this._ink_well$_color,
+ t2 = _this.__InkHighlight__alpha_isSet ? _this.__InkHighlight__alpha : H.throwExpression(H.LateError$fieldNI("_alpha")),
+ t3 = t2._evaluatable;
+ t2 = t2.parent;
+ paint.set$color(0, P.Color$fromARGB(t3.transform$1(0, t2.get$value(t2)), t1.get$value(t1) >>> 16 & 255, t1.get$value(t1) >>> 8 & 255, t1.get$value(t1) & 255));
+ originOffset = T.MatrixUtils_getAsTranslation(transform);
+ t1 = _this._rectCallback;
+ if (t1 != null)
+ rect = t1.call$0();
+ else {
+ t1 = _this.referenceBox._size;
+ rect = new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ }
+ if (originOffset == null) {
+ canvas.save$0(0);
+ canvas.transform$1(0, transform._m4storage);
+ _this._paintHighlight$3(canvas, rect, paint);
+ canvas.restore$0(0);
+ } else
+ _this._paintHighlight$3(canvas, rect.shift$1(originOffset), paint);
+ }
+ };
+ U._getClipCallback_closure.prototype = {
+ call$0: function() {
+ var t1 = this.referenceBox._size;
+ return new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ },
+ $signature: 122
+ };
+ U._InkSplashFactory.prototype = {
+ create$11$borderRadius$color$containedInkWell$controller$customBorder$onRemoved$position$radius$rectCallback$referenceBox$textDirection: function(_, borderRadius, color, containedInkWell, controller, customBorder, onRemoved, position, radius, rectCallback, referenceBox, textDirection) {
+ var t6, t7, _null = null,
+ t1 = radius == null ? U._getTargetRadius(referenceBox, containedInkWell, rectCallback, position) : radius,
+ t2 = new U.InkSplash(position, C.BorderRadius_tLn, customBorder, t1, U._getClipCallback(referenceBox, containedInkWell, rectCallback), !containedInkWell, textDirection, color, controller, referenceBox, onRemoved),
+ t3 = controller.vsync,
+ t4 = G.AnimationController$(_null, C.Duration_1000000, 0, _null, 1, _null, t3),
+ t5 = controller.get$markNeedsPaint();
+ t4.didRegisterListener$0();
+ t6 = t4.AnimationLocalListenersMixin__listeners;
+ t6._isDirty = true;
+ t6._observer_list$_list.push(t5);
+ t4.forward$0(0);
+ t2.__InkSplash__radiusController_isSet = true;
+ t2.__InkSplash__radiusController = t4;
+ t4 = t2.get$_radiusController();
+ t6 = type$.Tween_double;
+ t4.toString;
+ t7 = type$.Animation_double;
+ t7._as(t4);
+ t2.__InkSplash__radius_isSet = true;
+ t2.__InkSplash__radius = new R._AnimatedEvaluation(t4, new R.Tween(0, t1, t6), t6._eval$1("_AnimatedEvaluation"));
+ t3 = G.AnimationController$(_null, C.Duration_200000, 0, _null, 1, _null, t3);
+ t3.didRegisterListener$0();
+ t6 = t3.AnimationLocalListenersMixin__listeners;
+ t6._isDirty = true;
+ t6._observer_list$_list.push(t5);
+ t3.addStatusListener$1(t2.get$_ink_splash$_handleAlphaStatusChanged());
+ t2._ink_splash$_alphaController = t3;
+ t5 = color.get$value(color);
+ t7._as(t3);
+ t2.__InkSplash__alpha_isSet = true;
+ t2.__InkSplash__alpha = new R._AnimatedEvaluation(t3, new R.IntTween(t5 >>> 24 & 255, 0), type$.IntTween._eval$1("_AnimatedEvaluation"));
+ controller.addInkFeature$1(t2);
+ return t2;
+ }
+ };
+ U.InkSplash.prototype = {
+ get$_radiusController: function() {
+ return this.__InkSplash__radiusController_isSet ? this.__InkSplash__radiusController : H.throwExpression(H.LateError$fieldNI("_radiusController"));
+ },
+ confirm$0: function(_) {
+ var duration = C.JSDouble_methods.floor$0(this._targetRadius / 1),
+ t1 = this.get$_radiusController();
+ t1.duration = P.Duration$(0, duration, 0);
+ t1.forward$0(0);
+ this._ink_splash$_alphaController.forward$0(0);
+ },
+ cancel$0: function(_) {
+ var t1 = this._ink_splash$_alphaController;
+ if (t1 != null)
+ t1.forward$0(0);
+ },
+ _ink_splash$_handleAlphaStatusChanged$1: function($status) {
+ if ($status === C.AnimationStatus_3)
+ this.dispose$0(0);
+ },
+ dispose$0: function(_) {
+ var _this = this;
+ _this.get$_radiusController().dispose$0(0);
+ _this._ink_splash$_alphaController.dispose$0(0);
+ _this._ink_splash$_alphaController = null;
+ _this.super$InkFeature$dispose(0);
+ },
+ paintFeature$2: function(canvas, transform) {
+ var center, _this = this,
+ paint = new H.SurfacePaint(new H.SurfacePaintData()),
+ t1 = _this._ink_well$_color,
+ t2 = _this.__InkSplash__alpha_isSet ? _this.__InkSplash__alpha : H.throwExpression(H.LateError$fieldNI("_alpha")),
+ t3 = t2._evaluatable;
+ t2 = t2.parent;
+ paint.set$color(0, P.Color$fromARGB(t3.transform$1(0, t2.get$value(t2)), t1.get$value(t1) >>> 16 & 255, t1.get$value(t1) >>> 8 & 255, t1.get$value(t1) & 255));
+ center = _this._ink_splash$_position;
+ if (_this._repositionToReferenceBox)
+ center = P.Offset_lerp(center, _this.referenceBox._size.center$1(C.Offset_0_0), _this.get$_radiusController().get$_animation_controller$_value());
+ center.toString;
+ t1 = _this.__InkSplash__radius_isSet ? _this.__InkSplash__radius : H.throwExpression(H.LateError$fieldNI("_radius"));
+ t2 = t1._evaluatable;
+ t1 = t1.parent;
+ _this.paintInkCircle$9$borderRadius$canvas$center$clipCallback$customBorder$paint$radius$textDirection$transform(_this._ink_splash$_borderRadius, canvas, center, _this._clipCallback, _this._customBorder, paint, t2.transform$1(0, t1.get$value(t1)), _this._ink_splash$_textDirection, transform);
+ }
+ };
+ R.InteractiveInkFeature.prototype = {
+ set$color: function(_, value) {
+ if (J.$eq$(value, this._ink_well$_color))
+ return;
+ this._ink_well$_color = value;
+ this._material$_controller.markNeedsPaint$0();
+ },
+ paintInkCircle$9$borderRadius$canvas$center$clipCallback$customBorder$paint$radius$textDirection$transform: function(borderRadius, canvas, center, clipCallback, customBorder, paint, radius, textDirection, transform) {
+ var rect,
+ originOffset = T.MatrixUtils_getAsTranslation(transform);
+ canvas.save$0(0);
+ if (originOffset == null)
+ canvas.transform$1(0, transform._m4storage);
+ else
+ canvas.translate$2(0, originOffset._dx, originOffset._dy);
+ if (clipCallback != null) {
+ rect = clipCallback.call$0();
+ if (customBorder != null)
+ canvas.clipPath$1(0, customBorder.getOuterPath$2$textDirection(rect, textDirection));
+ else if (!borderRadius.$eq(0, C.BorderRadius_tLn))
+ canvas.clipRRect$1(0, P.RRect$fromRectAndCorners(rect, borderRadius.bottomLeft, borderRadius.bottomRight, borderRadius.topLeft, borderRadius.topRight));
+ else
+ canvas.clipRect$1(0, rect);
+ }
+ canvas.drawCircle$3(0, center, radius, paint);
+ canvas.restore$0(0);
+ }
+ };
+ R.InteractiveInkFeatureFactory.prototype = {};
+ R._ParentInkResponseProvider.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return this.state !== oldWidget.state;
+ }
+ };
+ R.InkResponse.prototype = {
+ getRectCallback$1: function(referenceBox) {
+ return null;
+ },
+ build$1: function(_, context) {
+ var _this = this,
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$._ParentInkResponseProvider),
+ parentState = t1 == null ? null : t1.state;
+ return new R._InkResponseStateWidget(_this.child, _this.onTap, _this.onTapDown, _this.onTapCancel, _this.onDoubleTap, _this.onLongPress, _this.onHighlightChanged, _this.onHover, _this.mouseCursor, _this.containedInkWell, _this.highlightShape, _this.radius, _this.borderRadius, _this.customBorder, _this.focusColor, _this.hoverColor, _this.highlightColor, _this.overlayColor, _this.splashColor, _this.splashFactory, _this.enableFeedback, false, _this.onFocusChange, false, _this.focusNode, _this.canRequestFocus, parentState, _this.get$getRectCallback(), _this.get$debugCheckContext(), null);
+ },
+ debugCheckContext$1: function(context) {
+ return true;
+ }
+ };
+ R._InkResponseStateWidget.prototype = {
+ createState$0: function() {
+ return new R._InkResponseState(P.LinkedHashMap_LinkedHashMap$_empty(type$._HighlightType, type$.nullable_InkHighlight), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray__ParentInkResponseState), type$.ObserverList__ParentInkResponseState), null, C._StateLifecycle_0);
+ }
+ };
+ R._HighlightType.prototype = {
+ toString$0: function(_) {
+ return this._ink_well$_name;
+ }
+ };
+ R._InkResponseState.prototype = {
+ get$highlightsExist: function() {
+ var t1 = this._highlights;
+ t1 = t1.get$values(t1);
+ t1 = new H.WhereIterable(t1, new R._InkResponseState_highlightsExist_closure(), H._instanceType(t1)._eval$1("WhereIterable"));
+ return !t1.get$isEmpty(t1);
+ },
+ markChildInkResponsePressed$2: function(childState, value) {
+ var nowAnyPressed,
+ t1 = this._activeChildren,
+ t2 = t1._observer_list$_list,
+ t3 = t2.length;
+ if (value) {
+ t1._isDirty = true;
+ t2.push(childState);
+ } else
+ t1.remove$1(0, childState);
+ nowAnyPressed = t2.length !== 0;
+ if (nowAnyPressed !== (t3 !== 0)) {
+ t1 = this._widget.parentState;
+ if (t1 != null)
+ t1.markChildInkResponsePressed$2(this, nowAnyPressed);
+ }
+ },
+ _simulateTap$1: function(intent) {
+ var t1 = this._framework$_element;
+ t1.toString;
+ this._startSplash$1$context(t1);
+ this._handleTap$0();
+ },
+ _simulateTap$0: function() {
+ return this._simulateTap$1(null);
+ },
+ initState$0: function() {
+ var t1, t2, t3;
+ this.super$__InkResponseState_State_AutomaticKeepAliveClientMixin$initState();
+ t1 = this.get$_handleFocusHighlightModeChange();
+ t2 = $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._focus_manager$_listeners._observer_list$_map;
+ t3 = t2.$index(0, t1);
+ t2.$indexSet(0, t1, (t3 == null ? 0 : t3) + 1);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ t1 = _this._widget;
+ t1.toString;
+ if (_this._isWidgetEnabled$1(t1) !== _this._isWidgetEnabled$1(oldWidget)) {
+ t1 = _this._widget;
+ t1.toString;
+ if (_this._isWidgetEnabled$1(t1))
+ _this.updateHighlight$3$callOnHover$value(C._HighlightType_1, false, _this._hovering);
+ _this._updateFocusHighlights$0();
+ }
+ },
+ dispose$0: function(_) {
+ $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._focus_manager$_listeners.remove$1(0, this.get$_handleFocusHighlightModeChange());
+ this.super$State$dispose(0);
+ },
+ get$wantKeepAlive: function() {
+ if (!this.get$highlightsExist()) {
+ var t1 = this._splashes;
+ t1 = t1 != null && t1._collection$_length !== 0;
+ } else
+ t1 = true;
+ return t1;
+ },
+ getHighlightColorForType$1: function(type) {
+ var t1, _this = this;
+ switch (type) {
+ case C._HighlightType_0:
+ t1 = _this._widget.highlightColor;
+ if (t1 == null) {
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = K.Theme_of(t1).highlightColor;
+ }
+ return t1;
+ case C._HighlightType_2:
+ t1 = _this._widget.overlayColor;
+ t1 = t1 == null ? null : t1._material_state$_resolve.call$1(C.Set_qNgX1);
+ if (t1 == null)
+ t1 = _this._widget.focusColor;
+ if (t1 == null) {
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = K.Theme_of(t1).focusColor;
+ }
+ return t1;
+ case C._HighlightType_1:
+ t1 = _this._widget.overlayColor;
+ t1 = t1 == null ? null : t1._material_state$_resolve.call$1(C.Set_wPMXb);
+ if (t1 == null)
+ t1 = _this._widget.hoverColor;
+ if (t1 == null) {
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = K.Theme_of(t1).hoverColor;
+ }
+ return t1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getFadeDurationForType$1: function(type) {
+ switch (type) {
+ case C._HighlightType_0:
+ return C.Duration_200000;
+ case C._HighlightType_1:
+ case C._HighlightType_2:
+ return C.Duration_50000;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ updateHighlight$3$callOnHover$value: function(type, callOnHover, value) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, _this = this,
+ t1 = _this._highlights,
+ highlight = t1.$index(0, type);
+ if (type === C._HighlightType_0) {
+ t2 = _this._widget.parentState;
+ if (t2 != null)
+ t2.markChildInkResponsePressed$2(_this, value);
+ }
+ t2 = highlight == null;
+ if (value === (!t2 && highlight._active))
+ return;
+ if (value)
+ if (t2) {
+ t2 = _this._framework$_element.get$renderObject();
+ t2.toString;
+ type$.RenderBox._as(t2);
+ t3 = _this._framework$_element.findAncestorRenderObjectOfType$1$0(type$._RenderInkFeatures);
+ t3.toString;
+ t4 = _this.getHighlightColorForType$1(type);
+ t5 = _this._widget;
+ t6 = t5.highlightShape;
+ t7 = t5.radius;
+ t8 = t5.customBorder;
+ t5 = t5.getRectCallback.call$1(t2);
+ t9 = _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t9.toString;
+ t10 = _this.getFadeDurationForType$1(type);
+ t2 = new Y.InkHighlight(t6, t7, C.BorderRadius_tLn, t8, t5, t9.textDirection, t4, t3, t2, new R._InkResponseState_updateHighlight_handleInkRemoval(_this, type));
+ t10 = G.AnimationController$(null, t10, 0, null, 1, null, t3.vsync);
+ t10.didRegisterListener$0();
+ t5 = t10.AnimationLocalListenersMixin__listeners;
+ t5._isDirty = true;
+ t5._observer_list$_list.push(t3.get$markNeedsPaint());
+ t10.addStatusListener$1(t2.get$_handleAlphaStatusChanged());
+ t10.forward$0(0);
+ t2.__InkHighlight__alphaController_isSet = true;
+ t2.__InkHighlight__alphaController = t10;
+ t10 = t2.get$_alphaController();
+ t4 = t4.get$value(t4);
+ t10.toString;
+ type$.Animation_double._as(t10);
+ t2.__InkHighlight__alpha_isSet = true;
+ t2.__InkHighlight__alpha = new R._AnimatedEvaluation(t10, new R.IntTween(0, t4 >>> 24 & 255), type$.IntTween._eval$1("_AnimatedEvaluation"));
+ t3.addInkFeature$1(t2);
+ t1.$indexSet(0, type, t2);
+ _this.updateKeepAlive$0();
+ } else {
+ highlight._active = true;
+ highlight.get$_alphaController().forward$0(0);
+ }
+ else {
+ highlight._active = false;
+ highlight.get$_alphaController().reverse$0(0);
+ }
+ switch (type) {
+ case C._HighlightType_0:
+ t1 = _this._widget.onHighlightChanged;
+ if (t1 != null)
+ t1.call$1(value);
+ break;
+ case C._HighlightType_1:
+ if (callOnHover && _this._widget.onHover != null)
+ _this._widget.onHover.call$1(value);
+ break;
+ case C._HighlightType_2:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ updateHighlight$2$value: function(type, value) {
+ return this.updateHighlight$3$callOnHover$value(type, true, value);
+ },
+ _createInkFeature$1: function(globalPosition) {
+ var t3, position, t4, color, rectCallback, borderRadius, customBorder, t5, t6, t7, _this = this, t1 = {},
+ t2 = _this._framework$_element.findAncestorRenderObjectOfType$1$0(type$._RenderInkFeatures);
+ t2.toString;
+ t3 = _this._framework$_element.get$renderObject();
+ t3.toString;
+ type$.RenderBox._as(t3);
+ position = t3.globalToLocal$1(globalPosition);
+ t4 = _this._widget.overlayColor;
+ t4 = t4 == null ? null : t4._material_state$_resolve.call$1(C.Set_GpMb9);
+ color = t4 == null ? _this._widget.splashColor : t4;
+ if (color == null) {
+ t4 = _this._framework$_element;
+ t4.toString;
+ color = K.Theme_of(t4).splashColor;
+ }
+ t4 = _this._widget;
+ rectCallback = t4.containedInkWell ? t4.getRectCallback.call$1(t3) : null;
+ t4 = _this._widget;
+ borderRadius = t4.borderRadius;
+ customBorder = t4.customBorder;
+ t1.splash = null;
+ t4 = t4.splashFactory;
+ if (t4 == null) {
+ t4 = _this._framework$_element;
+ t4.toString;
+ t4 = K.Theme_of(t4).splashFactory;
+ }
+ t5 = _this._widget;
+ t6 = t5.containedInkWell;
+ t5 = t5.radius;
+ t7 = _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t7.toString;
+ return t1.splash = t4.create$11$borderRadius$color$containedInkWell$controller$customBorder$onRemoved$position$radius$rectCallback$referenceBox$textDirection(0, borderRadius, color, t6, t2, customBorder, new R._InkResponseState__createInkFeature_onRemoved(t1, _this), position, t5, rectCallback, t3, t7.textDirection);
+ },
+ _handleFocusHighlightModeChange$1: function(mode) {
+ if (this._framework$_element == null)
+ return;
+ this.setState$1(new R._InkResponseState__handleFocusHighlightModeChange_closure(this));
+ },
+ get$_shouldShowFocus: function() {
+ var mode, _this = this,
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = F.MediaQuery_maybeOf(t1);
+ mode = t1 == null ? null : t1.navigationMode;
+ switch (mode == null ? C.NavigationMode_0 : mode) {
+ case C.NavigationMode_0:
+ t1 = _this._widget;
+ t1.toString;
+ return _this._isWidgetEnabled$1(t1) && _this._hasFocus;
+ case C.NavigationMode_1:
+ return _this._hasFocus;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _updateFocusHighlights$0: function() {
+ switch ($.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager.get$highlightMode()) {
+ case C.FocusHighlightMode_0:
+ var showFocus = false;
+ break;
+ case C.FocusHighlightMode_1:
+ showFocus = this.get$_shouldShowFocus();
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ this.updateHighlight$2$value(C._HighlightType_2, showFocus);
+ },
+ _handleFocusUpdate$1: function(hasFocus) {
+ var t1;
+ this._hasFocus = hasFocus;
+ this._updateFocusHighlights$0();
+ t1 = this._widget.onFocusChange;
+ if (t1 != null)
+ t1.call$1(hasFocus);
+ },
+ _handleTapDown$1: function(details) {
+ if (this._activeChildren._observer_list$_list.length !== 0)
+ return;
+ this._startSplash$1$details(details);
+ this._widget.toString;
+ },
+ _startSplash$2$context$details: function(context, details) {
+ var t1, t2, globalPosition, splash, _this = this;
+ if (context != null) {
+ t1 = context.get$renderObject();
+ t1.toString;
+ type$.RenderBox._as(t1);
+ t2 = t1._size;
+ t2 = new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy).get$center();
+ globalPosition = T.MatrixUtils_transformPoint(t1.getTransformTo$1(0, null), t2);
+ } else
+ globalPosition = details.globalPosition;
+ splash = _this._createInkFeature$1(globalPosition);
+ t1 = _this._splashes;
+ (t1 == null ? _this._splashes = P.HashSet_HashSet(type$.InteractiveInkFeature) : t1).add$1(0, splash);
+ _this._currentSplash = splash;
+ _this.updateKeepAlive$0();
+ _this.updateHighlight$2$value(C._HighlightType_0, true);
+ },
+ _startSplash$1$details: function(details) {
+ return this._startSplash$2$context$details(null, details);
+ },
+ _startSplash$1$context: function(context) {
+ return this._startSplash$2$context$details(context, null);
+ },
+ _handleTap$0: function() {
+ var _this = this,
+ t1 = _this._currentSplash;
+ if (t1 != null)
+ t1.confirm$0(0);
+ _this._currentSplash = null;
+ _this.updateHighlight$2$value(C._HighlightType_0, false);
+ t1 = _this._widget;
+ if (t1.onTap != null) {
+ if (t1.enableFeedback) {
+ t1 = _this._framework$_element;
+ t1.toString;
+ M.Feedback_forTap(t1);
+ }
+ _this._widget.onTap.call$0();
+ }
+ },
+ _handleTapCancel$0: function() {
+ var _this = this,
+ t1 = _this._currentSplash;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._currentSplash = null;
+ _this._widget.toString;
+ _this.updateHighlight$2$value(C._HighlightType_0, false);
+ },
+ deactivate$0: function() {
+ var t2, t3, t4, t5, _this = this,
+ t1 = _this._splashes;
+ if (t1 != null) {
+ _this._splashes = null;
+ for (t1 = new P._HashSetIterator(t1, t1._computeElements$0()); t1.moveNext$0();)
+ t1._collection$_current.dispose$0(0);
+ _this._currentSplash = null;
+ }
+ for (t1 = _this._highlights, t2 = t1.get$keys(t1), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ t4 = t1.$index(0, t3);
+ if (t4 != null) {
+ t5 = t4.__InkHighlight__alphaController_isSet ? t4.__InkHighlight__alphaController : H.throwExpression(H.LateError$fieldNI("_alphaController"));
+ t5._ticker.dispose$0(0);
+ t5._ticker = null;
+ t5.super$AnimationEagerListenerMixin$dispose(0);
+ t4.super$InkFeature$dispose(0);
+ }
+ t1.$indexSet(0, t3, null);
+ }
+ t1 = _this._widget.parentState;
+ if (t1 != null)
+ t1.markChildInkResponsePressed$2(_this, false);
+ _this.super$__InkResponseState_State_AutomaticKeepAliveClientMixin$deactivate();
+ },
+ _isWidgetEnabled$1: function(widget) {
+ var t1;
+ if (widget.onTap == null)
+ t1 = false;
+ else
+ t1 = true;
+ return t1;
+ },
+ _handleMouseEnter$1: function($event) {
+ var t1, _this = this;
+ _this._hovering = true;
+ t1 = _this._widget;
+ t1.toString;
+ if (_this._isWidgetEnabled$1(t1))
+ _this.updateHighlight$2$value(C._HighlightType_1, _this._hovering);
+ },
+ _handleMouseExit$1: function($event) {
+ this._hovering = false;
+ this.updateHighlight$2$value(C._HighlightType_1, false);
+ },
+ get$_ink_well$_canRequestFocus: function() {
+ var mode, _this = this,
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = F.MediaQuery_maybeOf(t1);
+ mode = t1 == null ? null : t1.navigationMode;
+ switch (mode == null ? C.NavigationMode_0 : mode) {
+ case C.NavigationMode_0:
+ t1 = _this._widget;
+ t1.toString;
+ return _this._isWidgetEnabled$1(t1) && _this._widget.canRequestFocus;
+ case C.NavigationMode_1:
+ return true;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ build$1: function(_, context) {
+ var t1, t2, t3, t4, effectiveMouseCursor, t5, t6, t7, t8, _this = this, _null = null;
+ _this.super$AutomaticKeepAliveClientMixin$build(0, context);
+ for (t1 = _this._highlights, t2 = t1.get$keys(t1), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ t4 = t1.$index(0, t3);
+ if (t4 != null)
+ t4.set$color(0, _this.getHighlightColorForType$1(t3));
+ }
+ t1 = _this._currentSplash;
+ if (t1 != null) {
+ t2 = _this._widget.overlayColor;
+ t2 = t2 == null ? _null : t2._material_state$_resolve.call$1(C.Set_GpMb9);
+ if (t2 == null)
+ t2 = _this._widget.splashColor;
+ t1.set$color(0, t2 == null ? K.Theme_of(context).splashColor : t2);
+ }
+ t1 = _this._widget.mouseCursor;
+ if (t1 == null)
+ t1 = C._EnabledAndDisabledMouseCursor_SystemMouseCursor_click_clickable;
+ t2 = P.LinkedHashSet_LinkedHashSet(type$.MaterialState);
+ t3 = _this._widget;
+ t3.toString;
+ if (!_this._isWidgetEnabled$1(t3))
+ t2.add$1(0, C.MaterialState_5);
+ if (_this._hovering) {
+ t3 = _this._widget;
+ t3.toString;
+ t3 = _this._isWidgetEnabled$1(t3);
+ } else
+ t3 = false;
+ if (t3)
+ t2.add$1(0, C.MaterialState_0);
+ if (_this._hasFocus)
+ t2.add$1(0, C.MaterialState_1);
+ effectiveMouseCursor = V.MaterialStateProperty_resolveAs(t1, t2, type$.MouseCursor);
+ if (!_this.___InkResponseState__actionMap_isSet) {
+ t1 = P.LinkedHashMap_LinkedHashMap$_literal([C.Type_ActivateIntent_OT9, new U.CallbackAction(_this.get$_simulateTap(), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_Action_Intent), type$.ObserverList_of_void_Function_Action_Intent), type$.CallbackAction_ActivateIntent)], type$.Type, type$.Action_Intent);
+ if (_this.___InkResponseState__actionMap_isSet)
+ H.throwExpression(H.LateError$fieldADI("_actionMap"));
+ _this.___InkResponseState__actionMap = t1;
+ _this.___InkResponseState__actionMap_isSet = true;
+ }
+ t1 = _this.___InkResponseState__actionMap;
+ t2 = _this._widget.focusNode;
+ t3 = _this.get$_ink_well$_canRequestFocus();
+ t4 = _this._widget;
+ t5 = t4.onTap;
+ t5 = t5 == null ? _null : _this.get$_simulateTap();
+ t4 = _this._isWidgetEnabled$1(t4) ? _this.get$_handleTapDown() : _null;
+ t6 = _this._widget;
+ t6.toString;
+ t6 = _this._isWidgetEnabled$1(t6) ? _this.get$_handleTap() : _null;
+ t7 = _this._widget;
+ t7.toString;
+ t7 = _this._isWidgetEnabled$1(t7) ? _this.get$_handleTapCancel() : _null;
+ t8 = _this._widget;
+ return new R._ParentInkResponseProvider(_this, U.Actions$(t1, L.Focus$(false, t3, T.MouseRegion$(T.Semantics$(_null, D.GestureDetector$(C.HitTestBehavior_1, t8.child, C.DragStartBehavior_1, true, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, t6, t7, t4, _null, _null, _null, _null), false, _null, _null, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, t5, _null, _null, _null, _null, _null), effectiveMouseCursor, _this.get$_handleMouseEnter(), _this.get$_handleMouseExit(), true), _null, true, t2, true, _null, _this.get$_handleFocusUpdate(), _null, _null)), _null);
+ },
+ $is_ParentInkResponseState: 1
+ };
+ R._InkResponseState_highlightsExist_closure.prototype = {
+ call$1: function(highlight) {
+ return highlight != null;
+ },
+ $signature: 161
+ };
+ R._InkResponseState_updateHighlight_handleInkRemoval.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._highlights.$indexSet(0, this.type, null);
+ t1.updateKeepAlive$0();
+ },
+ $signature: 0
+ };
+ R._InkResponseState__createInkFeature_onRemoved.prototype = {
+ call$0: function() {
+ var t3,
+ t1 = this.$this,
+ t2 = t1._splashes;
+ if (t2 != null) {
+ t3 = this._box_0;
+ t2.remove$1(0, t3.splash);
+ if (t1._currentSplash == t3.splash)
+ t1._currentSplash = null;
+ t1.updateKeepAlive$0();
+ }
+ },
+ $signature: 0
+ };
+ R._InkResponseState__handleFocusHighlightModeChange_closure.prototype = {
+ call$0: function() {
+ this.$this._updateFocusHighlights$0();
+ },
+ $signature: 0
+ };
+ R.InkWell.prototype = {};
+ R.__InkResponseState_State_AutomaticKeepAliveClientMixin.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ if (this.get$wantKeepAlive())
+ this._ensureKeepAlive$0();
+ },
+ deactivate$0: function() {
+ var t1 = this.AutomaticKeepAliveClientMixin__keepAliveHandle;
+ if (t1 != null) {
+ t1.notifyListeners$0();
+ this.AutomaticKeepAliveClientMixin__keepAliveHandle = null;
+ }
+ this.super$State$deactivate();
+ }
+ };
+ F.InputBorder.prototype = {};
+ F.UnderlineInputBorder.prototype = {
+ get$dimensions: function() {
+ return new V.EdgeInsets(0, 0, 0, this.borderSide.width);
+ },
+ scale$1: function(_, t) {
+ return new F.UnderlineInputBorder(C.BorderRadius_tLn1, this.borderSide.scale$1(0, t));
+ },
+ getOuterPath$2$textDirection: function(rect, textDirection) {
+ var t1 = P.Path_Path();
+ t1.addRRect$1(0, this.borderRadius.toRRect$1(rect));
+ return t1;
+ },
+ lerpFrom$2: function(a, t) {
+ var t1, t2;
+ if (a instanceof F.UnderlineInputBorder) {
+ t1 = Y.BorderSide_lerp(a.borderSide, this.borderSide, t);
+ t2 = K.BorderRadius_lerp(a.borderRadius, this.borderRadius, t);
+ t2.toString;
+ return new F.UnderlineInputBorder(t2, t1);
+ }
+ return this.super$ShapeBorder$lerpFrom(a, t);
+ },
+ lerpTo$2: function(b, t) {
+ var t1, t2;
+ if (b instanceof F.UnderlineInputBorder) {
+ t1 = Y.BorderSide_lerp(this.borderSide, b.borderSide, t);
+ t2 = K.BorderRadius_lerp(this.borderRadius, b.borderRadius, t);
+ t2.toString;
+ return new F.UnderlineInputBorder(t2, t1);
+ }
+ return this.super$ShapeBorder$lerpTo(b, t);
+ },
+ paint$6$gapExtent$gapPercentage$gapStart$textDirection: function(canvas, rect, gapExtent, gapPercentage, gapStart, textDirection) {
+ var t1 = this.borderRadius;
+ if (!J.$eq$(t1.bottomLeft, C.Radius_0_0) || !J.$eq$(t1.bottomRight, C.Radius_0_0))
+ canvas.clipPath$1(0, this.getOuterPath$2$textDirection(rect, textDirection));
+ t1 = rect.bottom;
+ canvas.drawLine$3(0, new P.Offset(rect.left, t1), new P.Offset(rect.right, t1), this.borderSide.toPaint$0());
+ },
+ paint$3$textDirection: function(canvas, rect, textDirection) {
+ return this.paint$6$gapExtent$gapPercentage$gapStart$textDirection(canvas, rect, 0, 0, null, textDirection);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof F.InputBorder && J.$eq$(other.borderSide, this.borderSide);
+ },
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.borderSide);
+ }
+ };
+ L._InputBorderGap.prototype = {
+ set$start: function(_, value) {
+ if (value != this._input_decorator$_start) {
+ this._input_decorator$_start = value;
+ this.notifyListeners$0();
+ }
+ },
+ set$extent: function(value) {
+ if (value !== this._extent) {
+ this._extent = value;
+ this.notifyListeners$0();
+ }
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof L._InputBorderGap && other._input_decorator$_start == _this._input_decorator$_start && other._extent === _this._extent;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this._input_decorator$_start, this._extent, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ L._InputBorderTween.prototype = {
+ lerp$1: function(t) {
+ var t1 = Y.ShapeBorder_lerp(this.begin, this.end, t);
+ t1.toString;
+ return type$.InputBorder._as(t1);
+ }
+ };
+ L._InputBorderPainter.prototype = {
+ paint$2: function(canvas, size) {
+ var borderValue, canvasRect, blendedFillColor, _this = this,
+ t1 = _this.border,
+ t2 = _this.borderAnimation;
+ t1.toString;
+ borderValue = t1.transform$1(0, t2.get$value(t2));
+ canvasRect = new P.Rect(0, 0, 0 + size._dx, 0 + size._dy);
+ t2 = _this.hoverColorTween;
+ t1 = _this.hoverAnimation;
+ t2.toString;
+ t1 = t2.transform$1(0, t1.get$value(t1));
+ t1.toString;
+ blendedFillColor = P.Color_alphaBlend(t1, _this.fillColor);
+ if ((blendedFillColor.get$value(blendedFillColor) >>> 24 & 255) > 0) {
+ t1 = borderValue.getOuterPath$2$textDirection(canvasRect, _this.textDirection);
+ t2 = new H.SurfacePaint(new H.SurfacePaintData());
+ t2.set$color(0, blendedFillColor);
+ t2.set$style(0, C.PaintingStyle_0);
+ canvas.drawPath$2(0, t1, t2);
+ }
+ t1 = _this.gap;
+ t2 = t1._input_decorator$_start;
+ borderValue.paint$6$gapExtent$gapPercentage$gapStart$textDirection(canvas, canvasRect, t1._extent, _this.gapAnimation.get$_animation_controller$_value(), t2, _this.textDirection);
+ },
+ shouldRepaint$1: function(oldPainter) {
+ var _this = this;
+ return _this.borderAnimation != oldPainter.borderAnimation || _this.hoverAnimation != oldPainter.hoverAnimation || _this.gapAnimation !== oldPainter.gapAnimation || _this.border != oldPainter.border || !_this.gap.$eq(0, oldPainter.gap) || _this.textDirection !== oldPainter.textDirection;
+ }
+ };
+ L._BorderContainer.prototype = {
+ createState$0: function() {
+ return new L._BorderContainerState(null, C._StateLifecycle_0);
+ }
+ };
+ L._BorderContainerState.prototype = {
+ get$_input_decorator$_controller: function() {
+ return this.___BorderContainerState__controller_isSet ? this.___BorderContainerState__controller : H.throwExpression(H.LateError$fieldNI("_controller"));
+ },
+ get$_hoverColorController: function() {
+ return this.___BorderContainerState__hoverColorController_isSet ? this.___BorderContainerState__hoverColorController : H.throwExpression(H.LateError$fieldNI("_hoverColorController"));
+ },
+ get$_borderAnimation: function() {
+ return this.___BorderContainerState__borderAnimation_isSet ? this.___BorderContainerState__borderAnimation : H.throwExpression(H.LateError$fieldNI("_borderAnimation"));
+ },
+ initState$0: function() {
+ var t1, _this = this, _null = null;
+ _this.super$State$initState();
+ t1 = G.AnimationController$(_null, C.Duration_15000, 0, _null, 1, _this._widget.isHovering ? 1 : 0, _this);
+ _this.___BorderContainerState__hoverColorController_isSet = true;
+ _this.___BorderContainerState__hoverColorController = t1;
+ t1 = G.AnimationController$(_null, C.Duration_200000, 0, _null, 1, _null, _this);
+ _this.___BorderContainerState__controller_isSet = true;
+ _this.___BorderContainerState__controller = t1;
+ t1 = S.CurvedAnimation$(C.Cubic_ifx, _this.get$_input_decorator$_controller(), _null);
+ _this.___BorderContainerState__borderAnimation_isSet = true;
+ _this.___BorderContainerState__borderAnimation = t1;
+ t1 = _this._widget.border;
+ _this.___BorderContainerState__border_isSet = true;
+ _this.___BorderContainerState__border = new L._InputBorderTween(t1, t1);
+ t1 = S.CurvedAnimation$(C.C__Linear, _this.get$_hoverColorController(), _null);
+ _this.___BorderContainerState__hoverAnimation_isSet = true;
+ _this.___BorderContainerState__hoverAnimation = t1;
+ t1 = _this._widget.hoverColor;
+ _this.___BorderContainerState__hoverColorTween_isSet = true;
+ _this.___BorderContainerState__hoverColorTween = new R.ColorTween(C.Color_0, t1);
+ },
+ dispose$0: function(_) {
+ this.get$_input_decorator$_controller().dispose$0(0);
+ this.get$_hoverColorController().dispose$0(0);
+ this.super$__BorderContainerState_State_TickerProviderStateMixin$dispose(0);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, t2, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ t1 = _this._widget.border;
+ t2 = oldWidget.border;
+ if (!J.$eq$(t1, t2)) {
+ t1 = _this._widget.border;
+ _this.___BorderContainerState__border_isSet = true;
+ _this.___BorderContainerState__border = new L._InputBorderTween(t2, t1);
+ t1 = _this.get$_input_decorator$_controller();
+ t1.set$value(0, 0);
+ t1.forward$0(0);
+ }
+ if (!J.$eq$(_this._widget.hoverColor, oldWidget.hoverColor)) {
+ t1 = _this._widget.hoverColor;
+ _this.___BorderContainerState__hoverColorTween_isSet = true;
+ _this.___BorderContainerState__hoverColorTween = new R.ColorTween(C.Color_0, t1);
+ }
+ t1 = _this._widget.isHovering;
+ if (t1 !== oldWidget.isHovering)
+ if (t1)
+ _this.get$_hoverColorController().forward$0(0);
+ else
+ _this.get$_hoverColorController().reverse$0(0);
+ },
+ build$1: function(_, context) {
+ var t6, t7, t8, t9, _this = this,
+ t1 = H.setRuntimeTypeInfo([_this.get$_borderAnimation(), _this._widget.gap, _this.get$_hoverColorController()], type$.JSArray_Listenable),
+ t2 = _this.get$_borderAnimation(),
+ t3 = _this.___BorderContainerState__border_isSet ? _this.___BorderContainerState__border : H.throwExpression(H.LateError$fieldNI("_border")),
+ t4 = _this._widget,
+ t5 = t4.gapAnimation;
+ t4 = t4.gap;
+ t6 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t6.toString;
+ t7 = _this._widget.fillColor;
+ t8 = _this.___BorderContainerState__hoverColorTween_isSet ? _this.___BorderContainerState__hoverColorTween : H.throwExpression(H.LateError$fieldNI("_hoverColorTween"));
+ t9 = _this.___BorderContainerState__hoverAnimation_isSet ? _this.___BorderContainerState__hoverAnimation : H.throwExpression(H.LateError$fieldNI("_hoverAnimation"));
+ _this._widget.toString;
+ return T.CustomPaint$(null, new L._InputBorderPainter(t2, t3, t5, t4, t6.textDirection, t7, t8, t9, new B._MergingListenable(t1)), null);
+ }
+ };
+ L._HelperError.prototype = {
+ createState$0: function() {
+ return new L._HelperErrorState(null, C._StateLifecycle_0);
+ }
+ };
+ L._HelperErrorState.prototype = {
+ get$_input_decorator$_controller: function() {
+ return this.___HelperErrorState__controller_isSet ? this.___HelperErrorState__controller : H.throwExpression(H.LateError$fieldNI("_controller"));
+ },
+ initState$0: function() {
+ var t1, _this = this;
+ _this.super$State$initState();
+ t1 = G.AnimationController$(null, C.Duration_200000, 0, null, 1, null, _this);
+ _this.___HelperErrorState__controller_isSet = true;
+ _this.___HelperErrorState__controller = t1;
+ if (_this._widget.errorText != null) {
+ _this._error = _this._buildError$0();
+ _this.get$_input_decorator$_controller().set$value(0, 1);
+ }
+ t1 = _this.get$_input_decorator$_controller();
+ t1.didRegisterListener$0();
+ t1 = t1.AnimationLocalListenersMixin__listeners;
+ t1._isDirty = true;
+ t1._observer_list$_list.push(_this.get$_input_decorator$_handleChange());
+ },
+ dispose$0: function(_) {
+ this.get$_input_decorator$_controller().dispose$0(0);
+ this.super$__HelperErrorState_State_SingleTickerProviderStateMixin$dispose(0);
+ },
+ _input_decorator$_handleChange$0: function() {
+ this.setState$1(new L._HelperErrorState__handleChange_closure());
+ },
+ didUpdateWidget$1: function(old) {
+ var oldErrorText, t1, _this = this;
+ _this.super$State$didUpdateWidget(old);
+ oldErrorText = old.errorText;
+ t1 = _this._widget.errorText != null;
+ if (t1 !== (oldErrorText != null) || false)
+ if (t1) {
+ _this._error = _this._buildError$0();
+ _this.get$_input_decorator$_controller().forward$0(0);
+ } else
+ _this.get$_input_decorator$_controller().reverse$0(0);
+ },
+ _buildError$0: function() {
+ var t3, t4, t5, t6, _null = null,
+ t1 = this.get$_input_decorator$_controller().get$_animation_controller$_value(),
+ t2 = this.get$_input_decorator$_controller();
+ t2 = new R.Tween(C.Offset_MNd, C.Offset_0_0, type$.Tween_Offset).transform$1(0, t2.get$value(t2));
+ t3 = this._widget;
+ t4 = t3.errorText;
+ t4.toString;
+ t5 = t3.errorStyle;
+ t6 = t3.textAlign;
+ return T.Semantics$(_null, T.Opacity$(false, T.FractionalTranslation$(L.Text$(t4, t3.errorMaxLines, C.TextOverflow_2, _null, t5, t6), true, t2), t1), true, _null, _null, false, _null, _null, _null, _null, true, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ },
+ build$1: function(_, context) {
+ var _this = this,
+ t1 = _this.get$_input_decorator$_controller();
+ if (t1.get$status(t1) === C.AnimationStatus_0) {
+ _this._error = null;
+ _this._widget.toString;
+ _this._helper = null;
+ return C.SizedBox_null_null_null_null;
+ }
+ t1 = _this.get$_input_decorator$_controller();
+ if (t1.get$status(t1) === C.AnimationStatus_3) {
+ _this._helper = null;
+ if (_this._widget.errorText != null)
+ return _this._error = _this._buildError$0();
+ else {
+ _this._error = null;
+ return C.SizedBox_null_null_null_null;
+ }
+ }
+ if (_this._helper == null && _this._widget.errorText != null)
+ return _this._buildError$0();
+ if (_this._error == null)
+ _this._widget.toString;
+ if (_this._widget.errorText != null) {
+ t1 = _this.get$_input_decorator$_controller().get$_animation_controller$_value();
+ return T.Stack$(C.AlignmentDirectional_m1_m1, H.setRuntimeTypeInfo([T.Opacity$(false, _this._helper, 1 - t1), _this._buildError$0()], type$.JSArray_Widget), C.StackFit_0);
+ }
+ return C.SizedBox_null_null_null_null;
+ }
+ };
+ L._HelperErrorState__handleChange_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ L.FloatingLabelBehavior.prototype = {
+ toString$0: function(_) {
+ return this._input_decorator$_name;
+ }
+ };
+ L._DecorationSlot.prototype = {
+ toString$0: function(_) {
+ return this._input_decorator$_name;
+ }
+ };
+ L._Decoration.prototype = {
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof L._Decoration)
+ if (other.contentPadding.$eq(0, _this.contentPadding))
+ if (other.floatingLabelHeight === _this.floatingLabelHeight)
+ if (other.floatingLabelProgress == _this.floatingLabelProgress)
+ if (J.$eq$(other.border, _this.border))
+ if (other.borderGap.$eq(0, _this.borderGap))
+ t1 = other.isDense == _this.isDense && other.visualDensity.$eq(0, _this.visualDensity) && J.$eq$(other.icon, _this.icon) && J.$eq$(other.input, _this.input) && J.$eq$(other.label, _this.label) && J.$eq$(other.hint, _this.hint) && J.$eq$(other.prefix, _this.prefix) && J.$eq$(other.suffix, _this.suffix) && J.$eq$(other.prefixIcon, _this.prefixIcon) && J.$eq$(other.suffixIcon, _this.suffixIcon) && other.helperError.super$Object$$eq(0, _this.helperError) && J.$eq$(other.counter, _this.counter) && other.container.super$Object$$eq(0, _this.container) && true;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.contentPadding, _this.floatingLabelHeight, _this.floatingLabelProgress, _this.border, _this.borderGap, false, _this.isDense, _this.visualDensity, _this.icon, _this.input, _this.label, _this.hint, _this.prefix, _this.suffix, _this.prefixIcon, _this.suffixIcon, _this.helperError, _this.counter, _this.container, false);
+ }
+ };
+ L._RenderDecorationLayout.prototype = {};
+ L._RenderDecoration.prototype = {
+ _input_decorator$_updateChild$3: function(oldChild, newChild, slot) {
+ var _this = this;
+ if (oldChild != null) {
+ _this.dropChild$1(oldChild);
+ _this.children.remove$1(0, slot);
+ }
+ if (newChild != null) {
+ _this.children.$indexSet(0, slot, newChild);
+ _this.adoptChild$1(newChild);
+ }
+ return newChild;
+ },
+ get$_input_decorator$_children: function($async$_) {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var _ = $async$_;
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1;
+ return function $async$get$_input_decorator$_children($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._icon;
+ $async$goto = t1 != null ? 2 : 3;
+ break;
+ case 2:
+ // then
+ $async$goto = 4;
+ return t1;
+ case 4:
+ // after yield
+ case 3:
+ // join
+ t1 = $async$self._input_decorator$_input;
+ $async$goto = t1 != null ? 5 : 6;
+ break;
+ case 5:
+ // then
+ $async$goto = 7;
+ return t1;
+ case 7:
+ // after yield
+ case 6:
+ // join
+ t1 = $async$self._prefixIcon;
+ $async$goto = t1 != null ? 8 : 9;
+ break;
+ case 8:
+ // then
+ $async$goto = 10;
+ return t1;
+ case 10:
+ // after yield
+ case 9:
+ // join
+ t1 = $async$self._suffixIcon;
+ $async$goto = t1 != null ? 11 : 12;
+ break;
+ case 11:
+ // then
+ $async$goto = 13;
+ return t1;
+ case 13:
+ // after yield
+ case 12:
+ // join
+ t1 = $async$self._prefix;
+ $async$goto = t1 != null ? 14 : 15;
+ break;
+ case 14:
+ // then
+ $async$goto = 16;
+ return t1;
+ case 16:
+ // after yield
+ case 15:
+ // join
+ t1 = $async$self._suffix;
+ $async$goto = t1 != null ? 17 : 18;
+ break;
+ case 17:
+ // then
+ $async$goto = 19;
+ return t1;
+ case 19:
+ // after yield
+ case 18:
+ // join
+ t1 = $async$self._input_decorator$_label;
+ $async$goto = t1 != null ? 20 : 21;
+ break;
+ case 20:
+ // then
+ $async$goto = 22;
+ return t1;
+ case 22:
+ // after yield
+ case 21:
+ // join
+ t1 = $async$self._hint;
+ $async$goto = t1 != null ? 23 : 24;
+ break;
+ case 23:
+ // then
+ $async$goto = 25;
+ return t1;
+ case 25:
+ // after yield
+ case 24:
+ // join
+ t1 = $async$self._helperError;
+ $async$goto = t1 != null ? 26 : 27;
+ break;
+ case 26:
+ // then
+ $async$goto = 28;
+ return t1;
+ case 28:
+ // after yield
+ case 27:
+ // join
+ t1 = $async$self._counter;
+ $async$goto = t1 != null ? 29 : 30;
+ break;
+ case 29:
+ // then
+ $async$goto = 31;
+ return t1;
+ case 31:
+ // after yield
+ case 30:
+ // join
+ t1 = $async$self._input_decorator$_container;
+ $async$goto = t1 != null ? 32 : 33;
+ break;
+ case 32:
+ // then
+ $async$goto = 34;
+ return t1;
+ case 34:
+ // after yield
+ case 33:
+ // join
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.RenderBox);
+ },
+ set$decoration: function(_, value) {
+ if (this._input_decorator$_decoration.$eq(0, value))
+ return;
+ this._input_decorator$_decoration = value;
+ this.markNeedsLayout$0();
+ },
+ set$textDirection: function(_, value) {
+ if (this._input_decorator$_textDirection === value)
+ return;
+ this._input_decorator$_textDirection = value;
+ this.markNeedsLayout$0();
+ },
+ set$textBaseline: function(_, value) {
+ if (this._input_decorator$_textBaseline == value)
+ return;
+ this._input_decorator$_textBaseline = value;
+ this.markNeedsLayout$0();
+ },
+ get$textAlignVertical: function() {
+ var t1 = this.get$_isOutlineAligned() ? C.TextAlignVertical_0 : C.TextAlignVertical_m1;
+ return t1;
+ },
+ set$textAlignVertical: function(value) {
+ return;
+ },
+ set$isFocused: function(value) {
+ if (this._isFocused === value)
+ return;
+ this._isFocused = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$expands: function(value) {
+ return;
+ },
+ get$_isOutlineAligned: function() {
+ var t1 = this._input_decorator$_decoration;
+ t1.border.toString;
+ return false;
+ },
+ attach$1: function(owner) {
+ var t1;
+ this.super$RenderObject$attach(owner);
+ for (t1 = new P._SyncStarIterator(this.get$_input_decorator$_children(this)._outerHelper()); t1.moveNext$0();)
+ t1.get$current(t1).attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t1;
+ this.super$AbstractNode$detach(0);
+ for (t1 = new P._SyncStarIterator(this.get$_input_decorator$_children(this)._outerHelper()); t1.moveNext$0();)
+ t1.get$current(t1).detach$0(0);
+ },
+ redepthChildren$0: function() {
+ this.get$_input_decorator$_children(this).forEach$1(0, this.get$redepthChild());
+ },
+ visitChildren$1: function(visitor) {
+ this.get$_input_decorator$_children(this).forEach$1(0, visitor);
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ var _this = this,
+ t1 = _this._icon;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._prefix;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._prefixIcon;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._input_decorator$_label;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._hint;
+ if (t1 != null)
+ if (_this._isFocused)
+ visitor.call$1(t1);
+ else if (_this._input_decorator$_label == null)
+ visitor.call$1(t1);
+ t1 = _this._input_decorator$_input;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._suffixIcon;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._suffix;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._input_decorator$_container;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._helperError;
+ if (t1 != null)
+ visitor.call$1(t1);
+ t1 = _this._counter;
+ if (t1 != null)
+ visitor.call$1(t1);
+ },
+ debugDescribeChildren$0: function() {
+ var _this = this,
+ value = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode),
+ t1 = new L._RenderDecoration_debugDescribeChildren_add(value);
+ t1.call$2(_this._icon, "icon");
+ t1.call$2(_this._input_decorator$_input, "input");
+ t1.call$2(_this._input_decorator$_label, "label");
+ t1.call$2(_this._hint, "hint");
+ t1.call$2(_this._prefix, "prefix");
+ t1.call$2(_this._suffix, "suffix");
+ t1.call$2(_this._prefixIcon, "prefixIcon");
+ t1.call$2(_this._suffixIcon, "suffixIcon");
+ t1.call$2(_this._helperError, "helperError");
+ t1.call$2(_this._counter, "counter");
+ t1.call$2(_this._input_decorator$_container, "container");
+ return value;
+ },
+ get$sizedByParent: function() {
+ return false;
+ },
+ _layoutLineBox$2: function(box, constraints) {
+ var baseline;
+ if (box == null)
+ return 0;
+ box.layout$2$parentUsesSize(0, constraints, true);
+ baseline = box.getDistanceToBaseline$1(C.TextBaseline_0);
+ baseline.toString;
+ return baseline;
+ },
+ _interpolateThree$4: function(begin, middle, end, textAlignVertical) {
+ var t1 = textAlignVertical.y;
+ if (t1 <= 0) {
+ if (begin >= middle)
+ return middle;
+ return begin + (middle - begin) * (t1 + 1);
+ }
+ if (middle >= end)
+ return middle;
+ return middle + (end - middle) * t1;
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t2, t3, t4, t5, t6, t7, _this = this,
+ t1 = _this._icon;
+ t1 = t1 == null ? 0 : t1._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t1.get$computeMinIntrinsicWidth());
+ t2 = _this._input_decorator$_decoration;
+ t3 = _this._prefixIcon;
+ t3 = t3 == null ? 0 : t3._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t3.get$computeMinIntrinsicWidth());
+ t4 = _this._prefix;
+ t4 = t4 == null ? 0 : t4._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t4.get$computeMinIntrinsicWidth());
+ t5 = _this._input_decorator$_input;
+ t5 = t5 == null ? 0 : t5._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t5.get$computeMinIntrinsicWidth());
+ t6 = _this._hint;
+ t6 = t6 == null ? 0 : t6._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t6.get$computeMinIntrinsicWidth());
+ t6 = Math.max(H.checkNum(t5), H.checkNum(t6));
+ t5 = _this._suffix;
+ t5 = t5 == null ? 0 : t5._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t5.get$computeMinIntrinsicWidth());
+ t7 = _this._suffixIcon;
+ t7 = t7 == null ? 0 : t7._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t7.get$computeMinIntrinsicWidth());
+ return t1 + t2.contentPadding.left + t3 + t4 + t6 + t5 + t7 + _this._input_decorator$_decoration.contentPadding.right;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t2, t3, t4, t5, t6, t7, _this = this,
+ t1 = _this._icon;
+ t1 = t1 == null ? 0 : t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth());
+ t2 = _this._input_decorator$_decoration;
+ t3 = _this._prefixIcon;
+ t3 = t3 == null ? 0 : t3._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t3.get$computeMaxIntrinsicWidth());
+ t4 = _this._prefix;
+ t4 = t4 == null ? 0 : t4._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t4.get$computeMaxIntrinsicWidth());
+ t5 = _this._input_decorator$_input;
+ t5 = t5 == null ? 0 : t5._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t5.get$computeMaxIntrinsicWidth());
+ t6 = _this._hint;
+ t6 = t6 == null ? 0 : t6._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t6.get$computeMaxIntrinsicWidth());
+ t6 = Math.max(H.checkNum(t5), H.checkNum(t6));
+ t5 = _this._suffix;
+ t5 = t5 == null ? 0 : t5._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t5.get$computeMaxIntrinsicWidth());
+ t7 = _this._suffixIcon;
+ t7 = t7 == null ? 0 : t7._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t7.get$computeMaxIntrinsicWidth());
+ return t1 + t2.contentPadding.left + t3 + t4 + t6 + t5 + t7 + _this._input_decorator$_decoration.contentPadding.right;
+ },
+ _input_decorator$_lineHeight$2: function(_, width, boxes) {
+ var t1, height, _i, box, t2;
+ for (t1 = boxes.length, height = 0, _i = 0; _i < boxes.length; boxes.length === t1 || (0, H.throwConcurrentModificationError)(boxes), ++_i) {
+ box = boxes[_i];
+ if (box == null)
+ continue;
+ t2 = box._computeIntrinsicDimension$3(C._IntrinsicDimension_2, width, box.get$computeMinIntrinsicHeight());
+ height = Math.max(H.checkNum(t2), height);
+ }
+ return height;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t2, densityOffset, t3, t4, t5, minContainerHeight, _this = this,
+ t1 = type$.JSArray_nullable_RenderBox,
+ subtextHeight = _this._input_decorator$_lineHeight$2(0, width, H.setRuntimeTypeInfo([_this._helperError, _this._counter], t1));
+ if (subtextHeight > 0)
+ subtextHeight += 8;
+ t2 = _this._input_decorator$_decoration.visualDensity;
+ densityOffset = new P.Offset(t2.horizontal, t2.vertical).$mul(0, 4);
+ t2 = _this._input_decorator$_decoration;
+ t3 = _this._input_decorator$_label == null ? 0 : t2.floatingLabelHeight;
+ t1 = _this._input_decorator$_lineHeight$2(0, width, H.setRuntimeTypeInfo([_this._prefix, _this._input_decorator$_input, _this._suffix], t1));
+ t4 = _this._input_decorator$_decoration;
+ t5 = t4.isDense;
+ t5.toString;
+ minContainerHeight = t5 || false ? 0 : 48;
+ return Math.max(t2.contentPadding.top + t3 + t1 + subtextHeight + t4.contentPadding.bottom + densityOffset._dy, minContainerHeight);
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return this.computeMinIntrinsicHeight$1(width);
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var t1 = this._input_decorator$_input,
+ t2 = t1.parentData;
+ t2.toString;
+ t2 = type$.BoxParentData._as(t2).offset;
+ t1 = t1.computeDistanceToActualBaseline$1(baseline);
+ t1.toString;
+ return t2._dy + t1;
+ },
+ performLayout$0: function() {
+ var boxToBaseline, boxConstraints, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, inputWidth, labelWidth, labelHeight, counterHeight, helperErrorExists, helperErrorHeight, bottomHeight, densityOffset, hintHeight, inputDirectHeight, inputHeight, inputInternalBaseline, prefixHeight, suffixHeight, fixAboveInput, fixBelowInput, prefixIconHeight, suffixIconHeight, fixIconHeight, contentHeight, minContainerHeight, maxContainerHeight, containerHeight, interactiveAdjustment, overflow, textAlignVerticalFactor, baselineAdjustment, topInputBaseline, maxVerticalOffset, inputBaseline, outlineBaseline, subtextCounterBaseline, subtextCounterHeight, subtextHelperBaseline, subtextHelperHeight, subtextBaseline, subtextHeight, overallWidth, x, centerLayout, baselineLayout, left, right, start, end, labelX, _this = this, _null = null,
+ _s80_ = string$.x60null_c,
+ _box_0 = {},
+ t1 = type$.BoxConstraints,
+ constraints = t1._as(K.RenderObject.prototype.get$constraints.call(_this));
+ _this._labelTransform = null;
+ boxToBaseline = P.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_RenderBox, type$.double);
+ boxConstraints = constraints.loosen$0();
+ t2 = _this._prefix;
+ boxToBaseline.$indexSet(0, t2, _this._layoutLineBox$2(t2, boxConstraints));
+ t2 = _this._suffix;
+ boxToBaseline.$indexSet(0, t2, _this._layoutLineBox$2(t2, boxConstraints));
+ t2 = _this._icon;
+ boxToBaseline.$indexSet(0, t2, _this._layoutLineBox$2(t2, boxConstraints));
+ t2 = _this._prefixIcon;
+ boxToBaseline.$indexSet(0, t2, _this._layoutLineBox$2(t2, boxConstraints));
+ t2 = _this._suffixIcon;
+ boxToBaseline.$indexSet(0, t2, _this._layoutLineBox$2(t2, boxConstraints));
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth;
+ t3 = _this._icon;
+ if (t3 == null)
+ t3 = C.Size_0_0;
+ else {
+ t3 = t3._size;
+ t3.toString;
+ }
+ t4 = _this._input_decorator$_decoration;
+ t5 = t4.contentPadding;
+ t6 = _this._prefixIcon;
+ if (t6 == null)
+ t6 = C.Size_0_0;
+ else {
+ t6 = t6._size;
+ t6.toString;
+ }
+ t7 = _this._prefix;
+ if (t7 == null)
+ t7 = C.Size_0_0;
+ else {
+ t7 = t7._size;
+ t7.toString;
+ }
+ t8 = _this._suffix;
+ if (t8 == null)
+ t8 = C.Size_0_0;
+ else {
+ t8 = t8._size;
+ t8.toString;
+ }
+ t9 = _this._suffixIcon;
+ t10 = t9 == null;
+ if (t10)
+ t11 = C.Size_0_0;
+ else {
+ t11 = t9._size;
+ t11.toString;
+ }
+ inputWidth = Math.max(0, t2 - (t3._dx + t5.left + t6._dx + t7._dx + t8._dx + t11._dx + t5.right));
+ t5 = P.lerpDouble(1, 1.3333333333333333, t4.floatingLabelProgress);
+ t5.toString;
+ if (t10)
+ t2 = C.Size_0_0;
+ else {
+ t2 = t9._size;
+ t2.toString;
+ }
+ t4.border.toString;
+ t1 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth;
+ t3 = _this._icon;
+ if (t3 == null)
+ t3 = C.Size_0_0;
+ else {
+ t3 = t3._size;
+ t3.toString;
+ }
+ t4 = _this._input_decorator$_decoration.contentPadding;
+ t6 = _this._prefixIcon;
+ if (t6 == null)
+ t6 = C.Size_0_0;
+ else {
+ t6 = t6._size;
+ t6.toString;
+ }
+ labelWidth = Math.max(0, t1 - (t3._dx + t4.left + t6._dx + t2._dx + t4.right));
+ t4 = _this._input_decorator$_label;
+ boxToBaseline.$indexSet(0, t4, _this._layoutLineBox$2(t4, boxConstraints.copyWith$1$maxWidth(labelWidth * t5)));
+ t5 = _this._hint;
+ boxToBaseline.$indexSet(0, t5, _this._layoutLineBox$2(t5, boxConstraints.copyWith$2$maxWidth$minWidth(inputWidth, inputWidth)));
+ t5 = _this._counter;
+ boxToBaseline.$indexSet(0, t5, _this._layoutLineBox$2(t5, boxConstraints));
+ t5 = _this._helperError;
+ t4 = _this._icon;
+ if (t4 == null)
+ t1 = C.Size_0_0;
+ else {
+ t1 = t4._size;
+ t1.toString;
+ }
+ t2 = _this._counter;
+ if (t2 == null)
+ t2 = C.Size_0_0;
+ else {
+ t2 = t2._size;
+ t2.toString;
+ }
+ boxToBaseline.$indexSet(0, t5, _this._layoutLineBox$2(t5, boxConstraints.copyWith$1$maxWidth(Math.max(0, boxConstraints.maxWidth - t1._dx - t2._dx - _this._input_decorator$_decoration.contentPadding.get$horizontal()))));
+ labelHeight = _this._input_decorator$_label == null ? 0 : _this._input_decorator$_decoration.floatingLabelHeight;
+ _this._input_decorator$_decoration.border.toString;
+ t1 = _this._counter;
+ if (t1 == null)
+ counterHeight = 0;
+ else {
+ t1 = boxToBaseline.$index(0, t1);
+ t1.toString;
+ counterHeight = t1 + 8;
+ }
+ t1 = _this._helperError;
+ if (t1 == null)
+ t2 = _null;
+ else {
+ t2 = t1._size;
+ t2.toString;
+ }
+ helperErrorExists = t2 != null && t1._size._dy > 0;
+ helperErrorHeight = !helperErrorExists ? 0 : t1._size._dy + 8;
+ bottomHeight = Math.max(counterHeight, helperErrorHeight);
+ t1 = _this._input_decorator$_decoration.visualDensity;
+ densityOffset = new P.Offset(t1.horizontal, t1.vertical).$mul(0, 4);
+ t1 = _this._input_decorator$_input;
+ t2 = _this._input_decorator$_decoration.contentPadding;
+ t3 = densityOffset._dy;
+ t4 = t3 / 2;
+ boxToBaseline.$indexSet(0, t1, _this._layoutLineBox$2(t1, boxConstraints.deflate$1(new V.EdgeInsets(0, t2.top + labelHeight + t4, 0, t2.bottom + bottomHeight + t4)).copyWith$2$maxWidth$minWidth(inputWidth, inputWidth)));
+ t1 = _this._hint;
+ hintHeight = t1 == null ? 0 : t1._size._dy;
+ t1 = _this._input_decorator$_input;
+ inputDirectHeight = t1 == null ? 0 : t1._size._dy;
+ inputHeight = Math.max(H.checkNum(hintHeight), H.checkNum(inputDirectHeight));
+ t1 = boxToBaseline.$index(0, t1);
+ t1.toString;
+ t2 = boxToBaseline.$index(0, _this._hint);
+ t2.toString;
+ inputInternalBaseline = Math.max(H.checkNum(t1), H.checkNum(t2));
+ t2 = _this._prefix;
+ prefixHeight = t2 == null ? _null : t2._size._dy;
+ if (prefixHeight == null)
+ prefixHeight = 0;
+ t1 = _this._suffix;
+ suffixHeight = t1 == null ? _null : t1._size._dy;
+ if (suffixHeight == null)
+ suffixHeight = 0;
+ t1 = boxToBaseline.$index(0, t2);
+ t1.toString;
+ t2 = boxToBaseline.$index(0, _this._suffix);
+ t2.toString;
+ fixAboveInput = Math.max(0, Math.max(H.checkNum(t1), H.checkNum(t2)) - inputInternalBaseline);
+ t2 = boxToBaseline.$index(0, _this._prefix);
+ t2.toString;
+ t1 = boxToBaseline.$index(0, _this._suffix);
+ t1.toString;
+ fixBelowInput = Math.max(0, Math.max(prefixHeight - t2, suffixHeight - t1) - (inputHeight - inputInternalBaseline));
+ t1 = _this._prefixIcon;
+ prefixIconHeight = t1 == null ? 0 : t1._size._dy;
+ t1 = _this._suffixIcon;
+ suffixIconHeight = t1 == null ? 0 : t1._size._dy;
+ fixIconHeight = Math.max(H.checkNum(prefixIconHeight), H.checkNum(suffixIconHeight));
+ t1 = _this._input_decorator$_decoration;
+ t2 = t1.contentPadding;
+ contentHeight = Math.max(fixIconHeight, labelHeight + t2.top + fixAboveInput + inputHeight + fixBelowInput + t2.bottom + t3);
+ t1 = t1.isDense;
+ t1.toString;
+ if (!t1)
+ t1 = false;
+ else
+ t1 = true;
+ minContainerHeight = t1 ? 0 : 48;
+ maxContainerHeight = boxConstraints.maxHeight - bottomHeight;
+ containerHeight = Math.min(Math.max(contentHeight, minContainerHeight), maxContainerHeight);
+ interactiveAdjustment = minContainerHeight > contentHeight ? (minContainerHeight - contentHeight) / 2 : 0;
+ overflow = Math.max(0, contentHeight - maxContainerHeight);
+ textAlignVerticalFactor = (_this.get$textAlignVertical().y + 1) / 2;
+ baselineAdjustment = fixAboveInput - overflow * (1 - textAlignVerticalFactor);
+ t1 = _this._input_decorator$_decoration.contentPadding;
+ t2 = t1.top;
+ topInputBaseline = t2 + labelHeight + inputInternalBaseline + baselineAdjustment + interactiveAdjustment;
+ maxVerticalOffset = containerHeight - t2 - labelHeight - t1.bottom - (fixAboveInput + inputHeight + fixBelowInput);
+ inputBaseline = topInputBaseline + maxVerticalOffset * textAlignVerticalFactor + t4;
+ outlineBaseline = _this._interpolateThree$4(topInputBaseline, inputInternalBaseline + baselineAdjustment / 2 + (containerHeight - (2 + inputHeight)) / 2, topInputBaseline + maxVerticalOffset, _this.get$textAlignVertical());
+ t1 = _this._counter;
+ if (t1 != null) {
+ t1 = boxToBaseline.$index(0, t1);
+ t1.toString;
+ subtextCounterBaseline = containerHeight + 8 + t1;
+ subtextCounterHeight = _this._counter._size._dy + 8;
+ } else {
+ subtextCounterBaseline = 0;
+ subtextCounterHeight = 0;
+ }
+ if (helperErrorExists) {
+ t1 = boxToBaseline.$index(0, _this._helperError);
+ t1.toString;
+ subtextHelperBaseline = containerHeight + 8 + t1;
+ subtextHelperHeight = helperErrorHeight;
+ } else {
+ subtextHelperBaseline = 0;
+ subtextHelperHeight = 0;
+ }
+ subtextBaseline = Math.max(subtextCounterBaseline, subtextHelperBaseline);
+ subtextHeight = Math.max(subtextCounterHeight, subtextHelperHeight);
+ overallWidth = constraints.maxWidth;
+ t1 = _this._input_decorator$_container;
+ if (t1 != null) {
+ t2 = _this._icon;
+ if (t2 == null)
+ t2 = C.Size_0_0;
+ else {
+ t2 = t2._size;
+ t2.toString;
+ }
+ t1.layout$2$parentUsesSize(0, S.BoxConstraints$tightFor(containerHeight, overallWidth - t2._dx), true);
+ switch (_this._input_decorator$_textDirection) {
+ case C.TextDirection_0:
+ x = 0;
+ break;
+ case C.TextDirection_1:
+ t1 = _this._icon;
+ if (t1 == null)
+ t1 = C.Size_0_0;
+ else {
+ t1 = t1._size;
+ t1.toString;
+ }
+ x = t1._dx;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ t1 = _this._input_decorator$_container.parentData;
+ t1.toString;
+ type$.BoxParentData._as(t1).offset = new P.Offset(x, 0);
+ }
+ _box_0.height = null;
+ centerLayout = new L._RenderDecoration_performLayout_centerLayout(_box_0);
+ _box_0.baseline = null;
+ baselineLayout = new L._RenderDecoration_performLayout_baselineLayout(_box_0, new L._RenderDecorationLayout(boxToBaseline, inputBaseline, outlineBaseline, subtextBaseline, containerHeight, subtextHeight));
+ t1 = _this._input_decorator$_decoration.contentPadding;
+ left = t1.left;
+ right = overallWidth - t1.right;
+ _box_0.height = containerHeight;
+ _box_0.baseline = _this.get$_isOutlineAligned() ? outlineBaseline : inputBaseline;
+ t1 = _this._icon;
+ if (t1 != null) {
+ switch (_this._input_decorator$_textDirection) {
+ case C.TextDirection_0:
+ x = overallWidth - t1._size._dx;
+ break;
+ case C.TextDirection_1:
+ x = 0;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ centerLayout.call$2(t1, x);
+ }
+ switch (_this._input_decorator$_textDirection) {
+ case C.TextDirection_0:
+ t1 = _this._icon;
+ if (t1 == null)
+ t1 = C.Size_0_0;
+ else {
+ t1 = t1._size;
+ t1.toString;
+ }
+ start = right - t1._dx;
+ t1 = _this._prefixIcon;
+ if (t1 != null) {
+ start += _this._input_decorator$_decoration.contentPadding.left;
+ start -= centerLayout.call$2(t1, start - t1._size._dx);
+ }
+ t1 = _this._input_decorator$_label;
+ if (t1 != null) {
+ t2 = t1._size;
+ centerLayout.call$2(t1, start - t2._dx);
+ }
+ t1 = _this._prefix;
+ if (t1 != null)
+ start -= baselineLayout.call$2(t1, start - t1._size._dx);
+ t1 = _this._input_decorator$_input;
+ if (t1 != null)
+ baselineLayout.call$2(t1, start - t1._size._dx);
+ t1 = _this._hint;
+ if (t1 != null)
+ baselineLayout.call$2(t1, start - t1._size._dx);
+ t1 = _this._suffixIcon;
+ if (t1 != null) {
+ end = left - _this._input_decorator$_decoration.contentPadding.left;
+ end += centerLayout.call$2(t1, end);
+ } else
+ end = left;
+ t1 = _this._suffix;
+ if (t1 != null)
+ baselineLayout.call$2(t1, end);
+ break;
+ case C.TextDirection_1:
+ t1 = _this._icon;
+ if (t1 == null)
+ t1 = C.Size_0_0;
+ else {
+ t1 = t1._size;
+ t1.toString;
+ }
+ start = left + t1._dx;
+ t1 = _this._prefixIcon;
+ if (t1 != null) {
+ start -= _this._input_decorator$_decoration.contentPadding.left;
+ start += centerLayout.call$2(t1, start);
+ }
+ t1 = _this._input_decorator$_label;
+ if (t1 != null)
+ centerLayout.call$2(t1, start);
+ t1 = _this._prefix;
+ if (t1 != null)
+ start += baselineLayout.call$2(t1, start);
+ t1 = _this._input_decorator$_input;
+ if (t1 != null)
+ baselineLayout.call$2(t1, start);
+ t1 = _this._hint;
+ if (t1 != null)
+ baselineLayout.call$2(t1, start);
+ t1 = _this._suffixIcon;
+ if (t1 != null) {
+ end = right + _this._input_decorator$_decoration.contentPadding.right;
+ end -= centerLayout.call$2(t1, end - t1._size._dx);
+ } else
+ end = right;
+ t1 = _this._suffix;
+ if (t1 != null)
+ baselineLayout.call$2(t1, end - t1._size._dx);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ t1 = _this._helperError;
+ t2 = t1 == null;
+ if (!t2 || _this._counter != null) {
+ _box_0.height = subtextHeight;
+ _box_0.baseline = subtextBaseline;
+ switch (_this._input_decorator$_textDirection) {
+ case C.TextDirection_0:
+ if (!t2) {
+ t2 = t1._size._dx;
+ t3 = _this._icon;
+ if (t3 == null)
+ t3 = C.Size_0_0;
+ else {
+ t3 = t3._size;
+ t3.toString;
+ }
+ baselineLayout.call$2(t1, right - t2 - t3._dx);
+ }
+ t1 = _this._counter;
+ if (t1 != null)
+ baselineLayout.call$2(t1, left);
+ break;
+ case C.TextDirection_1:
+ if (!t2) {
+ t2 = _this._icon;
+ if (t2 == null)
+ t2 = C.Size_0_0;
+ else {
+ t2 = t2._size;
+ t2.toString;
+ }
+ baselineLayout.call$2(t1, left + t2._dx);
+ }
+ t1 = _this._counter;
+ if (t1 != null)
+ baselineLayout.call$2(t1, right - t1._size._dx);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ }
+ t1 = _this._input_decorator$_label;
+ if (t1 != null) {
+ t2 = t1.parentData;
+ t2.toString;
+ labelX = type$.BoxParentData._as(t2).offset._dx;
+ switch (_this._input_decorator$_textDirection) {
+ case C.TextDirection_0:
+ _this._input_decorator$_decoration.borderGap.set$start(0, labelX + t1._size._dx);
+ break;
+ case C.TextDirection_1:
+ t1 = _this._input_decorator$_decoration;
+ t2 = _this._icon;
+ if (t2 == null)
+ t2 = C.Size_0_0;
+ else {
+ t2 = t2._size;
+ t2.toString;
+ }
+ t1.borderGap.set$start(0, labelX - t2._dx);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ _this._input_decorator$_decoration.borderGap.set$extent(_this._input_decorator$_label._size._dx * 0.75);
+ } else {
+ _this._input_decorator$_decoration.borderGap.set$start(0, _null);
+ _this._input_decorator$_decoration.borderGap.set$extent(0);
+ }
+ _this._size = constraints.constrain$1(new P.Size(overallWidth, containerHeight + subtextHeight));
+ },
+ _paintLabel$2: function(context, offset) {
+ var t1 = this._input_decorator$_label;
+ t1.toString;
+ context.paintChild$2(t1, offset);
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, labelOffset, t, floatingY, dx, t3, t4, _this = this,
+ doPaint = new L._RenderDecoration_paint_doPaint(context, offset);
+ doPaint.call$1(_this._input_decorator$_container);
+ t1 = _this._input_decorator$_label;
+ if (t1 != null) {
+ t2 = t1.parentData;
+ t2.toString;
+ labelOffset = type$.BoxParentData._as(t2).offset;
+ t1 = t1._size;
+ t1.toString;
+ t2 = _this._input_decorator$_decoration;
+ t2.border.borderSide.toString;
+ t = t2.floatingLabelProgress;
+ floatingY = t2.contentPadding.top;
+ t2 = P.lerpDouble(1, 0.75, t);
+ t2.toString;
+ switch (_this._input_decorator$_textDirection) {
+ case C.TextDirection_0:
+ dx = labelOffset._dx + t1._dx * (1 - t2);
+ break;
+ case C.TextDirection_1:
+ dx = labelOffset._dx;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ t1 = labelOffset._dy;
+ t3 = P.lerpDouble(0, floatingY - t1, t);
+ t3.toString;
+ t4 = new E.Matrix4(new Float64Array(16));
+ t4.setIdentity$0();
+ t4.translate$2(0, dx, t1 + t3);
+ t4.scale$1(0, t2);
+ _this._labelTransform = t4;
+ t4 = _this.get$_needsCompositing();
+ t2 = _this._labelTransform;
+ t2.toString;
+ _this._transformLayer = context.pushTransform$5$oldLayer(t4, offset, t2, _this.get$_paintLabel(), _this._transformLayer);
+ } else
+ _this._transformLayer = null;
+ doPaint.call$1(_this._icon);
+ doPaint.call$1(_this._prefix);
+ doPaint.call$1(_this._suffix);
+ doPaint.call$1(_this._prefixIcon);
+ doPaint.call$1(_this._suffixIcon);
+ doPaint.call$1(_this._hint);
+ doPaint.call$1(_this._input_decorator$_input);
+ doPaint.call$1(_this._helperError);
+ doPaint.call$1(_this._counter);
+ },
+ hitTestSelf$1: function(position) {
+ return true;
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t1, t2, t3, t4, offset;
+ for (t1 = new P._SyncStarIterator(this.get$_input_decorator$_children(this)._outerHelper()), t2 = type$.BoxParentData; t1.moveNext$0();) {
+ t3 = t1.get$current(t1);
+ t4 = t3.parentData;
+ t4.toString;
+ offset = t2._as(t4).offset;
+ if (result.addWithPaintOffset$3$hitTest$offset$position(new L._RenderDecoration_hitTestChildren_closure(position, offset, t3), offset, position))
+ return true;
+ }
+ return false;
+ },
+ applyPaintTransform$2: function(child, transform) {
+ var labelOffset, _this = this,
+ t1 = _this._input_decorator$_label;
+ if (child == t1 && _this._labelTransform != null) {
+ t1 = t1.parentData;
+ t1.toString;
+ labelOffset = type$.BoxParentData._as(t1).offset;
+ t1 = _this._labelTransform;
+ t1.toString;
+ transform.multiply$1(0, t1);
+ transform.translate$2(0, -labelOffset._dx, -labelOffset._dy);
+ }
+ _this.super$RenderBox$applyPaintTransform(child, transform);
+ }
+ };
+ L._RenderDecoration_debugDescribeChildren_add.prototype = {
+ call$2: function(child, $name) {
+ if (child != null)
+ this.value.push(Y.DiagnosticableTreeNode$($name, null, child));
+ },
+ $signature: 116
+ };
+ L._RenderDecoration_performLayout_centerLayout.prototype = {
+ call$2: function(box, x) {
+ var t2, t3,
+ t1 = box.parentData;
+ t1.toString;
+ type$.BoxParentData._as(t1);
+ t2 = this._box_0.height;
+ t2.toString;
+ t3 = box._size;
+ t1.offset = new P.Offset(x, (t2 - t3._dy) / 2);
+ return t3._dx;
+ },
+ $signature: 27
+ };
+ L._RenderDecoration_performLayout_baselineLayout.prototype = {
+ call$2: function(box, x) {
+ var t2, t3,
+ t1 = box.parentData;
+ t1.toString;
+ type$.BoxParentData._as(t1);
+ t2 = this._box_0.baseline;
+ t2.toString;
+ t3 = J.$index$asx(this.layout.boxToBaseline, box);
+ t3.toString;
+ t1.offset = new P.Offset(x, t2 - t3);
+ return box._size._dx;
+ },
+ $signature: 27
+ };
+ L._RenderDecoration_paint_doPaint.prototype = {
+ call$1: function(child) {
+ var t1;
+ if (child != null) {
+ t1 = child.parentData;
+ t1.toString;
+ this.context.paintChild$2(child, type$.BoxParentData._as(t1).offset.$add(0, this.offset));
+ }
+ },
+ $signature: 111
+ };
+ L._RenderDecoration_hitTestChildren_closure.prototype = {
+ call$2: function(result, transformed) {
+ return this.child.hitTest$2$position(result, transformed);
+ },
+ $signature: 105
+ };
+ L._DecorationElement.prototype = {
+ get$widget: function() {
+ return type$._Decorator._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ },
+ get$renderObject: function() {
+ return type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(this));
+ },
+ visitChildren$1: function(visitor) {
+ var t1 = this.slotToChild;
+ t1.get$values(t1).forEach$1(0, visitor);
+ },
+ forgetChild$1: function(child) {
+ this.slotToChild.remove$1(0, child._slot);
+ this.super$Element$forgetChild(child);
+ },
+ _input_decorator$_mountChild$2: function(widget, slot) {
+ var t1 = this.slotToChild,
+ oldChild = t1.$index(0, slot),
+ newChild = this.updateChild$3(oldChild, widget, slot);
+ if (oldChild != null)
+ t1.remove$1(0, slot);
+ if (newChild != null)
+ t1.$indexSet(0, slot, newChild);
+ },
+ mount$2: function($parent, newSlot) {
+ var t1, _this = this;
+ _this.super$RenderObjectElement$mount($parent, newSlot);
+ t1 = type$._Decorator;
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.icon, C._DecorationSlot_0);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.input, C._DecorationSlot_1);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.label, C._DecorationSlot_2);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.hint, C._DecorationSlot_3);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.prefix, C._DecorationSlot_4);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.suffix, C._DecorationSlot_5);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.prefixIcon, C._DecorationSlot_6);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.suffixIcon, C._DecorationSlot_7);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.helperError, C._DecorationSlot_8);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.counter, C._DecorationSlot_9);
+ _this._input_decorator$_mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.container, C._DecorationSlot_10);
+ },
+ _input_decorator$_updateChild$2: function(widget, slot) {
+ var t1 = this.slotToChild,
+ oldChild = t1.$index(0, slot),
+ newChild = this.updateChild$3(oldChild, widget, slot);
+ if (oldChild != null)
+ t1.remove$1(0, slot);
+ if (newChild != null)
+ t1.$indexSet(0, slot, newChild);
+ },
+ update$1: function(_, newWidget) {
+ var t1, _this = this;
+ _this.super$RenderObjectElement$update(0, newWidget);
+ t1 = type$._Decorator;
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.icon, C._DecorationSlot_0);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.input, C._DecorationSlot_1);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.label, C._DecorationSlot_2);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.hint, C._DecorationSlot_3);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.prefix, C._DecorationSlot_4);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.suffix, C._DecorationSlot_5);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.prefixIcon, C._DecorationSlot_6);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.suffixIcon, C._DecorationSlot_7);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.helperError, C._DecorationSlot_8);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.counter, C._DecorationSlot_9);
+ _this._input_decorator$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).decoration.container, C._DecorationSlot_10);
+ },
+ _input_decorator$_updateRenderObject$2: function(child, slot) {
+ var t1, _this = this;
+ switch (slot) {
+ case C._DecorationSlot_0:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._icon = t1._input_decorator$_updateChild$3(t1._icon, child, C._DecorationSlot_0);
+ break;
+ case C._DecorationSlot_1:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._input_decorator$_input = t1._input_decorator$_updateChild$3(t1._input_decorator$_input, child, C._DecorationSlot_1);
+ break;
+ case C._DecorationSlot_2:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._input_decorator$_label = t1._input_decorator$_updateChild$3(t1._input_decorator$_label, child, C._DecorationSlot_2);
+ break;
+ case C._DecorationSlot_3:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._hint = t1._input_decorator$_updateChild$3(t1._hint, child, C._DecorationSlot_3);
+ break;
+ case C._DecorationSlot_4:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._prefix = t1._input_decorator$_updateChild$3(t1._prefix, child, C._DecorationSlot_4);
+ break;
+ case C._DecorationSlot_5:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._suffix = t1._input_decorator$_updateChild$3(t1._suffix, child, C._DecorationSlot_5);
+ break;
+ case C._DecorationSlot_6:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._prefixIcon = t1._input_decorator$_updateChild$3(t1._prefixIcon, child, C._DecorationSlot_6);
+ break;
+ case C._DecorationSlot_7:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._suffixIcon = t1._input_decorator$_updateChild$3(t1._suffixIcon, child, C._DecorationSlot_7);
+ break;
+ case C._DecorationSlot_8:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._helperError = t1._input_decorator$_updateChild$3(t1._helperError, child, C._DecorationSlot_8);
+ break;
+ case C._DecorationSlot_9:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._counter = t1._input_decorator$_updateChild$3(t1._counter, child, C._DecorationSlot_9);
+ break;
+ case C._DecorationSlot_10:
+ t1 = type$._RenderDecoration._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._input_decorator$_container = t1._input_decorator$_updateChild$3(t1._input_decorator$_container, child, C._DecorationSlot_10);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ this._input_decorator$_updateRenderObject$2(type$.RenderBox._as(child), slot);
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ this._input_decorator$_updateRenderObject$2(null, slot);
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ }
+ };
+ L._Decorator.prototype = {
+ createElement$0: function(_) {
+ var t1 = type$.Element_2,
+ t2 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t2;
+ return new L._DecorationElement(P.LinkedHashMap_LinkedHashMap$_empty(type$._DecorationSlot, t1), t2, this, C._ElementLifecycle_0, P.HashSet_HashSet(t1));
+ },
+ createRenderObject$1: function(context) {
+ var _this = this,
+ t1 = new L._RenderDecoration(P.LinkedHashMap_LinkedHashMap$_empty(type$._DecorationSlot, type$.RenderBox), _this.decoration, _this.textDirection, _this.textBaseline, _this.textAlignVertical, _this.isFocused, false);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var _this = this;
+ renderObject.set$decoration(0, _this.decoration);
+ renderObject.set$expands(false);
+ renderObject.set$isFocused(_this.isFocused);
+ renderObject.set$textAlignVertical(_this.textAlignVertical);
+ renderObject.set$textBaseline(0, _this.textBaseline);
+ renderObject.set$textDirection(0, _this.textDirection);
+ }
+ };
+ L.InputDecorator.prototype = {
+ createState$0: function() {
+ return new L._InputDecoratorState(new L._InputBorderGap(new P.LinkedList(type$.LinkedList__ListenerEntry)), null, C._StateLifecycle_0);
+ }
+ };
+ L._InputDecoratorState.prototype = {
+ get$_floatingLabelController: function() {
+ return this.___InputDecoratorState__floatingLabelController_isSet ? this.___InputDecoratorState__floatingLabelController : H.throwExpression(H.LateError$fieldNI("_floatingLabelController"));
+ },
+ get$_shakingLabelController: function() {
+ return this.___InputDecoratorState__shakingLabelController_isSet ? this.___InputDecoratorState__shakingLabelController : H.throwExpression(H.LateError$fieldNI("_shakingLabelController"));
+ },
+ initState$0: function() {
+ var t1, t2, labelIsInitiallyFloating, _this = this, _null = null;
+ _this.super$State$initState();
+ t1 = _this._widget;
+ t2 = t1.decoration.floatingLabelBehavior;
+ if (t2 !== C.FloatingLabelBehavior_2)
+ if (t2 !== C.FloatingLabelBehavior_0) {
+ if (t1.isEmpty)
+ t1 = t1.isFocused && true;
+ else
+ t1 = true;
+ labelIsInitiallyFloating = t1;
+ } else
+ labelIsInitiallyFloating = false;
+ else
+ labelIsInitiallyFloating = true;
+ t1 = G.AnimationController$(_null, C.Duration_200000, 0, _null, 1, labelIsInitiallyFloating ? 1 : 0, _this);
+ _this.___InputDecoratorState__floatingLabelController_isSet = true;
+ _this.___InputDecoratorState__floatingLabelController = t1;
+ t1 = _this.get$_floatingLabelController();
+ t1.didRegisterListener$0();
+ t1 = t1.AnimationLocalListenersMixin__listeners;
+ t1._isDirty = true;
+ t1._observer_list$_list.push(_this.get$_input_decorator$_handleChange());
+ t1 = G.AnimationController$(_null, C.Duration_200000, 0, _null, 1, _null, _this);
+ _this.___InputDecoratorState__shakingLabelController_isSet = true;
+ _this.___InputDecoratorState__shakingLabelController = t1;
+ },
+ didChangeDependencies$0: function() {
+ this.super$__InputDecoratorState_State_TickerProviderStateMixin$didChangeDependencies();
+ this._effectiveDecoration = null;
+ },
+ dispose$0: function(_) {
+ this.get$_floatingLabelController().dispose$0(0);
+ this.get$_shakingLabelController().dispose$0(0);
+ this.super$__InputDecoratorState_State_TickerProviderStateMixin$dispose(0);
+ },
+ _input_decorator$_handleChange$0: function() {
+ this.setState$1(new L._InputDecoratorState__handleChange_closure());
+ },
+ get$decoration: function(_) {
+ var t2, _this = this,
+ t1 = _this._effectiveDecoration;
+ if (t1 == null) {
+ t1 = _this._widget.decoration;
+ t2 = _this._framework$_element;
+ t2.toString;
+ t2 = _this._effectiveDecoration = t1.applyDefaults$1(K.Theme_of(t2).inputDecorationTheme);
+ t1 = t2;
+ }
+ return t1;
+ },
+ get$_floatingLabelEnabled: function() {
+ var t1, _this = this;
+ _this.get$decoration(_this).toString;
+ t1 = _this.get$decoration(_this);
+ return t1.floatingLabelBehavior !== C.FloatingLabelBehavior_0;
+ },
+ didUpdateWidget$1: function(old) {
+ var t1, t2, floatBehaviorChanged, t3, errorText, _this = this;
+ _this.super$State$didUpdateWidget(old);
+ t1 = _this._widget.decoration;
+ t2 = old.decoration;
+ if (!t1.$eq(0, t2))
+ _this._effectiveDecoration = null;
+ t1 = _this._widget;
+ floatBehaviorChanged = t1.decoration.floatingLabelBehavior !== t2.floatingLabelBehavior || false;
+ if (t1.isEmpty)
+ t1 = t1.isFocused && true;
+ else
+ t1 = true;
+ if (old.isEmpty)
+ t3 = old.isFocused && true;
+ else
+ t3 = true;
+ if (t1 !== t3 || floatBehaviorChanged) {
+ if (_this.get$_floatingLabelEnabled()) {
+ t1 = _this._widget;
+ if (t1.isEmpty)
+ t3 = t1.isFocused && true;
+ else
+ t3 = true;
+ t1 = t3 || t1.decoration.floatingLabelBehavior === C.FloatingLabelBehavior_2;
+ } else
+ t1 = false;
+ if (t1)
+ _this.get$_floatingLabelController().forward$0(0);
+ else
+ _this.get$_floatingLabelController().reverse$0(0);
+ }
+ errorText = _this.get$decoration(_this).errorText;
+ t1 = _this.get$_floatingLabelController();
+ if (t1.get$status(t1) === C.AnimationStatus_3 && errorText != null && errorText !== t2.errorText) {
+ t1 = _this.get$_shakingLabelController();
+ t1.set$value(0, 0);
+ t1.forward$0(0);
+ }
+ },
+ _getActiveColor$1: function(themeData) {
+ if (this._widget.isFocused)
+ switch (themeData.colorScheme.brightness) {
+ case C.Brightness_0:
+ return themeData.accentColor;
+ case C.Brightness_1:
+ return themeData.primaryColor;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return themeData.hintColor;
+ },
+ _getDefaultBorderColor$1: function(themeData) {
+ var t1, enabledColor, hoverColor, _this = this;
+ if (_this._widget.isFocused)
+ switch (themeData.colorScheme.brightness) {
+ case C.Brightness_0:
+ return themeData.accentColor;
+ case C.Brightness_1:
+ return themeData.primaryColor;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ _this.get$decoration(_this).filled.toString;
+ t1 = themeData.colorScheme.onSurface.value;
+ enabledColor = P.Color$fromARGB(97, t1 >>> 16 & 255, t1 >>> 8 & 255, t1 & 255);
+ if (_this._widget.isHovering) {
+ _this.get$decoration(_this).toString;
+ t1 = true;
+ } else
+ t1 = false;
+ if (t1) {
+ _this.get$decoration(_this).toString;
+ hoverColor = themeData.hoverColor;
+ t1 = hoverColor.value;
+ return P.Color_alphaBlend(P.Color$fromARGB(31, t1 >>> 16 & 255, t1 >>> 8 & 255, t1 & 255), enabledColor);
+ }
+ return enabledColor;
+ },
+ _getFillColor$1: function(themeData) {
+ var _this = this;
+ if (_this.get$decoration(_this).filled !== true)
+ return C.Color_0;
+ _this.get$decoration(_this).toString;
+ switch (themeData.colorScheme.brightness) {
+ case C.Brightness_0:
+ _this.get$decoration(_this).toString;
+ return C.Color_452984831;
+ case C.Brightness_1:
+ _this.get$decoration(_this).toString;
+ return C.Color_167772160;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _getHoverColor$1: function(themeData) {
+ var _this = this;
+ if (_this.get$decoration(_this).filled != null)
+ _this.get$decoration(_this).filled.toString;
+ return C.Color_0;
+ },
+ _getDefaultIconColor$1: function(themeData) {
+ this.get$decoration(this).toString;
+ switch (themeData.colorScheme.brightness) {
+ case C.Brightness_0:
+ return C.Color_3019898879;
+ case C.Brightness_1:
+ return C.Color_1929379840;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$_hasInlineLabel: function() {
+ var t1 = this._widget;
+ if (t1.isEmpty)
+ t1 = t1.isFocused && true;
+ else
+ t1 = true;
+ if (!t1)
+ this.get$decoration(this).toString;
+ return false;
+ },
+ _getHelperStyle$1: function(themeData) {
+ var _this = this;
+ _this.get$decoration(_this).toString;
+ return themeData.textTheme.caption.copyWith$1$color(themeData.hintColor).merge$1(_this.get$decoration(_this).helperStyle);
+ },
+ _getDefaultBorder$1: function(themeData) {
+ var borderColor, t1, borderWeight, _this = this;
+ _this.get$decoration(_this).toString;
+ _this.get$decoration(_this).toString;
+ borderColor = _this.get$decoration(_this).errorText == null ? _this._getDefaultBorderColor$1(themeData) : themeData.errorColor;
+ _this.get$decoration(_this).toString;
+ _this.get$decoration(_this);
+ t1 = _this.get$decoration(_this);
+ t1.toString;
+ borderWeight = _this._widget.isFocused ? 2 : 1;
+ _this.get$decoration(_this).toString;
+ return new F.UnderlineInputBorder(C.BorderRadius_tLn1, new Y.BorderSide(borderColor, borderWeight, C.BorderStyle_1));
+ },
+ build$1: function(_, context) {
+ var t3, inlineStyle, hintStyle, hint, t4, t5, isError, border, t6, t7, t8, inlineLabelStyle, decorationIsDense, t9, t10, t11, t12, color, t13, counter, t14, t15, t16, floatingLabelHeight, contentPadding, t17, t18, t19, _this = this, _null = null,
+ themeData = K.Theme_of(context),
+ t1 = themeData.textTheme,
+ t2 = t1.subtitle1;
+ t2.toString;
+ t2 = t2.merge$1(_this._widget.baseStyle);
+ _this.get$decoration(_this).toString;
+ t3 = themeData.hintColor;
+ inlineStyle = t2.copyWith$1$color(t3);
+ t2 = inlineStyle.textBaseline;
+ t2.toString;
+ hintStyle = inlineStyle.merge$1(_this.get$decoration(_this).hintStyle);
+ if (_this.get$decoration(_this).hintText == null)
+ hint = _null;
+ else {
+ t3 = _this._widget.isEmpty && !_this.get$_hasInlineLabel() ? 1 : 0;
+ t4 = _this.get$decoration(_this).hintText;
+ t4.toString;
+ t5 = _this._widget.textAlign;
+ hint = G.AnimatedOpacity$(true, L.Text$(t4, _this.get$decoration(_this).hintMaxLines, C.TextOverflow_2, _null, hintStyle, t5), C.Cubic_ifx, C.Duration_200000, t3);
+ }
+ isError = _this.get$decoration(_this).errorText != null;
+ _this.get$decoration(_this).toString;
+ if (_this._widget.isFocused)
+ if (isError)
+ _this.get$decoration(_this).toString;
+ else
+ _this.get$decoration(_this).toString;
+ else if (isError)
+ _this.get$decoration(_this).toString;
+ else
+ _this.get$decoration(_this).toString;
+ border = _this._getDefaultBorder$1(themeData);
+ t3 = _this._borderGap;
+ t4 = _this.get$_floatingLabelController();
+ t4.toString;
+ t5 = _this._getFillColor$1(themeData);
+ t6 = _this._getHoverColor$1(themeData);
+ if (_this._widget.isHovering) {
+ _this.get$decoration(_this).toString;
+ t7 = true;
+ } else
+ t7 = false;
+ t8 = _this.get$decoration(_this);
+ inlineLabelStyle = inlineStyle.merge$1(t8.labelStyle);
+ _this.get$decoration(_this).toString;
+ _this.get$decoration(_this).toString;
+ t8 = _this.get$decoration(_this);
+ t8.toString;
+ _this.get$decoration(_this).toString;
+ t8 = _this.get$decoration(_this);
+ t8.toString;
+ _this._getActiveColor$1(themeData);
+ decorationIsDense = _this.get$decoration(_this).isDense === true;
+ if (!_this._widget.isFocused)
+ _this._getDefaultIconColor$1(themeData);
+ _this.get$decoration(_this).toString;
+ _this.get$decoration(_this).toString;
+ _this.get$decoration(_this).toString;
+ t8 = _this._widget.textAlign;
+ t9 = _this.get$decoration(_this).helperText;
+ t10 = _this._getHelperStyle$1(themeData);
+ t11 = _this.get$decoration(_this).helperMaxLines;
+ t12 = _this.get$decoration(_this).errorText;
+ _this.get$decoration(_this).toString;
+ color = themeData.errorColor;
+ t1 = t1.caption.copyWith$1$color(color).merge$1(_this.get$decoration(_this).errorStyle);
+ t13 = _this.get$decoration(_this).errorMaxLines;
+ if (_this.get$decoration(_this).counter != null)
+ counter = _this.get$decoration(_this).counter;
+ else if (_this.get$decoration(_this).counterText != null && _this.get$decoration(_this).counterText !== "") {
+ t14 = _this._widget.isFocused;
+ t15 = _this.get$decoration(_this).counterText;
+ t15.toString;
+ t16 = _this._getHelperStyle$1(themeData).merge$1(_this.get$decoration(_this).counterStyle);
+ counter = T.Semantics$(_null, L.Text$(t15, _null, C.TextOverflow_2, _this.get$decoration(_this).semanticCounterText, t16, _null), true, _null, _null, false, _null, _null, _null, _null, t14, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ } else
+ counter = _null;
+ t14 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t14.toString;
+ _this.get$decoration(_this).toString;
+ _this.get$decoration(_this).toString;
+ border.toString;
+ t15 = inlineLabelStyle.fontSize;
+ t15.toString;
+ floatingLabelHeight = (4 + 0.75 * t15) * F.MediaQuery_textScaleFactorOf(context);
+ if (_this.get$decoration(_this).filled === true)
+ contentPadding = decorationIsDense ? C.EdgeInsets_12_8_12_8 : C.EdgeInsets_12_12_12_12;
+ else
+ contentPadding = decorationIsDense ? C.EdgeInsets_0_8_0_8 : C.EdgeInsets_0_12_0_12;
+ _this.get$decoration(_this).toString;
+ t15 = _this.get$_floatingLabelController().get$_animation_controller$_value();
+ t16 = _this.get$decoration(_this).alignLabelWithHint;
+ t17 = _this.get$decoration(_this).isDense;
+ t18 = themeData.visualDensity;
+ t19 = _this._widget;
+ return new L._Decorator(new L._Decoration(contentPadding, false, floatingLabelHeight, t15, border, t3, t16 === true, t17, t18, _null, t19.child, _null, hint, _null, _null, _null, _null, new L._HelperError(t8, t9, t10, t11, t12, t1, t13, _null), counter, new L._BorderContainer(border, t3, t4, t5, t6, t7, _null), false), t14.textDirection, t2, t19.textAlignVertical, t19.isFocused, false, _null);
+ }
+ };
+ L._InputDecoratorState__handleChange_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ L.InputDecoration.prototype = {
+ copyWith$31$alignLabelWithHint$border$contentPadding$counter$counterStyle$counterText$disabledBorder$enabled$enabledBorder$errorBorder$errorMaxLines$errorStyle$errorText$fillColor$filled$floatingLabelBehavior$focusColor$focusedBorder$focusedErrorBorder$hasFloatingPlaceholder$helperMaxLines$helperStyle$hintMaxLines$hintStyle$hoverColor$isCollapsed$isDense$labelStyle$prefixStyle$semanticCounterText$suffixStyle: function(alignLabelWithHint, border, contentPadding, counter, counterStyle, counterText, disabledBorder, enabled, enabledBorder, errorBorder, errorMaxLines, errorStyle, errorText, fillColor, filled, floatingLabelBehavior, focusColor, focusedBorder, focusedErrorBorder, hasFloatingPlaceholder, helperMaxLines, helperStyle, hintMaxLines, hintStyle, hoverColor, isCollapsed, isDense, labelStyle, prefixStyle, semanticCounterText, suffixStyle) {
+ var _this = this,
+ t1 = hintMaxLines == null ? _this.hintMaxLines : hintMaxLines,
+ t2 = errorText == null ? _this.errorText : errorText,
+ t3 = floatingLabelBehavior == null ? _this.floatingLabelBehavior : floatingLabelBehavior,
+ t4 = isDense == null ? _this.isDense : isDense,
+ t5 = counter == null ? _this.counter : counter,
+ t6 = counterText == null ? _this.counterText : counterText,
+ t7 = counterStyle == null ? _this.counterStyle : counterStyle,
+ t8 = filled == null ? _this.filled : filled,
+ t9 = semanticCounterText == null ? _this.semanticCounterText : semanticCounterText,
+ t10 = alignLabelWithHint == null ? _this.alignLabelWithHint : alignLabelWithHint;
+ return L.InputDecoration$(t10, _this.border, _this.contentPadding, t5, t7, t6, _this.disabledBorder, enabled !== false, _this.enabledBorder, _this.errorBorder, _this.errorMaxLines, _this.errorStyle, t2, _this.fillColor, t8, t3, _this.focusColor, _this.focusedBorder, _this.focusedErrorBorder, hasFloatingPlaceholder !== false, _this.helperMaxLines, _this.helperStyle, _this.helperText, t1, _this.hintStyle, _this.hintText, _this.hoverColor, _this.icon, isCollapsed === true, t4, _this.labelStyle, _this.labelText, _this.prefix, _this.prefixIcon, _this.prefixIconConstraints, _this.prefixStyle, _this.prefixText, t9, _this.suffix, _this.suffixIcon, _this.suffixIconConstraints, _this.suffixStyle, _this.suffixText);
+ },
+ copyWith$25$alignLabelWithHint$border$contentPadding$counterStyle$disabledBorder$enabledBorder$errorBorder$errorMaxLines$errorStyle$fillColor$filled$floatingLabelBehavior$focusColor$focusedBorder$focusedErrorBorder$hasFloatingPlaceholder$helperMaxLines$helperStyle$hintStyle$hoverColor$isCollapsed$isDense$labelStyle$prefixStyle$suffixStyle: function(alignLabelWithHint, border, contentPadding, counterStyle, disabledBorder, enabledBorder, errorBorder, errorMaxLines, errorStyle, fillColor, filled, floatingLabelBehavior, focusColor, focusedBorder, focusedErrorBorder, hasFloatingPlaceholder, helperMaxLines, helperStyle, hintStyle, hoverColor, isCollapsed, isDense, labelStyle, prefixStyle, suffixStyle) {
+ return this.copyWith$31$alignLabelWithHint$border$contentPadding$counter$counterStyle$counterText$disabledBorder$enabled$enabledBorder$errorBorder$errorMaxLines$errorStyle$errorText$fillColor$filled$floatingLabelBehavior$focusColor$focusedBorder$focusedErrorBorder$hasFloatingPlaceholder$helperMaxLines$helperStyle$hintMaxLines$hintStyle$hoverColor$isCollapsed$isDense$labelStyle$prefixStyle$semanticCounterText$suffixStyle(alignLabelWithHint, border, contentPadding, null, counterStyle, null, disabledBorder, null, enabledBorder, errorBorder, errorMaxLines, errorStyle, null, fillColor, filled, floatingLabelBehavior, focusColor, focusedBorder, focusedErrorBorder, hasFloatingPlaceholder, helperMaxLines, helperStyle, null, hintStyle, hoverColor, isCollapsed, isDense, labelStyle, prefixStyle, null, suffixStyle);
+ },
+ copyWith$2$enabled$hintMaxLines: function(enabled, hintMaxLines) {
+ return this.copyWith$31$alignLabelWithHint$border$contentPadding$counter$counterStyle$counterText$disabledBorder$enabled$enabledBorder$errorBorder$errorMaxLines$errorStyle$errorText$fillColor$filled$floatingLabelBehavior$focusColor$focusedBorder$focusedErrorBorder$hasFloatingPlaceholder$helperMaxLines$helperStyle$hintMaxLines$hintStyle$hoverColor$isCollapsed$isDense$labelStyle$prefixStyle$semanticCounterText$suffixStyle(null, null, null, null, null, null, null, enabled, null, null, null, null, null, null, null, null, null, null, null, null, null, null, hintMaxLines, null, null, null, null, null, null, null, null);
+ },
+ applyDefaults$1: function(theme) {
+ var _this = this, _null = null,
+ t1 = _this.counterStyle;
+ if (t1 == null)
+ t1 = _null;
+ return _this.copyWith$25$alignLabelWithHint$border$contentPadding$counterStyle$disabledBorder$enabledBorder$errorBorder$errorMaxLines$errorStyle$fillColor$filled$floatingLabelBehavior$focusColor$focusedBorder$focusedErrorBorder$hasFloatingPlaceholder$helperMaxLines$helperStyle$hintStyle$hoverColor$isCollapsed$isDense$labelStyle$prefixStyle$suffixStyle(_this.alignLabelWithHint === true, _null, _null, t1, _null, _null, _null, _null, _null, _null, _this.filled === true, _this.floatingLabelBehavior, _null, _null, _null, true, _null, _null, _null, _null, false, _this.isDense === true, _null, _null, _null);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof L.InputDecoration)
+ if (other.hintText == _this.hintText)
+ if (other.hintMaxLines == _this.hintMaxLines)
+ if (other.errorText == _this.errorText)
+ if (other.floatingLabelBehavior === _this.floatingLabelBehavior)
+ if (other.isDense == _this.isDense)
+ if (J.$eq$(other.counter, _this.counter))
+ if (other.counterText == _this.counterText)
+ if (J.$eq$(other.counterStyle, _this.counterStyle))
+ if (other.filled == _this.filled)
+ t1 = other.semanticCounterText == _this.semanticCounterText && other.alignLabelWithHint == _this.alignLabelWithHint;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this,
+ t1 = _this.border;
+ return P.hashList([_this.icon, _this.labelText, _this.labelStyle, _this.helperText, _this.helperStyle, _this.helperMaxLines, _this.hintText, _this.hintStyle, _this.hintMaxLines, _this.errorText, _this.errorStyle, _this.errorMaxLines, true, _this.floatingLabelBehavior, _this.isDense, _this.contentPadding, false, _this.filled, _this.fillColor, _this.focusColor, _this.hoverColor, t1, true, _this.prefixIcon, _this.prefix, _this.prefixText, _this.prefixStyle, _this.prefixIconConstraints, _this.suffixIcon, _this.suffix, _this.suffixText, _this.suffixStyle, _this.suffixIconConstraints, _this.counter, _this.counterText, _this.counterStyle, _this.errorBorder, _this.focusedBorder, _this.focusedErrorBorder, _this.disabledBorder, _this.enabledBorder, t1, true, _this.semanticCounterText, _this.alignLabelWithHint]);
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_String),
+ t2 = _this.hintText;
+ if (t2 != null)
+ t1.push('hintText: "' + t2 + '"');
+ t2 = _this.hintMaxLines;
+ if (t2 != null)
+ t1.push('hintMaxLines: "' + H.S(t2) + '"');
+ t2 = _this.errorText;
+ if (t2 != null)
+ t1.push('errorText: "' + t2 + '"');
+ t1.push("floatingLabelBehavior: " + _this.floatingLabelBehavior.toString$0(0));
+ t2 = _this.isDense;
+ if (t2 === true)
+ t1.push("isDense: " + H.S(t2));
+ t2 = _this.counter;
+ if (t2 != null)
+ t1.push("counter: " + t2.toString$0(0));
+ t2 = _this.counterText;
+ if (t2 != null)
+ t1.push("counterText: " + t2);
+ t2 = _this.counterStyle;
+ if (t2 != null)
+ t1.push("counterStyle: " + t2.toString$0(0));
+ if (_this.filled === true)
+ t1.push("filled: true");
+ t2 = _this.semanticCounterText;
+ if (t2 != null)
+ t1.push("semanticCounterText: " + t2);
+ t2 = _this.alignLabelWithHint;
+ if (t2 != null)
+ t1.push("alignLabelWithHint: " + H.S(t2));
+ return "InputDecoration(" + C.JSArray_methods.join$1(t1, ", ") + ")";
+ }
+ };
+ L.InputDecorationTheme.prototype = {
+ get$hashCode: function(_) {
+ return P.hashList([null, null, null, null, null, null, true, C.FloatingLabelBehavior_1, false, null, false, null, null, null, false, null, null, null, null, null, null, null, null, null, false]);
+ },
+ $eq: function(_, other) {
+ var t1;
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ if (other instanceof L.InputDecorationTheme)
+ t1 = true;
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ L._InputDecorationTheme_Object_Diagnosticable.prototype = {};
+ L.__BorderContainerState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ L.__HelperErrorState_State_SingleTickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var t2,
+ t1 = this.SingleTickerProviderStateMixin__ticker;
+ if (t1 != null) {
+ t2 = this._framework$_element;
+ t2.toString;
+ t1.set$muted(0, !U.TickerMode_of(t2));
+ }
+ this.super$State$didChangeDependencies();
+ }
+ };
+ L.__InputDecoratorState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ Q.ListTileStyle.prototype = {
+ toString$0: function(_) {
+ return this._list_tile$_name;
+ }
+ };
+ Q.ListTileTheme.prototype = {
+ wrap$2: function(_, context, child) {
+ var _this = this;
+ return Q.ListTileTheme$(child, _this.contentPadding, false, _this.enableFeedback, _this.horizontalTitleGap, _this.iconColor, _this.minLeadingWidth, _this.minVerticalPadding, _this.selectedColor, _this.selectedTileColor, _this.shape, _this.style, _this.textColor, _this.tileColor);
+ },
+ updateShouldNotify$1: function(oldWidget) {
+ var t1;
+ if (this.style === oldWidget.style)
+ t1 = false;
+ else
+ t1 = true;
+ return t1;
+ }
+ };
+ Q.ListTile.prototype = {
+ _iconColor$2: function(theme, tileTheme) {
+ switch (theme.colorScheme.brightness) {
+ case C.Brightness_1:
+ return C.Color_1929379840;
+ case C.Brightness_0:
+ return null;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _textColor$3: function(theme, tileTheme, defaultColor) {
+ return defaultColor;
+ },
+ _isDenseLayout$1: function(tileTheme) {
+ var t1 = tileTheme == null && null;
+ return t1 === true;
+ },
+ _tileBackgroundColor$1: function(tileTheme) {
+ return C.Color_0;
+ },
+ build$1: function(_, context) {
+ var t2, style, color, titleStyle, titleText, t3, t4, subtitleStyle, subtitleText, trailingIcon, resolvedMouseCursor, t5, _this = this, _null = null,
+ theme = K.Theme_of(context),
+ result = context.dependOnInheritedWidgetOfExactType$1$0(type$.ListTileTheme),
+ tileTheme = result == null ? C.ListTileTheme_Drw : result,
+ t1 = _this._iconColor$2(theme, tileTheme);
+ switch (tileTheme.style) {
+ case C.ListTileStyle_1:
+ t2 = theme.textTheme.bodyText1;
+ t2.toString;
+ style = t2;
+ break;
+ case C.ListTileStyle_0:
+ t2 = theme.textTheme.subtitle1;
+ t2.toString;
+ style = t2;
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ style = _null;
+ }
+ color = _this._textColor$3(theme, tileTheme, style.color);
+ _this._isDenseLayout$1(tileTheme);
+ titleStyle = style.copyWith$1$color(color);
+ titleText = G.AnimatedDefaultTextStyle$(_this.title, C.C__Linear, C.Duration_200000, titleStyle);
+ t2 = _this.subtitle;
+ if (t2 != null) {
+ t3 = theme.textTheme;
+ t4 = t3.bodyText2;
+ t4.toString;
+ color = _this._textColor$3(theme, tileTheme, t3.caption.color);
+ _this._isDenseLayout$1(tileTheme);
+ subtitleStyle = t4.copyWith$1$color(color);
+ subtitleText = G.AnimatedDefaultTextStyle$(t2, C.C__Linear, C.Duration_200000, subtitleStyle);
+ } else {
+ subtitleStyle = _null;
+ subtitleText = subtitleStyle;
+ }
+ trailingIcon = Y.IconTheme_merge(_this.trailing, new T.IconThemeData(t1, _null, _null));
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ t2 = P.LinkedHashSet_LinkedHashSet(type$.MaterialState);
+ t3 = _this.onTap == null && true;
+ if (t3)
+ t2.add$1(0, C.MaterialState_5);
+ resolvedMouseCursor = V.MaterialStateProperty_resolveAs(C._EnabledAndDisabledMouseCursor_SystemMouseCursor_click_clickable, t2, type$.MouseCursor);
+ t2 = _this._tileBackgroundColor$1(tileTheme);
+ _this._isDenseLayout$1(tileTheme);
+ t3 = theme.visualDensity;
+ t4 = titleStyle.textBaseline;
+ t4.toString;
+ t5 = subtitleStyle == null ? _null : subtitleStyle.textBaseline;
+ return R.InkWell$(false, true, T.Semantics$(_null, new T.ColoredBox(t2, Q.SafeArea$(false, new Q._ListTile(_null, titleText, subtitleText, trailingIcon, false, false, t3, t1.textDirection, t4, t5, 16, 4, 40, _null), C.EdgeInsets_16_0_16_0, false), _null), false, _null, true, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, false, _null, _null, _null), tileTheme.shape, true, _null, _null, _null, _null, resolvedMouseCursor, _null, _null, _null, _null, _this.onTap, _null, _null, _null);
+ }
+ };
+ Q._ListTileSlot.prototype = {
+ toString$0: function(_) {
+ return this._list_tile$_name;
+ }
+ };
+ Q._ListTile.prototype = {
+ createElement$0: function(_) {
+ var t1 = type$.Element_2,
+ t2 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t2;
+ return new Q._ListTileElement(P.LinkedHashMap_LinkedHashMap$_empty(type$._ListTileSlot, t1), t2, this, C._ElementLifecycle_0, P.HashSet_HashSet(t1));
+ },
+ createRenderObject$1: function(context) {
+ var _this = this,
+ t1 = _this.visualDensity;
+ t1 = new Q._RenderListTile(P.LinkedHashMap_LinkedHashMap$_empty(type$._ListTileSlot, type$.RenderBox), false, t1, false, _this.textDirection, _this.titleBaselineType, _this.subtitleBaselineType, _this.horizontalTitleGap + t1.horizontal * 2, _this.minVerticalPadding, _this.minLeadingWidth);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var _this = this;
+ renderObject.set$isThreeLine(false);
+ renderObject.set$isDense(false);
+ renderObject.set$visualDensity(_this.visualDensity);
+ renderObject.set$textDirection(0, _this.textDirection);
+ renderObject.set$titleBaselineType(_this.titleBaselineType);
+ renderObject.set$subtitleBaselineType(_this.subtitleBaselineType);
+ renderObject.set$horizontalTitleGap(_this.horizontalTitleGap);
+ renderObject.set$minLeadingWidth(_this.minLeadingWidth);
+ renderObject.set$minVerticalPadding(_this.minVerticalPadding);
+ }
+ };
+ Q._ListTileElement.prototype = {
+ get$widget: function() {
+ return type$._ListTile._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ },
+ get$renderObject: function() {
+ return type$._RenderListTile._as(N.RenderObjectElement.prototype.get$renderObject.call(this));
+ },
+ visitChildren$1: function(visitor) {
+ var t1 = this.slotToChild;
+ t1.get$values(t1).forEach$1(0, visitor);
+ },
+ forgetChild$1: function(child) {
+ this.slotToChild.remove$1(0, child._slot);
+ this.super$Element$forgetChild(child);
+ },
+ _mountChild$2: function(widget, slot) {
+ var t1 = this.slotToChild,
+ oldChild = t1.$index(0, slot),
+ newChild = this.updateChild$3(oldChild, widget, slot);
+ if (oldChild != null)
+ t1.remove$1(0, slot);
+ if (newChild != null)
+ t1.$indexSet(0, slot, newChild);
+ },
+ mount$2: function($parent, newSlot) {
+ var t1, _this = this;
+ _this.super$RenderObjectElement$mount($parent, newSlot);
+ t1 = type$._ListTile;
+ _this._mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).leading, C._ListTileSlot_0);
+ _this._mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).title, C._ListTileSlot_1);
+ _this._mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).subtitle, C._ListTileSlot_2);
+ _this._mountChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).trailing, C._ListTileSlot_3);
+ },
+ _list_tile$_updateChild$2: function(widget, slot) {
+ var t1 = this.slotToChild,
+ oldChild = t1.$index(0, slot),
+ newChild = this.updateChild$3(oldChild, widget, slot);
+ if (oldChild != null)
+ t1.remove$1(0, slot);
+ if (newChild != null)
+ t1.$indexSet(0, slot, newChild);
+ },
+ update$1: function(_, newWidget) {
+ var t1, _this = this;
+ _this.super$RenderObjectElement$update(0, newWidget);
+ t1 = type$._ListTile;
+ _this._list_tile$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).leading, C._ListTileSlot_0);
+ _this._list_tile$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).title, C._ListTileSlot_1);
+ _this._list_tile$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).subtitle, C._ListTileSlot_2);
+ _this._list_tile$_updateChild$2(t1._as(N.RenderObjectElement.prototype.get$widget.call(_this)).trailing, C._ListTileSlot_3);
+ },
+ _updateRenderObject$2: function(child, slot) {
+ var t1, _this = this;
+ switch (slot) {
+ case C._ListTileSlot_0:
+ t1 = type$._RenderListTile._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._list_tile$_leading = t1._list_tile$_updateChild$3(t1._list_tile$_leading, child, C._ListTileSlot_0);
+ break;
+ case C._ListTileSlot_1:
+ t1 = type$._RenderListTile._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._title = t1._list_tile$_updateChild$3(t1._title, child, C._ListTileSlot_1);
+ break;
+ case C._ListTileSlot_2:
+ t1 = type$._RenderListTile._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._subtitle = t1._list_tile$_updateChild$3(t1._subtitle, child, C._ListTileSlot_2);
+ break;
+ case C._ListTileSlot_3:
+ t1 = type$._RenderListTile._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1._trailing = t1._list_tile$_updateChild$3(t1._trailing, child, C._ListTileSlot_3);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ this._updateRenderObject$2(type$.RenderBox._as(child), slot);
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ this._updateRenderObject$2(null, slot);
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ }
+ };
+ Q._RenderListTile.prototype = {
+ _list_tile$_updateChild$3: function(oldChild, newChild, slot) {
+ var _this = this;
+ if (oldChild != null) {
+ _this.dropChild$1(oldChild);
+ _this.children.remove$1(0, slot);
+ }
+ if (newChild != null) {
+ _this.children.$indexSet(0, slot, newChild);
+ _this.adoptChild$1(newChild);
+ }
+ return newChild;
+ },
+ get$_list_tile$_children: function($async$_) {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var _ = $async$_;
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1;
+ return function $async$get$_list_tile$_children($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._list_tile$_leading;
+ $async$goto = t1 != null ? 2 : 3;
+ break;
+ case 2:
+ // then
+ $async$goto = 4;
+ return t1;
+ case 4:
+ // after yield
+ case 3:
+ // join
+ t1 = $async$self._title;
+ $async$goto = t1 != null ? 5 : 6;
+ break;
+ case 5:
+ // then
+ $async$goto = 7;
+ return t1;
+ case 7:
+ // after yield
+ case 6:
+ // join
+ t1 = $async$self._subtitle;
+ $async$goto = t1 != null ? 8 : 9;
+ break;
+ case 8:
+ // then
+ $async$goto = 10;
+ return t1;
+ case 10:
+ // after yield
+ case 9:
+ // join
+ t1 = $async$self._trailing;
+ $async$goto = t1 != null ? 11 : 12;
+ break;
+ case 11:
+ // then
+ $async$goto = 13;
+ return t1;
+ case 13:
+ // after yield
+ case 12:
+ // join
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.RenderBox);
+ },
+ set$isDense: function(value) {
+ return;
+ },
+ set$visualDensity: function(value) {
+ if (this._visualDensity.$eq(0, value))
+ return;
+ this._visualDensity = value;
+ this.markNeedsLayout$0();
+ },
+ set$isThreeLine: function(value) {
+ return;
+ },
+ set$textDirection: function(_, value) {
+ if (this._list_tile$_textDirection === value)
+ return;
+ this._list_tile$_textDirection = value;
+ this.markNeedsLayout$0();
+ },
+ set$titleBaselineType: function(value) {
+ if (this._titleBaselineType == value)
+ return;
+ this._titleBaselineType = value;
+ this.markNeedsLayout$0();
+ },
+ set$subtitleBaselineType: function(value) {
+ if (this._subtitleBaselineType == value)
+ return;
+ this._subtitleBaselineType = value;
+ this.markNeedsLayout$0();
+ },
+ set$horizontalTitleGap: function(value) {
+ if (this._horizontalTitleGap === value)
+ return;
+ this._horizontalTitleGap = value;
+ this.markNeedsLayout$0();
+ },
+ set$minVerticalPadding: function(value) {
+ if (this._minVerticalPadding === value)
+ return;
+ this._minVerticalPadding = value;
+ this.markNeedsLayout$0();
+ },
+ set$minLeadingWidth: function(value) {
+ if (this._minLeadingWidth === value)
+ return;
+ this._minLeadingWidth = value;
+ this.markNeedsLayout$0();
+ },
+ attach$1: function(owner) {
+ var t1;
+ this.super$RenderObject$attach(owner);
+ for (t1 = new P._SyncStarIterator(this.get$_list_tile$_children(this)._outerHelper()); t1.moveNext$0();)
+ t1.get$current(t1).attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t1;
+ this.super$AbstractNode$detach(0);
+ for (t1 = new P._SyncStarIterator(this.get$_list_tile$_children(this)._outerHelper()); t1.moveNext$0();)
+ t1.get$current(t1).detach$0(0);
+ },
+ redepthChildren$0: function() {
+ this.get$_list_tile$_children(this).forEach$1(0, this.get$redepthChild());
+ },
+ visitChildren$1: function(visitor) {
+ this.get$_list_tile$_children(this).forEach$1(0, visitor);
+ },
+ debugDescribeChildren$0: function() {
+ var _this = this,
+ value = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode),
+ t1 = new Q._RenderListTile_debugDescribeChildren_add(value);
+ t1.call$2(_this._list_tile$_leading, "leading");
+ t1.call$2(_this._title, "title");
+ t1.call$2(_this._subtitle, "subtitle");
+ t1.call$2(_this._trailing, "trailing");
+ return value;
+ },
+ get$sizedByParent: function() {
+ return false;
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t2, leadingWidth, _this = this,
+ t1 = _this._list_tile$_leading;
+ if (t1 != null) {
+ t1 = t1._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t1.get$computeMinIntrinsicWidth());
+ t2 = _this._minLeadingWidth;
+ leadingWidth = Math.max(H.checkNum(t1), t2) + _this._horizontalTitleGap;
+ } else
+ leadingWidth = 0;
+ t1 = _this._title;
+ t1 = t1 == null ? 0 : t1._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t1.get$computeMinIntrinsicWidth());
+ t2 = _this._subtitle;
+ t2 = t2 == null ? 0 : t2._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t2.get$computeMinIntrinsicWidth());
+ t2 = Math.max(H.checkNum(t1), H.checkNum(t2));
+ t1 = _this._trailing;
+ t1 = t1 == null ? 0 : t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth());
+ return leadingWidth + t2 + t1;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t2, leadingWidth, _this = this,
+ t1 = _this._list_tile$_leading;
+ if (t1 != null) {
+ t1 = t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth());
+ t2 = _this._minLeadingWidth;
+ leadingWidth = Math.max(H.checkNum(t1), t2) + _this._horizontalTitleGap;
+ } else
+ leadingWidth = 0;
+ t1 = _this._title;
+ t1 = t1 == null ? 0 : t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth());
+ t2 = _this._subtitle;
+ t2 = t2 == null ? 0 : t2._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t2.get$computeMaxIntrinsicWidth());
+ t2 = Math.max(H.checkNum(t1), H.checkNum(t2));
+ t1 = _this._trailing;
+ t1 = t1 == null ? 0 : t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth());
+ return leadingWidth + t2 + t1;
+ },
+ get$_defaultTileHeight: function() {
+ var t1 = this._subtitle,
+ t2 = this._visualDensity,
+ baseDensity = new P.Offset(t2.horizontal, t2.vertical).$mul(0, 4);
+ if (t1 == null)
+ return 56 + baseDensity._dy;
+ return 72 + baseDensity._dy;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t3,
+ t1 = this.get$_defaultTileHeight(),
+ t2 = this._title;
+ t2 = t2._computeIntrinsicDimension$3(C._IntrinsicDimension_2, width, t2.get$computeMinIntrinsicHeight());
+ t3 = this._subtitle;
+ t3 = t3 == null ? null : t3._computeIntrinsicDimension$3(C._IntrinsicDimension_2, width, t3.get$computeMinIntrinsicHeight());
+ return Math.max(t1, t2 + (t3 == null ? 0 : t3));
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return this.computeMinIntrinsicHeight$1(width);
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var t1 = this._title,
+ t2 = t1.parentData;
+ t2.toString;
+ t2 = type$.BoxParentData._as(t2).offset;
+ t1 = t1.getDistanceToActualBaseline$1(baseline);
+ t1.toString;
+ return t2._dy + t1;
+ },
+ performLayout$0: function() {
+ var titleBaseline, subtitleBaseline, defaultTileHeight, tileHeight, titleY, subtitleY, t2, titleOverlap, titleY0, leadingY, trailingY, t3, _this = this,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)),
+ hasLeading = _this._list_tile$_leading != null,
+ isOneLine = _this._subtitle == null,
+ hasSubtitle = !isOneLine,
+ hasTrailing = _this._trailing != null,
+ t1 = _this._visualDensity,
+ densityAdjustment = new P.Offset(t1.horizontal, t1.vertical).$mul(0, 4),
+ looseConstraints = constraints.loosen$0(),
+ iconConstraints = looseConstraints.enforce$1(new S.BoxConstraints(0, 1 / 0, 0, 56 + densityAdjustment._dy)),
+ tileWidth = looseConstraints.maxWidth,
+ leadingSize = Q._RenderListTile__layoutBox(_this._list_tile$_leading, iconConstraints),
+ trailingSize = Q._RenderListTile__layoutBox(_this._trailing, iconConstraints),
+ titleStart = hasLeading ? Math.max(_this._minLeadingWidth, H.checkNum(leadingSize._dx)) + _this._horizontalTitleGap : 0,
+ adjustedTrailingWidth = hasTrailing ? Math.max(trailingSize._dx + _this._horizontalTitleGap, 32) : 0,
+ textConstraints = looseConstraints.tighten$1$width(tileWidth - titleStart - adjustedTrailingWidth),
+ titleSize = Q._RenderListTile__layoutBox(_this._title, textConstraints),
+ subtitleSize = Q._RenderListTile__layoutBox(_this._subtitle, textConstraints);
+ if (hasSubtitle) {
+ titleBaseline = 32;
+ subtitleBaseline = 52;
+ } else {
+ titleBaseline = null;
+ subtitleBaseline = null;
+ }
+ defaultTileHeight = _this.get$_defaultTileHeight();
+ if (isOneLine) {
+ t1 = titleSize._dy;
+ tileHeight = Math.max(defaultTileHeight, t1 + 2 * _this._minVerticalPadding);
+ titleY = (tileHeight - t1) / 2;
+ subtitleY = null;
+ } else {
+ titleBaseline.toString;
+ t1 = _this._title.getDistanceToBaseline$1(_this._titleBaselineType);
+ t1.toString;
+ titleY = titleBaseline - t1;
+ subtitleBaseline.toString;
+ t1 = _this._subtitle;
+ t1.toString;
+ t2 = _this._subtitleBaselineType;
+ t2.toString;
+ t2 = t1.getDistanceToBaseline$1(t2);
+ t2.toString;
+ subtitleY = subtitleBaseline - t2 + _this._visualDensity.vertical * 2;
+ t2 = titleSize._dy;
+ titleOverlap = titleY + t2 - subtitleY;
+ if (titleOverlap > 0) {
+ t1 = titleOverlap / 2;
+ titleY -= t1;
+ subtitleY += t1;
+ }
+ titleY0 = _this._minVerticalPadding;
+ if (titleY < titleY0 || subtitleY + subtitleSize._dy + titleY0 > defaultTileHeight) {
+ tileHeight = t2 + subtitleSize._dy + 2 * titleY0;
+ subtitleY = t2 + titleY0;
+ titleY = titleY0;
+ } else
+ tileHeight = defaultTileHeight;
+ }
+ if (tileHeight > 72) {
+ leadingY = 16;
+ trailingY = 16;
+ } else {
+ leadingY = Math.min((tileHeight - leadingSize._dy) / 2, 16);
+ trailingY = (tileHeight - trailingSize._dy) / 2;
+ }
+ switch (_this._list_tile$_textDirection) {
+ case C.TextDirection_0:
+ if (hasLeading) {
+ t1 = _this._list_tile$_leading;
+ t1.toString;
+ t2 = leadingSize._dx;
+ t1 = t1.parentData;
+ t1.toString;
+ type$.BoxParentData._as(t1).offset = new P.Offset(tileWidth - t2, leadingY);
+ }
+ t1 = _this._title.parentData;
+ t1.toString;
+ t2 = type$.BoxParentData;
+ t2._as(t1).offset = new P.Offset(adjustedTrailingWidth, titleY);
+ if (hasSubtitle) {
+ t1 = _this._subtitle;
+ t1.toString;
+ subtitleY.toString;
+ t1 = t1.parentData;
+ t1.toString;
+ t2._as(t1).offset = new P.Offset(adjustedTrailingWidth, subtitleY);
+ }
+ if (hasTrailing) {
+ t1 = _this._trailing.parentData;
+ t1.toString;
+ t2._as(t1).offset = new P.Offset(0, trailingY);
+ }
+ break;
+ case C.TextDirection_1:
+ if (hasLeading) {
+ t1 = _this._list_tile$_leading.parentData;
+ t1.toString;
+ type$.BoxParentData._as(t1).offset = new P.Offset(0, leadingY);
+ }
+ t1 = _this._title.parentData;
+ t1.toString;
+ t2 = type$.BoxParentData;
+ t2._as(t1).offset = new P.Offset(titleStart, titleY);
+ if (hasSubtitle) {
+ t1 = _this._subtitle;
+ t1.toString;
+ subtitleY.toString;
+ t1 = t1.parentData;
+ t1.toString;
+ t2._as(t1).offset = new P.Offset(titleStart, subtitleY);
+ }
+ if (hasTrailing) {
+ t1 = _this._trailing;
+ t1.toString;
+ t3 = trailingSize._dx;
+ t1 = t1.parentData;
+ t1.toString;
+ t2._as(t1).offset = new P.Offset(tileWidth - t3, trailingY);
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ _this._size = constraints.constrain$1(new P.Size(tileWidth, tileHeight));
+ },
+ paint$2: function(context, offset) {
+ var _this = this,
+ t1 = new Q._RenderListTile_paint_doPaint(context, offset);
+ t1.call$1(_this._list_tile$_leading);
+ t1.call$1(_this._title);
+ t1.call$1(_this._subtitle);
+ t1.call$1(_this._trailing);
+ },
+ hitTestSelf$1: function(position) {
+ return true;
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t1, t2, t3, t4;
+ for (t1 = new P._SyncStarIterator(this.get$_list_tile$_children(this)._outerHelper()), t2 = type$.BoxParentData; t1.moveNext$0();) {
+ t3 = t1.get$current(t1);
+ t4 = t3.parentData;
+ t4.toString;
+ t2._as(t4);
+ if (result.addWithPaintOffset$3$hitTest$offset$position(new Q._RenderListTile_hitTestChildren_closure(position, t4, t3), t4.offset, position))
+ return true;
+ }
+ return false;
+ }
+ };
+ Q._RenderListTile_debugDescribeChildren_add.prototype = {
+ call$2: function(child, $name) {
+ if (child != null)
+ this.value.push(Y.DiagnosticableTreeNode$($name, null, child));
+ },
+ $signature: 116
+ };
+ Q._RenderListTile_paint_doPaint.prototype = {
+ call$1: function(child) {
+ var t1;
+ if (child != null) {
+ t1 = child.parentData;
+ t1.toString;
+ this.context.paintChild$2(child, type$.BoxParentData._as(t1).offset.$add(0, this.offset));
+ }
+ },
+ $signature: 111
+ };
+ Q._RenderListTile_hitTestChildren_closure.prototype = {
+ call$2: function(result, transformed) {
+ return this.child.hitTest$2$position(result, transformed);
+ },
+ $signature: 105
+ };
+ M.MaterialType.prototype = {
+ toString$0: function(_) {
+ return this._material$_name;
+ }
+ };
+ M.Material.prototype = {
+ createState$0: function() {
+ return new M._MaterialState(new N.LabeledGlobalKey("ink renderer", type$.LabeledGlobalKey_State_StatefulWidget), null, C._StateLifecycle_0);
+ }
+ };
+ M._MaterialState.prototype = {
+ build$1: function(_, context) {
+ var contents, t2, t3, t4, shape, _this = this, _null = null,
+ theme = K.Theme_of(context),
+ t1 = _this._widget,
+ color = t1.color;
+ if (color == null)
+ switch (t1.type) {
+ case C.MaterialType_0:
+ color = theme.canvasColor;
+ break;
+ case C.MaterialType_1:
+ color = theme.cardColor;
+ break;
+ default:
+ break;
+ }
+ contents = t1.child;
+ t1 = t1.textStyle;
+ if (t1 == null) {
+ t1 = K.Theme_of(context).textTheme.bodyText2;
+ t1.toString;
+ }
+ t2 = _this._widget;
+ contents = G.AnimatedDefaultTextStyle$(contents, C.C__Linear, t2.animationDuration, t1);
+ t1 = t2;
+ t2 = t1.type;
+ contents = new U.NotificationListener(new M._InkFeatures(color, _this, t2 !== C.MaterialType_4, contents, _this._inkFeatureRenderer), new M._MaterialState_build_closure(_this), _null, type$.NotificationListener_LayoutChangedNotification);
+ if (t2 === C.MaterialType_0 && t1.shape == null && t1.borderRadius == null) {
+ t2 = t1.elevation;
+ color.toString;
+ t3 = R.ElevationOverlay_applyOverlay(context, color, t2);
+ t4 = _this._widget.shadowColor;
+ if (t4 == null)
+ t4 = K.Theme_of(context).shadowColor;
+ return new G.AnimatedPhysicalModel(contents, C.BoxShape_0, t1.clipBehavior, C.BorderRadius_tLn, t2, t3, false, t4, C.Cubic_ifx, t1.animationDuration, _null, _null);
+ }
+ shape = _this._getShape$0();
+ t1 = _this._widget;
+ if (t1.type === C.MaterialType_4)
+ return M._MaterialState__transparentInterior(t1.clipBehavior, contents, context, shape);
+ t2 = t1.animationDuration;
+ t3 = t1.clipBehavior;
+ t4 = t1.elevation;
+ color.toString;
+ t1 = t1.shadowColor;
+ return new M._MaterialInterior(contents, shape, true, t3, t4, color, t1 == null ? K.Theme_of(context).shadowColor : t1, C.Cubic_ifx, t2, _null, _null);
+ },
+ _getShape$0: function() {
+ var t1 = this._widget,
+ t2 = t1.shape;
+ if (t2 != null)
+ return t2;
+ t2 = t1.borderRadius;
+ if (t2 != null)
+ return new X.RoundedRectangleBorder(t2, C.BorderSide_m7u);
+ t1 = t1.type;
+ switch (t1) {
+ case C.MaterialType_0:
+ case C.MaterialType_4:
+ return C.RoundedRectangleBorder_a511;
+ case C.MaterialType_1:
+ case C.MaterialType_3:
+ t1 = $.$get$kMaterialEdges().$index(0, t1);
+ t1.toString;
+ return new X.RoundedRectangleBorder(t1, C.BorderSide_m7u);
+ case C.MaterialType_2:
+ return C.CircleBorder_61T;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ M._MaterialState_build_closure.prototype = {
+ call$1: function(notification) {
+ var t2,
+ t1 = $.GlobalKey__registry.$index(0, this.$this._inkFeatureRenderer).get$renderObject();
+ t1.toString;
+ type$._RenderInkFeatures._as(t1);
+ t2 = t1._inkFeatures;
+ if (t2 != null && t2.length !== 0)
+ t1.markNeedsPaint$0();
+ return false;
+ },
+ $signature: 167
+ };
+ M._RenderInkFeatures.prototype = {
+ addInkFeature$1: function(feature) {
+ var t1 = this._inkFeatures;
+ (t1 == null ? this._inkFeatures = H.setRuntimeTypeInfo([], type$.JSArray_InkFeature) : t1).push(feature);
+ this.markNeedsPaint$0();
+ },
+ hitTestSelf$1: function(position) {
+ return this.absorbHitTest;
+ },
+ paint$2: function(context, offset) {
+ var canvas, t2, _i, _this = this,
+ t1 = _this._inkFeatures;
+ if (t1 != null && t1.length !== 0) {
+ canvas = context.get$canvas(context);
+ canvas.save$0(0);
+ canvas.translate$2(0, offset._dx, offset._dy);
+ t1 = _this._size;
+ canvas.clipRect$1(0, new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy));
+ for (t1 = _this._inkFeatures, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i]._material$_paint$1(canvas);
+ canvas.restore$0(0);
+ }
+ _this.super$RenderProxyBoxMixin$paint(context, offset);
+ }
+ };
+ M._InkFeatures.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new M._RenderInkFeatures(this.vsync, this.absorbHitTest, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.absorbHitTest = this.absorbHitTest;
+ }
+ };
+ M.InkFeature.prototype = {
+ dispose$0: function(_) {
+ var t1 = this._material$_controller,
+ t2 = t1._inkFeatures;
+ t2.toString;
+ C.JSArray_methods.remove$1(t2, this);
+ t1.markNeedsPaint$0();
+ this.onRemoved.call$0();
+ },
+ _material$_paint$1: function(canvas) {
+ var t1, t2, t3, transform, index, index0,
+ node = this.referenceBox,
+ descendants = H.setRuntimeTypeInfo([node], type$.JSArray_RenderObject);
+ for (t1 = this._material$_controller, t2 = type$.RenderObject; node != t1; node = t3) {
+ t3 = node._node$_parent;
+ t3.toString;
+ t2._as(t3);
+ descendants.push(t3);
+ }
+ transform = new E.Matrix4(new Float64Array(16));
+ transform.setIdentity$0();
+ for (index = descendants.length - 1; index > 0; index = index0) {
+ index0 = index - 1;
+ descendants[index].applyPaintTransform$2(descendants[index0], transform);
+ }
+ this.paintFeature$2(canvas, transform);
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this);
+ }
+ };
+ M.ShapeBorderTween.prototype = {
+ lerp$1: function(t) {
+ return Y.ShapeBorder_lerp(this.begin, this.end, t);
+ }
+ };
+ M._MaterialInterior.prototype = {
+ createState$0: function() {
+ return new M._MaterialInteriorState(null, C._StateLifecycle_0);
+ }
+ };
+ M._MaterialInteriorState.prototype = {
+ forEachTween$1: function(visitor) {
+ var _this = this;
+ _this._elevation = type$.nullable_Tween_double._as(visitor.call$3(_this._elevation, _this._widget.elevation, new M._MaterialInteriorState_forEachTween_closure()));
+ _this._shadowColor = type$.nullable_ColorTween._as(visitor.call$3(_this._shadowColor, _this._widget.shadowColor, new M._MaterialInteriorState_forEachTween_closure0()));
+ _this._border = type$.nullable_ShapeBorderTween._as(visitor.call$3(_this._border, _this._widget.shape, new M._MaterialInteriorState_forEachTween_closure1()));
+ },
+ build$1: function(_, context) {
+ var t2, t3, elevation, t4, t5, t6, t7, _this = this,
+ t1 = _this._border;
+ t1.toString;
+ t2 = _this._animation;
+ t2 = t1.transform$1(0, t2.get$value(t2));
+ t2.toString;
+ t1 = _this._elevation;
+ t1.toString;
+ t3 = _this._animation;
+ elevation = t1.transform$1(0, t3.get$value(t3));
+ t3 = _this._widget.child;
+ t1 = T.Directionality_maybeOf(context);
+ t4 = _this._widget;
+ t5 = t4.clipBehavior;
+ t4 = R.ElevationOverlay_applyOverlay(context, t4.color, elevation);
+ t6 = _this._shadowColor;
+ t6.toString;
+ t7 = _this._animation;
+ t7 = t6.transform$1(0, t7.get$value(t7));
+ t7.toString;
+ return new T.PhysicalShape(new E.ShapeBorderClipper(t2, t1), t5, elevation, t4, t7, new M._ShapeBorderPaint(t3, t2, true, null), null);
+ }
+ };
+ M._MaterialInteriorState_forEachTween_closure.prototype = {
+ call$1: function(value) {
+ return new R.Tween(H._asDoubleS(value), null, type$.Tween_double);
+ },
+ $signature: 71
+ };
+ M._MaterialInteriorState_forEachTween_closure0.prototype = {
+ call$1: function(value) {
+ return new R.ColorTween(type$.Color._as(value), null);
+ },
+ $signature: 70
+ };
+ M._MaterialInteriorState_forEachTween_closure1.prototype = {
+ call$1: function(value) {
+ return new M.ShapeBorderTween(type$.ShapeBorder._as(value), null);
+ },
+ $signature: 170
+ };
+ M._ShapeBorderPaint.prototype = {
+ build$1: function(_, context) {
+ var t1 = T.Directionality_maybeOf(context);
+ return T.CustomPaint$(this.child, new M._ShapeBorderPainter(this.shape, t1, null), null);
+ }
+ };
+ M._ShapeBorderPainter.prototype = {
+ paint$2: function(canvas, size) {
+ this.border.paint$3$textDirection(canvas, new P.Rect(0, 0, 0 + size._dx, 0 + size._dy), this.textDirection);
+ },
+ shouldRepaint$1: function(oldDelegate) {
+ return !J.$eq$(oldDelegate.border, this.border);
+ }
+ };
+ M.__MaterialState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ B.MaterialButton.prototype = {
+ get$enabled: function(_) {
+ return true;
+ },
+ build$1: function(_, context) {
+ var t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, _this = this,
+ theme = K.Theme_of(context),
+ buttonTheme = M.ButtonTheme_of(context),
+ t1 = buttonTheme.getFillColor$1(_this),
+ t2 = theme.textTheme.button;
+ t2.toString;
+ t2 = t2.copyWith$1$color(buttonTheme.getTextColor$1(_this));
+ t3 = buttonTheme.getFocusColor$1(_this);
+ t4 = buttonTheme.getHoverColor$1(_this);
+ t5 = theme.highlightColor;
+ t6 = theme.splashColor;
+ t7 = buttonTheme.getElevation$1(_this);
+ t8 = buttonTheme.getFocusElevation$1(_this);
+ t9 = buttonTheme.getHoverElevation$1(_this);
+ t10 = buttonTheme.getHighlightElevation$1(_this);
+ t11 = buttonTheme.getPadding$1(_this);
+ t12 = theme.visualDensity;
+ t13 = new S.BoxConstraints(buttonTheme.minWidth, 1 / 0, buttonTheme.height, 1 / 0).copyWith$2$minHeight$minWidth(_this.height, _this.minWidth);
+ t14 = buttonTheme.getShape$1(_this);
+ t15 = buttonTheme.getAnimationDuration$1(_this);
+ t16 = theme.materialTapTargetSize;
+ return Z.RawMaterialButton$(t15, false, _this.child, _this.clipBehavior, t13, 0, t7, true, t1, t3, t8, _this.focusNode, t5, t10, t4, t9, t16, _this.mouseCursor, _this.onHighlightChanged, _this.onLongPress, _this.onPressed, t11, t14, t6, t2, t12);
+ }
+ };
+ U._MaterialLocalizationsDelegate.prototype = {
+ isSupported$1: function(locale) {
+ return locale.get$languageCode(locale) === "en";
+ },
+ load$1: function(_, locale) {
+ return new O.SynchronousFuture(C.C_DefaultMaterialLocalizations, type$.SynchronousFuture_MaterialLocalizations);
+ },
+ shouldReload$1: function(old) {
+ return false;
+ },
+ toString$0: function(_) {
+ return "DefaultMaterialLocalizations.delegate(en_US)";
+ }
+ };
+ U.DefaultMaterialLocalizations.prototype = {$isMaterialLocalizations: 1};
+ V.MaterialState.prototype = {
+ toString$0: function(_) {
+ return this._material_state$_name;
+ }
+ };
+ V.MaterialStateMouseCursor.prototype = {
+ createSession$1: function(device) {
+ return this.resolve$1(P.LinkedHashSet_LinkedHashSet$_empty(type$.MaterialState)).createSession$1(device);
+ },
+ $isMaterialStateProperty: 1
+ };
+ V._EnabledAndDisabledMouseCursor.prototype = {
+ resolve$1: function(states) {
+ if (states.contains$1(0, C.MaterialState_5))
+ return C.SystemMouseCursor_basic;
+ return this.enabledCursor;
+ },
+ get$debugDescription: function() {
+ return "MaterialStateMouseCursor(" + this.name + ")";
+ },
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ E.NavigationRailThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.backgroundColor, _this.elevation, _this.unselectedLabelTextStyle, _this.selectedLabelTextStyle, _this.unselectedIconTheme, _this.selectedIconTheme, _this.groupAlignment, _this.labelType, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof E.NavigationRailThemeData && J.$eq$(other.backgroundColor, _this.backgroundColor) && other.elevation == _this.elevation && J.$eq$(other.unselectedLabelTextStyle, _this.unselectedLabelTextStyle) && J.$eq$(other.selectedLabelTextStyle, _this.selectedLabelTextStyle) && J.$eq$(other.unselectedIconTheme, _this.unselectedIconTheme) && J.$eq$(other.selectedIconTheme, _this.selectedIconTheme) && other.groupAlignment == _this.groupAlignment && true;
+ }
+ };
+ E._NavigationRailThemeData_Object_Diagnosticable.prototype = {};
+ U.OutlinedButtonThemeData.prototype = {
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.style);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof U.OutlinedButtonThemeData && J.$eq$(other.style, this.style);
+ }
+ };
+ U._OutlinedButtonThemeData_Object_Diagnosticable.prototype = {};
+ V.MaterialPageRoute.prototype = {
+ get$debugLabel: function() {
+ return T.TransitionRoute.prototype.get$debugLabel.call(this) + "(" + H.S(this._settings.name) + ")";
+ },
+ get$maintainState: function() {
+ return true;
+ }
+ };
+ V.MaterialRouteTransitionMixin.prototype = {
+ get$transitionDuration: function(_) {
+ return C.Duration_300000;
+ },
+ get$barrierColor: function() {
+ return null;
+ },
+ get$barrierLabel: function() {
+ return null;
+ },
+ canTransitionTo$1: function(nextRoute) {
+ var t1;
+ if (!(type$.MaterialRouteTransitionMixin_dynamic._is(nextRoute) && true))
+ t1 = false;
+ else
+ t1 = true;
+ return t1;
+ },
+ buildPage$3: function(context, animation, secondaryAnimation) {
+ var _null = null;
+ return T.Semantics$(_null, this.builder.call$1(context), false, _null, _null, true, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, true, _null, _null, _null, _null);
+ },
+ buildTransitions$4: function(context, animation, secondaryAnimation, child) {
+ var matchingBuilder,
+ theme = K.Theme_of(context).pageTransitionsTheme,
+ platform = K.Theme_of(context).platform;
+ if (this._navigator$_navigator.userGestureInProgressNotifier._change_notifier$_value)
+ platform = C.TargetPlatform_2;
+ matchingBuilder = theme.get$builders().$index(0, platform);
+ if (matchingBuilder == null)
+ matchingBuilder = C.C_FadeUpwardsPageTransitionsBuilder;
+ return matchingBuilder.buildTransitions$1$5(this, context, animation, secondaryAnimation, child, this.$ti._precomputed1);
+ }
+ };
+ V._MaterialPageRoute_PageRoute_MaterialRouteTransitionMixin.prototype = {};
+ K._FadeUpwardsPageTransition.prototype = {
+ build$1: function(_, context) {
+ return K.SlideTransition$(K.FadeTransition$(false, this.child, this._opacityAnimation), this._positionAnimation, null, true);
+ }
+ };
+ K.PageTransitionsBuilder.prototype = {};
+ K.FadeUpwardsPageTransitionsBuilder.prototype = {
+ buildTransitions$1$5: function(route, context, animation, secondaryAnimation, child) {
+ var t3, t4,
+ t1 = $.$get$_FadeUpwardsPageTransition__bottomUpTween(),
+ t2 = $.$get$_FadeUpwardsPageTransition__fastOutSlowInTween();
+ t1.toString;
+ t3 = t1.$ti._eval$1("_ChainedEvaluation");
+ animation.toString;
+ type$.Animation_double._as(animation);
+ t4 = $.$get$_FadeUpwardsPageTransition__easeInTween();
+ t4.toString;
+ return new K._FadeUpwardsPageTransition(new R._AnimatedEvaluation(animation, new R._ChainedEvaluation(t2, t1, t3), t3._eval$1("_AnimatedEvaluation")), new R._AnimatedEvaluation(animation, t4, H._instanceType(t4)._eval$1("_AnimatedEvaluation")), child, null);
+ }
+ };
+ K.CupertinoPageTransitionsBuilder.prototype = {
+ buildTransitions$1$5: function(route, context, animation, secondaryAnimation, child, $T) {
+ return D.CupertinoRouteTransitionMixin_buildPageTransitions(route, context, animation, secondaryAnimation, child, $T);
+ }
+ };
+ K.PageTransitionsTheme.prototype = {
+ get$builders: function() {
+ return C.Map_23gMT;
+ },
+ _all$1: function(builders) {
+ var t1 = type$.MappedListIterable_of_legacy_TargetPlatform_and_nullable_PageTransitionsBuilder;
+ return P.List_List$of(new H.MappedListIterable(C.List_uDp, new K.PageTransitionsTheme__all_closure(builders), t1), true, t1._eval$1("ListIterable.E"));
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ t1 = other instanceof K.PageTransitionsTheme;
+ if (t1 && _this.get$builders() === other.get$builders())
+ return true;
+ return t1 && S.listEquals(_this._all$1(other.get$builders()), _this._all$1(_this.get$builders()));
+ },
+ get$hashCode: function(_) {
+ return P.hashList(this._all$1(this.get$builders()));
+ }
+ };
+ K.PageTransitionsTheme__all_closure.prototype = {
+ call$1: function(platform) {
+ return this.builders.$index(0, platform);
+ },
+ $signature: 171
+ };
+ K._PageTransitionsTheme_Object_Diagnosticable.prototype = {};
+ R.PopupMenuThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.color, _this.shape, _this.elevation, _this.textStyle, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof R.PopupMenuThemeData && other.elevation == _this.elevation && J.$eq$(other.color, _this.color) && J.$eq$(other.shape, _this.shape) && J.$eq$(other.textStyle, _this.textStyle);
+ }
+ };
+ R._PopupMenuThemeData_Object_Diagnosticable.prototype = {};
+ M._ScaffoldSlot.prototype = {
+ toString$0: function(_) {
+ return this._scaffold$_name;
+ }
+ };
+ M.ScaffoldMessenger.prototype = {
+ createState$0: function() {
+ return new M.ScaffoldMessengerState(P.LinkedHashSet_LinkedHashSet(type$.ScaffoldState), P.ListQueue$(null, type$.ScaffoldFeatureController_SnackBar_SnackBarClosedReason), null, C._StateLifecycle_0);
+ }
+ };
+ M.ScaffoldMessengerState.prototype = {
+ didChangeDependencies$0: function() {
+ var t1, _this = this,
+ mediaQuery = _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data;
+ if (_this._accessibleNavigation === true)
+ if (!mediaQuery.accessibleNavigation) {
+ t1 = _this._snackBarTimer;
+ t1 = t1 != null && t1._handle == null;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ _this.hideCurrentSnackBar$1$reason(C.SnackBarClosedReason_5);
+ _this._accessibleNavigation = mediaQuery.accessibleNavigation;
+ _this.super$_ScaffoldMessengerState_State_TickerProviderStateMixin$didChangeDependencies();
+ },
+ hideCurrentSnackBar$1$reason: function(reason) {
+ var t2, completer, _this = this, _null = null,
+ t1 = _this._snackBars;
+ if (t1._head !== t1._tail) {
+ _null.get$status(_null);
+ t2 = false;
+ } else
+ t2 = true;
+ if (t2)
+ return;
+ completer = t1.get$first(t1)._scaffold$_completer;
+ t1 = _this._accessibleNavigation;
+ t1.toString;
+ if (t1) {
+ _null.set$value(0, 0);
+ completer.complete$1(0, reason);
+ } else
+ _null.reverse$0(0).then$1$1(0, new M.ScaffoldMessengerState_hideCurrentSnackBar_closure(_this, completer, reason), type$.void);
+ t1 = _this._snackBarTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._snackBarTimer = null;
+ },
+ build$1: function(_, context) {
+ var t1, route, _this = this;
+ _this._accessibleNavigation = context.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data.accessibleNavigation;
+ t1 = _this._snackBars;
+ if (!t1.get$isEmpty(t1)) {
+ route = T.ModalRoute_of(context, type$.nullable_Object);
+ if (route == null || route.get$isCurrent())
+ null.get$isCompleted();
+ }
+ return new M._ScaffoldMessengerScope(_this, _this._widget.child, null);
+ },
+ dispose$0: function(_) {
+ var t1 = this._snackBarTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ this._snackBarTimer = null;
+ this.super$_ScaffoldMessengerState_State_TickerProviderStateMixin$dispose(0);
+ }
+ };
+ M.ScaffoldMessengerState_hideCurrentSnackBar_closure.prototype = {
+ call$1: function(value) {
+ var t1 = this.completer;
+ if (t1.future._state === 0)
+ t1.complete$1(0, this.reason);
+ },
+ $signature: 16
+ };
+ M._ScaffoldMessengerScope.prototype = {
+ updateShouldNotify$1: function(old) {
+ return this._scaffoldMessengerState !== old._scaffoldMessengerState;
+ }
+ };
+ M.ScaffoldPrelayoutGeometry.prototype = {};
+ M._TransitionSnapshotFabLocation.prototype = {
+ getOffset$1: function(scaffoldGeometry) {
+ var _this = this;
+ return _this.animator.getOffset$3$begin$end$progress(_this.begin.getOffset$1(scaffoldGeometry), _this.end.getOffset$1(scaffoldGeometry), _this.progress);
+ },
+ toString$0: function(_) {
+ return "_TransitionSnapshotFabLocation(begin: " + H.S(this.begin) + ", end: " + H.S(this.end) + ", progress: " + H.S(this.progress) + ")";
+ }
+ };
+ M.ScaffoldGeometry.prototype = {
+ copyWith$2$bottomNavigationBarTop$floatingActionButtonArea: function(bottomNavigationBarTop, floatingActionButtonArea) {
+ var t1 = bottomNavigationBarTop == null ? this.bottomNavigationBarTop : bottomNavigationBarTop;
+ return new M.ScaffoldGeometry(t1, floatingActionButtonArea == null ? this.floatingActionButtonArea : floatingActionButtonArea);
+ }
+ };
+ M._ScaffoldGeometryNotifier.prototype = {
+ _updateWith$3$bottomNavigationBarTop$floatingActionButtonArea$floatingActionButtonScale: function(bottomNavigationBarTop, floatingActionButtonArea, floatingActionButtonScale) {
+ var _this = this;
+ _this.floatingActionButtonScale = floatingActionButtonScale == null ? _this.floatingActionButtonScale : floatingActionButtonScale;
+ _this.geometry = _this.geometry.copyWith$2$bottomNavigationBarTop$floatingActionButtonArea(bottomNavigationBarTop, floatingActionButtonArea);
+ _this.notifyListeners$0();
+ },
+ _updateWith$1$floatingActionButtonScale: function(floatingActionButtonScale) {
+ return this._updateWith$3$bottomNavigationBarTop$floatingActionButtonArea$floatingActionButtonScale(null, null, floatingActionButtonScale);
+ },
+ _updateWith$2$bottomNavigationBarTop$floatingActionButtonArea: function(bottomNavigationBarTop, floatingActionButtonArea) {
+ return this._updateWith$3$bottomNavigationBarTop$floatingActionButtonArea$floatingActionButtonScale(bottomNavigationBarTop, floatingActionButtonArea, null);
+ }
+ };
+ M._BodyBoxConstraints.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (!this.super$BoxConstraints$$eq(0, other))
+ return false;
+ return other instanceof M._BodyBoxConstraints && other.bottomWidgetsHeight === this.bottomWidgetsHeight && other.appBarHeight == this.appBarHeight;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(S.BoxConstraints.prototype.get$hashCode.call(_this, _this), _this.bottomWidgetsHeight, _this.appBarHeight, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ M._BodyBuilder.prototype = {
+ build$1: function(_, context) {
+ return this.body;
+ }
+ };
+ M._ScaffoldLayout.prototype = {
+ performLayout$1: function(size) {
+ var appBarHeight, contentTop, bottomWidgetsHeight, bottomNavigationBarTop, t3, contentBottom, bodyMaxHeight, t4, snackBarSize, bottomSheetSize, fabSize, currentGeometry, currentFabOffset, fabOffset, t5, snackBarYOffsetBase, _this = this, t1 = {},
+ looseConstraints = S.BoxConstraints$loose(size),
+ t2 = size._dx,
+ fullWidthConstraints = looseConstraints.tighten$1$width(t2),
+ bottom = size._dy;
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_1) != null) {
+ appBarHeight = _this.layoutChild$2(C._ScaffoldSlot_1, fullWidthConstraints)._dy;
+ _this.positionChild$2(C._ScaffoldSlot_1, C.Offset_0_0);
+ contentTop = appBarHeight;
+ } else {
+ contentTop = 0;
+ appBarHeight = 0;
+ }
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_6) != null) {
+ bottomWidgetsHeight = 0 + _this.layoutChild$2(C._ScaffoldSlot_6, fullWidthConstraints)._dy;
+ bottomNavigationBarTop = Math.max(0, bottom - bottomWidgetsHeight);
+ _this.positionChild$2(C._ScaffoldSlot_6, new P.Offset(0, bottomNavigationBarTop));
+ } else {
+ bottomWidgetsHeight = 0;
+ bottomNavigationBarTop = null;
+ }
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_5) != null) {
+ bottomWidgetsHeight += _this.layoutChild$2(C._ScaffoldSlot_5, new S.BoxConstraints(0, fullWidthConstraints.maxWidth, 0, Math.max(0, bottom - bottomWidgetsHeight - contentTop)))._dy;
+ _this.positionChild$2(C._ScaffoldSlot_5, new P.Offset(0, Math.max(0, bottom - bottomWidgetsHeight)));
+ }
+ t3 = _this.minInsets;
+ contentBottom = Math.max(0, bottom - Math.max(H.checkNum(t3.bottom), bottomWidgetsHeight));
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_0) != null) {
+ bodyMaxHeight = Math.max(0, contentBottom - contentTop);
+ t4 = _this.extendBody;
+ if (t4)
+ bodyMaxHeight = C.JSNumber_methods.clamp$2(bodyMaxHeight + bottomWidgetsHeight, 0, looseConstraints.maxHeight - contentTop);
+ t4 = t4 ? bottomWidgetsHeight : 0;
+ _this.layoutChild$2(C._ScaffoldSlot_0, new M._BodyBoxConstraints(t4, appBarHeight, 0, fullWidthConstraints.maxWidth, 0, bodyMaxHeight));
+ _this.positionChild$2(C._ScaffoldSlot_0, new P.Offset(0, contentTop));
+ }
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_2) != null) {
+ _this.layoutChild$2(C._ScaffoldSlot_2, new S.BoxConstraints(0, fullWidthConstraints.maxWidth, 0, contentBottom));
+ _this.positionChild$2(C._ScaffoldSlot_2, C.Offset_0_0);
+ }
+ snackBarSize = _this._idToChild.$index(0, C._ScaffoldSlot_4) != null && !_this.isSnackBarFloating ? _this.layoutChild$2(C._ScaffoldSlot_4, fullWidthConstraints) : C.Size_0_0;
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_3) != null) {
+ bottomSheetSize = _this.layoutChild$2(C._ScaffoldSlot_3, new S.BoxConstraints(0, fullWidthConstraints.maxWidth, 0, Math.max(0, contentBottom - contentTop)));
+ _this.positionChild$2(C._ScaffoldSlot_3, new P.Offset((t2 - bottomSheetSize._dx) / 2, contentBottom - bottomSheetSize._dy));
+ } else
+ bottomSheetSize = C.Size_0_0;
+ t1.floatingActionButtonRect = null;
+ t1._floatingActionButtonRect_isSet = false;
+ t2 = new M._ScaffoldLayout_performLayout__floatingActionButtonRect_get(t1);
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_7) != null) {
+ fabSize = _this.layoutChild$2(C._ScaffoldSlot_7, looseConstraints);
+ currentGeometry = new M.ScaffoldPrelayoutGeometry(fabSize, bottomSheetSize, contentBottom, t3, _this.minViewPadding, size, snackBarSize, _this.textDirection);
+ currentFabOffset = _this.currentFloatingActionButtonLocation.getOffset$1(currentGeometry);
+ fabOffset = _this.floatingActionButtonMotionAnimator.getOffset$3$begin$end$progress(_this.previousFloatingActionButtonLocation.getOffset$1(currentGeometry), currentFabOffset, _this.floatingActionButtonMoveAnimationProgress);
+ _this.positionChild$2(C._ScaffoldSlot_7, fabOffset);
+ t4 = fabOffset._dx;
+ t5 = fabOffset._dy;
+ new M._ScaffoldLayout_performLayout__floatingActionButtonRect_set(t1).call$1(new P.Rect(t4, t5, t4 + fabSize._dx, t5 + fabSize._dy));
+ }
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_4) != null) {
+ if (J.$eq$(snackBarSize, C.Size_0_0))
+ snackBarSize = _this.layoutChild$2(C._ScaffoldSlot_4, fullWidthConstraints);
+ t1 = t2.call$0();
+ if (!new P.Size(t1.right - t1.left, t1.bottom - t1.top).$eq(0, C.Size_0_0) && _this.isSnackBarFloating)
+ snackBarYOffsetBase = t2.call$0().top;
+ else
+ snackBarYOffsetBase = _this.isSnackBarFloating ? Math.min(contentBottom, bottom - _this.minViewPadding.bottom) : contentBottom;
+ _this.positionChild$2(C._ScaffoldSlot_4, new P.Offset(0, snackBarYOffsetBase - snackBarSize._dy));
+ }
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_10) != null) {
+ _this.layoutChild$2(C._ScaffoldSlot_10, fullWidthConstraints.tighten$1$height(t3.top));
+ _this.positionChild$2(C._ScaffoldSlot_10, C.Offset_0_0);
+ }
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_8) != null) {
+ _this.layoutChild$2(C._ScaffoldSlot_8, S.BoxConstraints$tight(size));
+ _this.positionChild$2(C._ScaffoldSlot_8, C.Offset_0_0);
+ }
+ if (_this._idToChild.$index(0, C._ScaffoldSlot_9) != null) {
+ _this.layoutChild$2(C._ScaffoldSlot_9, S.BoxConstraints$tight(size));
+ _this.positionChild$2(C._ScaffoldSlot_9, C.Offset_0_0);
+ }
+ _this.geometryNotifier._updateWith$2$bottomNavigationBarTop$floatingActionButtonArea(bottomNavigationBarTop, t2.call$0());
+ },
+ shouldRelayout$1: function(oldDelegate) {
+ var _this = this;
+ return !oldDelegate.minInsets.$eq(0, _this.minInsets) || oldDelegate.textDirection !== _this.textDirection || oldDelegate.floatingActionButtonMoveAnimationProgress != _this.floatingActionButtonMoveAnimationProgress || oldDelegate.previousFloatingActionButtonLocation != _this.previousFloatingActionButtonLocation || oldDelegate.currentFloatingActionButtonLocation != _this.currentFloatingActionButtonLocation || oldDelegate.extendBody !== _this.extendBody || false;
+ }
+ };
+ M._ScaffoldLayout_performLayout__floatingActionButtonRect_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._floatingActionButtonRect_isSet = true;
+ return t2.floatingActionButtonRect = t1;
+ },
+ $signature: 172
+ };
+ M._ScaffoldLayout_performLayout__floatingActionButtonRect_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._floatingActionButtonRect_isSet ? t1.floatingActionButtonRect : H.throwExpression(H.LateError$localNI("floatingActionButtonRect"));
+ },
+ $signature: 122
+ };
+ M._FloatingActionButtonTransition.prototype = {
+ createState$0: function() {
+ return new M._FloatingActionButtonTransitionState(null, C._StateLifecycle_0);
+ }
+ };
+ M._FloatingActionButtonTransitionState.prototype = {
+ get$_previousController: function() {
+ return this.___FloatingActionButtonTransitionState__previousController_isSet ? this.___FloatingActionButtonTransitionState__previousController : H.throwExpression(H.LateError$fieldNI("_previousController"));
+ },
+ get$_previousScaleAnimation: function() {
+ return this.___FloatingActionButtonTransitionState__previousScaleAnimation_isSet ? this.___FloatingActionButtonTransitionState__previousScaleAnimation : H.throwExpression(H.LateError$fieldNI("_previousScaleAnimation"));
+ },
+ get$_currentScaleAnimation: function() {
+ return this.___FloatingActionButtonTransitionState__currentScaleAnimation_isSet ? this.___FloatingActionButtonTransitionState__currentScaleAnimation : H.throwExpression(H.LateError$fieldNI("_currentScaleAnimation"));
+ },
+ initState$0: function() {
+ var t1, _this = this;
+ _this.super$State$initState();
+ t1 = G.AnimationController$(null, C.Duration_200000, 0, null, 1, null, _this);
+ t1.addStatusListener$1(_this.get$_handlePreviousAnimationStatusChanged());
+ _this.___FloatingActionButtonTransitionState__previousController_isSet = true;
+ _this.___FloatingActionButtonTransitionState__previousController = t1;
+ _this._updateAnimations$0();
+ t1 = _this._widget;
+ if (t1.child != null)
+ t1.currentController.set$value(0, 1);
+ else
+ t1.geometryNotifier._updateWith$1$floatingActionButtonScale(0);
+ },
+ dispose$0: function(_) {
+ this.get$_previousController().dispose$0(0);
+ this.super$__FloatingActionButtonTransitionState_State_TickerProviderStateMixin$dispose(0);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, oldChildIsNull, t2, newChildIsNull, t3, currentValue, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ t1 = oldWidget.child;
+ oldChildIsNull = t1 == null;
+ t2 = _this._widget.child;
+ newChildIsNull = t2 == null;
+ if (oldChildIsNull === newChildIsNull) {
+ t3 = oldChildIsNull ? null : t1.key;
+ t2 = J.$eq$(t3, newChildIsNull ? null : t2.key);
+ } else
+ t2 = false;
+ if (t2)
+ return;
+ t2 = oldWidget.fabMotionAnimator;
+ t3 = _this._widget;
+ if (t2 != t3.fabMotionAnimator || oldWidget.fabMoveAnimation != t3.fabMoveAnimation)
+ _this._updateAnimations$0();
+ if (_this.get$_previousController().get$_animation_controller$_status() === C.AnimationStatus_0) {
+ currentValue = _this._widget.currentController.get$_animation_controller$_value();
+ if (currentValue === 0 || oldChildIsNull) {
+ _this._previousChild = null;
+ t1 = _this._widget;
+ if (t1.child != null)
+ t1.currentController.forward$0(0);
+ } else {
+ _this._previousChild = t1;
+ t1 = _this.get$_previousController();
+ t1.set$value(0, currentValue);
+ t1.reverse$0(0);
+ _this._widget.currentController.set$value(0, 0);
+ }
+ }
+ },
+ _updateAnimations$0: function() {
+ var t6, t7, t8, t9, t10, moveScaleAnimation, t11, t12, moveRotationAnimation, _this = this, _null = null,
+ previousExitScaleAnimation = S.CurvedAnimation$(C.Cubic_JUR0, _this.get$_previousController(), _null),
+ t1 = type$.Tween_double,
+ t2 = S.CurvedAnimation$(C.Cubic_JUR0, _this.get$_previousController(), _null),
+ currentEntranceScaleAnimation = S.CurvedAnimation$(C.Cubic_JUR0, _this._widget.currentController, _null),
+ t3 = _this._widget,
+ t4 = t3.currentController,
+ t5 = $.$get$_FloatingActionButtonTransitionState__entranceTurnTween();
+ t4.toString;
+ t6 = type$.Animation_double;
+ t6._as(t4);
+ t5.toString;
+ t7 = t3.fabMotionAnimator;
+ t3 = t3.fabMoveAnimation;
+ t7.toString;
+ t3.toString;
+ t6._as(t3);
+ t7 = type$.CurveTween._eval$1("_AnimatedEvaluation");
+ t8 = type$.JSArray_of_void_Function_AnimationStatus;
+ t9 = type$.ObserverList_of_void_Function_AnimationStatus;
+ t10 = type$.double;
+ moveScaleAnimation = A._AnimationSwap$(new S.ReverseAnimation(new R._AnimatedEvaluation(t3, new R.CurveTween(new Z.FlippedCurve(C.Interval_E4y)), t7), new R.ObserverList(H.setRuntimeTypeInfo([], t8), t9), 0), new R._AnimatedEvaluation(t3, new R.CurveTween(C.Interval_E4y), t7), t3, 0.5, t10);
+ t3 = _this._widget;
+ t11 = t3.fabMotionAnimator;
+ t3 = t3.fabMoveAnimation;
+ t11.toString;
+ t11 = $.$get$_ScalingFabMotionAnimator__rotationTween();
+ t3.toString;
+ t6._as(t3);
+ t11.toString;
+ t12 = $.$get$_ScalingFabMotionAnimator__thresholdCenterTween();
+ t12.toString;
+ moveRotationAnimation = A._AnimationSwap$(new R._AnimatedEvaluation(t3, t11, t11.$ti._eval$1("_AnimatedEvaluation")), new S.ReverseAnimation(new R._AnimatedEvaluation(t3, t12, H._instanceType(t12)._eval$1("_AnimatedEvaluation")), new R.ObserverList(H.setRuntimeTypeInfo([], t8), t9), 0), t3, 0.5, t10);
+ t3 = S.AnimationMin$(moveScaleAnimation, previousExitScaleAnimation, t10);
+ _this.___FloatingActionButtonTransitionState__previousScaleAnimation_isSet = true;
+ _this.___FloatingActionButtonTransitionState__previousScaleAnimation = t3;
+ t10 = S.AnimationMin$(moveScaleAnimation, currentEntranceScaleAnimation, t10);
+ _this.___FloatingActionButtonTransitionState__currentScaleAnimation_isSet = true;
+ _this.___FloatingActionButtonTransitionState__currentScaleAnimation = t10;
+ t10 = _this.get$_currentScaleAnimation();
+ t10.toString;
+ t6._as(t10);
+ _this.___FloatingActionButtonTransitionState__extendedCurrentScaleAnimation_isSet = true;
+ _this.___FloatingActionButtonTransitionState__extendedCurrentScaleAnimation = new R._AnimatedEvaluation(t10, new R.CurveTween(C.Interval_75R), t7);
+ t1 = S.TrainHoppingAnimation$(new R._AnimatedEvaluation(t2, new R.Tween(1, 1, t1), t1._eval$1("_AnimatedEvaluation")), moveRotationAnimation, _null);
+ _this.___FloatingActionButtonTransitionState__previousRotationAnimation_isSet = true;
+ _this.___FloatingActionButtonTransitionState__previousRotationAnimation = t1;
+ t5 = S.TrainHoppingAnimation$(new R._AnimatedEvaluation(t4, t5, t5.$ti._eval$1("_AnimatedEvaluation")), moveRotationAnimation, _null);
+ _this.___FloatingActionButtonTransitionState__currentRotationAnimation_isSet = true;
+ _this.___FloatingActionButtonTransitionState__currentRotationAnimation = t5;
+ t5 = _this.get$_currentScaleAnimation();
+ t4 = _this.get$_onProgressChanged();
+ t5.didRegisterListener$0();
+ t5 = t5.AnimationLocalListenersMixin__listeners;
+ t5._isDirty = true;
+ t5._observer_list$_list.push(t4);
+ t5 = _this.get$_previousScaleAnimation();
+ t5.didRegisterListener$0();
+ t5 = t5.AnimationLocalListenersMixin__listeners;
+ t5._isDirty = true;
+ t5._observer_list$_list.push(t4);
+ },
+ _handlePreviousAnimationStatusChanged$1: function($status) {
+ this.setState$1(new M._FloatingActionButtonTransitionState__handlePreviousAnimationStatusChanged_closure(this, $status));
+ },
+ build$1: function(_, context) {
+ var t2, t3, _this = this,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_Widget);
+ if (_this.get$_previousController().get$_animation_controller$_status() !== C.AnimationStatus_0) {
+ t2 = _this.get$_previousScaleAnimation();
+ t3 = _this.___FloatingActionButtonTransitionState__previousRotationAnimation_isSet ? _this.___FloatingActionButtonTransitionState__previousRotationAnimation : H.throwExpression(H.LateError$fieldNI("_previousRotationAnimation"));
+ t1.push(K.ScaleTransition$(K.RotationTransition$(_this._previousChild, t3), t2));
+ }
+ _this._widget.toString;
+ t2 = _this.get$_currentScaleAnimation();
+ t3 = _this.___FloatingActionButtonTransitionState__currentRotationAnimation_isSet ? _this.___FloatingActionButtonTransitionState__currentRotationAnimation : H.throwExpression(H.LateError$fieldNI("_currentRotationAnimation"));
+ t1.push(K.ScaleTransition$(K.RotationTransition$(_this._widget.child, t3), t2));
+ return T.Stack$(C.Alignment_1_0, t1, C.StackFit_0);
+ },
+ _onProgressChanged$0: function() {
+ var t3,
+ t1 = this.get$_previousScaleAnimation(),
+ t2 = t1.first;
+ t2 = t2.get$value(t2);
+ t1 = t1.next;
+ t1 = t1.get$value(t1);
+ t1 = Math.min(H.checkNum(t2), H.checkNum(t1));
+ t2 = this.get$_currentScaleAnimation();
+ t3 = t2.first;
+ t3 = t3.get$value(t3);
+ t2 = t2.next;
+ t2 = t2.get$value(t2);
+ t2 = Math.max(t1, Math.min(H.checkNum(t3), H.checkNum(t2)));
+ this._widget.geometryNotifier._updateWith$1$floatingActionButtonScale(t2);
+ }
+ };
+ M._FloatingActionButtonTransitionState__handlePreviousAnimationStatusChanged_closure.prototype = {
+ call$0: function() {
+ if (this.status === C.AnimationStatus_0) {
+ var t1 = this.$this._widget;
+ if (t1.child != null)
+ t1.currentController.forward$0(0);
+ }
+ },
+ $signature: 0
+ };
+ M.Scaffold.prototype = {
+ createState$0: function() {
+ var _null = null,
+ t1 = type$.LabeledGlobalKey_DrawerControllerState;
+ return new M.ScaffoldState(new N.LabeledGlobalKey(_null, t1), new N.LabeledGlobalKey(_null, t1), P.ListQueue$(_null, type$.ScaffoldFeatureController_SnackBar_SnackBarClosedReason), H.setRuntimeTypeInfo([], type$.JSArray__StandardBottomSheet), F.ScrollController$(), C.Color_4278190080, _null, C._StateLifecycle_0);
+ }
+ };
+ M.ScaffoldState.prototype = {
+ hideCurrentSnackBar$1$reason: function(reason) {
+ var t1, t2, mediaQuery, completer, _this = this, _null = null;
+ if (_this._messengerSnackBar != null) {
+ _this._scaffoldMessenger.hideCurrentSnackBar$1$reason(reason);
+ return;
+ }
+ t1 = _this._snackBars;
+ if (t1._head !== t1._tail) {
+ _null.get$status(_null);
+ t2 = false;
+ } else
+ t2 = true;
+ if (t2)
+ return;
+ mediaQuery = _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data;
+ completer = t1.get$first(t1)._scaffold$_completer;
+ if (mediaQuery.accessibleNavigation) {
+ _null.set$value(0, 0);
+ completer.complete$1(0, reason);
+ } else
+ _null.reverse$0(0).then$1$1(0, new M.ScaffoldState_hideCurrentSnackBar_closure(_this, completer, reason), type$.void);
+ t1 = _this._snackBarTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._snackBarTimer = null;
+ },
+ _updateSnackBar$0: function() {
+ this.setState$1(new M.ScaffoldState__updateSnackBar_closure(this));
+ },
+ _maybeBuildPersistentBottomSheet$0: function() {
+ this._widget.toString;
+ },
+ get$_floatingActionButtonMoveController: function() {
+ return this.__ScaffoldState__floatingActionButtonMoveController_isSet ? this.__ScaffoldState__floatingActionButtonMoveController : H.throwExpression(H.LateError$fieldNI("_floatingActionButtonMoveController"));
+ },
+ get$_floatingActionButtonAnimator: function() {
+ return this.__ScaffoldState__floatingActionButtonAnimator_isSet ? this.__ScaffoldState__floatingActionButtonAnimator : H.throwExpression(H.LateError$fieldNI("_floatingActionButtonAnimator"));
+ },
+ get$_floatingActionButtonVisibilityController: function() {
+ return this.__ScaffoldState__floatingActionButtonVisibilityController_isSet ? this.__ScaffoldState__floatingActionButtonVisibilityController : H.throwExpression(H.LateError$fieldNI("_floatingActionButtonVisibilityController"));
+ },
+ _moveFloatingActionButton$1: function(newLocation) {
+ var t2, t3, restartAnimationFrom, _this = this, t1 = {};
+ t1.previousLocation = _this._floatingActionButtonLocation;
+ if (_this.get$_floatingActionButtonMoveController().get$isAnimating()) {
+ t2 = _this._previousFloatingActionButtonLocation;
+ t2.toString;
+ t3 = _this._floatingActionButtonLocation;
+ t3.toString;
+ t1.previousLocation = new M._TransitionSnapshotFabLocation(t2, t3, _this.get$_floatingActionButtonAnimator(), _this.get$_floatingActionButtonMoveController().get$_animation_controller$_value());
+ t3 = _this.get$_floatingActionButtonAnimator();
+ t2 = _this.get$_floatingActionButtonMoveController().get$_animation_controller$_value();
+ t3.toString;
+ restartAnimationFrom = Math.min(1 - t2, t2);
+ } else
+ restartAnimationFrom = 0;
+ _this.setState$1(new M.ScaffoldState__moveFloatingActionButton_closure(t1, _this, newLocation));
+ _this.get$_floatingActionButtonMoveController().forward$1$from(0, restartAnimationFrom);
+ },
+ _handleStatusBarTap$0: function() {
+ var t1 = this._primaryScrollController;
+ if (t1._positions.length !== 0)
+ t1.animateTo$3$curve$duration(0, C.C__Linear, C.Duration_300000);
+ },
+ get$_geometryNotifier: function() {
+ return this.__ScaffoldState__geometryNotifier_isSet ? this.__ScaffoldState__geometryNotifier : H.throwExpression(H.LateError$fieldNI("_geometryNotifier"));
+ },
+ get$_resizeToAvoidBottomInset: function() {
+ this._widget.toString;
+ return true;
+ },
+ initState$0: function() {
+ var t1, _this = this, _null = null;
+ _this.super$State$initState();
+ t1 = _this._framework$_element;
+ t1.toString;
+ _this.__ScaffoldState__geometryNotifier_isSet = true;
+ _this.__ScaffoldState__geometryNotifier = new M._ScaffoldGeometryNotifier(t1, C.ScaffoldGeometry_null_null, new P.LinkedList(type$.LinkedList__ListenerEntry));
+ t1 = _this._widget.floatingActionButtonLocation;
+ if (t1 == null)
+ t1 = C.C__EndFloatFabLocation;
+ _this._floatingActionButtonLocation = t1;
+ _this.__ScaffoldState__floatingActionButtonAnimator_isSet = true;
+ _this.__ScaffoldState__floatingActionButtonAnimator = C.C__ScalingFabMotionAnimator;
+ _this._previousFloatingActionButtonLocation = t1;
+ t1 = G.AnimationController$(_null, new P.Duration(400000), 0, _null, 1, 1, _this);
+ _this.__ScaffoldState__floatingActionButtonMoveController_isSet = true;
+ _this.__ScaffoldState__floatingActionButtonMoveController = t1;
+ t1 = G.AnimationController$(_null, C.Duration_200000, 0, _null, 1, _null, _this);
+ _this.__ScaffoldState__floatingActionButtonVisibilityController_isSet = true;
+ _this.__ScaffoldState__floatingActionButtonVisibilityController = t1;
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var _this = this,
+ t1 = _this._widget;
+ t1.toString;
+ t1 = t1.floatingActionButtonLocation;
+ if (t1 != oldWidget.floatingActionButtonLocation)
+ _this._moveFloatingActionButton$1(t1 == null ? C.C__EndFloatFabLocation : t1);
+ _this._widget.toString;
+ _this.super$State$didUpdateWidget(oldWidget);
+ },
+ didChangeDependencies$0: function() {
+ var t3, mediaQuery, _this = this,
+ scope = _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$._ScaffoldMessengerScope),
+ _currentScaffoldMessenger = scope == null ? null : scope._scaffoldMessengerState,
+ t1 = _this._scaffoldMessenger,
+ t2 = t1 == null;
+ if (!t2)
+ t3 = _currentScaffoldMessenger == null || t1 !== _currentScaffoldMessenger;
+ else
+ t3 = false;
+ if (t3)
+ if (!t2)
+ t1._scaffolds.remove$1(0, _this);
+ _this._scaffoldMessenger = _currentScaffoldMessenger;
+ if (_currentScaffoldMessenger != null) {
+ _currentScaffoldMessenger._scaffolds.add$1(0, _this);
+ t1 = _currentScaffoldMessenger._snackBars;
+ if (!t1.get$isEmpty(t1))
+ _this._updateSnackBar$0();
+ }
+ mediaQuery = _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data;
+ if (_this._accessibleNavigation === true)
+ if (!mediaQuery.accessibleNavigation) {
+ t1 = _this._snackBarTimer;
+ t1 = t1 != null && t1._handle == null;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ _this.hideCurrentSnackBar$1$reason(C.SnackBarClosedReason_5);
+ _this._accessibleNavigation = mediaQuery.accessibleNavigation;
+ _this._maybeBuildPersistentBottomSheet$0();
+ _this.super$_ScaffoldState_State_TickerProviderStateMixin$didChangeDependencies();
+ },
+ dispose$0: function(_) {
+ var t2, _i, t3, _this = this,
+ t1 = _this._snackBarTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._snackBarTimer = null;
+ _this.get$_geometryNotifier().ChangeNotifier__listeners = null;
+ for (t1 = _this._dismissedBottomSheets, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ t3 = t1[_i].animationController;
+ t3._ticker.dispose$0(0);
+ t3._ticker = null;
+ t3.super$AnimationEagerListenerMixin$dispose(0);
+ }
+ t1 = _this._currentBottomSheet;
+ if (t1 != null)
+ t1._scaffold$_widget.animationController.dispose$0(0);
+ _this.get$_floatingActionButtonMoveController().dispose$0(0);
+ _this.get$_floatingActionButtonVisibilityController().dispose$0(0);
+ t1 = _this._scaffoldMessenger;
+ if (t1 != null)
+ t1._scaffolds.remove$1(0, _this);
+ _this.super$_ScaffoldState_State_TickerProviderStateMixin$dispose(0);
+ },
+ _addIfNonNull$9$maintainBottomViewPadding$removeBottomInset$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding: function(children, child, childId, maintainBottomViewPadding, removeBottomInset, removeBottomPadding, removeLeftPadding, removeRightPadding, removeTopPadding) {
+ var data = this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data.removePadding$4$removeBottom$removeLeft$removeRight$removeTop(removeBottomPadding, removeLeftPadding, removeRightPadding, removeTopPadding);
+ if (removeBottomInset)
+ data = data.removeViewInsets$1$removeBottom(true);
+ if (maintainBottomViewPadding && data.viewInsets.bottom !== 0)
+ data = data.copyWith$1$padding(data.padding.copyWith$1$bottom(data.viewPadding.bottom));
+ if (child != null)
+ children.push(T.LayoutId$(new F.MediaQuery(data, child, null), childId));
+ },
+ _addIfNonNull$8$removeBottomInset$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding: function(children, child, childId, removeBottomInset, removeBottomPadding, removeLeftPadding, removeRightPadding, removeTopPadding) {
+ return this._addIfNonNull$9$maintainBottomViewPadding$removeBottomInset$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, child, childId, false, removeBottomInset, removeBottomPadding, removeLeftPadding, removeRightPadding, removeTopPadding);
+ },
+ _addIfNonNull$7$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding: function(children, child, childId, removeBottomPadding, removeLeftPadding, removeRightPadding, removeTopPadding) {
+ return this._addIfNonNull$9$maintainBottomViewPadding$removeBottomInset$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, child, childId, false, false, removeBottomPadding, removeLeftPadding, removeRightPadding, removeTopPadding);
+ },
+ _addIfNonNull$8$maintainBottomViewPadding$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding: function(children, child, childId, maintainBottomViewPadding, removeBottomPadding, removeLeftPadding, removeRightPadding, removeTopPadding) {
+ return this._addIfNonNull$9$maintainBottomViewPadding$removeBottomInset$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, child, childId, maintainBottomViewPadding, false, removeBottomPadding, removeLeftPadding, removeRightPadding, removeTopPadding);
+ },
+ _buildEndDrawer$2: function(children, textDirection) {
+ this._widget.toString;
+ },
+ _buildDrawer$2: function(children, textDirection) {
+ this._widget.toString;
+ },
+ build$1: function(_, context) {
+ var textDirection, route, t2, children, t3, snackBarWidth, _i, stack, minInsets, minViewPadding, _this = this, _null = null, _box_0 = {},
+ mediaQuery = context.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data,
+ themeData = K.Theme_of(context),
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ textDirection = t1.textDirection;
+ _this._accessibleNavigation = mediaQuery.accessibleNavigation;
+ t1 = _this._snackBars;
+ if (!t1.get$isEmpty(t1)) {
+ route = T.ModalRoute_of(context, type$.nullable_Object);
+ if (route == null || route.get$isCurrent())
+ _null.get$isCompleted();
+ else {
+ t2 = _this._snackBarTimer;
+ if (t2 != null)
+ t2.cancel$0(0);
+ _this._snackBarTimer = null;
+ }
+ }
+ children = H.setRuntimeTypeInfo([], type$.JSArray_LayoutId);
+ t2 = _this._widget.body;
+ _this.get$_resizeToAvoidBottomInset();
+ _this._addIfNonNull$8$removeBottomInset$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, new M._BodyBuilder(t2, false, false, _null), C._ScaffoldSlot_0, true, false, false, false, true);
+ if (_this._showBodyScrim)
+ _this._addIfNonNull$7$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, new X.ModalBarrier(_this._bodyScrimColor, false, true, _null, _null), C._ScaffoldSlot_2, true, true, true, true);
+ t2 = _this._widget;
+ t2 = t2.appBar;
+ t3 = _this._appBarMaxHeight = t2.preferredSize._dy + mediaQuery.padding.top;
+ _this._addIfNonNull$7$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, new T.ConstrainedBox(new S.BoxConstraints(0, 1 / 0, 0, t3), new Z.FlexibleSpaceBarSettings(1, t3, t3, t3, t2, _null), _null), C._ScaffoldSlot_1, true, false, false, false);
+ _box_0.isSnackBarFloating = false;
+ _box_0.snackBarWidth = null;
+ t2 = _this._messengerSnackBar;
+ if (t2 != null) {
+ t2._scaffold$_widget.get$behavior();
+ themeData.toString;
+ _box_0.isSnackBarFloating = false;
+ t2 = _this._messengerSnackBar;
+ if (t2 == null)
+ snackBarWidth = _null;
+ else {
+ t2 = t2._scaffold$_widget;
+ snackBarWidth = t2.get$width(t2);
+ }
+ _box_0.snackBarWidth = snackBarWidth;
+ t2 = _this._messengerSnackBar;
+ t2 = t2 == null ? _null : t2._scaffold$_widget;
+ _this._widget.toString;
+ _this.get$_resizeToAvoidBottomInset();
+ _this._addIfNonNull$8$maintainBottomViewPadding$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, t2, C._ScaffoldSlot_4, false, false, false, false, true);
+ }
+ if (!t1.get$isEmpty(t1)) {
+ t1.get$first(t1)._scaffold$_widget.get$behavior();
+ _box_0.isSnackBarFloating = false;
+ t2 = t1.get$first(t1)._scaffold$_widget;
+ _box_0.snackBarWidth = t2.get$width(t2);
+ t1 = t1.get$first(t1)._scaffold$_widget;
+ _this._widget.toString;
+ _this.get$_resizeToAvoidBottomInset();
+ _this._addIfNonNull$8$maintainBottomViewPadding$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, t1, C._ScaffoldSlot_4, false, false, false, false, true);
+ }
+ _this._widget.toString;
+ if (_this._currentBottomSheet != null || _this._dismissedBottomSheets.length !== 0) {
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_Widget);
+ for (t2 = _this._dismissedBottomSheets, t3 = t2.length, _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i)
+ t1.push(t2[_i]);
+ t2 = _this._currentBottomSheet;
+ if (t2 != null)
+ t1.push(t2._scaffold$_widget);
+ stack = T.Stack$(C.Alignment_0_1, t1, C.StackFit_0);
+ _this.get$_resizeToAvoidBottomInset();
+ _this._addIfNonNull$7$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, stack, C._ScaffoldSlot_3, true, false, false, true);
+ }
+ _this._addIfNonNull$7$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, new M._FloatingActionButtonTransition(_this._widget.floatingActionButton, _this.get$_floatingActionButtonMoveController(), _this.get$_floatingActionButtonAnimator(), _this.get$_geometryNotifier(), _this.get$_floatingActionButtonVisibilityController(), _null), C._ScaffoldSlot_7, true, true, true, true);
+ switch (themeData.platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ _this._addIfNonNull$7$removeBottomPadding$removeLeftPadding$removeRightPadding$removeTopPadding(children, D.GestureDetector$(C.HitTestBehavior_1, _null, C.DragStartBehavior_1, true, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _this.get$_handleStatusBarTap(), _null, _null, _null, _null, _null, _null), C._ScaffoldSlot_10, true, false, false, true);
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ if (_this._endDrawerOpened) {
+ _this._buildDrawer$2(children, textDirection);
+ _this._buildEndDrawer$2(children, textDirection);
+ } else {
+ _this._buildEndDrawer$2(children, textDirection);
+ _this._buildDrawer$2(children, textDirection);
+ }
+ _this.get$_resizeToAvoidBottomInset();
+ t1 = mediaQuery.viewInsets.bottom;
+ minInsets = mediaQuery.padding.copyWith$1$bottom(t1);
+ _this.get$_resizeToAvoidBottomInset();
+ t1 = t1 !== 0 ? 0 : _null;
+ minViewPadding = mediaQuery.viewPadding.copyWith$1$bottom(t1);
+ if (minInsets.bottom <= 0)
+ _this._widget.toString;
+ _this._widget.toString;
+ _this.get$_geometryNotifier();
+ _this._widget.toString;
+ t1 = themeData.scaffoldBackgroundColor;
+ return new M._ScaffoldScope(false, new E.PrimaryScrollController(_this._primaryScrollController, M.Material$(C.Duration_200000, _null, K.AnimatedBuilder$(_this.get$_floatingActionButtonMoveController(), new M.ScaffoldState_build_closure(_box_0, _this, children, false, minInsets, minViewPadding, textDirection), _null), C.Clip_0, t1, 0, _null, _null, _null, _null, C.MaterialType_0), _null), _null);
+ }
+ };
+ M.ScaffoldState_hideCurrentSnackBar_closure.prototype = {
+ call$1: function(value) {
+ var t1 = this.completer;
+ if (t1.future._state === 0)
+ t1.complete$1(0, this.reason);
+ },
+ $signature: 16
+ };
+ M.ScaffoldState__updateSnackBar_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ t2 = t1._scaffoldMessenger._snackBars;
+ if (!t2.get$isEmpty(t2)) {
+ t2 = t1._scaffoldMessenger._snackBars;
+ t2 = t2.get$first(t2);
+ } else
+ t2 = null;
+ t1._messengerSnackBar = t2;
+ },
+ $signature: 0
+ };
+ M.ScaffoldState__moveFloatingActionButton_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._previousFloatingActionButtonLocation = this._box_0.previousLocation;
+ t1._floatingActionButtonLocation = this.newLocation;
+ },
+ $signature: 0
+ };
+ M.ScaffoldState_build_closure.prototype = {
+ call$2: function(context, child) {
+ var t2, t3, t4, t5, t6, _this = this,
+ t1 = _this.$this;
+ t1._widget.toString;
+ t2 = t1._floatingActionButtonLocation;
+ t2.toString;
+ t3 = t1.get$_floatingActionButtonMoveController().get$_animation_controller$_value();
+ t4 = t1.get$_floatingActionButtonAnimator();
+ t5 = t1.get$_geometryNotifier();
+ t1 = t1._previousFloatingActionButtonLocation;
+ t1.toString;
+ t6 = _this._box_0;
+ return new T.CustomMultiChildLayout(new M._ScaffoldLayout(_this._extendBody, false, _this.minInsets, _this.minViewPadding, _this.textDirection, t5, t1, t2, t3, t4, t6.isSnackBarFloating, t6.snackBarWidth), _this.children, null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 173
+ };
+ M._ScaffoldScope.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return this.hasDrawer !== oldWidget.hasDrawer;
+ }
+ };
+ M._ScaffoldMessengerState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ M._ScaffoldState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ M.__FloatingActionButtonTransitionState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ Q.SliderThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashList([_this.trackHeight, _this.activeTrackColor, _this.inactiveTrackColor, _this.disabledActiveTrackColor, _this.disabledInactiveTrackColor, _this.activeTickMarkColor, _this.inactiveTickMarkColor, _this.disabledActiveTickMarkColor, _this.disabledInactiveTickMarkColor, _this.thumbColor, _this.overlappingShapeStrokeColor, _this.disabledThumbColor, _this.overlayColor, _this.valueIndicatorColor, _this.overlayShape, _this.tickMarkShape, _this.thumbShape, _this.trackShape, _this.valueIndicatorShape, _this.rangeTickMarkShape, _this.rangeThumbShape, _this.rangeTrackShape, _this.rangeValueIndicatorShape, _this.showValueIndicator, _this.valueIndicatorTextStyle, _this.minThumbSeparation, _this.thumbSelector]);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof Q.SliderThemeData)
+ if (other.trackHeight == _this.trackHeight)
+ if (J.$eq$(other.activeTrackColor, _this.activeTrackColor))
+ if (J.$eq$(other.inactiveTrackColor, _this.inactiveTrackColor))
+ if (J.$eq$(other.disabledActiveTrackColor, _this.disabledActiveTrackColor))
+ if (J.$eq$(other.disabledInactiveTrackColor, _this.disabledInactiveTrackColor))
+ if (J.$eq$(other.activeTickMarkColor, _this.activeTickMarkColor))
+ if (J.$eq$(other.inactiveTickMarkColor, _this.inactiveTickMarkColor))
+ if (J.$eq$(other.disabledActiveTickMarkColor, _this.disabledActiveTickMarkColor))
+ if (J.$eq$(other.disabledInactiveTickMarkColor, _this.disabledInactiveTickMarkColor))
+ if (J.$eq$(other.thumbColor, _this.thumbColor))
+ if (J.$eq$(other.overlappingShapeStrokeColor, _this.overlappingShapeStrokeColor))
+ if (J.$eq$(other.disabledThumbColor, _this.disabledThumbColor))
+ if (J.$eq$(other.overlayColor, _this.overlayColor))
+ if (J.$eq$(other.valueIndicatorColor, _this.valueIndicatorColor))
+ t1 = J.$eq$(other.valueIndicatorTextStyle, _this.valueIndicatorTextStyle) && other.minThumbSeparation == _this.minThumbSeparation && true;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ Q._SliderThemeData_Object_Diagnosticable.prototype = {};
+ N.SnackBarClosedReason.prototype = {
+ toString$0: function(_) {
+ return this._snack_bar$_name;
+ }
+ };
+ K.SnackBarThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.backgroundColor, _this.actionTextColor, _this.disabledActionTextColor, _this.contentTextStyle, _this.elevation, _this.shape, _this.behavior, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof K.SnackBarThemeData && J.$eq$(other.backgroundColor, _this.backgroundColor) && J.$eq$(other.actionTextColor, _this.actionTextColor) && J.$eq$(other.disabledActionTextColor, _this.disabledActionTextColor) && J.$eq$(other.contentTextStyle, _this.contentTextStyle) && other.elevation == _this.elevation && J.$eq$(other.shape, _this.shape) && true;
+ }
+ };
+ K._SnackBarThemeData_Object_Diagnosticable.prototype = {};
+ U.TabBarTheme.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.indicator, _this.indicatorSize, _this.labelColor, _this.labelPadding, _this.labelStyle, _this.unselectedLabelColor, _this.unselectedLabelStyle, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof U.TabBarTheme)
+ if (J.$eq$(other.indicator, _this.indicator))
+ t1 = J.$eq$(other.labelColor, _this.labelColor) && J.$eq$(other.labelPadding, _this.labelPadding) && J.$eq$(other.labelStyle, _this.labelStyle) && J.$eq$(other.unselectedLabelColor, _this.unselectedLabelColor) && J.$eq$(other.unselectedLabelStyle, _this.unselectedLabelStyle);
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ U._TabBarTheme_Object_Diagnosticable.prototype = {};
+ T.TextButtonThemeData.prototype = {
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.style);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof T.TextButtonThemeData && J.$eq$(other.style, this.style);
+ }
+ };
+ T._TextButtonThemeData_Object_Diagnosticable.prototype = {};
+ Z._TextFieldSelectionGestureDetectorBuilder.prototype = {
+ onForcePressStart$1: function(details) {
+ var t1, t2;
+ this.super$TextSelectionGestureDetectorBuilder$onForcePressStart(details);
+ t1 = this.delegate;
+ t1._widget.toString;
+ t2 = this._shouldShowSelectionToolbar;
+ if (t2) {
+ t1 = t1.editableTextKey.get$currentState();
+ t1.toString;
+ t1.showToolbar$0();
+ }
+ },
+ onForcePressEnd$1: function(details) {
+ },
+ onSingleLongTapMoveUpdate$1: function(details) {
+ var t2,
+ t1 = this.delegate;
+ t1._widget.toString;
+ t2 = this._text_field$_state._framework$_element;
+ t2.toString;
+ switch (K.Theme_of(t2).platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ t1 = t1.editableTextKey.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1).selectPositionAt$2$cause$from(C.SelectionChangedCause_2, details.globalPosition);
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ t1 = t1.editableTextKey.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ t2 = details.globalPosition;
+ type$.RenderEditable._as(t1).selectWordsInRange$3$cause$from$to(C.SelectionChangedCause_2, t2.$sub(0, details.offsetFromOrigin), t2);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ onSingleTapUp$1: function(details) {
+ var _s80_ = string$.x60null_c,
+ t1 = this.delegate,
+ t2 = t1.editableTextKey,
+ t3 = t2.get$currentState();
+ t3.toString;
+ t3.hideToolbar$0();
+ t1._widget.toString;
+ t1 = this._text_field$_state._framework$_element;
+ t1.toString;
+ switch (K.Theme_of(t1).platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ switch (details.kind) {
+ case C.PointerDeviceKind_1:
+ case C.PointerDeviceKind_2:
+ case C.PointerDeviceKind_3:
+ t1 = t2.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1);
+ t2 = t1._lastTapDownPosition;
+ t2.toString;
+ t1.selectPositionAt$2$cause$from(C.SelectionChangedCause_0, t2);
+ break;
+ case C.PointerDeviceKind_0:
+ case C.PointerDeviceKind_4:
+ t1 = t2.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1).selectWordEdge$1$cause(C.SelectionChangedCause_0);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ t1 = t2.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1);
+ t2 = t1._lastTapDownPosition;
+ t2.toString;
+ t1.selectPositionAt$2$cause$from(C.SelectionChangedCause_0, t2);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ t1 = this._text_field$_state;
+ t1._requestKeyboard$0();
+ t1._widget.toString;
+ },
+ onSingleLongTapStart$1: function(details) {
+ var t2, t3,
+ t1 = this.delegate;
+ t1._widget.toString;
+ t2 = this._text_field$_state;
+ t3 = t2._framework$_element;
+ t3.toString;
+ switch (K.Theme_of(t3).platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ t1 = t1.editableTextKey.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1).selectPositionAt$2$cause$from(C.SelectionChangedCause_2, details.globalPosition);
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ t1 = t1.editableTextKey.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1);
+ t3 = t1._lastTapDownPosition;
+ t3.toString;
+ t1.selectWordsInRange$2$cause$from(C.SelectionChangedCause_2, t3);
+ t2 = t2._framework$_element;
+ t2.toString;
+ M.Feedback_forLongPress(t2);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ Z.TextField.prototype = {
+ createState$0: function() {
+ var _null = null;
+ return new Z._TextFieldState(new N.LabeledGlobalKey(_null, type$.LabeledGlobalKey_EditableTextState), _null, P.LinkedHashMap_LinkedHashMap$_empty(type$.RestorableProperty_nullable_Object, type$.void_Function), _null, true, _null, C._StateLifecycle_0);
+ }
+ };
+ Z._TextFieldState.prototype = {
+ get$_effectiveController: function() {
+ this._widget.toString;
+ var t1 = this._text_field$_controller;
+ t1 = t1._restoration_properties$_value;
+ t1.toString;
+ return t1;
+ },
+ get$_effectiveFocusNode: function() {
+ this._widget.toString;
+ var t1 = this._focusNode;
+ if (t1 == null) {
+ t1 = O.FocusNode$(true, null, true, null, false);
+ this._focusNode = t1;
+ }
+ return t1;
+ },
+ get$_selectionGestureDetectorBuilder: function() {
+ return this.___TextFieldState__selectionGestureDetectorBuilder_isSet ? this.___TextFieldState__selectionGestureDetectorBuilder : H.throwExpression(H.LateError$fieldNI("_selectionGestureDetectorBuilder"));
+ },
+ get$forcePressEnabled: function() {
+ return this.___TextFieldState_forcePressEnabled_isSet ? this.___TextFieldState_forcePressEnabled : H.throwExpression(H.LateError$fieldNI("forcePressEnabled"));
+ },
+ get$_isEnabled: function() {
+ this._widget.toString;
+ return true;
+ },
+ get$_hasIntrinsicError: function() {
+ this._widget.toString;
+ return false;
+ },
+ _getEffectiveDecoration$0: function() {
+ var themeData, t2, effectiveDecoration, _this = this,
+ t1 = _this._framework$_element;
+ t1.toString;
+ L.Localizations_of(t1, C.Type_MaterialLocalizations_flR, type$.MaterialLocalizations).toString;
+ t1 = _this._framework$_element;
+ t1.toString;
+ themeData = K.Theme_of(t1);
+ t1 = _this._widget.decoration;
+ t1 = t1.applyDefaults$1(themeData.inputDecorationTheme);
+ _this.get$_isEnabled();
+ t2 = _this._widget.decoration.hintMaxLines;
+ effectiveDecoration = t1.copyWith$2$enabled$hintMaxLines(true, t2 == null ? 1 : t2);
+ t1 = effectiveDecoration.counter == null;
+ if (!t1 || effectiveDecoration.counterText != null)
+ return effectiveDecoration;
+ t2 = new T.StringCharacters(_this.get$_effectiveController()._change_notifier$_value.text);
+ t2.get$length(t2);
+ if (t1)
+ if (effectiveDecoration.counterText == null)
+ _this._widget.toString;
+ _this._widget.toString;
+ return effectiveDecoration;
+ },
+ initState$0: function() {
+ var t1, _this = this;
+ _this.super$State$initState();
+ _this.___TextFieldState__selectionGestureDetectorBuilder_isSet = true;
+ _this.___TextFieldState__selectionGestureDetectorBuilder = new Z._TextFieldSelectionGestureDetectorBuilder(_this, _this);
+ _this._widget.toString;
+ _this._createLocalController$0();
+ t1 = _this.get$_effectiveFocusNode();
+ _this.get$_isEnabled();
+ t1.set$canRequestFocus(true);
+ },
+ get$_text_field$_canRequestFocus: function() {
+ var mode,
+ t1 = this._framework$_element;
+ t1.toString;
+ t1 = F.MediaQuery_maybeOf(t1);
+ mode = t1 == null ? null : t1.navigationMode;
+ switch (mode == null ? C.NavigationMode_0 : mode) {
+ case C.NavigationMode_0:
+ this.get$_isEnabled();
+ return true;
+ case C.NavigationMode_1:
+ return true;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ didChangeDependencies$0: function() {
+ this.super$__TextFieldState_State_RestorationMixin$didChangeDependencies();
+ var t1 = this.get$_effectiveFocusNode();
+ this.get$_text_field$_canRequestFocus();
+ t1.set$canRequestFocus(true);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, _this = this;
+ _this.super$__TextFieldState_State_RestorationMixin$didUpdateWidget(oldWidget);
+ _this._widget.toString;
+ oldWidget.toString;
+ t1 = _this.get$_effectiveFocusNode();
+ _this.get$_text_field$_canRequestFocus();
+ t1.set$canRequestFocus(true);
+ if (_this.get$_effectiveFocusNode().get$hasFocus()) {
+ _this._widget.toString;
+ oldWidget.toString;
+ }
+ },
+ restoreState$2: function(oldBucket, initialRestore) {
+ var t1 = this._text_field$_controller;
+ if (t1 != null)
+ this.registerForRestoration$2(t1, "controller");
+ },
+ _createLocalController$1: function(value) {
+ var _this = this,
+ t1 = new U.RestorableTextEditingController(C.TextEditingValue_QOg, new P.LinkedList(type$.LinkedList__ListenerEntry));
+ _this._text_field$_controller = t1;
+ if (!_this.get$restorePending()) {
+ t1 = _this._text_field$_controller;
+ t1.toString;
+ _this.registerForRestoration$2(t1, "controller");
+ }
+ },
+ _createLocalController$0: function() {
+ return this._createLocalController$1(null);
+ },
+ get$restorationId: function() {
+ this._widget.toString;
+ return null;
+ },
+ dispose$0: function(_) {
+ var t1 = this._focusNode;
+ if (t1 != null)
+ t1.dispose$0(0);
+ t1 = this._text_field$_controller;
+ if (t1 != null) {
+ t1._diposeOldValue$0();
+ t1.super$RestorableListenable$dispose(0);
+ }
+ this.super$__TextFieldState_State_RestorationMixin$dispose(0);
+ },
+ _requestKeyboard$0: function() {
+ var t1 = this.editableTextKey.get$currentState();
+ if (t1 != null)
+ t1.requestKeyboard$0();
+ },
+ _shouldShowSelectionHandles$1: function(cause) {
+ var _this = this;
+ if (!_this.get$_selectionGestureDetectorBuilder()._shouldShowSelectionToolbar)
+ return false;
+ if (cause === C.SelectionChangedCause_4)
+ return false;
+ _this._widget.toString;
+ _this.get$_isEnabled();
+ if (cause === C.SelectionChangedCause_2)
+ return true;
+ if (_this.get$_effectiveController()._change_notifier$_value.text.length !== 0)
+ return true;
+ return false;
+ },
+ _handleSelectionChanged$2: function(selection, cause) {
+ var t1, _this = this,
+ willShowSelectionHandles = _this._shouldShowSelectionHandles$1(cause);
+ if (willShowSelectionHandles !== _this._showSelectionHandles)
+ _this.setState$1(new Z._TextFieldState__handleSelectionChanged_closure(_this, willShowSelectionHandles));
+ t1 = _this._framework$_element;
+ t1.toString;
+ switch (K.Theme_of(t1).platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ if (cause === C.SelectionChangedCause_2) {
+ t1 = _this.editableTextKey.get$currentState();
+ if (t1 != null)
+ t1.bringIntoView$1(new P.TextPosition(selection.baseOffset, selection.affinity));
+ }
+ return;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _handleSelectionHandleTapped$0: function() {
+ var t1 = this.get$_effectiveController()._change_notifier$_value.selection;
+ if (t1.start == t1.end) {
+ t1 = this.editableTextKey.get$currentState();
+ if (t1._selectionOverlay._toolbar != null)
+ t1.hideToolbar$0();
+ else
+ t1.showToolbar$0();
+ }
+ },
+ _handleHover$1: function(hovering) {
+ if (hovering !== this._isHovering)
+ this.setState$1(new Z._TextFieldState__handleHover_closure(this, hovering));
+ },
+ build$1: function(_, context) {
+ var style, keyboardAppearance, controller, focusNode, cupertinoTheme, textSelectionControls, cursorColor, selectionColor, t2, cursorOffset, autocorrectionTextRectColor, paintCursorAboveText, cursorOpacityAnimates, cursorRadius, t3, t4, t5, t6, t7, t8, t9, child, effectiveMouseCursor, _this = this, _null = null,
+ theme = K.Theme_of(context),
+ selectionTheme = R.TextSelectionTheme_of(context),
+ t1 = theme.textTheme.subtitle1;
+ t1.toString;
+ _this._widget.toString;
+ style = t1.merge$1(_null);
+ _this._widget.toString;
+ keyboardAppearance = theme.primaryColorBrightness;
+ controller = _this.get$_effectiveController();
+ focusNode = _this.get$_effectiveFocusNode();
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_TextInputFormatter);
+ _this._widget.toString;
+ switch (theme.platform) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ cupertinoTheme = K.CupertinoTheme_of(context);
+ _this.___TextFieldState_forcePressEnabled = _this.___TextFieldState_forcePressEnabled_isSet = true;
+ textSelectionControls = $.$get$cupertinoTextSelectionControls();
+ cursorColor = selectionTheme.cursorColor;
+ if (cursorColor == null)
+ cursorColor = cupertinoTheme.get$primaryColor();
+ selectionColor = selectionTheme.selectionColor;
+ if (selectionColor == null) {
+ t2 = cupertinoTheme.get$primaryColor();
+ selectionColor = P.Color$fromARGB(102, t2.get$value(t2) >>> 16 & 255, t2.get$value(t2) >>> 8 & 255, t2.get$value(t2) & 255);
+ }
+ cursorOffset = new P.Offset(-2 / context.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data.devicePixelRatio, 0);
+ autocorrectionTextRectColor = selectionColor;
+ paintCursorAboveText = true;
+ cursorOpacityAnimates = true;
+ cursorRadius = C.Radius_2_2;
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ _this.___TextFieldState_forcePressEnabled_isSet = true;
+ _this.___TextFieldState_forcePressEnabled = false;
+ textSelectionControls = $.$get$materialTextSelectionControls();
+ cursorColor = selectionTheme.cursorColor;
+ if (cursorColor == null)
+ cursorColor = theme.colorScheme.primary;
+ selectionColor = selectionTheme.selectionColor;
+ if (selectionColor == null) {
+ t2 = theme.colorScheme.primary;
+ selectionColor = P.Color$fromARGB(102, t2.get$value(t2) >>> 16 & 255, t2.get$value(t2) >>> 8 & 255, t2.get$value(t2) & 255);
+ }
+ cursorRadius = _null;
+ autocorrectionTextRectColor = cursorRadius;
+ cursorOffset = autocorrectionTextRectColor;
+ paintCursorAboveText = false;
+ cursorOpacityAnimates = false;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ t2 = _this.RestorationMixin__bucket;
+ _this._widget.toString;
+ _this.get$_isEnabled();
+ t3 = _this._widget;
+ t4 = t3.toolbarOptions;
+ t5 = _this._showSelectionHandles;
+ t6 = t3.keyboardType;
+ t7 = t3.textAlign;
+ t8 = t3.smartDashesType;
+ t9 = t3.smartQuotesType;
+ t1 = K.UnmanagedRestorationScope$(t2, D.EditableText$(true, autocorrectionTextRectColor, _null, false, C.CupertinoDynamicColor_YIZ, controller, cursorColor, _null, cursorOffset, cursorOpacityAnimates, cursorRadius, 2, C.DragStartBehavior_1, true, true, false, focusNode, t1, _this.editableTextKey, keyboardAppearance, t6, 1, _null, C.C__DeferringMouseCursor, false, "\u2022", _null, t3.onChanged, _null, _this.get$_handleSelectionChanged(), _this.get$_handleSelectionHandleTapped(), _null, paintCursorAboveText, false, true, "editable", _null, C.EdgeInsets_20_20_20_20, _null, selectionColor, textSelectionControls, C.BoxHeightStyle_0, C.BoxWidthStyle_0, _null, t5, t8, t9, _null, style, t7, C.TextCapitalization_30, _null, _null, t4));
+ _this._widget.toString;
+ child = K.AnimatedBuilder$(new B._MergingListenable(H.setRuntimeTypeInfo([focusNode, controller], type$.JSArray_Listenable)), new Z._TextFieldState_build_closure(_this, focusNode, controller), new T.RepaintBoundary(t1, _null));
+ _this._widget.toString;
+ t1 = P.LinkedHashSet_LinkedHashSet(type$.MaterialState);
+ _this.get$_isEnabled();
+ if (_this._isHovering)
+ t1.add$1(0, C.MaterialState_0);
+ if (focusNode.get$hasFocus())
+ t1.add$1(0, C.MaterialState_1);
+ t2 = _this._widget.decoration;
+ if (t2.errorText != null || _this.get$_hasIntrinsicError())
+ t1.add$1(0, C.MaterialState_6);
+ effectiveMouseCursor = V.MaterialStateProperty_resolveAs(C._EnabledAndDisabledMouseCursor_SystemMouseCursor_text_textable, t1, type$.MouseCursor);
+ _this.get$_isEnabled();
+ t1 = _this.get$_selectionGestureDetectorBuilder();
+ t2 = t1.get$onTapDown();
+ t3 = t1.delegate;
+ t4 = t3.get$forcePressEnabled() ? t1.get$onForcePressStart() : _null;
+ t3 = t3.get$forcePressEnabled() ? t1.get$onForcePressEnd() : _null;
+ return T.MouseRegion$(new T.IgnorePointer(false, _null, K.AnimatedBuilder$(controller, new Z._TextFieldState_build_closure0(_this), new F.TextSelectionGestureDetector(t2, t4, t3, t1.get$onSingleTapUp(), t1.get$onSingleTapCancel(), t1.get$onSingleLongTapStart(), t1.get$onSingleLongTapMoveUpdate(), t1.get$onSingleLongTapEnd(), t1.get$onDoubleTapDown(), t1.get$onDragSelectionStart(), t1.get$onDragSelectionUpdate(), t1.get$onDragSelectionEnd(), C.HitTestBehavior_2, child, _null)), _null), effectiveMouseCursor, new Z._TextFieldState_build_closure1(_this), new Z._TextFieldState_build_closure2(_this), true);
+ }
+ };
+ Z._TextFieldState__handleSelectionChanged_closure.prototype = {
+ call$0: function() {
+ this.$this._showSelectionHandles = this.willShowSelectionHandles;
+ },
+ $signature: 0
+ };
+ Z._TextFieldState__handleHover_closure.prototype = {
+ call$0: function() {
+ this.$this._isHovering = this.hovering;
+ },
+ $signature: 0
+ };
+ Z._TextFieldState_build_closure.prototype = {
+ call$2: function(context, child) {
+ var t1 = this.$this,
+ t2 = t1._getEffectiveDecoration$0(),
+ t3 = t1._widget.textAlign,
+ t4 = t1._isHovering,
+ t5 = this.focusNode.get$hasFocus(),
+ t6 = this.controller._change_notifier$_value.text.length;
+ t1._widget.toString;
+ return new L.InputDecorator(t2, null, t3, null, t5, t4, false, t6 === 0, child, null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 179
+ };
+ Z._TextFieldState_build_closure1.prototype = {
+ call$1: function($event) {
+ return this.$this._handleHover$1(true);
+ },
+ $signature: 77
+ };
+ Z._TextFieldState_build_closure2.prototype = {
+ call$1: function($event) {
+ return this.$this._handleHover$1(false);
+ },
+ $signature: 50
+ };
+ Z._TextFieldState_build_closure0.prototype = {
+ call$2: function(context, child) {
+ var t2, _null = null,
+ t1 = this.$this;
+ t1._widget.toString;
+ t2 = new T.StringCharacters(t1.get$_effectiveController()._change_notifier$_value.text);
+ return T.Semantics$(_null, child, false, t2.get$length(t2), _null, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, new Z._TextFieldState_build__closure(t1), _null, _null, _null, _null, _null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 180
+ };
+ Z._TextFieldState_build__closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ if (!t1.get$_effectiveController()._change_notifier$_value.selection.get$isValid())
+ t1.get$_effectiveController().set$selection(X.TextSelection$collapsed(C.TextAffinity_1, t1.get$_effectiveController()._change_notifier$_value.text.length));
+ t1._requestKeyboard$0();
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ Z.__TextFieldState_State_RestorationMixin_dispose_closure.prototype = {
+ call$2: function(property, listener) {
+ if (!property._disposed)
+ property.removeListener$1(0, listener);
+ },
+ $signature: 44
+ };
+ Z.__TextFieldState_State_RestorationMixin.prototype = {
+ didUpdateWidget$1: function(oldWidget) {
+ this.super$State$didUpdateWidget(oldWidget);
+ this.didUpdateRestorationId$0();
+ },
+ didChangeDependencies$0: function() {
+ var oldBucket, needsRestore, t1, didReplaceBucket, _this = this;
+ _this.super$State$didChangeDependencies();
+ oldBucket = _this.RestorationMixin__bucket;
+ needsRestore = _this.get$restorePending();
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = K.RestorationScope_of(t1);
+ _this.RestorationMixin__currentParent = t1;
+ didReplaceBucket = _this._updateBucketIfNecessary$2$parent$restorePending(t1, needsRestore);
+ if (needsRestore) {
+ _this.restoreState$2(oldBucket, _this.RestorationMixin__firstRestorePending);
+ _this.RestorationMixin__firstRestorePending = false;
+ }
+ if (didReplaceBucket)
+ if (oldBucket != null)
+ oldBucket.dispose$0(0);
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ _this.RestorationMixin__properties.forEach$1(0, new Z.__TextFieldState_State_RestorationMixin_dispose_closure());
+ t1 = _this.RestorationMixin__bucket;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this.RestorationMixin__bucket = null;
+ _this.super$State$dispose(0);
+ }
+ };
+ F._TextSelectionHandlePainter.prototype = {
+ paint$2: function(canvas, size) {
+ var radius, circle, t1, path,
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$color(0, this.color);
+ radius = size._dx / 2;
+ circle = P.Rect$fromCircle(new P.Offset(radius, radius), radius);
+ t1 = 0 + radius;
+ path = P.Path_Path();
+ path.addOval$1(0, circle);
+ path.addRect$1(0, new P.Rect(0, 0, t1, t1));
+ canvas.drawPath$2(0, path, paint);
+ },
+ shouldRepaint$1: function(oldPainter) {
+ return !J.$eq$(this.color, oldPainter.color);
+ }
+ };
+ F._MaterialTextSelectionControls.prototype = {
+ getHandleSize$1: function(textLineHeight) {
+ return C.Size_22_22;
+ },
+ buildHandle$3: function(context, type, textHeight) {
+ var theme = K.Theme_of(context),
+ handleColor = R.TextSelectionTheme_of(context).selectionHandleColor,
+ handle = T.SizedBox$(T.CustomPaint$(null, null, new F._TextSelectionHandlePainter(handleColor == null ? theme.colorScheme.primary : handleColor, null)), 22, 22);
+ switch (type) {
+ case C.TextSelectionHandleType_0:
+ return T.Transform$rotate(1.5707963267948966, handle);
+ case C.TextSelectionHandleType_1:
+ return handle;
+ case C.TextSelectionHandleType_2:
+ return T.Transform$rotate(0.7853981633974483, handle);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getHandleAnchor$2: function(type, textLineHeight) {
+ switch (type) {
+ case C.TextSelectionHandleType_0:
+ return C.Offset_22_0;
+ case C.TextSelectionHandleType_1:
+ return C.Offset_0_0;
+ default:
+ return C.Offset_11_m4;
+ }
+ }
+ };
+ R.TextSelectionThemeData.prototype = {
+ get$hashCode: function(_) {
+ return P.hashValues(this.cursorColor, this.selectionColor, this.selectionHandleColor, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof R.TextSelectionThemeData && J.$eq$(other.cursorColor, _this.cursorColor) && J.$eq$(other.selectionColor, _this.selectionColor) && J.$eq$(other.selectionHandleColor, _this.selectionHandleColor);
+ }
+ };
+ R._TextSelectionThemeData_Object_Diagnosticable.prototype = {};
+ R.TextTheme.prototype = {
+ merge$1: function(other) {
+ var t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, _this = this, _null = null;
+ if (other == null)
+ return _this;
+ t1 = _this.headline1;
+ t2 = t1 == null ? _null : t1.merge$1(other.headline1);
+ if (t2 == null)
+ t2 = other.headline1;
+ t3 = _this.headline2;
+ t4 = t3 == null ? _null : t3.merge$1(other.headline2);
+ if (t4 == null)
+ t4 = other.headline2;
+ t5 = _this.headline3;
+ t6 = t5 == null ? _null : t5.merge$1(other.headline3);
+ if (t6 == null)
+ t6 = other.headline3;
+ t7 = _this.headline4;
+ t8 = t7 == null ? _null : t7.merge$1(other.headline4);
+ if (t8 == null)
+ t8 = other.headline4;
+ t9 = _this.headline5;
+ t10 = t9 == null ? _null : t9.merge$1(other.headline5);
+ if (t10 == null)
+ t10 = other.headline5;
+ t11 = _this.headline6;
+ t12 = t11 == null ? _null : t11.merge$1(other.headline6);
+ if (t12 == null)
+ t12 = other.headline6;
+ t13 = _this.subtitle1;
+ t14 = t13 == null ? _null : t13.merge$1(other.subtitle1);
+ if (t14 == null)
+ t14 = other.subtitle1;
+ t15 = _this.subtitle2;
+ t16 = t15 == null ? _null : t15.merge$1(other.subtitle2);
+ if (t16 == null)
+ t16 = other.subtitle2;
+ t17 = _this.bodyText1;
+ t18 = t17 == null ? _null : t17.merge$1(other.bodyText1);
+ if (t18 == null)
+ t18 = other.bodyText1;
+ t19 = _this.bodyText2;
+ t20 = t19 == null ? _null : t19.merge$1(other.bodyText2);
+ if (t20 == null)
+ t20 = other.bodyText2;
+ t21 = _this.caption;
+ t22 = t21 == null ? _null : t21.merge$1(other.caption);
+ if (t22 == null)
+ t22 = other.caption;
+ t23 = _this.button;
+ t24 = t23 == null ? _null : t23.merge$1(other.button);
+ if (t24 == null)
+ t24 = other.button;
+ t25 = _this.overline;
+ t26 = t25 == null ? _null : t25.merge$1(other.overline);
+ if (t26 == null)
+ t26 = other.overline;
+ if (t2 == null)
+ t2 = _null;
+ t1 = t2 == null ? t1 : t2;
+ t2 = t4 == null ? _null : t4;
+ if (t2 == null)
+ t2 = t3;
+ t3 = t6 == null ? _null : t6;
+ if (t3 == null)
+ t3 = t5;
+ t4 = t8 == null ? _null : t8;
+ if (t4 == null)
+ t4 = t7;
+ t5 = t10 == null ? _null : t10;
+ if (t5 == null)
+ t5 = t9;
+ t6 = t12 == null ? _null : t12;
+ if (t6 == null)
+ t6 = t11;
+ t7 = t14 == null ? _null : t14;
+ if (t7 == null)
+ t7 = t13;
+ t8 = t16 == null ? _null : t16;
+ if (t8 == null)
+ t8 = t15;
+ t9 = t18 == null ? _null : t18;
+ if (t9 == null)
+ t9 = t17;
+ t10 = t20 == null ? _null : t20;
+ if (t10 == null)
+ t10 = t19;
+ t11 = t22 == null ? t21 : t22;
+ t12 = t24 == null ? t23 : t24;
+ return R.TextTheme$(t9, t10, t12, t11, t1, t2, t3, t4, t5, t6, t26 == null ? t25 : t26, t7, t8);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof R.TextTheme && J.$eq$(_this.headline1, other.headline1) && J.$eq$(_this.headline2, other.headline2) && J.$eq$(_this.headline3, other.headline3) && J.$eq$(_this.headline4, other.headline4) && J.$eq$(_this.headline5, other.headline5) && J.$eq$(_this.headline6, other.headline6) && J.$eq$(_this.subtitle1, other.subtitle1) && J.$eq$(_this.subtitle2, other.subtitle2) && J.$eq$(_this.bodyText1, other.bodyText1) && J.$eq$(_this.bodyText2, other.bodyText2) && J.$eq$(_this.caption, other.caption) && J.$eq$(_this.button, other.button) && J.$eq$(_this.overline, other.overline);
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.headline1, _this.headline2, _this.headline3, _this.headline4, _this.headline5, _this.headline6, _this.subtitle1, _this.subtitle2, _this.bodyText1, _this.bodyText2, _this.caption, _this.button, _this.overline, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ R._TextTheme_Object_Diagnosticable.prototype = {};
+ K.Theme.prototype = {
+ build$1: function(_, context) {
+ var t2, t3, t4, t5, t6, t7,
+ t1 = this.data;
+ t1.toString;
+ t2 = C.CupertinoThemeData_KQb.brightness;
+ t3 = C.CupertinoThemeData_KQb.primaryColor;
+ t4 = C.CupertinoThemeData_KQb.primaryContrastingColor;
+ t5 = C.CupertinoThemeData_KQb.textTheme;
+ t6 = C.CupertinoThemeData_KQb.barBackgroundColor;
+ t7 = C.CupertinoThemeData_KQb.scaffoldBackgroundColor;
+ return new K._InheritedTheme(this, new K.CupertinoTheme(new X.MaterialBasedCupertinoThemeData(t1, new K.NoDefaultCupertinoThemeData(t2, t3, t4, t5, t6, t7), C._CupertinoThemeDefaults_iF8, t2, t3, t4, t5, t6, t7), Y.IconTheme$(this.child, t1.iconTheme, null), null), null);
+ }
+ };
+ K._InheritedTheme.prototype = {
+ wrap$2: function(_, context, child) {
+ return new K.Theme(this.theme.data, child, null);
+ },
+ updateShouldNotify$1: function(old) {
+ return !J.$eq$(this.theme.data, old.theme.data);
+ }
+ };
+ K.ThemeDataTween.prototype = {
+ lerp$1: function(t) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100, t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111, t112, t113, t114, t115, t116, t117, t118, t119, t120, t121, t122, t123, t124, t125, t126, t127, t128, t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139, t140, t141, t142, t143, t144, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t160, lerpedBorderSide, t161, t162, t163, t164, t165, t166, t167, t168, t169, t170, t171, t172, t173, t174, t175, t176, t177, t178, t179, t180, t181, t182, t183, t184, t185, t186,
+ t1 = this.begin;
+ t1.toString;
+ t2 = this.end;
+ t2.toString;
+ t3 = t1.visualDensity.horizontal;
+ t4 = t2.visualDensity.horizontal;
+ t5 = P.lerpDouble(t3, t4, t);
+ t5.toString;
+ t4 = P.lerpDouble(t3, t4, t);
+ t4.toString;
+ t3 = P.Color_lerp(t1.primaryColor, t2.primaryColor, t);
+ t3.toString;
+ t6 = t < 0.5;
+ t7 = t6 ? t1.primaryColorBrightness : t2.primaryColorBrightness;
+ t8 = P.Color_lerp(t1.primaryColorLight, t2.primaryColorLight, t);
+ t8.toString;
+ t9 = P.Color_lerp(t1.primaryColorDark, t2.primaryColorDark, t);
+ t9.toString;
+ t10 = P.Color_lerp(t1.canvasColor, t2.canvasColor, t);
+ t10.toString;
+ t11 = P.Color_lerp(t1.shadowColor, t2.shadowColor, t);
+ t11.toString;
+ t12 = P.Color_lerp(t1.accentColor, t2.accentColor, t);
+ t12.toString;
+ t13 = t6 ? t1.accentColorBrightness : t2.accentColorBrightness;
+ t14 = P.Color_lerp(t1.scaffoldBackgroundColor, t2.scaffoldBackgroundColor, t);
+ t14.toString;
+ t15 = P.Color_lerp(t1.bottomAppBarColor, t2.bottomAppBarColor, t);
+ t15.toString;
+ t16 = P.Color_lerp(t1.cardColor, t2.cardColor, t);
+ t16.toString;
+ t17 = P.Color_lerp(t1.dividerColor, t2.dividerColor, t);
+ t17.toString;
+ t18 = P.Color_lerp(t1.focusColor, t2.focusColor, t);
+ t18.toString;
+ t19 = P.Color_lerp(t1.hoverColor, t2.hoverColor, t);
+ t19.toString;
+ t20 = P.Color_lerp(t1.highlightColor, t2.highlightColor, t);
+ t20.toString;
+ t21 = P.Color_lerp(t1.splashColor, t2.splashColor, t);
+ t21.toString;
+ t22 = t6 ? t1.splashFactory : t2.splashFactory;
+ t23 = P.Color_lerp(t1.selectedRowColor, t2.selectedRowColor, t);
+ t23.toString;
+ t24 = P.Color_lerp(t1.unselectedWidgetColor, t2.unselectedWidgetColor, t);
+ t24.toString;
+ t25 = P.Color_lerp(t1.disabledColor, t2.disabledColor, t);
+ t25.toString;
+ t26 = t6 ? t1.buttonTheme : t2.buttonTheme;
+ t27 = S.ToggleButtonsThemeData_lerp(t1.toggleButtonsTheme, t2.toggleButtonsTheme, t);
+ t27.toString;
+ t28 = P.Color_lerp(t1.buttonColor, t2.buttonColor, t);
+ t28.toString;
+ t29 = P.Color_lerp(t1.secondaryHeaderColor, t2.secondaryHeaderColor, t);
+ t29.toString;
+ t30 = P.Color_lerp(t1.textSelectionColor, t2.textSelectionColor, t);
+ t30.toString;
+ t31 = P.Color_lerp(t1.cursorColor, t2.cursorColor, t);
+ t31.toString;
+ t32 = P.Color_lerp(t1.textSelectionHandleColor, t2.textSelectionHandleColor, t);
+ t32.toString;
+ t33 = P.Color_lerp(t1.backgroundColor, t2.backgroundColor, t);
+ t33.toString;
+ t34 = P.Color_lerp(t1.dialogBackgroundColor, t2.dialogBackgroundColor, t);
+ t34.toString;
+ t35 = P.Color_lerp(t1.indicatorColor, t2.indicatorColor, t);
+ t35.toString;
+ t36 = P.Color_lerp(t1.hintColor, t2.hintColor, t);
+ t36.toString;
+ t37 = P.Color_lerp(t1.errorColor, t2.errorColor, t);
+ t37.toString;
+ t38 = P.Color_lerp(t1.toggleableActiveColor, t2.toggleableActiveColor, t);
+ t38.toString;
+ t39 = R.TextTheme_lerp(t1.textTheme, t2.textTheme, t);
+ t40 = R.TextTheme_lerp(t1.primaryTextTheme, t2.primaryTextTheme, t);
+ t41 = R.TextTheme_lerp(t1.accentTextTheme, t2.accentTextTheme, t);
+ t42 = t6 ? t1.inputDecorationTheme : t2.inputDecorationTheme;
+ t43 = T.IconThemeData_lerp(t1.iconTheme, t2.iconTheme, t);
+ t44 = T.IconThemeData_lerp(t1.primaryIconTheme, t2.primaryIconTheme, t);
+ t45 = T.IconThemeData_lerp(t1.accentIconTheme, t2.accentIconTheme, t);
+ t46 = t1.sliderTheme;
+ t47 = t2.sliderTheme;
+ t48 = P.lerpDouble(t46.trackHeight, t47.trackHeight, t);
+ t49 = P.Color_lerp(t46.activeTrackColor, t47.activeTrackColor, t);
+ t50 = P.Color_lerp(t46.inactiveTrackColor, t47.inactiveTrackColor, t);
+ t51 = P.Color_lerp(t46.disabledActiveTrackColor, t47.disabledActiveTrackColor, t);
+ t52 = P.Color_lerp(t46.disabledInactiveTrackColor, t47.disabledInactiveTrackColor, t);
+ t53 = P.Color_lerp(t46.activeTickMarkColor, t47.activeTickMarkColor, t);
+ t54 = P.Color_lerp(t46.inactiveTickMarkColor, t47.inactiveTickMarkColor, t);
+ t55 = P.Color_lerp(t46.disabledActiveTickMarkColor, t47.disabledActiveTickMarkColor, t);
+ t56 = P.Color_lerp(t46.disabledInactiveTickMarkColor, t47.disabledInactiveTickMarkColor, t);
+ t57 = P.Color_lerp(t46.thumbColor, t47.thumbColor, t);
+ t58 = P.Color_lerp(t46.overlappingShapeStrokeColor, t47.overlappingShapeStrokeColor, t);
+ t59 = P.Color_lerp(t46.disabledThumbColor, t47.disabledThumbColor, t);
+ t60 = P.Color_lerp(t46.overlayColor, t47.overlayColor, t);
+ t61 = P.Color_lerp(t46.valueIndicatorColor, t47.valueIndicatorColor, t);
+ t62 = t6 ? t46.overlayShape : t47.overlayShape;
+ t63 = t6 ? t46.tickMarkShape : t47.tickMarkShape;
+ t64 = t6 ? t46.thumbShape : t47.thumbShape;
+ t65 = t6 ? t46.trackShape : t47.trackShape;
+ t66 = t6 ? t46.valueIndicatorShape : t47.valueIndicatorShape;
+ t67 = t6 ? t46.rangeTickMarkShape : t47.rangeTickMarkShape;
+ t68 = t6 ? t46.rangeThumbShape : t47.rangeThumbShape;
+ t69 = t6 ? t46.rangeTrackShape : t47.rangeTrackShape;
+ t70 = t6 ? t46.rangeValueIndicatorShape : t47.rangeValueIndicatorShape;
+ t71 = t6 ? t46.showValueIndicator : t47.showValueIndicator;
+ t72 = A.TextStyle_lerp(t46.valueIndicatorTextStyle, t47.valueIndicatorTextStyle, t);
+ t73 = P.lerpDouble(t46.minThumbSeparation, t47.minThumbSeparation, t);
+ t46 = t6 ? t46.thumbSelector : t47.thumbSelector;
+ t47 = t1.tabBarTheme;
+ t74 = t2.tabBarTheme;
+ t75 = Z.Decoration_lerp(t47.indicator, t74.indicator, t);
+ t76 = t6 ? t47.indicatorSize : t74.indicatorSize;
+ t77 = P.Color_lerp(t47.labelColor, t74.labelColor, t);
+ t78 = V.EdgeInsetsGeometry_lerp(t47.labelPadding, t74.labelPadding, t);
+ t79 = A.TextStyle_lerp(t47.labelStyle, t74.labelStyle, t);
+ t80 = P.Color_lerp(t47.unselectedLabelColor, t74.unselectedLabelColor, t);
+ t74 = A.TextStyle_lerp(t47.unselectedLabelStyle, t74.unselectedLabelStyle, t);
+ t47 = T.TooltipThemeData_lerp(t1.tooltipTheme, t2.tooltipTheme, t);
+ t47.toString;
+ t81 = t1.cardTheme;
+ t82 = t2.cardTheme;
+ if (t6)
+ t83 = t81.clipBehavior;
+ else
+ t83 = t82.clipBehavior;
+ t84 = P.Color_lerp(t81.color, t82.color, t);
+ t85 = P.Color_lerp(t81.shadowColor, t82.shadowColor, t);
+ t86 = P.lerpDouble(t81.elevation, t82.elevation, t);
+ t87 = V.EdgeInsetsGeometry_lerp(t81.margin, t82.margin, t);
+ t81 = Y.ShapeBorder_lerp(t81.shape, t82.shape, t);
+ t82 = K.ChipThemeData_lerp(t1.chipTheme, t2.chipTheme, t);
+ t82.toString;
+ t88 = t6 ? t1.platform : t2.platform;
+ t89 = t6 ? t1.materialTapTargetSize : t2.materialTapTargetSize;
+ t90 = t6 ? t1.pageTransitionsTheme : t2.pageTransitionsTheme;
+ t91 = t1.appBarTheme;
+ t92 = t2.appBarTheme;
+ if (t6)
+ t93 = t91.brightness;
+ else
+ t93 = t92.brightness;
+ t94 = P.Color_lerp(t91.color, t92.color, t);
+ t95 = P.lerpDouble(t91.elevation, t92.elevation, t);
+ t96 = P.Color_lerp(t91.shadowColor, t92.shadowColor, t);
+ t97 = T.IconThemeData_lerp(t91.iconTheme, t92.iconTheme, t);
+ t98 = T.IconThemeData_lerp(t91.actionsIconTheme, t92.actionsIconTheme, t);
+ t99 = R.TextTheme_lerp(t91.textTheme, t92.textTheme, t);
+ if (t6)
+ t100 = t91.centerTitle;
+ else
+ t100 = t92.centerTitle;
+ t91 = P.lerpDouble(t91.titleSpacing, t92.titleSpacing, t);
+ t92 = t1.bottomAppBarTheme;
+ t101 = t2.bottomAppBarTheme;
+ t102 = P.Color_lerp(t92.color, t101.color, t);
+ t103 = P.lerpDouble(t92.elevation, t101.elevation, t);
+ if (t6)
+ t92 = t92.shape;
+ else
+ t92 = t101.shape;
+ t101 = t1.colorScheme;
+ t104 = t2.colorScheme;
+ t105 = P.Color_lerp(t101.primary, t104.primary, t);
+ t105.toString;
+ t106 = P.Color_lerp(t101.primaryVariant, t104.primaryVariant, t);
+ t106.toString;
+ t107 = P.Color_lerp(t101.secondary, t104.secondary, t);
+ t107.toString;
+ t108 = P.Color_lerp(t101.secondaryVariant, t104.secondaryVariant, t);
+ t108.toString;
+ t109 = P.Color_lerp(t101.surface, t104.surface, t);
+ t109.toString;
+ t110 = P.Color_lerp(t101.background, t104.background, t);
+ t110.toString;
+ t111 = P.Color_lerp(t101.error, t104.error, t);
+ t111.toString;
+ t112 = P.Color_lerp(t101.onPrimary, t104.onPrimary, t);
+ t112.toString;
+ t113 = P.Color_lerp(t101.onSecondary, t104.onSecondary, t);
+ t113.toString;
+ t114 = P.Color_lerp(t101.onSurface, t104.onSurface, t);
+ t114.toString;
+ t115 = P.Color_lerp(t101.onBackground, t104.onBackground, t);
+ t115.toString;
+ t116 = P.Color_lerp(t101.onError, t104.onError, t);
+ t116.toString;
+ t101 = t6 ? t101.brightness : t104.brightness;
+ t104 = t1.dialogTheme;
+ t117 = t2.dialogTheme;
+ t118 = P.Color_lerp(t104.backgroundColor, t117.backgroundColor, t);
+ t119 = P.lerpDouble(t104.elevation, t117.elevation, t);
+ t120 = Y.ShapeBorder_lerp(t104.shape, t117.shape, t);
+ t121 = A.TextStyle_lerp(t104.titleTextStyle, t117.titleTextStyle, t);
+ t104 = A.TextStyle_lerp(t104.contentTextStyle, t117.contentTextStyle, t);
+ t117 = S.FloatingActionButtonThemeData_lerp(t1.floatingActionButtonTheme, t2.floatingActionButtonTheme, t);
+ t117.toString;
+ t122 = E.NavigationRailThemeData_lerp(t1.navigationRailTheme, t2.navigationRailTheme, t);
+ t122.toString;
+ t123 = t1.typography;
+ t124 = t2.typography;
+ t125 = R.TextTheme_lerp(t123.black, t124.black, t);
+ t126 = R.TextTheme_lerp(t123.white, t124.white, t);
+ t127 = R.TextTheme_lerp(t123.englishLike, t124.englishLike, t);
+ t128 = R.TextTheme_lerp(t123.dense, t124.dense, t);
+ t124 = R.TextTheme_lerp(t123.tall, t124.tall, t);
+ t123 = t6 ? t1.cupertinoOverrideTheme : t2.cupertinoOverrideTheme;
+ t129 = t1.snackBarTheme;
+ t130 = t2.snackBarTheme;
+ t131 = P.Color_lerp(t129.backgroundColor, t130.backgroundColor, t);
+ t132 = P.Color_lerp(t129.actionTextColor, t130.actionTextColor, t);
+ t133 = P.Color_lerp(t129.disabledActionTextColor, t130.disabledActionTextColor, t);
+ t134 = A.TextStyle_lerp(t129.contentTextStyle, t130.contentTextStyle, t);
+ t135 = P.lerpDouble(t129.elevation, t130.elevation, t);
+ t136 = Y.ShapeBorder_lerp(t129.shape, t130.shape, t);
+ if (t6)
+ t129 = t129.behavior;
+ else
+ t129 = t130.behavior;
+ t130 = X.BottomSheetThemeData_lerp(t1.bottomSheetTheme, t2.bottomSheetTheme, t);
+ t130.toString;
+ t137 = R.PopupMenuThemeData_lerp(t1.popupMenuTheme, t2.popupMenuTheme, t);
+ t137.toString;
+ t138 = t1.bannerTheme;
+ t139 = t2.bannerTheme;
+ t140 = P.Color_lerp(t138.backgroundColor, t139.backgroundColor, t);
+ t141 = A.TextStyle_lerp(t138.contentTextStyle, t139.contentTextStyle, t);
+ t142 = V.EdgeInsetsGeometry_lerp(t138.padding, t139.padding, t);
+ t138 = V.EdgeInsetsGeometry_lerp(t138.leadingPadding, t139.leadingPadding, t);
+ t139 = t1.dividerTheme;
+ t143 = t2.dividerTheme;
+ t144 = P.Color_lerp(t139.color, t143.color, t);
+ t145 = P.lerpDouble(t139.space, t143.space, t);
+ t146 = P.lerpDouble(t139.thickness, t143.thickness, t);
+ t147 = P.lerpDouble(t139.indent, t143.indent, t);
+ t139 = P.lerpDouble(t139.endIndent, t143.endIndent, t);
+ t143 = M.ButtonBarThemeData_lerp(t1.buttonBarTheme, t2.buttonBarTheme, t);
+ t143.toString;
+ t148 = t1.bottomNavigationBarTheme;
+ t149 = t2.bottomNavigationBarTheme;
+ t150 = P.Color_lerp(t148.backgroundColor, t149.backgroundColor, t);
+ t151 = P.lerpDouble(t148.elevation, t149.elevation, t);
+ t152 = T.IconThemeData_lerp(t148.selectedIconTheme, t149.selectedIconTheme, t);
+ t153 = T.IconThemeData_lerp(t148.unselectedIconTheme, t149.unselectedIconTheme, t);
+ t154 = P.Color_lerp(t148.selectedItemColor, t149.selectedItemColor, t);
+ t155 = P.Color_lerp(t148.unselectedItemColor, t149.unselectedItemColor, t);
+ t156 = A.TextStyle_lerp(t148.selectedLabelStyle, t149.selectedLabelStyle, t);
+ t157 = A.TextStyle_lerp(t148.unselectedLabelStyle, t149.unselectedLabelStyle, t);
+ if (t6)
+ t158 = t148.showSelectedLabels;
+ else
+ t158 = t149.showSelectedLabels;
+ if (t6)
+ t159 = t148.showUnselectedLabels;
+ else
+ t159 = t149.showUnselectedLabels;
+ if (t6)
+ t148 = t148.type;
+ else
+ t148 = t149.type;
+ t149 = t1.timePickerTheme;
+ t160 = t2.timePickerTheme;
+ lerpedBorderSide = t149.dayPeriodBorderSide;
+ t161 = lerpedBorderSide == null;
+ if (t161)
+ t162 = t160.dayPeriodBorderSide == null;
+ else
+ t162 = false;
+ if (t162)
+ lerpedBorderSide = null;
+ else if (t161)
+ lerpedBorderSide = t160.dayPeriodBorderSide;
+ else {
+ t161 = t160.dayPeriodBorderSide;
+ if (!(t161 == null))
+ lerpedBorderSide = Y.BorderSide_lerp(lerpedBorderSide, t161, t);
+ }
+ t161 = P.Color_lerp(t149.backgroundColor, t160.backgroundColor, t);
+ t162 = P.Color_lerp(t149.hourMinuteTextColor, t160.hourMinuteTextColor, t);
+ t163 = P.Color_lerp(t149.hourMinuteColor, t160.hourMinuteColor, t);
+ t164 = P.Color_lerp(t149.dayPeriodTextColor, t160.dayPeriodTextColor, t);
+ t165 = P.Color_lerp(t149.dayPeriodColor, t160.dayPeriodColor, t);
+ t166 = P.Color_lerp(t149.dialHandColor, t160.dialHandColor, t);
+ t167 = P.Color_lerp(t149.dialBackgroundColor, t160.dialBackgroundColor, t);
+ t168 = P.Color_lerp(t149.dialTextColor, t160.dialTextColor, t);
+ t169 = P.Color_lerp(t149.entryModeIconColor, t160.entryModeIconColor, t);
+ t170 = A.TextStyle_lerp(t149.hourMinuteTextStyle, t160.hourMinuteTextStyle, t);
+ t171 = A.TextStyle_lerp(t149.dayPeriodTextStyle, t160.dayPeriodTextStyle, t);
+ t172 = A.TextStyle_lerp(t149.helpTextStyle, t160.helpTextStyle, t);
+ t173 = Y.ShapeBorder_lerp(t149.shape, t160.shape, t);
+ t174 = Y.ShapeBorder_lerp(t149.hourMinuteShape, t160.hourMinuteShape, t);
+ t175 = type$.nullable_OutlinedBorder._as(Y.ShapeBorder_lerp(t149.dayPeriodShape, t160.dayPeriodShape, t));
+ if (t6)
+ t6 = t149.inputDecorationTheme;
+ else
+ t6 = t160.inputDecorationTheme;
+ t149 = T.TextButtonThemeData_lerp(t1.textButtonTheme, t2.textButtonTheme, t);
+ t149.toString;
+ t160 = T.ElevatedButtonThemeData_lerp(t1.elevatedButtonTheme, t2.elevatedButtonTheme, t);
+ t160.toString;
+ t176 = U.OutlinedButtonThemeData_lerp(t1.outlinedButtonTheme, t2.outlinedButtonTheme, t);
+ t176.toString;
+ t177 = R.TextSelectionThemeData_lerp(t1.textSelectionTheme, t2.textSelectionTheme, t);
+ t177.toString;
+ t1 = t1.dataTableTheme;
+ t2 = t2.dataTableTheme;
+ t178 = Z.Decoration_lerp(t1.decoration, t2.decoration, t);
+ t179 = type$.nullable_Color;
+ t180 = Z.DataTableThemeData__lerpProperties(t1.dataRowColor, t2.dataRowColor, t, P.ui_Color_lerp$closure(), t179);
+ t181 = P.lerpDouble(t1.dataRowHeight, t2.dataRowHeight, t);
+ t182 = A.TextStyle_lerp(t1.dataTextStyle, t2.dataTextStyle, t);
+ t179 = Z.DataTableThemeData__lerpProperties(t1.headingRowColor, t2.headingRowColor, t, P.ui_Color_lerp$closure(), t179);
+ t183 = P.lerpDouble(t1.headingRowHeight, t2.headingRowHeight, t);
+ t184 = A.TextStyle_lerp(t1.headingTextStyle, t2.headingTextStyle, t);
+ t185 = P.lerpDouble(t1.horizontalMargin, t2.horizontalMargin, t);
+ t186 = P.lerpDouble(t1.columnSpacing, t2.columnSpacing, t);
+ t2 = P.lerpDouble(t1.dividerThickness, t2.dividerThickness, t);
+ return X.ThemeData$raw(t12, t13, t45, t41, new V.AppBarTheme(t93, t94, t95, t96, t97, t98, t99, t100, t91), false, t33, new Q.MaterialBannerThemeData(t140, t141, t142, t138), t15, new D.BottomAppBarTheme(t102, t103, t92), new M.BottomNavigationBarThemeData(t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t148), t130, t143, t28, t26, t10, t16, new A.CardTheme(t83, t84, t85, t86, t87, t81), t82, new A.ColorScheme(t105, t106, t107, t108, t109, t110, t111, t112, t113, t114, t115, t116, t101), t123, t31, new Z.DataTableThemeData(t178, t180, t181, t182, t179, t183, t184, t185, t186, t2), t34, new Y.DialogTheme(t118, t119, t120, t121, t104), t25, t17, new G.DividerThemeData(t144, t145, t146, t147, t139), t160, t37, false, t117, t18, t20, t36, t19, t43, t35, t42, t89, t122, t176, t90, t88, t137, t3, t7, t9, t8, t44, t40, t14, t29, t23, t11, new Q.SliderThemeData(t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t46), new K.SnackBarThemeData(t131, t132, t133, t134, t135, t136, t129), t21, t22, new U.TabBarTheme(t75, t76, t77, t78, t79, t80, t74), t149, t30, t32, t177, t39, new A.TimePickerThemeData(t161, t162, t163, t164, t165, t166, t167, t168, t169, t170, t171, t172, t173, t174, t175, lerpedBorderSide, t6), t27, t38, t47, new U.Typography(t125, t126, t127, t128, t124), t24, true, new X.VisualDensity(t5, t4));
+ }
+ };
+ K.AnimatedTheme.prototype = {
+ createState$0: function() {
+ return new K._AnimatedThemeState(null, C._StateLifecycle_0);
+ }
+ };
+ K._AnimatedThemeState.prototype = {
+ forEachTween$1: function(visitor) {
+ var t1 = visitor.call$3(this._theme$_data, this._widget.data, new K._AnimatedThemeState_forEachTween_closure());
+ t1.toString;
+ this._theme$_data = type$.ThemeDataTween._as(t1);
+ },
+ build$1: function(_, context) {
+ var t3,
+ t1 = this._widget.child,
+ t2 = this._theme$_data;
+ t2.toString;
+ t3 = this._animation;
+ return new K.Theme(t2.transform$1(0, t3.get$value(t3)), t1, null);
+ }
+ };
+ K._AnimatedThemeState_forEachTween_closure.prototype = {
+ call$1: function(value) {
+ return new K.ThemeDataTween(type$.ThemeData._as(value), null);
+ },
+ $signature: 182
+ };
+ X.MaterialTapTargetSize.prototype = {
+ toString$0: function(_) {
+ return this._theme_data$_name;
+ }
+ };
+ X.ThemeData.prototype = {
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof X.ThemeData)
+ if (other.visualDensity.$eq(0, _this.visualDensity))
+ if (J.$eq$(other.primaryColor, _this.primaryColor))
+ if (other.primaryColorBrightness === _this.primaryColorBrightness)
+ if (J.$eq$(other.primaryColorLight, _this.primaryColorLight))
+ if (J.$eq$(other.primaryColorDark, _this.primaryColorDark))
+ if (J.$eq$(other.accentColor, _this.accentColor))
+ if (other.accentColorBrightness === _this.accentColorBrightness)
+ if (J.$eq$(other.canvasColor, _this.canvasColor))
+ if (J.$eq$(other.scaffoldBackgroundColor, _this.scaffoldBackgroundColor))
+ if (J.$eq$(other.bottomAppBarColor, _this.bottomAppBarColor))
+ if (J.$eq$(other.cardColor, _this.cardColor))
+ if (J.$eq$(other.shadowColor, _this.shadowColor))
+ if (J.$eq$(other.dividerColor, _this.dividerColor))
+ if (J.$eq$(other.highlightColor, _this.highlightColor))
+ if (J.$eq$(other.splashColor, _this.splashColor))
+ if (other.splashFactory === _this.splashFactory)
+ if (J.$eq$(other.selectedRowColor, _this.selectedRowColor))
+ if (J.$eq$(other.unselectedWidgetColor, _this.unselectedWidgetColor))
+ if (J.$eq$(other.disabledColor, _this.disabledColor))
+ if (other.buttonTheme.$eq(0, _this.buttonTheme))
+ if (J.$eq$(other.buttonColor, _this.buttonColor))
+ if (J.$eq$(other.toggleButtonsTheme, _this.toggleButtonsTheme))
+ if (J.$eq$(other.secondaryHeaderColor, _this.secondaryHeaderColor))
+ if (J.$eq$(other.textSelectionColor, _this.textSelectionColor))
+ if (J.$eq$(other.cursorColor, _this.cursorColor))
+ if (J.$eq$(other.textSelectionHandleColor, _this.textSelectionHandleColor))
+ if (J.$eq$(other.backgroundColor, _this.backgroundColor))
+ if (J.$eq$(other.dialogBackgroundColor, _this.dialogBackgroundColor))
+ if (J.$eq$(other.indicatorColor, _this.indicatorColor))
+ if (J.$eq$(other.hintColor, _this.hintColor))
+ if (J.$eq$(other.errorColor, _this.errorColor))
+ if (J.$eq$(other.toggleableActiveColor, _this.toggleableActiveColor))
+ if (other.textTheme.$eq(0, _this.textTheme))
+ if (other.primaryTextTheme.$eq(0, _this.primaryTextTheme))
+ if (other.accentTextTheme.$eq(0, _this.accentTextTheme))
+ if (other.inputDecorationTheme.$eq(0, _this.inputDecorationTheme))
+ if (other.iconTheme.$eq(0, _this.iconTheme))
+ if (other.primaryIconTheme.$eq(0, _this.primaryIconTheme))
+ if (other.accentIconTheme.$eq(0, _this.accentIconTheme))
+ if (other.sliderTheme.$eq(0, _this.sliderTheme))
+ if (other.tabBarTheme.$eq(0, _this.tabBarTheme))
+ if (J.$eq$(other.tooltipTheme, _this.tooltipTheme))
+ if (other.cardTheme.$eq(0, _this.cardTheme))
+ if (J.$eq$(other.chipTheme, _this.chipTheme))
+ if (other.platform == _this.platform)
+ if (other.materialTapTargetSize === _this.materialTapTargetSize)
+ if (other.pageTransitionsTheme.$eq(0, _this.pageTransitionsTheme))
+ if (other.appBarTheme.$eq(0, _this.appBarTheme))
+ if (other.bottomAppBarTheme.$eq(0, _this.bottomAppBarTheme))
+ if (other.colorScheme.$eq(0, _this.colorScheme))
+ if (other.dialogTheme.$eq(0, _this.dialogTheme))
+ if (J.$eq$(other.floatingActionButtonTheme, _this.floatingActionButtonTheme))
+ if (J.$eq$(other.navigationRailTheme, _this.navigationRailTheme))
+ if (other.typography.$eq(0, _this.typography))
+ if (other.snackBarTheme.$eq(0, _this.snackBarTheme))
+ if (J.$eq$(other.bottomSheetTheme, _this.bottomSheetTheme))
+ if (J.$eq$(other.popupMenuTheme, _this.popupMenuTheme))
+ if (other.bannerTheme.$eq(0, _this.bannerTheme))
+ if (other.dividerTheme.$eq(0, _this.dividerTheme))
+ if (J.$eq$(other.buttonBarTheme, _this.buttonBarTheme))
+ if (other.bottomNavigationBarTheme.$eq(0, _this.bottomNavigationBarTheme))
+ if (other.timePickerTheme.$eq(0, _this.timePickerTheme))
+ if (J.$eq$(other.textButtonTheme, _this.textButtonTheme))
+ if (J.$eq$(other.elevatedButtonTheme, _this.elevatedButtonTheme))
+ if (J.$eq$(other.outlinedButtonTheme, _this.outlinedButtonTheme))
+ if (J.$eq$(other.textSelectionTheme, _this.textSelectionTheme))
+ if (other.dataTableTheme.$eq(0, _this.dataTableTheme))
+ t1 = true;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashList([_this.visualDensity, _this.primaryColor, _this.primaryColorBrightness, _this.primaryColorLight, _this.primaryColorDark, _this.accentColor, _this.accentColorBrightness, _this.canvasColor, _this.shadowColor, _this.scaffoldBackgroundColor, _this.bottomAppBarColor, _this.cardColor, _this.dividerColor, _this.focusColor, _this.hoverColor, _this.highlightColor, _this.splashColor, _this.splashFactory, _this.selectedRowColor, _this.unselectedWidgetColor, _this.disabledColor, _this.buttonTheme, _this.buttonColor, _this.toggleButtonsTheme, _this.toggleableActiveColor, _this.secondaryHeaderColor, _this.textSelectionColor, _this.cursorColor, _this.textSelectionHandleColor, _this.backgroundColor, _this.dialogBackgroundColor, _this.indicatorColor, _this.hintColor, _this.errorColor, _this.textTheme, _this.primaryTextTheme, _this.accentTextTheme, _this.inputDecorationTheme, _this.iconTheme, _this.primaryIconTheme, _this.accentIconTheme, _this.sliderTheme, _this.tabBarTheme, _this.tooltipTheme, _this.cardTheme, _this.chipTheme, _this.platform, _this.materialTapTargetSize, false, _this.pageTransitionsTheme, _this.appBarTheme, _this.bottomAppBarTheme, _this.colorScheme, _this.dialogTheme, _this.floatingActionButtonTheme, _this.navigationRailTheme, _this.typography, _this.cupertinoOverrideTheme, _this.snackBarTheme, _this.bottomSheetTheme, _this.popupMenuTheme, _this.bannerTheme, _this.dividerTheme, _this.buttonBarTheme, _this.bottomNavigationBarTheme, _this.timePickerTheme, _this.textButtonTheme, _this.elevatedButtonTheme, _this.outlinedButtonTheme, _this.textSelectionTheme, _this.dataTableTheme, false, true]);
+ }
+ };
+ X.ThemeData_localize_closure.prototype = {
+ call$0: function() {
+ var t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70,
+ t1 = this.baseTheme,
+ t2 = this.localTextGeometry,
+ t3 = t2.merge$1(t1.primaryTextTheme),
+ t4 = t2.merge$1(t1.accentTextTheme);
+ t2 = t2.merge$1(t1.textTheme);
+ t5 = t1.visualDensity;
+ t6 = t1.primaryColor;
+ t7 = t1.primaryColorBrightness;
+ t8 = t1.primaryColorLight;
+ t9 = t1.primaryColorDark;
+ t10 = t1.accentColor;
+ t11 = t1.accentColorBrightness;
+ t12 = t1.canvasColor;
+ t13 = t1.shadowColor;
+ t14 = t1.scaffoldBackgroundColor;
+ t15 = t1.bottomAppBarColor;
+ t16 = t1.cardColor;
+ t17 = t1.dividerColor;
+ t18 = t1.focusColor;
+ t19 = t1.hoverColor;
+ t20 = t1.highlightColor;
+ t21 = t1.splashColor;
+ t22 = t1.splashFactory;
+ t23 = t1.selectedRowColor;
+ t24 = t1.unselectedWidgetColor;
+ t25 = t1.disabledColor;
+ t26 = t1.buttonColor;
+ t27 = t1.buttonTheme;
+ t28 = t1.toggleButtonsTheme;
+ t29 = t1.secondaryHeaderColor;
+ t30 = t1.textSelectionColor;
+ t31 = t1.cursorColor;
+ t32 = t1.textSelectionHandleColor;
+ t33 = t1.backgroundColor;
+ t34 = t1.dialogBackgroundColor;
+ t35 = t1.indicatorColor;
+ t36 = t1.hintColor;
+ t37 = t1.errorColor;
+ t38 = t1.toggleableActiveColor;
+ t39 = t1.inputDecorationTheme;
+ t40 = t1.iconTheme;
+ t41 = t1.primaryIconTheme;
+ t42 = t1.accentIconTheme;
+ t43 = t1.sliderTheme;
+ t44 = t1.tabBarTheme;
+ t45 = t1.tooltipTheme;
+ t46 = t1.cardTheme;
+ t47 = t1.chipTheme;
+ t48 = t1.platform;
+ t49 = t1.materialTapTargetSize;
+ t50 = t1.pageTransitionsTheme;
+ t51 = t1.appBarTheme;
+ t52 = t1.bottomAppBarTheme;
+ t53 = t1.colorScheme;
+ t54 = t1.dialogTheme;
+ t55 = t1.floatingActionButtonTheme;
+ t56 = t1.navigationRailTheme;
+ t57 = t1.typography;
+ t58 = t1.cupertinoOverrideTheme;
+ t59 = t1.snackBarTheme;
+ t60 = t1.bottomSheetTheme;
+ t61 = t1.popupMenuTheme;
+ t62 = t1.bannerTheme;
+ t63 = t1.dividerTheme;
+ t64 = t1.buttonBarTheme;
+ t65 = t1.bottomNavigationBarTheme;
+ t66 = t1.timePickerTheme;
+ t67 = t1.textButtonTheme;
+ t68 = t1.elevatedButtonTheme;
+ t69 = t1.outlinedButtonTheme;
+ t70 = t1.textSelectionTheme;
+ t1 = t1.dataTableTheme;
+ return X.ThemeData$raw(t10, t11, t42, t4, t51, false, t33, t62, t15, t52, t65, t60, t64, t26, t27, t12, t16, t46, t47, new A.ColorScheme(t53.primary, t53.primaryVariant, t53.secondary, t53.secondaryVariant, t53.surface, t53.background, t53.error, t53.onPrimary, t53.onSecondary, t53.onSurface, t53.onBackground, t53.onError, t53.brightness), t58, t31, t1, t34, t54, t25, t17, t63, t68, t37, false, t55, t18, t20, t36, t19, t40, t35, t39, t49, t56, t69, t50, t48, t61, t6, t7, t9, t8, t41, t3, t14, t29, t23, t13, t43, t59, t21, t22, t44, t67, t30, t32, t70, t2, t66, t28, t38, t45, t57, t24, true, t5);
+ },
+ $signature: 183
+ };
+ X.MaterialBasedCupertinoThemeData.prototype = {
+ get$brightness: function() {
+ var t1 = this._cupertinoOverrideTheme.brightness;
+ return t1 == null ? this._materialTheme.colorScheme.brightness : t1;
+ },
+ get$primaryColor: function() {
+ var t1 = this._cupertinoOverrideTheme.primaryColor;
+ return t1 == null ? this._materialTheme.colorScheme.primary : t1;
+ },
+ get$primaryContrastingColor: function() {
+ var t1 = this._cupertinoOverrideTheme.primaryContrastingColor;
+ return t1 == null ? this._materialTheme.colorScheme.onPrimary : t1;
+ },
+ get$scaffoldBackgroundColor: function() {
+ var t1 = this._cupertinoOverrideTheme.scaffoldBackgroundColor;
+ return t1 == null ? this._materialTheme.scaffoldBackgroundColor : t1;
+ },
+ resolveFrom$1: function(context) {
+ return X.MaterialBasedCupertinoThemeData$_(this._materialTheme, this._cupertinoOverrideTheme.resolveFrom$1(context));
+ }
+ };
+ X._IdentityThemeDataCacheKey.prototype = {
+ get$hashCode: function(_) {
+ return (H.objectHashCode(this.baseTheme) ^ H.objectHashCode(this.localTextGeometry)) >>> 0;
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof X._IdentityThemeDataCacheKey && other.baseTheme == this.baseTheme && other.localTextGeometry === this.localTextGeometry;
+ }
+ };
+ X._FifoCache.prototype = {
+ putIfAbsent$2: function(_, key, loader) {
+ var t2,
+ t1 = this._cache,
+ result = t1.$index(0, key);
+ if (result != null)
+ return result;
+ if (t1.get$length(t1) === this._maximumSize) {
+ t2 = t1.get$keys(t1);
+ t1.remove$1(0, t2.get$first(t2));
+ }
+ t2 = loader.call$0();
+ t1.$indexSet(0, key, t2);
+ return t2;
+ }
+ };
+ X.VisualDensity.prototype = {
+ effectiveConstraints$1: function(constraints) {
+ var t1 = this.horizontal,
+ t2 = this.vertical,
+ t3 = C.JSNumber_methods.clamp$2(constraints.minWidth + new P.Offset(t1, t2).$mul(0, 4)._dx, 0, 1 / 0);
+ return constraints.copyWith$2$minHeight$minWidth(C.JSNumber_methods.clamp$2(constraints.minHeight + new P.Offset(t1, t2).$mul(0, 4)._dy, 0, 1 / 0), t3);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof X.VisualDensity && other.horizontal == this.horizontal && other.vertical == this.vertical;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.horizontal, this.vertical, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toStringShort$0: function() {
+ return this.super$Diagnosticable$toStringShort() + "(h: " + E.debugFormatDouble(this.horizontal) + ", v: " + E.debugFormatDouble(this.vertical) + ")";
+ }
+ };
+ X._ThemeData_Object_Diagnosticable.prototype = {};
+ X._VisualDensity_Object_Diagnosticable.prototype = {};
+ A.TimePickerThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.backgroundColor, _this.hourMinuteTextColor, _this.hourMinuteColor, _this.dayPeriodTextColor, _this.dayPeriodColor, _this.dialHandColor, _this.dialBackgroundColor, _this.dialTextColor, _this.entryModeIconColor, _this.hourMinuteTextStyle, _this.dayPeriodTextStyle, _this.helpTextStyle, _this.shape, _this.hourMinuteShape, _this.dayPeriodShape, _this.dayPeriodBorderSide, _this.inputDecorationTheme, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof A.TimePickerThemeData && J.$eq$(other.backgroundColor, _this.backgroundColor) && J.$eq$(other.hourMinuteTextColor, _this.hourMinuteTextColor) && J.$eq$(other.hourMinuteColor, _this.hourMinuteColor) && J.$eq$(other.dayPeriodTextColor, _this.dayPeriodTextColor) && J.$eq$(other.dayPeriodColor, _this.dayPeriodColor) && J.$eq$(other.dialHandColor, _this.dialHandColor) && J.$eq$(other.dialBackgroundColor, _this.dialBackgroundColor) && J.$eq$(other.dialTextColor, _this.dialTextColor) && J.$eq$(other.entryModeIconColor, _this.entryModeIconColor) && J.$eq$(other.hourMinuteTextStyle, _this.hourMinuteTextStyle) && J.$eq$(other.dayPeriodTextStyle, _this.dayPeriodTextStyle) && J.$eq$(other.helpTextStyle, _this.helpTextStyle) && J.$eq$(other.shape, _this.shape) && J.$eq$(other.hourMinuteShape, _this.hourMinuteShape) && J.$eq$(other.dayPeriodShape, _this.dayPeriodShape) && J.$eq$(other.dayPeriodBorderSide, _this.dayPeriodBorderSide) && true;
+ }
+ };
+ A._TimePickerThemeData_Object_Diagnosticable.prototype = {};
+ S.ToggleButtonsThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.textStyle, _this.constraints, _this.color, _this.selectedColor, _this.disabledColor, _this.fillColor, _this.focusColor, _this.highlightColor, _this.hoverColor, _this.splashColor, _this.borderColor, _this.selectedBorderColor, _this.disabledBorderColor, _this.borderRadius, _this.borderWidth, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof S.ToggleButtonsThemeData && J.$eq$(other.textStyle, _this.textStyle) && J.$eq$(other.constraints, _this.constraints) && J.$eq$(other.color, _this.color) && J.$eq$(other.selectedColor, _this.selectedColor) && J.$eq$(other.disabledColor, _this.disabledColor) && J.$eq$(other.fillColor, _this.fillColor) && J.$eq$(other.focusColor, _this.focusColor) && J.$eq$(other.highlightColor, _this.highlightColor) && J.$eq$(other.hoverColor, _this.hoverColor) && J.$eq$(other.splashColor, _this.splashColor) && J.$eq$(other.borderColor, _this.borderColor) && J.$eq$(other.selectedBorderColor, _this.selectedBorderColor) && J.$eq$(other.disabledBorderColor, _this.disabledBorderColor) && J.$eq$(other.borderRadius, _this.borderRadius) && other.borderWidth == _this.borderWidth;
+ }
+ };
+ S._ToggleButtonsThemeData_Object_Diagnosticable.prototype = {};
+ S.Tooltip.prototype = {
+ createState$0: function() {
+ return new S._TooltipState(null, C._StateLifecycle_0);
+ }
+ };
+ S._TooltipState.prototype = {
+ set$height: function(_, t1) {
+ this.___TooltipState_height_isSet = true;
+ this.___TooltipState_height = t1;
+ },
+ get$_tooltip$_controller: function() {
+ return this.___TooltipState__controller_isSet ? this.___TooltipState__controller : H.throwExpression(H.LateError$fieldNI("_controller"));
+ },
+ get$_mouseIsConnected: function() {
+ return this.___TooltipState__mouseIsConnected_isSet ? this.___TooltipState__mouseIsConnected : H.throwExpression(H.LateError$fieldNI("_mouseIsConnected"));
+ },
+ initState$0: function() {
+ var t1, _this = this;
+ _this.super$State$initState();
+ t1 = $.RendererBinding__instance.RendererBinding__mouseTracker._mouseStates;
+ t1 = t1.get$isNotEmpty(t1);
+ _this.___TooltipState__mouseIsConnected_isSet = true;
+ _this.___TooltipState__mouseIsConnected = t1;
+ t1 = G.AnimationController$(null, C.Duration_150000, 0, C.Duration_75000, 1, null, _this);
+ t1.addStatusListener$1(_this.get$_tooltip$_handleStatusChanged());
+ _this.___TooltipState__controller_isSet = true;
+ _this.___TooltipState__controller = t1;
+ t1 = $.RendererBinding__instance.RendererBinding__mouseTracker.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(_this.get$_handleMouseTrackerChange()), false);
+ $.GestureBinding__instance.GestureBinding_pointerRouter._globalRoutes.$indexSet(0, _this.get$_tooltip$_handlePointerEvent(), null);
+ },
+ _getDefaultTooltipHeight$0: function() {
+ var t1 = this._framework$_element;
+ t1.toString;
+ switch (K.Theme_of(t1).platform) {
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ return 24;
+ default:
+ return 32;
+ }
+ },
+ _getDefaultPadding$0: function() {
+ var t1 = this._framework$_element;
+ t1.toString;
+ switch (K.Theme_of(t1).platform) {
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ return C.EdgeInsets_8_0_8_0;
+ default:
+ return C.EdgeInsets_16_0_16_0;
+ }
+ },
+ _getDefaultFontSize$0: function() {
+ var t1 = this._framework$_element;
+ t1.toString;
+ switch (K.Theme_of(t1).platform) {
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ return 10;
+ default:
+ return 14;
+ }
+ },
+ _handleMouseTrackerChange$0: function() {
+ var t1, mouseIsConnected, _this = this;
+ if (_this._framework$_element == null)
+ return;
+ t1 = $.RendererBinding__instance.RendererBinding__mouseTracker._mouseStates;
+ mouseIsConnected = t1.get$isNotEmpty(t1);
+ if (mouseIsConnected !== _this.get$_mouseIsConnected())
+ _this.setState$1(new S._TooltipState__handleMouseTrackerChange_closure(_this, mouseIsConnected));
+ },
+ _tooltip$_handleStatusChanged$1: function($status) {
+ if ($status === C.AnimationStatus_0)
+ this._hideTooltip$1$immediately(true);
+ },
+ _hideTooltip$1$immediately: function(immediately) {
+ var t2, _this = this,
+ t1 = _this._showTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._showTimer = null;
+ if (immediately) {
+ _this._removeEntry$0();
+ return;
+ }
+ if (_this._longPressActivated) {
+ if (_this._hideTimer == null) {
+ t1 = _this.___TooltipState_showDuration_isSet ? _this.___TooltipState_showDuration : H.throwExpression(H.LateError$fieldNI("showDuration"));
+ t2 = _this.get$_tooltip$_controller();
+ _this._hideTimer = P.Timer_Timer(t1, t2.get$reverse(t2));
+ }
+ } else
+ _this.get$_tooltip$_controller().reverse$0(0);
+ _this._longPressActivated = false;
+ },
+ _hideTooltip$0: function() {
+ return this._hideTooltip$1$immediately(false);
+ },
+ _showTooltip$0: function() {
+ var _this = this,
+ t1 = _this._hideTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._hideTimer = null;
+ if (_this._showTimer == null) {
+ t1 = _this.___TooltipState_waitDuration_isSet ? _this.___TooltipState_waitDuration : H.throwExpression(H.LateError$fieldNI("waitDuration"));
+ _this._showTimer = P.Timer_Timer(t1, _this.get$ensureTooltipVisible());
+ }
+ },
+ ensureTooltipVisible$0: function() {
+ var _this = this,
+ t1 = _this._showTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._showTimer = null;
+ if (_this._tooltip$_entry != null) {
+ t1 = _this._hideTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._hideTimer = null;
+ _this.get$_tooltip$_controller().forward$0(0);
+ return false;
+ }
+ _this._createNewEntry$0();
+ _this.get$_tooltip$_controller().forward$0(0);
+ return true;
+ },
+ _createNewEntry$0: function() {
+ var result, t2, target, t3, t4, t5, t6, t7, t8, t9, _this = this,
+ t1 = _this._framework$_element;
+ t1.toString;
+ _this._widget.toString;
+ result = t1.findAncestorStateOfType$1$0(type$.OverlayState);
+ result.toString;
+ t1 = _this._framework$_element.get$renderObject();
+ t1.toString;
+ type$.RenderBox._as(t1);
+ t2 = t1._size.center$1(C.Offset_0_0);
+ target = T.MatrixUtils_transformPoint(t1.getTransformTo$1(0, result._framework$_element.get$renderObject()), t2);
+ t2 = _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t2.toString;
+ t1 = _this._widget.message;
+ t3 = _this.___TooltipState_height_isSet ? _this.___TooltipState_height : H.throwExpression(H.LateError$fieldNI("height"));
+ t4 = _this.___TooltipState_padding_isSet ? _this.___TooltipState_padding : H.throwExpression(H.LateError$fieldNI("padding"));
+ t5 = _this.___TooltipState_margin_isSet ? _this.___TooltipState_margin : H.throwExpression(H.LateError$fieldNI("margin"));
+ t6 = _this.___TooltipState_decoration_isSet ? _this.___TooltipState_decoration : H.throwExpression(H.LateError$fieldNI("decoration"));
+ t7 = _this.___TooltipState_textStyle_isSet ? _this.___TooltipState_textStyle : H.throwExpression(H.LateError$fieldNI("textStyle"));
+ t8 = S.CurvedAnimation$(C.Cubic_ifx, _this.get$_tooltip$_controller(), null);
+ t9 = _this.___TooltipState_verticalOffset_isSet ? _this.___TooltipState_verticalOffset : H.throwExpression(H.LateError$fieldNI("verticalOffset"));
+ t1 = X.OverlayEntry$(new S._TooltipState__createNewEntry_closure(T.Directionality$(new S._TooltipOverlay(t1, t3, t4, t5, t6, t7, t8, target, t9, _this.___TooltipState_preferBelow_isSet ? _this.___TooltipState_preferBelow : H.throwExpression(H.LateError$fieldNI("preferBelow")), null), t2.textDirection)), false);
+ _this._tooltip$_entry = t1;
+ result.insert$1(0, t1);
+ S.SemanticsService_tooltip(_this._widget.message);
+ },
+ _removeEntry$0: function() {
+ var _this = this,
+ t1 = _this._hideTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._hideTimer = null;
+ t1 = _this._showTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._showTimer = null;
+ t1 = _this._tooltip$_entry;
+ if (t1 != null)
+ t1.remove$0(0);
+ _this._tooltip$_entry = null;
+ },
+ _tooltip$_handlePointerEvent$1: function($event) {
+ if (this._tooltip$_entry == null)
+ return;
+ if (type$.PointerUpEvent._is($event) || type$.PointerCancelEvent._is($event))
+ this._hideTooltip$0();
+ else if (type$.PointerDownEvent._is($event))
+ this._hideTooltip$1$immediately(true);
+ },
+ deactivate$0: function() {
+ var t1, _this = this;
+ if (_this._tooltip$_entry != null)
+ _this._hideTooltip$1$immediately(true);
+ t1 = _this._showTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this.super$State$deactivate();
+ },
+ dispose$0: function(_) {
+ var _this = this;
+ $.GestureBinding__instance.GestureBinding_pointerRouter._globalRoutes.remove$1(0, _this.get$_tooltip$_handlePointerEvent());
+ $.RendererBinding__instance.RendererBinding__mouseTracker.removeListener$1(0, _this.get$_handleMouseTrackerChange());
+ if (_this._tooltip$_entry != null)
+ _this._removeEntry$0();
+ _this.get$_tooltip$_controller().dispose$0(0);
+ _this.super$__TooltipState_State_SingleTickerProviderStateMixin$dispose(0);
+ },
+ _handleLongPress$0: function() {
+ this._longPressActivated = true;
+ if (this.ensureTooltipVisible$0()) {
+ var t1 = this._framework$_element;
+ t1.toString;
+ M.Feedback_forLongPress(t1);
+ }
+ },
+ build$1: function(_, context) {
+ var t1, tooltipTheme, t2, defaultTextStyle, defaultDecoration, result, _this = this, _null = null,
+ theme = K.Theme_of(context);
+ context.dependOnInheritedWidgetOfExactType$1$0(type$.TooltipTheme);
+ t1 = K.Theme_of(context);
+ tooltipTheme = t1.tooltipTheme;
+ t1 = theme.colorScheme;
+ t2 = theme.textTheme.bodyText2;
+ if (t1.brightness === C.Brightness_0) {
+ t2.toString;
+ defaultTextStyle = t2.copyWith$2$color$fontSize(C.Color_4278190080, _this._getDefaultFontSize$0());
+ defaultDecoration = new S.BoxDecoration(P.Color$fromARGB(C.JSDouble_methods.round$0(229.5), 255, 255, 255), _null, _null, C.BorderRadius_tLn0, _null, _null, C.BoxShape_0);
+ } else {
+ t2.toString;
+ defaultTextStyle = t2.copyWith$2$color$fontSize(C.Color_4294967295, _this._getDefaultFontSize$0());
+ t1 = C.Map_HFpTk.$index(0, 700);
+ t1.toString;
+ t1 = t1.value;
+ defaultDecoration = new S.BoxDecoration(P.Color$fromARGB(C.JSDouble_methods.round$0(229.5), t1 >>> 16 & 255, t1 >>> 8 & 255, t1 & 255), _null, _null, C.BorderRadius_tLn0, _null, _null, C.BoxShape_0);
+ }
+ _this._widget.toString;
+ t1 = tooltipTheme.height;
+ if (t1 == null)
+ t1 = _this._getDefaultTooltipHeight$0();
+ _this.___TooltipState_height_isSet = true;
+ _this.___TooltipState_height = t1;
+ _this._widget.toString;
+ t1 = tooltipTheme.padding;
+ if (t1 == null)
+ t1 = _this._getDefaultPadding$0();
+ _this.___TooltipState_padding_isSet = true;
+ _this.___TooltipState_padding = t1;
+ _this._widget.toString;
+ t1 = tooltipTheme.margin;
+ if (t1 == null)
+ t1 = C.EdgeInsets_0_0_0_0;
+ _this.___TooltipState_margin_isSet = true;
+ _this.___TooltipState_margin = t1;
+ t1 = tooltipTheme.verticalOffset;
+ if (t1 == null)
+ t1 = 24;
+ _this.___TooltipState_verticalOffset_isSet = true;
+ _this.___TooltipState_verticalOffset = t1;
+ tooltipTheme.toString;
+ _this.___TooltipState_preferBelow = _this.___TooltipState_preferBelow_isSet = true;
+ tooltipTheme.toString;
+ _this.___TooltipState_excludeFromSemantics_isSet = true;
+ _this.___TooltipState_excludeFromSemantics = false;
+ t1 = tooltipTheme.decoration;
+ if (t1 == null)
+ t1 = defaultDecoration;
+ _this.___TooltipState_decoration_isSet = true;
+ _this.___TooltipState_decoration = t1;
+ t1 = tooltipTheme.textStyle;
+ if (t1 == null)
+ t1 = defaultTextStyle;
+ _this.___TooltipState_textStyle_isSet = true;
+ _this.___TooltipState_textStyle = t1;
+ tooltipTheme.toString;
+ _this.___TooltipState_waitDuration_isSet = true;
+ _this.___TooltipState_waitDuration = C.Duration_0;
+ tooltipTheme.toString;
+ _this.___TooltipState_showDuration_isSet = true;
+ _this.___TooltipState_showDuration = C.Duration_1500000;
+ t1 = _this._widget;
+ t1 = t1.message;
+ result = D.GestureDetector$(C.HitTestBehavior_1, T.Semantics$(_null, _this._widget.child, false, _null, _null, false, _null, _null, _null, t1, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null), C.DragStartBehavior_1, true, _null, _null, _null, _null, _null, _null, _this.get$_handleLongPress(), _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ return _this.get$_mouseIsConnected() ? T.MouseRegion$(result, C.C__DeferringMouseCursor, new S._TooltipState_build_closure(_this), new S._TooltipState_build_closure0(_this), true) : result;
+ }
+ };
+ S._TooltipState__handleMouseTrackerChange_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1.___TooltipState__mouseIsConnected_isSet = true;
+ t1.___TooltipState__mouseIsConnected = this.mouseIsConnected;
+ },
+ $signature: 0
+ };
+ S._TooltipState__createNewEntry_closure.prototype = {
+ call$1: function(context) {
+ return this.overlay;
+ },
+ $signature: 21
+ };
+ S._TooltipState_build_closure.prototype = {
+ call$1: function($event) {
+ return this.$this._showTooltip$0();
+ },
+ $signature: 77
+ };
+ S._TooltipState_build_closure0.prototype = {
+ call$1: function($event) {
+ return this.$this._hideTooltip$0();
+ },
+ $signature: 50
+ };
+ S._TooltipPositionDelegate.prototype = {
+ getConstraintsForChild$1: function(constraints) {
+ return constraints.loosen$0();
+ },
+ getPositionForChild$2: function(size, childSize) {
+ return N.positionDependentBox(childSize, this.preferBelow, size, this.target, this.verticalOffset);
+ },
+ shouldRelayout$1: function(oldDelegate) {
+ return !this.target.$eq(0, oldDelegate.target) || this.verticalOffset != oldDelegate.verticalOffset || this.preferBelow != oldDelegate.preferBelow;
+ }
+ };
+ S._TooltipOverlay.prototype = {
+ build$1: function(_, context) {
+ var _this = this, _null = null,
+ t1 = K.Theme_of(context).textTheme.bodyText2;
+ t1.toString;
+ return new T.Positioned(0, 0, 0, 0, _null, _null, new T.IgnorePointer(true, _null, new T.CustomSingleChildLayout(new S._TooltipPositionDelegate(_this.target, _this.verticalOffset, _this.preferBelow), K.FadeTransition$(false, new T.ConstrainedBox(new S.BoxConstraints(0, 1 / 0, _this.height, 1 / 0), L.DefaultTextStyle$(M.Container$(_null, T.Center$(L.Text$(_this.message, _null, _null, _null, _this.textStyle, _null), 1, 1), _null, _null, _this.decoration, _null, _this.margin, _this.padding, _null), _null, _null, C.TextOverflow_0, true, t1, _null, _null, C.TextWidthBasis_0), _null), _this.animation), _null), _null), _null);
+ }
+ };
+ S.__TooltipState_State_SingleTickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var t2,
+ t1 = this.SingleTickerProviderStateMixin__ticker;
+ if (t1 != null) {
+ t2 = this._framework$_element;
+ t2.toString;
+ t1.set$muted(0, !U.TickerMode_of(t2));
+ }
+ this.super$State$didChangeDependencies();
+ }
+ };
+ T.TooltipThemeData.prototype = {
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.height, _this.padding, _this.margin, _this.verticalOffset, _this.preferBelow, _this.excludeFromSemantics, _this.decoration, _this.textStyle, null, null, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof T.TooltipThemeData)
+ if (other.height == _this.height)
+ if (J.$eq$(other.padding, _this.padding))
+ if (J.$eq$(other.margin, _this.margin))
+ if (other.verticalOffset == _this.verticalOffset)
+ if (J.$eq$(other.decoration, _this.decoration))
+ if (J.$eq$(other.textStyle, _this.textStyle))
+ t1 = true;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ T._TooltipThemeData_Object_Diagnosticable.prototype = {};
+ U.ScriptCategory.prototype = {
+ toString$0: function(_) {
+ return this._typography$_name;
+ }
+ };
+ U.Typography.prototype = {
+ geometryThemeFor$1: function(category) {
+ switch (category) {
+ case C.ScriptCategory_0:
+ return this.englishLike;
+ case C.ScriptCategory_1:
+ return this.dense;
+ case C.ScriptCategory_2:
+ return this.tall;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof U.Typography && J.$eq$(other.black, _this.black) && J.$eq$(other.white, _this.white) && other.englishLike.$eq(0, _this.englishLike) && other.dense.$eq(0, _this.dense) && other.tall.$eq(0, _this.tall);
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.black, _this.white, _this.englishLike, _this.dense, _this.tall, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ U._Typography_Object_Diagnosticable.prototype = {};
+ K.AlignmentGeometry.prototype = {
+ toString$0: function(_) {
+ var _this = this;
+ if (_this.get$_alignment$_start(_this) === 0)
+ return K.Alignment__stringify(_this.get$_x(), _this.get$_y());
+ if (_this.get$_x() === 0)
+ return K.AlignmentDirectional__stringify(_this.get$_alignment$_start(_this), _this.get$_y());
+ return K.Alignment__stringify(_this.get$_x(), _this.get$_y()) + " + " + K.AlignmentDirectional__stringify(_this.get$_alignment$_start(_this), 0);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ return other instanceof K.AlignmentGeometry && other.get$_x() == _this.get$_x() && other.get$_alignment$_start(other) == _this.get$_alignment$_start(_this) && other.get$_y() == _this.get$_y();
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.get$_x(), _this.get$_alignment$_start(_this), _this.get$_y(), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ K.Alignment.prototype = {
+ get$_x: function() {
+ return this.x;
+ },
+ get$_alignment$_start: function(_) {
+ return 0;
+ },
+ get$_y: function() {
+ return this.y;
+ },
+ $sub: function(_, other) {
+ return new K.Alignment(this.x - other.x, this.y - other.y);
+ },
+ $add: function(_, other) {
+ return new K.Alignment(this.x + other.x, this.y + other.y);
+ },
+ $mul: function(_, other) {
+ return new K.Alignment(this.x * other, this.y * other);
+ },
+ alongOffset$1: function(other) {
+ var centerX = other._dx / 2,
+ centerY = other._dy / 2;
+ return new P.Offset(centerX + this.x * centerX, centerY + this.y * centerY);
+ },
+ alongSize$1: function(other) {
+ var centerX = other._dx / 2,
+ centerY = other._dy / 2;
+ return new P.Offset(centerX + this.x * centerX, centerY + this.y * centerY);
+ },
+ withinRect$1: function(rect) {
+ var t1 = rect.left,
+ halfWidth = (rect.right - t1) / 2,
+ t2 = rect.top,
+ halfHeight = (rect.bottom - t2) / 2;
+ return new P.Offset(t1 + halfWidth + this.x * halfWidth, t2 + halfHeight + this.y * halfHeight);
+ },
+ resolve$1: function(direction) {
+ return this;
+ },
+ toString$0: function(_) {
+ return K.Alignment__stringify(this.x, this.y);
+ }
+ };
+ K.AlignmentDirectional.prototype = {
+ get$_x: function() {
+ return 0;
+ },
+ get$_alignment$_start: function(_) {
+ return this.start;
+ },
+ get$_y: function() {
+ return this.y;
+ },
+ $sub: function(_, other) {
+ return new K.AlignmentDirectional(this.start - other.start, this.y - other.y);
+ },
+ $add: function(_, other) {
+ return new K.AlignmentDirectional(this.start + other.start, this.y + other.y);
+ },
+ $mul: function(_, other) {
+ return new K.AlignmentDirectional(this.start * other, this.y * other);
+ },
+ resolve$1: function(direction) {
+ var _this = this;
+ direction.toString;
+ switch (direction) {
+ case C.TextDirection_0:
+ return new K.Alignment(-_this.start, _this.y);
+ case C.TextDirection_1:
+ return new K.Alignment(_this.start, _this.y);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ toString$0: function(_) {
+ return K.AlignmentDirectional__stringify(this.start, this.y);
+ }
+ };
+ K._MixedAlignment.prototype = {
+ $mul: function(_, other) {
+ return new K._MixedAlignment(this._x * other, this._alignment$_start * other, this._y * other);
+ },
+ resolve$1: function(direction) {
+ var _this = this;
+ direction.toString;
+ switch (direction) {
+ case C.TextDirection_0:
+ return new K.Alignment(_this._x - _this._alignment$_start, _this._y);
+ case C.TextDirection_1:
+ return new K.Alignment(_this._x + _this._alignment$_start, _this._y);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$_x: function() {
+ return this._x;
+ },
+ get$_alignment$_start: function(receiver) {
+ return this._alignment$_start;
+ },
+ get$_y: function() {
+ return this._y;
+ }
+ };
+ K.TextAlignVertical.prototype = {
+ toString$0: function(_) {
+ return "TextAlignVertical(y: " + this.y + ")";
+ }
+ };
+ G.RenderComparison.prototype = {
+ toString$0: function(_) {
+ return this._basic_types$_name;
+ }
+ };
+ G.Axis.prototype = {
+ toString$0: function(_) {
+ return this._basic_types$_name;
+ }
+ };
+ G.VerticalDirection.prototype = {
+ toString$0: function(_) {
+ return this._basic_types$_name;
+ }
+ };
+ G.AxisDirection.prototype = {
+ toString$0: function(_) {
+ return this._basic_types$_name;
+ }
+ };
+ N.PaintingBinding.prototype = {};
+ N._SystemFontsNotifier.prototype = {
+ notifyListeners$0: function() {
+ for (var t1 = this._systemFontsCallbacks, t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.call$0();
+ },
+ addListener$1: function(_, listener) {
+ this._systemFontsCallbacks.add$1(0, listener);
+ },
+ removeListener$1: function(_, listener) {
+ this._systemFontsCallbacks.remove$1(0, listener);
+ }
+ };
+ K.BorderRadiusGeometry.prototype = {
+ subtract$1: function(other) {
+ var _this = this;
+ return new K._MixedBorderRadius(_this.get$_topLeft().$sub(0, other.get$_topLeft()), _this.get$_topRight().$sub(0, other.get$_topRight()), _this.get$_bottomLeft().$sub(0, other.get$_bottomLeft()), _this.get$_bottomRight().$sub(0, other.get$_bottomRight()), _this.get$_topStart().$sub(0, other.get$_topStart()), _this.get$_topEnd().$sub(0, other.get$_topEnd()), _this.get$_bottomStart().$sub(0, other.get$_bottomStart()), _this.get$_bottomEnd().$sub(0, other.get$_bottomEnd()));
+ },
+ add$1: function(_, other) {
+ var _this = this;
+ return new K._MixedBorderRadius(_this.get$_topLeft().$add(0, other.get$_topLeft()), _this.get$_topRight().$add(0, other.get$_topRight()), _this.get$_bottomLeft().$add(0, other.get$_bottomLeft()), _this.get$_bottomRight().$add(0, other.get$_bottomRight()), _this.get$_topStart().$add(0, other.get$_topStart()), _this.get$_topEnd().$add(0, other.get$_topEnd()), _this.get$_bottomStart().$add(0, other.get$_bottomStart()), _this.get$_bottomEnd().$add(0, other.get$_bottomEnd()));
+ },
+ toString$0: function(_) {
+ var visual, t1, comma, logical, _this = this,
+ _s18_ = "BorderRadius.only(",
+ _s29_ = "BorderRadiusDirectional.only(";
+ if (J.$eq$(_this.get$_topLeft(), _this.get$_topRight()) && J.$eq$(_this.get$_topRight(), _this.get$_bottomLeft()) && J.$eq$(_this.get$_bottomLeft(), _this.get$_bottomRight()))
+ if (!J.$eq$(_this.get$_topLeft(), C.Radius_0_0))
+ visual = _this.get$_topLeft().x === _this.get$_topLeft().y ? "BorderRadius.circular(" + C.JSNumber_methods.toStringAsFixed$1(_this.get$_topLeft().x, 1) + ")" : "BorderRadius.all(" + H.S(_this.get$_topLeft()) + ")";
+ else
+ visual = null;
+ else {
+ if (!J.$eq$(_this.get$_topLeft(), C.Radius_0_0)) {
+ t1 = _s18_ + ("topLeft: " + H.S(_this.get$_topLeft()));
+ comma = true;
+ } else {
+ t1 = _s18_;
+ comma = false;
+ }
+ if (!J.$eq$(_this.get$_topRight(), C.Radius_0_0)) {
+ if (comma)
+ t1 += ", ";
+ t1 += "topRight: " + H.S(_this.get$_topRight());
+ comma = true;
+ }
+ if (!J.$eq$(_this.get$_bottomLeft(), C.Radius_0_0)) {
+ if (comma)
+ t1 += ", ";
+ t1 += "bottomLeft: " + H.S(_this.get$_bottomLeft());
+ comma = true;
+ }
+ if (!J.$eq$(_this.get$_bottomRight(), C.Radius_0_0)) {
+ if (comma)
+ t1 += ", ";
+ t1 += "bottomRight: " + H.S(_this.get$_bottomRight());
+ }
+ t1 += ")";
+ visual = t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ if (_this.get$_topStart().$eq(0, _this.get$_topEnd()) && _this.get$_topEnd().$eq(0, _this.get$_bottomEnd()) && _this.get$_bottomEnd().$eq(0, _this.get$_bottomStart()))
+ if (!_this.get$_topStart().$eq(0, C.Radius_0_0))
+ logical = _this.get$_topStart().x === _this.get$_topStart().y ? "BorderRadiusDirectional.circular(" + C.JSNumber_methods.toStringAsFixed$1(_this.get$_topStart().x, 1) + ")" : "BorderRadiusDirectional.all(" + _this.get$_topStart().toString$0(0) + ")";
+ else
+ logical = null;
+ else {
+ if (!_this.get$_topStart().$eq(0, C.Radius_0_0)) {
+ t1 = _s29_ + ("topStart: " + _this.get$_topStart().toString$0(0));
+ comma = true;
+ } else {
+ t1 = _s29_;
+ comma = false;
+ }
+ if (!_this.get$_topEnd().$eq(0, C.Radius_0_0)) {
+ if (comma)
+ t1 += ", ";
+ t1 += "topEnd: " + _this.get$_topEnd().toString$0(0);
+ comma = true;
+ }
+ if (!_this.get$_bottomStart().$eq(0, C.Radius_0_0)) {
+ if (comma)
+ t1 += ", ";
+ t1 += "bottomStart: " + _this.get$_bottomStart().toString$0(0);
+ comma = true;
+ }
+ if (!_this.get$_bottomEnd().$eq(0, C.Radius_0_0)) {
+ if (comma)
+ t1 += ", ";
+ t1 += "bottomEnd: " + _this.get$_bottomEnd().toString$0(0);
+ }
+ t1 += ")";
+ logical = t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ t1 = visual != null;
+ if (t1 && logical != null)
+ return H.S(visual) + " + " + logical;
+ if (t1)
+ return visual;
+ if (logical != null)
+ return logical;
+ return "BorderRadius.zero";
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof K.BorderRadiusGeometry && J.$eq$(other.get$_topLeft(), _this.get$_topLeft()) && J.$eq$(other.get$_topRight(), _this.get$_topRight()) && J.$eq$(other.get$_bottomLeft(), _this.get$_bottomLeft()) && J.$eq$(other.get$_bottomRight(), _this.get$_bottomRight()) && other.get$_topStart().$eq(0, _this.get$_topStart()) && other.get$_topEnd().$eq(0, _this.get$_topEnd()) && other.get$_bottomStart().$eq(0, _this.get$_bottomStart()) && other.get$_bottomEnd().$eq(0, _this.get$_bottomEnd());
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.get$_topLeft(), _this.get$_topRight(), _this.get$_bottomLeft(), _this.get$_bottomRight(), _this.get$_topStart(), _this.get$_topEnd(), _this.get$_bottomStart(), _this.get$_bottomEnd(), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ K.BorderRadius.prototype = {
+ get$_topLeft: function() {
+ return this.topLeft;
+ },
+ get$_topRight: function() {
+ return this.topRight;
+ },
+ get$_bottomLeft: function() {
+ return this.bottomLeft;
+ },
+ get$_bottomRight: function() {
+ return this.bottomRight;
+ },
+ get$_topStart: function() {
+ return C.Radius_0_0;
+ },
+ get$_topEnd: function() {
+ return C.Radius_0_0;
+ },
+ get$_bottomStart: function() {
+ return C.Radius_0_0;
+ },
+ get$_bottomEnd: function() {
+ return C.Radius_0_0;
+ },
+ toRRect$1: function(rect) {
+ var _this = this;
+ return P.RRect$fromRectAndCorners(rect, _this.bottomLeft, _this.bottomRight, _this.topLeft, _this.topRight);
+ },
+ subtract$1: function(other) {
+ if (other instanceof K.BorderRadius)
+ return this.$sub(0, other);
+ return this.super$BorderRadiusGeometry$subtract(other);
+ },
+ add$1: function(_, other) {
+ if (other instanceof K.BorderRadius)
+ return this.$add(0, other);
+ return this.super$BorderRadiusGeometry$add(0, other);
+ },
+ $sub: function(_, other) {
+ var _this = this;
+ return new K.BorderRadius(_this.topLeft.$sub(0, other.topLeft), _this.topRight.$sub(0, other.topRight), _this.bottomLeft.$sub(0, other.bottomLeft), _this.bottomRight.$sub(0, other.bottomRight));
+ },
+ $add: function(_, other) {
+ var _this = this;
+ return new K.BorderRadius(_this.topLeft.$add(0, other.topLeft), _this.topRight.$add(0, other.topRight), _this.bottomLeft.$add(0, other.bottomLeft), _this.bottomRight.$add(0, other.bottomRight));
+ },
+ $mul: function(_, other) {
+ var _this = this;
+ return new K.BorderRadius(_this.topLeft.$mul(0, other), _this.topRight.$mul(0, other), _this.bottomLeft.$mul(0, other), _this.bottomRight.$mul(0, other));
+ },
+ resolve$1: function(direction) {
+ return this;
+ }
+ };
+ K._MixedBorderRadius.prototype = {
+ $mul: function(_, other) {
+ var _this = this;
+ return new K._MixedBorderRadius(_this._topLeft.$mul(0, other), _this._topRight.$mul(0, other), _this._bottomLeft.$mul(0, other), _this._bottomRight.$mul(0, other), _this._topStart.$mul(0, other), _this._topEnd.$mul(0, other), _this._bottomStart.$mul(0, other), _this._bottomEnd.$mul(0, other));
+ },
+ resolve$1: function(direction) {
+ var _this = this;
+ direction.toString;
+ switch (direction) {
+ case C.TextDirection_0:
+ return new K.BorderRadius(_this._topLeft.$add(0, _this._topEnd), _this._topRight.$add(0, _this._topStart), _this._bottomLeft.$add(0, _this._bottomEnd), _this._bottomRight.$add(0, _this._bottomStart));
+ case C.TextDirection_1:
+ return new K.BorderRadius(_this._topLeft.$add(0, _this._topStart), _this._topRight.$add(0, _this._topEnd), _this._bottomLeft.$add(0, _this._bottomStart), _this._bottomRight.$add(0, _this._bottomEnd));
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$_topLeft: function() {
+ return this._topLeft;
+ },
+ get$_topRight: function() {
+ return this._topRight;
+ },
+ get$_bottomLeft: function() {
+ return this._bottomLeft;
+ },
+ get$_bottomRight: function() {
+ return this._bottomRight;
+ },
+ get$_topStart: function() {
+ return this._topStart;
+ },
+ get$_topEnd: function() {
+ return this._topEnd;
+ },
+ get$_bottomStart: function() {
+ return this._bottomStart;
+ },
+ get$_bottomEnd: function() {
+ return this._bottomEnd;
+ }
+ };
+ Y.BorderStyle.prototype = {
+ toString$0: function(_) {
+ return this._borders$_name;
+ }
+ };
+ Y.BorderSide.prototype = {
+ scale$1: function(_, t) {
+ var t1 = Math.max(0, this.width * t),
+ t2 = t <= 0 ? C.BorderStyle_0 : this.style;
+ return new Y.BorderSide(this.color, t1, t2);
+ },
+ toPaint$0: function() {
+ switch (this.style) {
+ case C.BorderStyle_1:
+ var t1 = new H.SurfacePaint(new H.SurfacePaintData());
+ t1.set$color(0, this.color);
+ t1.set$strokeWidth(this.width);
+ t1.set$style(0, C.PaintingStyle_1);
+ return t1;
+ case C.BorderStyle_0:
+ t1 = new H.SurfacePaint(new H.SurfacePaintData());
+ t1.set$color(0, C.Color_0);
+ t1.set$strokeWidth(0);
+ t1.set$style(0, C.PaintingStyle_1);
+ return t1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof Y.BorderSide && J.$eq$(other.color, _this.color) && other.width === _this.width && other.style === _this.style;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.color, this.width, this.style, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "BorderSide(" + H.S(this.color) + ", " + C.JSNumber_methods.toStringAsFixed$1(this.width, 1) + ", " + this.style.toString$0(0) + ")";
+ }
+ };
+ Y.ShapeBorder.prototype = {
+ add$2$reversed: function(_, other, reversed) {
+ return null;
+ },
+ add$1: function($receiver, other) {
+ return this.add$2$reversed($receiver, other, false);
+ },
+ $add: function(_, other) {
+ var t1 = this.add$1(0, other);
+ if (t1 == null)
+ t1 = other.add$2$reversed(0, this, true);
+ return t1 == null ? new Y._CompoundBorder(H.setRuntimeTypeInfo([other, this], type$.JSArray_ShapeBorder)) : t1;
+ },
+ lerpFrom$2: function(a, t) {
+ if (a == null)
+ return this.scale$1(0, t);
+ return null;
+ },
+ lerpTo$2: function(b, t) {
+ if (b == null)
+ return this.scale$1(0, 1 - t);
+ return null;
+ },
+ toString$0: function(_) {
+ return "ShapeBorder()";
+ }
+ };
+ Y.OutlinedBorder.prototype = {};
+ Y._CompoundBorder.prototype = {
+ get$dimensions: function() {
+ return C.JSArray_methods.fold$2(this.borders, C.EdgeInsets_0_0_0_0, new Y._CompoundBorder_dimensions_closure());
+ },
+ add$2$reversed: function(_, other, reversed) {
+ var t2, ours, merged, t3, _i, t4,
+ t1 = other instanceof Y._CompoundBorder;
+ if (!t1) {
+ t2 = this.borders;
+ ours = reversed ? C.JSArray_methods.get$last(t2) : C.JSArray_methods.get$first(t2);
+ merged = ours.add$2$reversed(0, other, reversed);
+ if (merged == null)
+ merged = other.add$2$reversed(0, ours, !reversed);
+ if (merged != null) {
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_ShapeBorder);
+ for (t3 = t2.length, _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i)
+ t1.push(t2[_i]);
+ t1[reversed ? t1.length - 1 : 0] = merged;
+ return new Y._CompoundBorder(t1);
+ }
+ }
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_ShapeBorder);
+ if (reversed) {
+ for (t3 = this.borders, t4 = t3.length, _i = 0; _i < t3.length; t3.length === t4 || (0, H.throwConcurrentModificationError)(t3), ++_i)
+ t2.push(t3[_i]);
+ reversed = true;
+ }
+ if (t1)
+ for (t1 = other.borders, t3 = t1.length, _i = 0; _i < t1.length; t1.length === t3 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t2.push(t1[_i]);
+ else
+ t2.push(other);
+ if (!reversed)
+ for (t1 = this.borders, t3 = t1.length, _i = 0; _i < t1.length; t1.length === t3 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t2.push(t1[_i]);
+ return new Y._CompoundBorder(t2);
+ },
+ add$1: function($receiver, other) {
+ return this.add$2$reversed($receiver, other, false);
+ },
+ scale$1: function(_, t) {
+ var t1 = this.borders,
+ t2 = H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,ShapeBorder>");
+ return new Y._CompoundBorder(P.List_List$of(new H.MappedListIterable(t1, new Y._CompoundBorder_scale_closure(t), t2), true, t2._eval$1("ListIterable.E")));
+ },
+ lerpFrom$2: function(a, t) {
+ return Y._CompoundBorder_lerp(a, this, t);
+ },
+ lerpTo$2: function(b, t) {
+ return Y._CompoundBorder_lerp(this, b, t);
+ },
+ getOuterPath$2$textDirection: function(rect, textDirection) {
+ return C.JSArray_methods.get$first(this.borders).getOuterPath$2$textDirection(rect, textDirection);
+ },
+ paint$3$textDirection: function(canvas, rect, textDirection) {
+ var t1, t2, _i, border, t3;
+ for (t1 = this.borders, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ border = t1[_i];
+ border.paint$3$textDirection(canvas, rect, textDirection);
+ t3 = border.get$dimensions().resolve$1(textDirection);
+ rect = new P.Rect(rect.left + t3.left, rect.top + t3.top, rect.right - t3.right, rect.bottom - t3.bottom);
+ }
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof Y._CompoundBorder && S.listEquals(other.borders, this.borders);
+ },
+ get$hashCode: function(_) {
+ return P.hashList(this.borders);
+ },
+ toString$0: function(_) {
+ var t1 = this.borders,
+ t2 = H._arrayInstanceType(t1)._eval$1("ReversedListIterable<1>");
+ return new H.MappedListIterable(new H.ReversedListIterable(t1, t2), new Y._CompoundBorder_toString_closure(), t2._eval$1("MappedListIterable")).join$1(0, " + ");
+ }
+ };
+ Y._CompoundBorder_dimensions_closure.prototype = {
+ call$2: function(previousValue, border) {
+ return previousValue.add$1(0, border.get$dimensions());
+ },
+ $signature: 185
+ };
+ Y._CompoundBorder_scale_closure.prototype = {
+ call$1: function(border) {
+ return border.scale$1(0, this.t);
+ },
+ $signature: 186
+ };
+ Y._CompoundBorder_toString_closure.prototype = {
+ call$1: function(border) {
+ return J.toString$0$(border);
+ },
+ $signature: 187
+ };
+ F.BoxShape.prototype = {
+ toString$0: function(_) {
+ return this._box_border$_name;
+ }
+ };
+ F.BoxBorder.prototype = {
+ add$2$reversed: function(_, other, reversed) {
+ return null;
+ },
+ add$1: function($receiver, other) {
+ return this.add$2$reversed($receiver, other, false);
+ },
+ getOuterPath$2$textDirection: function(rect, textDirection) {
+ var t1 = P.Path_Path();
+ t1.addRect$1(0, rect);
+ return t1;
+ }
+ };
+ F.Border.prototype = {
+ get$dimensions: function() {
+ var _this = this;
+ return new V.EdgeInsets(_this.left.width, _this.top.width, _this.right.width, _this.bottom.width);
+ },
+ get$_colorIsUniform: function() {
+ var _this = this,
+ topColor = _this.top.color;
+ return J.$eq$(_this.right.color, topColor) && J.$eq$(_this.bottom.color, topColor) && J.$eq$(_this.left.color, topColor);
+ },
+ get$_widthIsUniform: function() {
+ var _this = this,
+ topWidth = _this.top.width;
+ return _this.right.width === topWidth && _this.bottom.width === topWidth && _this.left.width === topWidth;
+ },
+ get$_styleIsUniform: function() {
+ var _this = this,
+ topStyle = _this.top.style;
+ return _this.right.style === topStyle && _this.bottom.style === topStyle && _this.left.style === topStyle;
+ },
+ add$2$reversed: function(_, other, reversed) {
+ var _this = this;
+ if (other instanceof F.Border && Y.BorderSide_canMerge(_this.top, other.top) && Y.BorderSide_canMerge(_this.right, other.right) && Y.BorderSide_canMerge(_this.bottom, other.bottom) && Y.BorderSide_canMerge(_this.left, other.left))
+ return new F.Border(Y.BorderSide_merge(_this.top, other.top), Y.BorderSide_merge(_this.right, other.right), Y.BorderSide_merge(_this.bottom, other.bottom), Y.BorderSide_merge(_this.left, other.left));
+ return null;
+ },
+ add$1: function($receiver, other) {
+ return this.add$2$reversed($receiver, other, false);
+ },
+ scale$1: function(_, t) {
+ var _this = this;
+ return new F.Border(_this.top.scale$1(0, t), _this.right.scale$1(0, t), _this.bottom.scale$1(0, t), _this.left.scale$1(0, t));
+ },
+ lerpFrom$2: function(a, t) {
+ if (a instanceof F.Border)
+ return F.Border_lerp(a, this, t);
+ return this.super$ShapeBorder$lerpFrom(a, t);
+ },
+ lerpTo$2: function(b, t) {
+ if (b instanceof F.Border)
+ return F.Border_lerp(this, b, t);
+ return this.super$ShapeBorder$lerpTo(b, t);
+ },
+ paint$5$borderRadius$shape$textDirection: function(canvas, rect, borderRadius, shape, textDirection) {
+ var t1, _this = this,
+ _s80_ = string$.x60null_c;
+ if (_this.get$_colorIsUniform() && _this.get$_widthIsUniform() && _this.get$_styleIsUniform()) {
+ t1 = _this.top;
+ switch (t1.style) {
+ case C.BorderStyle_0:
+ return;
+ case C.BorderStyle_1:
+ switch (shape) {
+ case C.BoxShape_1:
+ F.BoxBorder__paintUniformBorderWithCircle(canvas, rect, t1);
+ break;
+ case C.BoxShape_0:
+ if (borderRadius != null) {
+ F.BoxBorder__paintUniformBorderWithRadius(canvas, rect, t1, borderRadius);
+ return;
+ }
+ F.BoxBorder__paintUniformBorderWithRectangle(canvas, rect, t1);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ return;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ }
+ Y.paintBorder(canvas, rect, _this.bottom, _this.left, _this.right, _this.top);
+ },
+ paint$3$textDirection: function(canvas, rect, textDirection) {
+ return this.paint$5$borderRadius$shape$textDirection(canvas, rect, null, C.BoxShape_0, textDirection);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof F.Border && J.$eq$(other.top, _this.top) && J.$eq$(other.right, _this.right) && J.$eq$(other.bottom, _this.bottom) && J.$eq$(other.left, _this.left);
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.top, _this.right, _this.bottom, _this.left, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t1, t2, _this = this;
+ if (_this.get$_colorIsUniform() && _this.get$_widthIsUniform() && _this.get$_styleIsUniform())
+ return "Border.all(" + H.S(_this.top) + ")";
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ t2 = _this.top;
+ if (!J.$eq$(t2, C.BorderSide_m7u))
+ t1.push("top: " + H.S(t2));
+ t2 = _this.right;
+ if (!J.$eq$(t2, C.BorderSide_m7u))
+ t1.push("right: " + H.S(t2));
+ t2 = _this.bottom;
+ if (!J.$eq$(t2, C.BorderSide_m7u))
+ t1.push("bottom: " + H.S(t2));
+ t2 = _this.left;
+ if (!J.$eq$(t2, C.BorderSide_m7u))
+ t1.push("left: " + H.S(t2));
+ return "Border(" + C.JSArray_methods.join$1(t1, ", ") + ")";
+ }
+ };
+ F.BorderDirectional.prototype = {
+ get$dimensions: function() {
+ var _this = this;
+ return new V.EdgeInsetsDirectional(_this.start.width, _this.top.width, _this.end.width, _this.bottom.width);
+ },
+ get$isUniform: function() {
+ var topWidth, topStyle, _this = this,
+ t1 = _this.top,
+ topColor = t1.color,
+ t2 = _this.start;
+ if (!J.$eq$(t2.color, topColor) || !J.$eq$(_this.end.color, topColor) || !J.$eq$(_this.bottom.color, topColor))
+ return false;
+ topWidth = t1.width;
+ if (t2.width !== topWidth || _this.end.width !== topWidth || _this.bottom.width !== topWidth)
+ return false;
+ topStyle = t1.style;
+ if (t2.style !== topStyle || _this.end.style !== topStyle || _this.bottom.style !== topStyle)
+ return false;
+ return true;
+ },
+ add$2$reversed: function(_, other, reversed) {
+ var t1, t2, t3, _this = this, _null = null;
+ if (other instanceof F.BorderDirectional) {
+ t1 = _this.top;
+ t2 = other.top;
+ if (Y.BorderSide_canMerge(t1, t2) && Y.BorderSide_canMerge(_this.start, other.start) && Y.BorderSide_canMerge(_this.end, other.end) && Y.BorderSide_canMerge(_this.bottom, other.bottom))
+ return new F.BorderDirectional(Y.BorderSide_merge(t1, t2), Y.BorderSide_merge(_this.start, other.start), Y.BorderSide_merge(_this.end, other.end), Y.BorderSide_merge(_this.bottom, other.bottom));
+ return _null;
+ }
+ if (other instanceof F.Border) {
+ t1 = other.top;
+ t2 = _this.top;
+ if (!Y.BorderSide_canMerge(t1, t2) || !Y.BorderSide_canMerge(other.bottom, _this.bottom))
+ return _null;
+ t3 = _this.start;
+ if (!J.$eq$(t3, C.BorderSide_m7u) || !J.$eq$(_this.end, C.BorderSide_m7u)) {
+ if (!J.$eq$(other.left, C.BorderSide_m7u) || !J.$eq$(other.right, C.BorderSide_m7u))
+ return _null;
+ return new F.BorderDirectional(Y.BorderSide_merge(t1, t2), t3, _this.end, Y.BorderSide_merge(other.bottom, _this.bottom));
+ }
+ return new F.Border(Y.BorderSide_merge(t1, t2), other.right, Y.BorderSide_merge(other.bottom, _this.bottom), other.left);
+ }
+ return _null;
+ },
+ add$1: function($receiver, other) {
+ return this.add$2$reversed($receiver, other, false);
+ },
+ scale$1: function(_, t) {
+ var _this = this;
+ return new F.BorderDirectional(_this.top.scale$1(0, t), _this.start.scale$1(0, t), _this.end.scale$1(0, t), _this.bottom.scale$1(0, t));
+ },
+ lerpFrom$2: function(a, t) {
+ if (a instanceof F.BorderDirectional)
+ return F.BorderDirectional_lerp(a, this, t);
+ return this.super$ShapeBorder$lerpFrom(a, t);
+ },
+ lerpTo$2: function(b, t) {
+ if (b instanceof F.BorderDirectional)
+ return F.BorderDirectional_lerp(this, b, t);
+ return this.super$ShapeBorder$lerpTo(b, t);
+ },
+ paint$5$borderRadius$shape$textDirection: function(canvas, rect, borderRadius, shape, textDirection) {
+ var t1, left, right, _this = this,
+ _s80_ = string$.x60null_c;
+ if (_this.get$isUniform()) {
+ t1 = _this.top;
+ switch (t1.style) {
+ case C.BorderStyle_0:
+ return;
+ case C.BorderStyle_1:
+ switch (shape) {
+ case C.BoxShape_1:
+ F.BoxBorder__paintUniformBorderWithCircle(canvas, rect, t1);
+ break;
+ case C.BoxShape_0:
+ if (borderRadius != null) {
+ F.BoxBorder__paintUniformBorderWithRadius(canvas, rect, t1, borderRadius);
+ return;
+ }
+ F.BoxBorder__paintUniformBorderWithRectangle(canvas, rect, t1);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ return;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ }
+ textDirection.toString;
+ switch (textDirection) {
+ case C.TextDirection_0:
+ left = _this.end;
+ right = _this.start;
+ break;
+ case C.TextDirection_1:
+ left = _this.start;
+ right = _this.end;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ Y.paintBorder(canvas, rect, _this.bottom, left, right, _this.top);
+ },
+ paint$3$textDirection: function(canvas, rect, textDirection) {
+ return this.paint$5$borderRadius$shape$textDirection(canvas, rect, null, C.BoxShape_0, textDirection);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof F.BorderDirectional && J.$eq$(other.top, _this.top) && J.$eq$(other.start, _this.start) && J.$eq$(other.end, _this.end) && J.$eq$(other.bottom, _this.bottom);
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.top, _this.start, _this.end, _this.bottom, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_String),
+ t2 = _this.top;
+ if (!J.$eq$(t2, C.BorderSide_m7u))
+ t1.push("top: " + H.S(t2));
+ t2 = _this.start;
+ if (!J.$eq$(t2, C.BorderSide_m7u))
+ t1.push("start: " + H.S(t2));
+ t2 = _this.end;
+ if (!J.$eq$(t2, C.BorderSide_m7u))
+ t1.push("end: " + H.S(t2));
+ t2 = _this.bottom;
+ if (!J.$eq$(t2, C.BorderSide_m7u))
+ t1.push("bottom: " + H.S(t2));
+ return "BorderDirectional(" + C.JSArray_methods.join$1(t1, ", ") + ")";
+ }
+ };
+ S.BoxDecoration.prototype = {
+ get$padding: function(_) {
+ var t1 = this.border;
+ return t1 == null ? null : t1.get$dimensions();
+ },
+ scale$1: function(_, factor) {
+ var _this = this, _null = null,
+ t1 = P.Color_lerp(_null, _this.color, factor),
+ t2 = F.BoxBorder_lerp(_null, _this.border, factor),
+ t3 = K.BorderRadiusGeometry_lerp(_null, _this.borderRadius, factor),
+ t4 = O.BoxShadow_lerpList(_null, _this.boxShadow, factor);
+ return new S.BoxDecoration(t1, _this.image, t2, t3, t4, _null, _this.shape);
+ },
+ get$isComplex: function() {
+ return this.boxShadow != null;
+ },
+ lerpFrom$2: function(a, t) {
+ if (a == null)
+ return this.scale$1(0, t);
+ if (a instanceof S.BoxDecoration)
+ return S.BoxDecoration_lerp(a, this, t);
+ return this.super$Decoration$lerpFrom(a, t);
+ },
+ lerpTo$2: function(b, t) {
+ if (b == null)
+ return this.scale$1(0, 1 - t);
+ if (b instanceof S.BoxDecoration)
+ return S.BoxDecoration_lerp(this, b, t);
+ return this.super$Decoration$lerpTo(b, t);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof S.BoxDecoration)
+ if (J.$eq$(other.color, _this.color))
+ if (J.$eq$(other.border, _this.border))
+ if (J.$eq$(other.borderRadius, _this.borderRadius))
+ if (S.listEquals(other.boxShadow, _this.boxShadow))
+ t1 = other.shape === _this.shape;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.color, _this.image, _this.border, _this.borderRadius, P.hashList(_this.boxShadow), _this.gradient, _this.shape, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ hitTest$3$textDirection: function(size, position, textDirection) {
+ var t1, distance, t2;
+ switch (this.shape) {
+ case C.BoxShape_0:
+ t1 = this.borderRadius;
+ if (t1 != null)
+ return t1.resolve$1(textDirection).toRRect$1(new P.Rect(0, 0, 0 + size._dx, 0 + size._dy)).contains$1(0, position);
+ return true;
+ case C.BoxShape_1:
+ distance = position.$sub(0, size.center$1(C.Offset_0_0)).get$distance();
+ t1 = size._dx;
+ t2 = size._dy;
+ return distance <= Math.min(H.checkNum(t1), H.checkNum(t2)) / 2;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ createBoxPainter$1: function(onChanged) {
+ return new S._BoxDecorationPainter(this, onChanged);
+ }
+ };
+ S._BoxDecorationPainter.prototype = {
+ _paintBox$4: function(canvas, rect, paint, textDirection) {
+ var t1 = this._box_decoration$_decoration;
+ switch (t1.shape) {
+ case C.BoxShape_1:
+ canvas.drawCircle$3(0, rect.get$center(), rect.get$shortestSide() / 2, paint);
+ break;
+ case C.BoxShape_0:
+ t1 = t1.borderRadius;
+ if (t1 == null)
+ canvas.drawRect$2(0, rect, paint);
+ else
+ canvas.drawRRect$2(0, t1.resolve$1(textDirection).toRRect$1(rect), paint);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _paintShadows$3: function(canvas, rect, textDirection) {
+ var t2, _i, boxShadow, result, t3, t4,
+ t1 = this._box_decoration$_decoration.boxShadow;
+ if (t1 == null)
+ return;
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ boxShadow = t1[_i];
+ result = new H.SurfacePaint(new H.SurfacePaintData());
+ result.set$color(0, boxShadow.color);
+ result.set$maskFilter(new P.MaskFilter(C.BlurStyle_0, boxShadow.blurRadius * 0.57735 + 0.5));
+ t3 = rect.shift$1(boxShadow.offset);
+ t4 = boxShadow.spreadRadius;
+ this._paintBox$4(canvas, new P.Rect(t3.left - t4, t3.top - t4, t3.right + t4, t3.bottom + t4), result, textDirection);
+ }
+ },
+ _paintBackgroundImage$3: function(canvas, rect, configuration) {
+ return;
+ },
+ dispose$0: function(_) {
+ this.super$BoxPainter$dispose(0);
+ },
+ paint$3: function(canvas, offset, configuration) {
+ var t4, t5, paint, _this = this,
+ t1 = configuration.size,
+ t2 = offset._dx,
+ t3 = offset._dy,
+ rect = new P.Rect(t2, t3, t2 + t1._dx, t3 + t1._dy),
+ textDirection = configuration.textDirection;
+ _this._paintShadows$3(canvas, rect, textDirection);
+ t1 = _this._box_decoration$_decoration;
+ t2 = t1.color;
+ t3 = t2 == null;
+ if (!t3 || false) {
+ t4 = _this._cachedBackgroundPaint;
+ if (t4 != null)
+ t5 = false;
+ else
+ t5 = true;
+ if (t5) {
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ if (!t3)
+ paint.set$color(0, t2);
+ _this._cachedBackgroundPaint = paint;
+ t2 = paint;
+ } else
+ t2 = t4;
+ t2.toString;
+ _this._paintBox$4(canvas, rect, t2, textDirection);
+ }
+ _this._paintBackgroundImage$3(canvas, rect, configuration);
+ t2 = t1.border;
+ if (t2 != null)
+ t2.paint$5$borderRadius$shape$textDirection(canvas, rect, type$.nullable_BorderRadius._as(t1.borderRadius), t1.shape, textDirection);
+ },
+ toString$0: function(_) {
+ return "BoxPainter for " + this._box_decoration$_decoration.toString$0(0);
+ }
+ };
+ O.BoxShadow.prototype = {
+ scale$1: function(_, factor) {
+ var _this = this;
+ return new O.BoxShadow(_this.spreadRadius * factor, _this.color, _this.offset.$mul(0, factor), _this.blurRadius * factor);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof O.BoxShadow && J.$eq$(other.color, _this.color) && J.$eq$(other.offset, _this.offset) && other.blurRadius == _this.blurRadius && other.spreadRadius == _this.spreadRadius;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.color, _this.offset, _this.blurRadius, _this.spreadRadius, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "BoxShadow(" + H.S(_this.color) + ", " + H.S(_this.offset) + ", " + E.debugFormatDouble(_this.blurRadius) + ", " + E.debugFormatDouble(_this.spreadRadius) + ")";
+ }
+ };
+ X.CircleBorder.prototype = {
+ get$dimensions: function() {
+ var t1 = this.side.width;
+ return new V.EdgeInsets(t1, t1, t1, t1);
+ },
+ scale$1: function(_, t) {
+ return new X.CircleBorder(this.side.scale$1(0, t));
+ },
+ lerpFrom$2: function(a, t) {
+ if (a instanceof X.CircleBorder)
+ return new X.CircleBorder(Y.BorderSide_lerp(a.side, this.side, t));
+ return this.super$ShapeBorder$lerpFrom(a, t);
+ },
+ lerpTo$2: function(b, t) {
+ if (b instanceof X.CircleBorder)
+ return new X.CircleBorder(Y.BorderSide_lerp(this.side, b.side, t));
+ return this.super$ShapeBorder$lerpTo(b, t);
+ },
+ getOuterPath$2$textDirection: function(rect, textDirection) {
+ var t1 = P.Path_Path();
+ t1.addOval$1(0, P.Rect$fromCircle(rect.get$center(), rect.get$shortestSide() / 2));
+ return t1;
+ },
+ paint$3$textDirection: function(canvas, rect, textDirection) {
+ var t1 = this.side;
+ switch (t1.style) {
+ case C.BorderStyle_0:
+ break;
+ case C.BorderStyle_1:
+ canvas.drawCircle$3(0, rect.get$center(), (rect.get$shortestSide() - t1.width) / 2, t1.toPaint$0());
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof X.CircleBorder && J.$eq$(other.side, this.side);
+ },
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.side);
+ },
+ toString$0: function(_) {
+ return "CircleBorder(" + H.S(this.side) + ")";
+ }
+ };
+ Z.ClipContext.prototype = {
+ _clipAndPaint$4: function(canvasClipCall, clipBehavior, bounds, painter) {
+ var t1, _this = this;
+ _this.get$canvas(_this).save$0(0);
+ switch (clipBehavior) {
+ case C.Clip_0:
+ break;
+ case C.Clip_1:
+ canvasClipCall.call$1(false);
+ break;
+ case C.Clip_2:
+ canvasClipCall.call$1(true);
+ break;
+ case C.Clip_3:
+ canvasClipCall.call$1(true);
+ t1 = _this.get$canvas(_this);
+ t1.saveLayer$2(0, bounds, new H.SurfacePaint(new H.SurfacePaintData()));
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ painter.call$0();
+ if (clipBehavior === C.Clip_3)
+ _this.get$canvas(_this).restore$0(0);
+ _this.get$canvas(_this).restore$0(0);
+ },
+ clipPathAndPaint$4: function(path, clipBehavior, bounds, painter) {
+ this._clipAndPaint$4(new Z.ClipContext_clipPathAndPaint_closure(this, path), clipBehavior, bounds, painter);
+ },
+ clipRectAndPaint$4: function(rect, clipBehavior, bounds, painter) {
+ this._clipAndPaint$4(new Z.ClipContext_clipRectAndPaint_closure(this, rect), clipBehavior, bounds, painter);
+ }
+ };
+ Z.ClipContext_clipPathAndPaint_closure.prototype = {
+ call$1: function(doAntiAias) {
+ var t1 = this.$this;
+ return t1.get$canvas(t1).clipPath$2$doAntiAlias(0, this.path, doAntiAias);
+ },
+ $signature: 11
+ };
+ Z.ClipContext_clipRectAndPaint_closure.prototype = {
+ call$1: function(doAntiAias) {
+ var t1 = this.$this;
+ return t1.get$canvas(t1).clipRect$2$doAntiAlias(0, this.rect, doAntiAias);
+ },
+ $signature: 11
+ };
+ E.ColorSwatch.prototype = {
+ $index: function(_, index) {
+ return this._swatch.$index(0, index);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return _this.super$Color$$eq(0, other) && H._instanceType(_this)._eval$1("ColorSwatch")._is(other) && S.mapEquals(other._swatch, _this._swatch);
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(H.getRuntimeType(this), this.value, this._swatch, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "ColorSwatch(primary value: " + this.super$Color$toString(0) + ")";
+ }
+ };
+ Z.Decoration.prototype = {
+ toStringShort$0: function() {
+ return "Decoration";
+ },
+ get$padding: function(_) {
+ return C.EdgeInsets_0_0_0_0;
+ },
+ get$isComplex: function() {
+ return false;
+ },
+ lerpFrom$2: function(a, t) {
+ return null;
+ },
+ lerpTo$2: function(b, t) {
+ return null;
+ },
+ hitTest$3$textDirection: function(size, position, textDirection) {
+ return true;
+ }
+ };
+ Z.BoxPainter.prototype = {
+ dispose$0: function(_) {
+ }
+ };
+ Z._Decoration_Object_Diagnosticable.prototype = {};
+ V.EdgeInsetsGeometry.prototype = {
+ get$horizontal: function() {
+ var _this = this;
+ return _this.get$_left(_this) + _this.get$_right(_this) + _this.get$_edge_insets$_start(_this) + _this.get$_edge_insets$_end();
+ },
+ along$1: function(axis) {
+ var _this = this;
+ switch (axis) {
+ case C.Axis_0:
+ return _this.get$horizontal();
+ case C.Axis_1:
+ return _this.get$_top(_this) + _this.get$_bottom(_this);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ add$1: function(_, other) {
+ var _this = this;
+ return new V._MixedEdgeInsets(_this.get$_left(_this) + other.get$_left(other), _this.get$_right(_this) + other.get$_right(other), _this.get$_edge_insets$_start(_this) + other.get$_edge_insets$_start(other), _this.get$_edge_insets$_end() + other.get$_edge_insets$_end(), _this.get$_top(_this) + other.get$_top(other), _this.get$_bottom(_this) + other.get$_bottom(other));
+ },
+ clamp$2: function(_, min, max) {
+ var _this = this;
+ return new V._MixedEdgeInsets(J.clamp$2$n(_this.get$_left(_this), min.left, max._left), J.clamp$2$n(_this.get$_right(_this), min.right, max._right), J.clamp$2$n(_this.get$_edge_insets$_start(_this), 0, max._edge_insets$_start), J.clamp$2$n(_this.get$_edge_insets$_end(), 0, max._edge_insets$_end), J.clamp$2$n(_this.get$_top(_this), min.top, max._top), J.clamp$2$n(_this.get$_bottom(_this), min.bottom, max._bottom));
+ },
+ toString$0: function(_) {
+ var _this = this;
+ if (_this.get$_edge_insets$_start(_this) === 0 && _this.get$_edge_insets$_end() === 0) {
+ if (_this.get$_left(_this) === 0 && _this.get$_right(_this) === 0 && _this.get$_top(_this) === 0 && _this.get$_bottom(_this) === 0)
+ return "EdgeInsets.zero";
+ if (_this.get$_left(_this) == _this.get$_right(_this) && _this.get$_right(_this) == _this.get$_top(_this) && _this.get$_top(_this) == _this.get$_bottom(_this))
+ return "EdgeInsets.all(" + J.toStringAsFixed$1$n(_this.get$_left(_this), 1) + ")";
+ return "EdgeInsets(" + J.toStringAsFixed$1$n(_this.get$_left(_this), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_top(_this), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_right(_this), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_bottom(_this), 1) + ")";
+ }
+ if (_this.get$_left(_this) === 0 && _this.get$_right(_this) === 0)
+ return "EdgeInsetsDirectional(" + J.toStringAsFixed$1$n(_this.get$_edge_insets$_start(_this), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_top(_this), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_edge_insets$_end(), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_bottom(_this), 1) + ")";
+ return "EdgeInsets(" + J.toStringAsFixed$1$n(_this.get$_left(_this), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_top(_this), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_right(_this), 1) + ", " + J.toStringAsFixed$1$n(_this.get$_bottom(_this), 1) + ") + EdgeInsetsDirectional(" + J.toStringAsFixed$1$n(_this.get$_edge_insets$_start(_this), 1) + ", 0.0, " + J.toStringAsFixed$1$n(_this.get$_edge_insets$_end(), 1) + ", 0.0)";
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ return other instanceof V.EdgeInsetsGeometry && other.get$_left(other) == _this.get$_left(_this) && other.get$_right(other) == _this.get$_right(_this) && other.get$_edge_insets$_start(other) == _this.get$_edge_insets$_start(_this) && other.get$_edge_insets$_end() == _this.get$_edge_insets$_end() && other.get$_top(other) == _this.get$_top(_this) && other.get$_bottom(other) == _this.get$_bottom(_this);
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.get$_left(_this), _this.get$_right(_this), _this.get$_edge_insets$_start(_this), _this.get$_edge_insets$_end(), _this.get$_top(_this), _this.get$_bottom(_this), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ V.EdgeInsets.prototype = {
+ get$_left: function(_) {
+ return this.left;
+ },
+ get$_top: function(_) {
+ return this.top;
+ },
+ get$_right: function(_) {
+ return this.right;
+ },
+ get$_bottom: function(_) {
+ return this.bottom;
+ },
+ get$_edge_insets$_start: function(_) {
+ return 0;
+ },
+ get$_edge_insets$_end: function() {
+ return 0;
+ },
+ add$1: function(_, other) {
+ if (other instanceof V.EdgeInsets)
+ return this.$add(0, other);
+ return this.super$EdgeInsetsGeometry$add(0, other);
+ },
+ clamp$2: function(_, min, max) {
+ var _this = this;
+ return new V.EdgeInsets(J.clamp$2$n(_this.left, min.left, max._left), J.clamp$2$n(_this.top, min.top, max._top), J.clamp$2$n(_this.right, min.right, max._right), J.clamp$2$n(_this.bottom, min.bottom, max._bottom));
+ },
+ $sub: function(_, other) {
+ var _this = this;
+ return new V.EdgeInsets(_this.left - other.left, _this.top - other.top, _this.right - other.right, _this.bottom - other.bottom);
+ },
+ $add: function(_, other) {
+ var _this = this;
+ return new V.EdgeInsets(_this.left + other.left, _this.top + other.top, _this.right + other.right, _this.bottom + other.bottom);
+ },
+ $mul: function(_, other) {
+ var _this = this;
+ return new V.EdgeInsets(_this.left * other, _this.top * other, _this.right * other, _this.bottom * other);
+ },
+ resolve$1: function(direction) {
+ return this;
+ },
+ copyWith$4$bottom$left$right$top: function(bottom, left, right, $top) {
+ var _this = this,
+ t1 = left == null ? _this.left : left,
+ t2 = $top == null ? _this.top : $top,
+ t3 = right == null ? _this.right : right;
+ return new V.EdgeInsets(t1, t2, t3, bottom == null ? _this.bottom : bottom);
+ },
+ copyWith$1$bottom: function(bottom) {
+ return this.copyWith$4$bottom$left$right$top(bottom, null, null, null);
+ }
+ };
+ V.EdgeInsetsDirectional.prototype = {
+ get$_edge_insets$_start: function(_) {
+ return this.start;
+ },
+ get$_top: function(_) {
+ return this.top;
+ },
+ get$_edge_insets$_end: function() {
+ return this.end;
+ },
+ get$_bottom: function(_) {
+ return this.bottom;
+ },
+ get$_left: function(_) {
+ return 0;
+ },
+ get$_right: function(_) {
+ return 0;
+ },
+ add$1: function(_, other) {
+ if (other instanceof V.EdgeInsetsDirectional)
+ return this.$add(0, other);
+ return this.super$EdgeInsetsGeometry$add(0, other);
+ },
+ $sub: function(_, other) {
+ var _this = this;
+ return new V.EdgeInsetsDirectional(_this.start - other.start, _this.top - other.top, _this.end - other.end, _this.bottom - other.bottom);
+ },
+ $add: function(_, other) {
+ var _this = this;
+ return new V.EdgeInsetsDirectional(_this.start + other.start, _this.top + other.top, _this.end + other.end, _this.bottom + other.bottom);
+ },
+ $mul: function(_, other) {
+ var _this = this;
+ return new V.EdgeInsetsDirectional(_this.start * other, _this.top * other, _this.end * other, _this.bottom * other);
+ },
+ resolve$1: function(direction) {
+ var _this = this;
+ direction.toString;
+ switch (direction) {
+ case C.TextDirection_0:
+ return new V.EdgeInsets(_this.end, _this.top, _this.start, _this.bottom);
+ case C.TextDirection_1:
+ return new V.EdgeInsets(_this.start, _this.top, _this.end, _this.bottom);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ V._MixedEdgeInsets.prototype = {
+ $mul: function(_, other) {
+ var _this = this;
+ return new V._MixedEdgeInsets(_this._left * other, _this._right * other, _this._edge_insets$_start * other, _this._edge_insets$_end * other, _this._top * other, _this._bottom * other);
+ },
+ resolve$1: function(direction) {
+ var _this = this;
+ direction.toString;
+ switch (direction) {
+ case C.TextDirection_0:
+ return new V.EdgeInsets(_this._edge_insets$_end + _this._left, _this._top, _this._edge_insets$_start + _this._right, _this._bottom);
+ case C.TextDirection_1:
+ return new V.EdgeInsets(_this._edge_insets$_start + _this._left, _this._top, _this._edge_insets$_end + _this._right, _this._bottom);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$_left: function(receiver) {
+ return this._left;
+ },
+ get$_right: function(receiver) {
+ return this._right;
+ },
+ get$_edge_insets$_start: function(receiver) {
+ return this._edge_insets$_start;
+ },
+ get$_edge_insets$_end: function() {
+ return this._edge_insets$_end;
+ },
+ get$_top: function(receiver) {
+ return this._top;
+ },
+ get$_bottom: function(receiver) {
+ return this._bottom;
+ }
+ };
+ T._ColorsAndStops.prototype = {};
+ T._sample_closure.prototype = {
+ call$1: function(s) {
+ return s <= this.t;
+ },
+ $signature: 188
+ };
+ T._interpolateColorsAndStops_closure.prototype = {
+ call$1: function($stop) {
+ var _this = this,
+ t1 = P.Color_lerp(T._sample(_this.aColors, _this.aStops, $stop), T._sample(_this.bColors, _this.bStops, $stop), _this.t);
+ t1.toString;
+ return t1;
+ },
+ $signature: 189
+ };
+ T.Gradient.prototype = {
+ _impliedStops$0: function() {
+ return this.stops;
+ }
+ };
+ T.LinearGradient.prototype = {
+ scale$1: function(_, factor) {
+ var _this = this,
+ t1 = _this.colors,
+ t2 = H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,Color>");
+ return new T.LinearGradient(_this.begin, _this.end, _this.tileMode, P.List_List$of(new H.MappedListIterable(t1, new T.LinearGradient_scale_closure(factor), t2), true, t2._eval$1("ListIterable.E")), _this.stops, null);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof T.LinearGradient && J.$eq$(other.begin, _this.begin) && J.$eq$(other.end, _this.end) && other.tileMode === _this.tileMode && S.listEquals(other.colors, _this.colors) && S.listEquals(other.stops, _this.stops);
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.begin, _this.end, _this.tileMode, P.hashList(_this.colors), P.hashList(_this.stops), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "LinearGradient(" + H.S(_this.begin) + ", " + H.S(_this.end) + ", " + H.S(_this.colors) + ", " + H.S(_this.stops) + ", " + _this.tileMode.toString$0(0) + ")";
+ }
+ };
+ T.LinearGradient_scale_closure.prototype = {
+ call$1: function(color) {
+ var t1 = P.Color_lerp(null, color, this.factor);
+ t1.toString;
+ return t1;
+ },
+ $signature: 114
+ };
+ E.ImageCache.prototype = {
+ clear$0: function(_) {
+ var _this = this,
+ t1 = _this._pendingImages,
+ t2 = _this._image_cache$_cache,
+ t3 = _this._liveImages;
+ P.Timeline_instantSync("ImageCache.clear", P.LinkedHashMap_LinkedHashMap$_literal(["pendingImages", t1.get$length(t1), "keepAliveImages", t2.get$length(t2), "liveImages", t3.get$length(t3), "currentSizeInBytes", _this._currentSizeBytes], type$.String, type$.dynamic));
+ t2.clear$0(0);
+ t1.clear$0(0);
+ _this._currentSizeBytes = 0;
+ }
+ };
+ M.ImageConfiguration.prototype = {
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof M.ImageConfiguration && other.bundle == _this.bundle && other.devicePixelRatio == _this.devicePixelRatio && J.$eq$(other.locale, _this.locale) && other.textDirection == _this.textDirection && J.$eq$(other.size, _this.size) && other.platform == _this.platform;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.bundle, _this.devicePixelRatio, _this.locale, _this.size, _this.platform, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var hasArguments, t2, _this = this,
+ _s19_ = "ImageConfiguration(",
+ t1 = _this.bundle;
+ if (t1 != null) {
+ t1 = _s19_ + ("bundle: " + t1.toString$0(0));
+ hasArguments = true;
+ } else {
+ t1 = _s19_;
+ hasArguments = false;
+ }
+ t2 = _this.devicePixelRatio;
+ if (t2 != null) {
+ if (hasArguments)
+ t1 += ", ";
+ t2 = t1 + ("devicePixelRatio: " + C.JSNumber_methods.toStringAsFixed$1(t2, 1));
+ t1 = t2;
+ hasArguments = true;
+ }
+ t2 = _this.locale;
+ if (t2 != null) {
+ if (hasArguments)
+ t1 += ", ";
+ t2 = t1 + ("locale: " + t2.toString$0(0));
+ t1 = t2;
+ hasArguments = true;
+ }
+ t2 = _this.textDirection;
+ if (t2 != null) {
+ if (hasArguments)
+ t1 += ", ";
+ t2 = t1 + ("textDirection: " + t2.toString$0(0));
+ t1 = t2;
+ hasArguments = true;
+ }
+ t2 = _this.size;
+ if (t2 != null) {
+ if (hasArguments)
+ t1 += ", ";
+ t2 = t1 + ("size: " + t2.toString$0(0));
+ t1 = t2;
+ hasArguments = true;
+ }
+ t2 = _this.platform;
+ if (t2 != null) {
+ if (hasArguments)
+ t1 += ", ";
+ t2 = t1 + ("platform: " + Y.describeEnum(t2));
+ t1 = t2;
+ }
+ t1 += ")";
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ G.Accumulator.prototype = {};
+ G.InlineSpanSemanticsInformation.prototype = {
+ $eq: function(_, other) {
+ var t1;
+ if (other == null)
+ return false;
+ if (other instanceof G.InlineSpanSemanticsInformation)
+ if (other.text == this.text)
+ if (other.semanticsLabel == this.semanticsLabel)
+ t1 = true;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.text, this.semanticsLabel, this.recognizer, false, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "InlineSpanSemanticsInformation{text: " + H.S(this.text) + ", semanticsLabel: " + H.S(this.semanticsLabel) + ", recognizer: " + H.S(this.recognizer) + "}";
+ }
+ };
+ G.InlineSpan.prototype = {
+ getSpanForPosition$1: function(position) {
+ var t1 = {};
+ t1.result = null;
+ this.visitChildren$1(new G.InlineSpan_getSpanForPosition_closure(t1, position, new G.Accumulator()));
+ return t1.result;
+ },
+ toPlainText$1$includePlaceholders: function(includePlaceholders) {
+ var t1,
+ buffer = new P.StringBuffer("");
+ this.computeToPlainText$3$includePlaceholders$includeSemanticsLabels(buffer, includePlaceholders, true);
+ t1 = buffer._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ toPlainText$0: function() {
+ return this.toPlainText$1$includePlaceholders(true);
+ },
+ codeUnitAt$1: function(_, index) {
+ var t1 = {};
+ if (index < 0)
+ return null;
+ t1.result = null;
+ this.visitChildren$1(new G.InlineSpan_codeUnitAt_closure(t1, index, new G.Accumulator()));
+ return t1.result;
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof G.InlineSpan && J.$eq$(other.style, this.style);
+ },
+ get$hashCode: function(_) {
+ return J.get$hashCode$(this.style);
+ }
+ };
+ G.InlineSpan_getSpanForPosition_closure.prototype = {
+ call$1: function(span) {
+ var result = span.getSpanForPositionVisitor$2(this.position, this.offset);
+ this._box_0.result = result;
+ return result == null;
+ },
+ $signature: 43
+ };
+ G.InlineSpan_codeUnitAt_closure.prototype = {
+ call$1: function(span) {
+ var result = span.codeUnitAtVisitor$2(this.index, this.offset);
+ this._box_0.result = result;
+ return result == null;
+ },
+ $signature: 43
+ };
+ X.RoundedRectangleBorder.prototype = {
+ get$dimensions: function() {
+ var t1 = this.side.width;
+ return new V.EdgeInsets(t1, t1, t1, t1);
+ },
+ scale$1: function(_, t) {
+ var t1 = this.side.scale$1(0, t);
+ return new X.RoundedRectangleBorder(this.borderRadius.$mul(0, t), t1);
+ },
+ lerpFrom$2: function(a, t) {
+ var t1, t2, _this = this;
+ if (a instanceof X.RoundedRectangleBorder) {
+ t1 = Y.BorderSide_lerp(a.side, _this.side, t);
+ t2 = K.BorderRadiusGeometry_lerp(a.borderRadius, _this.borderRadius, t);
+ t2.toString;
+ return new X.RoundedRectangleBorder(t2, t1);
+ }
+ if (a instanceof X.CircleBorder)
+ return new X._RoundedRectangleToCircleBorder(_this.borderRadius, 1 - t, Y.BorderSide_lerp(a.side, _this.side, t));
+ return _this.super$ShapeBorder$lerpFrom(a, t);
+ },
+ lerpTo$2: function(b, t) {
+ var t1, t2, _this = this;
+ if (b instanceof X.RoundedRectangleBorder) {
+ t1 = Y.BorderSide_lerp(_this.side, b.side, t);
+ t2 = K.BorderRadiusGeometry_lerp(_this.borderRadius, b.borderRadius, t);
+ t2.toString;
+ return new X.RoundedRectangleBorder(t2, t1);
+ }
+ if (b instanceof X.CircleBorder)
+ return new X._RoundedRectangleToCircleBorder(_this.borderRadius, t, Y.BorderSide_lerp(_this.side, b.side, t));
+ return _this.super$ShapeBorder$lerpTo(b, t);
+ },
+ getOuterPath$2$textDirection: function(rect, textDirection) {
+ var t1 = P.Path_Path();
+ t1.addRRect$1(0, this.borderRadius.resolve$1(textDirection).toRRect$1(rect));
+ return t1;
+ },
+ paint$3$textDirection: function(canvas, rect, textDirection) {
+ var width, t2, outer, inner, paint,
+ t1 = this.side;
+ switch (t1.style) {
+ case C.BorderStyle_0:
+ break;
+ case C.BorderStyle_1:
+ width = t1.width;
+ t2 = this.borderRadius;
+ if (width === 0)
+ canvas.drawRRect$2(0, t2.resolve$1(textDirection).toRRect$1(rect), t1.toPaint$0());
+ else {
+ outer = t2.resolve$1(textDirection).toRRect$1(rect);
+ inner = outer.inflate$1(-width);
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$color(0, t1.color);
+ canvas.drawDRRect$3(0, outer, inner, paint);
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof X.RoundedRectangleBorder && J.$eq$(other.side, this.side) && J.$eq$(other.borderRadius, this.borderRadius);
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.side, this.borderRadius, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "RoundedRectangleBorder(" + H.S(this.side) + ", " + H.S(this.borderRadius) + ")";
+ }
+ };
+ X._RoundedRectangleToCircleBorder.prototype = {
+ get$dimensions: function() {
+ var t1 = this.side.width;
+ return new V.EdgeInsets(t1, t1, t1, t1);
+ },
+ scale$1: function(_, t) {
+ var t1 = this.side.scale$1(0, t);
+ return new X._RoundedRectangleToCircleBorder(this.borderRadius.$mul(0, t), t, t1);
+ },
+ lerpFrom$2: function(a, t) {
+ var t1, t2, t3, _this = this;
+ if (a instanceof X.RoundedRectangleBorder) {
+ t1 = Y.BorderSide_lerp(a.side, _this.side, t);
+ t2 = K.BorderRadiusGeometry_lerp(a.borderRadius, _this.borderRadius, t);
+ t2.toString;
+ return new X._RoundedRectangleToCircleBorder(t2, _this.circleness * t, t1);
+ }
+ if (a instanceof X.CircleBorder) {
+ t1 = _this.circleness;
+ return new X._RoundedRectangleToCircleBorder(_this.borderRadius, t1 + (1 - t1) * (1 - t), Y.BorderSide_lerp(a.side, _this.side, t));
+ }
+ if (a instanceof X._RoundedRectangleToCircleBorder) {
+ t1 = Y.BorderSide_lerp(a.side, _this.side, t);
+ t2 = K.BorderRadiusGeometry_lerp(a.borderRadius, _this.borderRadius, t);
+ t2.toString;
+ t3 = P.lerpDouble(a.circleness, _this.circleness, t);
+ t3.toString;
+ return new X._RoundedRectangleToCircleBorder(t2, t3, t1);
+ }
+ return _this.super$ShapeBorder$lerpFrom(a, t);
+ },
+ lerpTo$2: function(b, t) {
+ var t1, t2, t3, _this = this;
+ if (b instanceof X.RoundedRectangleBorder) {
+ t1 = Y.BorderSide_lerp(_this.side, b.side, t);
+ t2 = K.BorderRadiusGeometry_lerp(_this.borderRadius, b.borderRadius, t);
+ t2.toString;
+ return new X._RoundedRectangleToCircleBorder(t2, _this.circleness * (1 - t), t1);
+ }
+ if (b instanceof X.CircleBorder) {
+ t1 = _this.circleness;
+ return new X._RoundedRectangleToCircleBorder(_this.borderRadius, t1 + (1 - t1) * t, Y.BorderSide_lerp(_this.side, b.side, t));
+ }
+ if (b instanceof X._RoundedRectangleToCircleBorder) {
+ t1 = Y.BorderSide_lerp(_this.side, b.side, t);
+ t2 = K.BorderRadiusGeometry_lerp(_this.borderRadius, b.borderRadius, t);
+ t2.toString;
+ t3 = P.lerpDouble(_this.circleness, b.circleness, t);
+ t3.toString;
+ return new X._RoundedRectangleToCircleBorder(t2, t3, t1);
+ }
+ return _this.super$ShapeBorder$lerpTo(b, t);
+ },
+ _adjustRect$1: function(rect) {
+ var t2, t3, t4, t5, t6, t7, delta,
+ t1 = this.circleness;
+ if (t1 === 0 || rect.right - rect.left === rect.bottom - rect.top)
+ return rect;
+ t2 = rect.right;
+ t3 = rect.left;
+ t4 = t2 - t3;
+ t5 = rect.bottom;
+ t6 = rect.top;
+ t7 = t5 - t6;
+ if (t4 < t7) {
+ delta = t1 * (t7 - t4) / 2;
+ return new P.Rect(t3, t6 + delta, t2, t5 - delta);
+ } else {
+ delta = t1 * (t4 - t7) / 2;
+ return new P.Rect(t3 + delta, t6, t2 - delta, t5);
+ }
+ },
+ _adjustBorderRadius$2: function(rect, textDirection) {
+ var resolvedRadius = this.borderRadius.resolve$1(textDirection),
+ t1 = this.circleness;
+ if (t1 === 0)
+ return resolvedRadius;
+ return K.BorderRadius_lerp(resolvedRadius, K.BorderRadius$circular(rect.get$shortestSide() / 2), t1);
+ },
+ getOuterPath$2$textDirection: function(rect, textDirection) {
+ var t1 = P.Path_Path(),
+ t2 = this._adjustBorderRadius$2(rect, textDirection);
+ t2.toString;
+ t1.addRRect$1(0, t2.toRRect$1(this._adjustRect$1(rect)));
+ return t1;
+ },
+ paint$3$textDirection: function(canvas, rect, textDirection) {
+ var width, t2, outer, inner, paint, _this = this,
+ t1 = _this.side;
+ switch (t1.style) {
+ case C.BorderStyle_0:
+ break;
+ case C.BorderStyle_1:
+ width = t1.width;
+ if (width === 0) {
+ t2 = _this._adjustBorderRadius$2(rect, textDirection);
+ t2.toString;
+ canvas.drawRRect$2(0, t2.toRRect$1(_this._adjustRect$1(rect)), t1.toPaint$0());
+ } else {
+ t2 = _this._adjustBorderRadius$2(rect, textDirection);
+ t2.toString;
+ outer = t2.toRRect$1(_this._adjustRect$1(rect));
+ inner = outer.inflate$1(-width);
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$color(0, t1.color);
+ canvas.drawDRRect$3(0, outer, inner, paint);
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof X._RoundedRectangleToCircleBorder && J.$eq$(other.side, _this.side) && J.$eq$(other.borderRadius, _this.borderRadius) && other.circleness == _this.circleness;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.side, this.borderRadius, this.circleness, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "RoundedRectangleBorder(" + H.S(this.side) + ", " + H.S(this.borderRadius) + ", " + C.JSNumber_methods.toStringAsFixed$1(this.circleness * 100, 1) + "% of the way to being a CircleBorder)";
+ }
+ };
+ D.ShaderWarmUp.prototype = {
+ execute$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, shaderWarmUpTask, recorder;
+ var $async$execute$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ recorder = P.PictureRecorder_PictureRecorder();
+ $async$goto = 2;
+ return P._asyncAwait($async$self.warmUpOnCanvas$1(P.Canvas_Canvas(recorder, null)), $async$execute$0);
+ case 2:
+ // returning from await.
+ recorder.endRecording$0();
+ shaderWarmUpTask = new P.TimelineTask(0, H.setRuntimeTypeInfo([], type$.JSArray__AsyncBlock));
+ shaderWarmUpTask.start$1(0, "Warm-up shader");
+ shaderWarmUpTask.finish$0(0);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$execute$0, $async$completer);
+ }
+ };
+ D.DefaultShaderWarmUp.prototype = {
+ warmUpOnCanvas$1: function(canvas) {
+ return this.warmUpOnCanvas$body$DefaultShaderWarmUp(canvas);
+ },
+ warmUpOnCanvas$body$DefaultShaderWarmUp: function(canvas) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ circlePath, path, convexPath, paths, t1, t2, t3, t4, paints, i, _i, paint, paragraphBuilder, paragraph, fraction, rrectPath;
+ var $async$warmUpOnCanvas$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ rrectPath = P.Path_Path();
+ rrectPath.addRRect$1(0, C.RRect_GZS);
+ circlePath = P.Path_Path();
+ circlePath.addOval$1(0, P.Rect$fromCircle(C.Offset_40_40, 20));
+ path = P.Path_Path();
+ path.moveTo$2(0, 20, 60);
+ path.quadraticBezierTo$4(60, 20, 60, 60);
+ path.close$0(0);
+ path.moveTo$2(0, 60, 20);
+ path.quadraticBezierTo$4(60, 60, 20, 60);
+ convexPath = P.Path_Path();
+ convexPath.moveTo$2(0, 20, 30);
+ convexPath.lineTo$2(0, 40, 20);
+ convexPath.lineTo$2(0, 60, 30);
+ convexPath.lineTo$2(0, 60, 60);
+ convexPath.lineTo$2(0, 20, 60);
+ convexPath.close$0(0);
+ paths = [rrectPath, circlePath, path, convexPath];
+ t1 = new H.SurfacePaint(new H.SurfacePaintData());
+ t1.set$isAntiAlias(true);
+ t1.set$style(0, C.PaintingStyle_0);
+ t2 = new H.SurfacePaint(new H.SurfacePaintData());
+ t2.set$isAntiAlias(false);
+ t2.set$style(0, C.PaintingStyle_0);
+ t3 = new H.SurfacePaint(new H.SurfacePaintData());
+ t3.set$isAntiAlias(true);
+ t3.set$style(0, C.PaintingStyle_1);
+ t3.set$strokeWidth(10);
+ t4 = new H.SurfacePaint(new H.SurfacePaintData());
+ t4.set$isAntiAlias(true);
+ t4.set$style(0, C.PaintingStyle_1);
+ t4.set$strokeWidth(0.1);
+ paints = [t1, t2, t3, t4];
+ for (i = 0; i < 4; ++i) {
+ canvas.save$0(0);
+ for (_i = 0; _i < 4; ++_i) {
+ paint = paints[_i];
+ canvas.drawPath$2(0, paths[i], paint);
+ canvas.translate$2(0, 0, 0);
+ }
+ canvas.restore$0(0);
+ canvas.translate$2(0, 0, 0);
+ }
+ canvas.save$0(0);
+ canvas.drawShadow$4(0, rrectPath, C.Color_4278190080, 10, true);
+ canvas.translate$2(0, 0, 0);
+ canvas.drawShadow$4(0, rrectPath, C.Color_4278190080, 10, false);
+ canvas.restore$0(0);
+ canvas.translate$2(0, 0, 0);
+ paragraphBuilder = P.ParagraphBuilder_ParagraphBuilder(P.ParagraphStyle_ParagraphStyle(null, null, null, null, null, null, null, null, null, null, C.TextDirection_1, null));
+ paragraphBuilder.pushStyle$1(0, P.TextStyle_TextStyle(null, C.Color_4278190080, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null));
+ paragraphBuilder.addText$1(0, "_");
+ paragraph = paragraphBuilder.build$0(0);
+ paragraph.layout$1(0, C.ParagraphConstraints_60);
+ canvas.drawParagraph$2(0, paragraph, C.Offset_20_20);
+ for (t1 = [0, 0.5], _i = 0; _i < 2; ++_i) {
+ fraction = t1[_i];
+ canvas.save$0(0);
+ canvas.translate$2(0, fraction, fraction);
+ canvas.clipRRect$1(0, new P.RRect(8, 8, 328, 248, 16, 16, 16, 16, 16, 16, 16, 16, true));
+ canvas.drawRect$2(0, C.Rect_10_10_320_240, new H.SurfacePaint(new H.SurfacePaintData()));
+ canvas.restore$0(0);
+ canvas.translate$2(0, 0, 0);
+ }
+ canvas.translate$2(0, 0, 0);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$warmUpOnCanvas$1, $async$completer);
+ }
+ };
+ M.StrutStyle.prototype = {
+ get$fontFamilyFallback: function() {
+ return this._strut_style$_fontFamilyFallback;
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof M.StrutStyle)
+ if (other.fontFamily == _this.fontFamily)
+ if (other.fontSize == _this.fontSize)
+ if (other.fontWeight == _this.fontWeight)
+ if (other.height == _this.height)
+ t1 = true;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.fontFamily, _this.fontSize, _this.fontWeight, _this.fontStyle, _this.height, _this.leading, true, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toStringShort$0: function() {
+ return "StrutStyle";
+ }
+ };
+ M._StrutStyle_Object_Diagnosticable.prototype = {};
+ U.PlaceholderDimensions.prototype = {
+ toString$0: function(_) {
+ return "PlaceholderDimensions(" + H.S(this.size) + ", " + H.S(this.baseline) + ")";
+ }
+ };
+ U.TextWidthBasis.prototype = {
+ toString$0: function(_) {
+ return this._text_painter$_name;
+ }
+ };
+ U._CaretMetrics.prototype = {};
+ U.TextPainter.prototype = {
+ markNeedsLayout$0: function() {
+ var _this = this;
+ _this._text_painter$_paragraph = null;
+ _this._text_painter$_needsLayout = true;
+ _this._previousCaretPrototype = _this._previousCaretPosition = null;
+ },
+ set$text: function(_, value) {
+ var t1, _this = this;
+ if (J.$eq$(_this._text_painter$_text, value))
+ return;
+ t1 = _this._text_painter$_text;
+ t1 = t1 == null ? null : t1.style;
+ if (!J.$eq$(t1, value.style))
+ _this._layoutTemplate = null;
+ _this._text_painter$_text = value;
+ _this.markNeedsLayout$0();
+ },
+ set$textAlign: function(_, value) {
+ if (this._text_painter$_textAlign === value)
+ return;
+ this._text_painter$_textAlign = value;
+ this.markNeedsLayout$0();
+ },
+ set$textDirection: function(_, value) {
+ var _this = this;
+ if (_this._text_painter$_textDirection === value)
+ return;
+ _this._text_painter$_textDirection = value;
+ _this.markNeedsLayout$0();
+ _this._layoutTemplate = null;
+ },
+ set$textScaleFactor: function(value) {
+ var _this = this;
+ if (_this._textScaleFactor === value)
+ return;
+ _this._textScaleFactor = value;
+ _this.markNeedsLayout$0();
+ _this._layoutTemplate = null;
+ },
+ set$ellipsis: function(_, value) {
+ if (this._text_painter$_ellipsis == value)
+ return;
+ this._text_painter$_ellipsis = value;
+ this.markNeedsLayout$0();
+ },
+ set$locale: function(_, value) {
+ if (J.$eq$(this._text_painter$_locale, value))
+ return;
+ this._text_painter$_locale = value;
+ this.markNeedsLayout$0();
+ },
+ set$maxLines: function(_, value) {
+ if (this._text_painter$_maxLines == value)
+ return;
+ this._text_painter$_maxLines = value;
+ this.markNeedsLayout$0();
+ },
+ set$strutStyle: function(_, value) {
+ if (J.$eq$(this._text_painter$_strutStyle, value))
+ return;
+ this._text_painter$_strutStyle = value;
+ this.markNeedsLayout$0();
+ },
+ set$textWidthBasis: function(value) {
+ if (this._textWidthBasis === value)
+ return;
+ this._textWidthBasis = value;
+ this.markNeedsLayout$0();
+ },
+ setPlaceholderDimensions$1: function(value) {
+ if (value == null || value.get$length(value) === 0 || S.listEquals(value, this._text_painter$_placeholderDimensions))
+ return;
+ this._text_painter$_placeholderDimensions = value;
+ this.markNeedsLayout$0();
+ },
+ _createParagraphStyle$1: function(defaultTextDirection) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, _this = this, _null = null,
+ t1 = _this._text_painter$_text.style;
+ if (t1 == null)
+ t1 = _null;
+ else {
+ t2 = _this._text_painter$_textAlign;
+ t3 = _this._text_painter$_textDirection;
+ if (t3 == null)
+ t3 = defaultTextDirection;
+ t4 = _this._textScaleFactor;
+ t5 = _this._text_painter$_maxLines;
+ t6 = _this._text_painter$_textHeightBehavior;
+ t7 = _this._text_painter$_ellipsis;
+ t8 = _this._text_painter$_locale;
+ t9 = _this._text_painter$_strutStyle;
+ t10 = t1.fontWeight;
+ t11 = t1.fontStyle;
+ t12 = t1.fontFamily;
+ t13 = t1.fontSize;
+ if (t13 == null)
+ t13 = 14;
+ t1 = t1.height;
+ if (t9 == null)
+ t9 = _null;
+ else {
+ t14 = t9.fontFamily;
+ t15 = t9.get$fontFamilyFallback();
+ t16 = t9.fontSize;
+ t16 = t16 == null ? _null : t16 * t4;
+ t9 = new H.EngineStrutStyle(t14, t15, t16, t9.height, t9.leading, t9.fontWeight, t9.fontStyle, true);
+ }
+ t6 = P.ParagraphStyle_ParagraphStyle(t7, t12, t13 * t4, t11, t10, t1, t8, t5, t9, t2, t3, t6);
+ t1 = t6;
+ }
+ if (t1 == null) {
+ t1 = _this._text_painter$_textAlign;
+ t2 = _this._text_painter$_textDirection;
+ if (t2 == null)
+ t2 = defaultTextDirection;
+ t3 = _this._textScaleFactor;
+ t4 = _this._text_painter$_maxLines;
+ t5 = _this._text_painter$_textHeightBehavior;
+ t5 = P.ParagraphStyle_ParagraphStyle(_this._text_painter$_ellipsis, _null, 14 * t3, _null, _null, _null, _this._text_painter$_locale, t4, _null, t1, t2, t5);
+ t1 = t5;
+ }
+ return t1;
+ },
+ _createParagraphStyle$0: function() {
+ return this._createParagraphStyle$1(null);
+ },
+ get$preferredLineHeight: function() {
+ var builder, _this = this,
+ t1 = _this._layoutTemplate;
+ if (t1 == null) {
+ builder = P.ParagraphBuilder_ParagraphBuilder(_this._createParagraphStyle$1(C.TextDirection_0));
+ t1 = _this._text_painter$_text;
+ if ((t1 == null ? null : t1.style) != null)
+ builder.pushStyle$1(0, t1.style.getTextStyle$1$textScaleFactor(_this._textScaleFactor));
+ builder.addText$1(0, " ");
+ t1 = builder.build$0(0);
+ t1.layout$1(0, C.ParagraphConstraints_C5f);
+ _this._layoutTemplate = t1;
+ }
+ return t1.get$height(t1);
+ },
+ get$width: function(_) {
+ var t1 = this._textWidthBasis,
+ t2 = this._text_painter$_paragraph;
+ t1 = t1 === C.TextWidthBasis_1 ? t2.get$longestLine() : t2.get$width(t2);
+ t1.toString;
+ return Math.ceil(t1);
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var t1;
+ switch (baseline) {
+ case C.TextBaseline_0:
+ t1 = this._text_painter$_paragraph;
+ return t1.get$alphabeticBaseline(t1);
+ case C.TextBaseline_1:
+ t1 = this._text_painter$_paragraph;
+ return t1.get$ideographicBaseline(t1);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ layout$2$maxWidth$minWidth: function(_, maxWidth, minWidth) {
+ var t1, builder, t2, newWidth, _this = this;
+ if (!_this._text_painter$_needsLayout && minWidth == _this._lastMinWidth && maxWidth == _this._lastMaxWidth)
+ return;
+ _this._text_painter$_needsLayout = false;
+ t1 = _this._text_painter$_paragraph;
+ if (t1 == null) {
+ builder = P.ParagraphBuilder_ParagraphBuilder(_this._createParagraphStyle$0());
+ t1 = _this._text_painter$_text;
+ t2 = _this._textScaleFactor;
+ t1.build$3$dimensions$textScaleFactor(0, builder, _this._text_painter$_placeholderDimensions, t2);
+ _this._inlinePlaceholderScales = builder.get$placeholderScales();
+ t2 = _this._text_painter$_paragraph = builder.build$0(0);
+ t1 = t2;
+ }
+ _this._lastMinWidth = minWidth;
+ _this._lastMaxWidth = maxWidth;
+ _this._previousCaretPrototype = _this._previousCaretPosition = null;
+ t1.layout$1(0, new P.ParagraphConstraints(maxWidth));
+ if (minWidth != maxWidth) {
+ switch (_this._textWidthBasis) {
+ case C.TextWidthBasis_1:
+ t1 = _this._text_painter$_paragraph.get$longestLine();
+ t1.toString;
+ newWidth = Math.ceil(t1);
+ break;
+ case C.TextWidthBasis_0:
+ t1 = _this._text_painter$_paragraph.get$maxIntrinsicWidth();
+ t1.toString;
+ newWidth = Math.ceil(t1);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ newWidth = C.JSNumber_methods.clamp$2(newWidth, minWidth, maxWidth);
+ t1 = _this._text_painter$_paragraph;
+ t1 = t1.get$width(t1);
+ t1.toString;
+ if (newWidth !== Math.ceil(t1))
+ _this._text_painter$_paragraph.layout$1(0, new P.ParagraphConstraints(newWidth));
+ }
+ _this._inlinePlaceholderBoxes = _this._text_painter$_paragraph.getBoxesForPlaceholders$0();
+ },
+ layout$0: function($receiver) {
+ return this.layout$2$maxWidth$minWidth($receiver, 1 / 0, 0);
+ },
+ getOffsetAfter$1: function(offset) {
+ var nextCodeUnit = this._text_painter$_text.codeUnitAt$1(0, offset);
+ if (nextCodeUnit == null)
+ return null;
+ return (nextCodeUnit & 63488) === 55296 ? offset + 2 : offset + 1;
+ },
+ getOffsetBefore$1: function(offset) {
+ var t2, prevCodeUnit,
+ t1 = this._text_painter$_text;
+ t1.toString;
+ t2 = offset - 1;
+ prevCodeUnit = t1.codeUnitAt$1(0, t2);
+ if (prevCodeUnit == null)
+ return null;
+ return (prevCodeUnit & 63488) === 55296 ? offset - 2 : t2;
+ },
+ _getRectFromUpstream$2: function(offset, caretPrototype) {
+ var prevCodeUnit, needsSearch, graphemeClusterLength, boxes, t2, prevRuneOffset, box, caretEnd, dx, _this = this,
+ flattenedText = _this._text_painter$_text.toPlainText$1$includePlaceholders(false),
+ t1 = _this._text_painter$_text;
+ t1.toString;
+ prevCodeUnit = t1.codeUnitAt$1(0, Math.max(0, offset - 1));
+ if (prevCodeUnit == null)
+ return null;
+ needsSearch = (prevCodeUnit & 63488) === 55296 || _this._text_painter$_text.codeUnitAt$1(0, offset) === 8205 || prevCodeUnit === 8207 || prevCodeUnit === 8206;
+ graphemeClusterLength = needsSearch ? 2 : 1;
+ boxes = H.setRuntimeTypeInfo([], type$.JSArray_TextBox);
+ for (t1 = -flattenedText.length, t2 = !needsSearch; boxes.length === 0;) {
+ prevRuneOffset = offset - graphemeClusterLength;
+ boxes = _this._text_painter$_paragraph.getBoxesForRange$3$boxHeightStyle(prevRuneOffset, offset, C.BoxHeightStyle_5);
+ if (boxes.length === 0) {
+ if (t2)
+ break;
+ if (prevRuneOffset < t1)
+ break;
+ graphemeClusterLength *= 2;
+ continue;
+ }
+ box = C.JSArray_methods.get$first(boxes);
+ if (prevCodeUnit === 10) {
+ t1 = box.bottom;
+ return new P.Rect(_this.get$_emptyOffset()._dx, t1, _this.get$_emptyOffset()._dx, t1 + t1 - box.top);
+ }
+ t1 = box.direction;
+ caretEnd = t1 === C.TextDirection_1 ? box.right : box.left;
+ dx = t1 === C.TextDirection_0 ? caretEnd - (caretPrototype.right - caretPrototype.left) : caretEnd;
+ t1 = _this._text_painter$_paragraph;
+ t1 = t1.get$width(t1);
+ t1 = Math.min(H.checkNum(dx), H.checkNum(t1));
+ t2 = _this._text_painter$_paragraph;
+ t2 = t2.get$width(t2);
+ return new P.Rect(t1, box.top, Math.min(H.checkNum(dx), H.checkNum(t2)), box.bottom);
+ }
+ return null;
+ },
+ _getRectFromDownstream$2: function(offset, caretPrototype) {
+ var t2, nextCodeUnit, needsSearch, graphemeClusterLength, boxes, nextRuneOffset, box, caretStart, dx, _this = this,
+ flattenedText = _this._text_painter$_text.toPlainText$1$includePlaceholders(false),
+ t1 = _this._text_painter$_text;
+ t1.toString;
+ t2 = flattenedText.length;
+ nextCodeUnit = t1.codeUnitAt$1(0, Math.min(H.checkNum(offset), t2 - 1));
+ if (nextCodeUnit == null)
+ return null;
+ needsSearch = (nextCodeUnit & 63488) === 55296 || nextCodeUnit === 8205 || nextCodeUnit === 8207 || nextCodeUnit === 8206;
+ graphemeClusterLength = needsSearch ? 2 : 1;
+ boxes = H.setRuntimeTypeInfo([], type$.JSArray_TextBox);
+ for (t1 = t2 << 1 >>> 0, t2 = !needsSearch; boxes.length === 0;) {
+ nextRuneOffset = offset + graphemeClusterLength;
+ boxes = _this._text_painter$_paragraph.getBoxesForRange$3$boxHeightStyle(offset, nextRuneOffset, C.BoxHeightStyle_5);
+ if (boxes.length === 0) {
+ if (t2)
+ break;
+ if (nextRuneOffset >= t1)
+ break;
+ graphemeClusterLength *= 2;
+ continue;
+ }
+ box = C.JSArray_methods.get$last(boxes);
+ t1 = box.direction;
+ caretStart = t1 === C.TextDirection_1 ? box.left : box.right;
+ dx = t1 === C.TextDirection_0 ? caretStart - (caretPrototype.right - caretPrototype.left) : caretStart;
+ t1 = _this._text_painter$_paragraph;
+ t1 = t1.get$width(t1);
+ t1 = Math.min(H.checkNum(dx), H.checkNum(t1));
+ t2 = _this._text_painter$_paragraph;
+ t2 = t2.get$width(t2);
+ return new P.Rect(t1, box.top, Math.min(H.checkNum(dx), H.checkNum(t2)), box.bottom);
+ }
+ return null;
+ },
+ get$_emptyOffset: function() {
+ var t1, _this = this,
+ _s80_ = string$.x60null_c;
+ switch (_this._text_painter$_textAlign) {
+ case C.TextAlign_0:
+ return C.Offset_0_0;
+ case C.TextAlign_1:
+ return new P.Offset(_this.get$width(_this), 0);
+ case C.TextAlign_2:
+ return new P.Offset(_this.get$width(_this) / 2, 0);
+ case C.TextAlign_3:
+ case C.TextAlign_4:
+ t1 = _this._text_painter$_textDirection;
+ t1.toString;
+ switch (t1) {
+ case C.TextDirection_0:
+ return new P.Offset(_this.get$width(_this), 0);
+ case C.TextDirection_1:
+ return C.Offset_0_0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ case C.TextAlign_5:
+ t1 = _this._text_painter$_textDirection;
+ t1.toString;
+ switch (t1) {
+ case C.TextDirection_0:
+ return C.Offset_0_0;
+ case C.TextDirection_1:
+ return new P.Offset(_this.get$width(_this), 0);
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ },
+ get$_caretMetrics: function() {
+ return this.__TextPainter__caretMetrics_isSet ? this.__TextPainter__caretMetrics : H.throwExpression(H.LateError$fieldNI("_caretMetrics"));
+ },
+ _computeCaretMetrics$2: function(position, caretPrototype) {
+ var offset, rect, t1, t2, _this = this;
+ if (J.$eq$(position, _this._previousCaretPosition) && J.$eq$(caretPrototype, _this._previousCaretPrototype))
+ return;
+ offset = position.offset;
+ switch (position.affinity) {
+ case C.TextAffinity_0:
+ rect = _this._getRectFromUpstream$2(offset, caretPrototype);
+ if (rect == null)
+ rect = _this._getRectFromDownstream$2(offset, caretPrototype);
+ break;
+ case C.TextAffinity_1:
+ rect = _this._getRectFromDownstream$2(offset, caretPrototype);
+ if (rect == null)
+ rect = _this._getRectFromUpstream$2(offset, caretPrototype);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ t1 = rect != null;
+ t2 = t1 ? new P.Offset(rect.left, rect.top) : _this.get$_emptyOffset();
+ t1 = t1 ? rect.bottom - rect.top : null;
+ _this.__TextPainter__caretMetrics_isSet = true;
+ _this.__TextPainter__caretMetrics = new U._CaretMetrics(t2, t1);
+ _this._previousCaretPosition = position;
+ _this._previousCaretPrototype = caretPrototype;
+ },
+ getBoxesForSelection$3$boxHeightStyle$boxWidthStyle: function(selection, boxHeightStyle, boxWidthStyle) {
+ return this._text_painter$_paragraph.getBoxesForRange$4$boxHeightStyle$boxWidthStyle(selection.start, selection.end, boxHeightStyle, boxWidthStyle);
+ },
+ getBoxesForSelection$1: function(selection) {
+ return this.getBoxesForSelection$3$boxHeightStyle$boxWidthStyle(selection, C.BoxHeightStyle_0, C.BoxWidthStyle_0);
+ }
+ };
+ Q.TextSpan.prototype = {
+ build$3$dimensions$textScaleFactor: function(_, builder, dimensions, textScaleFactor) {
+ var t2, _i,
+ t1 = this.style,
+ hasStyle = t1 != null;
+ if (hasStyle)
+ builder.pushStyle$1(0, t1.getTextStyle$1$textScaleFactor(textScaleFactor));
+ t1 = this.text;
+ if (t1 != null)
+ builder.addText$1(0, t1);
+ t1 = this.children;
+ if (t1 != null)
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ J.build$3$dimensions$textScaleFactor$x(t1[_i], builder, dimensions, textScaleFactor);
+ if (hasStyle)
+ builder.pop$0(0);
+ },
+ visitChildren$1: function(visitor) {
+ var t1, t2, _i;
+ if (this.text != null)
+ if (!visitor.call$1(this))
+ return false;
+ t1 = this.children;
+ if (t1 != null)
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ if (!t1[_i].visitChildren$1(visitor))
+ return false;
+ return true;
+ },
+ getSpanForPositionVisitor$2: function(position, offset) {
+ var affinity, targetOffset, t2, endOffset,
+ t1 = this.text;
+ if (t1 == null)
+ return null;
+ affinity = position.affinity;
+ targetOffset = position.offset;
+ t2 = offset._inline_span$_value;
+ endOffset = t2 + t1.length;
+ if (!(t2 === targetOffset && affinity === C.TextAffinity_1))
+ if (!(t2 < targetOffset && targetOffset < endOffset))
+ t1 = endOffset === targetOffset && affinity === C.TextAffinity_0;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ if (t1)
+ return this;
+ offset._inline_span$_value = endOffset;
+ return null;
+ },
+ computeToPlainText$3$includePlaceholders$includeSemanticsLabels: function(buffer, includePlaceholders, includeSemanticsLabels) {
+ var t2, _i,
+ t1 = this.text;
+ if (t1 != null)
+ buffer._contents += t1;
+ t1 = this.children;
+ if (t1 != null)
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].computeToPlainText$3$includePlaceholders$includeSemanticsLabels(buffer, includePlaceholders, true);
+ },
+ computeSemanticsInformation$1: function(collector) {
+ var t2, _i,
+ t1 = this.text;
+ if (t1 != null || false) {
+ t1.toString;
+ collector.push(G.InlineSpanSemanticsInformation$(t1, null, null));
+ }
+ t1 = this.children;
+ if (t1 != null)
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].computeSemanticsInformation$1(collector);
+ },
+ codeUnitAtVisitor$2: function(index, offset) {
+ var t2, t3, t4,
+ t1 = this.text;
+ if (t1 == null)
+ return null;
+ t2 = offset._inline_span$_value;
+ t3 = index - t2;
+ t4 = t1.length;
+ if (t3 < t4)
+ return C.JSString_methods.codeUnitAt$1(t1, t3);
+ offset._inline_span$_value = t2 + t4;
+ return null;
+ },
+ compareTo$1: function(_, other) {
+ var t1, t2, candidate, result, index, _this = this;
+ if (_this === other)
+ return C.RenderComparison_0;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return C.RenderComparison_3;
+ if (other.text == _this.text) {
+ t1 = _this.children;
+ t1 = t1 == null ? null : t1.length;
+ t2 = other.children;
+ t1 = t1 != (t2 == null ? null : t2.length) || _this.style == null !== (other.style == null);
+ } else
+ t1 = true;
+ if (t1)
+ return C.RenderComparison_3;
+ t1 = _this.style;
+ if (t1 != null) {
+ t2 = other.style;
+ t2.toString;
+ candidate = t1.compareTo$1(0, t2);
+ result = candidate.index > 0 ? candidate : C.RenderComparison_0;
+ if (result === C.RenderComparison_3)
+ return result;
+ } else
+ result = C.RenderComparison_0;
+ t1 = _this.children;
+ if (t1 != null)
+ for (t2 = other.children, index = 0; index < t1.length; ++index) {
+ candidate = J.compareTo$1$ns(t1[index], t2[index]);
+ if (candidate.index > result.index)
+ result = candidate;
+ if (result === C.RenderComparison_3)
+ return result;
+ }
+ return result;
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (!_this.super$InlineSpan$$eq(0, other))
+ return false;
+ if (other instanceof Q.TextSpan)
+ if (other.text == _this.text)
+ t1 = S.listEquals(other.children, _this.children);
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(G.InlineSpan.prototype.get$hashCode.call(_this, _this), _this.text, null, null, P.hashList(_this.children), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toStringShort$0: function() {
+ return "TextSpan";
+ },
+ debugDescribeChildren$0: function() {
+ var t2,
+ t1 = this.children;
+ if (t1 == null)
+ return C.List_empty;
+ t2 = H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,DiagnosticsNode>");
+ return P.List_List$of(new H.MappedListIterable(t1, new Q.TextSpan_debugDescribeChildren_closure(), t2), true, t2._eval$1("ListIterable.E"));
+ }
+ };
+ Q.TextSpan_debugDescribeChildren_closure.prototype = {
+ call$1: function(child) {
+ if (child != null)
+ return Y.DiagnosticableTreeNode$(null, null, child);
+ else
+ return Y.DiagnosticsNode_DiagnosticsNode$message("", true, C.DiagnosticsTreeStyle_8);
+ },
+ $signature: 191
+ };
+ A.TextStyle.prototype = {
+ get$fontFamilyFallback: function() {
+ return this._text_style$_fontFamilyFallback;
+ },
+ copyWith$21$background$backgroundColor$color$debugLabel$decoration$decorationColor$decorationStyle$decorationThickness$fontFamily$fontFamilyFallback$fontFeatures$fontSize$fontStyle$fontWeight$foreground$height$letterSpacing$locale$shadows$textBaseline$wordSpacing: function(background, backgroundColor, color, debugLabel, decoration, decorationColor, decorationStyle, decorationThickness, fontFamily, fontFamilyFallback, fontFeatures, fontSize, fontStyle, fontWeight, foreground, height, letterSpacing, locale, shadows, textBaseline, wordSpacing) {
+ var t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, _this = this, _null = null,
+ t1 = _this.foreground;
+ if (t1 == null && foreground == null)
+ t2 = color == null ? _this.color : color;
+ else
+ t2 = _null;
+ t3 = _this.background;
+ if (t3 == null && background == null)
+ t4 = backgroundColor == null ? _this.backgroundColor : backgroundColor;
+ else
+ t4 = _null;
+ t5 = fontFamily == null ? _this.fontFamily : fontFamily;
+ t6 = fontFamilyFallback == null ? _this.get$fontFamilyFallback() : fontFamilyFallback;
+ t7 = fontSize == null ? _this.fontSize : fontSize;
+ t8 = fontWeight == null ? _this.fontWeight : fontWeight;
+ t9 = letterSpacing == null ? _this.letterSpacing : letterSpacing;
+ t10 = wordSpacing == null ? _this.wordSpacing : wordSpacing;
+ t11 = textBaseline == null ? _this.textBaseline : textBaseline;
+ t12 = height == null ? _this.height : height;
+ t1 = foreground == null ? t1 : foreground;
+ t3 = background == null ? t3 : background;
+ t13 = decoration == null ? _this.decoration : decoration;
+ t14 = decorationColor == null ? _this.decorationColor : decorationColor;
+ t15 = decorationStyle == null ? _this.decorationStyle : decorationStyle;
+ t16 = decorationThickness == null ? _this.decorationThickness : decorationThickness;
+ return A.TextStyle$(t3, t4, t2, _null, t13, t14, t15, t16, t5, t6, _this.fontFeatures, t7, _this.fontStyle, t8, t1, t12, _this.inherit, t9, _this.locale, _null, _this.shadows, t11, t10);
+ },
+ copyWith$1$color: function(color) {
+ return this.copyWith$21$background$backgroundColor$color$debugLabel$decoration$decorationColor$decorationStyle$decorationThickness$fontFamily$fontFamilyFallback$fontFeatures$fontSize$fontStyle$fontWeight$foreground$height$letterSpacing$locale$shadows$textBaseline$wordSpacing(null, null, color, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
+ },
+ copyWith$2$color$letterSpacing: function(color, letterSpacing) {
+ return this.copyWith$21$background$backgroundColor$color$debugLabel$decoration$decorationColor$decorationStyle$decorationThickness$fontFamily$fontFamilyFallback$fontFeatures$fontSize$fontStyle$fontWeight$foreground$height$letterSpacing$locale$shadows$textBaseline$wordSpacing(null, null, color, null, null, null, null, null, null, null, null, null, null, null, null, null, letterSpacing, null, null, null, null);
+ },
+ copyWith$2$color$fontSize: function(color, fontSize) {
+ return this.copyWith$21$background$backgroundColor$color$debugLabel$decoration$decorationColor$decorationStyle$decorationThickness$fontFamily$fontFamilyFallback$fontFeatures$fontSize$fontStyle$fontWeight$foreground$height$letterSpacing$locale$shadows$textBaseline$wordSpacing(null, null, color, null, null, null, null, null, null, null, null, fontSize, null, null, null, null, null, null, null, null, null);
+ },
+ merge$1: function(other) {
+ var t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16;
+ if (other == null)
+ return this;
+ if (!other.inherit)
+ return other;
+ t1 = other.color;
+ t2 = other.backgroundColor;
+ t3 = other.fontFamily;
+ t4 = other.get$fontFamilyFallback();
+ t5 = other.fontSize;
+ t6 = other.fontWeight;
+ t7 = other.fontStyle;
+ t8 = other.letterSpacing;
+ t9 = other.wordSpacing;
+ t10 = other.textBaseline;
+ t11 = other.height;
+ t12 = other.locale;
+ t13 = other.foreground;
+ t14 = other.background;
+ t15 = other.shadows;
+ t16 = other.fontFeatures;
+ return this.copyWith$21$background$backgroundColor$color$debugLabel$decoration$decorationColor$decorationStyle$decorationThickness$fontFamily$fontFamilyFallback$fontFeatures$fontSize$fontStyle$fontWeight$foreground$height$letterSpacing$locale$shadows$textBaseline$wordSpacing(t14, t2, t1, null, other.decoration, other.decorationColor, other.decorationStyle, other.decorationThickness, t3, t4, t16, t5, t7, t6, t13, t11, t8, t12, t15, t10, t9);
+ },
+ getTextStyle$1$textScaleFactor: function(textScaleFactor) {
+ var t3, t4, _this = this,
+ t1 = _this.get$fontFamilyFallback(),
+ t2 = _this.fontSize;
+ t2 = t2 == null ? null : t2 * textScaleFactor;
+ t3 = _this.background;
+ if (t3 == null) {
+ t3 = _this.backgroundColor;
+ if (t3 != null) {
+ t4 = new H.SurfacePaint(new H.SurfacePaintData());
+ t4.set$color(0, t3);
+ t3 = t4;
+ } else
+ t3 = null;
+ }
+ return P.TextStyle_TextStyle(t3, _this.color, _this.decoration, _this.decorationColor, _this.decorationStyle, _this.decorationThickness, _this.fontFamily, t1, _this.fontFeatures, t2, _this.fontStyle, _this.fontWeight, _this.foreground, _this.height, _this.letterSpacing, _this.locale, _this.shadows, _this.textBaseline, _this.wordSpacing);
+ },
+ compareTo$1: function(_, other) {
+ var t1, _this = this;
+ if (_this === other)
+ return C.RenderComparison_0;
+ if (_this.inherit === other.inherit)
+ if (_this.fontFamily == other.fontFamily)
+ if (_this.fontSize == other.fontSize)
+ if (_this.fontWeight == other.fontWeight)
+ if (_this.letterSpacing == other.letterSpacing)
+ if (_this.wordSpacing == other.wordSpacing)
+ if (_this.textBaseline == other.textBaseline)
+ if (_this.height == other.height)
+ t1 = _this.foreground != other.foreground || _this.background != other.background || !S.listEquals(_this.shadows, other.shadows) || !S.listEquals(_this.fontFeatures, other.fontFeatures) || !S.listEquals(_this.get$fontFamilyFallback(), other.get$fontFamilyFallback());
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ if (t1)
+ return C.RenderComparison_3;
+ if (!J.$eq$(_this.color, other.color) || !J.$eq$(_this.backgroundColor, other.backgroundColor) || !J.$eq$(_this.decoration, other.decoration) || !J.$eq$(_this.decorationColor, other.decorationColor) || _this.decorationStyle != other.decorationStyle || _this.decorationThickness != other.decorationThickness)
+ return C.RenderComparison_2;
+ return C.RenderComparison_0;
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof A.TextStyle)
+ if (other.inherit === _this.inherit)
+ if (J.$eq$(other.color, _this.color))
+ if (J.$eq$(other.backgroundColor, _this.backgroundColor))
+ if (other.fontFamily == _this.fontFamily)
+ if (other.fontSize == _this.fontSize)
+ if (other.fontWeight == _this.fontWeight)
+ if (other.letterSpacing == _this.letterSpacing)
+ if (other.wordSpacing == _this.wordSpacing)
+ if (other.textBaseline == _this.textBaseline)
+ if (other.height == _this.height)
+ t1 = other.foreground == _this.foreground && other.background == _this.background && J.$eq$(other.decoration, _this.decoration) && J.$eq$(other.decorationColor, _this.decorationColor) && other.decorationStyle == _this.decorationStyle && other.decorationThickness == _this.decorationThickness && S.listEquals(other.shadows, _this.shadows) && S.listEquals(other.fontFeatures, _this.fontFeatures) && S.listEquals(other.get$fontFamilyFallback(), _this.get$fontFamilyFallback());
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.inherit, _this.color, _this.backgroundColor, _this.fontFamily, _this.fontSize, _this.fontWeight, _this.fontStyle, _this.letterSpacing, _this.wordSpacing, _this.textBaseline, _this.height, _this.locale, _this.foreground, _this.background, _this.decoration, _this.decorationColor, _this.decorationStyle, P.hashList(_this.shadows), P.hashList(_this.fontFeatures), P.hashList(_this.get$fontFamilyFallback()));
+ },
+ toStringShort$0: function() {
+ return "TextStyle";
+ }
+ };
+ A._TextStyle_Object_Diagnosticable.prototype = {};
+ D.FrictionSimulation.prototype = {
+ x$1: function(_, time) {
+ var _this = this,
+ t1 = _this._v,
+ t2 = _this._dragLog;
+ return _this._friction_simulation$_x + t1 * Math.pow(_this._drag, time) / t2 - t1 / t2;
+ },
+ dx$1: function(_, time) {
+ H.checkNum(time);
+ return this._v * Math.pow(this._drag, time);
+ },
+ get$finalX: function() {
+ return this._friction_simulation$_x - this._v / this._dragLog;
+ },
+ timeAtX$1: function(x) {
+ var t2, t3, _this = this,
+ t1 = _this._friction_simulation$_x;
+ if (x === t1)
+ return 0;
+ t2 = _this._v;
+ if (t2 !== 0)
+ if (t2 > 0)
+ t3 = x < t1 || x > _this.get$finalX();
+ else
+ t3 = x > t1 || x < _this.get$finalX();
+ else
+ t3 = true;
+ if (t3)
+ return 1 / 0;
+ t3 = _this._dragLog;
+ return Math.log(t3 * (x - t1) / t2 + 1) / t3;
+ },
+ isDone$1: function(time) {
+ return Math.abs(this._v * Math.pow(this._drag, time)) < this.tolerance.velocity;
+ }
+ };
+ T.Simulation.prototype = {
+ toString$0: function(_) {
+ return "Simulation";
+ }
+ };
+ M.SpringDescription.prototype = {
+ toString$0: function(_) {
+ return "SpringDescription(mass: " + C.JSNumber_methods.toStringAsFixed$1(this.mass, 1) + ", stiffness: " + C.JSInt_methods.toStringAsFixed$1(this.stiffness, 1) + ", damping: " + C.JSNumber_methods.toStringAsFixed$1(this.damping, 1) + ")";
+ }
+ };
+ M.SpringType.prototype = {
+ toString$0: function(_) {
+ return this._spring_simulation$_name;
+ }
+ };
+ M.SpringSimulation.prototype = {
+ x$1: function(_, time) {
+ return this._endPosition + this._solution.x$1(0, time);
+ },
+ dx$1: function(_, time) {
+ return this._solution.dx$1(0, time);
+ },
+ isDone$1: function(time) {
+ var t1 = this._solution;
+ return B.nearEqual(t1.x$1(0, time), 0, this.tolerance.distance) && B.nearEqual(t1.dx$1(0, time), 0, this.tolerance.velocity);
+ },
+ toString$0: function(_) {
+ var t1 = this._solution;
+ return "SpringSimulation(end: " + H.S(this._endPosition) + ", " + t1.get$type(t1).toString$0(0) + ")";
+ }
+ };
+ M.ScrollSpringSimulation.prototype = {
+ x$1: function(_, time) {
+ return this.isDone$1(time) ? this._endPosition : this.super$SpringSimulation$x(0, time);
+ }
+ };
+ M._CriticalSolution.prototype = {
+ x$1: function(_, time) {
+ return (this._c1 + this._c2 * time) * Math.pow(2.718281828459045, this._r * time);
+ },
+ dx$1: function(_, time) {
+ var t1 = this._r,
+ power = Math.pow(2.718281828459045, t1 * time),
+ t2 = this._c2;
+ return t1 * (this._c1 + t2 * time) * power + t2 * power;
+ },
+ get$type: function(_) {
+ return C.SpringType_0;
+ }
+ };
+ M._OverdampedSolution.prototype = {
+ x$1: function(_, time) {
+ var _this = this;
+ return _this._c1 * Math.pow(2.718281828459045, _this._r1 * time) + _this._c2 * Math.pow(2.718281828459045, _this._r2 * time);
+ },
+ dx$1: function(_, time) {
+ var _this = this,
+ t1 = _this._r1,
+ t2 = _this._r2;
+ return _this._c1 * t1 * Math.pow(2.718281828459045, t1 * time) + _this._c2 * t2 * Math.pow(2.718281828459045, t2 * time);
+ },
+ get$type: function(_) {
+ return C.SpringType_2;
+ }
+ };
+ M._UnderdampedSolution.prototype = {
+ x$1: function(_, time) {
+ var _this = this,
+ t1 = _this._spring_simulation$_w * time;
+ return Math.pow(2.718281828459045, _this._r * time) * (_this._c1 * Math.cos(t1) + _this._c2 * Math.sin(t1));
+ },
+ dx$1: function(_, time) {
+ var t4, _this = this,
+ t1 = _this._r,
+ power = Math.pow(2.718281828459045, t1 * time),
+ t2 = _this._spring_simulation$_w,
+ t3 = t2 * time,
+ cosine = Math.cos(t3),
+ sine = Math.sin(t3);
+ t3 = _this._c2;
+ t4 = _this._c1;
+ return power * (t3 * t2 * cosine - t4 * t2 * sine) + t1 * power * (t3 * sine + t4 * cosine);
+ },
+ get$type: function(_) {
+ return C.SpringType_1;
+ }
+ };
+ N.Tolerance.prototype = {
+ toString$0: function(_) {
+ return "Tolerance(distance: \xb1" + H.S(this.distance) + ", time: \xb10.001, velocity: \xb1" + H.S(this.velocity) + ")";
+ }
+ };
+ N.RendererBinding.prototype = {
+ get$_pipelineOwner: function() {
+ return this.RendererBinding___RendererBinding__pipelineOwner_isSet ? this.RendererBinding___RendererBinding__pipelineOwner : H.throwExpression(H.LateError$fieldNI("_pipelineOwner"));
+ },
+ handleMetricsChanged$0: function() {
+ var t1 = this.get$_pipelineOwner()._rootNode;
+ t1.toString;
+ t1.set$configuration(this.createViewConfiguration$0());
+ this.scheduleForcedFrame$0();
+ },
+ handlePlatformBrightnessChanged$0: function() {
+ },
+ createViewConfiguration$0: function() {
+ var t1 = $.$get$window(),
+ devicePixelRatio = t1.get$devicePixelRatio(t1);
+ return new A.ViewConfiguration0(t1.get$physicalSize().$div(0, devicePixelRatio), devicePixelRatio);
+ },
+ _handleSemanticsEnabledChanged$0: function() {
+ var t1, _this = this;
+ if ($.$get$window().platformDispatcher._configuration.semanticsEnabled) {
+ if (_this.RendererBinding__semanticsHandle == null)
+ _this.RendererBinding__semanticsHandle = _this.get$_pipelineOwner().ensureSemantics$0();
+ } else {
+ t1 = _this.RendererBinding__semanticsHandle;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this.RendererBinding__semanticsHandle = null;
+ }
+ },
+ setSemanticsEnabled$1: function(enabled) {
+ var t1, _this = this;
+ if (enabled) {
+ if (_this.RendererBinding__semanticsHandle == null)
+ _this.RendererBinding__semanticsHandle = _this.get$_pipelineOwner().ensureSemantics$0();
+ } else {
+ t1 = _this.RendererBinding__semanticsHandle;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this.RendererBinding__semanticsHandle = null;
+ }
+ },
+ _handleWebFirstFrame$1: function(_) {
+ C.MethodChannel_Gpa._invokeMethod$1$3$arguments$missingOk("first-frame", null, false, type$.void);
+ },
+ _handleSemanticsAction$3: function(id, action, args) {
+ var t1 = this.get$_pipelineOwner()._semanticsOwner;
+ if (t1 != null)
+ t1.performAction$3(id, action, null);
+ },
+ _handleSemanticsOwnerCreated$0: function() {
+ var t2,
+ t1 = this.get$_pipelineOwner()._rootNode;
+ t1.toString;
+ t2 = type$.nullable_PipelineOwner;
+ t2._as(B.AbstractNode.prototype.get$owner.call(t1))._nodesNeedingSemantics.add$1(0, t1);
+ t2._as(B.AbstractNode.prototype.get$owner.call(t1)).requestVisualUpdate$0();
+ },
+ _handleSemanticsOwnerDisposed$0: function() {
+ this.get$_pipelineOwner()._rootNode.clearSemantics$0();
+ },
+ _handlePersistentFrameCallback$1: function(timeStamp) {
+ this.drawFrame$0();
+ this._scheduleMouseTrackerUpdate$0();
+ },
+ _scheduleMouseTrackerUpdate$0: function() {
+ $.SchedulerBinding__instance.SchedulerBinding__postFrameCallbacks.push(new N.RendererBinding__scheduleMouseTrackerUpdate_closure(this));
+ },
+ allowFirstFrame$0: function() {
+ --this.RendererBinding__firstFrameDeferredCount;
+ if (!this.RendererBinding__firstFrameSent)
+ this.scheduleWarmUpFrame$0();
+ },
+ drawFrame$0: function() {
+ var _this = this;
+ _this.get$_pipelineOwner().flushLayout$0();
+ _this.get$_pipelineOwner().flushCompositingBits$0();
+ _this.get$_pipelineOwner().flushPaint$0();
+ if (_this.RendererBinding__firstFrameSent || _this.RendererBinding__firstFrameDeferredCount === 0) {
+ _this.get$_pipelineOwner()._rootNode.compositeFrame$0();
+ _this.get$_pipelineOwner().flushSemantics$0();
+ _this.RendererBinding__firstFrameSent = true;
+ }
+ }
+ };
+ N.RendererBinding__scheduleMouseTrackerUpdate_closure.prototype = {
+ call$1: function(duration) {
+ var t1 = this.$this,
+ t2 = t1.RendererBinding__mouseTracker;
+ t2.toString;
+ t2.updateAllDevices$1(t1.get$_pipelineOwner()._rootNode.get$hitTestMouseTrackers());
+ },
+ $signature: 4
+ };
+ S.BoxConstraints.prototype = {
+ copyWith$4$maxHeight$maxWidth$minHeight$minWidth: function(maxHeight, maxWidth, minHeight, minWidth) {
+ var _this = this,
+ t1 = minWidth == null ? _this.minWidth : minWidth,
+ t2 = maxWidth == null ? _this.maxWidth : maxWidth,
+ t3 = minHeight == null ? _this.minHeight : minHeight;
+ return new S.BoxConstraints(t1, t2, t3, maxHeight == null ? _this.maxHeight : maxHeight);
+ },
+ copyWith$2$minHeight$minWidth: function(minHeight, minWidth) {
+ return this.copyWith$4$maxHeight$maxWidth$minHeight$minWidth(null, null, minHeight, minWidth);
+ },
+ copyWith$1$maxWidth: function(maxWidth) {
+ return this.copyWith$4$maxHeight$maxWidth$minHeight$minWidth(null, maxWidth, null, null);
+ },
+ copyWith$2$maxWidth$minWidth: function(maxWidth, minWidth) {
+ return this.copyWith$4$maxHeight$maxWidth$minHeight$minWidth(null, maxWidth, null, minWidth);
+ },
+ copyWith$1$minWidth: function(minWidth) {
+ return this.copyWith$4$maxHeight$maxWidth$minHeight$minWidth(null, null, null, minWidth);
+ },
+ copyWith$1$maxHeight: function(maxHeight) {
+ return this.copyWith$4$maxHeight$maxWidth$minHeight$minWidth(maxHeight, null, null, null);
+ },
+ deflate$1: function(edges) {
+ var _this = this,
+ horizontal = edges.get$horizontal(),
+ vertical = edges.get$_top(edges) + edges.get$_bottom(edges),
+ deflatedMinWidth = Math.max(0, _this.minWidth - horizontal),
+ deflatedMinHeight = Math.max(0, _this.minHeight - vertical);
+ return new S.BoxConstraints(deflatedMinWidth, Math.max(deflatedMinWidth, _this.maxWidth - horizontal), deflatedMinHeight, Math.max(deflatedMinHeight, _this.maxHeight - vertical));
+ },
+ loosen$0: function() {
+ return new S.BoxConstraints(0, this.maxWidth, 0, this.maxHeight);
+ },
+ enforce$1: function(constraints) {
+ var t4, _this = this,
+ t1 = constraints.minWidth,
+ t2 = constraints.maxWidth,
+ t3 = J.clamp$2$n(_this.minWidth, t1, t2);
+ t2 = J.clamp$2$n(_this.maxWidth, t1, t2);
+ t1 = constraints.minHeight;
+ t4 = constraints.maxHeight;
+ return new S.BoxConstraints(t3, t2, J.clamp$2$n(_this.minHeight, t1, t4), J.clamp$2$n(_this.maxHeight, t1, t4));
+ },
+ tighten$2$height$width: function(height, width) {
+ var t5, t6, _this = this,
+ t1 = width == null,
+ t2 = _this.minWidth,
+ t3 = t1 ? t2 : C.JSNumber_methods.clamp$2(width, t2, _this.maxWidth),
+ t4 = _this.maxWidth;
+ t1 = t1 ? t4 : C.JSNumber_methods.clamp$2(width, t2, t4);
+ t2 = height == null;
+ t4 = _this.minHeight;
+ t5 = t2 ? t4 : C.JSNumber_methods.clamp$2(height, t4, _this.maxHeight);
+ t6 = _this.maxHeight;
+ return new S.BoxConstraints(t3, t1, t5, t2 ? t6 : C.JSNumber_methods.clamp$2(height, t4, t6));
+ },
+ tighten$1$width: function(width) {
+ return this.tighten$2$height$width(null, width);
+ },
+ tighten$1$height: function(height) {
+ return this.tighten$2$height$width(height, null);
+ },
+ constrain$1: function(size) {
+ var _this = this;
+ return new P.Size(J.clamp$2$n(size._dx, _this.minWidth, _this.maxWidth), J.clamp$2$n(size._dy, _this.minHeight, _this.maxHeight));
+ },
+ get$isTight: function() {
+ var _this = this;
+ return _this.minWidth >= _this.maxWidth && _this.minHeight >= _this.maxHeight;
+ },
+ $mul: function(_, factor) {
+ var _this = this;
+ return new S.BoxConstraints(_this.minWidth * factor, _this.maxWidth * factor, _this.minHeight * factor, _this.maxHeight * factor);
+ },
+ get$isNormalized: function() {
+ var _this = this,
+ t1 = _this.minWidth;
+ if (t1 >= 0)
+ if (t1 <= _this.maxWidth) {
+ t1 = _this.minHeight;
+ t1 = t1 >= 0 && t1 <= _this.maxHeight;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof S.BoxConstraints && other.minWidth == _this.minWidth && other.maxWidth == _this.maxWidth && other.minHeight == _this.minHeight && other.maxHeight == _this.maxHeight;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.minWidth, _this.maxWidth, _this.minHeight, _this.maxHeight, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t2, width, height, _this = this,
+ annotation = _this.get$isNormalized() ? "" : "; NOT NORMALIZED",
+ t1 = _this.minWidth;
+ if (t1 === 1 / 0 && _this.minHeight === 1 / 0)
+ return "BoxConstraints(biggest" + annotation + ")";
+ if (t1 === 0 && _this.maxWidth === 1 / 0 && _this.minHeight === 0 && _this.maxHeight === 1 / 0)
+ return "BoxConstraints(unconstrained" + annotation + ")";
+ t2 = new S.BoxConstraints_toString_describe();
+ width = t2.call$3(t1, _this.maxWidth, "w");
+ height = t2.call$3(_this.minHeight, _this.maxHeight, "h");
+ return "BoxConstraints(" + H.S(width) + ", " + H.S(height) + annotation + ")";
+ }
+ };
+ S.BoxConstraints_toString_describe.prototype = {
+ call$3: function(min, max, dim) {
+ if (min == max)
+ return dim + "=" + J.toStringAsFixed$1$n(min, 1);
+ return J.toStringAsFixed$1$n(min, 1) + "<=" + dim + "<=" + J.toStringAsFixed$1$n(max, 1);
+ },
+ $signature: 193
+ };
+ S.BoxHitTestResult.prototype = {
+ addWithPaintTransform$3$hitTest$position$transform: function(hitTest, position, transform) {
+ if (transform != null) {
+ transform = E.Matrix4_tryInvert(F.PointerEvent_removePerspectiveTransform(transform));
+ if (transform == null)
+ return false;
+ }
+ return this.addWithRawTransform$3$hitTest$position$transform(hitTest, position, transform);
+ },
+ addWithPaintOffset$3$hitTest$offset$position: function(hitTest, offset, position) {
+ var isHit,
+ t1 = offset == null,
+ transformedPosition = t1 ? position : position.$sub(0, offset);
+ t1 = !t1;
+ if (t1)
+ this._localTransforms.push(new O._OffsetTransformPart(new P.Offset(-offset._dx, -offset._dy)));
+ isHit = hitTest.call$2(this, transformedPosition);
+ if (t1)
+ this.popTransform$0();
+ return isHit;
+ },
+ addWithRawTransform$3$hitTest$position$transform: function(hitTest, position, transform) {
+ var isHit,
+ t1 = transform == null,
+ transformedPosition = t1 ? position : T.MatrixUtils_transformPoint(transform, position);
+ t1 = !t1;
+ if (t1)
+ this._localTransforms.push(new O._MatrixTransformPart(transform));
+ isHit = hitTest.call$2(this, transformedPosition);
+ if (t1)
+ this.popTransform$0();
+ return isHit;
+ },
+ addWithOutOfBandPosition$3$hitTest$paintOffset$paintTransform: function(hitTest, paintOffset, paintTransform) {
+ var isHit, _this = this;
+ if (paintOffset != null)
+ _this._localTransforms.push(new O._OffsetTransformPart(new P.Offset(-paintOffset._dx, -paintOffset._dy)));
+ else {
+ paintTransform.toString;
+ paintTransform = E.Matrix4_tryInvert(F.PointerEvent_removePerspectiveTransform(paintTransform));
+ paintTransform.toString;
+ _this._localTransforms.push(new O._MatrixTransformPart(paintTransform));
+ }
+ isHit = hitTest.call$1(_this);
+ _this.popTransform$0();
+ return isHit;
+ },
+ addWithOutOfBandPosition$2$hitTest$paintTransform: function(hitTest, paintTransform) {
+ return this.addWithOutOfBandPosition$3$hitTest$paintOffset$paintTransform(hitTest, null, paintTransform);
+ },
+ addWithOutOfBandPosition$2$hitTest$paintOffset: function(hitTest, paintOffset) {
+ return this.addWithOutOfBandPosition$3$hitTest$paintOffset$paintTransform(hitTest, paintOffset, null);
+ }
+ };
+ S.BoxHitTestEntry.prototype = {
+ get$target: function(_) {
+ return type$.RenderBox._as(this.target);
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(type$.RenderBox._as(this.target)) + "@" + H.S(this.localPosition);
+ }
+ };
+ S.BoxParentData.prototype = {
+ toString$0: function(_) {
+ return "offset=" + this.offset.toString$0(0);
+ }
+ };
+ S.ContainerBoxParentData.prototype = {};
+ S._IntrinsicDimension.prototype = {
+ toString$0: function(_) {
+ return this._box$_name;
+ }
+ };
+ S._IntrinsicDimensionsCacheEntry.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof S._IntrinsicDimensionsCacheEntry && other.dimension === this.dimension && other.argument == this.argument;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.dimension, this.argument, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ S.RenderBox.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof S.BoxParentData))
+ child.parentData = new S.BoxParentData(C.Offset_0_0);
+ },
+ _computeIntrinsicDimension$3: function(dimension, argument, computer) {
+ var t1 = this._cachedIntrinsicDimensions;
+ if (t1 == null)
+ t1 = this._cachedIntrinsicDimensions = P.LinkedHashMap_LinkedHashMap$_empty(type$._IntrinsicDimensionsCacheEntry, type$.double);
+ return t1.putIfAbsent$2(0, new S._IntrinsicDimensionsCacheEntry(dimension, argument), new S.RenderBox__computeIntrinsicDimension_closure(computer, argument));
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ return 0;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return 0;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return 0;
+ },
+ get$semanticBounds: function() {
+ var t1 = this._size;
+ return new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ },
+ getDistanceToBaseline$2$onlyReal: function(baseline, onlyReal) {
+ var result = this.getDistanceToActualBaseline$1(baseline);
+ if (result == null && !onlyReal)
+ return this._size._dy;
+ return result;
+ },
+ getDistanceToBaseline$1: function(baseline) {
+ return this.getDistanceToBaseline$2$onlyReal(baseline, false);
+ },
+ getDistanceToActualBaseline$1: function(baseline) {
+ var _this = this,
+ t1 = _this._cachedBaselines;
+ if (t1 == null)
+ t1 = _this._cachedBaselines = P.LinkedHashMap_LinkedHashMap$_empty(type$.TextBaseline, type$.nullable_double);
+ t1.putIfAbsent$2(0, baseline, new S.RenderBox_getDistanceToActualBaseline_closure(_this, baseline));
+ return _this._cachedBaselines.$index(0, baseline);
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ return null;
+ },
+ get$constraints: function() {
+ return type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this));
+ },
+ markNeedsLayout$0: function() {
+ var _this = this,
+ t1 = _this._cachedBaselines;
+ if (!(t1 != null && t1.get$isNotEmpty(t1))) {
+ t1 = _this._cachedIntrinsicDimensions;
+ t1 = t1 != null && t1.get$isNotEmpty(t1);
+ } else
+ t1 = true;
+ if (t1) {
+ t1 = _this._cachedBaselines;
+ if (t1 != null)
+ t1.clear$0(0);
+ t1 = _this._cachedIntrinsicDimensions;
+ if (t1 != null)
+ t1.clear$0(0);
+ if (_this._node$_parent instanceof K.RenderObject) {
+ _this.markParentNeedsLayout$0();
+ return;
+ }
+ }
+ _this.super$RenderObject$markNeedsLayout();
+ },
+ performResize$0: function() {
+ var t1 = this.get$constraints();
+ this._size = new P.Size(C.JSInt_methods.clamp$2(0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(0, t1.minHeight, t1.maxHeight));
+ },
+ performLayout$0: function() {
+ },
+ hitTest$2$position: function(result, position) {
+ var t1, _this = this;
+ if (_this._size.contains$1(0, position))
+ if (_this.hitTestChildren$2$position(result, position) || _this.hitTestSelf$1(position)) {
+ t1 = new S.BoxHitTestEntry(position, _this);
+ result._globalizeTransforms$0();
+ t1._transform = C.JSArray_methods.get$last(result._transforms);
+ result._path.push(t1);
+ return true;
+ }
+ return false;
+ },
+ hitTestSelf$1: function(position) {
+ return false;
+ },
+ hitTestChildren$2$position: function(result, position) {
+ return false;
+ },
+ applyPaintTransform$2: function(child, transform) {
+ var offset,
+ t1 = child.parentData;
+ t1.toString;
+ offset = type$.BoxParentData._as(t1).offset;
+ transform.translate$2(0, offset._dx, offset._dy);
+ },
+ globalToLocal$1: function(point) {
+ var n, t1, i, d, t2, t3, s,
+ transform = this.getTransformTo$1(0, null);
+ if (transform.copyInverse$1(transform) === 0)
+ return C.Offset_0_0;
+ n = new E.Vector3(new Float64Array(3));
+ n.setValues$3(0, 0, 1);
+ t1 = new E.Vector3(new Float64Array(3));
+ t1.setValues$3(0, 0, 0);
+ i = transform.perspectiveTransform$1(t1);
+ t1 = new E.Vector3(new Float64Array(3));
+ t1.setValues$3(0, 0, 1);
+ d = transform.perspectiveTransform$1(t1).$sub(0, i);
+ t1 = point._dx;
+ t2 = point._dy;
+ t3 = new E.Vector3(new Float64Array(3));
+ t3.setValues$3(t1, t2, 0);
+ s = transform.perspectiveTransform$1(t3);
+ t3 = s.$sub(0, d.scaled$1(n.dot$1(s) / n.dot$1(d)))._v3storage;
+ return new P.Offset(t3[0], t3[1]);
+ },
+ get$paintBounds: function() {
+ var t1 = this._size;
+ return new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ },
+ handleEvent$2: function($event, entry) {
+ this.super$RenderObject$handleEvent($event, entry);
+ }
+ };
+ S.RenderBox__computeIntrinsicDimension_closure.prototype = {
+ call$0: function() {
+ return this.computer.call$1(this.argument);
+ },
+ $signature: 18
+ };
+ S.RenderBox_getDistanceToActualBaseline_closure.prototype = {
+ call$0: function() {
+ return this.$this.computeDistanceToActualBaseline$1(this.baseline);
+ },
+ $signature: 194
+ };
+ S.RenderBoxContainerDefaultsMixin.prototype = {
+ defaultComputeDistanceToFirstActualBaseline$1: function(baseline) {
+ var t1, childParentData, result,
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("RenderBoxContainerDefaultsMixin.1?"); child != null;) {
+ childParentData = t1._as(child.parentData);
+ result = child.getDistanceToActualBaseline$1(baseline);
+ if (result != null)
+ return result + childParentData.offset._dy;
+ child = childParentData.ContainerParentDataMixin_nextSibling;
+ }
+ return null;
+ },
+ defaultComputeDistanceToHighestActualBaseline$1: function(baseline) {
+ var t1, result, t2, candidate,
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("RenderBoxContainerDefaultsMixin.1"), result = null; child != null;) {
+ t2 = child.parentData;
+ t2.toString;
+ t1._as(t2);
+ candidate = child.getDistanceToActualBaseline$1(baseline);
+ if (candidate != null) {
+ candidate += t2.offset._dy;
+ result = result != null ? Math.min(result, candidate) : candidate;
+ }
+ child = t2.ContainerParentDataMixin_nextSibling;
+ }
+ return result;
+ },
+ defaultHitTestChildren$2$position: function(result, position) {
+ var t2, child, _box_0 = {},
+ t1 = _box_0.child = this.ContainerRenderObjectMixin__lastChild;
+ for (t2 = H._instanceType(this)._eval$1("RenderBoxContainerDefaultsMixin.1"); t1 != null; t1 = child) {
+ t1 = t1.parentData;
+ t1.toString;
+ t2._as(t1);
+ if (result.addWithPaintOffset$3$hitTest$offset$position(new S.RenderBoxContainerDefaultsMixin_defaultHitTestChildren_closure(_box_0, position, t1), t1.offset, position))
+ return true;
+ child = t1.ContainerParentDataMixin_previousSibling;
+ _box_0.child = child;
+ }
+ return false;
+ },
+ defaultPaint$2: function(context, offset) {
+ var t1, t2, t3, t4, t5,
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("RenderBoxContainerDefaultsMixin.1"), t2 = offset._dx, t3 = offset._dy; child != null;) {
+ t4 = child.parentData;
+ t4.toString;
+ t1._as(t4);
+ t5 = t4.offset;
+ context.paintChild$2(child, new P.Offset(t5._dx + t2, t5._dy + t3));
+ child = t4.ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ S.RenderBoxContainerDefaultsMixin_defaultHitTestChildren_closure.prototype = {
+ call$2: function(result, transformed) {
+ var t1 = this._box_0.child;
+ t1.toString;
+ transformed.toString;
+ return t1.hitTest$2$position(result, transformed);
+ },
+ $signature: 23
+ };
+ S._ContainerBoxParentData_BoxParentData_ContainerParentDataMixin.prototype = {
+ detach$0: function(_) {
+ this.super$ParentData$detach(0);
+ }
+ };
+ B.MultiChildLayoutParentData.prototype = {
+ toString$0: function(_) {
+ return this.super$BoxParentData$toString(0) + "; id=" + H.S(this.id);
+ }
+ };
+ B.MultiChildLayoutDelegate.prototype = {
+ layoutChild$2: function(childId, constraints) {
+ var t1,
+ child = this._idToChild.$index(0, childId);
+ child.layout$2$parentUsesSize(0, constraints, true);
+ t1 = child._size;
+ t1.toString;
+ return t1;
+ },
+ positionChild$2: function(childId, offset) {
+ var t1 = this._idToChild.$index(0, childId).parentData;
+ t1.toString;
+ type$.MultiChildLayoutParentData._as(t1).offset = offset;
+ },
+ _callPerformLayout$2: function(size, firstChild) {
+ var childParentData, t1, t2, t3, t4, child, _this = this,
+ previousIdToChild = _this._idToChild;
+ try {
+ _this._idToChild = P.LinkedHashMap_LinkedHashMap$_empty(type$.Object, type$.RenderBox);
+ for (t1 = type$.MultiChildLayoutParentData, t2 = firstChild; t2 != null; t2 = child) {
+ t3 = t2.parentData;
+ t3.toString;
+ childParentData = t1._as(t3);
+ t3 = _this._idToChild;
+ t3.toString;
+ t4 = childParentData.id;
+ t4.toString;
+ t3.$indexSet(0, t4, t2);
+ child = childParentData.ContainerParentDataMixin_nextSibling;
+ }
+ _this.performLayout$1(size);
+ } finally {
+ _this._idToChild = previousIdToChild;
+ }
+ },
+ toString$0: function(_) {
+ return "MultiChildLayoutDelegate";
+ }
+ };
+ B.RenderCustomMultiChildLayoutBox.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof B.MultiChildLayoutParentData))
+ child.parentData = new B.MultiChildLayoutParentData(null, null, C.Offset_0_0);
+ },
+ set$delegate: function(newDelegate) {
+ var _this = this,
+ t1 = _this._custom_layout$_delegate;
+ if (t1 === newDelegate)
+ return;
+ if (H.getRuntimeType(newDelegate) !== H.getRuntimeType(t1) || newDelegate.shouldRelayout$1(t1))
+ _this.markNeedsLayout$0();
+ _this._custom_layout$_delegate = newDelegate;
+ _this._node$_owner != null;
+ },
+ attach$1: function(owner) {
+ this.super$_RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin$attach(owner);
+ },
+ detach$0: function(_) {
+ this.super$_RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin$detach(0);
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t1 = S.BoxConstraints$tightForFinite(height, 1 / 0),
+ width = t1.constrain$1(new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight)))._dx;
+ width.toString;
+ if (isFinite(width))
+ return width;
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t1 = S.BoxConstraints$tightForFinite(height, 1 / 0),
+ width = t1.constrain$1(new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight)))._dx;
+ width.toString;
+ if (isFinite(width))
+ return width;
+ return 0;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t1 = S.BoxConstraints$tightForFinite(1 / 0, width),
+ height = t1.constrain$1(new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight)))._dy;
+ height.toString;
+ if (isFinite(height))
+ return height;
+ return 0;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ var t1 = S.BoxConstraints$tightForFinite(1 / 0, width),
+ height = t1.constrain$1(new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight)))._dy;
+ height.toString;
+ if (isFinite(height))
+ return height;
+ return 0;
+ },
+ performLayout$0: function() {
+ var _this = this,
+ t1 = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this));
+ t1 = t1.constrain$1(new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight)));
+ _this._size = t1;
+ _this._custom_layout$_delegate._callPerformLayout$2(t1, _this.ContainerRenderObjectMixin__firstChild);
+ },
+ paint$2: function(context, offset) {
+ this.defaultPaint$2(context, offset);
+ },
+ hitTestChildren$2$position: function(result, position) {
+ return this.defaultHitTestChildren$2$position(result, position);
+ }
+ };
+ B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin.prototype = {
+ attach$1: function(owner) {
+ var child, t1, t2;
+ this.super$RenderObject$attach(owner);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.MultiChildLayoutParentData; child != null;) {
+ child.attach$1(owner);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child, t1, t2;
+ this.super$AbstractNode$detach(0);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.MultiChildLayoutParentData; child != null;) {
+ child.detach$0(0);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin.prototype = {};
+ V.CustomPainter.prototype = {
+ addListener$1: function(_, listener) {
+ var t1 = this._repaint;
+ return t1 == null ? null : t1.addListener$1(0, listener);
+ },
+ removeListener$1: function(_, listener) {
+ var t1 = this._repaint;
+ return t1 == null ? null : t1.removeListener$1(0, listener);
+ },
+ hitTest$1: function(position) {
+ return null;
+ },
+ toString$0: function(_) {
+ var t1 = "#" + Y.shortHash(this) + "(",
+ t2 = this._repaint;
+ t2 = t2 == null ? null : t2.toString$0(0);
+ return t1 + (t2 == null ? "" : t2) + ")";
+ }
+ };
+ V.RenderCustomPaint.prototype = {
+ set$painter: function(value) {
+ var t1 = this._painter;
+ if (t1 == value)
+ return;
+ this._painter = value;
+ this._didUpdatePainter$2(value, t1);
+ },
+ set$foregroundPainter: function(value) {
+ var t1 = this._foregroundPainter;
+ if (t1 == value)
+ return;
+ this._foregroundPainter = value;
+ this._didUpdatePainter$2(value, t1);
+ },
+ _didUpdatePainter$2: function(newPainter, oldPainter) {
+ var _this = this,
+ t1 = newPainter == null;
+ if (t1)
+ _this.markNeedsPaint$0();
+ else if (oldPainter == null || H.getRuntimeType(newPainter) !== H.getRuntimeType(oldPainter) || newPainter.shouldRepaint$1(oldPainter))
+ _this.markNeedsPaint$0();
+ if (_this._node$_owner != null) {
+ if (oldPainter != null)
+ oldPainter.removeListener$1(0, _this.get$markNeedsPaint());
+ if (!t1)
+ newPainter.addListener$1(0, _this.get$markNeedsPaint());
+ }
+ if (t1) {
+ if (_this._node$_owner != null)
+ _this.markNeedsSemanticsUpdate$0();
+ } else if (oldPainter == null || H.getRuntimeType(newPainter) !== H.getRuntimeType(oldPainter) || newPainter.shouldRepaint$1(oldPainter))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$preferredSize: function(value) {
+ if (this._preferredSize.$eq(0, value))
+ return;
+ this._preferredSize = value;
+ this.markNeedsLayout$0();
+ },
+ attach$1: function(owner) {
+ var t1, _this = this;
+ _this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$attach(owner);
+ t1 = _this._painter;
+ if (t1 != null)
+ t1.addListener$1(0, _this.get$markNeedsPaint());
+ t1 = _this._foregroundPainter;
+ if (t1 != null)
+ t1.addListener$1(0, _this.get$markNeedsPaint());
+ },
+ detach$0: function(_) {
+ var _this = this,
+ t1 = _this._painter;
+ if (t1 != null)
+ t1.removeListener$1(0, _this.get$markNeedsPaint());
+ t1 = _this._foregroundPainter;
+ if (t1 != null)
+ t1.removeListener$1(0, _this.get$markNeedsPaint());
+ _this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$detach(0);
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t1 = this._foregroundPainter;
+ if (t1 != null) {
+ t1 = t1.hitTest$1(position);
+ t1 = t1 === true;
+ } else
+ t1 = false;
+ if (t1)
+ return true;
+ return this.super$RenderProxyBoxMixin$hitTestChildren(result, position);
+ },
+ hitTestSelf$1: function(position) {
+ var t1;
+ if (this._painter != null)
+ t1 = true;
+ else
+ t1 = false;
+ return t1;
+ },
+ performResize$0: function() {
+ var _this = this;
+ _this._size = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)).constrain$1(_this._preferredSize);
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ _paintWithPainter$3: function(canvas, offset, painter) {
+ var t1;
+ canvas.save$0(0);
+ if (!offset.$eq(0, C.Offset_0_0))
+ canvas.translate$2(0, offset._dx, offset._dy);
+ t1 = this._size;
+ t1.toString;
+ painter.paint$2(canvas, t1);
+ canvas.restore$0(0);
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, _this = this;
+ if (_this._painter != null) {
+ t1 = context.get$canvas(context);
+ t2 = _this._painter;
+ t2.toString;
+ _this._paintWithPainter$3(t1, offset, t2);
+ _this._setRasterCacheHints$1(context);
+ }
+ _this.super$RenderProxyBoxMixin$paint(context, offset);
+ if (_this._foregroundPainter != null) {
+ t1 = context.get$canvas(context);
+ t2 = _this._foregroundPainter;
+ t2.toString;
+ _this._paintWithPainter$3(t1, offset, t2);
+ _this._setRasterCacheHints$1(context);
+ }
+ },
+ _setRasterCacheHints$1: function(context) {
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ this.super$RenderObject$describeSemanticsConfiguration(config);
+ this._backgroundSemanticsBuilder = null;
+ this._foregroundSemanticsBuilder = null;
+ config._isSemanticBoundary = false;
+ },
+ assembleSemanticsNode$3: function(node, config, children) {
+ var t1, hasBackgroundSemantics, hasForegroundSemantics, t2, cur, _i, _this = this;
+ _this._backgroundSemanticsNodes = V.RenderCustomPaint__updateSemanticsChildren(_this._backgroundSemanticsNodes, C.List_empty8);
+ _this._foregroundSemanticsNodes = V.RenderCustomPaint__updateSemanticsChildren(_this._foregroundSemanticsNodes, C.List_empty8);
+ t1 = _this._backgroundSemanticsNodes;
+ hasBackgroundSemantics = t1 != null && !t1.get$isEmpty(t1);
+ t1 = _this._foregroundSemanticsNodes;
+ hasForegroundSemantics = t1 != null && !t1.get$isEmpty(t1);
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_SemanticsNode);
+ if (hasBackgroundSemantics)
+ for (t2 = _this._backgroundSemanticsNodes, t2 = new H.ListIterator(t2, t2.get$length(t2)); t2.moveNext$0();) {
+ cur = t2._current;
+ t1.push(cur);
+ }
+ for (t2 = children.length, _i = 0; _i < children.length; children.length === t2 || (0, H.throwConcurrentModificationError)(children), ++_i)
+ t1.push(children[_i]);
+ if (hasForegroundSemantics)
+ for (t2 = _this._foregroundSemanticsNodes, t2 = new H.ListIterator(t2, t2.get$length(t2)); t2.moveNext$0();) {
+ cur = t2._current;
+ t1.push(cur);
+ }
+ _this.super$RenderObject$assembleSemanticsNode(node, config, t1);
+ },
+ clearSemantics$0: function() {
+ this.super$RenderObject$clearSemantics();
+ this._foregroundSemanticsNodes = this._backgroundSemanticsNodes = null;
+ }
+ };
+ V.RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ if (t2._oldKeyedChildren_isSet)
+ throw H.wrapException(H.LateError$localAI("oldKeyedChildren"));
+ else {
+ t2._oldKeyedChildren_isSet = true;
+ return t2.oldKeyedChildren = t1;
+ }
+ },
+ $signature: 195
+ };
+ V.RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._oldKeyedChildren_isSet ? t1.oldKeyedChildren : H.throwExpression(H.LateError$localNI("oldKeyedChildren"));
+ },
+ $signature: 196
+ };
+ T.DebugOverflowIndicatorMixin.prototype = {};
+ D.SelectionChangedCause.prototype = {
+ toString$0: function(_) {
+ return this._editable$_name;
+ }
+ };
+ D.TextSelectionPoint.prototype = {
+ toString$0: function(_) {
+ var _this = this;
+ switch (_this.direction) {
+ case C.TextDirection_1:
+ return _this.point.toString$0(0) + "-ltr";
+ case C.TextDirection_0:
+ return _this.point.toString$0(0) + "-rtl";
+ case null:
+ return _this.point.toString$0(0);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ D.RenderEditable.prototype = {
+ set$textHeightBehavior: function(_, value) {
+ return;
+ },
+ set$textWidthBasis: function(value) {
+ var t1 = this._editable$_textPainter;
+ if (t1._textWidthBasis === value)
+ return;
+ t1.set$textWidthBasis(value);
+ this.markNeedsTextLayout$0();
+ },
+ set$devicePixelRatio: function(_, value) {
+ if (this._devicePixelRatio === value)
+ return;
+ this._devicePixelRatio = value;
+ this.markNeedsTextLayout$0();
+ },
+ set$obscuringCharacter: function(value) {
+ if (this._obscuringCharacter === value)
+ return;
+ this._obscuringCharacter = value;
+ this.markNeedsLayout$0();
+ },
+ set$obscureText: function(value) {
+ return;
+ },
+ _handleSelectionChange$2: function(nextSelection, cause) {
+ var _this = this,
+ focusingEmpty = nextSelection.baseOffset === 0 && nextSelection.extentOffset === 0 && !_this._editable$_hasFocus;
+ if (nextSelection.$eq(0, _this._selection) && cause !== C.SelectionChangedCause_4 && !focusingEmpty)
+ return;
+ _this.onSelectionChanged.call$3(nextSelection, _this, cause);
+ },
+ _editable$_handleKeyEvent$1: function(keyEvent) {
+ return;
+ },
+ markNeedsTextLayout$0: function() {
+ this._textLayoutLastMinWidth = this._textLayoutLastMaxWidth = null;
+ this.markNeedsLayout$0();
+ },
+ systemFontsDidChange$0: function() {
+ var _this = this;
+ _this.super$RelayoutWhenSystemFontsChangeMixin$systemFontsDidChange();
+ _this._editable$_textPainter.markNeedsLayout$0();
+ _this._textLayoutLastMinWidth = _this._textLayoutLastMaxWidth = null;
+ },
+ get$_editable$_plainText: function() {
+ var t1 = this._cachedPlainText;
+ return t1 == null ? this._cachedPlainText = this._editable$_textPainter._text_painter$_text.toPlainText$0() : t1;
+ },
+ set$text: function(_, value) {
+ var _this = this,
+ t1 = _this._editable$_textPainter;
+ if (J.$eq$(t1._text_painter$_text, value))
+ return;
+ t1.set$text(0, value);
+ _this._cachedPlainText = null;
+ _this.markNeedsTextLayout$0();
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$textAlign: function(_, value) {
+ var t1 = this._editable$_textPainter;
+ if (t1._text_painter$_textAlign === value)
+ return;
+ t1.set$textAlign(0, value);
+ this.markNeedsTextLayout$0();
+ },
+ set$textDirection: function(_, value) {
+ var t1 = this._editable$_textPainter;
+ if (t1._text_painter$_textDirection === value)
+ return;
+ t1.set$textDirection(0, value);
+ this.markNeedsTextLayout$0();
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$locale: function(_, value) {
+ var t1 = this._editable$_textPainter;
+ if (J.$eq$(t1._text_painter$_locale, value))
+ return;
+ t1.set$locale(0, value);
+ this.markNeedsTextLayout$0();
+ },
+ set$strutStyle: function(_, value) {
+ var t1 = this._editable$_textPainter;
+ if (J.$eq$(t1._text_painter$_strutStyle, value))
+ return;
+ t1.set$strutStyle(0, value);
+ this.markNeedsTextLayout$0();
+ },
+ set$cursorColor: function(value) {
+ if (this._cursorColor.$eq(0, value))
+ return;
+ this._cursorColor = value;
+ this.markNeedsPaint$0();
+ },
+ set$showCursor: function(value) {
+ var _this = this,
+ t1 = _this._showCursor;
+ if (t1 === value)
+ return;
+ if (_this._node$_owner != null)
+ t1.removeListener$1(0, _this.get$markNeedsPaint());
+ _this._showCursor = value;
+ if (_this._node$_owner != null) {
+ t1 = value.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(_this.get$markNeedsPaint()), false);
+ }
+ _this.markNeedsPaint$0();
+ },
+ set$hasFocus: function(value) {
+ var t1, _this = this;
+ if (_this._editable$_hasFocus === value)
+ return;
+ _this._editable$_hasFocus = value;
+ t1 = _this.get$_editable$_handleKeyEvent();
+ if (value) {
+ $.$get$RawKeyboard_instance()._listeners.push(t1);
+ _this._listenerAttached = true;
+ } else {
+ C.JSArray_methods.remove$1($.$get$RawKeyboard_instance()._listeners, t1);
+ _this._listenerAttached = false;
+ }
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$forceLine: function(value) {
+ if (this._forceLine)
+ return;
+ this._forceLine = true;
+ this.markNeedsLayout$0();
+ },
+ set$readOnly: function(_, value) {
+ if (this._readOnly === value)
+ return;
+ this._readOnly = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$maxLines: function(_, value) {
+ if (this._editable$_maxLines === value)
+ return;
+ this._editable$_maxLines = value;
+ this.markNeedsTextLayout$0();
+ },
+ set$minLines: function(value) {
+ return;
+ },
+ set$expands: function(value) {
+ return;
+ },
+ set$selectionColor: function(value) {
+ if (this._selectionColor.$eq(0, value))
+ return;
+ this._selectionColor = value;
+ this.markNeedsPaint$0();
+ },
+ set$textScaleFactor: function(value) {
+ var t1 = this._editable$_textPainter;
+ if (t1._textScaleFactor === value)
+ return;
+ t1.set$textScaleFactor(value);
+ this.markNeedsTextLayout$0();
+ },
+ set$selection: function(value) {
+ var _this = this;
+ if (_this._selection.$eq(0, value))
+ return;
+ _this._selection = value;
+ _this._selectionRects = null;
+ _this.markNeedsPaint$0();
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$offset: function(_, value) {
+ var _this = this,
+ t1 = _this._editable$_offset;
+ if (t1 == value)
+ return;
+ if (_this._node$_owner != null)
+ t1.removeListener$1(0, _this.get$markNeedsPaint());
+ _this._editable$_offset = value;
+ if (_this._node$_owner != null) {
+ t1 = value.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(_this.get$markNeedsPaint()), false);
+ }
+ _this.markNeedsLayout$0();
+ },
+ set$cursorWidth: function(value) {
+ if (this._cursorWidth === value)
+ return;
+ this._cursorWidth = value;
+ this.markNeedsLayout$0();
+ },
+ get$cursorHeight: function() {
+ var t1 = this._editable$_textPainter.get$preferredLineHeight();
+ return t1;
+ },
+ set$cursorHeight: function(value) {
+ return;
+ },
+ set$paintCursorAboveText: function(value) {
+ if (this._paintCursorOnTop === value)
+ return;
+ this._paintCursorOnTop = value;
+ this.markNeedsLayout$0();
+ },
+ set$cursorOffset: function(value) {
+ if (J.$eq$(this._cursorOffset, value))
+ return;
+ this._cursorOffset = value;
+ this.markNeedsLayout$0();
+ },
+ set$cursorRadius: function(value) {
+ if (J.$eq$(this._cursorRadius, value))
+ return;
+ this._cursorRadius = value;
+ this.markNeedsPaint$0();
+ },
+ set$startHandleLayerLink: function(value) {
+ if (this._editable$_startHandleLayerLink === value)
+ return;
+ this._editable$_startHandleLayerLink = value;
+ this.markNeedsPaint$0();
+ },
+ set$endHandleLayerLink: function(value) {
+ if (this._editable$_endHandleLayerLink === value)
+ return;
+ this._editable$_endHandleLayerLink = value;
+ this.markNeedsPaint$0();
+ },
+ set$selectionHeightStyle: function(value) {
+ if (this._selectionHeightStyle === value)
+ return;
+ this._selectionHeightStyle = value;
+ this.markNeedsPaint$0();
+ },
+ set$selectionWidthStyle: function(value) {
+ if (this._selectionWidthStyle === value)
+ return;
+ this._selectionWidthStyle = value;
+ this.markNeedsPaint$0();
+ },
+ get$selectionEnabled: function() {
+ return true;
+ },
+ set$promptRectColor: function(newValue) {
+ var t1, _this = this;
+ if (newValue == null) {
+ _this.setPromptRectRange$1(null);
+ return;
+ }
+ t1 = _this._promptRectPaint;
+ if (J.$eq$(t1.get$color(t1), newValue))
+ return;
+ t1.set$color(0, newValue);
+ if (_this._promptRectRange != null)
+ _this.markNeedsPaint$0();
+ },
+ setPromptRectRange$1: function(newRange) {
+ if (J.$eq$(this._promptRectRange, newRange))
+ return;
+ this._promptRectRange = newRange;
+ this.markNeedsPaint$0();
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ var t1, t2, _this = this;
+ _this.super$RenderObject$describeSemanticsConfiguration(config);
+ t1 = _this.get$_editable$_plainText();
+ config._semantics$_value = t1;
+ config._hasBeenAnnotated = true;
+ config._setFlag$2(C.SemanticsFlag_1024, false);
+ config._setFlag$2(C.SemanticsFlag_524288, _this._editable$_maxLines !== 1);
+ t1 = _this._editable$_textPainter;
+ t2 = t1._text_painter$_textDirection;
+ t2.toString;
+ config._semantics$_textDirection = t2;
+ config._hasBeenAnnotated = true;
+ config._setFlag$2(C.SemanticsFlag_32, _this._editable$_hasFocus);
+ config._setFlag$2(C.SemanticsFlag_16, true);
+ config._setFlag$2(C.SemanticsFlag_1048576, _this._readOnly);
+ if (_this._editable$_hasFocus && _this.get$selectionEnabled())
+ config.set$onSetSelection(_this.get$_handleSetSelection());
+ if (_this.get$selectionEnabled())
+ t2 = _this._selection.get$isValid();
+ else
+ t2 = false;
+ if (t2) {
+ t2 = _this._selection;
+ config._textSelection = t2;
+ config._hasBeenAnnotated = true;
+ if (t1.getOffsetBefore$1(t2.extentOffset) != null) {
+ config.set$onMoveCursorBackwardByWord(_this.get$_handleMoveCursorBackwardByWord());
+ config.set$onMoveCursorBackwardByCharacter(_this.get$_handleMoveCursorBackwardByCharacter());
+ }
+ if (t1.getOffsetAfter$1(_this._selection.extentOffset) != null) {
+ config.set$onMoveCursorForwardByWord(_this.get$_handleMoveCursorForwardByWord());
+ config.set$onMoveCursorForwardByCharacter(_this.get$_handleMoveCursorForwardByCharacter());
+ }
+ }
+ },
+ _handleSetSelection$1: function(selection) {
+ this._handleSelectionChange$2(selection, C.SelectionChangedCause_4);
+ },
+ _handleMoveCursorForwardByCharacter$1: function(extentSelection) {
+ var _this = this,
+ extentOffset = _this._editable$_textPainter.getOffsetAfter$1(_this._selection.extentOffset);
+ if (extentOffset == null)
+ return;
+ _this._handleSelectionChange$2(X.TextSelection$(C.TextAffinity_1, !extentSelection ? extentOffset : _this._selection.baseOffset, extentOffset, false), C.SelectionChangedCause_4);
+ },
+ _handleMoveCursorBackwardByCharacter$1: function(extentSelection) {
+ var _this = this,
+ extentOffset = _this._editable$_textPainter.getOffsetBefore$1(_this._selection.extentOffset);
+ if (extentOffset == null)
+ return;
+ _this._handleSelectionChange$2(X.TextSelection$(C.TextAffinity_1, !extentSelection ? extentOffset : _this._selection.baseOffset, extentOffset, false), C.SelectionChangedCause_4);
+ },
+ _handleMoveCursorForwardByWord$1: function(extentSelection) {
+ var baseOffset, _this = this,
+ t1 = _this._selection,
+ nextWord = _this._getNextWord$1(_this._editable$_textPainter._text_painter$_paragraph.getWordBoundary$1(0, new P.TextPosition(t1.extentOffset, t1.affinity)).end);
+ if (nextWord == null)
+ return;
+ baseOffset = extentSelection ? _this._selection.baseOffset : nextWord.start;
+ _this._handleSelectionChange$2(X.TextSelection$(C.TextAffinity_1, baseOffset, nextWord.start, false), C.SelectionChangedCause_4);
+ },
+ _handleMoveCursorBackwardByWord$1: function(extentSelection) {
+ var baseOffset, _this = this,
+ t1 = _this._selection,
+ previousWord = _this._getPreviousWord$1(_this._editable$_textPainter._text_painter$_paragraph.getWordBoundary$1(0, new P.TextPosition(t1.extentOffset, t1.affinity)).start - 1);
+ if (previousWord == null)
+ return;
+ baseOffset = extentSelection ? _this._selection.baseOffset : previousWord.start;
+ _this._handleSelectionChange$2(X.TextSelection$(C.TextAffinity_1, baseOffset, previousWord.start, false), C.SelectionChangedCause_4);
+ },
+ _getNextWord$1: function(offset) {
+ var t1, range, t2;
+ for (t1 = this._editable$_textPainter; true;) {
+ range = t1._text_painter$_paragraph.getWordBoundary$1(0, new P.TextPosition(offset, C.TextAffinity_1));
+ t2 = range.start;
+ t2 = !(t2 >= 0 && range.end >= 0) || t2 === range.end;
+ if (t2)
+ return null;
+ if (!this._onlyWhitespace$1(range))
+ return range;
+ offset = range.end;
+ }
+ },
+ _getPreviousWord$1: function(offset) {
+ var t1, range, t2;
+ for (t1 = this._editable$_textPainter; offset >= 0;) {
+ range = t1._text_painter$_paragraph.getWordBoundary$1(0, new P.TextPosition(offset, C.TextAffinity_1));
+ t2 = range.start;
+ t2 = !(t2 >= 0 && range.end >= 0) || t2 === range.end;
+ if (t2)
+ return null;
+ if (!this._onlyWhitespace$1(range))
+ return range;
+ offset = range.start - 1;
+ }
+ return null;
+ },
+ _onlyWhitespace$1: function(range) {
+ var i, t1, t2, t3;
+ for (i = range.start, t1 = range.end, t2 = this._editable$_textPainter; i < t1; ++i) {
+ t3 = t2._text_painter$_text.codeUnitAt$1(0, i);
+ t3.toString;
+ if (!D._isWhitespace(t3))
+ return false;
+ }
+ return true;
+ },
+ attach$1: function(owner) {
+ var t1, t2, _this = this;
+ _this.super$_RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin$attach(owner);
+ t1 = N.TapGestureRecognizer$(_this);
+ t1.onTapDown = _this.get$_editable$_handleTapDown();
+ t1.onTap = _this.get$_editable$_handleTap();
+ _this.__RenderEditable__tap_isSet = true;
+ _this.__RenderEditable__tap = t1;
+ t1 = T.LongPressGestureRecognizer$(_this, null);
+ t1.onLongPress = _this.get$_editable$_handleLongPress();
+ _this.__RenderEditable__longPress_isSet = true;
+ _this.__RenderEditable__longPress = t1;
+ t1 = _this.get$markNeedsPaint();
+ t2 = _this._editable$_offset.ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(t1), false);
+ t2 = _this._showCursor.ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(t1), false);
+ },
+ detach$0: function(_) {
+ var _this = this,
+ t1 = _this.get$_tap();
+ t1._stopTimer$0();
+ t1.super$OneSequenceGestureRecognizer$dispose(0);
+ t1 = _this.get$_longPress();
+ t1._stopTimer$0();
+ t1.super$OneSequenceGestureRecognizer$dispose(0);
+ t1 = _this.get$markNeedsPaint();
+ _this._editable$_offset.removeListener$1(0, t1);
+ _this._showCursor.removeListener$1(0, t1);
+ if (_this._listenerAttached)
+ C.JSArray_methods.remove$1($.$get$RawKeyboard_instance()._listeners, _this.get$_editable$_handleKeyEvent());
+ _this.super$_RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin$detach(0);
+ },
+ get$_editable$_paintOffset: function() {
+ switch (this._editable$_maxLines !== 1 ? C.Axis_1 : C.Axis_0) {
+ case C.Axis_0:
+ var t1 = this._editable$_offset._pixels;
+ t1.toString;
+ return new P.Offset(-t1, 0);
+ case C.Axis_1:
+ t1 = this._editable$_offset._pixels;
+ t1.toString;
+ return new P.Offset(0, -t1);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$_viewportExtent: function() {
+ switch (this._editable$_maxLines !== 1 ? C.Axis_1 : C.Axis_0) {
+ case C.Axis_0:
+ return this._size._dx;
+ case C.Axis_1:
+ return this._size._dy;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _getMaxScrollExtent$1: function(contentSize) {
+ switch (this._editable$_maxLines !== 1 ? C.Axis_1 : C.Axis_0) {
+ case C.Axis_0:
+ return Math.max(0, contentSize._dx - this._size._dx);
+ case C.Axis_1:
+ return Math.max(0, contentSize._dy - this._size._dy);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$_hasVisualOverflow: function() {
+ return this._editable$_maxScrollExtent > 0 || !this.get$_editable$_paintOffset().$eq(0, C.Offset_0_0);
+ },
+ getEndpointsForSelection$1: function(selection) {
+ var paintOffset, boxes, caretOffset, start, end, _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ paintOffset = _this.get$_editable$_paintOffset();
+ boxes = selection.start == selection.end ? H.setRuntimeTypeInfo([], type$.JSArray_TextBox) : _this._editable$_textPainter.getBoxesForSelection$1(selection);
+ t1 = type$.JSArray_TextSelectionPoint;
+ if (boxes.length === 0) {
+ t2 = _this._editable$_textPainter;
+ t2._computeCaretMetrics$2(new P.TextPosition(selection.extentOffset, selection.affinity), _this.get$_caretPrototype());
+ caretOffset = t2.get$_caretMetrics().offset;
+ return H.setRuntimeTypeInfo([new D.TextSelectionPoint(new P.Offset(0, t2.get$preferredLineHeight()).$add(0, caretOffset).$add(0, paintOffset), null)], t1);
+ } else {
+ t2 = C.JSArray_methods.get$first(boxes);
+ start = new P.Offset(t2.get$start(t2), C.JSArray_methods.get$first(boxes).bottom).$add(0, paintOffset);
+ t2 = C.JSArray_methods.get$last(boxes);
+ end = new P.Offset(t2.get$end(t2), C.JSArray_methods.get$last(boxes).bottom).$add(0, paintOffset);
+ return H.setRuntimeTypeInfo([new D.TextSelectionPoint(start, C.JSArray_methods.get$first(boxes).direction), new D.TextSelectionPoint(end, C.JSArray_methods.get$last(boxes).direction)], t1);
+ }
+ },
+ getRectForComposingRange$1: function(range) {
+ var t1, t2, _this = this;
+ if (!range.get$isValid() || range.start == range.end)
+ return null;
+ t1 = type$.BoxConstraints;
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ t2 = C.JSArray_methods.fold$2(_this._editable$_textPainter.getBoxesForSelection$1(X.TextSelection$(C.TextAffinity_1, range.start, range.end, false)), null, new D.RenderEditable_getRectForComposingRange_closure());
+ return t2 == null ? null : t2.shift$1(_this.get$_editable$_paintOffset());
+ },
+ getPositionForPoint$1: function(globalPosition) {
+ var _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ t2 = _this.get$_editable$_paintOffset();
+ t2 = _this.globalToLocal$1(globalPosition.$add(0, new P.Offset(-t2._dx, -t2._dy)));
+ return _this._editable$_textPainter._text_painter$_paragraph.getPositionForOffset$1(t2);
+ },
+ getLocalRectForCaret$1: function(caretPosition) {
+ var caretOffset, rect, _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ t2 = _this._editable$_textPainter;
+ t2._computeCaretMetrics$2(caretPosition, _this.get$_caretPrototype());
+ caretOffset = t2.get$_caretMetrics().offset;
+ rect = new P.Rect(0, 0, _this._cursorWidth, 0 + _this.get$cursorHeight()).shift$1(caretOffset.$add(0, _this.get$_editable$_paintOffset()));
+ t1 = _this._cursorOffset;
+ if (t1 != null)
+ rect = rect.shift$1(t1);
+ return rect.shift$1(_this._getPixelPerfectCursorOffset$1(rect));
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t1;
+ this._editable$_layoutText$1$maxWidth(1 / 0);
+ t1 = this._editable$_textPainter._text_painter$_paragraph.get$minIntrinsicWidth();
+ t1.toString;
+ return Math.ceil(t1);
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t1;
+ this._editable$_layoutText$1$maxWidth(1 / 0);
+ t1 = this._editable$_textPainter._text_painter$_paragraph.get$maxIntrinsicWidth();
+ t1.toString;
+ return Math.ceil(t1) + this._cursorWidth;
+ },
+ _preferredHeight$1: function(width) {
+ var t1, t2, text, lines, index, _this = this;
+ _this._editable$_maxLines !== 1;
+ return _this._editable$_textPainter.get$preferredLineHeight() * _this._editable$_maxLines;
+ _this._editable$_layoutText$1$maxWidth(width);
+ t1 = _this._editable$_textPainter;
+ t2 = t1._text_painter$_paragraph;
+ t2 = t2.get$height(t2);
+ t2.toString;
+ t2 = Math.ceil(t2) > t1.get$preferredLineHeight() * _this._editable$_maxLines;
+ if (t2)
+ return t1.get$preferredLineHeight() * _this._editable$_maxLines;
+ if (width === 1 / 0) {
+ text = _this.get$_editable$_plainText();
+ for (t1 = text.length, lines = 1, index = 0; index < t1; ++index)
+ if (C.JSString_methods._codeUnitAt$1(text, index) === 10)
+ ++lines;
+ return _this._editable$_textPainter.get$preferredLineHeight() * lines;
+ }
+ _this._editable$_layoutText$1$maxWidth(width);
+ t1 = _this._editable$_textPainter;
+ t2 = t1.get$preferredLineHeight();
+ t1 = t1._text_painter$_paragraph;
+ t1 = t1.get$height(t1);
+ t1.toString;
+ t1 = Math.ceil(t1);
+ return Math.max(H.checkNum(t2), t1);
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return this._preferredHeight$1(width);
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return this._preferredHeight$1(width);
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ return _this._editable$_textPainter.computeDistanceToActualBaseline$1(baseline);
+ },
+ hitTestSelf$1: function(position) {
+ return true;
+ },
+ get$_tap: function() {
+ return this.__RenderEditable__tap_isSet ? this.__RenderEditable__tap : H.throwExpression(H.LateError$fieldNI("_tap"));
+ },
+ get$_longPress: function() {
+ return this.__RenderEditable__longPress_isSet ? this.__RenderEditable__longPress : H.throwExpression(H.LateError$fieldNI("_longPress"));
+ },
+ handleEvent$2: function($event, entry) {
+ var t1, position, span;
+ if (type$.PointerDownEvent._is($event)) {
+ t1 = this._editable$_textPainter;
+ position = t1._text_painter$_paragraph.getPositionForOffset$1(entry.localPosition);
+ span = t1._text_painter$_text.getSpanForPosition$1(position);
+ if (span != null && true)
+ span.toString;
+ }
+ },
+ _editable$_handleTapDown$1: function(details) {
+ this._lastTapDownPosition = details.globalPosition;
+ },
+ _editable$_handleTap$0: function() {
+ var t1 = this._lastTapDownPosition;
+ t1.toString;
+ this.selectPositionAt$2$cause$from(C.SelectionChangedCause_0, t1);
+ },
+ _editable$_handleLongPress$0: function() {
+ var t1 = this._lastTapDownPosition;
+ t1.toString;
+ this.selectWordsInRange$2$cause$from(C.SelectionChangedCause_2, t1);
+ },
+ selectPositionAt$3$cause$from$to: function(cause, from, to) {
+ var fromPosition, toPosition, baseOffset, baseOffset0, extentOffset, _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ t1 = _this._editable$_textPainter;
+ t2 = _this.globalToLocal$1(from.$sub(0, _this.get$_editable$_paintOffset()));
+ fromPosition = t1._text_painter$_paragraph.getPositionForOffset$1(t2);
+ if (to == null)
+ toPosition = null;
+ else {
+ t2 = _this.globalToLocal$1(to.$sub(0, _this.get$_editable$_paintOffset()));
+ toPosition = t1._text_painter$_paragraph.getPositionForOffset$1(t2);
+ }
+ baseOffset = fromPosition.offset;
+ if (toPosition != null) {
+ t1 = toPosition.offset;
+ baseOffset0 = Math.min(H.checkNum(baseOffset), H.checkNum(t1));
+ extentOffset = Math.max(H.checkNum(baseOffset), H.checkNum(t1));
+ baseOffset = baseOffset0;
+ } else
+ extentOffset = baseOffset;
+ _this._handleSelectionChange$2(X.TextSelection$(fromPosition.affinity, baseOffset, extentOffset, false), cause);
+ },
+ selectPositionAt$2$cause$from: function(cause, from) {
+ return this.selectPositionAt$3$cause$from$to(cause, from, null);
+ },
+ selectWordsInRange$3$cause$from$to: function(cause, from, to) {
+ var firstWord, lastWord, _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ t1 = _this._editable$_textPainter;
+ t2 = _this.globalToLocal$1(from.$sub(0, _this.get$_editable$_paintOffset()));
+ firstWord = _this._selectWordAtOffset$1(t1._text_painter$_paragraph.getPositionForOffset$1(t2));
+ if (to == null)
+ lastWord = firstWord;
+ else {
+ t2 = _this.globalToLocal$1(to.$sub(0, _this.get$_editable$_paintOffset()));
+ lastWord = _this._selectWordAtOffset$1(t1._text_painter$_paragraph.getPositionForOffset$1(t2));
+ }
+ _this._handleSelectionChange$2(X.TextSelection$(firstWord.affinity, firstWord.baseOffset, lastWord.extentOffset, false), cause);
+ },
+ selectWordsInRange$2$cause$from: function(cause, from) {
+ return this.selectWordsInRange$3$cause$from$to(cause, from, null);
+ },
+ selectWordEdge$1$cause: function(cause) {
+ var position, word, _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ t1 = _this._editable$_textPainter;
+ t2 = _this._lastTapDownPosition;
+ t2.toString;
+ t2 = _this.globalToLocal$1(t2.$sub(0, _this.get$_editable$_paintOffset()));
+ position = t1._text_painter$_paragraph.getPositionForOffset$1(t2);
+ word = t1._text_painter$_paragraph.getWordBoundary$1(0, position);
+ t1 = word.start;
+ if (position.offset - t1 <= 1)
+ _this._handleSelectionChange$2(X.TextSelection$collapsed(C.TextAffinity_1, t1), cause);
+ else
+ _this._handleSelectionChange$2(X.TextSelection$collapsed(C.TextAffinity_0, word.end), cause);
+ },
+ _selectWordAtOffset$1: function(position) {
+ var t4, startIndex, t5,
+ t1 = this._editable$_textPainter,
+ word = t1._text_painter$_paragraph.getWordBoundary$1(0, position),
+ t2 = position.offset,
+ t3 = word.end;
+ if (t2 >= t3)
+ return X.TextSelection$fromPosition(position);
+ t4 = t1._text_painter$_text;
+ if ((t4 == null ? null : t4.text) != null) {
+ t4 = t4.text;
+ t4.toString;
+ t4 = D._isWhitespace(C.JSString_methods.codeUnitAt$1(t4, t2)) && t2 > 0;
+ } else
+ t4 = false;
+ if (t4)
+ switch (U.defaultTargetPlatform()) {
+ case C.TargetPlatform_2:
+ startIndex = t2 - 1;
+ t3 = t1._text_painter$_text;
+ while (true) {
+ t4 = startIndex > 0;
+ if (t4) {
+ t5 = t3.text;
+ t5.toString;
+ t5 = D._isWhitespace(C.JSString_methods.codeUnitAt$1(t5, startIndex)) || t5 === "\u200e" || t5 === "\u200f";
+ } else
+ t5 = false;
+ if (!t5)
+ break;
+ --startIndex;
+ }
+ return X.TextSelection$(C.TextAffinity_1, t4 ? t1._text_painter$_paragraph.getWordBoundary$1(0, new P.TextPosition(startIndex, position.affinity)).start : startIndex, t2, false);
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return X.TextSelection$(C.TextAffinity_1, word.start, t3, false);
+ },
+ _editable$_layoutText$2$maxWidth$minWidth: function(maxWidth, minWidth) {
+ var availableMaxWidth, availableMinWidth, textMaxWidth, textMinWidth, _this = this;
+ if (_this._textLayoutLastMaxWidth == maxWidth && _this._textLayoutLastMinWidth == minWidth)
+ return;
+ availableMaxWidth = Math.max(0, maxWidth - (1 + _this._cursorWidth));
+ availableMinWidth = Math.min(H.checkNum(minWidth), availableMaxWidth);
+ textMaxWidth = _this._editable$_maxLines !== 1 ? availableMaxWidth : 1 / 0;
+ textMinWidth = _this._forceLine ? availableMaxWidth : availableMinWidth;
+ _this._editable$_textPainter.layout$2$maxWidth$minWidth(0, textMaxWidth, textMinWidth);
+ _this._textLayoutLastMinWidth = minWidth;
+ _this._textLayoutLastMaxWidth = maxWidth;
+ },
+ _editable$_layoutText$1$maxWidth: function(maxWidth) {
+ return this._editable$_layoutText$2$maxWidth$minWidth(maxWidth, 0);
+ },
+ get$_caretPrototype: function() {
+ return this.__RenderEditable__caretPrototype_isSet ? this.__RenderEditable__caretPrototype : H.throwExpression(H.LateError$fieldNI("_caretPrototype"));
+ },
+ performLayout$0: function() {
+ var t2, t3, t4, width0, t5, _this = this,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)),
+ t1 = constraints.minWidth,
+ width = constraints.maxWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(width, t1);
+ switch (U.defaultTargetPlatform()) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ t2 = _this._cursorWidth;
+ t3 = _this.get$cursorHeight();
+ _this.__RenderEditable__caretPrototype_isSet = true;
+ _this.__RenderEditable__caretPrototype = new P.Rect(0, 0, t2, 0 + (t3 + 2));
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ t2 = _this._cursorWidth;
+ t3 = _this.get$cursorHeight();
+ _this.__RenderEditable__caretPrototype_isSet = true;
+ _this.__RenderEditable__caretPrototype = new P.Rect(0, 2, t2, 2 + (t3 - 4));
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ }
+ _this._selectionRects = null;
+ t2 = _this._editable$_textPainter;
+ t3 = t2.get$width(t2);
+ t4 = t2._text_painter$_paragraph;
+ t4 = t4.get$height(t4);
+ t4.toString;
+ t4 = Math.ceil(t4);
+ if (_this._forceLine)
+ width0 = width;
+ else {
+ t5 = t2.get$width(t2);
+ t2 = t2._text_painter$_paragraph;
+ t2 = t2.get$height(t2);
+ t2.toString;
+ Math.ceil(t2);
+ width0 = C.JSNumber_methods.clamp$2(t5 + (1 + _this._cursorWidth), t1, width);
+ }
+ _this._size = new P.Size(width0, C.JSNumber_methods.clamp$2(_this._preferredHeight$1(width), constraints.minHeight, constraints.maxHeight));
+ _this._editable$_maxScrollExtent = _this._getMaxScrollExtent$1(new P.Size(t3 + (1 + _this._cursorWidth), t4));
+ _this._editable$_offset.applyViewportDimension$1(_this.get$_viewportExtent());
+ _this._editable$_offset.applyContentDimensions$2(0, _this._editable$_maxScrollExtent);
+ },
+ _getPixelPerfectCursorOffset$1: function(caretRect) {
+ var pixelPerfectOffsetX,
+ caretPosition = T.MatrixUtils_transformPoint(this.getTransformTo$1(0, null), new P.Offset(caretRect.left, caretRect.top)),
+ pixelMultiple = 1 / this._devicePixelRatio,
+ t1 = caretPosition._dx;
+ t1.toString;
+ pixelPerfectOffsetX = isFinite(t1) ? C.JSDouble_methods.round$0(t1 / pixelMultiple) * pixelMultiple - t1 : 0;
+ t1 = caretPosition._dy;
+ t1.toString;
+ return new P.Offset(pixelPerfectOffsetX, isFinite(t1) ? C.JSDouble_methods.round$0(t1 / pixelMultiple) * pixelMultiple - t1 : 0);
+ },
+ _paintCaret$3: function(canvas, effectiveOffset, textPosition) {
+ var t1, caretOffset, caretRect, t2, caretHeight, t3, _this = this,
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$color(0, _this._floatingCursorOn ? _this._backgroundCursorColor : _this._cursorColor);
+ t1 = _this._editable$_textPainter;
+ t1._computeCaretMetrics$2(textPosition, _this.get$_caretPrototype());
+ caretOffset = t1.get$_caretMetrics().offset.$add(0, effectiveOffset);
+ caretRect = _this.get$_caretPrototype().shift$1(caretOffset);
+ t2 = _this._cursorOffset;
+ if (t2 != null)
+ caretRect = caretRect.shift$1(t2);
+ t1._computeCaretMetrics$2(textPosition, _this.get$_caretPrototype());
+ caretHeight = t1.get$_caretMetrics().fullHeight;
+ if (caretHeight != null)
+ switch (U.defaultTargetPlatform()) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ t1 = caretRect.top;
+ t2 = caretRect.bottom - t1;
+ t3 = caretRect.left;
+ t1 += (caretHeight - t2) / 2;
+ caretRect = new P.Rect(t3, t1, t3 + (caretRect.right - t3), t1 + t2);
+ break;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ t1 = caretRect.left;
+ t2 = caretRect.top - 2;
+ caretRect = new P.Rect(t1, t2, t1 + (caretRect.right - t1), t2 + caretHeight);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ caretRect = caretRect.shift$1(_this._getPixelPerfectCursorOffset$1(caretRect));
+ t1 = _this._cursorRadius;
+ if (t1 == null)
+ canvas.drawRect$2(0, caretRect, paint);
+ else
+ canvas.drawRRect$2(0, P.RRect$fromRectAndRadius(caretRect, t1), paint);
+ if (!caretRect.$eq(0, _this._lastCaretRect)) {
+ _this._lastCaretRect = caretRect;
+ _this.onCaretChanged.call$1(caretRect);
+ }
+ },
+ setFloatingCursor$4$resetLerpValue: function(state, boundedOffset, lastTextPosition, resetLerpValue) {
+ var t1, _this = this;
+ if (state === C.FloatingCursorDragState_0) {
+ _this._relativeOrigin = C.Offset_0_0;
+ _this._previousOffset = null;
+ _this._resetOriginOnRight = _this._resetOriginOnTop = _this._resetOriginOnBottom = false;
+ }
+ t1 = state !== C.FloatingCursorDragState_2;
+ _this._floatingCursorOn = t1;
+ _this._resetFloatingCursorAnimationValue = resetLerpValue;
+ if (t1) {
+ _this.__RenderEditable__floatingCursorOffset_isSet = true;
+ _this.__RenderEditable__floatingCursorOffset = boundedOffset;
+ _this.__RenderEditable__floatingCursorTextPosition_isSet = true;
+ _this.__RenderEditable__floatingCursorTextPosition = lastTextPosition;
+ }
+ _this.markNeedsPaint$0();
+ },
+ setFloatingCursor$3: function(state, boundedOffset, lastTextPosition) {
+ return this.setFloatingCursor$4$resetLerpValue(state, boundedOffset, lastTextPosition, null);
+ },
+ _paintSelection$2: function(canvas, effectiveOffset) {
+ var t1, t2, _i, box,
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$color(0, this._selectionColor);
+ for (t1 = this._selectionRects, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ box = t1[_i];
+ canvas.drawRect$2(0, new P.Rect(box.left, box.top, box.right, box.bottom).shift$1(effectiveOffset), paint);
+ }
+ },
+ _paintPromptRectIfNeeded$2: function(canvas, effectiveOffset) {
+ var t1, boxes, t2, _i, box, _this = this;
+ if (_this._promptRectRange != null) {
+ t1 = _this._promptRectPaint;
+ t1 = t1.get$color(t1) == null;
+ } else
+ t1 = true;
+ if (t1)
+ return;
+ t1 = _this._promptRectRange;
+ boxes = _this._editable$_textPainter.getBoxesForSelection$1(X.TextSelection$(C.TextAffinity_1, t1.start, t1.end, false));
+ for (t1 = boxes.length, t2 = _this._promptRectPaint, _i = 0; _i < boxes.length; boxes.length === t1 || (0, H.throwConcurrentModificationError)(boxes), ++_i) {
+ box = boxes[_i];
+ canvas.drawRect$2(0, new P.Rect(box.left, box.top, box.right, box.bottom).shift$1(effectiveOffset), t2);
+ }
+ },
+ _paintContents$2: function(context, offset) {
+ var t2, t3, showSelection, showCaret, visibleRegion, startOffset, endOffset, paint, t4, sizeAdjustmentY, sizeAdjustmentX, _this = this,
+ effectiveOffset = offset.$add(0, _this.get$_editable$_paintOffset()),
+ t1 = _this._floatingCursorOn;
+ if (!t1) {
+ t1 = _this._selection;
+ t2 = t1.start;
+ t3 = t2 == t1.end;
+ if (t3 && _this._showCursor._change_notifier$_value && true) {
+ showSelection = false;
+ showCaret = true;
+ } else {
+ showSelection = !t3 && true && true;
+ showCaret = false;
+ }
+ t3 = _this._size;
+ visibleRegion = new P.Rect(0, 0, 0 + t3._dx, 0 + t3._dy);
+ t3 = _this._editable$_textPainter;
+ t3._computeCaretMetrics$2(new P.TextPosition(t2, t1.affinity), _this.get$_caretPrototype());
+ startOffset = t3.get$_caretMetrics().offset;
+ _this._selectionStartInViewport.set$value(0, visibleRegion.inflate$1(0.5).contains$1(0, startOffset.$add(0, effectiveOffset)));
+ t1 = _this._selection;
+ t3._computeCaretMetrics$2(new P.TextPosition(t1.end, t1.affinity), _this.get$_caretPrototype());
+ endOffset = t3.get$_caretMetrics().offset;
+ _this._selectionEndInViewport.set$value(0, visibleRegion.inflate$1(0.5).contains$1(0, endOffset.$add(0, effectiveOffset)));
+ } else {
+ showSelection = false;
+ showCaret = false;
+ }
+ if (showSelection) {
+ if (_this._selectionRects == null)
+ _this._selectionRects = _this._editable$_textPainter.getBoxesForSelection$3$boxHeightStyle$boxWidthStyle(_this._selection, _this._selectionHeightStyle, _this._selectionWidthStyle);
+ _this._paintSelection$2(context.get$canvas(context), effectiveOffset);
+ }
+ _this._paintPromptRectIfNeeded$2(context.get$canvas(context), effectiveOffset);
+ if (_this._paintCursorOnTop) {
+ t1 = context.get$canvas(context);
+ t2 = _this._editable$_textPainter._text_painter$_paragraph;
+ t2.toString;
+ t1.drawParagraph$2(0, t2, effectiveOffset);
+ }
+ if (showCaret) {
+ t1 = context.get$canvas(context);
+ t2 = _this._selection;
+ _this._paintCaret$3(t1, effectiveOffset, new P.TextPosition(t2.extentOffset, t2.affinity));
+ }
+ if (!_this._paintCursorOnTop) {
+ t1 = context.get$canvas(context);
+ t2 = _this._editable$_textPainter._text_painter$_paragraph;
+ t2.toString;
+ t1.drawParagraph$2(0, t2, effectiveOffset);
+ }
+ if (_this._floatingCursorOn) {
+ if (_this._resetFloatingCursorAnimationValue == null) {
+ t1 = context.get$canvas(context);
+ _this._paintCaret$3(t1, effectiveOffset, _this.__RenderEditable__floatingCursorTextPosition_isSet ? _this.__RenderEditable__floatingCursorTextPosition : H.throwExpression(H.LateError$fieldNI("_floatingCursorTextPosition")));
+ }
+ t1 = context.get$canvas(context);
+ t2 = _this.__RenderEditable__floatingCursorOffset_isSet ? _this.__RenderEditable__floatingCursorOffset : H.throwExpression(H.LateError$fieldNI("_floatingCursorOffset"));
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ t3 = _this._cursorColor.value;
+ paint.set$color(0, P.Color$fromARGB(191, t3 >>> 16 & 255, t3 >>> 8 & 255, t3 & 255));
+ t3 = _this._resetFloatingCursorAnimationValue;
+ if (t3 != null) {
+ t4 = P.lerpDouble(0.5, 0, t3);
+ t4.toString;
+ t3 = P.lerpDouble(1, 0, t3);
+ t3.toString;
+ sizeAdjustmentY = t3;
+ sizeAdjustmentX = t4;
+ } else {
+ sizeAdjustmentX = 0.5;
+ sizeAdjustmentY = 1;
+ }
+ t1.drawRRect$2(0, P.RRect$fromRectAndRadius(new P.Rect(_this.get$_caretPrototype().left - sizeAdjustmentX, _this.get$_caretPrototype().top - sizeAdjustmentY, _this.get$_caretPrototype().right + sizeAdjustmentX, _this.get$_caretPrototype().bottom + sizeAdjustmentY).shift$1(t2), C.Radius_1_1), paint);
+ }
+ },
+ paint$2: function(context, offset) {
+ var startPoint, t3, endPoint, _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this)).minWidth;
+ _this._editable$_layoutText$2$maxWidth$minWidth(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth, t2);
+ if (_this.get$_hasVisualOverflow() && _this._editable$_clipBehavior !== C.Clip_0) {
+ t1 = _this.get$_needsCompositing();
+ t2 = _this._size;
+ _this._clipRectLayer = context.pushClipRect$6$clipBehavior$oldLayer(t1, offset, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy), _this.get$_paintContents(), _this._editable$_clipBehavior, _this._clipRectLayer);
+ } else {
+ _this._clipRectLayer = null;
+ _this._paintContents$2(context, offset);
+ }
+ t1 = _this.getEndpointsForSelection$1(_this._selection);
+ startPoint = t1[0].point;
+ t2 = J.clamp$2$n(startPoint._dx, 0, _this._size._dx);
+ t3 = J.clamp$2$n(startPoint._dy, 0, _this._size._dy);
+ context.pushLayer$3(new T.LeaderLayer(_this._editable$_startHandleLayerLink, new P.Offset(t2, t3)), K.RenderObject.prototype.get$paint.call(_this), C.Offset_0_0);
+ if (t1.length === 2) {
+ endPoint = t1[1].point;
+ t1 = J.clamp$2$n(endPoint._dx, 0, _this._size._dx);
+ t2 = J.clamp$2$n(endPoint._dy, 0, _this._size._dy);
+ context.pushLayer$3(new T.LeaderLayer(_this._editable$_endHandleLayerLink, new P.Offset(t1, t2)), K.RenderObject.prototype.get$paint.call(_this), C.Offset_0_0);
+ }
+ },
+ describeApproximatePaintClip$1: function(child) {
+ var t1;
+ if (this.get$_hasVisualOverflow()) {
+ t1 = this._size;
+ t1 = new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ } else
+ t1 = null;
+ return t1;
+ },
+ debugDescribeChildren$0: function() {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode),
+ t2 = this._editable$_textPainter._text_painter$_text;
+ if (t2 != null)
+ t1.push(Y.DiagnosticableTreeNode$("text", C.DiagnosticsTreeStyle_4, t2));
+ return t1;
+ }
+ };
+ D.RenderEditable_getRectForComposingRange_closure.prototype = {
+ call$2: function(accum, incoming) {
+ var t1 = accum == null ? null : accum.expandToInclude$1(new P.Rect(incoming.left, incoming.top, incoming.right, incoming.bottom));
+ return t1 == null ? new P.Rect(incoming.left, incoming.top, incoming.right, incoming.bottom) : t1;
+ },
+ $signature: 199
+ };
+ D._RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin.prototype = {
+ attach$1: function(owner) {
+ this.super$RenderObject$attach(owner);
+ $.PaintingBinding__instance.PaintingBinding__systemFonts._systemFontsCallbacks.add$1(0, this.get$systemFontsDidChange());
+ },
+ detach$0: function(_) {
+ $.PaintingBinding__instance.PaintingBinding__systemFonts._systemFontsCallbacks.remove$1(0, this.get$systemFontsDidChange());
+ this.super$AbstractNode$detach(0);
+ }
+ };
+ V.RenderErrorBox.prototype = {
+ RenderErrorBox$1: function(message) {
+ var builder, t1, exception;
+ try {
+ t1 = this.message;
+ if (t1 !== "") {
+ builder = P.ParagraphBuilder_ParagraphBuilder($.$get$RenderErrorBox_paragraphStyle());
+ J.pushStyle$1$x(builder, $.$get$RenderErrorBox_textStyle());
+ J.addText$1$x(builder, t1);
+ this._paragraph = J.build$0$x(builder);
+ } else
+ this._paragraph = null;
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ return 100000;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return 100000;
+ },
+ get$sizedByParent: function() {
+ return true;
+ },
+ hitTestSelf$1: function(position) {
+ return true;
+ },
+ performResize$0: function() {
+ this._size = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this)).constrain$1(C.Size_100000_100000);
+ },
+ paint$2: function(context, offset) {
+ var width, left, $top, t1, t2, t3, t4, t5, t6, exception, _this = this;
+ try {
+ t1 = context.get$canvas(context);
+ t2 = _this._size;
+ t3 = offset._dx;
+ t4 = offset._dy;
+ t5 = t2._dx;
+ t2 = t2._dy;
+ t6 = new H.SurfacePaint(new H.SurfacePaintData());
+ t6.set$color(0, $.$get$RenderErrorBox_backgroundColor());
+ t1.drawRect$2(0, new P.Rect(t3, t4, t3 + t5, t4 + t2), t6);
+ t1 = _this._paragraph;
+ if (t1 != null) {
+ width = _this._size._dx;
+ left = 0;
+ $top = 0;
+ if (width > 328) {
+ width -= 128;
+ left += 64;
+ }
+ t1.layout$1(0, new P.ParagraphConstraints(width));
+ t1 = _this._size._dy;
+ t2 = _this._paragraph;
+ if (t1 > 96 + t2.get$height(t2) + 12)
+ $top += 96;
+ t1 = context.get$canvas(context);
+ t2 = _this._paragraph;
+ t2.toString;
+ t1.drawParagraph$2(0, t2, offset.$add(0, new P.Offset(left, $top)));
+ }
+ } catch (exception) {
+ H.unwrapException(exception);
+ }
+ }
+ };
+ F.FlexFit.prototype = {
+ toString$0: function(_) {
+ return this._flex$_name;
+ }
+ };
+ F.FlexParentData.prototype = {
+ toString$0: function(_) {
+ return this.super$BoxParentData$toString(0) + "; flex=" + H.S(this.flex) + "; fit=" + H.S(this.fit);
+ }
+ };
+ F.MainAxisSize.prototype = {
+ toString$0: function(_) {
+ return this._flex$_name;
+ }
+ };
+ F.MainAxisAlignment.prototype = {
+ toString$0: function(_) {
+ return this._flex$_name;
+ }
+ };
+ F.CrossAxisAlignment.prototype = {
+ toString$0: function(_) {
+ return this._flex$_name;
+ }
+ };
+ F.RenderFlex.prototype = {
+ set$direction: function(_, value) {
+ if (this._flex$_direction !== value) {
+ this._flex$_direction = value;
+ this.markNeedsLayout$0();
+ }
+ },
+ set$mainAxisAlignment: function(value) {
+ if (this._mainAxisAlignment !== value) {
+ this._mainAxisAlignment = value;
+ this.markNeedsLayout$0();
+ }
+ },
+ set$mainAxisSize: function(value) {
+ if (this._mainAxisSize !== value) {
+ this._mainAxisSize = value;
+ this.markNeedsLayout$0();
+ }
+ },
+ set$crossAxisAlignment: function(value) {
+ if (this._crossAxisAlignment !== value) {
+ this._crossAxisAlignment = value;
+ this.markNeedsLayout$0();
+ }
+ },
+ set$textDirection: function(_, value) {
+ if (this._flex$_textDirection != value) {
+ this._flex$_textDirection = value;
+ this.markNeedsLayout$0();
+ }
+ },
+ set$verticalDirection: function(value) {
+ if (this._verticalDirection !== value) {
+ this._verticalDirection = value;
+ this.markNeedsLayout$0();
+ }
+ },
+ set$textBaseline: function(_, value) {
+ },
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof F.FlexParentData))
+ child.parentData = new F.FlexParentData(null, null, C.Offset_0_0);
+ },
+ _getIntrinsicSize$3$childSize$extent$sizingDirection: function(childSize, extent, sizingDirection) {
+ var totalFlex, inflexibleSpace, maxFlexFractionSoFar, t2, flex, t3, maxCrossSize, _box_0, _mainSize_get, _mainSize_set, _crossSize_set, spacePerFlex, _this = this,
+ t1 = _this._flex$_direction,
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ if (t1 === sizingDirection) {
+ for (t1 = type$.FlexParentData, totalFlex = 0, inflexibleSpace = 0, maxFlexFractionSoFar = 0; child != null;) {
+ t2 = child.parentData;
+ t2.toString;
+ flex = t1._as(t2).flex;
+ if (flex == null)
+ flex = 0;
+ totalFlex += flex;
+ if (flex > 0) {
+ t2 = childSize.call$2(child, extent);
+ t3 = child.parentData;
+ t3.toString;
+ t3 = t1._as(t3).flex;
+ maxFlexFractionSoFar = Math.max(maxFlexFractionSoFar, t2 / (t3 == null ? 0 : t3));
+ } else
+ inflexibleSpace += childSize.call$2(child, extent);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ return maxFlexFractionSoFar * totalFlex + inflexibleSpace;
+ } else {
+ for (t1 = type$.FlexParentData, totalFlex = 0, inflexibleSpace = 0, maxCrossSize = 0; child != null;) {
+ _box_0 = {};
+ t2 = child.parentData;
+ t2.toString;
+ flex = t1._as(t2).flex;
+ if (flex == null)
+ flex = 0;
+ totalFlex += flex;
+ _box_0.mainSize = null;
+ _box_0._mainSize_isSet = false;
+ _mainSize_get = new F.RenderFlex__getIntrinsicSize__mainSize_get(_box_0);
+ _mainSize_set = new F.RenderFlex__getIntrinsicSize__mainSize_set(_box_0);
+ _box_0.crossSize = null;
+ _box_0._crossSize_isSet = false;
+ _crossSize_set = new F.RenderFlex__getIntrinsicSize__crossSize_set(_box_0);
+ if (flex === 0) {
+ switch (_this._flex$_direction) {
+ case C.Axis_0:
+ _mainSize_set.call$1(child._computeIntrinsicDimension$3(C._IntrinsicDimension_1, 1 / 0, child.get$computeMaxIntrinsicWidth()));
+ _crossSize_set.call$1(childSize.call$2(child, _mainSize_get.call$0()));
+ break;
+ case C.Axis_1:
+ _mainSize_set.call$1(child._computeIntrinsicDimension$3(C._IntrinsicDimension_3, 1 / 0, child.get$computeMaxIntrinsicHeight()));
+ _crossSize_set.call$1(childSize.call$2(child, _mainSize_get.call$0()));
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ inflexibleSpace += _mainSize_get.call$0();
+ maxCrossSize = Math.max(maxCrossSize, H.checkNum(new F.RenderFlex__getIntrinsicSize__crossSize_get(_box_0).call$0()));
+ }
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ spacePerFlex = Math.max(0, (extent - inflexibleSpace) / totalFlex);
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ for (; child != null;) {
+ t2 = child.parentData;
+ t2.toString;
+ flex = t1._as(t2).flex;
+ if (flex == null)
+ flex = 0;
+ if (flex > 0)
+ maxCrossSize = Math.max(maxCrossSize, H.checkNum(childSize.call$2(child, spacePerFlex * flex)));
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ return maxCrossSize;
+ }
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ return this._getIntrinsicSize$3$childSize$extent$sizingDirection(new F.RenderFlex_computeMinIntrinsicWidth_closure(), height, C.Axis_0);
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ return this._getIntrinsicSize$3$childSize$extent$sizingDirection(new F.RenderFlex_computeMaxIntrinsicWidth_closure(), height, C.Axis_0);
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return this._getIntrinsicSize$3$childSize$extent$sizingDirection(new F.RenderFlex_computeMinIntrinsicHeight_closure(), width, C.Axis_1);
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return this._getIntrinsicSize$3$childSize$extent$sizingDirection(new F.RenderFlex_computeMaxIntrinsicHeight_closure(), width, C.Axis_1);
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ if (this._flex$_direction === C.Axis_0)
+ return this.defaultComputeDistanceToHighestActualBaseline$1(baseline);
+ return this.defaultComputeDistanceToFirstActualBaseline$1(baseline);
+ },
+ _getCrossSize$1: function(child) {
+ switch (this._flex$_direction) {
+ case C.Axis_0:
+ return child._size._dy;
+ case C.Axis_1:
+ return child._size._dx;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _getMainSize$1: function(child) {
+ switch (this._flex$_direction) {
+ case C.Axis_0:
+ return child._size._dx;
+ case C.Axis_1:
+ return child._size._dy;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ performLayout$0: function() {
+ var t1, lastFlexChild0, totalFlex, totalChildren, crossSize, allocatedSize, lastFlexChild, t2, flex, innerConstraints, freeSpace, spacePerFlex, allocatedFlexSpace, maxBaselineDistance, maxSizeAboveBaseline, maxSizeBelowBaseline, _box_0, t3, maxChildExtent, _minChildExtent_get, _minChildExtent_set, distance, idealSize, actualSize, actualSizeDelta, remainingSpace, _leadingSpace_get, _leadingSpace_set, _betweenSpace_get, _betweenSpace_set, flipMainAxis, childMainPosition, t4, childCrossPosition, _this = this,
+ _s80_ = string$.x60null_c,
+ _box_1 = {},
+ constraints = _this.get$constraints(),
+ maxMainSize = _this._flex$_direction === C.Axis_0 ? constraints.maxWidth : constraints.maxHeight,
+ canFlex = maxMainSize < 1 / 0,
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ _box_1.child = child;
+ for (t1 = type$.FlexParentData, lastFlexChild0 = child, totalFlex = 0, totalChildren = 0, crossSize = 0, allocatedSize = 0, lastFlexChild = null; lastFlexChild0 != null; lastFlexChild0 = child) {
+ t2 = lastFlexChild0.parentData;
+ t2.toString;
+ t1._as(t2);
+ ++totalChildren;
+ flex = t2.flex;
+ if (flex == null)
+ flex = 0;
+ if (flex > 0) {
+ totalFlex += flex;
+ lastFlexChild = lastFlexChild0;
+ } else {
+ if (_this._crossAxisAlignment === C.CrossAxisAlignment_3)
+ switch (_this._flex$_direction) {
+ case C.Axis_0:
+ innerConstraints = S.BoxConstraints$tightFor(constraints.maxHeight, null);
+ break;
+ case C.Axis_1:
+ innerConstraints = S.BoxConstraints$tightFor(null, constraints.maxWidth);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ else
+ switch (_this._flex$_direction) {
+ case C.Axis_0:
+ innerConstraints = new S.BoxConstraints(0, 1 / 0, 0, constraints.maxHeight);
+ break;
+ case C.Axis_1:
+ innerConstraints = new S.BoxConstraints(0, constraints.maxWidth, 0, 1 / 0);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ lastFlexChild0.layout$2$parentUsesSize(0, innerConstraints, true);
+ allocatedSize += _this._getMainSize$1(_box_1.child);
+ crossSize = Math.max(crossSize, H.checkNum(_this._getCrossSize$1(_box_1.child)));
+ }
+ child = t2.ContainerParentDataMixin_nextSibling;
+ _box_1.child = child;
+ }
+ freeSpace = Math.max(0, (canFlex ? maxMainSize : 0) - allocatedSize);
+ t2 = totalFlex > 0;
+ if (t2 || _this._crossAxisAlignment === C.CrossAxisAlignment_4) {
+ spacePerFlex = canFlex && t2 ? freeSpace / totalFlex : 0 / 0;
+ t2 = _box_1.child = _this.ContainerRenderObjectMixin__firstChild;
+ for (allocatedFlexSpace = 0, maxBaselineDistance = 0, maxSizeAboveBaseline = 0, maxSizeBelowBaseline = 0; t2 != null; t2 = child) {
+ _box_0 = {};
+ t3 = t2.parentData;
+ t3.toString;
+ t1._as(t3);
+ flex = t3.flex;
+ if (flex == null)
+ flex = 0;
+ if (flex > 0) {
+ if (canFlex)
+ maxChildExtent = t2 === lastFlexChild ? freeSpace - allocatedFlexSpace : spacePerFlex * flex;
+ else
+ maxChildExtent = 1 / 0;
+ _box_0.minChildExtent = null;
+ _box_0._minChildExtent_isSet = false;
+ _minChildExtent_get = new F.RenderFlex_performLayout__minChildExtent_get(_box_0);
+ _minChildExtent_set = new F.RenderFlex_performLayout__minChildExtent_set(_box_0);
+ t2 = t3.fit;
+ switch (t2 == null ? C.FlexFit_0 : t2) {
+ case C.FlexFit_0:
+ _minChildExtent_set.call$1(maxChildExtent);
+ break;
+ case C.FlexFit_1:
+ _minChildExtent_set.call$1(0);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ if (_this._crossAxisAlignment === C.CrossAxisAlignment_3)
+ switch (_this._flex$_direction) {
+ case C.Axis_0:
+ t2 = _minChildExtent_get.call$0();
+ t3 = constraints.maxHeight;
+ innerConstraints = new S.BoxConstraints(t2, maxChildExtent, t3, t3);
+ break;
+ case C.Axis_1:
+ t2 = constraints.maxWidth;
+ innerConstraints = new S.BoxConstraints(t2, t2, _minChildExtent_get.call$0(), maxChildExtent);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ else
+ switch (_this._flex$_direction) {
+ case C.Axis_0:
+ innerConstraints = new S.BoxConstraints(_minChildExtent_get.call$0(), maxChildExtent, 0, constraints.maxHeight);
+ break;
+ case C.Axis_1:
+ innerConstraints = new S.BoxConstraints(0, constraints.maxWidth, _minChildExtent_get.call$0(), maxChildExtent);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ _box_1.child.layout$2$parentUsesSize(0, innerConstraints, true);
+ allocatedSize += _this._getMainSize$1(_box_1.child);
+ allocatedFlexSpace += maxChildExtent;
+ crossSize = Math.max(crossSize, H.checkNum(_this._getCrossSize$1(_box_1.child)));
+ }
+ if (_this._crossAxisAlignment === C.CrossAxisAlignment_4) {
+ t2 = _box_1.child;
+ t3 = _this._flex$_textBaseline;
+ t3.toString;
+ distance = t2.getDistanceToBaseline$2$onlyReal(t3, true);
+ if (distance != null) {
+ maxBaselineDistance = Math.max(maxBaselineDistance, distance);
+ maxSizeAboveBaseline = Math.max(distance, maxSizeAboveBaseline);
+ maxSizeBelowBaseline = Math.max(_box_1.child._size._dy - distance, maxSizeBelowBaseline);
+ crossSize = Math.max(maxSizeAboveBaseline + maxSizeBelowBaseline, crossSize);
+ }
+ }
+ t2 = _box_1.child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ _box_1.child = child;
+ }
+ } else
+ maxBaselineDistance = 0;
+ idealSize = canFlex && _this._mainAxisSize === C.MainAxisSize_1 ? maxMainSize : allocatedSize;
+ switch (_this._flex$_direction) {
+ case C.Axis_0:
+ t2 = _this._size = constraints.constrain$1(new P.Size(idealSize, crossSize));
+ actualSize = t2._dx;
+ crossSize = t2._dy;
+ break;
+ case C.Axis_1:
+ t2 = _this._size = constraints.constrain$1(new P.Size(crossSize, idealSize));
+ actualSize = t2._dy;
+ crossSize = t2._dx;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ actualSizeDelta = actualSize - allocatedSize;
+ _this._flex$_overflow = Math.max(0, -actualSizeDelta);
+ remainingSpace = Math.max(0, actualSizeDelta);
+ _box_1.leadingSpace = null;
+ _box_1._leadingSpace_isSet = false;
+ _leadingSpace_get = new F.RenderFlex_performLayout__leadingSpace_get(_box_1);
+ _leadingSpace_set = new F.RenderFlex_performLayout__leadingSpace_set(_box_1);
+ _box_1.betweenSpace = null;
+ _box_1._betweenSpace_isSet = false;
+ _betweenSpace_get = new F.RenderFlex_performLayout__betweenSpace_get(_box_1);
+ _betweenSpace_set = new F.RenderFlex_performLayout__betweenSpace_set(_box_1);
+ t2 = F._startIsTopLeft(_this._flex$_direction, _this._flex$_textDirection, _this._verticalDirection);
+ flipMainAxis = t2 === false;
+ switch (_this._mainAxisAlignment) {
+ case C.MainAxisAlignment_0:
+ _leadingSpace_set.call$1(0);
+ _betweenSpace_set.call$1(0);
+ break;
+ case C.MainAxisAlignment_1:
+ _leadingSpace_set.call$1(remainingSpace);
+ _betweenSpace_set.call$1(0);
+ break;
+ case C.MainAxisAlignment_2:
+ _leadingSpace_set.call$1(remainingSpace / 2);
+ _betweenSpace_set.call$1(0);
+ break;
+ case C.MainAxisAlignment_3:
+ _leadingSpace_set.call$1(0);
+ _betweenSpace_set.call$1(totalChildren > 1 ? remainingSpace / (totalChildren - 1) : 0);
+ break;
+ case C.MainAxisAlignment_4:
+ _betweenSpace_set.call$1(totalChildren > 0 ? remainingSpace / totalChildren : 0);
+ _leadingSpace_set.call$1(_betweenSpace_get.call$0() / 2);
+ break;
+ case C.MainAxisAlignment_5:
+ _betweenSpace_set.call$1(totalChildren > 0 ? remainingSpace / (totalChildren + 1) : 0);
+ _leadingSpace_set.call$1(_betweenSpace_get.call$0());
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ childMainPosition = flipMainAxis ? actualSize - _leadingSpace_get.call$0() : _leadingSpace_get.call$0();
+ t2 = _box_1.child = _this.ContainerRenderObjectMixin__firstChild;
+ for (; t2 != null; t2 = child) {
+ t3 = t2.parentData;
+ t3.toString;
+ t1._as(t3);
+ t4 = _this._crossAxisAlignment;
+ switch (t4) {
+ case C.CrossAxisAlignment_0:
+ case C.CrossAxisAlignment_1:
+ childCrossPosition = F._startIsTopLeft(G.flipAxis(_this._flex$_direction), _this._flex$_textDirection, _this._verticalDirection) === (t4 === C.CrossAxisAlignment_0) ? 0 : crossSize - _this._getCrossSize$1(t2);
+ break;
+ case C.CrossAxisAlignment_2:
+ childCrossPosition = crossSize / 2 - _this._getCrossSize$1(t2) / 2;
+ break;
+ case C.CrossAxisAlignment_3:
+ childCrossPosition = 0;
+ break;
+ case C.CrossAxisAlignment_4:
+ if (_this._flex$_direction === C.Axis_0) {
+ t4 = _this._flex$_textBaseline;
+ t4.toString;
+ distance = t2.getDistanceToBaseline$2$onlyReal(t4, true);
+ childCrossPosition = distance != null ? maxBaselineDistance - distance : 0;
+ } else
+ childCrossPosition = 0;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ if (flipMainAxis)
+ childMainPosition -= _this._getMainSize$1(_box_1.child);
+ switch (_this._flex$_direction) {
+ case C.Axis_0:
+ t3.offset = new P.Offset(childMainPosition, childCrossPosition);
+ break;
+ case C.Axis_1:
+ t3.offset = new P.Offset(childCrossPosition, childMainPosition);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ childMainPosition = flipMainAxis ? childMainPosition - _betweenSpace_get.call$0() : childMainPosition + (_this._getMainSize$1(_box_1.child) + _betweenSpace_get.call$0());
+ child = t3.ContainerParentDataMixin_nextSibling;
+ _box_1.child = child;
+ }
+ },
+ hitTestChildren$2$position: function(result, position) {
+ return this.defaultHitTestChildren$2$position(result, position);
+ },
+ paint$2: function(context, offset) {
+ var t2, _this = this,
+ t1 = _this._flex$_overflow;
+ t1.toString;
+ if (!(t1 > 1e-10)) {
+ _this.defaultPaint$2(context, offset);
+ return;
+ }
+ t1 = _this._size;
+ if (t1.get$isEmpty(t1))
+ return;
+ if (_this._flex$_clipBehavior === C.Clip_0) {
+ _this._flex$_clipRectLayer = null;
+ _this.defaultPaint$2(context, offset);
+ } else {
+ t1 = _this.get$_needsCompositing();
+ t2 = _this._size;
+ _this._flex$_clipRectLayer = context.pushClipRect$6$clipBehavior$oldLayer(t1, offset, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy), _this.get$defaultPaint(), _this._flex$_clipBehavior, _this._flex$_clipRectLayer);
+ }
+ },
+ describeApproximatePaintClip$1: function(child) {
+ var t1 = this._flex$_overflow;
+ t1.toString;
+ if (t1 > 1e-10) {
+ t1 = this._size;
+ t1 = new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ } else
+ t1 = null;
+ return t1;
+ },
+ toStringShort$0: function() {
+ var header = this.super$RenderObject$toStringShort(),
+ t1 = this._flex$_overflow;
+ return t1 != null && t1 > 1e-10 ? header + " OVERFLOWING" : header;
+ }
+ };
+ F.RenderFlex__getIntrinsicSize__crossSize_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ if (t2._crossSize_isSet)
+ throw H.wrapException(H.LateError$localAI("crossSize"));
+ else {
+ t2._crossSize_isSet = true;
+ return t2.crossSize = t1;
+ }
+ },
+ $signature: 26
+ };
+ F.RenderFlex__getIntrinsicSize__mainSize_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ if (t2._mainSize_isSet)
+ throw H.wrapException(H.LateError$localAI("mainSize"));
+ else {
+ t2._mainSize_isSet = true;
+ return t2.mainSize = t1;
+ }
+ },
+ $signature: 26
+ };
+ F.RenderFlex__getIntrinsicSize__mainSize_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._mainSize_isSet ? t1.mainSize : H.throwExpression(H.LateError$localNI("mainSize"));
+ },
+ $signature: 18
+ };
+ F.RenderFlex__getIntrinsicSize__crossSize_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._crossSize_isSet ? t1.crossSize : H.throwExpression(H.LateError$localNI("crossSize"));
+ },
+ $signature: 18
+ };
+ F.RenderFlex_computeMinIntrinsicWidth_closure.prototype = {
+ call$2: function(child, extent) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_0, extent, child.get$computeMinIntrinsicWidth());
+ },
+ $signature: 27
+ };
+ F.RenderFlex_computeMaxIntrinsicWidth_closure.prototype = {
+ call$2: function(child, extent) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_1, extent, child.get$computeMaxIntrinsicWidth());
+ },
+ $signature: 27
+ };
+ F.RenderFlex_computeMinIntrinsicHeight_closure.prototype = {
+ call$2: function(child, extent) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_2, extent, child.get$computeMinIntrinsicHeight());
+ },
+ $signature: 27
+ };
+ F.RenderFlex_computeMaxIntrinsicHeight_closure.prototype = {
+ call$2: function(child, extent) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_3, extent, child.get$computeMaxIntrinsicHeight());
+ },
+ $signature: 27
+ };
+ F.RenderFlex_performLayout__betweenSpace_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_1;
+ if (t2._betweenSpace_isSet)
+ throw H.wrapException(H.LateError$localAI("betweenSpace"));
+ else {
+ t2._betweenSpace_isSet = true;
+ return t2.betweenSpace = t1;
+ }
+ },
+ $signature: 26
+ };
+ F.RenderFlex_performLayout__leadingSpace_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_1;
+ if (t2._leadingSpace_isSet)
+ throw H.wrapException(H.LateError$localAI("leadingSpace"));
+ else {
+ t2._leadingSpace_isSet = true;
+ return t2.leadingSpace = t1;
+ }
+ },
+ $signature: 26
+ };
+ F.RenderFlex_performLayout__minChildExtent_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ if (t2._minChildExtent_isSet)
+ throw H.wrapException(H.LateError$localAI("minChildExtent"));
+ else {
+ t2._minChildExtent_isSet = true;
+ return t2.minChildExtent = t1;
+ }
+ },
+ $signature: 26
+ };
+ F.RenderFlex_performLayout__minChildExtent_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._minChildExtent_isSet ? t1.minChildExtent : H.throwExpression(H.LateError$localNI("minChildExtent"));
+ },
+ $signature: 18
+ };
+ F.RenderFlex_performLayout__leadingSpace_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_1;
+ return t1._leadingSpace_isSet ? t1.leadingSpace : H.throwExpression(H.LateError$localNI("leadingSpace"));
+ },
+ $signature: 18
+ };
+ F.RenderFlex_performLayout__betweenSpace_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_1;
+ return t1._betweenSpace_isSet ? t1.betweenSpace : H.throwExpression(H.LateError$localNI("betweenSpace"));
+ },
+ $signature: 18
+ };
+ F._RenderFlex_RenderBox_ContainerRenderObjectMixin.prototype = {
+ attach$1: function(owner) {
+ var child, t1, t2;
+ this.super$RenderObject$attach(owner);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.FlexParentData; child != null;) {
+ child.attach$1(owner);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child, t1, t2;
+ this.super$AbstractNode$detach(0);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.FlexParentData; child != null;) {
+ child.detach$0(0);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ F._RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin.prototype = {};
+ F._RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_DebugOverflowIndicatorMixin.prototype = {};
+ T.AnnotationEntry.prototype = {
+ toString$0: function(_) {
+ return "AnnotationEntry(annotation: " + this.annotation.toString$0(0) + ", localPosition: " + this.localPosition.toString$0(0) + ")";
+ }
+ };
+ T.AnnotationResult.prototype = {};
+ T.Layer.prototype = {
+ markNeedsAddToScene$0: function() {
+ if (this._needsAddToScene)
+ return;
+ this._needsAddToScene = true;
+ },
+ get$alwaysNeedsAddToScene: function() {
+ return false;
+ },
+ set$engineLayer: function(value) {
+ var t1, _this = this;
+ _this._engineLayer = value;
+ if (!_this.get$alwaysNeedsAddToScene()) {
+ t1 = type$.nullable_ContainerLayer;
+ if (t1._as(B.AbstractNode.prototype.get$parent.call(_this, _this)) != null && !t1._as(B.AbstractNode.prototype.get$parent.call(_this, _this)).get$alwaysNeedsAddToScene())
+ t1._as(B.AbstractNode.prototype.get$parent.call(_this, _this)).markNeedsAddToScene$0();
+ }
+ },
+ updateSubtreeNeedsAddToScene$0: function() {
+ this._needsAddToScene = this._needsAddToScene || this.get$alwaysNeedsAddToScene();
+ },
+ dropChild$1: function(child) {
+ if (!this.get$alwaysNeedsAddToScene())
+ this.markNeedsAddToScene$0();
+ this.super$AbstractNode$dropChild(child);
+ },
+ remove$0: function(_) {
+ var t2, t3, _this = this,
+ t1 = type$.nullable_ContainerLayer._as(B.AbstractNode.prototype.get$parent.call(_this, _this));
+ if (t1 != null) {
+ t2 = _this._previousSibling;
+ t3 = _this._nextSibling;
+ if (t2 == null)
+ t1._firstChild = t3;
+ else
+ t2._nextSibling = t3;
+ t3 = _this._nextSibling;
+ if (t3 == null)
+ t1._lastChild = t2;
+ else
+ t3._previousSibling = t2;
+ _this._nextSibling = _this._previousSibling = null;
+ t1.dropChild$1(_this);
+ }
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst) {
+ return false;
+ },
+ find$1$1: function(_, localPosition, $S) {
+ var t1 = H.setRuntimeTypeInfo([], $S._eval$1("JSArray>"));
+ this.findAnnotations$1$3$onlyFirst(new T.AnnotationResult(t1, $S._eval$1("AnnotationResult<0>")), localPosition, true, $S);
+ return t1.length === 0 ? null : C.JSArray_methods.get$first(t1).annotation;
+ },
+ _addToSceneWithRetainedRendering$1: function(builder) {
+ var t1, _this = this;
+ if (!_this._needsAddToScene && _this._engineLayer != null) {
+ t1 = _this._engineLayer;
+ t1.toString;
+ builder.addRetained$1(t1);
+ return;
+ }
+ _this.addToScene$1(builder);
+ _this._needsAddToScene = false;
+ },
+ toStringShort$0: function() {
+ var t1 = this.super$DiagnosticableTreeMixin$toStringShort();
+ return t1 + (this._node$_owner == null ? " DETACHED" : "");
+ },
+ $isDiagnosticableTree: 1
+ };
+ T.PictureLayer.prototype = {
+ addToScene$2: function(builder, layerOffset) {
+ var t1 = this._picture;
+ t1.toString;
+ builder.addPicture$4$isComplexHint$willChangeHint(layerOffset, t1, this._isComplexHint, this._willChangeHint);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst) {
+ return false;
+ }
+ };
+ T.PlatformViewLayer.prototype = {
+ addToScene$2: function(builder, layerOffset) {
+ var t1, t2,
+ shiftedRect = this.rect;
+ shiftedRect = layerOffset.$eq(0, C.Offset_0_0) ? shiftedRect : shiftedRect.shift$1(layerOffset);
+ t1 = shiftedRect.left;
+ t2 = shiftedRect.top;
+ builder.addPlatformView$4$height$offset$width(this.viewId, shiftedRect.bottom - t2, new P.Offset(t1, t2), shiftedRect.right - t1);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ }
+ };
+ T.PerformanceOverlayLayer.prototype = {
+ addToScene$2: function(builder, layerOffset) {
+ var shiftedOverlayRect = this._overlayRect;
+ shiftedOverlayRect = layerOffset.$eq(0, C.Offset_0_0) ? shiftedOverlayRect : shiftedOverlayRect.shift$1(layerOffset);
+ builder.addPerformanceOverlay$2(this.optionsMask, shiftedOverlayRect);
+ builder.setRasterizerTracingThreshold$1(this.rasterizerThreshold);
+ builder.setCheckerboardRasterCacheImages$1(false);
+ builder.setCheckerboardOffscreenLayers$1(false);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst) {
+ return false;
+ }
+ };
+ T.ContainerLayer.prototype = {
+ buildScene$1: function(builder) {
+ this.updateSubtreeNeedsAddToScene$0();
+ this.addToScene$1(builder);
+ this._needsAddToScene = false;
+ return builder.build$0(0);
+ },
+ updateSubtreeNeedsAddToScene$0: function() {
+ var child, _this = this;
+ _this.super$Layer$updateSubtreeNeedsAddToScene();
+ child = _this._firstChild;
+ for (; child != null;) {
+ child.updateSubtreeNeedsAddToScene$0();
+ _this._needsAddToScene = _this._needsAddToScene || child._needsAddToScene;
+ child = child._nextSibling;
+ }
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ var child, t1, t2;
+ for (child = this._lastChild, t1 = result._layer$_entries; child != null; child = child._previousSibling) {
+ if (child.findAnnotations$1$3$onlyFirst(result, localPosition, true, $S))
+ return true;
+ t2 = t1.length;
+ if (t2 !== 0)
+ return false;
+ }
+ return false;
+ },
+ attach$1: function(owner) {
+ var child;
+ this.super$AbstractNode$attach(owner);
+ child = this._firstChild;
+ for (; child != null;) {
+ child.attach$1(owner);
+ child = child._nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child;
+ this.super$AbstractNode$detach(0);
+ child = this._firstChild;
+ for (; child != null;) {
+ child.detach$0(0);
+ child = child._nextSibling;
+ }
+ },
+ append$1: function(_, child) {
+ var t1, _this = this;
+ if (!_this.get$alwaysNeedsAddToScene())
+ _this.markNeedsAddToScene$0();
+ _this.super$AbstractNode$adoptChild(child);
+ t1 = child._previousSibling = _this._lastChild;
+ if (t1 != null)
+ t1._nextSibling = child;
+ _this._lastChild = child;
+ if (_this._firstChild == null)
+ _this._firstChild = child;
+ },
+ removeAllChildren$0: function() {
+ var next, _this = this,
+ child = _this._firstChild;
+ for (; child != null; child = next) {
+ next = child._nextSibling;
+ child._nextSibling = child._previousSibling = null;
+ if (!_this.get$alwaysNeedsAddToScene())
+ _this.markNeedsAddToScene$0();
+ _this.super$AbstractNode$dropChild(child);
+ }
+ _this._lastChild = _this._firstChild = null;
+ },
+ addToScene$2: function(builder, layerOffset) {
+ this.addChildrenToScene$2(builder, layerOffset);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ },
+ addChildrenToScene$2: function(builder, childOffset) {
+ var t1, t2, t3,
+ child = this._firstChild;
+ for (t1 = 0 === childOffset._dx, t2 = 0 === childOffset._dy; child != null;) {
+ t3 = t1 && t2;
+ if (t3)
+ child._addToSceneWithRetainedRendering$1(builder);
+ else
+ child.addToScene$2(builder, childOffset);
+ child = child._nextSibling;
+ }
+ },
+ addChildrenToScene$1: function(builder) {
+ return this.addChildrenToScene$2(builder, C.Offset_0_0);
+ },
+ applyTransform$2: function(child, transform) {
+ },
+ debugDescribeChildren$0: function() {
+ var count,
+ children = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode),
+ child = this._firstChild;
+ if (child == null)
+ return children;
+ for (count = 1; true;) {
+ child.toString;
+ children.push(new Y.DiagnosticableTreeNode(child, "child " + count, true, true, null, null));
+ if (child === this._lastChild)
+ break;
+ ++count;
+ child = child._nextSibling;
+ }
+ return children;
+ }
+ };
+ T.OffsetLayer.prototype = {
+ set$offset: function(_, value) {
+ if (!value.$eq(0, this._layer$_offset))
+ this.markNeedsAddToScene$0();
+ this._layer$_offset = value;
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ return this.super$ContainerLayer$findAnnotations(result, localPosition.$sub(0, this._layer$_offset), true, $S);
+ },
+ applyTransform$2: function(child, transform) {
+ var t1 = this._layer$_offset;
+ transform.multiply$1(0, E.Matrix4_Matrix4$translationValues(t1._dx, t1._dy, 0));
+ },
+ addToScene$2: function(builder, layerOffset) {
+ var _this = this,
+ t1 = _this._layer$_offset;
+ _this.set$engineLayer(builder.pushOffset$3$oldLayer(layerOffset._dx + t1._dx, layerOffset._dy + t1._dy, type$.nullable_OffsetEngineLayer._as(_this._engineLayer)));
+ _this.addChildrenToScene$1(builder);
+ builder.pop$0(0);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ }
+ };
+ T.ClipRectLayer.prototype = {
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ if (!this._clipRect.contains$1(0, localPosition))
+ return false;
+ return this.super$ContainerLayer$findAnnotations(result, localPosition, true, $S);
+ },
+ addToScene$2: function(builder, layerOffset) {
+ var shiftedClipRect, _this = this,
+ t1 = layerOffset.$eq(0, C.Offset_0_0),
+ t2 = _this._clipRect;
+ if (t1) {
+ t2.toString;
+ shiftedClipRect = t2;
+ } else
+ shiftedClipRect = t2.shift$1(layerOffset);
+ _this.set$engineLayer(builder.pushClipRect$3$clipBehavior$oldLayer(shiftedClipRect, _this._layer$_clipBehavior, type$.nullable_ClipRectEngineLayer._as(_this._engineLayer)));
+ _this.addChildrenToScene$2(builder, layerOffset);
+ builder.pop$0(0);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ }
+ };
+ T.ClipPathLayer.prototype = {
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ if (!this._clipPath.contains$1(0, localPosition))
+ return false;
+ return this.super$ContainerLayer$findAnnotations(result, localPosition, true, $S);
+ },
+ addToScene$2: function(builder, layerOffset) {
+ var shiftedPath, _this = this,
+ t1 = layerOffset.$eq(0, C.Offset_0_0),
+ t2 = _this._clipPath;
+ if (t1) {
+ t2.toString;
+ shiftedPath = t2;
+ } else
+ shiftedPath = t2.shift$1(layerOffset);
+ _this.set$engineLayer(builder.pushClipPath$3$clipBehavior$oldLayer(shiftedPath, _this._layer$_clipBehavior, type$.nullable_ClipPathEngineLayer._as(_this._engineLayer)));
+ _this.addChildrenToScene$2(builder, layerOffset);
+ builder.pop$0(0);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ }
+ };
+ T.TransformLayer.prototype = {
+ set$transform: function(_, value) {
+ var _this = this;
+ if (value.$eq(0, _this._layer$_transform))
+ return;
+ _this._layer$_transform = value;
+ _this._inverseDirty = true;
+ _this.markNeedsAddToScene$0();
+ },
+ addToScene$2: function(builder, layerOffset) {
+ var totalOffset, t1, t2, _this = this;
+ _this._lastEffectiveTransform = _this._layer$_transform;
+ totalOffset = _this._layer$_offset.$add(0, layerOffset);
+ if (!totalOffset.$eq(0, C.Offset_0_0)) {
+ t1 = E.Matrix4_Matrix4$translationValues(totalOffset._dx, totalOffset._dy, 0);
+ t2 = _this._lastEffectiveTransform;
+ t2.toString;
+ t1.multiply$1(0, t2);
+ _this._lastEffectiveTransform = t1;
+ }
+ _this.set$engineLayer(builder.pushTransform$2$oldLayer(_this._lastEffectiveTransform._m4storage, type$.nullable_TransformEngineLayer._as(_this._engineLayer)));
+ _this.addChildrenToScene$1(builder);
+ builder.pop$0(0);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ },
+ _transformOffset$1: function(localPosition) {
+ var t1, _this = this;
+ if (_this._inverseDirty) {
+ t1 = _this._layer$_transform;
+ t1.toString;
+ _this._invertedTransform = E.Matrix4_tryInvert(F.PointerEvent_removePerspectiveTransform(t1));
+ _this._inverseDirty = false;
+ }
+ t1 = _this._invertedTransform;
+ if (t1 == null)
+ return null;
+ return T.MatrixUtils_transformPoint(t1, localPosition);
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ var transformedOffset = this._transformOffset$1(localPosition);
+ if (transformedOffset == null)
+ return false;
+ return this.super$OffsetLayer$findAnnotations(result, transformedOffset, true, $S);
+ },
+ applyTransform$2: function(child, transform) {
+ var t1 = this._lastEffectiveTransform;
+ if (t1 == null) {
+ t1 = this._layer$_transform;
+ t1.toString;
+ transform.multiply$1(0, t1);
+ } else
+ transform.multiply$1(0, t1);
+ }
+ };
+ T.OpacityLayer.prototype = {
+ applyTransform$2: function(child, transform) {
+ var t1 = this._layer$_offset;
+ transform.translate$2(0, t1._dx, t1._dy);
+ },
+ addToScene$2: function(builder, layerOffset) {
+ var t1, _this = this,
+ enabled = _this._firstChild != null;
+ if (enabled) {
+ t1 = _this._layer$_alpha;
+ t1.toString;
+ _this.set$engineLayer(builder.pushOpacity$3$offset$oldLayer(t1, _this._layer$_offset.$add(0, layerOffset), type$.nullable_OpacityEngineLayer._as(_this._engineLayer)));
+ } else
+ _this.set$engineLayer(null);
+ _this.addChildrenToScene$1(builder);
+ if (enabled)
+ builder.pop$0(0);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ }
+ };
+ T.PhysicalModelLayer.prototype = {
+ set$clipPath: function(_, value) {
+ if (value !== this._clipPath) {
+ this._clipPath = value;
+ this.markNeedsAddToScene$0();
+ }
+ },
+ set$clipBehavior: function(value) {
+ if (value !== this._layer$_clipBehavior) {
+ this._layer$_clipBehavior = value;
+ this.markNeedsAddToScene$0();
+ }
+ },
+ set$elevation: function(_, value) {
+ if (value != this._layer$_elevation) {
+ this._layer$_elevation = value;
+ this.markNeedsAddToScene$0();
+ }
+ },
+ set$color: function(_, value) {
+ if (!J.$eq$(value, this._layer$_color)) {
+ this._layer$_color = value;
+ this.markNeedsAddToScene$0();
+ }
+ },
+ set$shadowColor: function(_, value) {
+ if (!J.$eq$(value, this._layer$_shadowColor)) {
+ this._layer$_shadowColor = value;
+ this.markNeedsAddToScene$0();
+ }
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ if (!this._clipPath.contains$1(0, localPosition))
+ return false;
+ return this.super$ContainerLayer$findAnnotations(result, localPosition, true, $S);
+ },
+ addToScene$2: function(builder, layerOffset) {
+ var t3, t4, _this = this,
+ t1 = layerOffset.$eq(0, C.Offset_0_0),
+ t2 = _this._clipPath;
+ if (t1) {
+ t2.toString;
+ t1 = t2;
+ } else
+ t1 = t2.shift$1(layerOffset);
+ t2 = _this._layer$_elevation;
+ t2.toString;
+ t3 = _this._layer$_color;
+ t3.toString;
+ t4 = _this._layer$_shadowColor;
+ _this.set$engineLayer(builder.pushPhysicalShape$6$clipBehavior$color$elevation$oldLayer$path$shadowColor(_this._layer$_clipBehavior, t3, t2, type$.nullable_PhysicalShapeEngineLayer._as(_this._engineLayer), t1, t4));
+ _this.addChildrenToScene$2(builder, layerOffset);
+ builder.pop$0(0);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ }
+ };
+ T.LayerLink.prototype = {
+ toString$0: function(_) {
+ var t1 = "#" + Y.shortHash(this) + "(";
+ return t1 + (this._leader != null ? "" : "") + ")";
+ }
+ };
+ T.LeaderLayer.prototype = {
+ get$alwaysNeedsAddToScene: function() {
+ return true;
+ },
+ attach$1: function(owner) {
+ var _this = this;
+ _this.super$ContainerLayer$attach(owner);
+ _this._lastOffset = null;
+ _this._layer$_link._leader = _this;
+ },
+ detach$0: function(_) {
+ this._lastOffset = this._layer$_link._leader = null;
+ this.super$ContainerLayer$detach(0);
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ return this.super$ContainerLayer$findAnnotations(result, localPosition.$sub(0, this.offset), true, $S);
+ },
+ addToScene$2: function(builder, layerOffset) {
+ var _this = this,
+ t1 = _this.offset.$add(0, layerOffset);
+ _this._lastOffset = t1;
+ if (!t1.$eq(0, C.Offset_0_0)) {
+ t1 = _this._lastOffset;
+ _this.set$engineLayer(builder.pushTransform$2$oldLayer(E.Matrix4_Matrix4$translationValues(t1._dx, t1._dy, 0)._m4storage, type$.nullable_TransformEngineLayer._as(_this._engineLayer)));
+ }
+ _this.addChildrenToScene$1(builder);
+ if (!J.$eq$(_this._lastOffset, C.Offset_0_0))
+ builder.pop$0(0);
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ },
+ applyTransform$2: function(child, transform) {
+ var t1;
+ if (!J.$eq$(this._lastOffset, C.Offset_0_0)) {
+ t1 = this._lastOffset;
+ transform.translate$2(0, t1._dx, t1._dy);
+ }
+ }
+ };
+ T.FollowerLayer.prototype = {
+ _transformOffset$1: function(localPosition) {
+ var t1, vector, t2, t3, _this = this;
+ if (_this._inverseDirty) {
+ t1 = _this.getLastTransform$0();
+ t1.toString;
+ _this._invertedTransform = E.Matrix4_tryInvert(t1);
+ _this._inverseDirty = false;
+ }
+ if (_this._invertedTransform == null)
+ return null;
+ vector = new E.Vector4(new Float64Array(4));
+ vector.setValues$4(localPosition._dx, localPosition._dy, 0, 1);
+ t1 = _this._invertedTransform.transform$1(0, vector)._v4storage;
+ t2 = t1[0];
+ t3 = _this.linkedOffset;
+ return new P.Offset(t2 - t3._dx, t1[1] - t3._dy);
+ },
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ var transformedOffset;
+ if (this._layer$_link._leader == null)
+ return false;
+ transformedOffset = this._transformOffset$1(localPosition);
+ if (transformedOffset == null)
+ return false;
+ return this.super$ContainerLayer$findAnnotations(result, transformedOffset, true, $S);
+ },
+ getLastTransform$0: function() {
+ var t1, result;
+ if (this._layer$_lastTransform == null)
+ return null;
+ t1 = this._lastOffset;
+ result = E.Matrix4_Matrix4$translationValues(-t1._dx, -t1._dy, 0);
+ t1 = this._layer$_lastTransform;
+ t1.toString;
+ result.multiply$1(0, t1);
+ return result;
+ },
+ _establishTransform$0: function() {
+ var leader, t1, forwardLayers, inverseLayers, forwardTransform, inverseTransform, _this = this;
+ _this._layer$_lastTransform = null;
+ leader = _this._layer$_link._leader;
+ if (leader == null)
+ return;
+ t1 = type$.JSArray_ContainerLayer;
+ forwardLayers = H.setRuntimeTypeInfo([leader], t1);
+ inverseLayers = H.setRuntimeTypeInfo([_this], t1);
+ T.FollowerLayer__pathsToCommonAncestor(leader, _this, forwardLayers, inverseLayers);
+ forwardTransform = T.FollowerLayer__collectTransformForLayerChain(forwardLayers);
+ leader.applyTransform$2(null, forwardTransform);
+ t1 = _this.linkedOffset;
+ forwardTransform.translate$2(0, t1._dx, t1._dy);
+ inverseTransform = T.FollowerLayer__collectTransformForLayerChain(inverseLayers);
+ if (inverseTransform.copyInverse$1(inverseTransform) === 0)
+ return;
+ inverseTransform.multiply$1(0, forwardTransform);
+ _this._layer$_lastTransform = inverseTransform;
+ _this._inverseDirty = true;
+ },
+ get$alwaysNeedsAddToScene: function() {
+ return true;
+ },
+ addToScene$2: function(builder, layerOffset) {
+ var t1, t2, _this = this;
+ if (_this._layer$_link._leader == null && true) {
+ _this._lastOffset = _this._layer$_lastTransform = null;
+ _this._inverseDirty = true;
+ _this.set$engineLayer(null);
+ return;
+ }
+ _this._establishTransform$0();
+ t1 = _this._layer$_lastTransform;
+ t2 = type$.nullable_TransformEngineLayer;
+ if (t1 != null) {
+ _this.set$engineLayer(builder.pushTransform$2$oldLayer(t1._m4storage, t2._as(_this._engineLayer)));
+ _this.addChildrenToScene$1(builder);
+ builder.pop$0(0);
+ _this._lastOffset = _this.unlinkedOffset.$add(0, layerOffset);
+ } else {
+ _this._lastOffset = null;
+ t1 = _this.unlinkedOffset;
+ _this.set$engineLayer(builder.pushTransform$2$oldLayer(E.Matrix4_Matrix4$translationValues(t1._dx, t1._dy, 0)._m4storage, t2._as(_this._engineLayer)));
+ _this.addChildrenToScene$1(builder);
+ builder.pop$0(0);
+ }
+ _this._inverseDirty = true;
+ },
+ addToScene$1: function(builder) {
+ return this.addToScene$2(builder, C.Offset_0_0);
+ },
+ applyTransform$2: function(child, transform) {
+ var t1 = this._layer$_lastTransform;
+ if (t1 != null)
+ transform.multiply$1(0, t1);
+ else {
+ t1 = this.unlinkedOffset;
+ transform.multiply$1(0, E.Matrix4_Matrix4$translationValues(t1._dx, t1._dy, 0));
+ }
+ }
+ };
+ T.AnnotatedRegionLayer.prototype = {
+ findAnnotations$1$3$onlyFirst: function(result, localPosition, onlyFirst, $S) {
+ var t2, t3, t4, _this = this,
+ isAbsorbed = _this.super$ContainerLayer$findAnnotations(result, localPosition, true, $S),
+ t1 = result._layer$_entries;
+ if (t1.length !== 0 && true)
+ return isAbsorbed;
+ t2 = _this.size;
+ if (t2 != null) {
+ t3 = _this.offset;
+ t4 = t3._dx;
+ t3 = t3._dy;
+ t2 = !new P.Rect(t4, t3, t4 + t2._dx, t3 + t2._dy).contains$1(0, localPosition);
+ } else
+ t2 = false;
+ if (t2)
+ return isAbsorbed;
+ if (H.createRuntimeType(_this.$ti._precomputed1) === H.createRuntimeType($S)) {
+ isAbsorbed = isAbsorbed || false;
+ t1.push(new T.AnnotationEntry($S._as(_this.value), localPosition.$sub(0, _this.offset), $S._eval$1("AnnotationEntry<0>")));
+ }
+ return isAbsorbed;
+ }
+ };
+ T._Layer_AbstractNode_DiagnosticableTreeMixin.prototype = {};
+ R.ListBodyParentData.prototype = {};
+ R.RenderListBody.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof R.ListBodyParentData))
+ child.parentData = new R.ListBodyParentData(null, null, C.Offset_0_0);
+ },
+ set$axisDirection: function(value) {
+ if (this._list_body$_axisDirection === value)
+ return;
+ this._list_body$_axisDirection = value;
+ this.markNeedsLayout$0();
+ },
+ performLayout$0: function() {
+ var t1, innerConstraints, t2, mainAxisExtent, t3, position, _this = this, _null = null,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)),
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ switch (_this._list_body$_axisDirection) {
+ case C.AxisDirection_1:
+ t1 = constraints.maxHeight;
+ innerConstraints = S.BoxConstraints$tightFor(t1, _null);
+ for (t2 = type$.ListBodyParentData, mainAxisExtent = 0; child != null;) {
+ child.layout$2$parentUsesSize(0, innerConstraints, true);
+ t3 = child.parentData;
+ t3.toString;
+ t2._as(t3);
+ t3.offset = new P.Offset(mainAxisExtent, 0);
+ mainAxisExtent += child._size._dx;
+ child = t3.ContainerParentDataMixin_nextSibling;
+ }
+ _this._size = constraints.constrain$1(new P.Size(mainAxisExtent, t1));
+ break;
+ case C.AxisDirection_3:
+ t1 = constraints.maxHeight;
+ innerConstraints = S.BoxConstraints$tightFor(t1, _null);
+ for (t2 = type$.ListBodyParentData, mainAxisExtent = 0; child != null;) {
+ child.layout$2$parentUsesSize(0, innerConstraints, true);
+ t3 = child.parentData;
+ t3.toString;
+ t2._as(t3);
+ mainAxisExtent += child._size._dx;
+ child = t3.ContainerParentDataMixin_nextSibling;
+ }
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ for (position = 0; child != null;) {
+ t3 = child.parentData;
+ t3.toString;
+ t2._as(t3);
+ position += child._size._dx;
+ t3.offset = new P.Offset(mainAxisExtent - position, 0);
+ child = t3.ContainerParentDataMixin_nextSibling;
+ }
+ _this._size = constraints.constrain$1(new P.Size(mainAxisExtent, t1));
+ break;
+ case C.AxisDirection_2:
+ t1 = constraints.maxWidth;
+ innerConstraints = S.BoxConstraints$tightFor(_null, t1);
+ for (t2 = type$.ListBodyParentData, mainAxisExtent = 0; child != null;) {
+ child.layout$2$parentUsesSize(0, innerConstraints, true);
+ t3 = child.parentData;
+ t3.toString;
+ t2._as(t3);
+ t3.offset = new P.Offset(0, mainAxisExtent);
+ mainAxisExtent += child._size._dy;
+ child = t3.ContainerParentDataMixin_nextSibling;
+ }
+ _this._size = constraints.constrain$1(new P.Size(t1, mainAxisExtent));
+ break;
+ case C.AxisDirection_0:
+ t1 = constraints.maxWidth;
+ innerConstraints = S.BoxConstraints$tightFor(_null, t1);
+ for (t2 = type$.ListBodyParentData, mainAxisExtent = 0; child != null;) {
+ child.layout$2$parentUsesSize(0, innerConstraints, true);
+ t3 = child.parentData;
+ t3.toString;
+ t2._as(t3);
+ mainAxisExtent += child._size._dy;
+ child = t3.ContainerParentDataMixin_nextSibling;
+ }
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ for (position = 0; child != null;) {
+ t3 = child.parentData;
+ t3.toString;
+ t2._as(t3);
+ position += child._size._dy;
+ t3.offset = new P.Offset(0, mainAxisExtent - position);
+ child = t3.ContainerParentDataMixin_nextSibling;
+ }
+ _this._size = constraints.constrain$1(new P.Size(t1, mainAxisExtent));
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _getIntrinsicCrossAxis$1: function(childSize) {
+ var t1, extent, t2,
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.ListBodyParentData, extent = 0; child != null;) {
+ extent = Math.max(extent, H.checkNum(childSize.call$1(child)));
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ return extent;
+ },
+ _getIntrinsicMainAxis$1: function(childSize) {
+ var t1, extent, t2,
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.ListBodyParentData, extent = 0; child != null;) {
+ extent += childSize.call$1(child);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ return extent;
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ switch (G.axisDirectionToAxis(this._list_body$_axisDirection)) {
+ case C.Axis_0:
+ return this._getIntrinsicMainAxis$1(new R.RenderListBody_computeMinIntrinsicWidth_closure(height));
+ case C.Axis_1:
+ return this._getIntrinsicCrossAxis$1(new R.RenderListBody_computeMinIntrinsicWidth_closure0(height));
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ switch (G.axisDirectionToAxis(this._list_body$_axisDirection)) {
+ case C.Axis_0:
+ return this._getIntrinsicMainAxis$1(new R.RenderListBody_computeMaxIntrinsicWidth_closure(height));
+ case C.Axis_1:
+ return this._getIntrinsicCrossAxis$1(new R.RenderListBody_computeMaxIntrinsicWidth_closure0(height));
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ switch (G.axisDirectionToAxis(this._list_body$_axisDirection)) {
+ case C.Axis_0:
+ return this._getIntrinsicMainAxis$1(new R.RenderListBody_computeMinIntrinsicHeight_closure(width));
+ case C.Axis_1:
+ return this._getIntrinsicCrossAxis$1(new R.RenderListBody_computeMinIntrinsicHeight_closure0(width));
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ switch (G.axisDirectionToAxis(this._list_body$_axisDirection)) {
+ case C.Axis_0:
+ return this._getIntrinsicMainAxis$1(new R.RenderListBody_computeMaxIntrinsicHeight_closure(width));
+ case C.Axis_1:
+ return this._getIntrinsicCrossAxis$1(new R.RenderListBody_computeMaxIntrinsicHeight_closure0(width));
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ return this.defaultComputeDistanceToFirstActualBaseline$1(baseline);
+ },
+ paint$2: function(context, offset) {
+ this.defaultPaint$2(context, offset);
+ },
+ hitTestChildren$2$position: function(result, position) {
+ return this.defaultHitTestChildren$2$position(result, position);
+ }
+ };
+ R.RenderListBody_computeMinIntrinsicWidth_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_0, this.height, child.get$computeMinIntrinsicWidth());
+ },
+ $signature: 5
+ };
+ R.RenderListBody_computeMinIntrinsicWidth_closure0.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_0, this.height, child.get$computeMinIntrinsicWidth());
+ },
+ $signature: 5
+ };
+ R.RenderListBody_computeMaxIntrinsicWidth_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_1, this.height, child.get$computeMaxIntrinsicWidth());
+ },
+ $signature: 5
+ };
+ R.RenderListBody_computeMaxIntrinsicWidth_closure0.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_1, this.height, child.get$computeMaxIntrinsicWidth());
+ },
+ $signature: 5
+ };
+ R.RenderListBody_computeMinIntrinsicHeight_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_2, this.width, child.get$computeMinIntrinsicHeight());
+ },
+ $signature: 5
+ };
+ R.RenderListBody_computeMinIntrinsicHeight_closure0.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_2, this.width, child.get$computeMinIntrinsicHeight());
+ },
+ $signature: 5
+ };
+ R.RenderListBody_computeMaxIntrinsicHeight_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_3, this.width, child.get$computeMaxIntrinsicHeight());
+ },
+ $signature: 5
+ };
+ R.RenderListBody_computeMaxIntrinsicHeight_closure0.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_3, this.width, child.get$computeMaxIntrinsicHeight());
+ },
+ $signature: 5
+ };
+ R._RenderListBody_RenderBox_ContainerRenderObjectMixin.prototype = {
+ attach$1: function(owner) {
+ var child, t1, t2;
+ this.super$RenderObject$attach(owner);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.ListBodyParentData; child != null;) {
+ child.attach$1(owner);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child, t1, t2;
+ this.super$AbstractNode$detach(0);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.ListBodyParentData; child != null;) {
+ child.detach$0(0);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ R._RenderListBody_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin.prototype = {};
+ A.MouseTrackerCursorMixin.prototype = {
+ _findFirstCursor$1: function(annotations) {
+ var t1 = A._DeferringMouseCursor_firstNonDeferred(H.MappedIterable_MappedIterable(annotations, new A.MouseTrackerCursorMixin__findFirstCursor_closure(), H._instanceType(annotations)._eval$1("Iterable.E"), type$.MouseCursor));
+ return t1 == null ? C.SystemMouseCursor_basic : t1;
+ },
+ _handleDeviceUpdateMouseCursor$1: function(details) {
+ var t1, lastSession, t2, nextCursor, nextSession,
+ device = details.get$device(details);
+ if (type$.PointerRemovedEvent._is(details.triggeringEvent)) {
+ this.MouseTrackerCursorMixin__lastSession.remove$1(0, device);
+ return;
+ }
+ t1 = this.MouseTrackerCursorMixin__lastSession;
+ lastSession = t1.$index(0, device);
+ t2 = details.nextAnnotations;
+ nextCursor = this._findFirstCursor$1(t2.get$keys(t2));
+ t2 = lastSession == null;
+ if (J.$eq$(t2 ? null : lastSession.get$cursor(lastSession), nextCursor))
+ return;
+ nextSession = nextCursor.createSession$1(device);
+ t1.$indexSet(0, device, nextSession);
+ if (!t2)
+ lastSession.dispose$0(0);
+ nextSession.activate$0();
+ }
+ };
+ A.MouseTrackerCursorMixin__findFirstCursor_closure.prototype = {
+ call$1: function(annotation) {
+ return annotation.get$cursor(annotation);
+ },
+ $signature: 202
+ };
+ A.MouseCursorSession.prototype = {
+ get$cursor: function(receiver) {
+ return this.cursor;
+ }
+ };
+ A.MouseCursor0.prototype = {
+ toString$0: function(_) {
+ var debugDescription = this.get$debugDescription();
+ return debugDescription;
+ }
+ };
+ A._DeferringMouseCursor.prototype = {
+ createSession$1: function(device) {
+ throw H.wrapException(P.UnimplementedError$(null));
+ },
+ get$debugDescription: function() {
+ return "defer";
+ }
+ };
+ A._NoopMouseCursorSession.prototype = {
+ activate$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$activate$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$activate$0, $async$completer);
+ },
+ dispose$0: function(_) {
+ }
+ };
+ A._NoopMouseCursor.prototype = {
+ createSession$1: function(device) {
+ return new A._NoopMouseCursorSession(this, device);
+ },
+ get$debugDescription: function() {
+ return "uncontrolled";
+ }
+ };
+ A._SystemMouseCursorSession.prototype = {
+ get$cursor: function(_) {
+ return type$.SystemMouseCursor._as(this.cursor);
+ },
+ activate$0: function() {
+ return C.OptionalMethodChannel_meQ.invokeMethod$1$2("activateSystemCursor", P.LinkedHashMap_LinkedHashMap$_literal(["device", this.device, "kind", type$.SystemMouseCursor._as(this.cursor).kind], type$.String, type$.dynamic), type$.void);
+ },
+ dispose$0: function(_) {
+ }
+ };
+ A.SystemMouseCursor.prototype = {
+ get$debugDescription: function() {
+ return H.getRuntimeType(this).toString$0(0) + "(" + this.kind + ")";
+ },
+ createSession$1: function(device) {
+ return new A._SystemMouseCursorSession(this, device);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof A.SystemMouseCursor && other.kind === this.kind;
+ },
+ get$hashCode: function(_) {
+ return C.JSString_methods.get$hashCode(this.kind);
+ }
+ };
+ A._MouseCursor_Object_Diagnosticable.prototype = {};
+ Y._MouseState.prototype = {
+ replaceAnnotations$1: function(value) {
+ var previous = this._annotations;
+ this._annotations = value;
+ return previous;
+ },
+ toString$0: function(_) {
+ var _s16_ = "#",
+ describeLatestEvent = "latestEvent: " + (_s16_ + Y.shortHash(this._latestEvent)),
+ t1 = this._annotations,
+ describeAnnotations = "annotations: [list of " + t1.get$length(t1) + "]";
+ return _s16_ + Y.shortHash(this) + "(" + describeLatestEvent + ", " + describeAnnotations + ")";
+ }
+ };
+ Y.MouseTrackerUpdateDetails.prototype = {
+ get$device: function(_) {
+ var t1 = this.previousEvent;
+ return t1.get$device(t1);
+ }
+ };
+ Y.BaseMouseTracker.prototype = {
+ _hitTestResultToAnnotations$1: function(result) {
+ var t2, t3, _i, entry, t4, t5,
+ t1 = type$.MouseTrackerAnnotation,
+ annotations = type$.LinkedHashMap_MouseTrackerAnnotation_Matrix4._as(P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.Matrix4));
+ for (t2 = result._path, t3 = t2.length, _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i) {
+ entry = t2[_i];
+ if (t1._is(entry.get$target(entry))) {
+ t4 = t1._as(entry.get$target(entry));
+ t5 = entry._transform;
+ t5.toString;
+ annotations.$indexSet(0, t4, t5);
+ }
+ }
+ return annotations;
+ },
+ _findAnnotations$2: function(state, hitTest) {
+ var t1 = state._latestEvent,
+ globalPosition = t1.get$position(t1);
+ t1 = state._latestEvent;
+ if (!this._mouseStates.containsKey$1(0, t1.get$device(t1)))
+ return type$.LinkedHashMap_MouseTrackerAnnotation_Matrix4._as(P.LinkedHashMap_LinkedHashMap$_empty(type$.MouseTrackerAnnotation, type$.Matrix4));
+ return this._hitTestResultToAnnotations$1(hitTest.call$1(globalPosition));
+ },
+ handleDeviceUpdate$1: function(details) {
+ },
+ updateWithEvent$2: function($event, getResult) {
+ var device, t1, existingState, mouseWasConnected,
+ result = type$.PointerRemovedEvent._is($event) ? O.HitTestResult$() : getResult.call$0();
+ if ($event.get$kind($event) !== C.PointerDeviceKind_1)
+ return;
+ if (type$.PointerSignalEvent._is($event))
+ return;
+ device = $event.get$device($event);
+ t1 = this._mouseStates;
+ existingState = t1.$index(0, device);
+ if (!Y.BaseMouseTracker__shouldMarkStateDirty(existingState, $event))
+ return;
+ mouseWasConnected = t1.get$isNotEmpty(t1);
+ new Y.BaseMouseTracker_updateWithEvent_closure(this, existingState, $event, device, result).call$0();
+ if (mouseWasConnected !== t1.get$isNotEmpty(t1))
+ this.notifyListeners$0();
+ },
+ updateAllDevices$1: function(hitTest) {
+ new Y.BaseMouseTracker_updateAllDevices_closure(this, hitTest).call$0();
+ }
+ };
+ Y.BaseMouseTracker_updateWithEvent_closure.prototype = {
+ call$0: function() {
+ var _this = this;
+ new Y.BaseMouseTracker_updateWithEvent__closure(_this.$this, _this.existingState, _this.event, _this.device, _this.result).call$0();
+ },
+ $signature: 0
+ };
+ Y.BaseMouseTracker_updateWithEvent__closure.prototype = {
+ call$0: function() {
+ var t2, t3, targetState, previous, nextAnnotations, _this = this,
+ t1 = _this.existingState;
+ if (t1 == null) {
+ t2 = _this.event;
+ _this.$this._mouseStates.$indexSet(0, _this.device, new Y._MouseState(P.LinkedHashMap_LinkedHashMap(null, null, type$.MouseTrackerAnnotation, type$.Matrix4), t2));
+ } else {
+ t2 = _this.event;
+ if (type$.PointerRemovedEvent._is(t2))
+ _this.$this._mouseStates.remove$1(0, t2.get$device(t2));
+ }
+ t3 = _this.$this;
+ targetState = t3._mouseStates.$index(0, _this.device);
+ if (targetState == null) {
+ t1.toString;
+ targetState = t1;
+ }
+ previous = targetState._latestEvent;
+ targetState._latestEvent = t2;
+ nextAnnotations = type$.PointerRemovedEvent._is(t2) ? type$.LinkedHashMap_MouseTrackerAnnotation_Matrix4._as(P.LinkedHashMap_LinkedHashMap$_empty(type$.MouseTrackerAnnotation, type$.Matrix4)) : t3._hitTestResultToAnnotations$1(_this.result);
+ t1 = new Y.MouseTrackerUpdateDetails(targetState.replaceAnnotations$1(nextAnnotations), nextAnnotations, previous, t2);
+ t3.super$_MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin$handleDeviceUpdate(t1);
+ Y._MouseTrackerEventMixin__handleDeviceUpdateMouseEvents(t1);
+ },
+ $signature: 0
+ };
+ Y.BaseMouseTracker_updateAllDevices_closure.prototype = {
+ call$0: function() {
+ var t1, t2, t3, t4, lastEvent, nextAnnotations, previous;
+ for (t1 = this.$this, t2 = t1._mouseStates, t2 = t2.get$values(t2), t2 = t2.get$iterator(t2), t3 = this.hitTest; t2.moveNext$0();) {
+ t4 = t2.get$current(t2);
+ lastEvent = t4._latestEvent;
+ nextAnnotations = t1._findAnnotations$2(t4, t3);
+ previous = t4._annotations;
+ t4._annotations = nextAnnotations;
+ t4 = new Y.MouseTrackerUpdateDetails(previous, nextAnnotations, lastEvent, null);
+ t1.super$_MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin$handleDeviceUpdate(t4);
+ Y._MouseTrackerEventMixin__handleDeviceUpdateMouseEvents(t4);
+ }
+ },
+ $signature: 0
+ };
+ Y._MouseTrackerEventMixin.prototype = {};
+ Y._MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure.prototype = {
+ call$2: function(annotation, transform) {
+ var t1;
+ if (!this.nextAnnotations.containsKey$1(0, annotation))
+ if (annotation.get$onExit(annotation) != null) {
+ t1 = annotation.get$onExit(annotation);
+ t1.toString;
+ t1.call$1(this.baseExitEvent.transformed$1(this.lastAnnotations.$index(0, annotation)));
+ }
+ },
+ $signature: 203
+ };
+ Y._MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure0.prototype = {
+ call$1: function(annotation) {
+ return !this.lastAnnotations.containsKey$1(0, annotation);
+ },
+ $signature: 204
+ };
+ Y.MouseTracker.prototype = {};
+ Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin.prototype = {
+ handleDeviceUpdate$1: function(details) {
+ this.super$BaseMouseTracker$handleDeviceUpdate(details);
+ this._handleDeviceUpdateMouseCursor$1(details);
+ }
+ };
+ Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin__MouseTrackerEventMixin.prototype = {};
+ Y._MouseTrackerUpdateDetails_Object_Diagnosticable.prototype = {};
+ K.ParentData.prototype = {
+ detach$0: function(_) {
+ },
+ toString$0: function(_) {
+ return "";
+ }
+ };
+ K.PaintingContext.prototype = {
+ paintChild$2: function(child, offset) {
+ var t1;
+ if (child.get$isRepaintBoundary()) {
+ this.stopRecordingIfNeeded$0();
+ if (child._needsPaint)
+ K.PaintingContext__repaintCompositedChild(child, null, true);
+ t1 = child._layer;
+ t1.toString;
+ type$.OffsetLayer._as(t1).set$offset(0, offset);
+ t1 = child._layer;
+ t1.toString;
+ this.appendLayer$1(t1);
+ } else
+ child._paintWithContext$2(this, offset);
+ },
+ appendLayer$1: function(layer) {
+ layer.remove$0(0);
+ this._containerLayer.append$1(0, layer);
+ },
+ get$canvas: function(_) {
+ var t1, _this = this;
+ if (_this._canvas == null) {
+ _this._currentLayer = new T.PictureLayer(_this.estimatedBounds);
+ t1 = P.PictureRecorder_PictureRecorder();
+ _this._recorder = t1;
+ _this._canvas = P.Canvas_Canvas(t1, null);
+ t1 = _this._currentLayer;
+ t1.toString;
+ _this._containerLayer.append$1(0, t1);
+ }
+ t1 = _this._canvas;
+ t1.toString;
+ return t1;
+ },
+ stopRecordingIfNeeded$0: function() {
+ var t1, t2, _this = this;
+ if (_this._canvas == null)
+ return;
+ t1 = _this._currentLayer;
+ t1.toString;
+ t2 = _this._recorder.endRecording$0();
+ t1.markNeedsAddToScene$0();
+ t1._picture = t2;
+ _this._canvas = _this._recorder = _this._currentLayer = null;
+ },
+ setIsComplexHint$0: function() {
+ var t1 = this._currentLayer;
+ if (t1 != null)
+ if (!t1._isComplexHint) {
+ t1._isComplexHint = true;
+ t1.markNeedsAddToScene$0();
+ }
+ },
+ pushLayer$4$childPaintBounds: function(childLayer, painter, offset, childPaintBounds) {
+ var childContext, _this = this;
+ if (childLayer._firstChild != null)
+ childLayer.removeAllChildren$0();
+ _this.stopRecordingIfNeeded$0();
+ _this.appendLayer$1(childLayer);
+ childContext = _this.createChildContext$2(childLayer, childPaintBounds == null ? _this.estimatedBounds : childPaintBounds);
+ painter.call$2(childContext, offset);
+ childContext.stopRecordingIfNeeded$0();
+ },
+ pushLayer$3: function(childLayer, painter, offset) {
+ return this.pushLayer$4$childPaintBounds(childLayer, painter, offset, null);
+ },
+ createChildContext$2: function(childLayer, bounds) {
+ return new K.PaintingContext(childLayer, bounds);
+ },
+ pushClipRect$6$clipBehavior$oldLayer: function(needsCompositing, offset, clipRect, painter, clipBehavior, oldLayer) {
+ var layer,
+ offsetClipRect = clipRect.shift$1(offset);
+ if (needsCompositing) {
+ layer = oldLayer == null ? new T.ClipRectLayer(C.Clip_1) : oldLayer;
+ if (!offsetClipRect.$eq(0, layer._clipRect)) {
+ layer._clipRect = offsetClipRect;
+ layer.markNeedsAddToScene$0();
+ }
+ if (clipBehavior !== layer._layer$_clipBehavior) {
+ layer._layer$_clipBehavior = clipBehavior;
+ layer.markNeedsAddToScene$0();
+ }
+ this.pushLayer$4$childPaintBounds(layer, painter, offset, offsetClipRect);
+ return layer;
+ } else {
+ this.clipRectAndPaint$4(offsetClipRect, clipBehavior, offsetClipRect, new K.PaintingContext_pushClipRect_closure(this, painter, offset));
+ return null;
+ }
+ },
+ pushClipPath$7$clipBehavior$oldLayer: function(needsCompositing, offset, bounds, clipPath, painter, clipBehavior, oldLayer) {
+ var layer,
+ offsetBounds = bounds.shift$1(offset),
+ offsetClipPath = clipPath.shift$1(offset);
+ if (needsCompositing) {
+ layer = oldLayer == null ? new T.ClipPathLayer(C.Clip_2) : oldLayer;
+ if (offsetClipPath !== layer._clipPath) {
+ layer._clipPath = offsetClipPath;
+ layer.markNeedsAddToScene$0();
+ }
+ if (clipBehavior !== layer._layer$_clipBehavior) {
+ layer._layer$_clipBehavior = clipBehavior;
+ layer.markNeedsAddToScene$0();
+ }
+ this.pushLayer$4$childPaintBounds(layer, painter, offset, offsetBounds);
+ return layer;
+ } else {
+ this.clipPathAndPaint$4(offsetClipPath, clipBehavior, offsetBounds, new K.PaintingContext_pushClipPath_closure(this, painter, offset));
+ return null;
+ }
+ },
+ pushTransform$5$oldLayer: function(needsCompositing, offset, transform, painter, oldLayer) {
+ var layer, _this = this,
+ t1 = offset._dx,
+ t2 = offset._dy,
+ effectiveTransform = E.Matrix4_Matrix4$translationValues(t1, t2, 0);
+ effectiveTransform.multiply$1(0, transform);
+ effectiveTransform.translate$2(0, -t1, -t2);
+ if (needsCompositing) {
+ layer = oldLayer == null ? new T.TransformLayer(null, C.Offset_0_0) : oldLayer;
+ layer.set$transform(0, effectiveTransform);
+ _this.pushLayer$4$childPaintBounds(layer, painter, offset, T.MatrixUtils_inverseTransformRect(effectiveTransform, _this.estimatedBounds));
+ return layer;
+ } else {
+ t1 = _this.get$canvas(_this);
+ t1.save$0(0);
+ t1.transform$1(0, effectiveTransform._m4storage);
+ painter.call$2(_this, offset);
+ _this.get$canvas(_this).restore$0(0);
+ return null;
+ }
+ },
+ pushTransform$4: function(needsCompositing, offset, transform, painter) {
+ return this.pushTransform$5$oldLayer(needsCompositing, offset, transform, painter, null);
+ },
+ pushOpacity$4$oldLayer: function(offset, alpha, painter, oldLayer) {
+ var layer = oldLayer == null ? new T.OpacityLayer(C.Offset_0_0) : oldLayer;
+ if (alpha != layer._layer$_alpha) {
+ layer._layer$_alpha = alpha;
+ layer.markNeedsAddToScene$0();
+ }
+ if (!offset.$eq(0, layer._layer$_offset)) {
+ layer._layer$_offset = offset;
+ layer.markNeedsAddToScene$0();
+ }
+ this.pushLayer$3(layer, painter, C.Offset_0_0);
+ return layer;
+ },
+ toString$0: function(_) {
+ return "PaintingContext#" + H.Primitives_objectHashCode(this) + "(layer: " + H.S(this._containerLayer) + ", canvas bounds: " + this.estimatedBounds.toString$0(0) + ")";
+ }
+ };
+ K.PaintingContext_pushClipRect_closure.prototype = {
+ call$0: function() {
+ return this.painter.call$2(this.$this, this.offset);
+ },
+ $signature: 0
+ };
+ K.PaintingContext_pushClipPath_closure.prototype = {
+ call$0: function() {
+ return this.painter.call$2(this.$this, this.offset);
+ },
+ $signature: 0
+ };
+ K.Constraints.prototype = {};
+ K.SemanticsHandle.prototype = {
+ dispose$0: function(_) {
+ var t1 = this.listener;
+ if (t1 != null)
+ this._object$_owner._semanticsOwner.removeListener$1(0, t1);
+ t1 = this._object$_owner;
+ if (--t1._outstandingSemanticsHandles === 0) {
+ t1._semanticsOwner.dispose$0(0);
+ t1._semanticsOwner = null;
+ t1.onSemanticsOwnerDisposed.call$0();
+ }
+ }
+ };
+ K.PipelineOwner.prototype = {
+ requestVisualUpdate$0: function() {
+ this.onNeedVisualUpdate.call$0();
+ },
+ set$rootNode: function(value) {
+ var t1 = this._rootNode;
+ if (t1 === value)
+ return;
+ if (t1 != null)
+ t1.detach$0(0);
+ this._rootNode = value;
+ value.attach$1(this);
+ },
+ flushLayout$0: function() {
+ var dirtyNodes, node, t1, t2, t3, t4, t5, _i;
+ P.Timeline_startSync("Layout", C.Map_9aZ6I, null);
+ try {
+ for (t1 = type$.nullable_PipelineOwner, t2 = type$.JSArray_RenderObject; t3 = this._nodesNeedingLayout, t3.length !== 0;) {
+ dirtyNodes = t3;
+ this._nodesNeedingLayout = H.setRuntimeTypeInfo([], t2);
+ t3 = dirtyNodes;
+ t4 = new K.PipelineOwner_flushLayout_closure();
+ if (!!t3.immutable$list)
+ H.throwExpression(P.UnsupportedError$("sort"));
+ t5 = t3.length - 1;
+ if (t5 - 0 <= 32)
+ H.Sort__insertionSort(t3, 0, t5, t4);
+ else
+ H.Sort__dualPivotQuicksort(t3, 0, t5, t4);
+ t4 = t3.length;
+ _i = 0;
+ for (; _i < t3.length; t3.length === t4 || (0, H.throwConcurrentModificationError)(t3), ++_i) {
+ node = t3[_i];
+ if (node._needsLayout) {
+ t5 = node;
+ t5 = t1._as(B.AbstractNode.prototype.get$owner.call(t5)) === this;
+ } else
+ t5 = false;
+ if (t5)
+ node._layoutWithoutResize$0();
+ }
+ }
+ } finally {
+ P.Timeline_finishSync();
+ }
+ },
+ _enableMutationsToDirtySubtrees$1: function(callback) {
+ try {
+ callback.call$0();
+ } finally {
+ }
+ },
+ flushCompositingBits$0: function() {
+ var t1, t2, t3, _i, node;
+ P.Timeline_startSync("Compositing bits", null, null);
+ t1 = this._nodesNeedingCompositingBitsUpdate;
+ C.JSArray_methods.sort$1(t1, new K.PipelineOwner_flushCompositingBits_closure());
+ for (t2 = t1.length, t3 = type$.nullable_PipelineOwner, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ node = t1[_i];
+ if (node._needsCompositingBitsUpdate && t3._as(B.AbstractNode.prototype.get$owner.call(node)) === this)
+ node._updateCompositingBits$0();
+ }
+ C.JSArray_methods.set$length(t1, 0);
+ P.Timeline_finishSync();
+ },
+ flushPaint$0: function() {
+ var dirtyNodes, node, t1, t2, t3, _i, t4;
+ P.Timeline_startSync("Paint", C.Map_9aZ6I, null);
+ try {
+ dirtyNodes = this._nodesNeedingPaint;
+ this._nodesNeedingPaint = H.setRuntimeTypeInfo([], type$.JSArray_RenderObject);
+ for (t1 = dirtyNodes, J.sort$1$ax(t1, new K.PipelineOwner_flushPaint_closure()), t2 = t1.length, t3 = type$.nullable_PipelineOwner, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ node = t1[_i];
+ if (node._needsPaint) {
+ t4 = node;
+ t4 = t3._as(B.AbstractNode.prototype.get$owner.call(t4)) === this;
+ } else
+ t4 = false;
+ if (t4)
+ if (node._layer._node$_owner != null)
+ K.PaintingContext__repaintCompositedChild(node, null, false);
+ else
+ node._skippedPaintingOnLayer$0();
+ }
+ } finally {
+ P.Timeline_finishSync();
+ }
+ },
+ ensureSemantics$1$listener: function(listener) {
+ var t1, _this = this;
+ if (++_this._outstandingSemanticsHandles === 1) {
+ t1 = type$.SemanticsNode;
+ _this._semanticsOwner = new A.SemanticsOwner(P.LinkedHashSet_LinkedHashSet$_empty(t1), P.LinkedHashMap_LinkedHashMap$_empty(type$.int, t1), P.LinkedHashSet_LinkedHashSet$_empty(t1), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ _this.onSemanticsOwnerCreated.call$0();
+ }
+ if (listener != null) {
+ t1 = _this._semanticsOwner.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(listener), false);
+ }
+ return new K.SemanticsHandle(_this, listener);
+ },
+ ensureSemantics$0: function() {
+ return this.ensureSemantics$1$listener(null);
+ },
+ flushSemantics$0: function() {
+ var nodesToProcess, node, t1, nodesToProcess0, t2, t3, _i, t4, _this = this;
+ if (_this._semanticsOwner == null)
+ return;
+ P.Timeline_startSync("Semantics", null, null);
+ try {
+ t1 = _this._nodesNeedingSemantics;
+ nodesToProcess0 = P.List_List$of(t1, true, H._instanceType(t1)._eval$1("SetMixin.E"));
+ C.JSArray_methods.sort$1(nodesToProcess0, new K.PipelineOwner_flushSemantics_closure());
+ nodesToProcess = nodesToProcess0;
+ t1.clear$0(0);
+ for (t1 = nodesToProcess, t2 = t1.length, t3 = type$.nullable_PipelineOwner, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ node = t1[_i];
+ if (node._needsSemanticsUpdate) {
+ t4 = node;
+ t4 = t3._as(B.AbstractNode.prototype.get$owner.call(t4)) === _this;
+ } else
+ t4 = false;
+ if (t4)
+ node._updateSemantics$0();
+ }
+ _this._semanticsOwner.sendSemanticsUpdate$0();
+ } finally {
+ P.Timeline_finishSync();
+ }
+ }
+ };
+ K.PipelineOwner_flushLayout_closure.prototype = {
+ call$2: function(a, b) {
+ return a._node$_depth - b._node$_depth;
+ },
+ $signature: 56
+ };
+ K.PipelineOwner_flushCompositingBits_closure.prototype = {
+ call$2: function(a, b) {
+ return a._node$_depth - b._node$_depth;
+ },
+ $signature: 56
+ };
+ K.PipelineOwner_flushPaint_closure.prototype = {
+ call$2: function(a, b) {
+ return b._node$_depth - a._node$_depth;
+ },
+ $signature: 56
+ };
+ K.PipelineOwner_flushSemantics_closure.prototype = {
+ call$2: function(a, b) {
+ return a._node$_depth - b._node$_depth;
+ },
+ $signature: 56
+ };
+ K.RenderObject.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof K.ParentData))
+ child.parentData = new K.ParentData();
+ },
+ adoptChild$1: function(child) {
+ var _this = this;
+ _this.setupParentData$1(child);
+ _this.markNeedsLayout$0();
+ _this.markNeedsCompositingBitsUpdate$0();
+ _this.markNeedsSemanticsUpdate$0();
+ _this.super$AbstractNode$adoptChild(child);
+ },
+ dropChild$1: function(child) {
+ var _this = this;
+ child._cleanRelayoutBoundary$0();
+ child.parentData.detach$0(0);
+ child.parentData = null;
+ _this.super$AbstractNode$dropChild(child);
+ _this.markNeedsLayout$0();
+ _this.markNeedsCompositingBitsUpdate$0();
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ visitChildren$1: function(visitor) {
+ },
+ _debugReportException$3: function(method, exception, stack) {
+ var t1 = U.ErrorDescription$("during " + method + "()"),
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "rendering library", t1, new K.RenderObject__debugReportException_closure(this), false));
+ },
+ attach$1: function(owner) {
+ var _this = this;
+ _this.super$AbstractNode$attach(owner);
+ if (_this._needsLayout && _this._relayoutBoundary != null) {
+ _this._needsLayout = false;
+ _this.markNeedsLayout$0();
+ }
+ if (_this._needsCompositingBitsUpdate) {
+ _this._needsCompositingBitsUpdate = false;
+ _this.markNeedsCompositingBitsUpdate$0();
+ }
+ if (_this._needsPaint && _this._layer != null) {
+ _this._needsPaint = false;
+ _this.markNeedsPaint$0();
+ }
+ if (_this._needsSemanticsUpdate && _this.get$_semanticsConfiguration()._isSemanticBoundary) {
+ _this._needsSemanticsUpdate = false;
+ _this.markNeedsSemanticsUpdate$0();
+ }
+ },
+ get$constraints: function() {
+ var t1 = this._constraints;
+ if (t1 == null)
+ throw H.wrapException(P.StateError$("A RenderObject does not have any constraints before it has been laid out."));
+ return t1;
+ },
+ markNeedsLayout$0: function() {
+ var t1, _this = this;
+ if (_this._needsLayout)
+ return;
+ if (_this._relayoutBoundary !== _this)
+ _this.markParentNeedsLayout$0();
+ else {
+ _this._needsLayout = true;
+ t1 = type$.nullable_PipelineOwner;
+ if (t1._as(B.AbstractNode.prototype.get$owner.call(_this)) != null) {
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this))._nodesNeedingLayout.push(_this);
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this)).requestVisualUpdate$0();
+ }
+ }
+ },
+ markParentNeedsLayout$0: function() {
+ this._needsLayout = true;
+ var t1 = this._node$_parent;
+ t1.toString;
+ type$.RenderObject._as(t1);
+ if (!this._doingThisLayoutWithCallback)
+ t1.markNeedsLayout$0();
+ },
+ _cleanRelayoutBoundary$0: function() {
+ var _this = this;
+ if (_this._relayoutBoundary !== _this) {
+ _this._relayoutBoundary = null;
+ _this._needsLayout = true;
+ _this.visitChildren$1(K.object_RenderObject__cleanChildRelayoutBoundary$closure());
+ }
+ },
+ _layoutWithoutResize$0: function() {
+ var e, stack, exception, _this = this;
+ try {
+ _this.performLayout$0();
+ _this.markNeedsSemanticsUpdate$0();
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ stack = H.getTraceFromException(exception);
+ _this._debugReportException$3("performLayout", e, stack);
+ }
+ _this._needsLayout = false;
+ _this.markNeedsPaint$0();
+ },
+ layout$2$parentUsesSize: function(_, constraints, parentUsesSize) {
+ var e, stack, e0, stack0, relayoutBoundary, t1, exception, _this = this;
+ if (!parentUsesSize || _this.get$sizedByParent() || constraints.get$isTight() || !(_this._node$_parent instanceof K.RenderObject))
+ relayoutBoundary = _this;
+ else {
+ t1 = _this._node$_parent;
+ t1.toString;
+ relayoutBoundary = type$.RenderObject._as(t1)._relayoutBoundary;
+ }
+ if (!_this._needsLayout && J.$eq$(constraints, _this._constraints) && relayoutBoundary == _this._relayoutBoundary)
+ return;
+ _this._constraints = constraints;
+ t1 = _this._relayoutBoundary;
+ if (t1 != null && relayoutBoundary !== t1)
+ _this.visitChildren$1(K.object_RenderObject__cleanChildRelayoutBoundary$closure());
+ _this._relayoutBoundary = relayoutBoundary;
+ if (_this.get$sizedByParent())
+ try {
+ _this.performResize$0();
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ stack = H.getTraceFromException(exception);
+ _this._debugReportException$3("performResize", e, stack);
+ }
+ try {
+ _this.performLayout$0();
+ _this.markNeedsSemanticsUpdate$0();
+ } catch (exception) {
+ e0 = H.unwrapException(exception);
+ stack0 = H.getTraceFromException(exception);
+ _this._debugReportException$3("performLayout", e0, stack0);
+ }
+ _this._needsLayout = false;
+ _this.markNeedsPaint$0();
+ },
+ layout$1: function($receiver, constraints) {
+ return this.layout$2$parentUsesSize($receiver, constraints, false);
+ },
+ get$sizedByParent: function() {
+ return false;
+ },
+ invokeLayoutCallback$1$1: function(callback, $T) {
+ var _this = this;
+ _this._doingThisLayoutWithCallback = true;
+ try {
+ type$.nullable_PipelineOwner._as(B.AbstractNode.prototype.get$owner.call(_this))._enableMutationsToDirtySubtrees$1(new K.RenderObject_invokeLayoutCallback_closure(_this, callback, $T));
+ } finally {
+ _this._doingThisLayoutWithCallback = false;
+ }
+ },
+ get$isRepaintBoundary: function() {
+ return false;
+ },
+ get$alwaysNeedsCompositing: function() {
+ return false;
+ },
+ get$layer: function(_) {
+ return this._layer;
+ },
+ markNeedsCompositingBitsUpdate$0: function() {
+ var t1, _this = this;
+ if (_this._needsCompositingBitsUpdate)
+ return;
+ _this._needsCompositingBitsUpdate = true;
+ t1 = _this._node$_parent;
+ if (t1 instanceof K.RenderObject) {
+ if (t1._needsCompositingBitsUpdate)
+ return;
+ if (!_this.get$isRepaintBoundary() && !t1.get$isRepaintBoundary()) {
+ t1.markNeedsCompositingBitsUpdate$0();
+ return;
+ }
+ }
+ t1 = type$.nullable_PipelineOwner;
+ if (t1._as(B.AbstractNode.prototype.get$owner.call(_this)) != null)
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this))._nodesNeedingCompositingBitsUpdate.push(_this);
+ },
+ get$_needsCompositing: function() {
+ return this.__RenderObject__needsCompositing_isSet ? this.__RenderObject__needsCompositing : H.throwExpression(H.LateError$fieldNI("_needsCompositing"));
+ },
+ _updateCompositingBits$0: function() {
+ var oldNeedsCompositing, _this = this;
+ if (!_this._needsCompositingBitsUpdate)
+ return;
+ oldNeedsCompositing = _this.get$_needsCompositing();
+ _this.__RenderObject__needsCompositing_isSet = true;
+ _this.__RenderObject__needsCompositing = false;
+ _this.visitChildren$1(new K.RenderObject__updateCompositingBits_closure(_this));
+ if (_this.get$isRepaintBoundary() || _this.get$alwaysNeedsCompositing())
+ _this.__RenderObject__needsCompositing = _this.__RenderObject__needsCompositing_isSet = true;
+ if (oldNeedsCompositing != _this.get$_needsCompositing())
+ _this.markNeedsPaint$0();
+ _this._needsCompositingBitsUpdate = false;
+ },
+ markNeedsPaint$0: function() {
+ var t1, _this = this;
+ if (_this._needsPaint)
+ return;
+ _this._needsPaint = true;
+ if (_this.get$isRepaintBoundary()) {
+ t1 = type$.nullable_PipelineOwner;
+ if (t1._as(B.AbstractNode.prototype.get$owner.call(_this)) != null) {
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this))._nodesNeedingPaint.push(_this);
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this)).requestVisualUpdate$0();
+ }
+ } else {
+ t1 = _this._node$_parent;
+ if (t1 instanceof K.RenderObject)
+ t1.markNeedsPaint$0();
+ else {
+ t1 = type$.nullable_PipelineOwner;
+ if (t1._as(B.AbstractNode.prototype.get$owner.call(_this)) != null)
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this)).requestVisualUpdate$0();
+ }
+ }
+ },
+ _skippedPaintingOnLayer$0: function() {
+ var t1,
+ node = this._node$_parent;
+ for (; node instanceof K.RenderObject;) {
+ if (node.get$isRepaintBoundary()) {
+ t1 = node._layer;
+ if (t1 == null)
+ break;
+ if (t1._node$_owner != null)
+ break;
+ node._needsPaint = true;
+ }
+ node = node._node$_parent;
+ }
+ },
+ _paintWithContext$2: function(context, offset) {
+ var e, stack, exception, _this = this;
+ if (_this._needsLayout)
+ return;
+ _this._needsPaint = false;
+ try {
+ _this.paint$2(context, offset);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ stack = H.getTraceFromException(exception);
+ _this._debugReportException$3("paint", e, stack);
+ }
+ },
+ paint$2: function(context, offset) {
+ },
+ applyPaintTransform$2: function(child, transform) {
+ },
+ getTransformTo$1: function(_, ancestor) {
+ var rootNode, renderers, t2, renderer, t3, transform, index, index0,
+ t1 = ancestor == null;
+ if (t1) {
+ rootNode = type$.nullable_PipelineOwner._as(B.AbstractNode.prototype.get$owner.call(this))._rootNode;
+ if (rootNode instanceof K.RenderObject)
+ ancestor = rootNode;
+ }
+ renderers = H.setRuntimeTypeInfo([], type$.JSArray_RenderObject);
+ t2 = type$.RenderObject;
+ renderer = this;
+ while (renderer !== ancestor) {
+ renderers.push(renderer);
+ t3 = renderer._node$_parent;
+ t3.toString;
+ t2._as(t3);
+ renderer = t3;
+ }
+ if (!t1) {
+ ancestor.toString;
+ renderers.push(ancestor);
+ }
+ transform = new E.Matrix4(new Float64Array(16));
+ transform.setIdentity$0();
+ for (index = renderers.length - 1; index > 0; index = index0) {
+ index0 = index - 1;
+ renderers[index].applyPaintTransform$2(renderers[index0], transform);
+ }
+ return transform;
+ },
+ describeApproximatePaintClip$1: function(child) {
+ return null;
+ },
+ describeSemanticsClip$1: function(child) {
+ return null;
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ },
+ sendSemanticsEvent$1: function(semanticsEvent) {
+ var t1;
+ if (type$.nullable_PipelineOwner._as(B.AbstractNode.prototype.get$owner.call(this))._semanticsOwner == null)
+ return;
+ t1 = this._semantics;
+ if (t1 != null && !t1._isMergedIntoParent)
+ t1.sendEvent$1(semanticsEvent);
+ else {
+ t1 = this._node$_parent;
+ if (t1 != null)
+ type$.RenderObject._as(t1).sendSemanticsEvent$1(semanticsEvent);
+ }
+ },
+ get$_semanticsConfiguration: function() {
+ var t1, _this = this;
+ if (_this._cachedSemanticsConfiguration == null) {
+ t1 = A.SemanticsConfiguration$();
+ _this._cachedSemanticsConfiguration = t1;
+ _this.describeSemanticsConfiguration$1(t1);
+ }
+ t1 = _this._cachedSemanticsConfiguration;
+ t1.toString;
+ return t1;
+ },
+ get$debugSemantics: function() {
+ var t1 = this._semantics;
+ return t1;
+ },
+ clearSemantics$0: function() {
+ this._needsSemanticsUpdate = true;
+ this._semantics = null;
+ this.visitChildren$1(new K.RenderObject_clearSemantics_closure());
+ },
+ markNeedsSemanticsUpdate$0: function() {
+ var t1, wasSemanticsBoundary, isEffectiveSemanticsBoundary, t2, t3, t4, t5, node, t6, t7, _this = this;
+ if (_this._node$_owner == null || type$.nullable_PipelineOwner._as(B.AbstractNode.prototype.get$owner.call(_this))._semanticsOwner == null) {
+ _this._cachedSemanticsConfiguration = null;
+ return;
+ }
+ if (_this._semantics != null) {
+ t1 = _this._cachedSemanticsConfiguration;
+ wasSemanticsBoundary = (t1 == null ? null : t1._isSemanticBoundary) === true;
+ } else
+ wasSemanticsBoundary = false;
+ _this._cachedSemanticsConfiguration = null;
+ isEffectiveSemanticsBoundary = _this.get$_semanticsConfiguration()._isSemanticBoundary && wasSemanticsBoundary;
+ t1 = type$.RenderObject;
+ t2 = type$.SemanticsAction;
+ t3 = type$.void_Function_dynamic;
+ t4 = type$.CustomSemanticsAction;
+ t5 = type$.void_Function;
+ node = _this;
+ while (true) {
+ if (!(!isEffectiveSemanticsBoundary && node._node$_parent instanceof K.RenderObject))
+ break;
+ if (node !== _this && node._needsSemanticsUpdate)
+ break;
+ node._needsSemanticsUpdate = true;
+ t6 = node._node$_parent;
+ t6.toString;
+ t1._as(t6);
+ if (t6._cachedSemanticsConfiguration == null) {
+ t7 = new A.SemanticsConfiguration(P.LinkedHashMap_LinkedHashMap$_empty(t2, t3), P.LinkedHashMap_LinkedHashMap$_empty(t4, t5));
+ t6._cachedSemanticsConfiguration = t7;
+ t6.describeSemanticsConfiguration$1(t7);
+ }
+ isEffectiveSemanticsBoundary = t6._cachedSemanticsConfiguration._isSemanticBoundary;
+ if (isEffectiveSemanticsBoundary && t6._semantics == null)
+ return;
+ node = t6;
+ }
+ if (node !== _this && _this._semantics != null && _this._needsSemanticsUpdate)
+ type$.nullable_PipelineOwner._as(B.AbstractNode.prototype.get$owner.call(_this))._nodesNeedingSemantics.remove$1(0, _this);
+ if (!node._needsSemanticsUpdate) {
+ node._needsSemanticsUpdate = true;
+ t1 = type$.nullable_PipelineOwner;
+ if (t1._as(B.AbstractNode.prototype.get$owner.call(_this)) != null) {
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this))._nodesNeedingSemantics.add$1(0, node);
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this)).requestVisualUpdate$0();
+ }
+ }
+ },
+ _updateSemantics$0: function() {
+ var t1, interestingFragment, result, t2, t3, t4, _this = this, _null = null;
+ if (_this._needsLayout)
+ return;
+ t1 = _this._semantics;
+ if (t1 == null)
+ t1 = _null;
+ else {
+ t1 = type$.nullable_SemanticsNode._as(B.AbstractNode.prototype.get$parent.call(t1, t1));
+ if (t1 == null)
+ t1 = _null;
+ else
+ t1 = t1._mergeAllDescendantsIntoThisNode || t1._isMergedIntoParent;
+ }
+ interestingFragment = type$._InterestingSemanticsFragment._as(_this._getSemanticsForParent$1$mergeIntoParent(t1 === true));
+ result = H.setRuntimeTypeInfo([], type$.JSArray_SemanticsNode);
+ t1 = _this._semantics;
+ t2 = t1 == null;
+ t3 = t2 ? _null : t1.parentSemanticsClipRect;
+ t4 = t2 ? _null : t1.parentPaintClipRect;
+ t1 = t2 ? _null : t1.elevationAdjustment;
+ interestingFragment.compileChildren$4$elevationAdjustment$parentPaintClipRect$parentSemanticsClipRect$result(t1 == null ? 0 : t1, t4, t3, result);
+ C.JSArray_methods.get$single(result);
+ },
+ _getSemanticsForParent$1$mergeIntoParent: function(mergeIntoParent) {
+ var producesForkingFragment, t1, fragments, toBeMarkedExplicit, childrenMergeIntoParent, t2, result, _this = this, _box_0 = {},
+ config = _this.get$_semanticsConfiguration();
+ _box_0.dropSemanticsOfPreviousSiblings = config.isBlockingSemanticsOfPreviouslyPaintedNodes;
+ producesForkingFragment = !config._hasBeenAnnotated && !config._isSemanticBoundary;
+ t1 = type$.JSArray__InterestingSemanticsFragment;
+ fragments = H.setRuntimeTypeInfo([], t1);
+ toBeMarkedExplicit = P.LinkedHashSet_LinkedHashSet$_empty(type$._InterestingSemanticsFragment);
+ childrenMergeIntoParent = mergeIntoParent || config._isMergingSemanticsOfDescendants;
+ _box_0.abortWalk = false;
+ _this.visitChildrenForSemantics$1(new K.RenderObject__getSemanticsForParent_closure(_box_0, _this, childrenMergeIntoParent, fragments, toBeMarkedExplicit, config, producesForkingFragment));
+ if (_box_0.abortWalk)
+ return new K._AbortingSemanticsFragment(H.setRuntimeTypeInfo([_this], type$.JSArray_RenderObject), false);
+ for (t2 = P._LinkedHashSetIterator$(toBeMarkedExplicit, toBeMarkedExplicit._collection$_modifications); t2.moveNext$0();)
+ t2._collection$_current.markAsExplicit$0();
+ _this._needsSemanticsUpdate = false;
+ if (!(_this._node$_parent instanceof K.RenderObject)) {
+ t2 = _box_0.dropSemanticsOfPreviousSiblings;
+ result = new K._RootSemanticsFragment(H.setRuntimeTypeInfo([], t1), H.setRuntimeTypeInfo([_this], type$.JSArray_RenderObject), t2);
+ } else {
+ t2 = _box_0.dropSemanticsOfPreviousSiblings;
+ if (producesForkingFragment)
+ result = new K._ContainerSemanticsFragment(H.setRuntimeTypeInfo([], t1), t2);
+ else {
+ result = new K._SwitchableSemanticsFragment(mergeIntoParent, config, H.setRuntimeTypeInfo([], t1), H.setRuntimeTypeInfo([_this], type$.JSArray_RenderObject), t2);
+ if (config._isSemanticBoundary)
+ result._isExplicit = true;
+ }
+ }
+ result.addAll$1(0, fragments);
+ return result;
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ this.visitChildren$1(visitor);
+ },
+ assembleSemanticsNode$3: function(node, config, children) {
+ node.updateWith$2$childrenInInversePaintOrder$config(0, type$.List_SemanticsNode._as(children), config);
+ },
+ handleEvent$2: function($event, entry) {
+ },
+ toStringShort$0: function() {
+ var t2, target, count, _this = this,
+ header = "#" + Y.shortHash(_this),
+ t1 = _this._relayoutBoundary;
+ if (t1 != null && t1 !== _this) {
+ t2 = type$.nullable_RenderObject;
+ target = t2._as(_this._node$_parent);
+ count = 1;
+ while (true) {
+ if (!(target != null && target !== t1))
+ break;
+ target = t2._as(target._node$_parent);
+ ++count;
+ }
+ header += " relayoutBoundary=up" + count;
+ }
+ if (_this._needsLayout)
+ header += " NEEDS-LAYOUT";
+ if (_this._needsPaint)
+ header += " NEEDS-PAINT";
+ if (_this._needsCompositingBitsUpdate)
+ header += " NEEDS-COMPOSITING-BITS-UPDATE";
+ return _this._node$_owner == null ? header + " DETACHED" : header;
+ },
+ toString$0: function(_) {
+ return this.toStringShort$0();
+ },
+ debugDescribeChildren$0: function() {
+ return H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode);
+ },
+ showOnScreen$4$curve$descendant$duration$rect: function(curve, descendant, duration, rect) {
+ var t1 = this._node$_parent;
+ if (t1 instanceof K.RenderObject)
+ t1.showOnScreen$4$curve$descendant$duration$rect(curve, descendant == null ? this : descendant, duration, rect);
+ },
+ showOnScreen$0: function() {
+ return this.showOnScreen$4$curve$descendant$duration$rect(C.Cubic_JUR, null, C.Duration_0, null);
+ },
+ showOnScreen$3$curve$duration$rect: function(curve, duration, rect) {
+ return this.showOnScreen$4$curve$descendant$duration$rect(curve, null, duration, rect);
+ },
+ showOnScreen$1$rect: function(rect) {
+ return this.showOnScreen$4$curve$descendant$duration$rect(C.Cubic_JUR, null, C.Duration_0, rect);
+ },
+ $isDiagnosticableTree: 1
+ };
+ K.RenderObject__debugReportException_closure.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self.$this;
+ $async$goto = 2;
+ return Y.DiagnosticableTreeNode$("The following RenderObject was being processed when the exception was fired", C.DiagnosticsTreeStyle_10, t1);
+ case 2:
+ // after yield
+ $async$goto = 3;
+ return Y.DiagnosticableTreeNode$("RenderObject", C.DiagnosticsTreeStyle_11, t1);
+ case 3:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ K.RenderObject_invokeLayoutCallback_closure.prototype = {
+ call$0: function() {
+ this.callback.call$1(this.T._as(this.$this.get$constraints()));
+ },
+ $signature: 0
+ };
+ K.RenderObject__updateCompositingBits_closure.prototype = {
+ call$1: function(child) {
+ var t1;
+ child._updateCompositingBits$0();
+ if (child.get$_needsCompositing()) {
+ t1 = this.$this;
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ }
+ },
+ $signature: 42
+ };
+ K.RenderObject_clearSemantics_closure.prototype = {
+ call$1: function(child) {
+ child.clearSemantics$0();
+ },
+ $signature: 42
+ };
+ K.RenderObject__getSemanticsForParent_closure.prototype = {
+ call$1: function(renderChild) {
+ var parentFragment, t2, t3, t4, t5, t6, t7, _i, fragment, siblingLength, i, siblingFragment, t8, _this = this,
+ t1 = _this._box_0;
+ if (t1.abortWalk || _this.$this._needsLayout) {
+ t1.abortWalk = true;
+ return;
+ }
+ parentFragment = renderChild._getSemanticsForParent$1$mergeIntoParent(_this.childrenMergeIntoParent);
+ if (parentFragment.get$abortsWalk()) {
+ t1.abortWalk = true;
+ return;
+ }
+ if (parentFragment.dropsSemanticsOfPreviousSiblings) {
+ C.JSArray_methods.set$length(_this.fragments, 0);
+ _this.toBeMarkedExplicit.clear$0(0);
+ if (!_this.config._isSemanticBoundary)
+ t1.dropSemanticsOfPreviousSiblings = true;
+ }
+ for (t1 = parentFragment.get$interestingFragments(), t2 = t1.length, t3 = _this.fragments, t4 = _this.toBeMarkedExplicit, t5 = _this.config, t6 = _this.$this, t7 = _this.producesForkingFragment, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ fragment = t1[_i];
+ t3.push(fragment);
+ fragment._ancestorChain.push(t6);
+ fragment.addTags$1(t5._tagsForChildren);
+ if (t5.explicitChildNodes || !(t6._node$_parent instanceof K.RenderObject)) {
+ fragment.markAsExplicit$0();
+ continue;
+ }
+ if (fragment.get$config() == null || t7)
+ continue;
+ if (!t5.isCompatibleWith$1(fragment.get$config()))
+ t4.add$1(0, fragment);
+ siblingLength = t3.length - 1;
+ for (i = 0; i < siblingLength; ++i) {
+ siblingFragment = t3[i];
+ t8 = fragment.get$config();
+ t8.toString;
+ if (!t8.isCompatibleWith$1(siblingFragment.get$config())) {
+ t4.add$1(0, fragment);
+ t4.add$1(0, siblingFragment);
+ }
+ }
+ }
+ },
+ $signature: 42
+ };
+ K.RenderObjectWithChildMixin.prototype = {
+ set$child: function(value) {
+ var _this = this,
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ _this.dropChild$1(t1);
+ _this.RenderObjectWithChildMixin__child = value;
+ if (value != null)
+ _this.adoptChild$1(value);
+ },
+ redepthChildren$0: function() {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ this.redepthChild$1(t1);
+ },
+ visitChildren$1: function(visitor) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ visitor.call$1(t1);
+ },
+ debugDescribeChildren$0: function() {
+ var t1 = this.RenderObjectWithChildMixin__child,
+ t2 = type$.JSArray_DiagnosticsNode;
+ return t1 != null ? H.setRuntimeTypeInfo([Y.DiagnosticableTreeNode$("child", null, t1)], t2) : H.setRuntimeTypeInfo([], t2);
+ }
+ };
+ K.ContainerParentDataMixin.prototype = {};
+ K.ContainerRenderObjectMixin.prototype = {
+ get$childCount: function() {
+ return this.ContainerRenderObjectMixin__childCount;
+ },
+ _insertIntoChildList$2$after: function(child, after) {
+ var t2, t3, t4, _this = this,
+ t1 = child.parentData;
+ t1.toString;
+ t2 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1");
+ t2._as(t1);
+ ++_this.ContainerRenderObjectMixin__childCount;
+ if (after == null) {
+ t1 = t1.ContainerParentDataMixin_nextSibling = _this.ContainerRenderObjectMixin__firstChild;
+ if (t1 != null) {
+ t1 = t1.parentData;
+ t1.toString;
+ t2._as(t1).ContainerParentDataMixin_previousSibling = child;
+ }
+ _this.ContainerRenderObjectMixin__firstChild = child;
+ if (_this.ContainerRenderObjectMixin__lastChild == null)
+ _this.ContainerRenderObjectMixin__lastChild = child;
+ } else {
+ t3 = after.parentData;
+ t3.toString;
+ t2._as(t3);
+ t4 = t3.ContainerParentDataMixin_nextSibling;
+ if (t4 == null) {
+ t1.ContainerParentDataMixin_previousSibling = after;
+ _this.ContainerRenderObjectMixin__lastChild = t3.ContainerParentDataMixin_nextSibling = child;
+ } else {
+ t1.ContainerParentDataMixin_nextSibling = t4;
+ t1.ContainerParentDataMixin_previousSibling = after;
+ t1 = t4.parentData;
+ t1.toString;
+ t2._as(t1).ContainerParentDataMixin_previousSibling = t3.ContainerParentDataMixin_nextSibling = child;
+ }
+ }
+ },
+ insert$2$after: function(_, child, after) {
+ this.adoptChild$1(child);
+ this._insertIntoChildList$2$after(child, after);
+ },
+ addAll$1: function(_, children) {
+ },
+ _removeFromChildList$1: function(child) {
+ var t2, t3, t4, t5, _this = this,
+ t1 = child.parentData;
+ t1.toString;
+ t2 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1");
+ t2._as(t1);
+ t3 = t1.ContainerParentDataMixin_previousSibling;
+ t4 = t1.ContainerParentDataMixin_nextSibling;
+ if (t3 == null)
+ _this.ContainerRenderObjectMixin__firstChild = t4;
+ else {
+ t5 = t3.parentData;
+ t5.toString;
+ t2._as(t5).ContainerParentDataMixin_nextSibling = t4;
+ }
+ t4 = t1.ContainerParentDataMixin_nextSibling;
+ if (t4 == null)
+ _this.ContainerRenderObjectMixin__lastChild = t3;
+ else {
+ t4 = t4.parentData;
+ t4.toString;
+ t2._as(t4).ContainerParentDataMixin_previousSibling = t3;
+ }
+ t1.ContainerParentDataMixin_nextSibling = t1.ContainerParentDataMixin_previousSibling = null;
+ --_this.ContainerRenderObjectMixin__childCount;
+ },
+ remove$1: function(_, child) {
+ this._removeFromChildList$1(child);
+ this.dropChild$1(child);
+ },
+ move$2$after: function(child, after) {
+ var _this = this,
+ t1 = child.parentData;
+ t1.toString;
+ t1 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1")._as(t1).ContainerParentDataMixin_previousSibling;
+ if (t1 == null ? after == null : t1 === after)
+ return;
+ _this._removeFromChildList$1(child);
+ _this._insertIntoChildList$2$after(child, after);
+ _this.markNeedsLayout$0();
+ },
+ redepthChildren$0: function() {
+ var t1, t2, t3,
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1"); child != null;) {
+ t2 = child._node$_depth;
+ t3 = this._node$_depth;
+ if (t2 <= t3) {
+ child._node$_depth = t3 + 1;
+ child.redepthChildren$0();
+ }
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ visitChildren$1: function(visitor) {
+ var t1, t2,
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1"); child != null;) {
+ visitor.call$1(child);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ get$firstChild: function(_) {
+ return this.ContainerRenderObjectMixin__firstChild;
+ },
+ childAfter$1: function(child) {
+ var t1 = child.parentData;
+ t1.toString;
+ return H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1")._as(t1).ContainerParentDataMixin_nextSibling;
+ },
+ debugDescribeChildren$0: function() {
+ var t1, count, t2,
+ children = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode),
+ child = this.ContainerRenderObjectMixin__firstChild;
+ if (child != null)
+ for (t1 = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1"), count = 1; true; child = t2) {
+ children.push(new Y.DiagnosticableTreeNode(child, "child " + count, true, true, null, null));
+ if (child === this.ContainerRenderObjectMixin__lastChild)
+ break;
+ ++count;
+ t2 = child.parentData;
+ t2.toString;
+ t2 = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ t2.toString;
+ }
+ return children;
+ }
+ };
+ K.RelayoutWhenSystemFontsChangeMixin.prototype = {
+ systemFontsDidChange$0: function() {
+ this.markNeedsLayout$0();
+ }
+ };
+ K._SemanticsFragment.prototype = {
+ get$abortsWalk: function() {
+ return false;
+ }
+ };
+ K._ContainerSemanticsFragment.prototype = {
+ addAll$1: function(_, fragments) {
+ C.JSArray_methods.addAll$1(this.interestingFragments, fragments);
+ },
+ get$interestingFragments: function() {
+ return this.interestingFragments;
+ }
+ };
+ K._InterestingSemanticsFragment.prototype = {
+ get$interestingFragments: function() {
+ return H.setRuntimeTypeInfo([this], type$.JSArray__InterestingSemanticsFragment);
+ },
+ addTags$1: function(tags) {
+ var t1;
+ if (tags == null || tags._collection$_length === 0)
+ return;
+ t1 = this._object$_tagsForChildren;
+ (t1 == null ? this._object$_tagsForChildren = P.LinkedHashSet_LinkedHashSet$_empty(type$.SemanticsTag) : t1).addAll$1(0, tags);
+ }
+ };
+ K._RootSemanticsFragment.prototype = {
+ compileChildren$4$elevationAdjustment$parentPaintClipRect$parentSemanticsClipRect$result: function(elevationAdjustment, parentPaintClipRect, parentSemanticsClipRect, result) {
+ var t3, t4, t5, children, _i,
+ t1 = this._ancestorChain,
+ t2 = C.JSArray_methods.get$first(t1);
+ if (t2._semantics == null) {
+ t3 = C.JSArray_methods.get$first(t1).get$showOnScreen();
+ t4 = C.JSArray_methods.get$first(t1);
+ t4.toString;
+ t4 = type$.nullable_PipelineOwner._as(B.AbstractNode.prototype.get$owner.call(t4))._semanticsOwner;
+ t4.toString;
+ t5 = $.$get$SemanticsNode__kEmptyConfig();
+ t5 = new A.SemanticsNode(null, 0, t3, C.Rect_0_0_0_0, t5._isMergingSemanticsOfDescendants, t5._actions, t5._customSemanticsActions, t5._actionsAsBits, t5._flags, t5._semantics$_label, t5._semantics$_value, t5._decreasedValue, t5._increasedValue, t5._semantics$_hint, t5._semantics$_elevation, t5._thickness, t5._semantics$_textDirection);
+ t5.attach$1(t4);
+ t2._semantics = t5;
+ }
+ t2 = C.JSArray_methods.get$first(t1)._semantics;
+ t2.toString;
+ t2.set$rect(0, C.JSArray_methods.get$first(t1).get$semanticBounds());
+ children = H.setRuntimeTypeInfo([], type$.JSArray_SemanticsNode);
+ for (t1 = this._object$_children, t3 = t1.length, _i = 0; _i < t1.length; t1.length === t3 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].compileChildren$4$elevationAdjustment$parentPaintClipRect$parentSemanticsClipRect$result(0, parentPaintClipRect, parentSemanticsClipRect, children);
+ t2.updateWith$2$childrenInInversePaintOrder$config(0, children, null);
+ result.push(t2);
+ },
+ get$config: function() {
+ return null;
+ },
+ markAsExplicit$0: function() {
+ },
+ addAll$1: function(_, fragments) {
+ C.JSArray_methods.addAll$1(this._object$_children, fragments);
+ }
+ };
+ K._SwitchableSemanticsFragment.prototype = {
+ compileChildren$4$elevationAdjustment$parentPaintClipRect$parentSemanticsClipRect$result: function(elevationAdjustment, parentPaintClipRect, parentSemanticsClipRect, result) {
+ var t1, t2, t3, t4, t5, _i, fragment, t6, t7, geometry, node, children, _this = this, _null = null;
+ if (!_this._isExplicit) {
+ t1 = _this._ancestorChain;
+ C.JSArray_methods.get$first(t1)._semantics = null;
+ for (t2 = _this._object$_children, t3 = t2.length, t4 = H._arrayInstanceType(t1), t5 = t4._precomputed1, t4 = t4._eval$1("SubListIterable<1>"), _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i) {
+ fragment = t2[_i];
+ t6 = fragment._ancestorChain;
+ t7 = new H.SubListIterable(t1, 1, _null, t4);
+ t7.SubListIterable$3(t1, 1, _null, t5);
+ C.JSArray_methods.addAll$1(t6, t7);
+ fragment.compileChildren$4$elevationAdjustment$parentPaintClipRect$parentSemanticsClipRect$result(elevationAdjustment + _this._object$_config._semantics$_elevation, parentPaintClipRect, parentSemanticsClipRect, result);
+ }
+ return;
+ }
+ t1 = _this._ancestorChain;
+ if (t1.length > 1) {
+ geometry = new K._SemanticsGeometry();
+ geometry._computeValues$3(parentSemanticsClipRect, parentPaintClipRect, t1);
+ } else
+ geometry = _null;
+ t2 = _this._mergeIntoParent;
+ t3 = !t2;
+ if (t3) {
+ if (geometry == null)
+ t4 = _null;
+ else {
+ t4 = geometry.get$_object$_rect();
+ t4 = t4.get$isEmpty(t4);
+ }
+ t4 = t4 === true;
+ } else
+ t4 = false;
+ if (t4)
+ return;
+ t4 = C.JSArray_methods.get$first(t1);
+ if (t4._semantics == null)
+ t4._semantics = A.SemanticsNode$(_null, C.JSArray_methods.get$first(t1).get$showOnScreen());
+ node = C.JSArray_methods.get$first(t1)._semantics;
+ node.set$isMergedIntoParent(t2);
+ node.tags = _this._object$_tagsForChildren;
+ node.elevationAdjustment = elevationAdjustment;
+ if (elevationAdjustment !== 0) {
+ _this._ensureConfigIsWritable$0();
+ t2 = _this._object$_config;
+ t2.set$elevation(0, t2._semantics$_elevation + elevationAdjustment);
+ }
+ if (geometry != null) {
+ node.set$rect(0, geometry.get$_object$_rect());
+ node.set$transform(0, geometry.get$_object$_transform());
+ node.parentSemanticsClipRect = geometry._semanticsClipRect;
+ node.parentPaintClipRect = geometry._paintClipRect;
+ if (t3 && geometry._markAsHidden) {
+ _this._ensureConfigIsWritable$0();
+ _this._object$_config._setFlag$2(C.SemanticsFlag_8192, true);
+ }
+ }
+ children = H.setRuntimeTypeInfo([], type$.JSArray_SemanticsNode);
+ for (t2 = _this._object$_children, t3 = t2.length, _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i) {
+ fragment = t2[_i];
+ t4 = node.parentSemanticsClipRect;
+ fragment.compileChildren$4$elevationAdjustment$parentPaintClipRect$parentSemanticsClipRect$result(0, node.parentPaintClipRect, t4, children);
+ }
+ t2 = _this._object$_config;
+ if (t2._isSemanticBoundary)
+ C.JSArray_methods.get$first(t1).assembleSemanticsNode$3(node, _this._object$_config, children);
+ else
+ node.updateWith$2$childrenInInversePaintOrder$config(0, children, t2);
+ result.push(node);
+ },
+ get$config: function() {
+ return this._isExplicit ? null : this._object$_config;
+ },
+ addAll$1: function(_, fragments) {
+ var t1, t2, _i, fragment, t3, t4, _this = this;
+ for (t1 = fragments.length, t2 = _this._object$_children, _i = 0; _i < fragments.length; fragments.length === t1 || (0, H.throwConcurrentModificationError)(fragments), ++_i) {
+ fragment = fragments[_i];
+ t2.push(fragment);
+ if (fragment.get$config() == null)
+ continue;
+ if (!_this._isConfigWritable) {
+ _this._object$_config = _this._object$_config.copy$0(0);
+ _this._isConfigWritable = true;
+ }
+ t3 = _this._object$_config;
+ t4 = fragment.get$config();
+ t4.toString;
+ t3.absorb$1(t4);
+ }
+ },
+ _ensureConfigIsWritable$0: function() {
+ var t1, t2, _this = this;
+ if (!_this._isConfigWritable) {
+ t1 = _this._object$_config;
+ t2 = A.SemanticsConfiguration$();
+ t2._isSemanticBoundary = t1._isSemanticBoundary;
+ t2.explicitChildNodes = t1.explicitChildNodes;
+ t2.isBlockingSemanticsOfPreviouslyPaintedNodes = t1.isBlockingSemanticsOfPreviouslyPaintedNodes;
+ t2._hasBeenAnnotated = t1._hasBeenAnnotated;
+ t2._isMergingSemanticsOfDescendants = t1._isMergingSemanticsOfDescendants;
+ t2._semantics$_textDirection = t1._semantics$_textDirection;
+ t2._semantics$_sortKey = t1._semantics$_sortKey;
+ t2._semantics$_label = t1._semantics$_label;
+ t2._increasedValue = t1._increasedValue;
+ t2._semantics$_value = t1._semantics$_value;
+ t2._decreasedValue = t1._decreasedValue;
+ t2._semantics$_hint = t1._semantics$_hint;
+ t2._semantics$_hintOverrides = t1._semantics$_hintOverrides;
+ t2._semantics$_elevation = t1._semantics$_elevation;
+ t2._thickness = t1._thickness;
+ t2._flags = t1._flags;
+ t2._tagsForChildren = t1._tagsForChildren;
+ t2._textSelection = t1._textSelection;
+ t2._scrollPosition = t1._scrollPosition;
+ t2._scrollExtentMax = t1._scrollExtentMax;
+ t2._scrollExtentMin = t1._scrollExtentMin;
+ t2._actionsAsBits = t1._actionsAsBits;
+ t2._indexInParent = t1._indexInParent;
+ t2._scrollIndex = t1._scrollIndex;
+ t2._scrollChildCount = t1._scrollChildCount;
+ t2._platformViewId = t1._platformViewId;
+ t2._maxValueLength = t1._maxValueLength;
+ t2._semantics$_currentValueLength = t1._semantics$_currentValueLength;
+ t2._actions.addAll$1(0, t1._actions);
+ t2._customSemanticsActions.addAll$1(0, t1._customSemanticsActions);
+ _this._object$_config = t2;
+ _this._isConfigWritable = true;
+ }
+ },
+ markAsExplicit$0: function() {
+ this._isExplicit = true;
+ }
+ };
+ K._AbortingSemanticsFragment.prototype = {
+ get$abortsWalk: function() {
+ return true;
+ },
+ get$config: function() {
+ return null;
+ },
+ compileChildren$4$elevationAdjustment$parentPaintClipRect$parentSemanticsClipRect$result: function(elevationAdjustment, parentPaintClipRect, parentSemanticsClipRect, result) {
+ var t1 = C.JSArray_methods.get$first(this._ancestorChain)._semantics;
+ t1.toString;
+ result.push(t1);
+ },
+ markAsExplicit$0: function() {
+ }
+ };
+ K._SemanticsGeometry.prototype = {
+ get$_object$_transform: function() {
+ return this.___SemanticsGeometry__transform_isSet ? this.___SemanticsGeometry__transform : H.throwExpression(H.LateError$fieldNI("_transform"));
+ },
+ get$_object$_rect: function() {
+ return this.___SemanticsGeometry__rect_isSet ? this.___SemanticsGeometry__rect : H.throwExpression(H.LateError$fieldNI("_rect"));
+ },
+ _computeValues$3: function(parentSemanticsClipRect, parentPaintClipRect, ancestors) {
+ var index, $parent, child, owner, paintRect, _this = this,
+ t1 = new E.Matrix4(new Float64Array(16));
+ t1.setIdentity$0();
+ _this.___SemanticsGeometry__transform_isSet = true;
+ _this.___SemanticsGeometry__transform = t1;
+ _this._semanticsClipRect = parentSemanticsClipRect;
+ _this._paintClipRect = parentPaintClipRect;
+ for (index = ancestors.length - 1; index > 0;) {
+ $parent = ancestors[index];
+ --index;
+ child = ancestors[index];
+ parentSemanticsClipRect = $parent.describeSemanticsClip$1(child);
+ if (parentSemanticsClipRect != null) {
+ _this._semanticsClipRect = parentSemanticsClipRect;
+ _this._paintClipRect = K._SemanticsGeometry__intersectRects(_this._paintClipRect, $parent.describeApproximatePaintClip$1(child));
+ } else
+ _this._semanticsClipRect = K._SemanticsGeometry__intersectRects(_this._semanticsClipRect, $parent.describeApproximatePaintClip$1(child));
+ t1 = $.$get$_SemanticsGeometry__temporaryTransformHolder();
+ t1.setIdentity$0();
+ K._SemanticsGeometry__applyIntermediatePaintTransforms($parent, child, _this.___SemanticsGeometry__transform_isSet ? _this.___SemanticsGeometry__transform : H.throwExpression(H.LateError$fieldNI("_transform")), t1);
+ _this._semanticsClipRect = K._SemanticsGeometry__transformRect(_this._semanticsClipRect, t1);
+ _this._paintClipRect = K._SemanticsGeometry__transformRect(_this._paintClipRect, t1);
+ }
+ owner = C.JSArray_methods.get$first(ancestors);
+ t1 = _this._semanticsClipRect;
+ t1 = t1 == null ? owner.get$semanticBounds() : t1.intersect$1(owner.get$semanticBounds());
+ _this.___SemanticsGeometry__rect_isSet = true;
+ _this.___SemanticsGeometry__rect = t1;
+ t1 = _this._paintClipRect;
+ if (t1 != null) {
+ paintRect = t1.intersect$1(_this.get$_object$_rect());
+ if (paintRect.get$isEmpty(paintRect)) {
+ t1 = _this.get$_object$_rect();
+ t1 = !t1.get$isEmpty(t1);
+ } else
+ t1 = false;
+ _this._markAsHidden = t1;
+ if (!t1) {
+ _this.___SemanticsGeometry__rect_isSet = true;
+ _this.___SemanticsGeometry__rect = paintRect;
+ }
+ }
+ }
+ };
+ K.DiagnosticsDebugCreator.prototype = {};
+ K._RenderObject_AbstractNode_DiagnosticableTreeMixin.prototype = {};
+ Q.TextOverflow.prototype = {
+ toString$0: function(_) {
+ return this._paragraph$_name;
+ }
+ };
+ Q.TextParentData.prototype = {
+ toString$0: function(_) {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ t1.push("offset=" + this.offset.toString$0(0));
+ t1.push(this.super$BoxParentData$toString(0));
+ return C.JSArray_methods.join$1(t1, "; ");
+ }
+ };
+ Q.RenderParagraph.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof Q.TextParentData))
+ child.parentData = new Q.TextParentData(null, null, C.Offset_0_0);
+ },
+ set$text: function(_, value) {
+ var _this = this,
+ t1 = _this._textPainter;
+ switch (t1._text_painter$_text.compareTo$1(0, value)) {
+ case C.RenderComparison_0:
+ case C.RenderComparison_1:
+ return;
+ case C.RenderComparison_2:
+ t1.set$text(0, value);
+ _this._extractPlaceholderSpans$1(value);
+ _this.markNeedsPaint$0();
+ _this.markNeedsSemanticsUpdate$0();
+ break;
+ case C.RenderComparison_3:
+ t1.set$text(0, value);
+ _this._overflowShader = null;
+ _this._extractPlaceholderSpans$1(value);
+ _this.markNeedsLayout$0();
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$_placeholderSpans: function() {
+ return this.__RenderParagraph__placeholderSpans_isSet ? this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI("_placeholderSpans"));
+ },
+ _extractPlaceholderSpans$1: function(span) {
+ var t1 = H.setRuntimeTypeInfo([], type$.JSArray_PlaceholderSpan);
+ this.__RenderParagraph__placeholderSpans_isSet = true;
+ this.__RenderParagraph__placeholderSpans = t1;
+ span.visitChildren$1(new Q.RenderParagraph__extractPlaceholderSpans_closure(this));
+ },
+ set$textAlign: function(_, value) {
+ var t1 = this._textPainter;
+ if (t1._text_painter$_textAlign === value)
+ return;
+ t1.set$textAlign(0, value);
+ this.markNeedsPaint$0();
+ },
+ set$textDirection: function(_, value) {
+ var t1 = this._textPainter;
+ if (t1._text_painter$_textDirection === value)
+ return;
+ t1.set$textDirection(0, value);
+ this.markNeedsLayout$0();
+ },
+ set$softWrap: function(value) {
+ if (this._softWrap === value)
+ return;
+ this._softWrap = value;
+ this.markNeedsLayout$0();
+ },
+ set$overflow: function(_, value) {
+ var t1, _this = this;
+ if (_this._overflow === value)
+ return;
+ _this._overflow = value;
+ t1 = value === C.TextOverflow_2 ? "\u2026" : null;
+ _this._textPainter.set$ellipsis(0, t1);
+ _this.markNeedsLayout$0();
+ },
+ set$textScaleFactor: function(value) {
+ var t1 = this._textPainter;
+ if (t1._textScaleFactor === value)
+ return;
+ t1.set$textScaleFactor(value);
+ this._overflowShader = null;
+ this.markNeedsLayout$0();
+ },
+ set$maxLines: function(_, value) {
+ var t1 = this._textPainter;
+ if (t1._text_painter$_maxLines == value)
+ return;
+ t1.set$maxLines(0, value);
+ this._overflowShader = null;
+ this.markNeedsLayout$0();
+ },
+ set$locale: function(_, value) {
+ var t1 = this._textPainter;
+ if (J.$eq$(t1._text_painter$_locale, value))
+ return;
+ t1.set$locale(0, value);
+ this._overflowShader = null;
+ this.markNeedsLayout$0();
+ },
+ set$strutStyle: function(_, value) {
+ var t1 = this._textPainter;
+ if (J.$eq$(t1._text_painter$_strutStyle, value))
+ return;
+ t1.set$strutStyle(0, value);
+ this._overflowShader = null;
+ this.markNeedsLayout$0();
+ },
+ set$textWidthBasis: function(value) {
+ var t1 = this._textPainter;
+ if (t1._textWidthBasis === value)
+ return;
+ t1.set$textWidthBasis(value);
+ this._overflowShader = null;
+ this.markNeedsLayout$0();
+ },
+ set$textHeightBehavior: function(_, value) {
+ return;
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t1, _this = this;
+ if (!_this._canComputeIntrinsics$0())
+ return 0;
+ _this._computeChildrenWidthWithMinIntrinsics$1(height);
+ _this._layoutText$0();
+ t1 = _this._textPainter._text_painter$_paragraph.get$minIntrinsicWidth();
+ t1.toString;
+ return Math.ceil(t1);
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t1, _this = this;
+ if (!_this._canComputeIntrinsics$0())
+ return 0;
+ _this._computeChildrenWidthWithMaxIntrinsics$1(height);
+ _this._layoutText$0();
+ t1 = _this._textPainter._text_painter$_paragraph.get$maxIntrinsicWidth();
+ t1.toString;
+ return Math.ceil(t1);
+ },
+ _computeIntrinsicHeight$1: function(width) {
+ var t1, _this = this;
+ if (!_this._canComputeIntrinsics$0())
+ return 0;
+ _this._computeChildrenHeightWithMinIntrinsics$1(width);
+ _this._layoutText$2$maxWidth$minWidth(width, width);
+ t1 = _this._textPainter._text_painter$_paragraph;
+ t1 = t1.get$height(t1);
+ t1.toString;
+ return Math.ceil(t1);
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return this._computeIntrinsicHeight$1(width);
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return this._computeIntrinsicHeight$1(width);
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ this._layoutTextWithConstraints$1(type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this)));
+ return this._textPainter.computeDistanceToActualBaseline$1(C.TextBaseline_0);
+ },
+ _canComputeIntrinsics$0: function() {
+ var t1, t2, _i, span;
+ for (t1 = this.get$_placeholderSpans(), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ span = t1[_i];
+ switch (span.get$alignment(span)) {
+ case C.PlaceholderAlignment_0:
+ case C.PlaceholderAlignment_1:
+ case C.PlaceholderAlignment_2:
+ return false;
+ case C.PlaceholderAlignment_3:
+ case C.PlaceholderAlignment_5:
+ case C.PlaceholderAlignment_4:
+ continue;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ return true;
+ },
+ _computeChildrenWidthWithMaxIntrinsics$1: function(height) {
+ var t2, childIndex, t3, t4, _this = this,
+ _s17_ = "_placeholderSpans",
+ child = _this.ContainerRenderObjectMixin__firstChild,
+ placeholderDimensions = P.List_List$filled(_this.ContainerRenderObjectMixin__childCount, C.PlaceholderDimensions_Size_0_0_null, false, type$.PlaceholderDimensions),
+ t1 = _this._textPainter;
+ height /= t1._textScaleFactor;
+ for (t2 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1"), childIndex = 0; child != null;) {
+ t3 = child._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, child.get$computeMaxIntrinsicWidth());
+ t4 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ t4.get$alignment(t4);
+ t4 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ placeholderDimensions[childIndex] = new U.PlaceholderDimensions(new P.Size(t3, height), t4.get$baseline(t4));
+ t4 = child.parentData;
+ t4.toString;
+ child = t2._as(t4).ContainerParentDataMixin_nextSibling;
+ ++childIndex;
+ }
+ t1.setPlaceholderDimensions$1(new H.CastList(placeholderDimensions, H._arrayInstanceType(placeholderDimensions)._eval$1("CastList<1,PlaceholderDimensions>")));
+ },
+ _computeChildrenWidthWithMinIntrinsics$1: function(height) {
+ var t2, childIndex, intrinsicWidth, intrinsicHeight, t3, _this = this,
+ _s17_ = "_placeholderSpans",
+ child = _this.ContainerRenderObjectMixin__firstChild,
+ placeholderDimensions = P.List_List$filled(_this.ContainerRenderObjectMixin__childCount, C.PlaceholderDimensions_Size_0_0_null, false, type$.PlaceholderDimensions),
+ t1 = _this._textPainter;
+ height /= t1._textScaleFactor;
+ for (t2 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1"), childIndex = 0; child != null;) {
+ intrinsicWidth = child._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, child.get$computeMinIntrinsicWidth());
+ intrinsicHeight = child._computeIntrinsicDimension$3(C._IntrinsicDimension_2, intrinsicWidth, child.get$computeMinIntrinsicHeight());
+ t3 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ t3.get$alignment(t3);
+ t3 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ placeholderDimensions[childIndex] = new U.PlaceholderDimensions(new P.Size(intrinsicWidth, intrinsicHeight), t3.get$baseline(t3));
+ t3 = child.parentData;
+ t3.toString;
+ child = t2._as(t3).ContainerParentDataMixin_nextSibling;
+ ++childIndex;
+ }
+ t1.setPlaceholderDimensions$1(new H.CastList(placeholderDimensions, H._arrayInstanceType(placeholderDimensions)._eval$1("CastList<1,PlaceholderDimensions>")));
+ },
+ _computeChildrenHeightWithMinIntrinsics$1: function(width) {
+ var t2, childIndex, intrinsicHeight, intrinsicWidth, t3, _this = this,
+ _s17_ = "_placeholderSpans",
+ child = _this.ContainerRenderObjectMixin__firstChild,
+ placeholderDimensions = P.List_List$filled(_this.ContainerRenderObjectMixin__childCount, C.PlaceholderDimensions_Size_0_0_null, false, type$.PlaceholderDimensions),
+ t1 = _this._textPainter;
+ width /= t1._textScaleFactor;
+ for (t2 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1"), childIndex = 0; child != null;) {
+ intrinsicHeight = child._computeIntrinsicDimension$3(C._IntrinsicDimension_2, width, child.get$computeMinIntrinsicHeight());
+ intrinsicWidth = child._computeIntrinsicDimension$3(C._IntrinsicDimension_0, intrinsicHeight, child.get$computeMinIntrinsicWidth());
+ t3 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ t3.get$alignment(t3);
+ t3 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ placeholderDimensions[childIndex] = new U.PlaceholderDimensions(new P.Size(intrinsicWidth, intrinsicHeight), t3.get$baseline(t3));
+ t3 = child.parentData;
+ t3.toString;
+ child = t2._as(t3).ContainerParentDataMixin_nextSibling;
+ ++childIndex;
+ }
+ t1.setPlaceholderDimensions$1(new H.CastList(placeholderDimensions, H._arrayInstanceType(placeholderDimensions)._eval$1("CastList<1,PlaceholderDimensions>")));
+ },
+ hitTestSelf$1: function(position) {
+ return true;
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t5, t6, transform, child, _box_0 = {},
+ t1 = _box_0.child = this.ContainerRenderObjectMixin__firstChild,
+ t2 = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1"),
+ t3 = type$.TextParentData,
+ t4 = this._textPainter,
+ childIndex = 0;
+ while (true) {
+ if (!(t1 != null && childIndex < t4._inlinePlaceholderBoxes.length))
+ break;
+ t1 = t1.parentData;
+ t1.toString;
+ t3._as(t1);
+ t5 = t1.offset;
+ t6 = new Float64Array(16);
+ transform = new E.Matrix4(t6);
+ transform.setIdentity$0();
+ t6[14] = 0;
+ t6[13] = t5._dy;
+ t6[12] = t5._dx;
+ t5 = t1.scale;
+ transform.scale$3(0, t5, t5, t5);
+ if (result.addWithPaintTransform$3$hitTest$position$transform(new Q.RenderParagraph_hitTestChildren_closure(_box_0, position, t1), position, transform))
+ return true;
+ t1 = _box_0.child.parentData;
+ t1.toString;
+ child = t2._as(t1).ContainerParentDataMixin_nextSibling;
+ _box_0.child = child;
+ ++childIndex;
+ t1 = child;
+ }
+ return false;
+ },
+ handleEvent$2: function($event, entry) {
+ var t1, position;
+ if (!type$.PointerDownEvent._is($event))
+ return;
+ this._layoutTextWithConstraints$1(type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this)));
+ t1 = this._textPainter;
+ position = t1._text_painter$_paragraph.getPositionForOffset$1(entry.localPosition);
+ if (t1._text_painter$_text.getSpanForPosition$1(position) == null)
+ return;
+ },
+ _layoutText$2$maxWidth$minWidth: function(maxWidth, minWidth) {
+ var t1 = this._softWrap || this._overflow === C.TextOverflow_2 ? maxWidth : 1 / 0;
+ this._textPainter.layout$2$maxWidth$minWidth(0, t1, minWidth);
+ },
+ _layoutText$0: function() {
+ return this._layoutText$2$maxWidth$minWidth(1 / 0, 0);
+ },
+ systemFontsDidChange$0: function() {
+ this.super$RelayoutWhenSystemFontsChangeMixin$systemFontsDidChange();
+ this._textPainter.markNeedsLayout$0();
+ },
+ _layoutTextWithConstraints$1: function(constraints) {
+ var t1;
+ this._textPainter.setPlaceholderDimensions$1(this._placeholderDimensions);
+ t1 = constraints.minWidth;
+ this._layoutText$2$maxWidth$minWidth(constraints.maxWidth, t1);
+ },
+ _layoutChildren$1: function(constraints) {
+ var child, placeholderDimensions, t2, t3, boxConstraints, childIndex, _this = this,
+ _s17_ = "_placeholderSpans",
+ t1 = _this.ContainerRenderObjectMixin__childCount;
+ if (t1 === 0)
+ return;
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ placeholderDimensions = P.List_List$filled(t1, C.PlaceholderDimensions_Size_0_0_null, false, type$.PlaceholderDimensions);
+ t1 = constraints.maxWidth;
+ t2 = _this._textPainter._textScaleFactor;
+ t3 = 0 / t2;
+ boxConstraints = new S.BoxConstraints(t3, t1 / t2, t3, 1 / 0 / t2);
+ for (t1 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1"), childIndex = 0; child != null;) {
+ child.layout$2$parentUsesSize(0, boxConstraints, true);
+ t2 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ switch (t2.get$alignment(t2)) {
+ case C.PlaceholderAlignment_0:
+ t2 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ child.getDistanceToBaseline$1(t2.get$baseline(t2));
+ break;
+ default:
+ break;
+ }
+ t2 = child._size;
+ t2.toString;
+ t3 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ t3.get$alignment(t3);
+ t3 = (_this.__RenderParagraph__placeholderSpans_isSet ? _this.__RenderParagraph__placeholderSpans : H.throwExpression(H.LateError$fieldNI(_s17_)))[childIndex];
+ placeholderDimensions[childIndex] = new U.PlaceholderDimensions(t2, t3.get$baseline(t3));
+ t3 = child.parentData;
+ t3.toString;
+ child = t1._as(t3).ContainerParentDataMixin_nextSibling;
+ ++childIndex;
+ }
+ _this._placeholderDimensions = new H.CastList(placeholderDimensions, H._arrayInstanceType(placeholderDimensions)._eval$1("CastList<1,PlaceholderDimensions>"));
+ },
+ _setParentData$0: function() {
+ var t4, t5,
+ child = this.ContainerRenderObjectMixin__firstChild,
+ t1 = type$.TextParentData,
+ t2 = this._textPainter,
+ t3 = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1"),
+ childIndex = 0;
+ while (true) {
+ if (!(child != null && childIndex < t2._inlinePlaceholderBoxes.length))
+ break;
+ t4 = child.parentData;
+ t4.toString;
+ t1._as(t4);
+ t5 = t2._inlinePlaceholderBoxes[childIndex];
+ t4.offset = new P.Offset(t5.left, t5.top);
+ t4.scale = t2._inlinePlaceholderScales[childIndex];
+ child = t3._as(t4).ContainerParentDataMixin_nextSibling;
+ ++childIndex;
+ }
+ },
+ performLayout$0: function() {
+ var t1, t2, t3, t4, textDidExceedMaxLines, didOverflowHeight, didOverflowWidth, fadeSizePainter, fadeStart, fadeEnd, _this = this, _null = null,
+ _s80_ = string$.x60null_c,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this));
+ _this._layoutChildren$1(constraints);
+ _this._layoutTextWithConstraints$1(constraints);
+ _this._setParentData$0();
+ t1 = _this._textPainter;
+ t2 = t1.get$width(t1);
+ t3 = t1._text_painter$_paragraph;
+ t3 = t3.get$height(t3);
+ t3.toString;
+ t3 = Math.ceil(t3);
+ t4 = t1._text_painter$_paragraph;
+ textDidExceedMaxLines = t4.get$didExceedMaxLines(t4);
+ t4 = _this._size = constraints.constrain$1(new P.Size(t2, t3));
+ didOverflowHeight = t4._dy < t3 || textDidExceedMaxLines;
+ didOverflowWidth = t4._dx < t2;
+ if (didOverflowWidth || didOverflowHeight)
+ switch (_this._overflow) {
+ case C.TextOverflow_3:
+ _this._needsClipping = false;
+ _this._overflowShader = null;
+ break;
+ case C.TextOverflow_0:
+ case C.TextOverflow_2:
+ _this._needsClipping = true;
+ _this._overflowShader = null;
+ break;
+ case C.TextOverflow_1:
+ _this._needsClipping = true;
+ t2 = t1._text_painter$_text.style;
+ t3 = t1._text_painter$_textDirection;
+ t3.toString;
+ fadeSizePainter = new U.TextPainter(new Q.TextSpan("\u2026", _null, t2), C.TextAlign_4, t3, t1._textScaleFactor, _null, t1._text_painter$_locale, _null, _null, C.TextWidthBasis_0, _null);
+ fadeSizePainter.layout$0(0);
+ if (didOverflowWidth) {
+ t1 = t1._text_painter$_textDirection;
+ t1.toString;
+ switch (t1) {
+ case C.TextDirection_0:
+ fadeStart = fadeSizePainter.get$width(fadeSizePainter);
+ fadeEnd = 0;
+ break;
+ case C.TextDirection_1:
+ fadeEnd = _this._size._dx;
+ fadeStart = fadeEnd - fadeSizePainter.get$width(fadeSizePainter);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ _this._overflowShader = P.Gradient_Gradient$linear(new P.Offset(fadeStart, 0), new P.Offset(fadeEnd, 0), H.setRuntimeTypeInfo([C.Color_4294967295, C.Color_16777215], type$.JSArray_Color), _null, C.TileMode_0, _null);
+ } else {
+ fadeEnd = _this._size._dy;
+ t1 = fadeSizePainter._text_painter$_paragraph;
+ t1 = t1.get$height(t1);
+ t1.toString;
+ _this._overflowShader = P.Gradient_Gradient$linear(new P.Offset(0, fadeEnd - Math.ceil(t1) / 2), new P.Offset(0, fadeEnd), H.setRuntimeTypeInfo([C.Color_4294967295, C.Color_16777215], type$.JSArray_Color), _null, C.TileMode_0, _null);
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ else {
+ _this._needsClipping = false;
+ _this._overflowShader = null;
+ }
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, t3, bounds, t4, t5, t6, childIndex, t7, t8, child, paint, _this = this, _box_0 = {};
+ _this._layoutTextWithConstraints$1(type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)));
+ if (_this._needsClipping) {
+ t1 = _this._size;
+ t2 = offset._dx;
+ t3 = offset._dy;
+ bounds = new P.Rect(t2, t3, t2 + t1._dx, t3 + t1._dy);
+ if (_this._overflowShader != null) {
+ t1 = context.get$canvas(context);
+ t1.saveLayer$2(0, bounds, new H.SurfacePaint(new H.SurfacePaintData()));
+ } else
+ context.get$canvas(context).save$0(0);
+ context.get$canvas(context).clipRect$1(0, bounds);
+ }
+ t1 = _this._textPainter;
+ t2 = context.get$canvas(context);
+ t3 = t1._text_painter$_paragraph;
+ t3.toString;
+ t2.drawParagraph$2(0, t3, offset);
+ t3 = _box_0.child = _this.ContainerRenderObjectMixin__firstChild;
+ t2 = offset._dx;
+ t4 = offset._dy;
+ t5 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1");
+ t6 = type$.TextParentData;
+ childIndex = 0;
+ while (true) {
+ if (!(t3 != null && childIndex < t1._inlinePlaceholderBoxes.length))
+ break;
+ t3 = t3.parentData;
+ t3.toString;
+ t6._as(t3);
+ t7 = t3.scale;
+ t7.toString;
+ t8 = _this.__RenderObject__needsCompositing_isSet ? _this.__RenderObject__needsCompositing : H.throwExpression(H.LateError$fieldNI("_needsCompositing"));
+ t3 = t3.offset;
+ context.pushTransform$4(t8, new P.Offset(t2 + t3._dx, t4 + t3._dy), E.Matrix4_Matrix4$diagonal3Values(t7, t7, t7), new Q.RenderParagraph_paint_closure(_box_0));
+ t7 = _box_0.child.parentData;
+ t7.toString;
+ child = t5._as(t7).ContainerParentDataMixin_nextSibling;
+ _box_0.child = child;
+ ++childIndex;
+ t3 = child;
+ }
+ if (_this._needsClipping) {
+ if (_this._overflowShader != null) {
+ context.get$canvas(context).translate$2(0, t2, t4);
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ paint.set$blendMode(C.BlendMode_13);
+ paint.set$shader(_this._overflowShader);
+ t1 = context.get$canvas(context);
+ t2 = _this._size;
+ t1.drawRect$2(0, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy), paint);
+ }
+ context.get$canvas(context).restore$0(0);
+ }
+ },
+ _combineSemanticsInfo$0: function() {
+ var t1, t2, workingLabel, workingText, _i, info, t3, t4, _null = null,
+ combined = H.setRuntimeTypeInfo([], type$.JSArray_InlineSpanSemanticsInformation);
+ for (t1 = this._semanticsInfo, t2 = t1.length, workingLabel = _null, workingText = "", _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ info = t1[_i];
+ if (info.requiresOwnNode) {
+ t3 = workingLabel == null ? workingText : workingLabel;
+ combined.push(new G.InlineSpanSemanticsInformation(workingText, t3, _null, false));
+ combined.push(info);
+ workingLabel = _null;
+ workingText = "";
+ } else {
+ t3 = info.text;
+ workingText = C.JSString_methods.$add(workingText, t3);
+ if (workingLabel == null)
+ workingLabel = "";
+ t4 = info.semanticsLabel;
+ workingLabel = t4 != null ? workingLabel + t4 : C.JSString_methods.$add(workingLabel, t3);
+ }
+ }
+ combined.push(G.InlineSpanSemanticsInformation$(workingText, _null, workingLabel));
+ return combined;
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ var t1, t2, collector, t3, _i, t4, info, t5, _this = this;
+ _this.super$RenderObject$describeSemanticsConfiguration(config);
+ t1 = _this._textPainter;
+ t2 = t1._text_painter$_text;
+ t2.toString;
+ collector = H.setRuntimeTypeInfo([], type$.JSArray_InlineSpanSemanticsInformation);
+ t2.computeSemanticsInformation$1(collector);
+ _this._semanticsInfo = collector;
+ if (C.JSArray_methods.any$1(collector, new Q.RenderParagraph_describeSemanticsConfiguration_closure()))
+ config._isSemanticBoundary = config.explicitChildNodes = true;
+ else {
+ for (t2 = _this._semanticsInfo, t3 = t2.length, _i = 0, t4 = ""; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i) {
+ info = t2[_i];
+ t5 = info.semanticsLabel;
+ t4 += H.S(t5 == null ? info.text : t5);
+ }
+ config._semantics$_label = t4.charCodeAt(0) == 0 ? t4 : t4;
+ config._hasBeenAnnotated = true;
+ t1 = t1._text_painter$_textDirection;
+ t1.toString;
+ config._semantics$_textDirection = t1;
+ }
+ },
+ assembleSemanticsNode$3: function(node, config, children) {
+ var newChildCache, t3, t4, t5, t6, t7, t8, t9, currentRect, currentDirection, ordinal, start, _i, info, start0, t10, t11, t12, t13, rects, rect, currentDirection0, cur, configuration, ordinal0, newChild, _this = this, _null = null,
+ newChildren = H.setRuntimeTypeInfo([], type$.JSArray_SemanticsNode),
+ t1 = _this._textPainter,
+ t2 = t1._text_painter$_textDirection;
+ t2.toString;
+ newChildCache = P.ListQueue$(_null, type$.SemanticsNode);
+ for (t3 = _this._combineSemanticsInfo$0(), t4 = t3.length, t5 = type$.SemanticsAction, t6 = type$.void_Function_dynamic, t7 = type$.CustomSemanticsAction, t8 = type$.void_Function, t9 = type$.BoxConstraints, currentRect = _null, currentDirection = t2, ordinal = 0, start = 0, _i = 0; _i < t3.length; t3.length === t4 || (0, H.throwConcurrentModificationError)(t3), ++_i, start = start0) {
+ info = t3[_i];
+ t2 = info.text;
+ start0 = start + t2.length;
+ t10 = start < start0;
+ t11 = t10 ? start0 : start;
+ t10 = t10 ? start : start0;
+ t12 = t9._as(K.RenderObject.prototype.get$constraints.call(_this));
+ t1.setPlaceholderDimensions$1(_this._placeholderDimensions);
+ t13 = t12.minWidth;
+ t12 = t12.maxWidth;
+ t1.layout$2$maxWidth$minWidth(0, _this._softWrap || _this._overflow === C.TextOverflow_2 ? t12 : 1 / 0, t13);
+ rects = t1._text_painter$_paragraph.getBoxesForRange$4$boxHeightStyle$boxWidthStyle(t10, t11, C.BoxHeightStyle_0, C.BoxWidthStyle_0);
+ if (rects.length === 0)
+ continue;
+ t10 = C.JSArray_methods.get$first(rects);
+ rect = new P.Rect(t10.left, t10.top, t10.right, t10.bottom);
+ currentDirection0 = C.JSArray_methods.get$first(rects).direction;
+ for (t10 = H._arrayInstanceType(rects), t11 = new H.SubListIterable(rects, 1, _null, t10._eval$1("SubListIterable<1>")), t11.SubListIterable$3(rects, 1, _null, t10._precomputed1), t11 = new H.ListIterator(t11, t11.get$length(t11)); t11.moveNext$0();) {
+ cur = t11._current;
+ rect = rect.expandToInclude$1(new P.Rect(cur.left, cur.top, cur.right, cur.bottom));
+ currentDirection0 = cur.direction;
+ }
+ t10 = rect.left;
+ t11 = Math.max(0, H.checkNum(t10));
+ t12 = rect.top;
+ t13 = Math.max(0, H.checkNum(t12));
+ t10 = Math.min(rect.right - t10, H.checkNum(t9._as(K.RenderObject.prototype.get$constraints.call(_this)).maxWidth));
+ t12 = Math.min(rect.bottom - t12, H.checkNum(t9._as(K.RenderObject.prototype.get$constraints.call(_this)).maxHeight));
+ currentRect = new P.Rect(Math.floor(t11) - 4, Math.floor(t13) - 4, Math.ceil(t11 + t10) + 4, Math.ceil(t13 + t12) + 4);
+ configuration = new A.SemanticsConfiguration(P.LinkedHashMap_LinkedHashMap$_empty(t5, t6), P.LinkedHashMap_LinkedHashMap$_empty(t7, t8));
+ ordinal0 = ordinal + 1;
+ configuration._semantics$_sortKey = new A.OrdinalSortKey(ordinal, _null);
+ configuration._hasBeenAnnotated = true;
+ configuration._semantics$_textDirection = currentDirection;
+ t10 = info.semanticsLabel;
+ configuration._semantics$_label = t10 == null ? t2 : t10;
+ t2 = _this._cachedChildNodes;
+ newChild = (t2 == null ? _null : !t2.get$isEmpty(t2)) === true ? _this._cachedChildNodes.removeFirst$0() : A.SemanticsNode$(_null, _null);
+ newChild.updateWith$1$config(0, configuration);
+ if (!J.$eq$(newChild._semantics$_rect, currentRect)) {
+ newChild._semantics$_rect = currentRect;
+ newChild._semantics$_markDirty$0();
+ }
+ newChildCache._add$1(0, newChild);
+ newChildren.push(newChild);
+ ordinal = ordinal0;
+ currentDirection = currentDirection0;
+ }
+ _this._cachedChildNodes = newChildCache;
+ node.updateWith$2$childrenInInversePaintOrder$config(0, newChildren, config);
+ },
+ clearSemantics$0: function() {
+ this.super$RenderObject$clearSemantics();
+ this._cachedChildNodes = null;
+ },
+ debugDescribeChildren$0: function() {
+ var t1 = this._textPainter._text_painter$_text;
+ t1.toString;
+ return H.setRuntimeTypeInfo([Y.DiagnosticableTreeNode$("text", C.DiagnosticsTreeStyle_4, t1)], type$.JSArray_DiagnosticsNode);
+ }
+ };
+ Q.RenderParagraph__extractPlaceholderSpans_closure.prototype = {
+ call$1: function(span) {
+ return true;
+ },
+ $signature: 43
+ };
+ Q.RenderParagraph_hitTestChildren_closure.prototype = {
+ call$2: function(result, transformed) {
+ var t1 = this._box_0.child;
+ t1.toString;
+ transformed.toString;
+ return t1.hitTest$2$position(result, transformed);
+ },
+ $signature: 23
+ };
+ Q.RenderParagraph_paint_closure.prototype = {
+ call$2: function(context, offset) {
+ var t1 = this._box_0.child;
+ t1.toString;
+ context.paintChild$2(t1, offset);
+ },
+ $signature: 22
+ };
+ Q.RenderParagraph_describeSemanticsConfiguration_closure.prototype = {
+ call$1: function(info) {
+ info.toString;
+ return false;
+ },
+ $signature: 208
+ };
+ Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin.prototype = {
+ attach$1: function(owner) {
+ var child, t1, t2;
+ this.super$RenderObject$attach(owner);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.TextParentData; child != null;) {
+ child.attach$1(owner);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child, t1, t2;
+ this.super$AbstractNode$detach(0);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.TextParentData; child != null;) {
+ child.detach$0(0);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin.prototype = {};
+ Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_RelayoutWhenSystemFontsChangeMixin.prototype = {
+ attach$1: function(owner) {
+ this.super$_RenderParagraph_RenderBox_ContainerRenderObjectMixin$attach(owner);
+ $.PaintingBinding__instance.PaintingBinding__systemFonts._systemFontsCallbacks.add$1(0, this.get$systemFontsDidChange());
+ },
+ detach$0: function(_) {
+ $.PaintingBinding__instance.PaintingBinding__systemFonts._systemFontsCallbacks.remove$1(0, this.get$systemFontsDidChange());
+ this.super$_RenderParagraph_RenderBox_ContainerRenderObjectMixin$detach(0);
+ }
+ };
+ L.RenderPerformanceOverlay.prototype = {
+ set$optionsMask: function(value) {
+ if (value === this._optionsMask)
+ return;
+ this._optionsMask = value;
+ this.markNeedsPaint$0();
+ },
+ set$rasterizerThreshold: function(value) {
+ if (value === this._rasterizerThreshold)
+ return;
+ this._rasterizerThreshold = value;
+ this.markNeedsPaint$0();
+ },
+ get$sizedByParent: function() {
+ return true;
+ },
+ get$alwaysNeedsCompositing: function() {
+ return true;
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ return 0;
+ },
+ get$_intrinsicHeight: function() {
+ var t1 = this._optionsMask,
+ result = (t1 | 1) >>> 0 > 0 || (t1 | 2) >>> 0 > 0 ? 80 : 0;
+ return (t1 | 4) >>> 0 > 0 || (t1 | 8) >>> 0 > 0 ? result + 80 : result;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return this.get$_intrinsicHeight();
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return this.get$_intrinsicHeight();
+ },
+ performResize$0: function() {
+ this._size = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this)).constrain$1(new P.Size(1 / 0, this.get$_intrinsicHeight()));
+ },
+ paint$2: function(context, offset) {
+ var t5, t6,
+ t1 = offset._dx,
+ t2 = offset._dy,
+ t3 = this._size,
+ t4 = t3._dx;
+ t3 = t3._dy;
+ t5 = this._optionsMask;
+ t6 = this._rasterizerThreshold;
+ context.stopRecordingIfNeeded$0();
+ context.appendLayer$1(new T.PerformanceOverlayLayer(new P.Rect(t1, t2, t1 + t4, t2 + t3), t5, t6, false, false));
+ }
+ };
+ G.PlatformViewHitTestBehavior.prototype = {
+ toString$0: function(_) {
+ return this._platform_view0$_name;
+ }
+ };
+ G._factoriesTypeSet_closure.prototype = {
+ call$1: function(factory) {
+ return factory.get$type(factory);
+ },
+ $signature: function() {
+ return this.T._eval$1("Type(Factory<0>)");
+ }
+ };
+ G._PlatformViewGestureRecognizer.prototype = {
+ _PlatformViewGestureRecognizer$3$kind: function(handlePointerEvent, gestureRecognizerFactories, kind) {
+ var t2, _this = this,
+ t1 = new V.GestureArenaTeam(P.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$._CombiningGestureArenaMember));
+ t1.captain = _this;
+ _this._team = t1;
+ t1 = _this.gestureRecognizerFactories;
+ t2 = t1.$ti._eval$1("EfficientLengthMappedIterable");
+ t2 = P.LinkedHashSet_LinkedHashSet$of(new H.EfficientLengthMappedIterable(t1, new G._PlatformViewGestureRecognizer_closure(_this), t2), t2._eval$1("Iterable.E"));
+ _this.___PlatformViewGestureRecognizer__gestureRecognizers_isSet = true;
+ _this.___PlatformViewGestureRecognizer__gestureRecognizers = t2;
+ _this.___PlatformViewGestureRecognizer__handlePointerEvent_isSet = true;
+ _this.___PlatformViewGestureRecognizer__handlePointerEvent = handlePointerEvent;
+ },
+ get$_platform_view0$_handlePointerEvent: function() {
+ return this.___PlatformViewGestureRecognizer__handlePointerEvent_isSet ? this.___PlatformViewGestureRecognizer__handlePointerEvent : H.throwExpression(H.LateError$fieldNI("_handlePointerEvent"));
+ },
+ addAllowedPointer$1: function($event) {
+ var t1, t2;
+ this.startTrackingPointer$2($event.get$pointer(), $event.get$transform($event));
+ t1 = this.___PlatformViewGestureRecognizer__gestureRecognizers_isSet ? this.___PlatformViewGestureRecognizer__gestureRecognizers : H.throwExpression(H.LateError$fieldNI("_gestureRecognizers"));
+ t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications);
+ for (; t1.moveNext$0();) {
+ t2 = t1._collection$_current;
+ t2._pointerToKind.$indexSet(0, $event.get$pointer(), $event.get$kind($event));
+ if (t2.isPointerAllowed$1($event))
+ t2.addAllowedPointer$1($event);
+ else
+ t2.handleNonAllowedPointer$1($event);
+ }
+ },
+ didStopTrackingLastPointer$1: function(pointer) {
+ },
+ handleEvent$1: function($event) {
+ var t1, _this = this;
+ if (!_this.forwardedPointers.contains$1(0, $event.get$pointer())) {
+ t1 = _this.cachedEvents;
+ if (!t1.containsKey$1(0, $event.get$pointer()))
+ t1.$indexSet(0, $event.get$pointer(), H.setRuntimeTypeInfo([], type$.JSArray_PointerEvent_2));
+ t1.$index(0, $event.get$pointer()).push($event);
+ } else
+ _this._platform_view0$_handlePointerEvent$1($event);
+ _this.stopTrackingIfPointerNoLongerDown$1($event);
+ },
+ acceptGesture$1: function(pointer) {
+ var t1 = this.cachedEvents.remove$1(0, pointer);
+ if (t1 != null)
+ J.forEach$1$ax(t1, this.get$_platform_view0$_handlePointerEvent());
+ this.forwardedPointers.add$1(0, pointer);
+ },
+ rejectGesture$1: function(pointer) {
+ this.super$OneSequenceGestureRecognizer$stopTrackingPointer(pointer);
+ this.forwardedPointers.remove$1(0, pointer);
+ this.cachedEvents.remove$1(0, pointer);
+ },
+ stopTrackingPointer$1: function(pointer) {
+ this.super$OneSequenceGestureRecognizer$stopTrackingPointer(pointer);
+ this.forwardedPointers.remove$1(0, pointer);
+ },
+ _platform_view0$_handlePointerEvent$1: function(arg0) {
+ return this.get$_platform_view0$_handlePointerEvent().call$1(arg0);
+ }
+ };
+ G._PlatformViewGestureRecognizer_closure.prototype = {
+ call$1: function(recognizerFactory) {
+ var gestureRecognizer = recognizerFactory.constructor$0();
+ gestureRecognizer.set$team(this.$this._team);
+ gestureRecognizer.get$onLongPress();
+ return gestureRecognizer;
+ },
+ $signature: 209
+ };
+ G.PlatformViewRenderBox.prototype = {
+ set$controller: function(_, controller) {
+ var t2, _this = this,
+ t1 = _this._platform_view0$_controller;
+ if (t1 == controller)
+ return;
+ t1 = t1.viewId;
+ t2 = controller.viewId;
+ _this._platform_view0$_controller = controller;
+ _this.markNeedsPaint$0();
+ if (t1 != t2)
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ get$sizedByParent: function() {
+ return true;
+ },
+ get$alwaysNeedsCompositing: function() {
+ return true;
+ },
+ get$isRepaintBoundary: function() {
+ return true;
+ },
+ performResize$0: function() {
+ var t1 = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this));
+ this._size = new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight));
+ },
+ paint$2: function(context, offset) {
+ var t5,
+ t1 = this._size,
+ t2 = offset._dx,
+ t3 = offset._dy,
+ t4 = t1._dx;
+ t1 = t1._dy;
+ t5 = this._platform_view0$_controller.viewId;
+ context.stopRecordingIfNeeded$0();
+ context.appendLayer$1(new T.PlatformViewLayer(new P.Rect(t2, t3, t2 + t4, t3 + t1), t5));
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ this.super$RenderObject$describeSemanticsConfiguration(config);
+ config._isSemanticBoundary = true;
+ config.set$platformViewId(this._platform_view0$_controller.viewId);
+ },
+ $isMouseTrackerAnnotation: 1
+ };
+ G._PlatformViewGestureMixin.prototype = {
+ set$hitTestBehavior: function(value) {
+ var _this = this;
+ if (value !== _this._PlatformViewGestureMixin__hitTestBehavior) {
+ _this._PlatformViewGestureMixin__hitTestBehavior = value;
+ if (type$.nullable_PipelineOwner._as(B.AbstractNode.prototype.get$owner.call(_this)) != null)
+ _this.markNeedsPaint$0();
+ }
+ },
+ _updateGestureRecognizersWithCallBack$2: function(gestureRecognizers, handlePointerEvent) {
+ var _this = this,
+ t1 = _this._PlatformViewGestureMixin__gestureRecognizer;
+ t1 = t1 == null ? null : t1.gestureRecognizerFactories;
+ if (G._factoryTypesSetEquals(gestureRecognizers, t1, type$.OneSequenceGestureRecognizer))
+ return;
+ t1 = _this._PlatformViewGestureMixin__gestureRecognizer;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this._PlatformViewGestureMixin__gestureRecognizer = G._PlatformViewGestureRecognizer$(handlePointerEvent, gestureRecognizers);
+ _this._PlatformViewGestureMixin__handlePointerEvent = handlePointerEvent;
+ },
+ hitTest$2$position: function(result, position) {
+ var t1, _this = this;
+ if (_this._PlatformViewGestureMixin__hitTestBehavior === C.PlatformViewHitTestBehavior_2 || !_this._size.contains$1(0, position))
+ return false;
+ t1 = new S.BoxHitTestEntry(position, _this);
+ result._globalizeTransforms$0();
+ t1._transform = C.JSArray_methods.get$last(result._transforms);
+ result._path.push(t1);
+ return _this._PlatformViewGestureMixin__hitTestBehavior === C.PlatformViewHitTestBehavior_0;
+ },
+ hitTestSelf$1: function(position) {
+ return this._PlatformViewGestureMixin__hitTestBehavior !== C.PlatformViewHitTestBehavior_2;
+ },
+ get$onEnter: function(_) {
+ return null;
+ },
+ get$onExit: function(_) {
+ return null;
+ },
+ get$cursor: function(_) {
+ return C.C__NoopMouseCursor;
+ },
+ handleEvent$2: function($event, entry) {
+ var t1;
+ if (type$.PointerDownEvent._is($event))
+ this._PlatformViewGestureMixin__gestureRecognizer.addPointer$1($event);
+ if (type$.PointerHoverEvent._is($event)) {
+ t1 = this._PlatformViewGestureMixin__handlePointerEvent;
+ if (t1 != null)
+ t1.call$1($event);
+ }
+ }
+ };
+ G._PlatformViewRenderBox_RenderBox__PlatformViewGestureMixin.prototype = {
+ detach$0: function(_) {
+ var t1 = this._PlatformViewGestureMixin__gestureRecognizer,
+ t2 = t1.forwardedPointers;
+ t2.forEach$1(0, S.OneSequenceGestureRecognizer.prototype.get$stopTrackingPointer.call(t1));
+ t2.clear$0(0);
+ t2 = t1.cachedEvents;
+ t2.get$keys(t2).forEach$1(0, S.OneSequenceGestureRecognizer.prototype.get$stopTrackingPointer.call(t1));
+ t2.clear$0(0);
+ t1.resolve$1(C.GestureDisposition_1);
+ this.super$AbstractNode$detach(0);
+ }
+ };
+ E.RenderProxyBox.prototype = {};
+ E.RenderProxyBoxMixin.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof K.ParentData))
+ child.parentData = new K.ParentData();
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t1.get$computeMinIntrinsicWidth());
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth());
+ return 0;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_2, width, t1.get$computeMinIntrinsicHeight());
+ return 0;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_3, width, t1.get$computeMaxIntrinsicHeight());
+ return 0;
+ },
+ performLayout$0: function() {
+ var _this = this,
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t1.layout$2$parentUsesSize(0, type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)), true);
+ t1 = _this.RenderObjectWithChildMixin__child._size;
+ t1.toString;
+ _this._size = t1;
+ } else
+ _this.performResize$0();
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ t1 = t1 == null ? null : t1.hitTest$2$position(result, position);
+ return t1 === true;
+ },
+ applyPaintTransform$2: function(child, transform) {
+ },
+ paint$2: function(context, offset) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ context.paintChild$2(t1, offset);
+ }
+ };
+ E.HitTestBehavior.prototype = {
+ toString$0: function(_) {
+ return this._proxy_box$_name;
+ }
+ };
+ E.RenderProxyBoxWithHitTestBehavior.prototype = {
+ hitTest$2$position: function(result, position) {
+ var hitTarget, t1, _this = this;
+ if (_this._size.contains$1(0, position)) {
+ hitTarget = _this.hitTestChildren$2$position(result, position) || _this.behavior === C.HitTestBehavior_1;
+ if (hitTarget || _this.behavior === C.HitTestBehavior_2) {
+ t1 = new S.BoxHitTestEntry(position, _this);
+ result._globalizeTransforms$0();
+ t1._transform = C.JSArray_methods.get$last(result._transforms);
+ result._path.push(t1);
+ }
+ } else
+ hitTarget = false;
+ return hitTarget;
+ },
+ hitTestSelf$1: function(position) {
+ return this.behavior === C.HitTestBehavior_1;
+ }
+ };
+ E.RenderConstrainedBox.prototype = {
+ set$additionalConstraints: function(value) {
+ if (J.$eq$(this._additionalConstraints, value))
+ return;
+ this._additionalConstraints = value;
+ this.markNeedsLayout$0();
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var width,
+ t1 = this._additionalConstraints,
+ t2 = t1.maxWidth;
+ if (t2 < 1 / 0 && t1.minWidth >= t2)
+ return t1.minWidth;
+ width = this.super$RenderProxyBoxMixin$computeMinIntrinsicWidth(height);
+ t1 = this._additionalConstraints;
+ t2 = t1.minWidth;
+ if (!(t2 >= 1 / 0))
+ return J.clamp$2$n(width, t2, t1.maxWidth);
+ return width;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var width,
+ t1 = this._additionalConstraints,
+ t2 = t1.maxWidth;
+ if (t2 < 1 / 0 && t1.minWidth >= t2)
+ return t1.minWidth;
+ width = this.super$RenderProxyBoxMixin$computeMaxIntrinsicWidth(height);
+ t1 = this._additionalConstraints;
+ t2 = t1.minWidth;
+ if (!(t2 >= 1 / 0))
+ return J.clamp$2$n(width, t2, t1.maxWidth);
+ return width;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var height,
+ t1 = this._additionalConstraints,
+ t2 = t1.maxHeight;
+ if (t2 < 1 / 0 && t1.minHeight >= t2)
+ return t1.minHeight;
+ height = this.super$RenderProxyBoxMixin$computeMinIntrinsicHeight(width);
+ t1 = this._additionalConstraints;
+ t2 = t1.minHeight;
+ if (!(t2 >= 1 / 0))
+ return J.clamp$2$n(height, t2, t1.maxHeight);
+ return height;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ var height,
+ t1 = this._additionalConstraints,
+ t2 = t1.maxHeight;
+ if (t2 < 1 / 0 && t1.minHeight >= t2)
+ return t1.minHeight;
+ height = this.super$RenderProxyBoxMixin$computeMaxIntrinsicHeight(width);
+ t1 = this._additionalConstraints;
+ t2 = t1.minHeight;
+ if (!(t2 >= 1 / 0))
+ return J.clamp$2$n(height, t2, t1.maxHeight);
+ return height;
+ },
+ performLayout$0: function() {
+ var _this = this,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)),
+ t1 = _this.RenderObjectWithChildMixin__child,
+ t2 = _this._additionalConstraints;
+ if (t1 != null) {
+ t1.layout$2$parentUsesSize(0, t2.enforce$1(constraints), true);
+ t1 = _this.RenderObjectWithChildMixin__child._size;
+ t1.toString;
+ _this._size = t1;
+ } else
+ _this._size = t2.enforce$1(constraints).constrain$1(C.Size_0_0);
+ }
+ };
+ E.RenderLimitedBox.prototype = {
+ set$maxWidth: function(_, value) {
+ if (this._proxy_box$_maxWidth === value)
+ return;
+ this._proxy_box$_maxWidth = value;
+ this.markNeedsLayout$0();
+ },
+ set$maxHeight: function(_, value) {
+ if (this._maxHeight === value)
+ return;
+ this._maxHeight = value;
+ this.markNeedsLayout$0();
+ },
+ _limitConstraints$1: function(constraints) {
+ var t3, t4,
+ t1 = constraints.minWidth,
+ t2 = constraints.maxWidth;
+ t2 = t2 < 1 / 0 ? t2 : C.JSInt_methods.clamp$2(this._proxy_box$_maxWidth, t1, t2);
+ t3 = constraints.minHeight;
+ t4 = constraints.maxHeight;
+ return new S.BoxConstraints(t1, t2, t3, t4 < 1 / 0 ? t4 : C.JSInt_methods.clamp$2(this._maxHeight, t3, t4));
+ },
+ performLayout$0: function() {
+ var constraints, _this = this,
+ t1 = type$.BoxConstraints;
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ constraints = t1._as(K.RenderObject.prototype.get$constraints.call(_this));
+ t1 = _this.RenderObjectWithChildMixin__child;
+ t1.toString;
+ t1.layout$2$parentUsesSize(0, _this._limitConstraints$1(constraints), true);
+ t1 = _this.RenderObjectWithChildMixin__child._size;
+ t1.toString;
+ _this._size = constraints.constrain$1(t1);
+ } else
+ _this._size = _this._limitConstraints$1(t1._as(K.RenderObject.prototype.get$constraints.call(_this))).constrain$1(C.Size_0_0);
+ }
+ };
+ E.RenderIntrinsicWidth.prototype = {
+ set$stepWidth: function(value) {
+ return;
+ },
+ set$stepHeight: function(value) {
+ return;
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ return this.computeMaxIntrinsicWidth$1(height);
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 == null)
+ return 0;
+ return E.RenderIntrinsicWidth__applyStep(t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth()), this._stepWidth);
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t1, _this = this;
+ if (_this.RenderObjectWithChildMixin__child == null)
+ return 0;
+ width.toString;
+ if (!isFinite(width))
+ width = _this.computeMaxIntrinsicWidth$1(1 / 0);
+ t1 = _this.RenderObjectWithChildMixin__child;
+ return E.RenderIntrinsicWidth__applyStep(t1._computeIntrinsicDimension$3(C._IntrinsicDimension_2, width, t1.get$computeMinIntrinsicHeight()), _this._stepHeight);
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ var t1, _this = this;
+ if (_this.RenderObjectWithChildMixin__child == null)
+ return 0;
+ width.toString;
+ if (!isFinite(width))
+ width = _this.computeMaxIntrinsicWidth$1(1 / 0);
+ t1 = _this.RenderObjectWithChildMixin__child;
+ return E.RenderIntrinsicWidth__applyStep(t1._computeIntrinsicDimension$3(C._IntrinsicDimension_3, width, t1.get$computeMaxIntrinsicHeight()), _this._stepHeight);
+ },
+ performLayout$0: function() {
+ var childConstraints, t1, _this = this;
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ childConstraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this));
+ if (!(childConstraints.minWidth >= childConstraints.maxWidth)) {
+ t1 = _this.RenderObjectWithChildMixin__child;
+ t1.toString;
+ childConstraints = childConstraints.tighten$1$width(E.RenderIntrinsicWidth__applyStep(t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, childConstraints.maxHeight, t1.get$computeMaxIntrinsicWidth()), _this._stepWidth));
+ }
+ _this.RenderObjectWithChildMixin__child.layout$2$parentUsesSize(0, childConstraints, true);
+ t1 = _this.RenderObjectWithChildMixin__child._size;
+ t1.toString;
+ _this._size = t1;
+ } else {
+ t1 = _this.get$constraints();
+ _this._size = new P.Size(C.JSInt_methods.clamp$2(0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(0, t1.minHeight, t1.maxHeight));
+ }
+ }
+ };
+ E.RenderOpacity.prototype = {
+ get$alwaysNeedsCompositing: function() {
+ if (this.RenderObjectWithChildMixin__child != null) {
+ var t1 = this._alpha;
+ t1 = t1 !== 0 && t1 !== 255;
+ } else
+ t1 = false;
+ return t1;
+ },
+ set$opacity: function(_, value) {
+ var didNeedCompositing, t1, _this = this;
+ if (_this._opacity == value)
+ return;
+ didNeedCompositing = _this.get$alwaysNeedsCompositing();
+ t1 = _this._alpha;
+ _this._opacity = value;
+ _this._alpha = C.JSNumber_methods.round$0(J.clamp$2$n(value, 0, 1) * 255);
+ if (didNeedCompositing !== _this.get$alwaysNeedsCompositing())
+ _this.markNeedsCompositingBitsUpdate$0();
+ _this.markNeedsPaint$0();
+ if (t1 !== 0 !== (_this._alpha !== 0) && true)
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$alwaysIncludeSemantics: function(value) {
+ return;
+ },
+ paint$2: function(context, offset) {
+ var t2, _this = this,
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t2 = _this._alpha;
+ if (t2 === 0) {
+ _this._layer = null;
+ return;
+ }
+ if (t2 === 255) {
+ _this._layer = null;
+ context.paintChild$2(t1, offset);
+ return;
+ }
+ _this._layer = context.pushOpacity$4$oldLayer(offset, t2, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), type$.nullable_OpacityLayer._as(_this._layer));
+ }
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ var t2,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t2 = this._alpha !== 0 || false;
+ else
+ t2 = false;
+ if (t2) {
+ t1.toString;
+ visitor.call$1(t1);
+ }
+ }
+ };
+ E.RenderAnimatedOpacityMixin.prototype = {
+ get$alwaysNeedsCompositing: function() {
+ if (this.RenderObjectWithChildMixin__child != null) {
+ var t1 = this.RenderAnimatedOpacityMixin__currentlyNeedsCompositing;
+ t1.toString;
+ } else
+ t1 = false;
+ return t1;
+ },
+ set$opacity: function(_, value) {
+ var _this = this,
+ t1 = _this.RenderAnimatedOpacityMixin__opacity;
+ if (t1 == value)
+ return;
+ if (_this._node$_owner != null && t1 != null)
+ t1.removeListener$1(0, _this.get$_updateOpacity());
+ _this.RenderAnimatedOpacityMixin__opacity = value;
+ if (_this._node$_owner != null)
+ value.addListener$1(0, _this.get$_updateOpacity());
+ _this._updateOpacity$0();
+ },
+ set$alwaysIncludeSemantics: function(value) {
+ if (value === this.RenderAnimatedOpacityMixin__alwaysIncludeSemantics)
+ return;
+ this.RenderAnimatedOpacityMixin__alwaysIncludeSemantics = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ _updateOpacity$0: function() {
+ var didNeedCompositing, _this = this,
+ oldAlpha = _this.RenderAnimatedOpacityMixin__alpha,
+ t1 = _this.RenderAnimatedOpacityMixin__opacity;
+ t1 = _this.RenderAnimatedOpacityMixin__alpha = C.JSNumber_methods.round$0(J.clamp$2$n(t1.get$value(t1), 0, 1) * 255);
+ if (oldAlpha !== t1) {
+ didNeedCompositing = _this.RenderAnimatedOpacityMixin__currentlyNeedsCompositing;
+ t1 = t1 > 0 && t1 < 255;
+ _this.RenderAnimatedOpacityMixin__currentlyNeedsCompositing = t1;
+ if (_this.RenderObjectWithChildMixin__child != null && didNeedCompositing !== t1)
+ _this.markNeedsCompositingBitsUpdate$0();
+ _this.markNeedsPaint$0();
+ if (oldAlpha === 0 || _this.RenderAnimatedOpacityMixin__alpha === 0)
+ _this.markNeedsSemanticsUpdate$0();
+ }
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ var t2,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ if (this.RenderAnimatedOpacityMixin__alpha === 0) {
+ t2 = this.RenderAnimatedOpacityMixin__alwaysIncludeSemantics;
+ t2.toString;
+ } else
+ t2 = true;
+ else
+ t2 = false;
+ if (t2) {
+ t1.toString;
+ visitor.call$1(t1);
+ }
+ }
+ };
+ E.RenderAnimatedOpacity.prototype = {};
+ E.CustomClipper.prototype = {
+ addListener$1: function(_, listener) {
+ return null;
+ },
+ removeListener$1: function(_, listener) {
+ return null;
+ },
+ toString$0: function(_) {
+ return "CustomClipper";
+ }
+ };
+ E.ShapeBorderClipper.prototype = {
+ getClip$1: function(size) {
+ return this.shape.getOuterPath$2$textDirection(new P.Rect(0, 0, 0 + size._dx, 0 + size._dy), this.textDirection);
+ },
+ shouldReclip$1: function(oldClipper) {
+ if (H.getRuntimeType(oldClipper) !== C.Type_ShapeBorderClipper_QWG)
+ return true;
+ type$.ShapeBorderClipper._as(oldClipper);
+ return !J.$eq$(oldClipper.shape, this.shape) || oldClipper.textDirection != this.textDirection;
+ }
+ };
+ E._RenderCustomClip.prototype = {
+ set$clipper: function(newClipper) {
+ var t2, _this = this,
+ t1 = _this._clipper;
+ if (t1 == newClipper)
+ return;
+ _this._clipper = newClipper;
+ t2 = newClipper == null;
+ if (t2 || t1 == null || H.getRuntimeType(newClipper) !== H.getRuntimeType(t1) || newClipper.shouldReclip$1(t1))
+ _this._markNeedsClip$0();
+ if (_this._node$_owner != null) {
+ if (t1 != null)
+ t1.removeListener$1(0, _this.get$_markNeedsClip());
+ if (!t2)
+ newClipper.addListener$1(0, _this.get$_markNeedsClip());
+ }
+ },
+ attach$1: function(owner) {
+ var t1;
+ this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$attach(owner);
+ t1 = this._clipper;
+ if (t1 != null)
+ t1.addListener$1(0, this.get$_markNeedsClip());
+ },
+ detach$0: function(_) {
+ var t1 = this._clipper;
+ if (t1 != null)
+ t1.removeListener$1(0, this.get$_markNeedsClip());
+ this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$detach(0);
+ },
+ _markNeedsClip$0: function() {
+ this._clip = null;
+ this.markNeedsPaint$0();
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$clipBehavior: function(value) {
+ if (value !== this._proxy_box$_clipBehavior) {
+ this._proxy_box$_clipBehavior = value;
+ this.markNeedsPaint$0();
+ }
+ },
+ performLayout$0: function() {
+ var t1, _this = this,
+ oldSize = _this._size;
+ oldSize = oldSize != null ? oldSize : null;
+ _this.super$RenderProxyBoxMixin$performLayout();
+ t1 = _this._size;
+ t1.toString;
+ if (!J.$eq$(oldSize, t1))
+ _this._clip = null;
+ },
+ _updateClip$0: function() {
+ var t1, t2, _this = this;
+ if (_this._clip == null) {
+ t1 = _this._clipper;
+ if (t1 == null)
+ t1 = null;
+ else {
+ t2 = _this._size;
+ t2.toString;
+ t2 = t1.getClip$1(t2);
+ t1 = t2;
+ }
+ _this._clip = t1 == null ? _this.get$_defaultClip() : t1;
+ }
+ },
+ describeApproximatePaintClip$1: function(child) {
+ var t1;
+ if (this._clipper == null)
+ t1 = null;
+ else {
+ t1 = this._size;
+ t1 = new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ }
+ if (t1 == null) {
+ t1 = this._size;
+ t1 = new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ }
+ return t1;
+ }
+ };
+ E.RenderClipRect.prototype = {
+ get$_defaultClip: function() {
+ var t1 = this._size;
+ return new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ },
+ hitTest$2$position: function(result, position) {
+ var _this = this;
+ if (_this._clipper != null) {
+ _this._updateClip$0();
+ if (!_this._clip.contains$1(0, position))
+ return false;
+ }
+ return _this.super$RenderBox$hitTest(result, position);
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, _this = this;
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ _this._updateClip$0();
+ t1 = _this.get$_needsCompositing();
+ t2 = _this._clip;
+ t2.toString;
+ _this._layer = context.pushClipRect$6$clipBehavior$oldLayer(t1, offset, t2, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), _this._proxy_box$_clipBehavior, type$.nullable_ClipRectLayer._as(_this._layer));
+ } else
+ _this._layer = null;
+ }
+ };
+ E.RenderClipPath.prototype = {
+ get$_defaultClip: function() {
+ var t1 = P.Path_Path(),
+ t2 = this._size;
+ t1.addRect$1(0, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy));
+ return t1;
+ },
+ hitTest$2$position: function(result, position) {
+ var _this = this;
+ if (_this._clipper != null) {
+ _this._updateClip$0();
+ if (!_this._clip.contains$1(0, position))
+ return false;
+ }
+ return _this.super$RenderBox$hitTest(result, position);
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, t3, t4, _this = this;
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ _this._updateClip$0();
+ t1 = _this.get$_needsCompositing();
+ t2 = _this._size;
+ t3 = t2._dx;
+ t2 = t2._dy;
+ t4 = _this._clip;
+ t4.toString;
+ _this._layer = context.pushClipPath$7$clipBehavior$oldLayer(t1, offset, new P.Rect(0, 0, 0 + t3, 0 + t2), t4, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), _this._proxy_box$_clipBehavior, type$.nullable_ClipPathLayer._as(_this._layer));
+ } else
+ _this._layer = null;
+ }
+ };
+ E._RenderPhysicalModelBase.prototype = {
+ set$elevation: function(_, value) {
+ if (this._proxy_box$_elevation == value)
+ return;
+ this._proxy_box$_elevation = value;
+ this.markNeedsPaint$0();
+ },
+ set$shadowColor: function(_, value) {
+ if (J.$eq$(this._proxy_box$_shadowColor, value))
+ return;
+ this._proxy_box$_shadowColor = value;
+ this.markNeedsPaint$0();
+ },
+ set$color: function(_, value) {
+ if (J.$eq$(this._proxy_box$_color, value))
+ return;
+ this._proxy_box$_color = value;
+ this.markNeedsPaint$0();
+ },
+ get$alwaysNeedsCompositing: function() {
+ return true;
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ this.super$RenderObject$describeSemanticsConfiguration(config);
+ config.set$elevation(0, this._proxy_box$_elevation);
+ }
+ };
+ E.RenderPhysicalModel.prototype = {
+ set$shape: function(_, value) {
+ if (this._proxy_box$_shape === value)
+ return;
+ this._proxy_box$_shape = value;
+ this._markNeedsClip$0();
+ },
+ set$borderRadius: function(_, value) {
+ if (J.$eq$(this._proxy_box$_borderRadius, value))
+ return;
+ this._proxy_box$_borderRadius = value;
+ this._markNeedsClip$0();
+ },
+ get$_defaultClip: function() {
+ var t1, t2, t3, t4, _this = this;
+ switch (_this._proxy_box$_shape) {
+ case C.BoxShape_0:
+ t1 = _this._proxy_box$_borderRadius;
+ if (t1 == null)
+ t1 = C.BorderRadius_tLn;
+ t2 = _this._size;
+ return t1.toRRect$1(new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy));
+ case C.BoxShape_1:
+ t1 = _this._size;
+ t2 = 0 + t1._dx;
+ t1 = 0 + t1._dy;
+ t3 = (t2 - 0) / 2;
+ t4 = (t1 - 0) / 2;
+ return new P.RRect(0, 0, t2, t1, t3, t4, t3, t4, t3, t4, t3, t4, t3 === t4);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ hitTest$2$position: function(result, position) {
+ var _this = this;
+ if (_this._clipper != null) {
+ _this._updateClip$0();
+ if (!_this._clip.contains$1(0, position))
+ return false;
+ }
+ return _this.super$RenderBox$hitTest(result, position);
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, offsetRRectAsPath, _this = this;
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ _this._updateClip$0();
+ t1 = _this._clip;
+ t2 = offset._dx;
+ t3 = t1.left + t2;
+ t4 = offset._dy;
+ t5 = t1.top + t4;
+ t2 = t1.right + t2;
+ t4 = t1.bottom + t4;
+ t6 = t1.tlRadiusX;
+ t7 = t1.tlRadiusY;
+ t8 = t1.trRadiusX;
+ t9 = t1.trRadiusY;
+ t10 = t1.blRadiusX;
+ t11 = t1.blRadiusY;
+ t12 = t1.brRadiusX;
+ t1 = t1.brRadiusY;
+ offsetRRectAsPath = P.Path_Path();
+ offsetRRectAsPath.addRRect$1(0, new P.RRect(t3, t5, t2, t4, t6, t7, t8, t9, t12, t1, t10, t11, false));
+ t1 = type$.nullable_PhysicalModelLayer;
+ if (t1._as(K.RenderObject.prototype.get$layer.call(_this, _this)) == null)
+ _this._layer = T.PhysicalModelLayer$();
+ t6 = t1._as(K.RenderObject.prototype.get$layer.call(_this, _this));
+ t6.set$clipPath(0, offsetRRectAsPath);
+ t6.set$clipBehavior(_this._proxy_box$_clipBehavior);
+ t7 = _this._proxy_box$_elevation;
+ t6.set$elevation(0, t7);
+ t6.set$color(0, _this._proxy_box$_color);
+ t6.set$shadowColor(0, _this._proxy_box$_shadowColor);
+ t1 = t1._as(K.RenderObject.prototype.get$layer.call(_this, _this));
+ t1.toString;
+ context.pushLayer$4$childPaintBounds(t1, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), offset, new P.Rect(t3, t5, t2, t4));
+ } else
+ _this._layer = null;
+ }
+ };
+ E.RenderPhysicalShape.prototype = {
+ get$_defaultClip: function() {
+ var t1 = P.Path_Path(),
+ t2 = this._size;
+ t1.addRect$1(0, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy));
+ return t1;
+ },
+ hitTest$2$position: function(result, position) {
+ var _this = this;
+ if (_this._clipper != null) {
+ _this._updateClip$0();
+ if (!_this._clip.contains$1(0, position))
+ return false;
+ }
+ return _this.super$RenderBox$hitTest(result, position);
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, t3, t4, offsetPath, t5, t6, t7, _this = this;
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ _this._updateClip$0();
+ t1 = _this._size;
+ t2 = offset._dx;
+ t3 = offset._dy;
+ t4 = t1._dx;
+ t1 = t1._dy;
+ offsetPath = _this._clip.shift$1(offset);
+ t5 = type$.nullable_PhysicalModelLayer;
+ if (t5._as(K.RenderObject.prototype.get$layer.call(_this, _this)) == null)
+ _this._layer = T.PhysicalModelLayer$();
+ t6 = t5._as(K.RenderObject.prototype.get$layer.call(_this, _this));
+ t6.set$clipPath(0, offsetPath);
+ t6.set$clipBehavior(_this._proxy_box$_clipBehavior);
+ t7 = _this._proxy_box$_elevation;
+ t6.set$elevation(0, t7);
+ t6.set$color(0, _this._proxy_box$_color);
+ t6.set$shadowColor(0, _this._proxy_box$_shadowColor);
+ t5 = t5._as(K.RenderObject.prototype.get$layer.call(_this, _this));
+ t5.toString;
+ context.pushLayer$4$childPaintBounds(t5, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), offset, new P.Rect(t2, t3, t2 + t4, t3 + t1));
+ } else
+ _this._layer = null;
+ }
+ };
+ E.DecorationPosition.prototype = {
+ toString$0: function(_) {
+ return this._proxy_box$_name;
+ }
+ };
+ E.RenderDecoratedBox.prototype = {
+ set$decoration: function(_, value) {
+ var t1, _this = this;
+ if (J.$eq$(value, _this._proxy_box$_decoration))
+ return;
+ t1 = _this._proxy_box$_painter;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this._proxy_box$_painter = null;
+ _this._proxy_box$_decoration = value;
+ _this.markNeedsPaint$0();
+ },
+ set$position: function(_, value) {
+ if (value === this._proxy_box$_position)
+ return;
+ this._proxy_box$_position = value;
+ this.markNeedsPaint$0();
+ },
+ set$configuration: function(value) {
+ if (value.$eq(0, this._proxy_box$_configuration))
+ return;
+ this._proxy_box$_configuration = value;
+ this.markNeedsPaint$0();
+ },
+ detach$0: function(_) {
+ var _this = this,
+ t1 = _this._proxy_box$_painter;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this._proxy_box$_painter = null;
+ _this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$detach(0);
+ _this.markNeedsPaint$0();
+ },
+ hitTestSelf$1: function(position) {
+ var t1 = this._proxy_box$_decoration,
+ t2 = this._size;
+ t2.toString;
+ return t1.hitTest$3$textDirection(t2, position, this._proxy_box$_configuration.textDirection);
+ },
+ paint$2: function(context, offset) {
+ var t2, t3, filledConfiguration, _this = this,
+ t1 = _this._proxy_box$_painter;
+ if (t1 == null)
+ t1 = _this._proxy_box$_painter = _this._proxy_box$_decoration.createBoxPainter$1(_this.get$markNeedsPaint());
+ t2 = _this._proxy_box$_configuration;
+ t3 = _this._size;
+ t3.toString;
+ filledConfiguration = new M.ImageConfiguration(t2.bundle, t2.devicePixelRatio, t2.locale, t2.textDirection, t3, t2.platform);
+ if (_this._proxy_box$_position === C.DecorationPosition_0) {
+ t1.paint$3(context.get$canvas(context), offset, filledConfiguration);
+ if (_this._proxy_box$_decoration.get$isComplex())
+ context.setIsComplexHint$0();
+ }
+ _this.super$RenderProxyBoxMixin$paint(context, offset);
+ if (_this._proxy_box$_position === C.DecorationPosition_1) {
+ t1 = _this._proxy_box$_painter;
+ t1.toString;
+ t1.paint$3(context.get$canvas(context), offset, filledConfiguration);
+ if (_this._proxy_box$_decoration.get$isComplex())
+ context.setIsComplexHint$0();
+ }
+ }
+ };
+ E.RenderTransform.prototype = {
+ set$origin: function(_, value) {
+ return;
+ },
+ set$alignment: function(_, value) {
+ var _this = this;
+ if (J.$eq$(_this._proxy_box$_alignment, value))
+ return;
+ _this._proxy_box$_alignment = value;
+ _this.markNeedsPaint$0();
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$textDirection: function(_, value) {
+ var _this = this;
+ if (_this._proxy_box$_textDirection == value)
+ return;
+ _this._proxy_box$_textDirection = value;
+ _this.markNeedsPaint$0();
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$transform: function(_, value) {
+ var t1, _this = this;
+ if (J.$eq$(_this._proxy_box$_transform, value))
+ return;
+ t1 = new E.Matrix4(new Float64Array(16));
+ t1.setFrom$1(value);
+ _this._proxy_box$_transform = t1;
+ _this.markNeedsPaint$0();
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ get$_effectiveTransform: function() {
+ var result, t1, translation, _this = this,
+ resolvedAlignment = _this._proxy_box$_alignment;
+ if (resolvedAlignment == null)
+ resolvedAlignment = null;
+ if (resolvedAlignment == null)
+ return _this._proxy_box$_transform;
+ result = new E.Matrix4(new Float64Array(16));
+ result.setIdentity$0();
+ t1 = _this._size;
+ t1.toString;
+ translation = resolvedAlignment.alongSize$1(t1);
+ result.translate$2(0, translation._dx, translation._dy);
+ t1 = _this._proxy_box$_transform;
+ t1.toString;
+ result.multiply$1(0, t1);
+ result.translate$2(0, -translation._dx, -translation._dy);
+ return result;
+ },
+ hitTest$2$position: function(result, position) {
+ return this.hitTestChildren$2$position(result, position);
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t1 = this.transformHitTests ? this.get$_effectiveTransform() : null;
+ return result.addWithPaintTransform$3$hitTest$position$transform(new E.RenderTransform_hitTestChildren_closure(this), position, t1);
+ },
+ paint$2: function(context, offset) {
+ var t1, childOffset, _this = this;
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ t1 = _this.get$_effectiveTransform();
+ t1.toString;
+ childOffset = T.MatrixUtils_getAsTranslation(t1);
+ if (childOffset == null)
+ _this._layer = context.pushTransform$5$oldLayer(_this.get$_needsCompositing(), offset, t1, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), type$.nullable_TransformLayer._as(_this._layer));
+ else {
+ _this.super$RenderProxyBoxMixin$paint(context, offset.$add(0, childOffset));
+ _this._layer = null;
+ }
+ }
+ },
+ applyPaintTransform$2: function(child, transform) {
+ var t1 = this.get$_effectiveTransform();
+ t1.toString;
+ transform.multiply$1(0, t1);
+ }
+ };
+ E.RenderTransform_hitTestChildren_closure.prototype = {
+ call$2: function(result, position) {
+ position.toString;
+ return this.$this.super$RenderProxyBoxMixin$hitTestChildren(result, position);
+ },
+ $signature: 23
+ };
+ E.RenderFractionalTranslation.prototype = {
+ set$translation: function(value) {
+ var _this = this;
+ if (J.$eq$(_this._translation, value))
+ return;
+ _this._translation = value;
+ _this.markNeedsPaint$0();
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ hitTest$2$position: function(result, position) {
+ return this.hitTestChildren$2$position(result, position);
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t1, t2, t3, _this = this;
+ if (_this.transformHitTests) {
+ t1 = _this._translation;
+ t2 = t1._dx;
+ t3 = _this._size;
+ t3 = new P.Offset(t2 * t3._dx, t1._dy * t3._dy);
+ t1 = t3;
+ } else
+ t1 = null;
+ return result.addWithPaintOffset$3$hitTest$offset$position(new E.RenderFractionalTranslation_hitTestChildren_closure(_this), t1, position);
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, t3, _this = this;
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ t1 = _this._translation;
+ t2 = t1._dx;
+ t3 = _this._size;
+ _this.super$RenderProxyBoxMixin$paint(context, new P.Offset(offset._dx + t2 * t3._dx, offset._dy + t1._dy * t3._dy));
+ }
+ },
+ applyPaintTransform$2: function(child, transform) {
+ var t1 = this._translation,
+ t2 = t1._dx,
+ t3 = this._size;
+ transform.translate$2(0, t2 * t3._dx, t1._dy * t3._dy);
+ }
+ };
+ E.RenderFractionalTranslation_hitTestChildren_closure.prototype = {
+ call$2: function(result, position) {
+ position.toString;
+ return this.$this.super$RenderProxyBoxMixin$hitTestChildren(result, position);
+ },
+ $signature: 23
+ };
+ E.RenderPointerListener.prototype = {
+ performResize$0: function() {
+ var t1 = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this));
+ this._size = new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight));
+ },
+ handleEvent$2: function($event, entry) {
+ var t1, _this = this, _null = null;
+ if (type$.PointerDownEvent._is($event)) {
+ t1 = _this.onPointerDown;
+ return t1 == null ? _null : t1.call$1($event);
+ }
+ if (type$.PointerMoveEvent._is($event))
+ return _null;
+ if (type$.PointerUpEvent._is($event)) {
+ t1 = _this.onPointerUp;
+ return t1 == null ? _null : t1.call$1($event);
+ }
+ if (type$.PointerHoverEvent._is($event))
+ return _null;
+ if (type$.PointerCancelEvent._is($event)) {
+ t1 = _this.onPointerCancel;
+ return t1 == null ? _null : t1.call$1($event);
+ }
+ if (type$.PointerSignalEvent._is($event)) {
+ t1 = _this.onPointerSignal;
+ return t1 == null ? _null : t1.call$1($event);
+ }
+ }
+ };
+ E.RenderMouseRegion.prototype = {
+ hitTestSelf$1: function(position) {
+ return true;
+ },
+ hitTest$2$position: function(result, position) {
+ return this.super$RenderBox$hitTest(result, position) && true;
+ },
+ handleEvent$2: function($event, entry) {
+ },
+ get$cursor: function(_) {
+ return this._cursor;
+ },
+ performResize$0: function() {
+ var t1 = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this));
+ this._size = new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight));
+ },
+ $isMouseTrackerAnnotation: 1,
+ get$onEnter: function(receiver) {
+ return this.onEnter;
+ },
+ get$onExit: function(receiver) {
+ return this.onExit;
+ }
+ };
+ E.RenderRepaintBoundary.prototype = {
+ get$isRepaintBoundary: function() {
+ return true;
+ }
+ };
+ E.RenderIgnorePointer.prototype = {
+ set$ignoring: function(value) {
+ var t1, _this = this;
+ if (value === _this._ignoring)
+ return;
+ _this._ignoring = value;
+ t1 = _this._ignoringSemantics;
+ if (t1 == null || !t1)
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$ignoringSemantics: function(value) {
+ var oldEffectiveValue, _this = this;
+ if (value == _this._ignoringSemantics)
+ return;
+ oldEffectiveValue = _this.get$_effectiveIgnoringSemantics();
+ _this._ignoringSemantics = value;
+ if (oldEffectiveValue !== _this.get$_effectiveIgnoringSemantics())
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ get$_effectiveIgnoringSemantics: function() {
+ var t1 = this._ignoringSemantics;
+ return t1 == null ? this._ignoring : t1;
+ },
+ hitTest$2$position: function(result, position) {
+ return !this._ignoring && this.super$RenderBox$hitTest(result, position);
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ var t1;
+ if (this.RenderObjectWithChildMixin__child != null && !this.get$_effectiveIgnoringSemantics()) {
+ t1 = this.RenderObjectWithChildMixin__child;
+ t1.toString;
+ visitor.call$1(t1);
+ }
+ }
+ };
+ E.RenderOffstage.prototype = {
+ set$offstage: function(value) {
+ var _this = this;
+ if (value === _this._proxy_box$_offstage)
+ return;
+ _this._proxy_box$_offstage = value;
+ _this.markNeedsLayout$0();
+ _this.markParentNeedsLayout$0();
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ if (this._proxy_box$_offstage)
+ return 0;
+ return this.super$RenderProxyBoxMixin$computeMinIntrinsicWidth(height);
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ if (this._proxy_box$_offstage)
+ return 0;
+ return this.super$RenderProxyBoxMixin$computeMaxIntrinsicWidth(height);
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ if (this._proxy_box$_offstage)
+ return 0;
+ return this.super$RenderProxyBoxMixin$computeMinIntrinsicHeight(width);
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ if (this._proxy_box$_offstage)
+ return 0;
+ return this.super$RenderProxyBoxMixin$computeMaxIntrinsicHeight(width);
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ if (this._proxy_box$_offstage)
+ return null;
+ return this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin$computeDistanceToActualBaseline(baseline);
+ },
+ get$sizedByParent: function() {
+ return this._proxy_box$_offstage;
+ },
+ performResize$0: function() {
+ var t1 = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this));
+ this._size = new P.Size(C.JSInt_methods.clamp$2(0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(0, t1.minHeight, t1.maxHeight));
+ },
+ performLayout$0: function() {
+ var t1, _this = this;
+ if (_this._proxy_box$_offstage) {
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.layout$1(0, type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)));
+ } else
+ _this.super$RenderProxyBoxMixin$performLayout();
+ },
+ hitTest$2$position: function(result, position) {
+ return !this._proxy_box$_offstage && this.super$RenderBox$hitTest(result, position);
+ },
+ paint$2: function(context, offset) {
+ if (this._proxy_box$_offstage)
+ return;
+ this.super$RenderProxyBoxMixin$paint(context, offset);
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ if (this._proxy_box$_offstage)
+ return;
+ this.super$RenderObject$visitChildrenForSemantics(visitor);
+ },
+ debugDescribeChildren$0: function() {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 == null)
+ return H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode);
+ return H.setRuntimeTypeInfo([Y.DiagnosticableTreeNode$("child", this._proxy_box$_offstage ? C.DiagnosticsTreeStyle_2 : C.DiagnosticsTreeStyle_1, t1)], type$.JSArray_DiagnosticsNode);
+ }
+ };
+ E.RenderAbsorbPointer.prototype = {
+ set$absorbing: function(value) {
+ if (this._absorbing == value)
+ return;
+ this._absorbing = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$ignoringSemantics: function(value) {
+ return;
+ },
+ get$_effectiveIgnoringSemantics: function() {
+ var t1 = this._absorbing;
+ return t1;
+ },
+ hitTest$2$position: function(result, position) {
+ return this._absorbing ? this._size.contains$1(0, position) : this.super$RenderBox$hitTest(result, position);
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ var t1;
+ if (this.RenderObjectWithChildMixin__child != null && !this.get$_effectiveIgnoringSemantics()) {
+ t1 = this.RenderObjectWithChildMixin__child;
+ t1.toString;
+ visitor.call$1(t1);
+ }
+ }
+ };
+ E.RenderSemanticsGestureHandler.prototype = {
+ set$validActions: function(value) {
+ if (S.setEquals(value, this._validActions))
+ return;
+ this._validActions = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$onTap: function(value) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onTap, value))
+ return;
+ t1 = _this._onTap;
+ _this._onTap = value;
+ if (value != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onLongPress: function(value) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onLongPress, value))
+ return;
+ t1 = _this._onLongPress;
+ _this._onLongPress = value;
+ if (value != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onHorizontalDragUpdate: function(value) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onHorizontalDragUpdate, value))
+ return;
+ t1 = _this._onHorizontalDragUpdate;
+ _this._onHorizontalDragUpdate = value;
+ if (value != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onVerticalDragUpdate: function(value) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onVerticalDragUpdate, value))
+ return;
+ t1 = _this._onVerticalDragUpdate;
+ _this._onVerticalDragUpdate = value;
+ if (value != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ var _this = this;
+ _this.super$RenderObject$describeSemanticsConfiguration(config);
+ if (_this._onTap != null && _this._isValidAction$1(C.SemanticsAction_1))
+ config.set$onTap(_this._onTap);
+ if (_this._onLongPress != null && _this._isValidAction$1(C.SemanticsAction_2))
+ config.set$onLongPress(_this._onLongPress);
+ if (_this._onHorizontalDragUpdate != null) {
+ if (_this._isValidAction$1(C.SemanticsAction_8))
+ config.set$onScrollRight(_this.get$_performSemanticScrollRight());
+ if (_this._isValidAction$1(C.SemanticsAction_4))
+ config.set$onScrollLeft(_this.get$_performSemanticScrollLeft());
+ }
+ if (_this._onVerticalDragUpdate != null) {
+ if (_this._isValidAction$1(C.SemanticsAction_16))
+ config.set$onScrollUp(_this.get$_performSemanticScrollUp());
+ if (_this._isValidAction$1(C.SemanticsAction_32))
+ config.set$onScrollDown(_this.get$_performSemanticScrollDown());
+ }
+ },
+ _isValidAction$1: function(action) {
+ var t1 = this._validActions;
+ return t1 == null || t1.contains$1(0, action);
+ },
+ _performSemanticScrollLeft$0: function() {
+ var t2, primaryDelta,
+ t1 = this._onHorizontalDragUpdate;
+ if (t1 != null) {
+ t2 = this._size;
+ primaryDelta = t2._dx * -0.8;
+ t2 = t2.center$1(C.Offset_0_0);
+ t1.call$1(O.DragUpdateDetails$(new P.Offset(primaryDelta, 0), T.MatrixUtils_transformPoint(this.getTransformTo$1(0, null), t2), null, primaryDelta, null));
+ }
+ },
+ _performSemanticScrollRight$0: function() {
+ var t2, primaryDelta,
+ t1 = this._onHorizontalDragUpdate;
+ if (t1 != null) {
+ t2 = this._size;
+ primaryDelta = t2._dx * 0.8;
+ t2 = t2.center$1(C.Offset_0_0);
+ t1.call$1(O.DragUpdateDetails$(new P.Offset(primaryDelta, 0), T.MatrixUtils_transformPoint(this.getTransformTo$1(0, null), t2), null, primaryDelta, null));
+ }
+ },
+ _performSemanticScrollUp$0: function() {
+ var t2, primaryDelta,
+ t1 = this._onVerticalDragUpdate;
+ if (t1 != null) {
+ t2 = this._size;
+ primaryDelta = t2._dy * -0.8;
+ t2 = t2.center$1(C.Offset_0_0);
+ t1.call$1(O.DragUpdateDetails$(new P.Offset(0, primaryDelta), T.MatrixUtils_transformPoint(this.getTransformTo$1(0, null), t2), null, primaryDelta, null));
+ }
+ },
+ _performSemanticScrollDown$0: function() {
+ var t2, primaryDelta,
+ t1 = this._onVerticalDragUpdate;
+ if (t1 != null) {
+ t2 = this._size;
+ primaryDelta = t2._dy * 0.8;
+ t2 = t2.center$1(C.Offset_0_0);
+ t1.call$1(O.DragUpdateDetails$(new P.Offset(0, primaryDelta), T.MatrixUtils_transformPoint(this.getTransformTo$1(0, null), t2), null, primaryDelta, null));
+ }
+ }
+ };
+ E.RenderSemanticsAnnotations.prototype = {
+ set$container: function(value) {
+ if (this._container === value)
+ return;
+ this._container = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$explicitChildNodes: function(value) {
+ if (this._explicitChildNodes === value)
+ return;
+ this._explicitChildNodes = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$excludeSemantics: function(value) {
+ return;
+ },
+ set$checked: function(_, value) {
+ return;
+ },
+ set$enabled: function(_, value) {
+ if (this._enabled == value)
+ return;
+ this._enabled = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$selected: function(_, value) {
+ if (this._selected == value)
+ return;
+ this._selected = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$button: function(_, value) {
+ if (this._button == value)
+ return;
+ this._button = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$slider: function(value) {
+ return;
+ },
+ set$link: function(value) {
+ return;
+ },
+ set$header: function(value) {
+ if (this._header == value)
+ return;
+ this._header = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$textField: function(value) {
+ return;
+ },
+ set$readOnly: function(_, value) {
+ return;
+ },
+ set$focusable: function(value) {
+ if (this._focusable == value)
+ return;
+ this._focusable = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$focused: function(_, value) {
+ if (this._focused == value)
+ return;
+ this._focused = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$inMutuallyExclusiveGroup: function(value) {
+ return;
+ },
+ set$obscured: function(value) {
+ return;
+ },
+ set$multiline: function(_, value) {
+ return;
+ },
+ set$scopesRoute: function(value) {
+ if (this._scopesRoute == value)
+ return;
+ this._scopesRoute = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$namesRoute: function(value) {
+ if (this._namesRoute == value)
+ return;
+ this._namesRoute = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$hidden: function(_, value) {
+ return;
+ },
+ set$image: function(_, value) {
+ return;
+ },
+ set$liveRegion: function(value) {
+ if (this._liveRegion == value)
+ return;
+ this._liveRegion = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$maxValueLength: function(value) {
+ return;
+ },
+ set$currentValueLength: function(value) {
+ if (this._currentValueLength == value)
+ return;
+ this._currentValueLength = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$toggled: function(value) {
+ return;
+ },
+ set$label: function(_, value) {
+ if (this._label == value)
+ return;
+ this._label = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$value: function(_, value) {
+ return;
+ },
+ set$increasedValue: function(value) {
+ return;
+ },
+ set$decreasedValue: function(value) {
+ return;
+ },
+ set$hint: function(_, value) {
+ return;
+ },
+ set$hintOverrides: function(value) {
+ if (J.$eq$(this._hintOverrides, value))
+ return;
+ this._hintOverrides = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$textDirection: function(_, value) {
+ if (this._proxy_box$_textDirection == value)
+ return;
+ this._proxy_box$_textDirection = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$sortKey: function(value) {
+ if (this._sortKey == value)
+ return;
+ this._sortKey = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ set$tagForChildren: function(value) {
+ if (J.$eq$(this._tagForChildren, value))
+ return;
+ this.markNeedsSemanticsUpdate$0();
+ this._tagForChildren = value;
+ },
+ set$onTap: function(handler) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onTap, handler))
+ return;
+ t1 = _this._onTap;
+ _this._onTap = handler;
+ if (handler != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onDismiss: function(handler) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onDismiss, handler))
+ return;
+ t1 = _this._onDismiss;
+ _this._onDismiss = handler;
+ if (handler != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onLongPress: function(handler) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onLongPress, handler))
+ return;
+ t1 = _this._onLongPress;
+ _this._onLongPress = handler;
+ if (handler != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onScrollLeft: function(handler) {
+ return;
+ },
+ set$onScrollRight: function(handler) {
+ return;
+ },
+ set$onScrollUp: function(handler) {
+ return;
+ },
+ set$onScrollDown: function(handler) {
+ return;
+ },
+ set$onIncrease: function(handler) {
+ return;
+ },
+ set$onDecrease: function(handler) {
+ return;
+ },
+ set$onCopy: function(_, handler) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onCopy, handler))
+ return;
+ t1 = _this._onCopy;
+ _this._onCopy = handler;
+ if (handler != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onCut: function(_, handler) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onCut, handler))
+ return;
+ t1 = _this._onCut;
+ _this._onCut = handler;
+ if (handler != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onPaste: function(_, handler) {
+ var t1, _this = this;
+ if (J.$eq$(_this._onPaste, handler))
+ return;
+ t1 = _this._onPaste;
+ _this._onPaste = handler;
+ if (handler != null !== (t1 != null))
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$onMoveCursorForwardByCharacter: function(handler) {
+ return;
+ },
+ set$onMoveCursorBackwardByCharacter: function(handler) {
+ return;
+ },
+ set$onMoveCursorForwardByWord: function(handler) {
+ return;
+ },
+ set$onMoveCursorBackwardByWord: function(handler) {
+ return;
+ },
+ set$onSetSelection: function(handler) {
+ return;
+ },
+ set$onDidGainAccessibilityFocus: function(handler) {
+ return;
+ },
+ set$onDidLoseAccessibilityFocus: function(handler) {
+ return;
+ },
+ set$customSemanticsActions: function(value) {
+ return;
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ this.super$RenderObject$visitChildrenForSemantics(visitor);
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ var t1, _this = this;
+ _this.super$RenderObject$describeSemanticsConfiguration(config);
+ config._isSemanticBoundary = _this._container;
+ config.explicitChildNodes = _this._explicitChildNodes;
+ t1 = _this._enabled;
+ if (t1 != null) {
+ config._setFlag$2(C.SemanticsFlag_64, true);
+ config._setFlag$2(C.SemanticsFlag_128, t1);
+ }
+ t1 = _this._selected;
+ if (t1 != null)
+ config._setFlag$2(C.SemanticsFlag_4, t1);
+ t1 = _this._button;
+ if (t1 != null)
+ config._setFlag$2(C.SemanticsFlag_8, t1);
+ t1 = _this._header;
+ if (t1 != null)
+ config._setFlag$2(C.SemanticsFlag_512, t1);
+ t1 = _this._focusable;
+ if (t1 != null)
+ config._setFlag$2(C.SemanticsFlag_2097152, t1);
+ t1 = _this._focused;
+ if (t1 != null)
+ config._setFlag$2(C.SemanticsFlag_32, t1);
+ t1 = _this._label;
+ if (t1 != null) {
+ config._semantics$_label = t1;
+ config._hasBeenAnnotated = true;
+ }
+ _this._hintOverrides != null;
+ t1 = _this._scopesRoute;
+ if (t1 != null)
+ config._setFlag$2(C.SemanticsFlag_2048, t1);
+ t1 = _this._namesRoute;
+ if (t1 != null)
+ config._setFlag$2(C.SemanticsFlag_4096, t1);
+ t1 = _this._liveRegion;
+ if (t1 != null)
+ config._setFlag$2(C.SemanticsFlag_32768, t1);
+ t1 = _this._currentValueLength;
+ if (t1 != null)
+ config.set$currentValueLength(t1);
+ t1 = _this._proxy_box$_textDirection;
+ if (t1 != null) {
+ config._semantics$_textDirection = t1;
+ config._hasBeenAnnotated = true;
+ }
+ t1 = _this._sortKey;
+ if (t1 != null) {
+ config._semantics$_sortKey = t1;
+ config._hasBeenAnnotated = true;
+ }
+ t1 = _this._tagForChildren;
+ if (t1 != null)
+ config.addTagForChildren$1(t1);
+ if (_this._onTap != null)
+ config.set$onTap(_this.get$_performTap());
+ if (_this._onLongPress != null)
+ config.set$onLongPress(_this.get$_performLongPress());
+ if (_this._onDismiss != null)
+ config.set$onDismiss(_this.get$_performDismiss());
+ if (_this._onCopy != null)
+ config.set$onCopy(0, _this.get$_performCopy());
+ if (_this._onCut != null)
+ config.set$onCut(0, _this.get$_performCut());
+ if (_this._onPaste != null)
+ config.set$onPaste(0, _this.get$_performPaste());
+ },
+ _performTap$0: function() {
+ var t1 = this._onTap;
+ if (t1 != null)
+ t1.call$0();
+ },
+ _performLongPress$0: function() {
+ var t1 = this._onLongPress;
+ if (t1 != null)
+ t1.call$0();
+ },
+ _performDismiss$0: function() {
+ var t1 = this._onDismiss;
+ if (t1 != null)
+ t1.call$0();
+ },
+ _performCopy$0: function() {
+ var t1 = this._onCopy;
+ if (t1 != null)
+ t1.call$0();
+ },
+ _performCut$0: function() {
+ var t1 = this._onCut;
+ if (t1 != null)
+ t1.call$0();
+ },
+ _performPaste$0: function() {
+ var t1 = this._onPaste;
+ if (t1 != null)
+ t1.call$0();
+ }
+ };
+ E.RenderBlockSemantics.prototype = {
+ set$blocking: function(value) {
+ return;
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ this.super$RenderObject$describeSemanticsConfiguration(config);
+ config.isBlockingSemanticsOfPreviouslyPaintedNodes = true;
+ }
+ };
+ E.RenderMergeSemantics.prototype = {
+ describeSemanticsConfiguration$1: function(config) {
+ this.super$RenderObject$describeSemanticsConfiguration(config);
+ config._hasBeenAnnotated = config._isMergingSemanticsOfDescendants = config._isSemanticBoundary = true;
+ }
+ };
+ E.RenderExcludeSemantics.prototype = {
+ set$excluding: function(value) {
+ if (value === this._excluding)
+ return;
+ this._excluding = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ if (this._excluding)
+ return;
+ this.super$RenderObject$visitChildrenForSemantics(visitor);
+ }
+ };
+ E.RenderIndexedSemantics.prototype = {
+ set$index: function(_, value) {
+ if (value === this._proxy_box$_index)
+ return;
+ this._proxy_box$_index = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ this.super$RenderObject$describeSemanticsConfiguration(config);
+ config._isSemanticBoundary = true;
+ config._indexInParent = this._proxy_box$_index;
+ config._hasBeenAnnotated = true;
+ }
+ };
+ E.RenderLeaderLayer.prototype = {
+ set$link: function(value) {
+ var _this = this,
+ t1 = _this._link;
+ if (t1 === value)
+ return;
+ t1.leaderSize = null;
+ _this._link = value;
+ t1 = _this._previousLayoutSize;
+ if (t1 != null)
+ value.leaderSize = t1;
+ _this.markNeedsPaint$0();
+ },
+ get$alwaysNeedsCompositing: function() {
+ return true;
+ },
+ performLayout$0: function() {
+ var t1, _this = this;
+ _this.super$RenderProxyBoxMixin$performLayout();
+ t1 = _this._size;
+ t1.toString;
+ _this._previousLayoutSize = t1;
+ _this._link.leaderSize = t1;
+ },
+ paint$2: function(context, offset) {
+ var _this = this,
+ t1 = _this._layer,
+ t2 = _this._link;
+ if (t1 == null)
+ t1 = _this._layer = new T.LeaderLayer(t2, offset);
+ else {
+ type$.LeaderLayer._as(t1);
+ t1._layer$_link = t2;
+ t1.offset = offset;
+ }
+ context.pushLayer$3(t1, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), C.Offset_0_0);
+ }
+ };
+ E.RenderFollowerLayer.prototype = {
+ set$link: function(value) {
+ if (this._link === value)
+ return;
+ this._link = value;
+ this.markNeedsPaint$0();
+ },
+ set$showWhenUnlinked: function(value) {
+ return;
+ },
+ set$offset: function(_, value) {
+ if (this._proxy_box$_offset.$eq(0, value))
+ return;
+ this._proxy_box$_offset = value;
+ this.markNeedsPaint$0();
+ },
+ set$leaderAnchor: function(value) {
+ if (this._leaderAnchor.$eq(0, value))
+ return;
+ this._leaderAnchor = value;
+ this.markNeedsPaint$0();
+ },
+ set$followerAnchor: function(value) {
+ if (this._followerAnchor.$eq(0, value))
+ return;
+ this._followerAnchor = value;
+ this.markNeedsPaint$0();
+ },
+ detach$0: function(_) {
+ this._layer = null;
+ this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$detach(0);
+ },
+ get$alwaysNeedsCompositing: function() {
+ return true;
+ },
+ getCurrentTransform$0: function() {
+ var t1 = type$.nullable_FollowerLayer._as(K.RenderObject.prototype.get$layer.call(this, this));
+ t1 = t1 == null ? null : t1.getLastTransform$0();
+ if (t1 == null) {
+ t1 = new E.Matrix4(new Float64Array(16));
+ t1.setIdentity$0();
+ }
+ return t1;
+ },
+ hitTest$2$position: function(result, position) {
+ if (this._link._leader == null && true)
+ return false;
+ return this.hitTestChildren$2$position(result, position);
+ },
+ hitTestChildren$2$position: function(result, position) {
+ return result.addWithPaintTransform$3$hitTest$position$transform(new E.RenderFollowerLayer_hitTestChildren_closure(this), position, this.getCurrentTransform$0());
+ },
+ paint$2: function(context, offset) {
+ var effectiveLinkedOffset, t1, t2, t3, _this = this,
+ leaderSize = _this._link.leaderSize;
+ if (leaderSize == null)
+ effectiveLinkedOffset = _this._proxy_box$_offset;
+ else {
+ t1 = _this._leaderAnchor.alongSize$1(leaderSize);
+ t2 = _this._followerAnchor;
+ t3 = _this._size;
+ t3.toString;
+ effectiveLinkedOffset = t1.$sub(0, t2.alongSize$1(t3)).$add(0, _this._proxy_box$_offset);
+ }
+ t1 = type$.nullable_FollowerLayer;
+ if (t1._as(K.RenderObject.prototype.get$layer.call(_this, _this)) == null)
+ _this._layer = new T.FollowerLayer(_this._link, false, offset, effectiveLinkedOffset);
+ else {
+ t2 = t1._as(K.RenderObject.prototype.get$layer.call(_this, _this));
+ if (t2 != null) {
+ t2._layer$_link = _this._link;
+ t2.showWhenUnlinked = false;
+ t2.linkedOffset = effectiveLinkedOffset;
+ t2.unlinkedOffset = offset;
+ }
+ }
+ t1 = t1._as(K.RenderObject.prototype.get$layer.call(_this, _this));
+ t1.toString;
+ context.pushLayer$4$childPaintBounds(t1, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), C.Offset_0_0, C.Rect_Vy7);
+ },
+ applyPaintTransform$2: function(child, transform) {
+ transform.multiply$1(0, this.getCurrentTransform$0());
+ }
+ };
+ E.RenderFollowerLayer_hitTestChildren_closure.prototype = {
+ call$2: function(result, position) {
+ position.toString;
+ return this.$this.super$RenderProxyBoxMixin$hitTestChildren(result, position);
+ },
+ $signature: 23
+ };
+ E.RenderAnnotatedRegion.prototype = {
+ set$value: function(_, newValue) {
+ if (this._proxy_box$_value.$eq(0, newValue))
+ return;
+ this._proxy_box$_value = newValue;
+ this.markNeedsPaint$0();
+ },
+ set$sized: function(value) {
+ return;
+ },
+ paint$2: function(context, offset) {
+ var _this = this,
+ t1 = _this._proxy_box$_value,
+ t2 = _this._size;
+ t2.toString;
+ context.pushLayer$3(new T.AnnotatedRegionLayer(t1, t2, offset, _this.$ti._eval$1("AnnotatedRegionLayer<1>")), E.RenderProxyBoxMixin.prototype.get$paint.call(_this), offset);
+ },
+ get$alwaysNeedsCompositing: function() {
+ return true;
+ }
+ };
+ E._RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin.prototype = {
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1.getDistanceToActualBaseline$1(baseline);
+ return this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin$computeDistanceToActualBaseline(baseline);
+ }
+ };
+ E._RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin_RenderAnimatedOpacityMixin.prototype = {
+ attach$1: function(owner) {
+ var _this = this;
+ _this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$attach(owner);
+ _this.RenderAnimatedOpacityMixin__opacity.addListener$1(0, _this.get$_updateOpacity());
+ _this._updateOpacity$0();
+ },
+ detach$0: function(_) {
+ this.RenderAnimatedOpacityMixin__opacity.removeListener$1(0, this.get$_updateOpacity());
+ this.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$detach(0);
+ },
+ paint$2: function(context, offset) {
+ var t2, _this = this,
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t2 = _this.RenderAnimatedOpacityMixin__alpha;
+ if (t2 === 0) {
+ _this._layer = null;
+ return;
+ }
+ if (t2 === 255) {
+ _this._layer = null;
+ context.paintChild$2(t1, offset);
+ return;
+ }
+ t2.toString;
+ _this._layer = context.pushOpacity$4$oldLayer(offset, t2, E.RenderProxyBoxMixin.prototype.get$paint.call(_this), type$.nullable_OpacityLayer._as(_this._layer));
+ }
+ }
+ };
+ E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin.prototype = {
+ attach$1: function(owner) {
+ var t1;
+ this.super$RenderObject$attach(owner);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t1;
+ this.super$AbstractNode$detach(0);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.detach$0(0);
+ }
+ };
+ E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin.prototype = {
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1.getDistanceToActualBaseline$1(baseline);
+ return this.super$RenderBox$computeDistanceToActualBaseline(baseline);
+ }
+ };
+ T.RenderShiftedBox.prototype = {
+ computeMinIntrinsicWidth$1: function(height) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_0, height, t1.get$computeMinIntrinsicWidth());
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_1, height, t1.get$computeMaxIntrinsicWidth());
+ return 0;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_2, width, t1.get$computeMinIntrinsicHeight());
+ return 0;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_3, width, t1.get$computeMaxIntrinsicHeight());
+ return 0;
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var result,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ result = t1.getDistanceToActualBaseline$1(baseline);
+ t1 = this.RenderObjectWithChildMixin__child.parentData;
+ t1.toString;
+ type$.BoxParentData._as(t1);
+ if (result != null)
+ result += t1.offset._dy;
+ } else
+ result = this.super$RenderBox$computeDistanceToActualBaseline(baseline);
+ return result;
+ },
+ paint$2: function(context, offset) {
+ var t2,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t2 = t1.parentData;
+ t2.toString;
+ context.paintChild$2(t1, type$.BoxParentData._as(t2).offset.$add(0, offset));
+ }
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t1 = t1.parentData;
+ t1.toString;
+ type$.BoxParentData._as(t1);
+ return result.addWithPaintOffset$3$hitTest$offset$position(new T.RenderShiftedBox_hitTestChildren_closure(this, position, t1), t1.offset, position);
+ }
+ return false;
+ }
+ };
+ T.RenderShiftedBox_hitTestChildren_closure.prototype = {
+ call$2: function(result, transformed) {
+ var t1 = this.$this.RenderObjectWithChildMixin__child;
+ t1.toString;
+ transformed.toString;
+ return t1.hitTest$2$position(result, transformed);
+ },
+ $signature: 23
+ };
+ T.RenderPadding.prototype = {
+ _shifted_box$_resolve$0: function() {
+ var _this = this;
+ if (_this._resolvedPadding != null)
+ return;
+ _this._resolvedPadding = _this._shifted_box$_padding.resolve$1(_this._shifted_box$_textDirection);
+ },
+ set$padding: function(_, value) {
+ var _this = this;
+ if (J.$eq$(_this._shifted_box$_padding, value))
+ return;
+ _this._shifted_box$_padding = value;
+ _this._resolvedPadding = null;
+ _this.markNeedsLayout$0();
+ },
+ set$textDirection: function(_, value) {
+ var _this = this;
+ if (_this._shifted_box$_textDirection == value)
+ return;
+ _this._shifted_box$_textDirection = value;
+ _this._resolvedPadding = null;
+ _this.markNeedsLayout$0();
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t1, totalHorizontalPadding, t2, t3;
+ this._shifted_box$_resolve$0();
+ t1 = this._resolvedPadding;
+ totalHorizontalPadding = t1.left + t1.right;
+ t2 = t1.top;
+ t1 = t1.bottom;
+ t3 = this.RenderObjectWithChildMixin__child;
+ if (t3 != null)
+ return t3._computeIntrinsicDimension$3(C._IntrinsicDimension_0, Math.max(0, height - (t2 + t1)), t3.get$computeMinIntrinsicWidth()) + totalHorizontalPadding;
+ return totalHorizontalPadding;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t1, totalHorizontalPadding, t2, t3;
+ this._shifted_box$_resolve$0();
+ t1 = this._resolvedPadding;
+ totalHorizontalPadding = t1.left + t1.right;
+ t2 = t1.top;
+ t1 = t1.bottom;
+ t3 = this.RenderObjectWithChildMixin__child;
+ if (t3 != null)
+ return t3._computeIntrinsicDimension$3(C._IntrinsicDimension_1, Math.max(0, height - (t2 + t1)), t3.get$computeMaxIntrinsicWidth()) + totalHorizontalPadding;
+ return totalHorizontalPadding;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t1, t2, t3, totalVerticalPadding;
+ this._shifted_box$_resolve$0();
+ t1 = this._resolvedPadding;
+ t2 = t1.left;
+ t3 = t1.right;
+ totalVerticalPadding = t1.top + t1.bottom;
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_2, Math.max(0, width - (t2 + t3)), t1.get$computeMinIntrinsicHeight()) + totalVerticalPadding;
+ return totalVerticalPadding;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ var t1, t2, t3, totalVerticalPadding;
+ this._shifted_box$_resolve$0();
+ t1 = this._resolvedPadding;
+ t2 = t1.left;
+ t3 = t1.right;
+ totalVerticalPadding = t1.top + t1.bottom;
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1._computeIntrinsicDimension$3(C._IntrinsicDimension_3, Math.max(0, width - (t2 + t3)), t1.get$computeMaxIntrinsicHeight()) + totalVerticalPadding;
+ return totalVerticalPadding;
+ },
+ performLayout$0: function() {
+ var t1, innerConstraints, t2, t3, t4, t5, _this = this,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this));
+ _this._shifted_box$_resolve$0();
+ if (_this.RenderObjectWithChildMixin__child == null) {
+ t1 = _this._resolvedPadding;
+ _this._size = constraints.constrain$1(new P.Size(t1.left + t1.right, t1.top + t1.bottom));
+ return;
+ }
+ t1 = _this._resolvedPadding;
+ t1.toString;
+ innerConstraints = constraints.deflate$1(t1);
+ _this.RenderObjectWithChildMixin__child.layout$2$parentUsesSize(0, innerConstraints, true);
+ t1 = _this.RenderObjectWithChildMixin__child;
+ t2 = t1.parentData;
+ t2.toString;
+ type$.BoxParentData._as(t2);
+ t3 = _this._resolvedPadding;
+ t4 = t3.left;
+ t5 = t3.top;
+ t2.offset = new P.Offset(t4, t5);
+ t1 = t1._size;
+ _this._size = constraints.constrain$1(new P.Size(t4 + t1._dx + t3.right, t5 + t1._dy + t3.bottom));
+ }
+ };
+ T.RenderAligningShiftedBox.prototype = {
+ _shifted_box$_resolve$0: function() {
+ var _this = this;
+ if (_this._shifted_box$_resolvedAlignment != null)
+ return;
+ _this._shifted_box$_resolvedAlignment = _this._shifted_box$_alignment.resolve$1(_this._shifted_box$_textDirection);
+ },
+ set$alignment: function(_, value) {
+ var _this = this;
+ if (J.$eq$(_this._shifted_box$_alignment, value))
+ return;
+ _this._shifted_box$_alignment = value;
+ _this._shifted_box$_resolvedAlignment = null;
+ _this.markNeedsLayout$0();
+ },
+ set$textDirection: function(_, value) {
+ var _this = this;
+ if (_this._shifted_box$_textDirection == value)
+ return;
+ _this._shifted_box$_textDirection = value;
+ _this._shifted_box$_resolvedAlignment = null;
+ _this.markNeedsLayout$0();
+ },
+ alignChild$0: function() {
+ var t1, t2, t3, t4, _this = this;
+ _this._shifted_box$_resolve$0();
+ t1 = _this.RenderObjectWithChildMixin__child;
+ t2 = t1.parentData;
+ t2.toString;
+ type$.BoxParentData._as(t2);
+ t3 = _this._shifted_box$_resolvedAlignment;
+ t3.toString;
+ t4 = _this._size;
+ t4.toString;
+ t1 = t1._size;
+ t1.toString;
+ t2.offset = t3.alongOffset$1(type$.Offset._as(t4.$sub(0, t1)));
+ }
+ };
+ T.RenderPositionedBox.prototype = {
+ set$widthFactor: function(value) {
+ if (this._widthFactor == value)
+ return;
+ this._widthFactor = value;
+ this.markNeedsLayout$0();
+ },
+ set$heightFactor: function(value) {
+ if (this._heightFactor == value)
+ return;
+ this._heightFactor = value;
+ this.markNeedsLayout$0();
+ },
+ performLayout$0: function() {
+ var t2, t3, _this = this,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)),
+ shrinkWrapWidth = _this._widthFactor != null || constraints.maxWidth === 1 / 0,
+ shrinkWrapHeight = _this._heightFactor != null || constraints.maxHeight === 1 / 0,
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t1.layout$2$parentUsesSize(0, constraints.loosen$0(), true);
+ if (shrinkWrapWidth) {
+ t1 = _this.RenderObjectWithChildMixin__child._size._dx;
+ t2 = _this._widthFactor;
+ t1 *= t2 == null ? 1 : t2;
+ } else
+ t1 = 1 / 0;
+ if (shrinkWrapHeight) {
+ t2 = _this.RenderObjectWithChildMixin__child._size._dy;
+ t3 = _this._heightFactor;
+ t2 *= t3 == null ? 1 : t3;
+ } else
+ t2 = 1 / 0;
+ _this._size = constraints.constrain$1(new P.Size(t1, t2));
+ _this.alignChild$0();
+ } else {
+ t1 = shrinkWrapWidth ? 0 : 1 / 0;
+ _this._size = constraints.constrain$1(new P.Size(t1, shrinkWrapHeight ? 0 : 1 / 0));
+ }
+ }
+ };
+ T.SingleChildLayoutDelegate.prototype = {
+ getSize$1: function(constraints) {
+ return new P.Size(C.JSInt_methods.clamp$2(1 / 0, constraints.minWidth, constraints.maxWidth), C.JSInt_methods.clamp$2(1 / 0, constraints.minHeight, constraints.maxHeight));
+ }
+ };
+ T.RenderCustomSingleChildLayoutBox.prototype = {
+ set$delegate: function(newDelegate) {
+ var _this = this,
+ t1 = _this._shifted_box$_delegate;
+ if (t1 === newDelegate)
+ return;
+ if (H.getRuntimeType(newDelegate) !== H.getRuntimeType(t1) || newDelegate.shouldRelayout$1(t1))
+ _this.markNeedsLayout$0();
+ _this._shifted_box$_delegate = newDelegate;
+ _this._node$_owner != null;
+ },
+ attach$1: function(owner) {
+ this.super$_RenderShiftedBox_RenderBox_RenderObjectWithChildMixin$attach(owner);
+ },
+ detach$0: function(_) {
+ this.super$_RenderShiftedBox_RenderBox_RenderObjectWithChildMixin$detach(0);
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ var t1 = S.BoxConstraints$tightForFinite(height, 1 / 0),
+ width = t1.constrain$1(this._shifted_box$_delegate.getSize$1(t1))._dx;
+ width.toString;
+ if (isFinite(width))
+ return width;
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ var t1 = S.BoxConstraints$tightForFinite(height, 1 / 0),
+ width = t1.constrain$1(this._shifted_box$_delegate.getSize$1(t1))._dx;
+ width.toString;
+ if (isFinite(width))
+ return width;
+ return 0;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ var t1 = S.BoxConstraints$tightForFinite(1 / 0, width),
+ height = t1.constrain$1(this._shifted_box$_delegate.getSize$1(t1))._dy;
+ height.toString;
+ if (isFinite(height))
+ return height;
+ return 0;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ var t1 = S.BoxConstraints$tightForFinite(1 / 0, width),
+ height = t1.constrain$1(this._shifted_box$_delegate.getSize$1(t1))._dy;
+ height.toString;
+ if (isFinite(height))
+ return height;
+ return 0;
+ },
+ performLayout$0: function() {
+ var childConstraints, t3, t4, t5, t6, t7, _this = this,
+ t1 = type$.BoxConstraints,
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(_this));
+ _this._size = t2.constrain$1(_this._shifted_box$_delegate.getSize$1(t2));
+ if (_this.RenderObjectWithChildMixin__child != null) {
+ childConstraints = _this._shifted_box$_delegate.getConstraintsForChild$1(t1._as(K.RenderObject.prototype.get$constraints.call(_this)));
+ t1 = _this.RenderObjectWithChildMixin__child;
+ t1.toString;
+ t2 = childConstraints.minWidth;
+ t3 = childConstraints.maxWidth;
+ t4 = t2 >= t3;
+ t1.layout$2$parentUsesSize(0, childConstraints, !(t4 && childConstraints.minHeight >= childConstraints.maxHeight));
+ t1 = _this.RenderObjectWithChildMixin__child;
+ t5 = t1.parentData;
+ t5.toString;
+ type$.BoxParentData._as(t5);
+ t6 = _this._shifted_box$_delegate;
+ t7 = _this._size;
+ t7.toString;
+ if (t4 && childConstraints.minHeight >= childConstraints.maxHeight)
+ t1 = new P.Size(C.JSInt_methods.clamp$2(0, t2, t3), C.JSInt_methods.clamp$2(0, childConstraints.minHeight, childConstraints.maxHeight));
+ else {
+ t1 = t1._size;
+ t1.toString;
+ }
+ t5.offset = t6.getPositionForChild$2(t7, t1);
+ }
+ }
+ };
+ T._RenderShiftedBox_RenderBox_RenderObjectWithChildMixin.prototype = {
+ attach$1: function(owner) {
+ var t1;
+ this.super$RenderObject$attach(owner);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t1;
+ this.super$AbstractNode$detach(0);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.detach$0(0);
+ }
+ };
+ G.GrowthDirection.prototype = {
+ toString$0: function(_) {
+ return this._sliver$_name;
+ }
+ };
+ G.SliverConstraints.prototype = {
+ get$isTight: function() {
+ return false;
+ },
+ asBoxConstraints$2$maxExtent$minExtent: function(maxExtent, minExtent) {
+ var crossAxisExtent = this.crossAxisExtent;
+ switch (G.axisDirectionToAxis(this.axisDirection)) {
+ case C.Axis_0:
+ return new S.BoxConstraints(minExtent, maxExtent, crossAxisExtent, crossAxisExtent);
+ case C.Axis_1:
+ return new S.BoxConstraints(crossAxisExtent, crossAxisExtent, minExtent, maxExtent);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ asBoxConstraints$0: function() {
+ return this.asBoxConstraints$2$maxExtent$minExtent(1 / 0, 0);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ if (!(other instanceof G.SliverConstraints))
+ return false;
+ t1 = other.axisDirection === _this.axisDirection && other.growthDirection === _this.growthDirection && other.scrollOffset === _this.scrollOffset && other.overlap === _this.overlap && other.remainingPaintExtent === _this.remainingPaintExtent && other.crossAxisExtent == _this.crossAxisExtent && other.crossAxisDirection === _this.crossAxisDirection && other.viewportMainAxisExtent == _this.viewportMainAxisExtent && other.remainingCacheExtent === _this.remainingCacheExtent && other.cacheOrigin === _this.cacheOrigin;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.axisDirection, _this.growthDirection, _this.scrollOffset, _this.overlap, _this.remainingPaintExtent, _this.crossAxisExtent, _this.crossAxisDirection, _this.viewportMainAxisExtent, _this.remainingCacheExtent, _this.cacheOrigin, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var t2, _this = this,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ t1.push(_this.axisDirection.toString$0(0));
+ t1.push(_this.growthDirection.toString$0(0));
+ t1.push(_this.userScrollDirection.toString$0(0));
+ t1.push("scrollOffset: " + C.JSNumber_methods.toStringAsFixed$1(_this.scrollOffset, 1));
+ t1.push("remainingPaintExtent: " + C.JSNumber_methods.toStringAsFixed$1(_this.remainingPaintExtent, 1));
+ t2 = _this.overlap;
+ if (t2 !== 0)
+ t1.push("overlap: " + C.JSNumber_methods.toStringAsFixed$1(t2, 1));
+ t1.push("crossAxisExtent: " + J.toStringAsFixed$1$n(_this.crossAxisExtent, 1));
+ t1.push("crossAxisDirection: " + _this.crossAxisDirection.toString$0(0));
+ t1.push("viewportMainAxisExtent: " + J.toStringAsFixed$1$n(_this.viewportMainAxisExtent, 1));
+ t1.push("remainingCacheExtent: " + C.JSNumber_methods.toStringAsFixed$1(_this.remainingCacheExtent, 1));
+ t1.push("cacheOrigin: " + C.JSNumber_methods.toStringAsFixed$1(_this.cacheOrigin, 1));
+ return "SliverConstraints(" + C.JSArray_methods.join$1(t1, ", ") + ")";
+ }
+ };
+ G.SliverGeometry.prototype = {
+ toStringShort$0: function() {
+ return "SliverGeometry";
+ }
+ };
+ G.SliverHitTestResult.prototype = {};
+ G.SliverHitTestEntry.prototype = {
+ get$target: function(_) {
+ return type$.RenderSliver._as(this.target);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return H.getRuntimeType(type$.RenderSliver._as(_this.target)).toString$0(0) + "@(mainAxis: " + H.S(_this.mainAxisPosition) + ", crossAxis: " + H.S(_this.crossAxisPosition) + ")";
+ }
+ };
+ G.SliverLogicalParentData.prototype = {
+ toString$0: function(_) {
+ var t1 = this.layoutOffset;
+ return "layoutOffset=" + (t1 == null ? "None" : C.JSNumber_methods.toStringAsFixed$1(t1, 1));
+ }
+ };
+ G.SliverLogicalContainerParentData.prototype = {};
+ G.SliverPhysicalParentData.prototype = {
+ toString$0: function(_) {
+ return "paintOffset=" + this.paintOffset.toString$0(0);
+ }
+ };
+ G.RenderSliver.prototype = {
+ get$constraints: function() {
+ return type$.SliverConstraints._as(K.RenderObject.prototype.get$constraints.call(this));
+ },
+ get$semanticBounds: function() {
+ return this.get$paintBounds();
+ },
+ get$paintBounds: function() {
+ var _this = this,
+ t1 = type$.SliverConstraints;
+ switch (G.axisDirectionToAxis(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).axisDirection)) {
+ case C.Axis_0:
+ return new P.Rect(0, 0, 0 + _this._sliver$_geometry.paintExtent, 0 + t1._as(K.RenderObject.prototype.get$constraints.call(_this)).crossAxisExtent);
+ case C.Axis_1:
+ return new P.Rect(0, 0, 0 + t1._as(K.RenderObject.prototype.get$constraints.call(_this)).crossAxisExtent, 0 + _this._sliver$_geometry.paintExtent);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ performResize$0: function() {
+ },
+ hitTest$3$crossAxisPosition$mainAxisPosition: function(result, crossAxisPosition, mainAxisPosition) {
+ var t1, _this = this;
+ if (mainAxisPosition >= 0 && mainAxisPosition < _this._sliver$_geometry.hitTestExtent && crossAxisPosition >= 0 && crossAxisPosition < type$.SliverConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)).crossAxisExtent)
+ if (_this.hitTestChildren$3$crossAxisPosition$mainAxisPosition(result, crossAxisPosition, mainAxisPosition) || false) {
+ t1 = new G.SliverHitTestEntry(mainAxisPosition, crossAxisPosition, _this);
+ result._globalizeTransforms$0();
+ t1._transform = C.JSArray_methods.get$last(result._transforms);
+ result._path.push(t1);
+ return true;
+ }
+ return false;
+ },
+ hitTest$1: function(result) {
+ return this.hitTest$3$crossAxisPosition$mainAxisPosition(result, null, null);
+ },
+ hitTestChildren$3$crossAxisPosition$mainAxisPosition: function(result, crossAxisPosition, mainAxisPosition) {
+ return false;
+ },
+ calculatePaintOffset$3$from$to: function(constraints, from, to) {
+ var a = constraints.scrollOffset,
+ t1 = constraints.remainingPaintExtent,
+ b = a + t1;
+ return C.JSNumber_methods.clamp$2(J.clamp$2$n(to, a, b) - J.clamp$2$n(from, a, b), 0, t1);
+ },
+ calculateCacheOffset$3$from$to: function(constraints, from, to) {
+ var t1 = constraints.scrollOffset,
+ a = t1 + constraints.cacheOrigin,
+ t2 = constraints.remainingCacheExtent,
+ b = t1 + t2;
+ return C.JSNumber_methods.clamp$2(J.clamp$2$n(to, a, b) - J.clamp$2$n(from, a, b), 0, t2);
+ },
+ childScrollOffset$1: function(child) {
+ return 0;
+ },
+ applyPaintTransform$2: function(child, transform) {
+ },
+ handleEvent$2: function($event, entry) {
+ }
+ };
+ G.RenderSliverHelpers.prototype = {
+ _getRightWayUp$1: function(constraints) {
+ var rightWayUp,
+ _s80_ = string$.x60null_c;
+ switch (constraints.axisDirection) {
+ case C.AxisDirection_0:
+ case C.AxisDirection_3:
+ rightWayUp = false;
+ break;
+ case C.AxisDirection_2:
+ case C.AxisDirection_1:
+ rightWayUp = true;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ switch (constraints.growthDirection) {
+ case C.GrowthDirection_0:
+ break;
+ case C.GrowthDirection_1:
+ rightWayUp = !rightWayUp;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ return rightWayUp;
+ },
+ hitTestBoxChild$4$crossAxisPosition$mainAxisPosition: function(result, child, crossAxisPosition, mainAxisPosition) {
+ var delta, absolutePosition, absoluteCrossAxisPosition, paintOffset, _this = this, _box_0 = {},
+ t1 = type$.SliverConstraints,
+ rightWayUp = _this._getRightWayUp$1(t1._as(K.RenderObject.prototype.get$constraints.call(_this))),
+ t2 = child.parentData;
+ t2.toString;
+ t2 = type$.SliverMultiBoxAdaptorParentData._as(t2).layoutOffset;
+ t2.toString;
+ delta = t2 - t1._as(K.RenderObject.prototype.get$constraints.call(_this)).scrollOffset;
+ absolutePosition = mainAxisPosition - delta;
+ absoluteCrossAxisPosition = crossAxisPosition - 0;
+ _box_0.transformedPosition = null;
+ switch (G.axisDirectionToAxis(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).axisDirection)) {
+ case C.Axis_0:
+ if (!rightWayUp) {
+ t1 = child._size._dx;
+ absolutePosition = t1 - absolutePosition;
+ delta = _this._sliver$_geometry.paintExtent - t1 - delta;
+ }
+ paintOffset = new P.Offset(delta, 0);
+ _box_0.transformedPosition = new P.Offset(absolutePosition, absoluteCrossAxisPosition);
+ break;
+ case C.Axis_1:
+ if (!rightWayUp) {
+ t1 = child._size._dy;
+ absolutePosition = t1 - absolutePosition;
+ delta = _this._sliver$_geometry.paintExtent - t1 - delta;
+ }
+ paintOffset = new P.Offset(0, delta);
+ _box_0.transformedPosition = new P.Offset(absoluteCrossAxisPosition, absolutePosition);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return result.addWithOutOfBandPosition$2$hitTest$paintOffset(new G.RenderSliverHelpers_hitTestBoxChild_closure(_box_0, child), paintOffset);
+ }
+ };
+ G.RenderSliverHelpers_hitTestBoxChild_closure.prototype = {
+ call$1: function(result) {
+ return this.child.hitTest$2$position(result, this._box_0.transformedPosition);
+ },
+ $signature: 81
+ };
+ G._SliverGeometry_Object_Diagnosticable.prototype = {};
+ G._SliverLogicalContainerParentData_SliverLogicalParentData_ContainerParentDataMixin.prototype = {
+ detach$0: function(_) {
+ this.super$ParentData$detach(0);
+ }
+ };
+ U.RenderSliverList.prototype = {
+ performLayout$0: function() {
+ var t2, scrollOffset, targetEndScrollOffset, childConstraints, earliestUsefulChild, t3, t4, leadingChildrenWithoutLayoutOffset, t5, earliestScrollOffset, leadingChildWithLayout, firstChildScrollOffset, advance, leadingGarbage, extent, reachedEnd, trailingGarbage, child, estimatedMaxScrollOffset, t6, paintExtent, cacheExtent, _this = this, _null = null, _box_0 = {},
+ constraints = type$.SliverConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)),
+ t1 = _this._childManager;
+ t1._didUnderflow = false;
+ t2 = constraints.scrollOffset;
+ scrollOffset = t2 + constraints.cacheOrigin;
+ targetEndScrollOffset = scrollOffset + constraints.remainingCacheExtent;
+ childConstraints = constraints.asBoxConstraints$0();
+ if (_this.ContainerRenderObjectMixin__firstChild == null)
+ if (!_this.addInitialChild$0()) {
+ _this._sliver$_geometry = C.SliverGeometry_yuB;
+ t1.didFinishLayout$0();
+ return;
+ }
+ _box_0.trailingChildWithLayout = null;
+ earliestUsefulChild = _this.ContainerRenderObjectMixin__firstChild;
+ t3 = earliestUsefulChild.parentData;
+ t3.toString;
+ t4 = type$.SliverMultiBoxAdaptorParentData;
+ if (t4._as(t3).layoutOffset == null) {
+ t3 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1");
+ leadingChildrenWithoutLayoutOffset = 0;
+ while (true) {
+ if (earliestUsefulChild != null) {
+ t5 = earliestUsefulChild.parentData;
+ t5.toString;
+ t5 = t4._as(t5).layoutOffset == null;
+ } else
+ t5 = false;
+ if (!t5)
+ break;
+ t5 = earliestUsefulChild.parentData;
+ t5.toString;
+ earliestUsefulChild = t3._as(t5).ContainerParentDataMixin_nextSibling;
+ ++leadingChildrenWithoutLayoutOffset;
+ }
+ _this.collectGarbage$2(leadingChildrenWithoutLayoutOffset, 0);
+ if (_this.ContainerRenderObjectMixin__firstChild == null)
+ if (!_this.addInitialChild$0()) {
+ _this._sliver$_geometry = C.SliverGeometry_yuB;
+ t1.didFinishLayout$0();
+ return;
+ }
+ }
+ earliestUsefulChild = _this.ContainerRenderObjectMixin__firstChild;
+ t3 = earliestUsefulChild.parentData;
+ t3.toString;
+ t3 = t4._as(t3).layoutOffset;
+ t3.toString;
+ earliestScrollOffset = t3;
+ leadingChildWithLayout = _null;
+ for (; earliestScrollOffset > scrollOffset; earliestScrollOffset = firstChildScrollOffset, leadingChildWithLayout = earliestUsefulChild) {
+ earliestUsefulChild = _this.insertAndLayoutLeadingChild$2$parentUsesSize(childConstraints, true);
+ if (earliestUsefulChild == null) {
+ t3 = _this.ContainerRenderObjectMixin__firstChild;
+ t5 = t3.parentData;
+ t5.toString;
+ t4._as(t5).layoutOffset = 0;
+ if (scrollOffset === 0) {
+ t3.layout$2$parentUsesSize(0, childConstraints, true);
+ earliestUsefulChild = _this.ContainerRenderObjectMixin__firstChild;
+ if (_box_0.trailingChildWithLayout == null)
+ _box_0.trailingChildWithLayout = earliestUsefulChild;
+ leadingChildWithLayout = earliestUsefulChild;
+ break;
+ } else {
+ _this._sliver$_geometry = G.SliverGeometry$(_null, false, _null, _null, 0, 0, 0, 0, -scrollOffset);
+ return;
+ }
+ }
+ t3 = _this.ContainerRenderObjectMixin__firstChild;
+ t3.toString;
+ firstChildScrollOffset = earliestScrollOffset - _this.paintExtentOf$1(t3);
+ if (firstChildScrollOffset < -1e-10) {
+ _this._sliver$_geometry = G.SliverGeometry$(_null, false, _null, _null, 0, 0, 0, 0, -firstChildScrollOffset);
+ t1 = _this.ContainerRenderObjectMixin__firstChild.parentData;
+ t1.toString;
+ t4._as(t1).layoutOffset = 0;
+ return;
+ }
+ t3 = earliestUsefulChild.parentData;
+ t3.toString;
+ t4._as(t3).layoutOffset = firstChildScrollOffset;
+ if (_box_0.trailingChildWithLayout == null)
+ _box_0.trailingChildWithLayout = earliestUsefulChild;
+ }
+ if (scrollOffset < 1e-10)
+ while (true) {
+ t3 = _this.ContainerRenderObjectMixin__firstChild;
+ t3.toString;
+ t3 = t3.parentData;
+ t3.toString;
+ t4._as(t3);
+ t5 = t3.index;
+ t5.toString;
+ if (!(t5 > 0))
+ break;
+ t3 = t3.layoutOffset;
+ t3.toString;
+ earliestUsefulChild = _this.insertAndLayoutLeadingChild$2$parentUsesSize(childConstraints, true);
+ t5 = _this.ContainerRenderObjectMixin__firstChild;
+ t5.toString;
+ firstChildScrollOffset = t3 - _this.paintExtentOf$1(t5);
+ t5 = _this.ContainerRenderObjectMixin__firstChild.parentData;
+ t5.toString;
+ t4._as(t5).layoutOffset = 0;
+ if (firstChildScrollOffset < -1e-10) {
+ _this._sliver$_geometry = G.SliverGeometry$(_null, false, _null, _null, 0, 0, 0, 0, -firstChildScrollOffset);
+ return;
+ }
+ }
+ if (leadingChildWithLayout == null) {
+ earliestUsefulChild.layout$2$parentUsesSize(0, childConstraints, true);
+ _box_0.trailingChildWithLayout = earliestUsefulChild;
+ }
+ _box_0.inLayoutRange = true;
+ _box_0.child = earliestUsefulChild;
+ t3 = earliestUsefulChild.parentData;
+ t3.toString;
+ t4._as(t3);
+ t5 = t3.index;
+ t5.toString;
+ _box_0.index = t5;
+ t3 = t3.layoutOffset;
+ t3.toString;
+ _box_0.endScrollOffset = t3 + _this.paintExtentOf$1(earliestUsefulChild);
+ advance = new U.RenderSliverList_performLayout_advance(_box_0, _this, childConstraints);
+ for (leadingGarbage = 0; _box_0.endScrollOffset < scrollOffset;) {
+ ++leadingGarbage;
+ if (!advance.call$0()) {
+ _this.collectGarbage$2(leadingGarbage - 1, 0);
+ t1 = _this.ContainerRenderObjectMixin__lastChild;
+ t2 = t1.parentData;
+ t2.toString;
+ t2 = t4._as(t2).layoutOffset;
+ t2.toString;
+ extent = t2 + _this.paintExtentOf$1(t1);
+ _this._sliver$_geometry = G.SliverGeometry$(_null, false, _null, _null, extent, 0, 0, extent, _null);
+ return;
+ }
+ }
+ while (true) {
+ if (!(_box_0.endScrollOffset < targetEndScrollOffset)) {
+ reachedEnd = false;
+ break;
+ }
+ if (!advance.call$0()) {
+ reachedEnd = true;
+ break;
+ }
+ }
+ t3 = _box_0.child;
+ if (t3 != null) {
+ t3 = t3.parentData;
+ t3.toString;
+ t5 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1");
+ t3 = _box_0.child = t5._as(t3).ContainerParentDataMixin_nextSibling;
+ for (trailingGarbage = 0; t3 != null; t3 = child) {
+ ++trailingGarbage;
+ t3 = t3.parentData;
+ t3.toString;
+ child = t5._as(t3).ContainerParentDataMixin_nextSibling;
+ _box_0.child = child;
+ }
+ } else
+ trailingGarbage = 0;
+ _this.collectGarbage$2(leadingGarbage, trailingGarbage);
+ estimatedMaxScrollOffset = _box_0.endScrollOffset;
+ if (!reachedEnd) {
+ t3 = _this.ContainerRenderObjectMixin__firstChild;
+ t3.toString;
+ t3 = t3.parentData;
+ t3.toString;
+ t4._as(t3);
+ t5 = t3.index;
+ t5.toString;
+ t6 = _this.ContainerRenderObjectMixin__lastChild;
+ t6.toString;
+ t6 = t6.parentData;
+ t6.toString;
+ t6 = t4._as(t6).index;
+ t6.toString;
+ estimatedMaxScrollOffset = t1.estimateMaxScrollOffset$5$firstIndex$lastIndex$leadingScrollOffset$trailingScrollOffset(constraints, t5, t6, t3.layoutOffset, estimatedMaxScrollOffset);
+ }
+ t3 = _this.ContainerRenderObjectMixin__firstChild.parentData;
+ t3.toString;
+ t3 = t4._as(t3).layoutOffset;
+ t3.toString;
+ paintExtent = _this.calculatePaintOffset$3$from$to(constraints, t3, _box_0.endScrollOffset);
+ t3 = _this.ContainerRenderObjectMixin__firstChild.parentData;
+ t3.toString;
+ t3 = t4._as(t3).layoutOffset;
+ t3.toString;
+ cacheExtent = _this.calculateCacheOffset$3$from$to(constraints, t3, _box_0.endScrollOffset);
+ t3 = constraints.remainingPaintExtent;
+ t4 = _box_0.endScrollOffset;
+ _this._sliver$_geometry = G.SliverGeometry$(cacheExtent, t4 > t2 + t3 || t2 > 0, _null, _null, estimatedMaxScrollOffset, paintExtent, 0, estimatedMaxScrollOffset, _null);
+ if (estimatedMaxScrollOffset === t4)
+ t1._didUnderflow = true;
+ t1.didFinishLayout$0();
+ }
+ };
+ U.RenderSliverList_performLayout_advance.prototype = {
+ call$0: function() {
+ var t4, child, index, t5,
+ t1 = this._box_0,
+ t2 = t1.child,
+ t3 = t1.trailingChildWithLayout;
+ if (t2 == t3)
+ t1.inLayoutRange = false;
+ t4 = this.$this;
+ t2 = t2.parentData;
+ t2.toString;
+ child = t1.child = H._instanceType(t4)._eval$1("ContainerRenderObjectMixin.1")._as(t2).ContainerParentDataMixin_nextSibling;
+ t2 = child == null;
+ if (t2)
+ t1.inLayoutRange = false;
+ index = t1.index + 1;
+ t1.index = index;
+ if (!t1.inLayoutRange) {
+ if (!t2) {
+ t2 = child.parentData;
+ t2.toString;
+ t2 = type$.SliverMultiBoxAdaptorParentData._as(t2).index;
+ t2.toString;
+ t2 = t2 !== index;
+ } else
+ t2 = true;
+ t5 = this.childConstraints;
+ if (t2) {
+ child = t4.insertAndLayoutChild$3$after$parentUsesSize(t5, t3, true);
+ t1.child = child;
+ if (child == null)
+ return false;
+ } else
+ child.layout$2$parentUsesSize(0, t5, true);
+ t2 = t1.trailingChildWithLayout = t1.child;
+ } else
+ t2 = child;
+ t3 = t2.parentData;
+ t3.toString;
+ type$.SliverMultiBoxAdaptorParentData._as(t3);
+ t5 = t1.endScrollOffset;
+ t3.layoutOffset = t5;
+ t1.endScrollOffset = t5 + t4.paintExtentOf$1(t2);
+ return true;
+ },
+ $signature: 72
+ };
+ F.KeepAliveParentDataMixin.prototype = {};
+ F.RenderSliverWithKeepAliveMixin.prototype = {
+ setupParentData$1: function(child) {
+ }
+ };
+ F.SliverMultiBoxAdaptorParentData.prototype = {
+ toString$0: function(_) {
+ var t1 = "index=" + H.S(this.index) + "; ";
+ return t1 + (this.KeepAliveParentDataMixin_keepAlive ? "keepAlive; " : "") + this.super$SliverLogicalParentData$toString(0);
+ }
+ };
+ F.RenderSliverMultiBoxAdaptor.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof F.SliverMultiBoxAdaptorParentData))
+ child.parentData = new F.SliverMultiBoxAdaptorParentData(false, null, null);
+ },
+ adoptChild$1: function(child) {
+ var t1;
+ this.super$RenderObject$adoptChild(child);
+ t1 = child.parentData;
+ t1.toString;
+ type$.SliverMultiBoxAdaptorParentData._as(t1);
+ if (!t1._keptAlive) {
+ type$.RenderBox._as(child);
+ t1.index = this._childManager._currentlyUpdatingChildIndex;
+ }
+ },
+ insert$2$after: function(_, child, after) {
+ this.super$ContainerRenderObjectMixin$insert(0, child, after);
+ },
+ move$2$after: function(child, after) {
+ var t2, t3, t4, _this = this,
+ t1 = child.parentData;
+ t1.toString;
+ t2 = type$.SliverMultiBoxAdaptorParentData;
+ t2._as(t1);
+ if (!t1._keptAlive) {
+ _this.super$ContainerRenderObjectMixin$move(child, after);
+ t1 = child.parentData;
+ t1.toString;
+ t2._as(t1).index = _this._childManager._currentlyUpdatingChildIndex;
+ _this.markNeedsLayout$0();
+ } else {
+ t3 = _this._keepAliveBucket;
+ if (t3.$index(0, t1.index) == child)
+ t3.remove$1(0, t1.index);
+ t4 = child.parentData;
+ t4.toString;
+ t2._as(t4).index = _this._childManager._currentlyUpdatingChildIndex;
+ t1 = t1.index;
+ t1.toString;
+ t3.$indexSet(0, t1, child);
+ }
+ },
+ remove$1: function(_, child) {
+ var t1 = child.parentData;
+ t1.toString;
+ type$.SliverMultiBoxAdaptorParentData._as(t1);
+ if (!t1._keptAlive) {
+ this.super$ContainerRenderObjectMixin$remove(0, child);
+ return;
+ }
+ this._keepAliveBucket.remove$1(0, t1.index);
+ this.dropChild$1(child);
+ },
+ _createOrObtainChild$2$after: function(index, after) {
+ this.invokeLayoutCallback$1$1(new F.RenderSliverMultiBoxAdaptor__createOrObtainChild_closure(this, index, after), type$.SliverConstraints);
+ },
+ _destroyOrCacheChild$1: function(child) {
+ var t2, _this = this,
+ t1 = child.parentData;
+ t1.toString;
+ type$.SliverMultiBoxAdaptorParentData._as(t1);
+ if (t1.KeepAliveParentDataMixin_keepAlive) {
+ _this.remove$1(0, child);
+ t2 = t1.index;
+ t2.toString;
+ _this._keepAliveBucket.$indexSet(0, t2, child);
+ child.parentData = t1;
+ _this.super$RenderObject$adoptChild(child);
+ t1._keptAlive = true;
+ } else
+ _this._childManager.removeChild$1(child);
+ },
+ attach$1: function(owner) {
+ var t1;
+ this.super$_RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin$attach(owner);
+ for (t1 = this._keepAliveBucket, t1 = t1.get$values(t1), t1 = t1.get$iterator(t1); t1.moveNext$0();)
+ t1.get$current(t1).attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t1;
+ this.super$_RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin$detach(0);
+ for (t1 = this._keepAliveBucket, t1 = t1.get$values(t1), t1 = t1.get$iterator(t1); t1.moveNext$0();)
+ t1.get$current(t1).detach$0(0);
+ },
+ redepthChildren$0: function() {
+ this.super$ContainerRenderObjectMixin$redepthChildren();
+ var t1 = this._keepAliveBucket;
+ t1.get$values(t1).forEach$1(0, this.get$redepthChild());
+ },
+ visitChildren$1: function(visitor) {
+ var t1;
+ this.super$ContainerRenderObjectMixin$visitChildren(visitor);
+ t1 = this._keepAliveBucket;
+ t1.get$values(t1).forEach$1(0, visitor);
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ this.super$ContainerRenderObjectMixin$visitChildren(visitor);
+ },
+ addInitialChild$2$index$layoutOffset: function(index, layoutOffset) {
+ var t1;
+ this._createOrObtainChild$2$after(index, null);
+ t1 = this.ContainerRenderObjectMixin__firstChild;
+ if (t1 != null) {
+ t1 = t1.parentData;
+ t1.toString;
+ type$.SliverMultiBoxAdaptorParentData._as(t1).layoutOffset = layoutOffset;
+ return true;
+ }
+ this._childManager._didUnderflow = true;
+ return false;
+ },
+ addInitialChild$0: function() {
+ return this.addInitialChild$2$index$layoutOffset(0, 0);
+ },
+ insertAndLayoutLeadingChild$2$parentUsesSize: function(childConstraints, parentUsesSize) {
+ var t2, index, t3, _this = this,
+ t1 = _this.ContainerRenderObjectMixin__firstChild;
+ t1.toString;
+ t1 = t1.parentData;
+ t1.toString;
+ t2 = type$.SliverMultiBoxAdaptorParentData;
+ t1 = t2._as(t1).index;
+ t1.toString;
+ index = t1 - 1;
+ _this._createOrObtainChild$2$after(index, null);
+ t1 = _this.ContainerRenderObjectMixin__firstChild;
+ t1.toString;
+ t3 = t1.parentData;
+ t3.toString;
+ t3 = t2._as(t3).index;
+ t3.toString;
+ if (t3 === index) {
+ t1.layout$2$parentUsesSize(0, childConstraints, parentUsesSize);
+ return _this.ContainerRenderObjectMixin__firstChild;
+ }
+ _this._childManager._didUnderflow = true;
+ return null;
+ },
+ insertAndLayoutChild$3$after$parentUsesSize: function(childConstraints, after, parentUsesSize) {
+ var t2, index, child,
+ t1 = after.parentData;
+ t1.toString;
+ t2 = type$.SliverMultiBoxAdaptorParentData;
+ t1 = t2._as(t1).index;
+ t1.toString;
+ index = t1 + 1;
+ this._createOrObtainChild$2$after(index, after);
+ t1 = after.parentData;
+ t1.toString;
+ child = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1")._as(t1).ContainerParentDataMixin_nextSibling;
+ if (child != null) {
+ t1 = child.parentData;
+ t1.toString;
+ t1 = t2._as(t1).index;
+ t1.toString;
+ t1 = t1 === index;
+ } else
+ t1 = false;
+ if (t1) {
+ child.layout$2$parentUsesSize(0, childConstraints, parentUsesSize);
+ return child;
+ }
+ this._childManager._didUnderflow = true;
+ return null;
+ },
+ collectGarbage$2: function(leadingGarbage, trailingGarbage) {
+ var t1 = {};
+ t1.leadingGarbage = leadingGarbage;
+ t1.trailingGarbage = trailingGarbage;
+ this.invokeLayoutCallback$1$1(new F.RenderSliverMultiBoxAdaptor_collectGarbage_closure(t1, this), type$.SliverConstraints);
+ },
+ paintExtentOf$1: function(child) {
+ switch (G.axisDirectionToAxis(type$.SliverConstraints._as(K.RenderObject.prototype.get$constraints.call(this)).axisDirection)) {
+ case C.Axis_0:
+ return child._size._dx;
+ case C.Axis_1:
+ return child._size._dy;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ hitTestChildren$3$crossAxisPosition$mainAxisPosition: function(result, crossAxisPosition, mainAxisPosition) {
+ var t1, t2,
+ child = this.ContainerRenderObjectMixin__lastChild,
+ boxResult = S.BoxHitTestResult$wrap(result);
+ for (t1 = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1"); child != null;) {
+ if (this.hitTestBoxChild$4$crossAxisPosition$mainAxisPosition(boxResult, child, crossAxisPosition, mainAxisPosition))
+ return true;
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_previousSibling;
+ }
+ return false;
+ },
+ childScrollOffset$1: function(child) {
+ var t1 = child.parentData;
+ t1.toString;
+ return type$.SliverMultiBoxAdaptorParentData._as(t1).layoutOffset;
+ },
+ applyPaintTransform$2: function(child, transform) {
+ var t2, rightWayUp, t3, delta, _this = this,
+ t1 = child.parentData;
+ t1.toString;
+ t2 = type$.SliverMultiBoxAdaptorParentData;
+ t1 = t2._as(t1).index;
+ t1.toString;
+ if (_this._keepAliveBucket.containsKey$1(0, t1)) {
+ t1 = transform._m4storage;
+ t1[0] = 0;
+ t1[1] = 0;
+ t1[2] = 0;
+ t1[3] = 0;
+ t1[4] = 0;
+ t1[5] = 0;
+ t1[6] = 0;
+ t1[7] = 0;
+ t1[8] = 0;
+ t1[9] = 0;
+ t1[10] = 0;
+ t1[11] = 0;
+ t1[12] = 0;
+ t1[13] = 0;
+ t1[14] = 0;
+ t1[15] = 0;
+ } else {
+ t1 = type$.SliverConstraints;
+ rightWayUp = _this._getRightWayUp$1(t1._as(K.RenderObject.prototype.get$constraints.call(_this)));
+ t3 = child.parentData;
+ t3.toString;
+ t3 = t2._as(t3).layoutOffset;
+ t3.toString;
+ delta = t3 - t1._as(K.RenderObject.prototype.get$constraints.call(_this)).scrollOffset;
+ switch (G.axisDirectionToAxis(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).axisDirection)) {
+ case C.Axis_0:
+ transform.translate$2(0, !rightWayUp ? _this._sliver$_geometry.paintExtent - child._size._dx - delta : delta, 0);
+ break;
+ case C.Axis_1:
+ transform.translate$2(0, 0, !rightWayUp ? _this._sliver$_geometry.paintExtent - child._size._dy - delta : delta);
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ },
+ paint$2: function(context, offset) {
+ var t1, originOffset, mainAxisUnit, crossAxisUnit, addExtent, child, t2, t3, t4, t5, t6, t7, t8, t9, t10, mainAxisDelta, t11, childOffset, t12, _this = this;
+ if (_this.ContainerRenderObjectMixin__firstChild == null)
+ return;
+ t1 = type$.SliverConstraints;
+ switch (G.applyGrowthDirectionToAxisDirection(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).axisDirection, t1._as(K.RenderObject.prototype.get$constraints.call(_this)).growthDirection)) {
+ case C.AxisDirection_0:
+ originOffset = offset.$add(0, new P.Offset(0, _this._sliver$_geometry.paintExtent));
+ mainAxisUnit = C.Offset_0_m1;
+ crossAxisUnit = C.Offset_1_0;
+ addExtent = true;
+ break;
+ case C.AxisDirection_1:
+ originOffset = offset;
+ mainAxisUnit = C.Offset_1_0;
+ crossAxisUnit = C.Offset_0_1;
+ addExtent = false;
+ break;
+ case C.AxisDirection_2:
+ originOffset = offset;
+ mainAxisUnit = C.Offset_0_1;
+ crossAxisUnit = C.Offset_1_0;
+ addExtent = false;
+ break;
+ case C.AxisDirection_3:
+ originOffset = offset.$add(0, new P.Offset(_this._sliver$_geometry.paintExtent, 0));
+ mainAxisUnit = C.Offset_m1_0;
+ crossAxisUnit = C.Offset_0_1;
+ addExtent = true;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ for (t2 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1"), t3 = type$.SliverMultiBoxAdaptorParentData, t4 = originOffset._dx, t5 = mainAxisUnit._dx, t6 = crossAxisUnit._dx, t7 = originOffset._dy, t8 = mainAxisUnit._dy, t9 = crossAxisUnit._dy; child != null;) {
+ t10 = child.parentData;
+ t10.toString;
+ t10 = t3._as(t10).layoutOffset;
+ t10.toString;
+ mainAxisDelta = t10 - t1._as(K.RenderObject.prototype.get$constraints.call(_this)).scrollOffset;
+ t10 = t4 + t5 * mainAxisDelta + t6 * 0;
+ t11 = t7 + t8 * mainAxisDelta + t9 * 0;
+ childOffset = new P.Offset(t10, t11);
+ if (addExtent) {
+ t12 = _this.paintExtentOf$1(child);
+ childOffset = new P.Offset(t10 + t5 * t12, t11 + t8 * t12);
+ }
+ if (mainAxisDelta < t1._as(K.RenderObject.prototype.get$constraints.call(_this)).remainingPaintExtent && mainAxisDelta + _this.paintExtentOf$1(child) > 0)
+ context.paintChild$2(child, childOffset);
+ t10 = child.parentData;
+ t10.toString;
+ child = t2._as(t10).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ debugDescribeChildren$0: function() {
+ var t1, t2, indices, _i, index, t3,
+ _s17_ = "child with index ",
+ children = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode),
+ child = this.ContainerRenderObjectMixin__firstChild;
+ if (child != null)
+ for (t1 = type$.SliverMultiBoxAdaptorParentData; true;) {
+ t2 = child.parentData;
+ t2.toString;
+ t1._as(t2);
+ children.push(new Y.DiagnosticableTreeNode(child, _s17_ + H.S(t2.index), true, true, null, null));
+ if (child == this.ContainerRenderObjectMixin__lastChild)
+ break;
+ child = t2.ContainerParentDataMixin_nextSibling;
+ }
+ t1 = this._keepAliveBucket;
+ if (t1.get$isNotEmpty(t1)) {
+ t2 = t1.get$keys(t1);
+ indices = P.List_List$of(t2, true, H._instanceType(t2)._eval$1("Iterable.E"));
+ C.JSArray_methods.sort$0(indices);
+ for (t2 = indices.length, _i = 0; _i < indices.length; indices.length === t2 || (0, H.throwConcurrentModificationError)(indices), ++_i) {
+ index = indices[_i];
+ t3 = t1.$index(0, index);
+ t3.toString;
+ children.push(new Y.DiagnosticableTreeNode(t3, _s17_ + H.S(index) + " (kept alive but not laid out)", true, true, null, C.DiagnosticsTreeStyle_2));
+ }
+ }
+ return children;
+ }
+ };
+ F.RenderSliverMultiBoxAdaptor__createOrObtainChild_closure.prototype = {
+ call$1: function(constraints) {
+ var t1 = this.$this,
+ t2 = t1._keepAliveBucket,
+ t3 = this.index,
+ t4 = this.after;
+ if (t2.containsKey$1(0, t3)) {
+ t2 = t2.remove$1(0, t3);
+ t2.toString;
+ t3 = t2.parentData;
+ t3.toString;
+ type$.SliverMultiBoxAdaptorParentData._as(t3);
+ t1.dropChild$1(t2);
+ t2.parentData = t3;
+ t1.super$ContainerRenderObjectMixin$insert(0, t2, t4);
+ t3._keptAlive = false;
+ } else
+ t1._childManager.createChild$2$after(t3, t4);
+ },
+ $signature: 131
+ };
+ F.RenderSliverMultiBoxAdaptor_collectGarbage_closure.prototype = {
+ call$1: function(constraints) {
+ var t1, t2, t3;
+ for (t1 = this._box_0, t2 = this.$this; t1.leadingGarbage > 0;) {
+ t3 = t2.ContainerRenderObjectMixin__firstChild;
+ t3.toString;
+ t2._destroyOrCacheChild$1(t3);
+ --t1.leadingGarbage;
+ }
+ for (; t1.trailingGarbage > 0;) {
+ t3 = t2.ContainerRenderObjectMixin__lastChild;
+ t3.toString;
+ t2._destroyOrCacheChild$1(t3);
+ --t1.trailingGarbage;
+ }
+ t1 = t2._keepAliveBucket;
+ t1 = t1.get$values(t1);
+ t3 = H._instanceType(t1)._eval$1("WhereIterable");
+ C.JSArray_methods.forEach$1(P.List_List$of(new H.WhereIterable(t1, new F.RenderSliverMultiBoxAdaptor_collectGarbage__closure(), t3), true, t3._eval$1("Iterable.E")), t2._childManager.get$removeChild());
+ },
+ $signature: 131
+ };
+ F.RenderSliverMultiBoxAdaptor_collectGarbage__closure.prototype = {
+ call$1: function(child) {
+ var t1 = child.parentData;
+ t1.toString;
+ return !type$.SliverMultiBoxAdaptorParentData._as(t1).KeepAliveParentDataMixin_keepAlive;
+ },
+ $signature: 213
+ };
+ F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin.prototype = {
+ attach$1: function(owner) {
+ var child, t1, t2;
+ this.super$RenderObject$attach(owner);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.SliverMultiBoxAdaptorParentData; child != null;) {
+ child.attach$1(owner);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child, t1, t2;
+ this.super$AbstractNode$detach(0);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.SliverMultiBoxAdaptorParentData; child != null;) {
+ child.detach$0(0);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers.prototype = {};
+ F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers_RenderSliverWithKeepAliveMixin.prototype = {};
+ F._SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin.prototype = {
+ detach$0: function(_) {
+ this.super$ParentData$detach(0);
+ }
+ };
+ F._SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin_KeepAliveParentDataMixin.prototype = {};
+ T.RenderSliverEdgeInsetsPadding.prototype = {
+ get$beforePadding: function() {
+ var _this = this,
+ t1 = type$.SliverConstraints;
+ switch (G.applyGrowthDirectionToAxisDirection(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).axisDirection, t1._as(K.RenderObject.prototype.get$constraints.call(_this)).growthDirection)) {
+ case C.AxisDirection_0:
+ return _this._sliver_padding$_resolvedPadding.bottom;
+ case C.AxisDirection_1:
+ return _this._sliver_padding$_resolvedPadding.left;
+ case C.AxisDirection_2:
+ return _this._sliver_padding$_resolvedPadding.top;
+ case C.AxisDirection_3:
+ return _this._sliver_padding$_resolvedPadding.right;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$afterPadding: function() {
+ var _this = this,
+ t1 = type$.SliverConstraints;
+ switch (G.applyGrowthDirectionToAxisDirection(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).axisDirection, t1._as(K.RenderObject.prototype.get$constraints.call(_this)).growthDirection)) {
+ case C.AxisDirection_0:
+ return _this._sliver_padding$_resolvedPadding.top;
+ case C.AxisDirection_1:
+ return _this._sliver_padding$_resolvedPadding.right;
+ case C.AxisDirection_2:
+ return _this._sliver_padding$_resolvedPadding.bottom;
+ case C.AxisDirection_3:
+ return _this._sliver_padding$_resolvedPadding.left;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$crossAxisPadding: function() {
+ switch (G.axisDirectionToAxis(type$.SliverConstraints._as(K.RenderObject.prototype.get$constraints.call(this)).axisDirection)) {
+ case C.Axis_0:
+ var t1 = this._sliver_padding$_resolvedPadding;
+ return t1.get$_top(t1) + t1.get$_bottom(t1);
+ case C.Axis_1:
+ return this._sliver_padding$_resolvedPadding.get$horizontal();
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof G.SliverPhysicalParentData))
+ child.parentData = new G.SliverPhysicalParentData(C.Offset_0_0);
+ },
+ performLayout$0: function() {
+ var t2, mainAxisPadding, crossAxisPadding, beforePaddingPaintExtent, overlap, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, childLayoutGeometry, afterPaddingPaintExtent, mainAxisPaddingPaintExtent, beforePaddingCacheExtent, afterPaddingCacheExtent, paintExtent, _this = this, _null = null,
+ t1 = type$.SliverConstraints,
+ constraints = t1._as(K.RenderObject.prototype.get$constraints.call(_this)),
+ beforePadding = _this.get$beforePadding();
+ _this.get$afterPadding();
+ t2 = _this._sliver_padding$_resolvedPadding;
+ t2.toString;
+ mainAxisPadding = t2.along$1(G.axisDirectionToAxis(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).axisDirection));
+ crossAxisPadding = _this.get$crossAxisPadding();
+ if (_this.RenderObjectWithChildMixin__child == null) {
+ _this._sliver$_geometry = G.SliverGeometry$(_null, false, _null, _null, mainAxisPadding, Math.min(mainAxisPadding, constraints.remainingPaintExtent), 0, mainAxisPadding, _null);
+ return;
+ }
+ beforePaddingPaintExtent = _this.calculatePaintOffset$3$from$to(constraints, 0, beforePadding);
+ overlap = constraints.overlap;
+ if (overlap > 0)
+ overlap = Math.max(0, overlap - beforePaddingPaintExtent);
+ t1 = _this.RenderObjectWithChildMixin__child;
+ t1.toString;
+ t2 = Math.max(0, constraints.scrollOffset - beforePadding);
+ t3 = Math.min(0, constraints.cacheOrigin + beforePadding);
+ t4 = constraints.remainingPaintExtent;
+ t5 = _this.calculatePaintOffset$3$from$to(constraints, 0, beforePadding);
+ t6 = constraints.remainingCacheExtent;
+ t7 = _this.calculateCacheOffset$3$from$to(constraints, 0, beforePadding);
+ t8 = Math.max(0, constraints.crossAxisExtent - crossAxisPadding);
+ t9 = constraints.precedingScrollExtent;
+ t10 = constraints.axisDirection;
+ t11 = constraints.growthDirection;
+ t12 = constraints.userScrollDirection;
+ t13 = constraints.crossAxisDirection;
+ t14 = constraints.viewportMainAxisExtent;
+ t1.layout$2$parentUsesSize(0, new G.SliverConstraints(t10, t11, t12, t2, beforePadding + t9, overlap, t4 - t5, t8, t13, t14, t3, t6 - t7), true);
+ childLayoutGeometry = _this.RenderObjectWithChildMixin__child._sliver$_geometry;
+ t1 = childLayoutGeometry.scrollOffsetCorrection;
+ if (t1 != null) {
+ _this._sliver$_geometry = G.SliverGeometry$(_null, false, _null, _null, 0, 0, 0, 0, t1);
+ return;
+ }
+ t1 = childLayoutGeometry.scrollExtent;
+ t2 = beforePadding + t1;
+ t3 = mainAxisPadding + t1;
+ afterPaddingPaintExtent = _this.calculatePaintOffset$3$from$to(constraints, t2, t3);
+ mainAxisPaddingPaintExtent = beforePaddingPaintExtent + afterPaddingPaintExtent;
+ beforePaddingCacheExtent = _this.calculateCacheOffset$3$from$to(constraints, 0, beforePadding);
+ afterPaddingCacheExtent = _this.calculateCacheOffset$3$from$to(constraints, t2, t3);
+ t2 = childLayoutGeometry.paintExtent;
+ t5 = childLayoutGeometry.layoutExtent;
+ paintExtent = Math.min(beforePaddingPaintExtent + Math.max(t2, t5 + afterPaddingPaintExtent), t4);
+ t4 = childLayoutGeometry.paintOrigin;
+ t5 = Math.min(mainAxisPaddingPaintExtent + t5, paintExtent);
+ t6 = Math.min(afterPaddingCacheExtent + beforePaddingCacheExtent + childLayoutGeometry.cacheExtent, t6);
+ t7 = childLayoutGeometry.maxPaintExtent;
+ t2 = Math.max(mainAxisPaddingPaintExtent + t2, beforePaddingPaintExtent + childLayoutGeometry.hitTestExtent);
+ _this._sliver$_geometry = G.SliverGeometry$(t6, childLayoutGeometry.hasVisualOverflow, t2, t5, mainAxisPadding + t7, paintExtent, t4, t3, _null);
+ t3 = _this.RenderObjectWithChildMixin__child.parentData;
+ t3.toString;
+ type$.SliverPhysicalParentData._as(t3);
+ switch (G.applyGrowthDirectionToAxisDirection(t10, t11)) {
+ case C.AxisDirection_0:
+ t2 = _this._sliver_padding$_resolvedPadding;
+ t4 = t2.left;
+ t1 = t2.bottom + t1;
+ t3.paintOffset = new P.Offset(t4, _this.calculatePaintOffset$3$from$to(constraints, t1, t1 + t2.top));
+ break;
+ case C.AxisDirection_1:
+ t3.paintOffset = new P.Offset(_this.calculatePaintOffset$3$from$to(constraints, 0, _this._sliver_padding$_resolvedPadding.left), _this._sliver_padding$_resolvedPadding.top);
+ break;
+ case C.AxisDirection_2:
+ t1 = _this._sliver_padding$_resolvedPadding;
+ t3.paintOffset = new P.Offset(t1.left, _this.calculatePaintOffset$3$from$to(constraints, 0, t1.top));
+ break;
+ case C.AxisDirection_3:
+ t2 = _this._sliver_padding$_resolvedPadding;
+ t1 = t2.right + t1;
+ t3.paintOffset = new P.Offset(_this.calculatePaintOffset$3$from$to(constraints, t1, t1 + t2.left), _this._sliver_padding$_resolvedPadding.top);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ hitTestChildren$3$crossAxisPosition$mainAxisPosition: function(result, crossAxisPosition, mainAxisPosition) {
+ var t2, t3, t4, _this = this,
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null && t1._sliver$_geometry.hitTestExtent > 0) {
+ t1 = t1.parentData;
+ t1.toString;
+ type$.SliverPhysicalParentData._as(t1);
+ t2 = _this.calculatePaintOffset$3$from$to(type$.SliverConstraints._as(K.RenderObject.prototype.get$constraints.call(_this)), 0, _this.get$beforePadding());
+ t3 = _this.RenderObjectWithChildMixin__child;
+ t3.toString;
+ t3 = _this.childCrossAxisPosition$1(t3);
+ t1 = t1.paintOffset;
+ t4 = _this.RenderObjectWithChildMixin__child.get$hitTest();
+ result._localTransforms.push(new O._OffsetTransformPart(new P.Offset(-t1._dx, -t1._dy)));
+ t4.call$3$crossAxisPosition$mainAxisPosition(result, crossAxisPosition - t3, mainAxisPosition - t2);
+ result.popTransform$0();
+ }
+ return false;
+ },
+ childCrossAxisPosition$1: function(child) {
+ var _this = this,
+ t1 = type$.SliverConstraints;
+ switch (G.applyGrowthDirectionToAxisDirection(t1._as(K.RenderObject.prototype.get$constraints.call(_this)).axisDirection, t1._as(K.RenderObject.prototype.get$constraints.call(_this)).growthDirection)) {
+ case C.AxisDirection_0:
+ case C.AxisDirection_2:
+ return _this._sliver_padding$_resolvedPadding.left;
+ case C.AxisDirection_3:
+ case C.AxisDirection_1:
+ return _this._sliver_padding$_resolvedPadding.top;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ childScrollOffset$1: function(child) {
+ return this.get$beforePadding();
+ },
+ applyPaintTransform$2: function(child, transform) {
+ var t1 = child.parentData;
+ t1.toString;
+ t1 = type$.SliverPhysicalParentData._as(t1).paintOffset;
+ transform.translate$2(0, t1._dx, t1._dy);
+ },
+ paint$2: function(context, offset) {
+ var t2,
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null && t1._sliver$_geometry.visible) {
+ t2 = t1.parentData;
+ t2.toString;
+ context.paintChild$2(t1, offset.$add(0, type$.SliverPhysicalParentData._as(t2).paintOffset));
+ }
+ }
+ };
+ T.RenderSliverPadding.prototype = {
+ _sliver_padding$_resolve$0: function() {
+ if (this._sliver_padding$_resolvedPadding != null)
+ return;
+ this._sliver_padding$_resolvedPadding = this._sliver_padding$_padding;
+ },
+ set$padding: function(_, value) {
+ var _this = this;
+ if (_this._sliver_padding$_padding.$eq(0, value))
+ return;
+ _this._sliver_padding$_padding = value;
+ _this._sliver_padding$_resolvedPadding = null;
+ _this.markNeedsLayout$0();
+ },
+ set$textDirection: function(_, value) {
+ var _this = this;
+ if (_this._sliver_padding$_textDirection === value)
+ return;
+ _this._sliver_padding$_textDirection = value;
+ _this._sliver_padding$_resolvedPadding = null;
+ _this.markNeedsLayout$0();
+ },
+ performLayout$0: function() {
+ this._sliver_padding$_resolve$0();
+ this.super$RenderSliverEdgeInsetsPadding$performLayout();
+ }
+ };
+ T._RenderSliverEdgeInsetsPadding_RenderSliver_RenderObjectWithChildMixin.prototype = {
+ attach$1: function(owner) {
+ var t1;
+ this.super$RenderObject$attach(owner);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t1;
+ this.super$AbstractNode$detach(0);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.detach$0(0);
+ }
+ };
+ K.RelativeRect.prototype = {
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ return other instanceof K.RelativeRect && other.left == _this.left && other.top == _this.top && other.right === _this.right && other.bottom === _this.bottom;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.left, _this.top, _this.right, _this.bottom, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "RelativeRect.fromLTRB(" + J.toStringAsFixed$1$n(_this.left, 1) + ", " + J.toStringAsFixed$1$n(_this.top, 1) + ", " + C.JSNumber_methods.toStringAsFixed$1(_this.right, 1) + ", " + C.JSNumber_methods.toStringAsFixed$1(_this.bottom, 1) + ")";
+ }
+ };
+ K.StackParentData.prototype = {
+ get$isPositioned: function() {
+ var _this = this;
+ return _this.top != null || _this.right != null || _this.bottom != null || _this.left != null || _this.width != null || _this.height != null;
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_String),
+ t2 = _this.top;
+ if (t2 != null)
+ t1.push("top=" + E.debugFormatDouble(t2));
+ t2 = _this.right;
+ if (t2 != null)
+ t1.push("right=" + E.debugFormatDouble(t2));
+ t2 = _this.bottom;
+ if (t2 != null)
+ t1.push("bottom=" + E.debugFormatDouble(t2));
+ t2 = _this.left;
+ if (t2 != null)
+ t1.push("left=" + E.debugFormatDouble(t2));
+ t2 = _this.width;
+ if (t2 != null)
+ t1.push("width=" + E.debugFormatDouble(t2));
+ t2 = _this.height;
+ if (t2 != null)
+ t1.push("height=" + E.debugFormatDouble(t2));
+ if (t1.length === 0)
+ t1.push("not positioned");
+ t1.push(_this.super$BoxParentData$toString(0));
+ return C.JSArray_methods.join$1(t1, "; ");
+ },
+ set$width: function(receiver, val) {
+ return this.width = val;
+ },
+ set$height: function(receiver, val) {
+ return this.height = val;
+ }
+ };
+ K.StackFit.prototype = {
+ toString$0: function(_) {
+ return this._stack$_name;
+ }
+ };
+ K.Overflow.prototype = {
+ toString$0: function(_) {
+ return this._stack$_name;
+ }
+ };
+ K.RenderStack.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof K.StackParentData))
+ child.parentData = new K.StackParentData(null, null, C.Offset_0_0);
+ },
+ _stack$_resolve$0: function() {
+ var _this = this;
+ if (_this._resolvedAlignment != null)
+ return;
+ _this._resolvedAlignment = _this._alignment.resolve$1(_this._stack$_textDirection);
+ },
+ set$alignment: function(_, value) {
+ var _this = this;
+ if (_this._alignment.$eq(0, value))
+ return;
+ _this._alignment = value;
+ _this._resolvedAlignment = null;
+ _this.markNeedsLayout$0();
+ },
+ set$textDirection: function(_, value) {
+ var _this = this;
+ if (_this._stack$_textDirection == value)
+ return;
+ _this._stack$_textDirection = value;
+ _this._resolvedAlignment = null;
+ _this.markNeedsLayout$0();
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ return K.RenderStack_getIntrinsicDimension(this.ContainerRenderObjectMixin__firstChild, new K.RenderStack_computeMinIntrinsicWidth_closure(height));
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ return K.RenderStack_getIntrinsicDimension(this.ContainerRenderObjectMixin__firstChild, new K.RenderStack_computeMaxIntrinsicWidth_closure(height));
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return K.RenderStack_getIntrinsicDimension(this.ContainerRenderObjectMixin__firstChild, new K.RenderStack_computeMinIntrinsicHeight_closure(width));
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return K.RenderStack_getIntrinsicDimension(this.ContainerRenderObjectMixin__firstChild, new K.RenderStack_computeMaxIntrinsicHeight_closure(width));
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ return this.defaultComputeDistanceToHighestActualBaseline$1(baseline);
+ },
+ performLayout$0: function() {
+ var width, height, nonPositionedConstraints, child, t1, height0, width0, hasNonPositionedChildren, t2, childSize, t3, t4, t5, t6, _this = this,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this));
+ _this._stack$_resolve$0();
+ _this._stack$_hasVisualOverflow = false;
+ if (_this.ContainerRenderObjectMixin__childCount === 0) {
+ _this._size = new P.Size(C.JSInt_methods.clamp$2(1 / 0, constraints.minWidth, constraints.maxWidth), C.JSInt_methods.clamp$2(1 / 0, constraints.minHeight, constraints.maxHeight));
+ return;
+ }
+ width = constraints.minWidth;
+ height = constraints.minHeight;
+ switch (_this._fit) {
+ case C.StackFit_0:
+ nonPositionedConstraints = constraints.loosen$0();
+ break;
+ case C.StackFit_1:
+ nonPositionedConstraints = S.BoxConstraints$tight(new P.Size(C.JSInt_methods.clamp$2(1 / 0, width, constraints.maxWidth), C.JSInt_methods.clamp$2(1 / 0, height, constraints.maxHeight)));
+ break;
+ case C.StackFit_2:
+ nonPositionedConstraints = constraints;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.StackParentData, height0 = height, width0 = width, hasNonPositionedChildren = false; child != null;) {
+ t2 = child.parentData;
+ t2.toString;
+ t1._as(t2);
+ if (!t2.get$isPositioned()) {
+ child.layout$2$parentUsesSize(0, nonPositionedConstraints, true);
+ childSize = child._size;
+ t3 = childSize._dx;
+ width0 = Math.max(H.checkNum(width0), H.checkNum(t3));
+ t3 = childSize._dy;
+ height0 = Math.max(H.checkNum(height0), H.checkNum(t3));
+ hasNonPositionedChildren = true;
+ }
+ child = t2.ContainerParentDataMixin_nextSibling;
+ }
+ if (hasNonPositionedChildren)
+ _this._size = new P.Size(width0, height0);
+ else
+ _this._size = new P.Size(C.JSInt_methods.clamp$2(1 / 0, width, constraints.maxWidth), C.JSInt_methods.clamp$2(1 / 0, height, constraints.maxHeight));
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ for (t2 = type$.Offset; child != null;) {
+ t3 = child.parentData;
+ t3.toString;
+ t1._as(t3);
+ if (!t3.get$isPositioned()) {
+ t4 = _this._resolvedAlignment;
+ t4.toString;
+ t5 = _this._size;
+ t5.toString;
+ t6 = child._size;
+ t6.toString;
+ t3.offset = t4.alongOffset$1(t2._as(t5.$sub(0, t6)));
+ } else {
+ t4 = _this._size;
+ t4.toString;
+ t5 = _this._resolvedAlignment;
+ t5.toString;
+ _this._stack$_hasVisualOverflow = K.RenderStack_layoutPositionedChild(child, t3, t4, t5) || _this._stack$_hasVisualOverflow;
+ }
+ child = t3.ContainerParentDataMixin_nextSibling;
+ }
+ },
+ hitTestChildren$2$position: function(result, position) {
+ return this.defaultHitTestChildren$2$position(result, position);
+ },
+ paintStack$2: function(context, offset) {
+ this.defaultPaint$2(context, offset);
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, _this = this;
+ if (_this._clipBehavior !== C.Clip_0 && _this._stack$_hasVisualOverflow) {
+ t1 = _this.get$_needsCompositing();
+ t2 = _this._size;
+ _this._stack$_clipRectLayer = context.pushClipRect$6$clipBehavior$oldLayer(t1, offset, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy), _this.get$paintStack(), _this._clipBehavior, _this._stack$_clipRectLayer);
+ } else {
+ _this._stack$_clipRectLayer = null;
+ _this.defaultPaint$2(context, offset);
+ }
+ },
+ describeApproximatePaintClip$1: function(child) {
+ var t1;
+ if (this._stack$_hasVisualOverflow) {
+ t1 = this._size;
+ t1 = new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ } else
+ t1 = null;
+ return t1;
+ }
+ };
+ K.RenderStack_computeMinIntrinsicWidth_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_0, this.height, child.get$computeMinIntrinsicWidth());
+ },
+ $signature: 5
+ };
+ K.RenderStack_computeMaxIntrinsicWidth_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_1, this.height, child.get$computeMaxIntrinsicWidth());
+ },
+ $signature: 5
+ };
+ K.RenderStack_computeMinIntrinsicHeight_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_2, this.width, child.get$computeMinIntrinsicHeight());
+ },
+ $signature: 5
+ };
+ K.RenderStack_computeMaxIntrinsicHeight_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_3, this.width, child.get$computeMaxIntrinsicHeight());
+ },
+ $signature: 5
+ };
+ K.RenderStack_layoutPositionedChild__x_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ if (t2._x_isSet)
+ throw H.wrapException(H.LateError$localAI("x"));
+ else {
+ t2._x_isSet = true;
+ return t2.x = t1;
+ }
+ },
+ $signature: 26
+ };
+ K.RenderStack_layoutPositionedChild__y_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ if (t2._y_isSet)
+ throw H.wrapException(H.LateError$localAI("y"));
+ else {
+ t2._y_isSet = true;
+ return t2.y = t1;
+ }
+ },
+ $signature: 26
+ };
+ K.RenderStack_layoutPositionedChild__x_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._x_isSet ? t1.x : H.throwExpression(H.LateError$localNI("x"));
+ },
+ $signature: 18
+ };
+ K.RenderStack_layoutPositionedChild__y_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._y_isSet ? t1.y : H.throwExpression(H.LateError$localNI("y"));
+ },
+ $signature: 18
+ };
+ K._RenderStack_RenderBox_ContainerRenderObjectMixin.prototype = {
+ attach$1: function(owner) {
+ var child, t1, t2;
+ this.super$RenderObject$attach(owner);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.StackParentData; child != null;) {
+ child.attach$1(owner);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child, t1, t2;
+ this.super$AbstractNode$detach(0);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.StackParentData; child != null;) {
+ child.detach$0(0);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ K._RenderStack_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin.prototype = {};
+ A.ViewConfiguration0.prototype = {
+ toString$0: function(_) {
+ return this.size.toString$0(0) + " at " + E.debugFormatDouble(this.devicePixelRatio) + "x";
+ }
+ };
+ A.RenderView.prototype = {
+ set$configuration: function(value) {
+ var t1, _this = this;
+ if (_this._view$_configuration === value)
+ return;
+ _this._view$_configuration = value;
+ t1 = _this._updateMatricesAndCreateNewRootLayer$0();
+ _this._layer.detach$0(0);
+ _this._layer = t1;
+ _this.markNeedsPaint$0();
+ _this.markNeedsLayout$0();
+ },
+ _updateMatricesAndCreateNewRootLayer$0: function() {
+ var rootLayer,
+ t1 = this._view$_configuration.devicePixelRatio;
+ t1 = E.Matrix4_Matrix4$diagonal3Values(t1, t1, 1);
+ this._rootTransform = t1;
+ rootLayer = new T.TransformLayer(t1, C.Offset_0_0);
+ rootLayer.attach$1(this);
+ return rootLayer;
+ },
+ performResize$0: function() {
+ },
+ performLayout$0: function() {
+ var t2,
+ t1 = this._view$_configuration.size;
+ this._view$_size = t1;
+ t2 = this.RenderObjectWithChildMixin__child;
+ if (t2 != null)
+ t2.layout$1(0, S.BoxConstraints$tight(t1));
+ },
+ hitTest$2$position: function(result, position) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.hitTest$2$position(S.BoxHitTestResult$wrap(result), position);
+ t1 = new O.HitTestEntry(this);
+ result._globalizeTransforms$0();
+ t1._transform = C.JSArray_methods.get$last(result._transforms);
+ result._path.push(t1);
+ return true;
+ },
+ hitTestMouseTrackers$1: function(position) {
+ var result,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_HitTestEntry),
+ t2 = new E.Matrix4(new Float64Array(16));
+ t2.setIdentity$0();
+ result = new S.BoxHitTestResult(t1, H.setRuntimeTypeInfo([t2], type$.JSArray_Matrix4), H.setRuntimeTypeInfo([], type$.JSArray__TransformPart));
+ this.hitTest$2$position(result, position);
+ return result;
+ },
+ get$isRepaintBoundary: function() {
+ return true;
+ },
+ paint$2: function(context, offset) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ context.paintChild$2(t1, offset);
+ },
+ applyPaintTransform$2: function(child, transform) {
+ var t1 = this._rootTransform;
+ t1.toString;
+ transform.multiply$1(0, t1);
+ this.super$RenderObject$applyPaintTransform(child, transform);
+ },
+ compositeFrame$0: function() {
+ var builder, scene, bounds, t1, t2, t3, t4, upperOverlayStyle, lowerOverlayStyle, t5, t6, t7, _this = this, _null = null;
+ P.Timeline_startSync("Compositing", C.Map_9aZ6I, _null);
+ try {
+ builder = P.SceneBuilder_SceneBuilder();
+ scene = _this._layer.buildScene$1(builder);
+ bounds = _this.get$paintBounds();
+ t1 = bounds.get$center();
+ t2 = _this._window;
+ t2.get$viewConfiguration();
+ t3 = bounds.get$center();
+ t2.get$viewConfiguration();
+ t4 = type$.SystemUiOverlayStyle;
+ upperOverlayStyle = _this._layer.find$1$1(0, new P.Offset(t1._dx, 0), t4);
+ switch (U.defaultTargetPlatform()) {
+ case C.TargetPlatform_0:
+ lowerOverlayStyle = _this._layer.find$1$1(0, new P.Offset(t3._dx, bounds.bottom - 1 - 0), t4);
+ break;
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_5:
+ lowerOverlayStyle = _null;
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ lowerOverlayStyle = _null;
+ }
+ t1 = upperOverlayStyle == null;
+ if (!t1 || lowerOverlayStyle != null) {
+ t3 = t1 ? _null : upperOverlayStyle.statusBarBrightness;
+ t4 = t1 ? _null : upperOverlayStyle.statusBarIconBrightness;
+ t1 = t1 ? _null : upperOverlayStyle.statusBarColor;
+ t5 = lowerOverlayStyle == null;
+ t6 = t5 ? _null : lowerOverlayStyle.systemNavigationBarColor;
+ t7 = t5 ? _null : lowerOverlayStyle.systemNavigationBarDividerColor;
+ X.SystemChrome_setSystemUIOverlayStyle(new X.SystemUiOverlayStyle(t6, t7, t5 ? _null : lowerOverlayStyle.systemNavigationBarIconBrightness, t1, t3, t4));
+ }
+ t2.platformDispatcher.render$2(scene, t2);
+ J.dispose$0$x(scene);
+ } finally {
+ P.Timeline_finishSync();
+ }
+ },
+ get$paintBounds: function() {
+ var t1 = this._view$_size.$mul(0, this._view$_configuration.devicePixelRatio);
+ return new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ },
+ get$semanticBounds: function() {
+ var t2,
+ t1 = this._rootTransform;
+ t1.toString;
+ t2 = this._view$_size;
+ return T.MatrixUtils_transformRect(t1, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy));
+ }
+ };
+ A._RenderView_RenderObject_RenderObjectWithChildMixin.prototype = {
+ attach$1: function(owner) {
+ var t1;
+ this.super$RenderObject$attach(owner);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t1;
+ this.super$AbstractNode$detach(0);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.detach$0(0);
+ }
+ };
+ Q.CacheExtentStyle.prototype = {
+ toString$0: function(_) {
+ return this._viewport$_name;
+ }
+ };
+ Q.RevealedOffset.prototype = {
+ toString$0: function(_) {
+ return "RevealedOffset(offset: " + H.S(this.offset) + ", rect: " + H.S(this.rect) + ")";
+ }
+ };
+ Q.RenderViewportBase.prototype = {
+ describeSemanticsConfiguration$1: function(config) {
+ this.super$RenderObject$describeSemanticsConfiguration(config);
+ config.addTagForChildren$1(C.SemanticsTag_FIw);
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ var t1 = this.get$childrenInPaintOrder();
+ t1.toString;
+ new H.WhereIterable(t1, new Q.RenderViewportBase_visitChildrenForSemantics_closure(), t1.$ti._eval$1("WhereIterable")).forEach$1(0, visitor);
+ },
+ set$axisDirection: function(value) {
+ if (value === this._axisDirection)
+ return;
+ this._axisDirection = value;
+ this.markNeedsLayout$0();
+ },
+ set$crossAxisDirection: function(value) {
+ if (value === this._crossAxisDirection)
+ return;
+ this._crossAxisDirection = value;
+ this.markNeedsLayout$0();
+ },
+ set$offset: function(_, value) {
+ var _this = this,
+ t1 = _this._viewport$_offset;
+ if (value == t1)
+ return;
+ if (_this._node$_owner != null)
+ t1.removeListener$1(0, _this.get$markNeedsLayout());
+ _this._viewport$_offset = value;
+ if (_this._node$_owner != null) {
+ t1 = value.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(_this.get$markNeedsLayout()), false);
+ }
+ _this.markNeedsLayout$0();
+ },
+ set$clipBehavior: function(value) {
+ var _this = this;
+ if (value !== _this._viewport$_clipBehavior) {
+ _this._viewport$_clipBehavior = value;
+ _this.markNeedsPaint$0();
+ _this.markNeedsSemanticsUpdate$0();
+ }
+ },
+ attach$1: function(owner) {
+ var t1;
+ this.super$_RenderViewportBase_RenderBox_ContainerRenderObjectMixin$attach(owner);
+ t1 = this._viewport$_offset.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(this.get$markNeedsLayout()), false);
+ },
+ detach$0: function(_) {
+ this._viewport$_offset.removeListener$1(0, this.get$markNeedsLayout());
+ this.super$_RenderViewportBase_RenderBox_ContainerRenderObjectMixin$detach(0);
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ return 0;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return 0;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return 0;
+ },
+ get$isRepaintBoundary: function() {
+ return true;
+ },
+ layoutChildSequence$11$advance$cacheOrigin$child$crossAxisExtent$growthDirection$layoutOffset$mainAxisExtent$overlap$remainingCacheExtent$remainingPaintExtent$scrollOffset: function(advance, cacheOrigin, child, crossAxisExtent, growthDirection, layoutOffset, mainAxisExtent, overlap, remainingCacheExtent, remainingPaintExtent, scrollOffset) {
+ var layoutOffset0, precedingScrollExtent, sliverScrollOffset, correctedCacheOrigin, cacheExtentCorrection, childLayoutGeometry, t1, effectiveLayoutOffset, _this = this,
+ adjustedUserScrollDirection = G.applyGrowthDirectionToScrollDirection(_this._viewport$_offset._userScrollDirection, growthDirection),
+ maxPaintOffset = layoutOffset + overlap;
+ for (layoutOffset0 = layoutOffset, precedingScrollExtent = 0; child != null;) {
+ sliverScrollOffset = scrollOffset <= 0 ? 0 : scrollOffset;
+ correctedCacheOrigin = Math.max(cacheOrigin, -sliverScrollOffset);
+ cacheExtentCorrection = cacheOrigin - correctedCacheOrigin;
+ child.layout$2$parentUsesSize(0, new G.SliverConstraints(_this._axisDirection, growthDirection, adjustedUserScrollDirection, sliverScrollOffset, precedingScrollExtent, maxPaintOffset - layoutOffset0, Math.max(0, remainingPaintExtent - layoutOffset0 + layoutOffset), crossAxisExtent, _this._crossAxisDirection, mainAxisExtent, correctedCacheOrigin, Math.max(0, remainingCacheExtent + cacheExtentCorrection)), true);
+ childLayoutGeometry = child._sliver$_geometry;
+ t1 = childLayoutGeometry.scrollOffsetCorrection;
+ if (t1 != null)
+ return t1;
+ effectiveLayoutOffset = layoutOffset0 + childLayoutGeometry.paintOrigin;
+ if (childLayoutGeometry.visible || scrollOffset > 0)
+ _this.updateChildLayoutOffset$3(child, effectiveLayoutOffset, growthDirection);
+ else
+ _this.updateChildLayoutOffset$3(child, -scrollOffset + layoutOffset, growthDirection);
+ maxPaintOffset = Math.max(effectiveLayoutOffset + childLayoutGeometry.paintExtent, maxPaintOffset);
+ t1 = childLayoutGeometry.scrollExtent;
+ scrollOffset -= t1;
+ precedingScrollExtent += t1;
+ layoutOffset0 += childLayoutGeometry.layoutExtent;
+ t1 = childLayoutGeometry.cacheExtent;
+ if (t1 !== 0) {
+ remainingCacheExtent -= t1 - cacheExtentCorrection;
+ cacheOrigin = Math.min(correctedCacheOrigin + t1, 0);
+ }
+ _this.updateOutOfBandData$2(growthDirection, childLayoutGeometry);
+ child = advance.call$1(child);
+ }
+ return 0;
+ },
+ describeApproximatePaintClip$1: function(child) {
+ var t2, overlapCorrection, $top, left,
+ t1 = this._size,
+ right = 0 + t1._dx,
+ bottom = 0 + t1._dy;
+ child.toString;
+ t1 = type$.SliverConstraints;
+ if (t1._as(K.RenderObject.prototype.get$constraints.call(child)).overlap !== 0) {
+ t2 = t1._as(K.RenderObject.prototype.get$constraints.call(child)).viewportMainAxisExtent;
+ t2.toString;
+ t2 = !isFinite(t2);
+ } else
+ t2 = true;
+ if (t2)
+ return new P.Rect(0, 0, right, bottom);
+ overlapCorrection = t1._as(K.RenderObject.prototype.get$constraints.call(child)).viewportMainAxisExtent - t1._as(K.RenderObject.prototype.get$constraints.call(child)).remainingPaintExtent + t1._as(K.RenderObject.prototype.get$constraints.call(child)).overlap;
+ switch (G.applyGrowthDirectionToAxisDirection(this._axisDirection, t1._as(K.RenderObject.prototype.get$constraints.call(child)).growthDirection)) {
+ case C.AxisDirection_2:
+ $top = 0 + overlapCorrection;
+ left = 0;
+ break;
+ case C.AxisDirection_0:
+ bottom -= overlapCorrection;
+ left = 0;
+ $top = 0;
+ break;
+ case C.AxisDirection_1:
+ left = 0 + overlapCorrection;
+ $top = 0;
+ break;
+ case C.AxisDirection_3:
+ right -= overlapCorrection;
+ left = 0;
+ $top = 0;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return new P.Rect(left, $top, right, bottom);
+ },
+ describeSemanticsClip$1: function(child) {
+ var t2, _this = this,
+ t1 = _this._calculatedCacheExtent;
+ if (t1 == null) {
+ t1 = _this._size;
+ return new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ }
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_1:
+ t2 = _this._size;
+ return new P.Rect(0, 0 - t1, 0 + t2._dx, 0 + t2._dy + t1);
+ case C.Axis_0:
+ t2 = _this._size;
+ return new P.Rect(0 - t1, 0, 0 + t2._dx + t1, 0 + t2._dy);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, _this = this;
+ if (_this.ContainerRenderObjectMixin__firstChild == null)
+ return;
+ if (_this.get$hasVisualOverflow() && _this._viewport$_clipBehavior !== C.Clip_0) {
+ t1 = _this.get$_needsCompositing();
+ t2 = _this._size;
+ _this._viewport$_clipRectLayer = context.pushClipRect$6$clipBehavior$oldLayer(t1, offset, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy), _this.get$_viewport$_paintContents(), _this._viewport$_clipBehavior, _this._viewport$_clipRectLayer);
+ } else {
+ _this._viewport$_clipRectLayer = null;
+ _this._viewport$_paintContents$2(context, offset);
+ }
+ },
+ _viewport$_paintContents$2: function(context, offset) {
+ var t1, t2, t3, t4, t5;
+ for (t1 = new P._SyncStarIterator(this.get$childrenInPaintOrder()._outerHelper()), t2 = offset._dx, t3 = offset._dy; t1.moveNext$0();) {
+ t4 = t1.get$current(t1);
+ if (t4._sliver$_geometry.visible) {
+ t5 = this.paintOffsetOf$1(t4);
+ context.paintChild$2(t4, new P.Offset(t2 + t5._dx, t3 + t5._dy));
+ }
+ }
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var sliverResult, t1, t2, transform, _this = this, _box_0 = {};
+ _box_0.crossAxisPosition = _box_0.mainAxisPosition = null;
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_1:
+ _box_0.mainAxisPosition = position._dy;
+ _box_0.crossAxisPosition = position._dx;
+ break;
+ case C.Axis_0:
+ _box_0.mainAxisPosition = position._dx;
+ _box_0.crossAxisPosition = position._dy;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ sliverResult = new G.SliverHitTestResult(result._path, result._transforms, result._localTransforms);
+ for (t1 = new P._SyncStarIterator(_this.get$childrenInHitTestOrder()._outerHelper()); t1.moveNext$0();) {
+ t2 = t1.get$current(t1);
+ if (!t2._sliver$_geometry.visible)
+ continue;
+ transform = new E.Matrix4(new Float64Array(16));
+ transform.setIdentity$0();
+ _this.applyPaintTransform$2(t2, transform);
+ if (result.addWithOutOfBandPosition$2$hitTest$paintTransform(new Q.RenderViewportBase_hitTestChildren_closure(_box_0, _this, t2, sliverResult), transform))
+ return true;
+ }
+ return false;
+ },
+ getOffsetToReveal$3$rect: function(target, alignment, rect) {
+ var t1, child, leadingScrollOffset, pivot, t2, t3, growthDirection, pivotExtent, rectLocal, targetMainAxisExtent, targetRect, extentOfPinnedSlivers, mainAxisExtent, targetOffset, offsetDifference, _this = this,
+ _s80_ = string$.x60null_c,
+ onlySlivers = target instanceof G.RenderSliver;
+ for (t1 = type$.RenderObject, child = target, leadingScrollOffset = 0, pivot = null; t2 = child._node$_parent, t2 !== _this; child = t2) {
+ t2.toString;
+ t1._as(t2);
+ if (child instanceof S.RenderBox)
+ pivot = child;
+ if (t2 instanceof G.RenderSliver) {
+ t3 = t2.childScrollOffset$1(child);
+ t3.toString;
+ leadingScrollOffset += t3;
+ } else {
+ leadingScrollOffset = 0;
+ onlySlivers = false;
+ }
+ }
+ if (pivot != null) {
+ t1 = pivot._node$_parent;
+ t1.toString;
+ type$.RenderSliver._as(t1);
+ growthDirection = type$.SliverConstraints._as(K.RenderObject.prototype.get$constraints.call(t1)).growthDirection;
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_0:
+ pivotExtent = pivot._size._dx;
+ break;
+ case C.Axis_1:
+ pivotExtent = pivot._size._dy;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ if (rect == null)
+ rect = target.get$paintBounds();
+ rectLocal = T.MatrixUtils_transformRect(target.getTransformTo$1(0, pivot), rect);
+ } else {
+ if (onlySlivers) {
+ type$.RenderSliver._as(target);
+ target.toString;
+ t1 = type$.SliverConstraints;
+ growthDirection = t1._as(K.RenderObject.prototype.get$constraints.call(target)).growthDirection;
+ pivotExtent = target._sliver$_geometry.scrollExtent;
+ if (rect == null)
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_0:
+ rect = new P.Rect(0, 0, 0 + pivotExtent, 0 + t1._as(K.RenderObject.prototype.get$constraints.call(target)).crossAxisExtent);
+ break;
+ case C.Axis_1:
+ rect = new P.Rect(0, 0, 0 + t1._as(K.RenderObject.prototype.get$constraints.call(target)).crossAxisExtent, 0 + target._sliver$_geometry.scrollExtent);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ } else {
+ t1 = _this._viewport$_offset._pixels;
+ t1.toString;
+ rect.toString;
+ return new Q.RevealedOffset(t1, rect);
+ }
+ rectLocal = rect;
+ }
+ type$.RenderSliver._as(child);
+ switch (G.applyGrowthDirectionToAxisDirection(_this._axisDirection, growthDirection)) {
+ case C.AxisDirection_0:
+ t1 = rectLocal.bottom;
+ leadingScrollOffset += pivotExtent - t1;
+ targetMainAxisExtent = t1 - rectLocal.top;
+ break;
+ case C.AxisDirection_1:
+ t1 = rectLocal.left;
+ leadingScrollOffset += t1;
+ targetMainAxisExtent = rectLocal.right - t1;
+ break;
+ case C.AxisDirection_2:
+ t1 = rectLocal.top;
+ leadingScrollOffset += t1;
+ targetMainAxisExtent = rectLocal.bottom - t1;
+ break;
+ case C.AxisDirection_3:
+ t1 = rectLocal.right;
+ leadingScrollOffset += pivotExtent - t1;
+ targetMainAxisExtent = t1 - rectLocal.left;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ child._sliver$_geometry.toString;
+ leadingScrollOffset = _this.scrollOffsetOf$2(child, leadingScrollOffset);
+ targetRect = T.MatrixUtils_transformRect(target.getTransformTo$1(0, _this), rect);
+ extentOfPinnedSlivers = _this.maxScrollObstructionExtentBefore$1(child);
+ switch (type$.SliverConstraints._as(K.RenderObject.prototype.get$constraints.call(child)).growthDirection) {
+ case C.GrowthDirection_0:
+ leadingScrollOffset -= extentOfPinnedSlivers;
+ break;
+ case C.GrowthDirection_1:
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_1:
+ leadingScrollOffset -= targetRect.bottom - targetRect.top;
+ break;
+ case C.Axis_0:
+ leadingScrollOffset -= targetRect.right - targetRect.left;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ t1 = _this._axisDirection;
+ switch (G.axisDirectionToAxis(t1)) {
+ case C.Axis_0:
+ mainAxisExtent = _this._size._dx - extentOfPinnedSlivers;
+ break;
+ case C.Axis_1:
+ mainAxisExtent = _this._size._dy - extentOfPinnedSlivers;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ targetOffset = leadingScrollOffset - (mainAxisExtent - targetMainAxisExtent) * alignment;
+ t2 = _this._viewport$_offset._pixels;
+ t2.toString;
+ offsetDifference = t2 - targetOffset;
+ switch (t1) {
+ case C.AxisDirection_2:
+ targetRect = targetRect.translate$2(0, 0, offsetDifference);
+ break;
+ case C.AxisDirection_1:
+ targetRect = targetRect.translate$2(0, offsetDifference, 0);
+ break;
+ case C.AxisDirection_0:
+ targetRect = targetRect.translate$2(0, 0, -offsetDifference);
+ break;
+ case C.AxisDirection_3:
+ targetRect = targetRect.translate$2(0, -offsetDifference, 0);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ return new Q.RevealedOffset(targetOffset, targetRect);
+ },
+ computeAbsolutePaintOffset$3: function(child, layoutOffset, growthDirection) {
+ switch (G.applyGrowthDirectionToAxisDirection(this._axisDirection, growthDirection)) {
+ case C.AxisDirection_0:
+ return new P.Offset(0, this._size._dy - (layoutOffset + child._sliver$_geometry.paintExtent));
+ case C.AxisDirection_1:
+ return new P.Offset(layoutOffset, 0);
+ case C.AxisDirection_2:
+ return new P.Offset(0, layoutOffset);
+ case C.AxisDirection_3:
+ return new P.Offset(this._size._dx - (layoutOffset + child._sliver$_geometry.paintExtent), 0);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ debugDescribeChildren$0: function() {
+ var count, t1, t2, _this = this,
+ children = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode),
+ child = _this.ContainerRenderObjectMixin__firstChild;
+ if (child == null)
+ return children;
+ count = _this.get$indexOfFirstChild();
+ for (t1 = H._instanceType(_this)._eval$1("ContainerRenderObjectMixin.1"); true;) {
+ child.toString;
+ children.push(new Y.DiagnosticableTreeNode(child, _this.labelForChild$1(count), true, true, null, null));
+ if (child === _this.ContainerRenderObjectMixin__lastChild)
+ break;
+ ++count;
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ return children;
+ },
+ showOnScreen$4$curve$descendant$duration$rect: function(curve, descendant, duration, rect) {
+ var t1 = this._viewport$_offset;
+ t1.physics.toString;
+ this.super$RenderObject$showOnScreen(curve, null, duration, Q.RenderViewportBase_showInViewport(curve, descendant, duration, t1, rect, this));
+ },
+ showOnScreen$0: function() {
+ return this.showOnScreen$4$curve$descendant$duration$rect(C.Cubic_JUR, null, C.Duration_0, null);
+ },
+ showOnScreen$3$curve$duration$rect: function(curve, duration, rect) {
+ return this.showOnScreen$4$curve$descendant$duration$rect(curve, null, duration, rect);
+ },
+ showOnScreen$1$rect: function(rect) {
+ return this.showOnScreen$4$curve$descendant$duration$rect(C.Cubic_JUR, null, C.Duration_0, rect);
+ },
+ $isRenderAbstractViewport: 1
+ };
+ Q.RenderViewportBase_visitChildrenForSemantics_closure.prototype = {
+ call$1: function(sliver) {
+ var t1 = sliver._sliver$_geometry;
+ return t1.visible || t1.cacheExtent > 0;
+ },
+ $signature: 215
+ };
+ Q.RenderViewportBase_hitTestChildren_closure.prototype = {
+ call$1: function(result) {
+ var _this = this,
+ t1 = _this.child,
+ t2 = _this._box_0,
+ t3 = _this.$this.computeChildMainAxisPosition$2(t1, t2.mainAxisPosition);
+ return t1.hitTest$3$crossAxisPosition$mainAxisPosition(_this.sliverResult, t2.crossAxisPosition, t3);
+ },
+ $signature: 81
+ };
+ Q.RenderShrinkWrappingViewport.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof G.SliverLogicalContainerParentData))
+ child.parentData = new G.SliverLogicalContainerParentData(null, null);
+ },
+ get$_viewport$_maxScrollExtent: function() {
+ return this.__RenderShrinkWrappingViewport__maxScrollExtent_isSet ? this.__RenderShrinkWrappingViewport__maxScrollExtent : H.throwExpression(H.LateError$fieldNI("_maxScrollExtent"));
+ },
+ get$_shrinkWrapExtent: function() {
+ return this.__RenderShrinkWrappingViewport__shrinkWrapExtent_isSet ? this.__RenderShrinkWrappingViewport__shrinkWrapExtent : H.throwExpression(H.LateError$fieldNI("_shrinkWrapExtent"));
+ },
+ performLayout$0: function() {
+ var mainAxisExtent, crossAxisExtent, t1, effectiveExtent, t2, t3, t4, t5, correction, didAcceptContentDimension, _this = this,
+ _s80_ = string$.x60null_c,
+ constraints = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this));
+ if (_this.ContainerRenderObjectMixin__firstChild == null) {
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_1:
+ _this._size = new P.Size(constraints.maxWidth, constraints.minHeight);
+ break;
+ case C.Axis_0:
+ _this._size = new P.Size(constraints.minWidth, constraints.maxHeight);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ _this._viewport$_offset.applyViewportDimension$1(0);
+ _this.__RenderShrinkWrappingViewport__maxScrollExtent_isSet = true;
+ _this.__RenderShrinkWrappingViewport__maxScrollExtent = 0;
+ _this.__RenderShrinkWrappingViewport__shrinkWrapExtent_isSet = true;
+ _this.__RenderShrinkWrappingViewport__shrinkWrapExtent = 0;
+ _this._viewport$_hasVisualOverflow = false;
+ _this._viewport$_offset.applyContentDimensions$2(0, 0);
+ return;
+ }
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_1:
+ mainAxisExtent = constraints.maxHeight;
+ crossAxisExtent = constraints.maxWidth;
+ break;
+ case C.Axis_0:
+ mainAxisExtent = constraints.maxWidth;
+ crossAxisExtent = constraints.maxHeight;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ t1 = _this.get$childAfter();
+ effectiveExtent = null;
+ do {
+ t2 = _this._viewport$_offset._pixels;
+ t2.toString;
+ _this.__RenderShrinkWrappingViewport__maxScrollExtent_isSet = true;
+ _this.__RenderShrinkWrappingViewport__maxScrollExtent = 0;
+ _this.__RenderShrinkWrappingViewport__shrinkWrapExtent_isSet = true;
+ _this.__RenderShrinkWrappingViewport__shrinkWrapExtent = 0;
+ _this._viewport$_hasVisualOverflow = false;
+ t3 = _this.ContainerRenderObjectMixin__firstChild;
+ t4 = Math.max(0, t2);
+ t2 = Math.min(0, t2);
+ t5 = _this._cacheExtent;
+ correction = _this.layoutChildSequence$11$advance$cacheOrigin$child$crossAxisExtent$growthDirection$layoutOffset$mainAxisExtent$overlap$remainingCacheExtent$remainingPaintExtent$scrollOffset(t1, -t5, t3, crossAxisExtent, C.GrowthDirection_0, 0, mainAxisExtent, t2, mainAxisExtent + 2 * t5, mainAxisExtent, t4);
+ if (correction !== 0)
+ _this._viewport$_offset.correctBy$1(correction);
+ else {
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_1:
+ effectiveExtent = J.clamp$2$n(_this.get$_shrinkWrapExtent(), constraints.minHeight, constraints.maxHeight);
+ break;
+ case C.Axis_0:
+ effectiveExtent = J.clamp$2$n(_this.get$_shrinkWrapExtent(), constraints.minWidth, constraints.maxWidth);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ _this._viewport$_offset.applyViewportDimension$1(effectiveExtent);
+ didAcceptContentDimension = _this._viewport$_offset.applyContentDimensions$2(0, Math.max(0, _this.get$_viewport$_maxScrollExtent() - effectiveExtent));
+ if (didAcceptContentDimension)
+ break;
+ }
+ } while (true);
+ switch (G.axisDirectionToAxis(_this._axisDirection)) {
+ case C.Axis_1:
+ _this._size = new P.Size(J.clamp$2$n(crossAxisExtent, constraints.minWidth, constraints.maxWidth), J.clamp$2$n(effectiveExtent, constraints.minHeight, constraints.maxHeight));
+ break;
+ case C.Axis_0:
+ _this._size = new P.Size(J.clamp$2$n(effectiveExtent, constraints.minWidth, constraints.maxWidth), J.clamp$2$n(crossAxisExtent, constraints.minHeight, constraints.maxHeight));
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ },
+ get$hasVisualOverflow: function() {
+ return this._viewport$_hasVisualOverflow;
+ },
+ updateOutOfBandData$2: function(growthDirection, childLayoutGeometry) {
+ var _this = this,
+ t1 = _this.get$_viewport$_maxScrollExtent();
+ _this.__RenderShrinkWrappingViewport__maxScrollExtent_isSet = true;
+ _this.__RenderShrinkWrappingViewport__maxScrollExtent = t1 + childLayoutGeometry.scrollExtent;
+ if (childLayoutGeometry.hasVisualOverflow)
+ _this._viewport$_hasVisualOverflow = true;
+ t1 = _this.get$_shrinkWrapExtent();
+ _this.__RenderShrinkWrappingViewport__shrinkWrapExtent_isSet = true;
+ _this.__RenderShrinkWrappingViewport__shrinkWrapExtent = t1 + childLayoutGeometry.maxPaintExtent;
+ },
+ updateChildLayoutOffset$3: function(child, layoutOffset, growthDirection) {
+ var t1 = child.parentData;
+ t1.toString;
+ type$.SliverLogicalParentData._as(t1).layoutOffset = layoutOffset;
+ },
+ paintOffsetOf$1: function(child) {
+ var t1 = child.parentData;
+ t1.toString;
+ t1 = type$.SliverLogicalParentData._as(t1).layoutOffset;
+ t1.toString;
+ return this.computeAbsolutePaintOffset$3(child, t1, C.GrowthDirection_0);
+ },
+ scrollOffsetOf$2: function(child, scrollOffsetWithinChild) {
+ var t1, scrollOffsetToChild, t2,
+ current = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1"), scrollOffsetToChild = 0; current !== child;) {
+ scrollOffsetToChild += current._sliver$_geometry.scrollExtent;
+ t2 = current.parentData;
+ t2.toString;
+ current = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ return scrollOffsetToChild + scrollOffsetWithinChild;
+ },
+ maxScrollObstructionExtentBefore$1: function(child) {
+ var t1, t2,
+ current = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("ContainerRenderObjectMixin.1"); current !== child;) {
+ current._sliver$_geometry.toString;
+ t2 = current.parentData;
+ t2.toString;
+ current = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ return 0;
+ },
+ applyPaintTransform$2: function(child, transform) {
+ var offset = this.paintOffsetOf$1(type$.RenderSliver._as(child));
+ transform.translate$2(0, offset._dx, offset._dy);
+ },
+ computeChildMainAxisPosition$2: function(child, parentMainAxisPosition) {
+ var t2,
+ t1 = child.parentData;
+ t1.toString;
+ type$.SliverLogicalParentData._as(t1);
+ t2 = type$.SliverConstraints;
+ switch (G.applyGrowthDirectionToAxisDirection(t2._as(K.RenderObject.prototype.get$constraints.call(child)).axisDirection, t2._as(K.RenderObject.prototype.get$constraints.call(child)).growthDirection)) {
+ case C.AxisDirection_2:
+ case C.AxisDirection_1:
+ t1 = t1.layoutOffset;
+ t1.toString;
+ return parentMainAxisPosition - t1;
+ case C.AxisDirection_0:
+ t2 = this._size._dy;
+ t1 = t1.layoutOffset;
+ t1.toString;
+ return t2 - parentMainAxisPosition - t1;
+ case C.AxisDirection_3:
+ t2 = this._size._dx;
+ t1 = t1.layoutOffset;
+ t1.toString;
+ return t2 - parentMainAxisPosition - t1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ get$indexOfFirstChild: function() {
+ return 0;
+ },
+ labelForChild$1: function(index) {
+ return "child " + index;
+ },
+ get$childrenInPaintOrder: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1, t2, child;
+ return function $async$get$childrenInPaintOrder($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ child = $async$self.ContainerRenderObjectMixin__firstChild;
+ t1 = H._instanceType($async$self)._eval$1("ContainerRenderObjectMixin.1");
+ case 2:
+ // for condition
+ if (!(child != null)) {
+ // goto after for
+ $async$goto = 3;
+ break;
+ }
+ $async$goto = 4;
+ return child;
+ case 4:
+ // after yield
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ // goto for condition
+ $async$goto = 2;
+ break;
+ case 3:
+ // after for
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.RenderSliver);
+ },
+ get$childrenInHitTestOrder: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1, t2, child;
+ return function $async$get$childrenInHitTestOrder($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ child = $async$self.ContainerRenderObjectMixin__lastChild;
+ t1 = H._instanceType($async$self)._eval$1("ContainerRenderObjectMixin.1");
+ case 2:
+ // for condition
+ if (!(child != null)) {
+ // goto after for
+ $async$goto = 3;
+ break;
+ }
+ $async$goto = 4;
+ return child;
+ case 4:
+ // after yield
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_previousSibling;
+ // goto for condition
+ $async$goto = 2;
+ break;
+ case 3:
+ // after for
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.RenderSliver);
+ }
+ };
+ Q._RenderViewportBase_RenderBox_ContainerRenderObjectMixin.prototype = {
+ attach$1: function(owner) {
+ var child, t1, t2;
+ this.super$RenderObject$attach(owner);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("_RenderViewportBase_RenderBox_ContainerRenderObjectMixin.0"); child != null;) {
+ child.attach$1(owner);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child, t1, t2;
+ this.super$AbstractNode$detach(0);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = H._instanceType(this)._eval$1("_RenderViewportBase_RenderBox_ContainerRenderObjectMixin.0"); child != null;) {
+ child.detach$0(0);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ N.ScrollDirection.prototype = {
+ toString$0: function(_) {
+ return this._viewport_offset$_name;
+ }
+ };
+ N.ViewportOffset.prototype = {
+ moveTo$3$curve$duration: function(_, to, curve, duration) {
+ var t1 = duration._duration === 0;
+ if (t1) {
+ this.jumpTo$1(to);
+ return P.Future_Future$value(null, type$.void);
+ } else
+ return this.animateTo$3$curve$duration(to, curve, duration);
+ },
+ toString$0: function(_) {
+ var _this = this,
+ description = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ _this.super$ScrollPosition$debugFillDescription(description);
+ description.push(H.getRuntimeType(_this.context).toString$0(0));
+ description.push(H.S(_this.physics));
+ description.push(H.S(_this._activity));
+ description.push(_this._userScrollDirection.toString$0(0));
+ return "#" + Y.shortHash(_this) + "(" + C.JSArray_methods.join$1(description, ", ") + ")";
+ },
+ debugFillDescription$1: function(description) {
+ var t1 = this._pixels;
+ if (t1 != null)
+ description.push("offset: " + C.JSNumber_methods.toStringAsFixed$1(t1, 1));
+ }
+ };
+ N._TaskEntry.prototype = {
+ run$0: function() {
+ P.Timeline_timeSync("Scheduled Task", new N._TaskEntry_run_closure(this), null);
+ }
+ };
+ N._TaskEntry_run_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1.completer.complete$1(0, t1.task.call$0());
+ },
+ $signature: 2
+ };
+ N._FrameCallbackEntry.prototype = {};
+ N.SchedulerPhase.prototype = {
+ toString$0: function(_) {
+ return this._name;
+ }
+ };
+ N.SchedulerBinding.prototype = {
+ addTimingsCallback$1: function(callback) {
+ var t1 = this.SchedulerBinding__timingsCallbacks;
+ t1.push(callback);
+ if (t1.length === 1) {
+ t1 = $.$get$window().platformDispatcher;
+ t1._onReportTimings = this.get$_executeTimingsCallbacks();
+ t1._onReportTimingsZone = $.Zone__current;
+ }
+ },
+ removeTimingsCallback$1: function(callback) {
+ var t1 = this.SchedulerBinding__timingsCallbacks;
+ C.JSArray_methods.remove$1(t1, callback);
+ if (t1.length === 0) {
+ t1 = $.$get$window().platformDispatcher;
+ t1._onReportTimings = null;
+ t1._onReportTimingsZone = $.Zone__current;
+ }
+ },
+ _executeTimingsCallbacks$1: function(timings) {
+ var callback, exception, stack, t2, _i, exception0, t3, t4,
+ t1 = this.SchedulerBinding__timingsCallbacks,
+ clonedCallbacks = P.List_List$from(t1, true, type$.void_Function_List_FrameTiming);
+ for (t2 = clonedCallbacks.length, _i = 0; _i < t2; ++_i) {
+ callback = clonedCallbacks[_i];
+ try {
+ if (C.JSArray_methods.contains$1(t1, callback))
+ callback.call$1(timings);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t3 = U.ErrorDescription$("while executing callbacks for FrameTiming");
+ t4 = $.$get$FlutterError_onError();
+ if (t4 != null)
+ t4.call$1(new U.FlutterErrorDetails(exception, stack, "Flutter framework", t3, null, false));
+ }
+ }
+ },
+ handleAppLifecycleStateChanged$1: function(state) {
+ this.SchedulerBinding__lifecycleState = state;
+ switch (state) {
+ case C.AppLifecycleState_0:
+ case C.AppLifecycleState_1:
+ this._setFramesEnabledState$1(true);
+ break;
+ case C.AppLifecycleState_2:
+ case C.AppLifecycleState_3:
+ this._setFramesEnabledState$1(false);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ scheduleTask$1$2: function(task, priority, $T) {
+ var t4, newCapacity, newQueue,
+ t1 = this.SchedulerBinding__taskQueue,
+ t2 = t1._priority_queue$_length,
+ t3 = new P._Future($.Zone__current, $T._eval$1("_Future<0>"));
+ ++t1._priority_queue$_modificationCount;
+ t4 = t1._priority_queue$_queue.length;
+ if (t2 === t4) {
+ newCapacity = t4 * 2 + 1;
+ if (newCapacity < 7)
+ newCapacity = 7;
+ newQueue = P.List_List$filled(newCapacity, null, false, t1.$ti._eval$1("1?"));
+ C.JSArray_methods.setRange$3(newQueue, 0, t1._priority_queue$_length, t1._priority_queue$_queue);
+ t1._priority_queue$_queue = newQueue;
+ }
+ t1._bubbleUp$2(new N._TaskEntry(task, priority._priority$_value, null, null, new P._AsyncCompleter(t3, $T._eval$1("_AsyncCompleter<0>")), $T._eval$1("_TaskEntry<0>")), t1._priority_queue$_length++);
+ if (t2 === 0 && this._lockCount <= 0)
+ this._ensureEventLoopCallback$0();
+ return t3;
+ },
+ _ensureEventLoopCallback$0: function() {
+ if (this.SchedulerBinding__hasRequestedAnEventLoopCallback)
+ return;
+ this.SchedulerBinding__hasRequestedAnEventLoopCallback = true;
+ P.Timer_Timer(C.Duration_0, this.get$_runTasks());
+ },
+ _runTasks$0: function() {
+ this.SchedulerBinding__hasRequestedAnEventLoopCallback = false;
+ if (this.handleEventLoopCallback$0())
+ this._ensureEventLoopCallback$0();
+ },
+ handleEventLoopCallback$0: function() {
+ var entry, exception, exceptionStack, last, exception0, t3, _this = this,
+ _s10_ = "No element",
+ t1 = _this.SchedulerBinding__taskQueue,
+ t2 = t1._priority_queue$_length === 0;
+ if (t2 || _this._lockCount > 0)
+ return false;
+ if (t2)
+ H.throwExpression(P.StateError$(_s10_));
+ entry = t1._elementAt$1(0);
+ t2 = entry.priority;
+ if (_this.SchedulerBinding_schedulingStrategy.call$2$priority$scheduler(t2, _this)) {
+ try {
+ if (t1._priority_queue$_length === 0)
+ H.throwExpression(P.StateError$(_s10_));
+ ++t1._priority_queue$_modificationCount;
+ t1._elementAt$1(0);
+ last = t1._removeLast$0();
+ if (t1._priority_queue$_length > 0)
+ t1._bubbleDown$2(last, 0);
+ entry.run$0();
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ exceptionStack = H.getTraceFromException(exception0);
+ t2 = U.ErrorDescription$("during a task callback");
+ t3 = $.$get$FlutterError_onError();
+ if (t3 != null)
+ t3.call$1(new U.FlutterErrorDetails(exception, exceptionStack, "scheduler library", t2, null, false));
+ }
+ return t1._priority_queue$_length !== 0;
+ }
+ return false;
+ },
+ scheduleFrameCallback$2$rescheduling: function(callback, rescheduling) {
+ var t1, _this = this;
+ _this.scheduleFrame$0();
+ t1 = ++_this.SchedulerBinding__nextFrameCallbackId;
+ _this.SchedulerBinding__transientCallbacks.$indexSet(0, t1, new N._FrameCallbackEntry(callback));
+ return _this.SchedulerBinding__nextFrameCallbackId;
+ },
+ get$endOfFrame: function() {
+ var _this = this;
+ if (_this.SchedulerBinding__nextFrameCompleter == null) {
+ if (_this.SchedulerBinding__schedulerPhase === C.SchedulerPhase_0)
+ _this.scheduleFrame$0();
+ _this.SchedulerBinding__nextFrameCompleter = new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void);
+ _this.SchedulerBinding__postFrameCallbacks.push(new N.SchedulerBinding_endOfFrame_closure(_this));
+ }
+ return _this.SchedulerBinding__nextFrameCompleter.future;
+ },
+ get$framesEnabled: function() {
+ return this.SchedulerBinding__framesEnabled;
+ },
+ _setFramesEnabledState$1: function(enabled) {
+ if (this.SchedulerBinding__framesEnabled === enabled)
+ return;
+ this.SchedulerBinding__framesEnabled = enabled;
+ if (enabled)
+ this.scheduleFrame$0();
+ },
+ ensureVisualUpdate$0: function() {
+ switch (this.SchedulerBinding__schedulerPhase) {
+ case C.SchedulerPhase_0:
+ case C.SchedulerPhase_4:
+ this.scheduleFrame$0();
+ return;
+ case C.SchedulerPhase_1:
+ case C.SchedulerPhase_2:
+ case C.SchedulerPhase_3:
+ return;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ scheduleFrame$0: function() {
+ var t1, _this = this;
+ if (!_this.SchedulerBinding__hasScheduledFrame)
+ t1 = !(N.SchedulerBinding.prototype.get$framesEnabled.call(_this) && _this.WidgetsBinding__readyToProduceFrames);
+ else
+ t1 = true;
+ if (t1)
+ return;
+ t1 = $.$get$window().platformDispatcher;
+ if (t1._onBeginFrame == null) {
+ t1._onBeginFrame = _this.get$_handleBeginFrame();
+ t1._onBeginFrameZone = $.Zone__current;
+ }
+ if (t1._onDrawFrame == null) {
+ t1._onDrawFrame = _this.get$_handleDrawFrame();
+ t1._onDrawFrameZone = $.Zone__current;
+ }
+ t1.scheduleFrame$0();
+ _this.SchedulerBinding__hasScheduledFrame = true;
+ },
+ scheduleForcedFrame$0: function() {
+ var _this = this;
+ if (!(N.SchedulerBinding.prototype.get$framesEnabled.call(_this) && _this.WidgetsBinding__readyToProduceFrames))
+ return;
+ if (_this.SchedulerBinding__hasScheduledFrame)
+ return;
+ $.$get$window().platformDispatcher.scheduleFrame$0();
+ _this.SchedulerBinding__hasScheduledFrame = true;
+ },
+ scheduleWarmUpFrame$0: function() {
+ var hadScheduledFrame, _this = this;
+ if (_this.SchedulerBinding__warmUpFrame || _this.SchedulerBinding__schedulerPhase !== C.SchedulerPhase_0)
+ return;
+ _this.SchedulerBinding__warmUpFrame = true;
+ P.Timeline_startSync("Warm-up frame", null, null);
+ hadScheduledFrame = _this.SchedulerBinding__hasScheduledFrame;
+ P.Timer_Timer(C.Duration_0, new N.SchedulerBinding_scheduleWarmUpFrame_closure(_this));
+ P.Timer_Timer(C.Duration_0, new N.SchedulerBinding_scheduleWarmUpFrame_closure0(_this, hadScheduledFrame));
+ _this.lockEvents$1(new N.SchedulerBinding_scheduleWarmUpFrame_closure1(_this));
+ },
+ resetEpoch$0: function() {
+ var _this = this;
+ _this.SchedulerBinding__epochStart = _this._adjustForEpoch$1(_this.SchedulerBinding__lastRawTimeStamp);
+ _this.SchedulerBinding__firstRawTimeStampInEpoch = null;
+ },
+ _adjustForEpoch$1: function(rawTimeStamp) {
+ var t1 = this.SchedulerBinding__firstRawTimeStampInEpoch,
+ rawDurationSinceEpoch = t1 == null ? C.Duration_0 : new P.Duration(rawTimeStamp._duration - t1._duration);
+ return P.Duration$(C.JSDouble_methods.round$0(rawDurationSinceEpoch._duration / $._timeDilation) + this.SchedulerBinding__epochStart._duration, 0, 0);
+ },
+ _handleBeginFrame$1: function(rawTimeStamp) {
+ if (this.SchedulerBinding__warmUpFrame) {
+ this.SchedulerBinding__ignoreNextEngineDrawFrame = true;
+ return;
+ }
+ this.handleBeginFrame$1(rawTimeStamp);
+ },
+ _handleDrawFrame$0: function() {
+ if (this.SchedulerBinding__ignoreNextEngineDrawFrame) {
+ this.SchedulerBinding__ignoreNextEngineDrawFrame = false;
+ return;
+ }
+ this.handleDrawFrame$0();
+ },
+ handleBeginFrame$1: function(rawTimeStamp) {
+ var callbacks, t1, _this = this;
+ P.Timeline_startSync("Frame", C.Map_9aZ6I, null);
+ if (_this.SchedulerBinding__firstRawTimeStampInEpoch == null)
+ _this.SchedulerBinding__firstRawTimeStampInEpoch = rawTimeStamp;
+ t1 = rawTimeStamp == null;
+ _this.SchedulerBinding__currentFrameTimeStamp = _this._adjustForEpoch$1(t1 ? _this.SchedulerBinding__lastRawTimeStamp : rawTimeStamp);
+ if (!t1)
+ _this.SchedulerBinding__lastRawTimeStamp = rawTimeStamp;
+ _this.SchedulerBinding__hasScheduledFrame = false;
+ try {
+ P.Timeline_startSync("Animate", C.Map_9aZ6I, null);
+ _this.SchedulerBinding__schedulerPhase = C.SchedulerPhase_1;
+ callbacks = _this.SchedulerBinding__transientCallbacks;
+ _this.SchedulerBinding__transientCallbacks = P.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$._FrameCallbackEntry);
+ J.forEach$1$ax(callbacks, new N.SchedulerBinding_handleBeginFrame_closure(_this));
+ _this.SchedulerBinding__removedIds.clear$0(0);
+ } finally {
+ _this.SchedulerBinding__schedulerPhase = C.SchedulerPhase_2;
+ }
+ },
+ handleDrawFrame$0: function() {
+ var callback, localPostFrameCallbacks, callback0, t1, t2, _i, t3, _this = this;
+ P.Timeline_finishSync();
+ try {
+ _this.SchedulerBinding__schedulerPhase = C.SchedulerPhase_3;
+ for (t1 = _this.SchedulerBinding__persistentCallbacks, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ callback = t1[_i];
+ t3 = _this.SchedulerBinding__currentFrameTimeStamp;
+ t3.toString;
+ _this._invokeFrameCallback$2(callback, t3);
+ }
+ _this.SchedulerBinding__schedulerPhase = C.SchedulerPhase_4;
+ t1 = _this.SchedulerBinding__postFrameCallbacks;
+ localPostFrameCallbacks = P.List_List$from(t1, true, type$.void_Function_Duration);
+ C.JSArray_methods.set$length(t1, 0);
+ for (t1 = localPostFrameCallbacks, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ callback0 = t1[_i];
+ t3 = _this.SchedulerBinding__currentFrameTimeStamp;
+ t3.toString;
+ _this._invokeFrameCallback$2(callback0, t3);
+ }
+ } finally {
+ _this.SchedulerBinding__schedulerPhase = C.SchedulerPhase_0;
+ P.Timeline_finishSync();
+ _this.SchedulerBinding__currentFrameTimeStamp = null;
+ }
+ },
+ _invokeFrameCallback$3: function(callback, timeStamp, callbackStack) {
+ var exception, exceptionStack, exception0, t1, t2;
+ try {
+ callback.call$1(timeStamp);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ exceptionStack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("during a scheduler callback");
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, exceptionStack, "scheduler library", t1, null, false));
+ }
+ },
+ _invokeFrameCallback$2: function(callback, timeStamp) {
+ return this._invokeFrameCallback$3(callback, timeStamp, null);
+ }
+ };
+ N.SchedulerBinding_endOfFrame_closure.prototype = {
+ call$1: function(timeStamp) {
+ var t1 = this.$this;
+ t1.SchedulerBinding__nextFrameCompleter.complete$0(0);
+ t1.SchedulerBinding__nextFrameCompleter = null;
+ },
+ $signature: 4
+ };
+ N.SchedulerBinding_scheduleWarmUpFrame_closure.prototype = {
+ call$0: function() {
+ this.$this.handleBeginFrame$1(null);
+ },
+ $signature: 0
+ };
+ N.SchedulerBinding_scheduleWarmUpFrame_closure0.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1.handleDrawFrame$0();
+ t1.resetEpoch$0();
+ t1.SchedulerBinding__warmUpFrame = false;
+ if (this.hadScheduledFrame)
+ t1.scheduleFrame$0();
+ },
+ $signature: 0
+ };
+ N.SchedulerBinding_scheduleWarmUpFrame_closure1.prototype = {
+ call$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this;
+ var $async$call$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait($async$self.$this.get$endOfFrame(), $async$call$0);
+ case 2:
+ // returning from await.
+ P.Timeline_finishSync();
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$0, $async$completer);
+ },
+ $signature: 29
+ };
+ N.SchedulerBinding_handleBeginFrame_closure.prototype = {
+ call$2: function(id, callbackEntry) {
+ var t2, t3,
+ t1 = this.$this;
+ if (!t1.SchedulerBinding__removedIds.contains$1(0, id)) {
+ t2 = callbackEntry.callback;
+ t3 = t1.SchedulerBinding__currentFrameTimeStamp;
+ t3.toString;
+ t1._invokeFrameCallback$3(t2, t3, callbackEntry.debugStack);
+ }
+ },
+ $signature: 217
+ };
+ V.Priority.prototype = {
+ $add: function(_, offset) {
+ if (Math.abs(offset) > 10000)
+ offset = 10000 * C.JSInt_methods.get$sign(offset);
+ return new V.Priority(this._priority$_value + offset);
+ },
+ $sub: function(_, offset) {
+ return this.$add(0, -offset);
+ }
+ };
+ M.Ticker.prototype = {
+ set$muted: function(_, value) {
+ var t1, _this = this;
+ if (value === _this._muted)
+ return;
+ _this._muted = value;
+ if (value)
+ _this.unscheduleTick$0();
+ else {
+ t1 = _this._ticker$_future != null && _this._animationId == null;
+ if (t1)
+ _this._animationId = $.SchedulerBinding__instance.scheduleFrameCallback$2$rescheduling(_this.get$_ticker$_tick(), false);
+ }
+ },
+ get$isTicking: function() {
+ if (this._ticker$_future == null)
+ return false;
+ if (this._muted)
+ return false;
+ var t1 = $.SchedulerBinding__instance;
+ t1.toString;
+ if (N.SchedulerBinding.prototype.get$framesEnabled.call(t1) && t1.WidgetsBinding__readyToProduceFrames)
+ return true;
+ if ($.SchedulerBinding__instance.SchedulerBinding__schedulerPhase !== C.SchedulerPhase_0)
+ return true;
+ return false;
+ },
+ start$0: function(_) {
+ var t1, t2, _this = this;
+ _this._ticker$_future = new M.TickerFuture(new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void));
+ if (!_this._muted)
+ t1 = _this._animationId == null;
+ else
+ t1 = false;
+ if (t1)
+ _this._animationId = $.SchedulerBinding__instance.scheduleFrameCallback$2$rescheduling(_this.get$_ticker$_tick(), false);
+ t1 = $.SchedulerBinding__instance;
+ t2 = t1.SchedulerBinding__schedulerPhase.index;
+ if (t2 > 0 && t2 < 4) {
+ t1 = t1.SchedulerBinding__currentFrameTimeStamp;
+ t1.toString;
+ _this._startTime = t1;
+ }
+ t1 = _this._ticker$_future;
+ t1.toString;
+ return t1;
+ },
+ stop$1$canceled: function(_, canceled) {
+ var _this = this,
+ t1 = _this._ticker$_future;
+ if (t1 == null)
+ return;
+ _this._startTime = _this._ticker$_future = null;
+ _this.unscheduleTick$0();
+ if (canceled)
+ t1._cancel$1(_this);
+ else
+ t1._ticker$_complete$0();
+ },
+ stop$0: function($receiver) {
+ return this.stop$1$canceled($receiver, false);
+ },
+ _ticker$_tick$1: function(timeStamp) {
+ var t1, _this = this;
+ _this._animationId = null;
+ t1 = _this._startTime;
+ if (t1 == null)
+ t1 = _this._startTime = timeStamp;
+ t1.toString;
+ _this._onTick.call$1(new P.Duration(timeStamp._duration - t1._duration));
+ if (!_this._muted && _this._ticker$_future != null && _this._animationId == null)
+ _this._animationId = $.SchedulerBinding__instance.scheduleFrameCallback$2$rescheduling(_this.get$_ticker$_tick(), true);
+ },
+ unscheduleTick$0: function() {
+ var t2,
+ t1 = this._animationId;
+ if (t1 != null) {
+ t2 = $.SchedulerBinding__instance;
+ t2.SchedulerBinding__transientCallbacks.remove$1(0, t1);
+ t2.SchedulerBinding__removedIds.add$1(0, t1);
+ this._animationId = null;
+ }
+ },
+ dispose$0: function(_) {
+ var _this = this,
+ t1 = _this._ticker$_future;
+ if (t1 != null) {
+ _this._ticker$_future = null;
+ _this.unscheduleTick$0();
+ t1._cancel$1(_this);
+ }
+ },
+ toString$1$debugIncludeStack: function(_, debugIncludeStack) {
+ return "Ticker()".charCodeAt(0) == 0 ? "Ticker()" : "Ticker()";
+ },
+ toString$0: function($receiver) {
+ return this.toString$1$debugIncludeStack($receiver, false);
+ }
+ };
+ M.TickerFuture.prototype = {
+ _ticker$_complete$0: function() {
+ this._completed = true;
+ this._primaryCompleter.complete$0(0);
+ var t1 = this._secondaryCompleter;
+ if (t1 != null)
+ t1.complete$0(0);
+ },
+ _cancel$1: function(ticker) {
+ var t1;
+ this._completed = false;
+ t1 = this._secondaryCompleter;
+ if (t1 != null)
+ t1.completeError$1(new M.TickerCanceled(ticker));
+ },
+ whenCompleteOrCancel$1: function(callback) {
+ var t2, t3, _this = this,
+ t1 = new M.TickerFuture_whenCompleteOrCancel_thunk(callback);
+ if (_this._secondaryCompleter == null) {
+ t2 = _this._secondaryCompleter = new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void);
+ t3 = _this._completed;
+ if (t3 != null)
+ if (t3)
+ t2.complete$0(0);
+ else
+ t2.completeError$1(C.TickerCanceled_null);
+ }
+ _this._secondaryCompleter.future.then$1$2$onError(0, t1, t1, type$.void);
+ },
+ then$1$2$onError: function(_, onValue, onError, $R) {
+ return this._primaryCompleter.future.then$1$2$onError(0, onValue, onError, $R);
+ },
+ then$1$1: function($receiver, onValue, $R) {
+ return this.then$1$2$onError($receiver, onValue, null, $R);
+ },
+ whenComplete$1: function(action) {
+ return this._primaryCompleter.future.whenComplete$1(action);
+ },
+ toString$0: function(_) {
+ var t1 = "#" + Y.shortHash(this) + "(",
+ t2 = this._completed;
+ if (t2 == null)
+ t2 = "active";
+ else
+ t2 = t2 ? "complete" : "canceled";
+ return t1 + t2 + ")";
+ },
+ $isFuture: 1
+ };
+ M.TickerFuture_whenCompleteOrCancel_thunk.prototype = {
+ call$1: function(value) {
+ this.callback.call$0();
+ },
+ $signature: 8
+ };
+ M.TickerCanceled.prototype = {
+ toString$0: function(_) {
+ var t1 = this.ticker;
+ if (t1 != null)
+ return "This ticker was canceled: " + t1.toString$0(0);
+ return 'The ticker was canceled before the "orCancel" property was first used.';
+ },
+ $isException: 1
+ };
+ N.SemanticsBinding.prototype = {
+ get$_accessibilityFeatures: function() {
+ return this.SemanticsBinding___SemanticsBinding__accessibilityFeatures_isSet ? this.SemanticsBinding___SemanticsBinding__accessibilityFeatures : H.throwExpression(H.LateError$fieldNI("_accessibilityFeatures"));
+ }
+ };
+ A.SemanticsTag.prototype = {
+ toString$0: function(_) {
+ return "SemanticsTag(" + this.name + ")";
+ },
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ A.SemanticsData.prototype = {
+ toStringShort$0: function() {
+ return "SemanticsData";
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (other instanceof A.SemanticsData)
+ if (other.flags === _this.flags)
+ if (other.actions === _this.actions)
+ if (other.label == _this.label)
+ if (other.value == _this.value)
+ if (other.increasedValue == _this.increasedValue)
+ if (other.decreasedValue == _this.decreasedValue)
+ if (other.hint == _this.hint)
+ if (other.textDirection == _this.textDirection)
+ if (J.$eq$(other.rect, _this.rect))
+ if (S.setEquals(other.tags, _this.tags))
+ if (other.scrollChildCount == _this.scrollChildCount)
+ if (other.scrollIndex == _this.scrollIndex)
+ if (J.$eq$(other.textSelection, _this.textSelection))
+ if (other.scrollPosition == _this.scrollPosition)
+ if (other.scrollExtentMax == _this.scrollExtentMax)
+ if (other.scrollExtentMin == _this.scrollExtentMin)
+ if (other.platformViewId == _this.platformViewId)
+ t1 = other.currentValueLength == _this.currentValueLength && J.$eq$(other.transform, _this.transform) && other.elevation == _this.elevation && other.thickness === _this.thickness && A.SemanticsData__sortedListsEqual(other.customSemanticsActionIds, _this.customSemanticsActionIds);
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(P.hashValues(_this.flags, _this.actions, _this.label, _this.value, _this.increasedValue, _this.decreasedValue, _this.hint, _this.textDirection, _this.rect, _this.tags, _this.textSelection, _this.scrollChildCount, _this.scrollIndex, _this.scrollPosition, _this.scrollExtentMax, _this.scrollExtentMin, _this.platformViewId, _this.maxValueLength, _this.currentValueLength, _this.transform), _this.elevation, _this.thickness, P.hashList(_this.customSemanticsActionIds), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ A._SemanticsDiagnosticableNode.prototype = {
+ getChildren$0: function() {
+ return this.value.debugDescribeChildren$1$childOrder(this.childOrder);
+ }
+ };
+ A.SemanticsProperties.prototype = {
+ toStringShort$0: function() {
+ return "SemanticsProperties";
+ }
+ };
+ A.SemanticsNode.prototype = {
+ set$transform: function(_, value) {
+ if (!T.MatrixUtils_matrixEquals(this._semantics$_transform, value)) {
+ this._semantics$_transform = value == null || T.MatrixUtils_isIdentity(value) ? null : value;
+ this._semantics$_markDirty$0();
+ }
+ },
+ set$rect: function(_, value) {
+ if (!J.$eq$(this._semantics$_rect, value)) {
+ this._semantics$_rect = value;
+ this._semantics$_markDirty$0();
+ }
+ },
+ set$isMergedIntoParent: function(value) {
+ if (this._isMergedIntoParent === value)
+ return;
+ this._isMergedIntoParent = value;
+ this._semantics$_markDirty$0();
+ },
+ _replaceChildren$1: function(newChildren) {
+ var t2, _i, t3, sawChange, child, t4, i, _this = this,
+ t1 = _this._semantics$_children;
+ if (t1 != null)
+ for (t2 = t1.length, _i = 0; _i < t2; ++_i)
+ t1[_i]._dead = true;
+ for (t1 = newChildren.length, _i = 0; _i < t1; ++_i)
+ newChildren[_i]._dead = false;
+ t1 = _this._semantics$_children;
+ if (t1 != null)
+ for (t2 = t1.length, t3 = type$.nullable_SemanticsNode, sawChange = false, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ child = t1[_i];
+ if (child._dead) {
+ if (t3._as(B.AbstractNode.prototype.get$parent.call(child, child)) === _this) {
+ child._node$_parent = null;
+ if (_this._node$_owner != null)
+ child.detach$0(0);
+ }
+ sawChange = true;
+ }
+ }
+ else
+ sawChange = false;
+ for (t1 = newChildren.length, t2 = type$.nullable_SemanticsNode, _i = 0; _i < newChildren.length; newChildren.length === t1 || (0, H.throwConcurrentModificationError)(newChildren), ++_i) {
+ child = newChildren[_i];
+ child.toString;
+ if (t2._as(B.AbstractNode.prototype.get$parent.call(child, child)) !== _this) {
+ if (t2._as(B.AbstractNode.prototype.get$parent.call(child, child)) != null) {
+ t3 = t2._as(B.AbstractNode.prototype.get$parent.call(child, child));
+ if (t3 != null) {
+ child._node$_parent = null;
+ if (t3._node$_owner != null)
+ child.detach$0(0);
+ }
+ }
+ child._node$_parent = _this;
+ t3 = _this._node$_owner;
+ if (t3 != null)
+ child.attach$1(t3);
+ t3 = child._node$_depth;
+ t4 = _this._node$_depth;
+ if (t3 <= t4) {
+ child._node$_depth = t4 + 1;
+ child.redepthChildren$0();
+ }
+ sawChange = true;
+ }
+ }
+ if (!sawChange && _this._semantics$_children != null)
+ for (t1 = _this._semantics$_children, t2 = t1.length, i = 0; i < t2; ++i)
+ if (t1[i].id !== newChildren[i].id) {
+ sawChange = true;
+ break;
+ }
+ _this._semantics$_children = newChildren;
+ if (sawChange)
+ _this._semantics$_markDirty$0();
+ },
+ get$hasChildren: function() {
+ var t1 = this._semantics$_children;
+ t1 = t1 == null ? null : t1.length !== 0;
+ return t1 === true;
+ },
+ _visitDescendants$1: function(visitor) {
+ var t2, _i, child,
+ t1 = this._semantics$_children;
+ if (t1 != null)
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ child = t1[_i];
+ if (!visitor.call$1(child) || !child._visitDescendants$1(visitor))
+ return false;
+ }
+ return true;
+ },
+ redepthChildren$0: function() {
+ var t1 = this._semantics$_children;
+ if (t1 != null)
+ C.JSArray_methods.forEach$1(t1, this.get$redepthChild());
+ },
+ attach$1: function(owner) {
+ var t1, t2, _i, _this = this;
+ _this.super$AbstractNode$attach(owner);
+ owner._nodes.$indexSet(0, _this.id, _this);
+ owner._detachedNodes.remove$1(0, _this);
+ if (_this._semantics$_dirty) {
+ _this._semantics$_dirty = false;
+ _this._semantics$_markDirty$0();
+ }
+ t1 = _this._semantics$_children;
+ if (t1 != null)
+ for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t2, t3, _i, child, _this = this,
+ t1 = type$.nullable_SemanticsOwner;
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this))._nodes.remove$1(0, _this.id);
+ t1._as(B.AbstractNode.prototype.get$owner.call(_this))._detachedNodes.add$1(0, _this);
+ _this.super$AbstractNode$detach(0);
+ t1 = _this._semantics$_children;
+ if (t1 != null)
+ for (t2 = t1.length, t3 = type$.nullable_SemanticsNode, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ child = t1[_i];
+ child.toString;
+ if (t3._as(B.AbstractNode.prototype.get$parent.call(child, child)) === _this)
+ child.detach$0(0);
+ }
+ _this._semantics$_markDirty$0();
+ },
+ _semantics$_markDirty$0: function() {
+ var _this = this;
+ if (_this._semantics$_dirty)
+ return;
+ _this._semantics$_dirty = true;
+ if (_this._node$_owner != null)
+ type$.nullable_SemanticsOwner._as(B.AbstractNode.prototype.get$owner.call(_this))._semantics$_dirtyNodes.add$1(0, _this);
+ },
+ isTagged$1: function(tag) {
+ var t1 = this.tags;
+ return t1 != null && t1.contains$1(0, tag);
+ },
+ updateWith$2$childrenInInversePaintOrder$config: function(_, childrenInInversePaintOrder, config) {
+ var t1, _this = this;
+ if (config == null)
+ config = $.$get$SemanticsNode__kEmptyConfig();
+ if (_this._semantics$_label == config._semantics$_label)
+ if (_this._semantics$_hint == config._semantics$_hint)
+ if (_this._semantics$_elevation == config._semantics$_elevation)
+ if (_this._thickness === config._thickness)
+ if (_this._decreasedValue == config._decreasedValue)
+ if (_this._semantics$_value == config._semantics$_value)
+ if (_this._increasedValue == config._increasedValue)
+ if (_this._flags === config._flags)
+ if (_this._semantics$_textDirection == config._semantics$_textDirection)
+ if (_this._semantics$_sortKey == config._semantics$_sortKey)
+ if (J.$eq$(_this._textSelection, config._textSelection))
+ if (_this._scrollPosition == config._scrollPosition)
+ if (_this._scrollExtentMax == config._scrollExtentMax)
+ if (_this._scrollExtentMin == config._scrollExtentMin)
+ if (_this._actionsAsBits === config._actionsAsBits)
+ if (_this.indexInParent == config._indexInParent)
+ if (_this._platformViewId == config._platformViewId)
+ t1 = _this._semantics$_currentValueLength != config._semantics$_currentValueLength || _this._mergeAllDescendantsIntoThisNode !== config._isMergingSemanticsOfDescendants;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ if (t1)
+ _this._semantics$_markDirty$0();
+ _this._semantics$_label = config._semantics$_label;
+ _this._decreasedValue = config._decreasedValue;
+ _this._semantics$_value = config._semantics$_value;
+ _this._increasedValue = config._increasedValue;
+ _this._semantics$_hint = config._semantics$_hint;
+ _this._semantics$_hintOverrides = config._semantics$_hintOverrides;
+ _this._semantics$_elevation = config._semantics$_elevation;
+ _this._thickness = config._thickness;
+ _this._flags = config._flags;
+ _this._semantics$_textDirection = config._semantics$_textDirection;
+ _this._semantics$_sortKey = config._semantics$_sortKey;
+ _this._actions = P.LinkedHashMap_LinkedHashMap$from(config._actions, type$.SemanticsAction, type$.void_Function_dynamic);
+ _this._customSemanticsActions = P.LinkedHashMap_LinkedHashMap$from(config._customSemanticsActions, type$.CustomSemanticsAction, type$.void_Function);
+ _this._actionsAsBits = config._actionsAsBits;
+ _this._textSelection = config._textSelection;
+ _this._scrollPosition = config._scrollPosition;
+ _this._scrollExtentMax = config._scrollExtentMax;
+ _this._scrollExtentMin = config._scrollExtentMin;
+ _this._mergeAllDescendantsIntoThisNode = config._isMergingSemanticsOfDescendants;
+ _this._scrollChildCount = config._scrollChildCount;
+ _this._scrollIndex = config._scrollIndex;
+ _this.indexInParent = config._indexInParent;
+ _this._platformViewId = config._platformViewId;
+ _this._maxValueLength = config._maxValueLength;
+ _this._semantics$_currentValueLength = config._semantics$_currentValueLength;
+ _this._replaceChildren$1(childrenInInversePaintOrder == null ? C.List_empty7 : childrenInInversePaintOrder);
+ },
+ updateWith$1$config: function($receiver, config) {
+ return this.updateWith$2$childrenInInversePaintOrder$config($receiver, null, config);
+ },
+ getSemanticsData$0: function() {
+ var t1, elevation, customSemanticsActionIds, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, _this = this, _box_0 = {};
+ _box_0.flags = _this._flags;
+ _box_0.actions = _this._actionsAsBits;
+ _box_0.label = _this._semantics$_label;
+ _box_0.hint = _this._semantics$_hint;
+ _box_0.value = _this._semantics$_value;
+ _box_0.increasedValue = _this._increasedValue;
+ _box_0.decreasedValue = _this._decreasedValue;
+ _box_0.textDirection = _this._semantics$_textDirection;
+ t1 = _this.tags;
+ _box_0.mergedTags = t1 == null ? null : P.LinkedHashSet_LinkedHashSet$from(t1, type$.SemanticsTag);
+ _box_0.textSelection = _this._textSelection;
+ _box_0.scrollChildCount = _this._scrollChildCount;
+ _box_0.scrollIndex = _this._scrollIndex;
+ _box_0.scrollPosition = _this._scrollPosition;
+ _box_0.scrollExtentMax = _this._scrollExtentMax;
+ _box_0.scrollExtentMin = _this._scrollExtentMin;
+ _box_0.platformViewId = _this._platformViewId;
+ _box_0.maxValueLength = _this._maxValueLength;
+ _box_0.currentValueLength = _this._semantics$_currentValueLength;
+ elevation = _this._semantics$_elevation;
+ _box_0.thickness = _this._thickness;
+ customSemanticsActionIds = P.LinkedHashSet_LinkedHashSet$_empty(type$.int);
+ for (t1 = _this._customSemanticsActions, t1 = t1.get$keys(t1), t1 = t1.get$iterator(t1); t1.moveNext$0();)
+ customSemanticsActionIds.add$1(0, A.CustomSemanticsAction_getIdentifier(t1.get$current(t1)));
+ _this._semantics$_hintOverrides != null;
+ if (_this._mergeAllDescendantsIntoThisNode)
+ _this._visitDescendants$1(new A.SemanticsNode_getSemanticsData_closure(_box_0, _this, customSemanticsActionIds));
+ t1 = _box_0.flags;
+ t2 = _box_0.actions;
+ t3 = _box_0.label;
+ t4 = _box_0.value;
+ t5 = _box_0.increasedValue;
+ t6 = _box_0.decreasedValue;
+ t7 = _box_0.hint;
+ t8 = _box_0.textDirection;
+ t9 = _this._semantics$_rect;
+ t10 = _this._semantics$_transform;
+ t11 = _box_0.thickness;
+ t12 = _box_0.mergedTags;
+ t13 = _box_0.textSelection;
+ t14 = _box_0.scrollChildCount;
+ t15 = _box_0.scrollIndex;
+ t16 = _box_0.scrollPosition;
+ t17 = _box_0.scrollExtentMax;
+ t18 = _box_0.scrollExtentMin;
+ t19 = _box_0.platformViewId;
+ t20 = _box_0.maxValueLength;
+ t21 = _box_0.currentValueLength;
+ t22 = P.List_List$of(customSemanticsActionIds, true, customSemanticsActionIds.$ti._eval$1("SetMixin.E"));
+ C.JSArray_methods.sort$0(t22);
+ return new A.SemanticsData(t1, t2, t3, t4, t5, t6, t7, t8, t13, t14, t15, t16, t17, t18, t19, t20, t21, t9, t12, t10, elevation, t11, t22);
+ },
+ _addToUpdate$2: function(builder, customSemanticsActionIdsUpdate) {
+ var childrenInTraversalOrder, childrenInHitTestOrder, childCount, sortedChildren, i, t1, t2, customSemanticsActionIds, t3, t4, t5, t6, t7, t8, t9, _this = this,
+ data = _this.getSemanticsData$0();
+ if (!_this.get$hasChildren() || _this._mergeAllDescendantsIntoThisNode) {
+ childrenInTraversalOrder = $.$get$SemanticsNode__kEmptyChildList();
+ childrenInHitTestOrder = childrenInTraversalOrder;
+ } else {
+ childCount = _this._semantics$_children.length;
+ sortedChildren = _this._childrenInTraversalOrder$0();
+ childrenInTraversalOrder = new Int32Array(childCount);
+ for (i = 0; i < childCount; ++i)
+ childrenInTraversalOrder[i] = sortedChildren[i].id;
+ childrenInHitTestOrder = new Int32Array(childCount);
+ for (i = childCount - 1, t1 = _this._semantics$_children; i >= 0; --i)
+ childrenInHitTestOrder[i] = t1[childCount - i - 1].id;
+ }
+ t1 = data.customSemanticsActionIds;
+ t2 = t1.length;
+ if (t2 !== 0) {
+ customSemanticsActionIds = new Int32Array(t2);
+ for (i = 0; i < t1.length; ++i) {
+ t2 = t1[i];
+ customSemanticsActionIds[i] = t2;
+ customSemanticsActionIdsUpdate.add$1(0, t2);
+ }
+ } else
+ customSemanticsActionIds = null;
+ t1 = data.textSelection;
+ t2 = t1 != null;
+ t3 = t2 ? t1.baseOffset : -1;
+ t1 = t2 ? t1.extentOffset : -1;
+ t2 = data.scrollChildCount;
+ if (t2 == null)
+ t2 = 0;
+ t4 = data.scrollIndex;
+ if (t4 == null)
+ t4 = 0;
+ t5 = data.scrollPosition;
+ if (t5 == null)
+ t5 = 0 / 0;
+ t6 = data.scrollExtentMax;
+ if (t6 == null)
+ t6 = 0 / 0;
+ t7 = data.scrollExtentMin;
+ if (t7 == null)
+ t7 = 0 / 0;
+ t8 = data.transform;
+ t8 = t8 == null ? null : t8._m4storage;
+ if (t8 == null)
+ t8 = $.$get$SemanticsNode__kIdentityTransform();
+ t9 = customSemanticsActionIds == null ? $.$get$SemanticsNode__kEmptyCustomSemanticsActionsList() : customSemanticsActionIds;
+ t8.length;
+ builder._nodeUpdates.push(new H.SemanticsNodeUpdate(_this.id, data.flags, data.actions, t3, t1, t2, t4, t5, t6, t7, data.rect, data.label, data.hint, data.value, data.increasedValue, data.decreasedValue, data.textDirection, H.toMatrix32(t8), childrenInTraversalOrder, childrenInHitTestOrder, t9));
+ _this._semantics$_dirty = false;
+ },
+ _childrenInTraversalOrder$0: function() {
+ var t2, childrenInDefaultOrder, everythingSorted, sortNodes, lastSortKey, position, child, sortKey, isCompatibleWithPreviousSortKey, _this = this,
+ inheritedTextDirection = _this._semantics$_textDirection,
+ t1 = type$.nullable_SemanticsNode,
+ ancestor = t1._as(B.AbstractNode.prototype.get$parent.call(_this, _this));
+ while (true) {
+ t2 = inheritedTextDirection == null;
+ if (!(t2 && ancestor != null))
+ break;
+ inheritedTextDirection = ancestor._semantics$_textDirection;
+ ancestor = t1._as(B.AbstractNode.prototype.get$parent.call(ancestor, ancestor));
+ }
+ childrenInDefaultOrder = _this._semantics$_children;
+ if (!t2) {
+ childrenInDefaultOrder.toString;
+ childrenInDefaultOrder = A._childrenInDefaultOrder(childrenInDefaultOrder, inheritedTextDirection);
+ }
+ t1 = type$.JSArray__TraversalSortNode;
+ everythingSorted = H.setRuntimeTypeInfo([], t1);
+ sortNodes = H.setRuntimeTypeInfo([], t1);
+ for (lastSortKey = null, position = 0; position < childrenInDefaultOrder.length; ++position) {
+ child = childrenInDefaultOrder[position];
+ sortKey = child._semantics$_sortKey;
+ lastSortKey = position > 0 ? childrenInDefaultOrder[position - 1]._semantics$_sortKey : null;
+ if (position !== 0)
+ if (J.get$runtimeType$(sortKey) === J.get$runtimeType$(lastSortKey)) {
+ if (sortKey != null)
+ lastSortKey.toString;
+ isCompatibleWithPreviousSortKey = true;
+ } else
+ isCompatibleWithPreviousSortKey = false;
+ else
+ isCompatibleWithPreviousSortKey = true;
+ if (!isCompatibleWithPreviousSortKey && sortNodes.length !== 0) {
+ if (lastSortKey != null) {
+ if (!!sortNodes.immutable$list)
+ H.throwExpression(P.UnsupportedError$("sort"));
+ t1 = sortNodes.length - 1;
+ if (t1 - 0 <= 32)
+ H.Sort__insertionSort(sortNodes, 0, t1, J._interceptors_JSArray__compareAny$closure());
+ else
+ H.Sort__dualPivotQuicksort(sortNodes, 0, t1, J._interceptors_JSArray__compareAny$closure());
+ }
+ C.JSArray_methods.addAll$1(everythingSorted, sortNodes);
+ C.JSArray_methods.set$length(sortNodes, 0);
+ }
+ sortNodes.push(new A._TraversalSortNode(child, sortKey, position));
+ }
+ if (lastSortKey != null)
+ C.JSArray_methods.sort$0(sortNodes);
+ C.JSArray_methods.addAll$1(everythingSorted, sortNodes);
+ t1 = type$.MappedListIterable__TraversalSortNode_SemanticsNode;
+ return P.List_List$of(new H.MappedListIterable(everythingSorted, new A.SemanticsNode__childrenInTraversalOrder_closure(), t1), true, t1._eval$1("ListIterable.E"));
+ },
+ sendEvent$1: function($event) {
+ if (this._node$_owner == null)
+ return;
+ C.BasicMessageChannel_8hp.send$1(0, $event.toMap$1$nodeId(this.id));
+ },
+ toStringShort$0: function() {
+ return "SemanticsNode#" + this.id;
+ },
+ toDiagnosticsNode$3$childOrder$name$style: function(childOrder, $name, style) {
+ return new A._SemanticsDiagnosticableNode(childOrder, this, $name, true, true, null, style);
+ },
+ toDiagnosticsNode$1$style: function(style) {
+ return this.toDiagnosticsNode$3$childOrder$name$style(C.DebugSemanticsDumpOrder_1, null, style);
+ },
+ toDiagnosticsNode$0: function() {
+ return this.toDiagnosticsNode$3$childOrder$name$style(C.DebugSemanticsDumpOrder_1, null, C.DiagnosticsTreeStyle_1);
+ },
+ debugDescribeChildren$1$childOrder: function(childOrder) {
+ var t2,
+ t1 = this.debugListChildrenInOrder$1(childOrder);
+ t1.toString;
+ t2 = H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,DiagnosticsNode>");
+ return P.List_List$of(new H.MappedListIterable(t1, new A.SemanticsNode_debugDescribeChildren_closure(childOrder), t2), true, t2._eval$1("ListIterable.E"));
+ },
+ debugDescribeChildren$0: function() {
+ return this.debugDescribeChildren$1$childOrder(C.DebugSemanticsDumpOrder_0);
+ },
+ debugListChildrenInOrder$1: function(childOrder) {
+ var t1 = this._semantics$_children;
+ if (t1 == null)
+ return C.List_empty7;
+ switch (childOrder) {
+ case C.DebugSemanticsDumpOrder_0:
+ return t1;
+ case C.DebugSemanticsDumpOrder_1:
+ return this._childrenInTraversalOrder$0();
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $isDiagnosticableTree: 1
+ };
+ A.SemanticsNode_getSemanticsData_closure.prototype = {
+ call$1: function(node) {
+ var t2, t3,
+ t1 = this._box_0;
+ t1.flags = t1.flags | node._flags;
+ t1.actions = t1.actions | node._actionsAsBits;
+ if (t1.textDirection == null)
+ t1.textDirection = node._semantics$_textDirection;
+ if (t1.textSelection == null)
+ t1.textSelection = node._textSelection;
+ if (t1.scrollChildCount == null)
+ t1.scrollChildCount = node._scrollChildCount;
+ if (t1.scrollIndex == null)
+ t1.scrollIndex = node._scrollIndex;
+ if (t1.scrollPosition == null)
+ t1.scrollPosition = node._scrollPosition;
+ if (t1.scrollExtentMax == null)
+ t1.scrollExtentMax = node._scrollExtentMax;
+ if (t1.scrollExtentMin == null)
+ t1.scrollExtentMin = node._scrollExtentMin;
+ if (t1.platformViewId == null)
+ t1.platformViewId = node._platformViewId;
+ t1.maxValueLength = node._maxValueLength;
+ if (t1.currentValueLength == null)
+ t1.currentValueLength = node._semantics$_currentValueLength;
+ t2 = t1.value;
+ if (t2 === "" || t2 == null)
+ t1.value = node._semantics$_value;
+ t2 = t1.increasedValue;
+ if (t2 === "" || t2 == null)
+ t1.increasedValue = node._increasedValue;
+ t2 = t1.decreasedValue;
+ if (t2 === "" || t2 == null)
+ t1.decreasedValue = node._decreasedValue;
+ t2 = node.tags;
+ if (t2 != null) {
+ t3 = t1.mergedTags;
+ (t3 == null ? t1.mergedTags = P.LinkedHashSet_LinkedHashSet$_empty(type$.SemanticsTag) : t3).addAll$1(0, t2);
+ }
+ for (t2 = this.$this._customSemanticsActions, t2 = t2.get$keys(t2), t2 = t2.get$iterator(t2), t3 = this.customSemanticsActionIds; t2.moveNext$0();)
+ t3.add$1(0, A.CustomSemanticsAction_getIdentifier(t2.get$current(t2)));
+ node._semantics$_hintOverrides != null;
+ t2 = t1.label;
+ t3 = t1.textDirection;
+ t1.label = A._concatStrings(node._semantics$_label, node._semantics$_textDirection, t2, t3);
+ t3 = t1.hint;
+ t2 = t1.textDirection;
+ t1.hint = A._concatStrings(node._semantics$_hint, node._semantics$_textDirection, t3, t2);
+ t1.thickness = Math.max(t1.thickness, node._thickness + node._semantics$_elevation);
+ return true;
+ },
+ $signature: 65
+ };
+ A.SemanticsNode__childrenInTraversalOrder_closure.prototype = {
+ call$1: function(sortNode) {
+ return sortNode.node;
+ },
+ $signature: 219
+ };
+ A.SemanticsNode_debugDescribeChildren_closure.prototype = {
+ call$1: function(node) {
+ node.toString;
+ return A._SemanticsDiagnosticableNode$(this.childOrder, null, C.DiagnosticsTreeStyle_1, node);
+ },
+ $signature: 220
+ };
+ A._BoxEdge.prototype = {
+ compareTo$1: function(_, other) {
+ return C.JSNumber_methods.toInt$0(J.get$sign$in(this.offset - other.offset));
+ },
+ $isComparable: 1
+ };
+ A._SemanticsSortGroup.prototype = {
+ compareTo$1: function(_, other) {
+ return C.JSNumber_methods.toInt$0(J.get$sign$in(this.startOffset - other.startOffset));
+ },
+ sortedWithinVerticalGroup$0: function() {
+ var t1, t2, _i, child, t3, t4, t5, t6, horizontalGroups, group, depth, edge,
+ edges = H.setRuntimeTypeInfo([], type$.JSArray__BoxEdge);
+ for (t1 = this.nodes, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ child = t1[_i];
+ t3 = child._semantics$_rect;
+ t4 = t3.left;
+ t5 = t3.top;
+ t6 = t3.right;
+ t3 = t3.bottom;
+ edges.push(new A._BoxEdge(true, A._pointInParentCoordinates(child, new P.Offset(t4 - -0.1, t5 - -0.1))._dx, child));
+ edges.push(new A._BoxEdge(false, A._pointInParentCoordinates(child, new P.Offset(t6 + -0.1, t3 + -0.1))._dx, child));
+ }
+ C.JSArray_methods.sort$0(edges);
+ horizontalGroups = H.setRuntimeTypeInfo([], type$.JSArray__SemanticsSortGroup);
+ for (t1 = edges.length, t2 = this.textDirection, t3 = type$.JSArray_SemanticsNode, group = null, depth = 0, _i = 0; _i < edges.length; edges.length === t1 || (0, H.throwConcurrentModificationError)(edges), ++_i) {
+ edge = edges[_i];
+ if (edge.isLeadingEdge) {
+ ++depth;
+ if (group == null)
+ group = new A._SemanticsSortGroup(edge.offset, t2, H.setRuntimeTypeInfo([], t3));
+ group.nodes.push(edge.node);
+ } else
+ --depth;
+ if (depth === 0) {
+ group.toString;
+ horizontalGroups.push(group);
+ group = null;
+ }
+ }
+ C.JSArray_methods.sort$0(horizontalGroups);
+ if (t2 === C.TextDirection_0) {
+ t1 = type$.ReversedListIterable__SemanticsSortGroup;
+ horizontalGroups = P.List_List$of(new H.ReversedListIterable(horizontalGroups, t1), true, t1._eval$1("ListIterable.E"));
+ }
+ t1 = H._arrayInstanceType(horizontalGroups)._eval$1("ExpandIterable<1,SemanticsNode>");
+ return P.List_List$of(new H.ExpandIterable(horizontalGroups, new A._SemanticsSortGroup_sortedWithinVerticalGroup_closure(), t1), true, t1._eval$1("Iterable.E"));
+ },
+ sortedWithinKnot$0: function() {
+ var t3, nodeMap, edges, t4, t5, t6, _i, node, t7, t8, t9, t10, center, _i0, nextNode, t11, t12, t13, nextCenter, direction, isLtrAndForward, isRtlAndForward, sortedIds, startNodes,
+ t1 = this.nodes,
+ t2 = t1.length;
+ if (t2 <= 1)
+ return t1;
+ t3 = type$.int;
+ nodeMap = P.LinkedHashMap_LinkedHashMap$_empty(t3, type$.SemanticsNode);
+ edges = P.LinkedHashMap_LinkedHashMap$_empty(t3, t3);
+ for (t4 = this.textDirection, t5 = t4 === C.TextDirection_0, t4 = t4 === C.TextDirection_1, t6 = t2, _i = 0; _i < t6; t10 === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i, t6 = t10) {
+ node = t1[_i];
+ t6 = node.id;
+ nodeMap.$indexSet(0, t6, node);
+ t7 = node._semantics$_rect;
+ t8 = t7.left;
+ t9 = t7.right;
+ t10 = t7.top;
+ center = A._pointInParentCoordinates(node, new P.Offset(t8 + (t9 - t8) / 2, t10 + (t7.bottom - t10) / 2));
+ for (t7 = t1.length, t8 = center._dx, t9 = center._dy, _i0 = 0; t10 = t1.length, _i0 < t10; t1.length === t7 || (0, H.throwConcurrentModificationError)(t1), ++_i0) {
+ nextNode = t1[_i0];
+ if ((node == null ? nextNode == null : node === nextNode) || edges.$index(0, nextNode.id) === t6)
+ continue;
+ t10 = nextNode._semantics$_rect;
+ t11 = t10.left;
+ t12 = t10.right;
+ t13 = t10.top;
+ nextCenter = A._pointInParentCoordinates(nextNode, new P.Offset(t11 + (t12 - t11) / 2, t13 + (t10.bottom - t13) / 2));
+ direction = Math.atan2(nextCenter._dy - t9, nextCenter._dx - t8);
+ isLtrAndForward = t4 && -0.7853981633974483 < direction && direction < 2.356194490192345;
+ if (t5)
+ isRtlAndForward = direction < -2.356194490192345 || direction > 2.356194490192345;
+ else
+ isRtlAndForward = false;
+ if (isLtrAndForward || isRtlAndForward)
+ edges.$indexSet(0, t6, nextNode.id);
+ }
+ }
+ sortedIds = H.setRuntimeTypeInfo([], type$.JSArray_int);
+ startNodes = H.setRuntimeTypeInfo(t1.slice(0), H._arrayInstanceType(t1));
+ C.JSArray_methods.sort$1(startNodes, new A._SemanticsSortGroup_sortedWithinKnot_closure());
+ new H.MappedListIterable(startNodes, new A._SemanticsSortGroup_sortedWithinKnot_closure0(), H._arrayInstanceType(startNodes)._eval$1("MappedListIterable<1,int>")).forEach$1(0, new A._SemanticsSortGroup_sortedWithinKnot_search(P.LinkedHashSet_LinkedHashSet$_empty(t3), edges, sortedIds));
+ t1 = type$.MappedListIterable_int_SemanticsNode;
+ t1 = P.List_List$of(new H.MappedListIterable(sortedIds, new A._SemanticsSortGroup_sortedWithinKnot_closure1(nodeMap), t1), true, t1._eval$1("ListIterable.E"));
+ t2 = H._arrayInstanceType(t1)._eval$1("ReversedListIterable<1>");
+ return P.List_List$of(new H.ReversedListIterable(t1, t2), true, t2._eval$1("ListIterable.E"));
+ }
+ };
+ A._SemanticsSortGroup_sortedWithinVerticalGroup_closure.prototype = {
+ call$1: function(group) {
+ return group.sortedWithinKnot$0();
+ },
+ $signature: 110
+ };
+ A._SemanticsSortGroup_sortedWithinKnot_closure.prototype = {
+ call$2: function(a, b) {
+ var bTopLeft, verticalDiff,
+ t1 = a._semantics$_rect,
+ aTopLeft = A._pointInParentCoordinates(a, new P.Offset(t1.left, t1.top));
+ t1 = b._semantics$_rect;
+ bTopLeft = A._pointInParentCoordinates(b, new P.Offset(t1.left, t1.top));
+ verticalDiff = J.compareTo$1$ns(aTopLeft._dy, bTopLeft._dy);
+ if (verticalDiff !== 0)
+ return -verticalDiff;
+ return -J.compareTo$1$ns(aTopLeft._dx, bTopLeft._dx);
+ },
+ $signature: 64
+ };
+ A._SemanticsSortGroup_sortedWithinKnot_search.prototype = {
+ call$1: function(id) {
+ var _this = this,
+ t1 = _this.visitedIds;
+ if (t1.contains$1(0, id))
+ return;
+ t1.add$1(0, id);
+ t1 = _this.edges;
+ if (t1.containsKey$1(0, id)) {
+ t1 = t1.$index(0, id);
+ t1.toString;
+ _this.call$1(t1);
+ }
+ _this.sortedIds.push(id);
+ },
+ $signature: 36
+ };
+ A._SemanticsSortGroup_sortedWithinKnot_closure0.prototype = {
+ call$1: function(node) {
+ return node.id;
+ },
+ $signature: 223
+ };
+ A._SemanticsSortGroup_sortedWithinKnot_closure1.prototype = {
+ call$1: function(id) {
+ var t1 = this.nodeMap.$index(0, id);
+ t1.toString;
+ return t1;
+ },
+ $signature: 224
+ };
+ A._childrenInDefaultOrder_closure.prototype = {
+ call$1: function(group) {
+ return group.sortedWithinVerticalGroup$0();
+ },
+ $signature: 110
+ };
+ A._TraversalSortNode.prototype = {
+ compareTo$1: function(_, other) {
+ var t2,
+ t1 = this.sortKey;
+ if (t1 == null || other.sortKey == null)
+ return this.position - other.position;
+ t1.toString;
+ t2 = other.sortKey;
+ t2.toString;
+ return t1.compareTo$1(0, t2);
+ },
+ $isComparable: 1
+ };
+ A.SemanticsOwner.prototype = {
+ dispose$0: function(_) {
+ var _this = this;
+ _this._semantics$_dirtyNodes.clear$0(0);
+ _this._nodes.clear$0(0);
+ _this._detachedNodes.clear$0(0);
+ _this.super$ChangeNotifier$dispose(0);
+ },
+ sendSemanticsUpdate$0: function() {
+ var customSemanticsActionIds, visitedNodes, t2, t3, t4, t5, localDirtyNodes, t6, t7, _i, node, t8, builder, _this = this,
+ t1 = _this._semantics$_dirtyNodes;
+ if (t1._collection$_length === 0)
+ return;
+ customSemanticsActionIds = P.LinkedHashSet_LinkedHashSet$_empty(type$.int);
+ visitedNodes = H.setRuntimeTypeInfo([], type$.JSArray_SemanticsNode);
+ for (t2 = type$.nullable_SemanticsNode, t3 = H._instanceType(t1)._eval$1("WhereIterable"), t4 = t3._eval$1("Iterable.E"), t5 = _this._detachedNodes; t1._collection$_length !== 0;) {
+ localDirtyNodes = P.List_List$of(new H.WhereIterable(t1, new A.SemanticsOwner_sendSemanticsUpdate_closure(_this), t3), true, t4);
+ t1.clear$0(0);
+ t5.clear$0(0);
+ t6 = new A.SemanticsOwner_sendSemanticsUpdate_closure0();
+ if (!!localDirtyNodes.immutable$list)
+ H.throwExpression(P.UnsupportedError$("sort"));
+ t7 = localDirtyNodes.length - 1;
+ if (t7 - 0 <= 32)
+ H.Sort__insertionSort(localDirtyNodes, 0, t7, t6);
+ else
+ H.Sort__dualPivotQuicksort(localDirtyNodes, 0, t7, t6);
+ C.JSArray_methods.addAll$1(visitedNodes, localDirtyNodes);
+ for (t6 = localDirtyNodes.length, _i = 0; _i < localDirtyNodes.length; localDirtyNodes.length === t6 || (0, H.throwConcurrentModificationError)(localDirtyNodes), ++_i) {
+ node = localDirtyNodes[_i];
+ if (node._mergeAllDescendantsIntoThisNode || node._isMergedIntoParent) {
+ t7 = J.getInterceptor$x(node);
+ if (t2._as(B.AbstractNode.prototype.get$parent.call(t7, node)) != null) {
+ t8 = t2._as(B.AbstractNode.prototype.get$parent.call(t7, node));
+ t8 = t8._mergeAllDescendantsIntoThisNode || t8._isMergedIntoParent;
+ } else
+ t8 = false;
+ if (t8) {
+ t2._as(B.AbstractNode.prototype.get$parent.call(t7, node))._semantics$_markDirty$0();
+ node._semantics$_dirty = false;
+ }
+ }
+ }
+ }
+ C.JSArray_methods.sort$1(visitedNodes, new A.SemanticsOwner_sendSemanticsUpdate_closure1());
+ $.SemanticsBinding__instance.toString;
+ builder = new P.SemanticsUpdateBuilder(H.setRuntimeTypeInfo([], type$.JSArray_SemanticsNodeUpdate));
+ for (t2 = visitedNodes.length, _i = 0; _i < visitedNodes.length; visitedNodes.length === t2 || (0, H.throwConcurrentModificationError)(visitedNodes), ++_i) {
+ node = visitedNodes[_i];
+ if (node._semantics$_dirty && node._node$_owner != null)
+ node._addToUpdate$2(builder, customSemanticsActionIds);
+ }
+ t1.clear$0(0);
+ for (t1 = P._LinkedHashSetIterator$(customSemanticsActionIds, customSemanticsActionIds._collection$_modifications); t1.moveNext$0();)
+ $.CustomSemanticsAction__actions.$index(0, t1._collection$_current).toString;
+ $.SemanticsBinding__instance.toString;
+ $.$get$window().platformDispatcher.toString;
+ H.EngineSemanticsOwner_instance().updateSemantics$1(new H.SemanticsUpdate(builder._nodeUpdates));
+ _this.notifyListeners$0();
+ },
+ _getSemanticsActionHandlerForId$2: function(id, action) {
+ var t2, t1 = {},
+ result = t1.result = this._nodes.$index(0, id);
+ if (result != null)
+ t2 = (result._mergeAllDescendantsIntoThisNode || result._isMergedIntoParent) && !result._actions.containsKey$1(0, action);
+ else
+ t2 = false;
+ if (t2)
+ result._visitDescendants$1(new A.SemanticsOwner__getSemanticsActionHandlerForId_closure(t1, action));
+ t2 = t1.result;
+ if (t2 == null || !t2._actions.containsKey$1(0, action))
+ return null;
+ return t1.result._actions.$index(0, action);
+ },
+ performAction$3: function(id, action, args) {
+ var handler = this._getSemanticsActionHandlerForId$2(id, action);
+ if (handler != null) {
+ handler.call$1(args);
+ return;
+ }
+ if (action === C.SemanticsAction_256 && this._nodes.$index(0, id)._showOnScreen != null)
+ this._nodes.$index(0, id)._showOnScreen.call$0();
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this);
+ }
+ };
+ A.SemanticsOwner_sendSemanticsUpdate_closure.prototype = {
+ call$1: function(node) {
+ return !this.$this._detachedNodes.contains$1(0, node);
+ },
+ $signature: 65
+ };
+ A.SemanticsOwner_sendSemanticsUpdate_closure0.prototype = {
+ call$2: function(a, b) {
+ return a._node$_depth - b._node$_depth;
+ },
+ $signature: 64
+ };
+ A.SemanticsOwner_sendSemanticsUpdate_closure1.prototype = {
+ call$2: function(a, b) {
+ return a._node$_depth - b._node$_depth;
+ },
+ $signature: 64
+ };
+ A.SemanticsOwner__getSemanticsActionHandlerForId_closure.prototype = {
+ call$1: function(node) {
+ if (node._actions.containsKey$1(0, this.action)) {
+ this._box_0.result = node;
+ return false;
+ }
+ return true;
+ },
+ $signature: 65
+ };
+ A.SemanticsConfiguration.prototype = {
+ _addAction$2: function(action, handler) {
+ var _this = this;
+ _this._actions.$indexSet(0, action, handler);
+ _this._actionsAsBits = _this._actionsAsBits | action.index;
+ _this._hasBeenAnnotated = true;
+ },
+ _addArgumentlessAction$2: function(action, handler) {
+ this._addAction$2(action, new A.SemanticsConfiguration__addArgumentlessAction_closure(handler));
+ },
+ set$onTap: function(value) {
+ value.toString;
+ this._addArgumentlessAction$2(C.SemanticsAction_1, value);
+ },
+ set$onLongPress: function(value) {
+ value.toString;
+ this._addArgumentlessAction$2(C.SemanticsAction_2, value);
+ },
+ set$onScrollLeft: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_4, value);
+ },
+ set$onDismiss: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_262144, value);
+ },
+ set$onScrollRight: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_8, value);
+ },
+ set$onScrollUp: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_16, value);
+ },
+ set$onScrollDown: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_32, value);
+ },
+ set$onIncrease: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_64, value);
+ },
+ set$onDecrease: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_128, value);
+ },
+ set$onCopy: function(_, value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_4096, value);
+ },
+ set$onCut: function(_, value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_8192, value);
+ },
+ set$onPaste: function(_, value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_16384, value);
+ },
+ set$onMoveCursorForwardByCharacter: function(value) {
+ this._addAction$2(C.SemanticsAction_512, new A.SemanticsConfiguration_onMoveCursorForwardByCharacter_closure(value));
+ },
+ set$onMoveCursorBackwardByCharacter: function(value) {
+ this._addAction$2(C.SemanticsAction_1024, new A.SemanticsConfiguration_onMoveCursorBackwardByCharacter_closure(value));
+ },
+ set$onMoveCursorForwardByWord: function(value) {
+ this._addAction$2(C.SemanticsAction_524288, new A.SemanticsConfiguration_onMoveCursorForwardByWord_closure(value));
+ },
+ set$onMoveCursorBackwardByWord: function(value) {
+ this._addAction$2(C.SemanticsAction_1048576, new A.SemanticsConfiguration_onMoveCursorBackwardByWord_closure(value));
+ },
+ set$onSetSelection: function(value) {
+ this._addAction$2(C.SemanticsAction_2048, new A.SemanticsConfiguration_onSetSelection_closure(value));
+ },
+ set$onDidGainAccessibilityFocus: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_32768, value);
+ },
+ set$onDidLoseAccessibilityFocus: function(value) {
+ this._addArgumentlessAction$2(C.SemanticsAction_65536, value);
+ },
+ set$scrollChildCount: function(value) {
+ if (value == this._scrollChildCount)
+ return;
+ this._scrollChildCount = value;
+ this._hasBeenAnnotated = true;
+ },
+ set$scrollIndex: function(value) {
+ if (value == this._scrollIndex)
+ return;
+ this._scrollIndex = value;
+ this._hasBeenAnnotated = true;
+ },
+ set$platformViewId: function(value) {
+ if (value == this._platformViewId)
+ return;
+ this._platformViewId = value;
+ this._hasBeenAnnotated = true;
+ },
+ set$maxValueLength: function(value) {
+ return;
+ },
+ set$currentValueLength: function(value) {
+ if (value == this._semantics$_currentValueLength)
+ return;
+ this._semantics$_currentValueLength = value;
+ this._hasBeenAnnotated = true;
+ },
+ set$elevation: function(_, value) {
+ if (value == this._semantics$_elevation)
+ return;
+ this._semantics$_elevation = value;
+ this._hasBeenAnnotated = true;
+ },
+ addTagForChildren$1: function(tag) {
+ var t1 = this._tagsForChildren;
+ (t1 == null ? this._tagsForChildren = P.LinkedHashSet_LinkedHashSet$_empty(type$.SemanticsTag) : t1).add$1(0, tag);
+ },
+ _setFlag$2: function(flag, value) {
+ var _this = this,
+ t1 = _this._flags,
+ t2 = flag.index;
+ if (value)
+ _this._flags = t1 | t2;
+ else
+ _this._flags = t1 & ~t2;
+ _this._hasBeenAnnotated = true;
+ },
+ isCompatibleWith$1: function(other) {
+ var t1, _this = this;
+ if (other == null || !other._hasBeenAnnotated || !_this._hasBeenAnnotated)
+ return true;
+ if ((_this._actionsAsBits & other._actionsAsBits) !== 0)
+ return false;
+ if ((_this._flags & other._flags) !== 0)
+ return false;
+ if (_this._platformViewId != null && other._platformViewId != null)
+ return false;
+ if (_this._semantics$_currentValueLength != null && other._semantics$_currentValueLength != null)
+ return false;
+ t1 = _this._semantics$_value;
+ if (t1 != null)
+ if (t1.length !== 0) {
+ t1 = other._semantics$_value;
+ t1 = t1 != null && t1.length !== 0;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ return false;
+ return true;
+ },
+ absorb$1: function(child) {
+ var t1, t2, _this = this;
+ if (!child._hasBeenAnnotated)
+ return;
+ _this._actions.addAll$1(0, child._actions);
+ _this._customSemanticsActions.addAll$1(0, child._customSemanticsActions);
+ _this._actionsAsBits = _this._actionsAsBits | child._actionsAsBits;
+ _this._flags = _this._flags | child._flags;
+ if (_this._textSelection == null)
+ _this._textSelection = child._textSelection;
+ if (_this._scrollPosition == null)
+ _this._scrollPosition = child._scrollPosition;
+ if (_this._scrollExtentMax == null)
+ _this._scrollExtentMax = child._scrollExtentMax;
+ if (_this._scrollExtentMin == null)
+ _this._scrollExtentMin = child._scrollExtentMin;
+ if (_this._semantics$_hintOverrides == null)
+ _this._semantics$_hintOverrides = child._semantics$_hintOverrides;
+ if (_this._indexInParent == null)
+ _this._indexInParent = child._indexInParent;
+ if (_this._scrollIndex == null)
+ _this._scrollIndex = child._scrollIndex;
+ if (_this._scrollChildCount == null)
+ _this._scrollChildCount = child._scrollChildCount;
+ if (_this._platformViewId == null)
+ _this._platformViewId = child._platformViewId;
+ _this._maxValueLength = child._maxValueLength;
+ if (_this._semantics$_currentValueLength == null)
+ _this._semantics$_currentValueLength = child._semantics$_currentValueLength;
+ t1 = _this._semantics$_textDirection;
+ if (t1 == null) {
+ t1 = _this._semantics$_textDirection = child._semantics$_textDirection;
+ _this._hasBeenAnnotated = true;
+ }
+ if (_this._semantics$_sortKey == null)
+ _this._semantics$_sortKey = child._semantics$_sortKey;
+ t2 = _this._semantics$_label;
+ _this._semantics$_label = A._concatStrings(child._semantics$_label, child._semantics$_textDirection, t2, t1);
+ t1 = _this._decreasedValue;
+ if (t1 === "" || t1 == null)
+ _this._decreasedValue = child._decreasedValue;
+ t1 = _this._semantics$_value;
+ if (t1 === "" || t1 == null)
+ _this._semantics$_value = child._semantics$_value;
+ t1 = _this._increasedValue;
+ if (t1 === "" || t1 == null)
+ _this._increasedValue = child._increasedValue;
+ t1 = _this._semantics$_hint;
+ t2 = _this._semantics$_textDirection;
+ _this._semantics$_hint = A._concatStrings(child._semantics$_hint, child._semantics$_textDirection, t1, t2);
+ _this._thickness = Math.max(_this._thickness, child._thickness + child._semantics$_elevation);
+ _this._hasBeenAnnotated = _this._hasBeenAnnotated || child._hasBeenAnnotated;
+ },
+ copy$0: function(_) {
+ var _this = this,
+ t1 = A.SemanticsConfiguration$();
+ t1._isSemanticBoundary = _this._isSemanticBoundary;
+ t1.explicitChildNodes = _this.explicitChildNodes;
+ t1.isBlockingSemanticsOfPreviouslyPaintedNodes = _this.isBlockingSemanticsOfPreviouslyPaintedNodes;
+ t1._hasBeenAnnotated = _this._hasBeenAnnotated;
+ t1._isMergingSemanticsOfDescendants = _this._isMergingSemanticsOfDescendants;
+ t1._semantics$_textDirection = _this._semantics$_textDirection;
+ t1._semantics$_sortKey = _this._semantics$_sortKey;
+ t1._semantics$_label = _this._semantics$_label;
+ t1._increasedValue = _this._increasedValue;
+ t1._semantics$_value = _this._semantics$_value;
+ t1._decreasedValue = _this._decreasedValue;
+ t1._semantics$_hint = _this._semantics$_hint;
+ t1._semantics$_hintOverrides = _this._semantics$_hintOverrides;
+ t1._semantics$_elevation = _this._semantics$_elevation;
+ t1._thickness = _this._thickness;
+ t1._flags = _this._flags;
+ t1._tagsForChildren = _this._tagsForChildren;
+ t1._textSelection = _this._textSelection;
+ t1._scrollPosition = _this._scrollPosition;
+ t1._scrollExtentMax = _this._scrollExtentMax;
+ t1._scrollExtentMin = _this._scrollExtentMin;
+ t1._actionsAsBits = _this._actionsAsBits;
+ t1._indexInParent = _this._indexInParent;
+ t1._scrollIndex = _this._scrollIndex;
+ t1._scrollChildCount = _this._scrollChildCount;
+ t1._platformViewId = _this._platformViewId;
+ t1._maxValueLength = _this._maxValueLength;
+ t1._semantics$_currentValueLength = _this._semantics$_currentValueLength;
+ t1._actions.addAll$1(0, _this._actions);
+ t1._customSemanticsActions.addAll$1(0, _this._customSemanticsActions);
+ return t1;
+ }
+ };
+ A.SemanticsConfiguration__addArgumentlessAction_closure.prototype = {
+ call$1: function(args) {
+ this.handler.call$0();
+ },
+ $signature: 8
+ };
+ A.SemanticsConfiguration_onMoveCursorForwardByCharacter_closure.prototype = {
+ call$1: function(args) {
+ this.value.call$1(H._asBoolS(args));
+ },
+ $signature: 8
+ };
+ A.SemanticsConfiguration_onMoveCursorBackwardByCharacter_closure.prototype = {
+ call$1: function(args) {
+ this.value.call$1(H._asBoolS(args));
+ },
+ $signature: 8
+ };
+ A.SemanticsConfiguration_onMoveCursorForwardByWord_closure.prototype = {
+ call$1: function(args) {
+ this.value.call$1(H._asBoolS(args));
+ },
+ $signature: 8
+ };
+ A.SemanticsConfiguration_onMoveCursorBackwardByWord_closure.prototype = {
+ call$1: function(args) {
+ this.value.call$1(H._asBoolS(args));
+ },
+ $signature: 8
+ };
+ A.SemanticsConfiguration_onSetSelection_closure.prototype = {
+ call$1: function(args) {
+ var t2,
+ selection = J.cast$2$0$ax(type$.Map_dynamic_dynamic._as(args), type$.String, type$.int),
+ t1 = selection.$index(0, "base");
+ t1.toString;
+ t2 = selection.$index(0, "extent");
+ t2.toString;
+ this.value.call$1(X.TextSelection$(C.TextAffinity_1, t1, t2, false));
+ },
+ $signature: 8
+ };
+ A.DebugSemanticsDumpOrder.prototype = {
+ toString$0: function(_) {
+ return this._semantics$_name;
+ }
+ };
+ A.SemanticsSortKey.prototype = {
+ compareTo$1: function(_, other) {
+ var t1;
+ other.toString;
+ t1 = this.doCompare$1(other);
+ return t1;
+ },
+ $isComparable: 1,
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ A.OrdinalSortKey.prototype = {
+ doCompare$1: function(other) {
+ var t1 = other.order === this.order;
+ if (t1)
+ return 0;
+ return C.JSInt_methods.compareTo$1(this.order, other.order);
+ }
+ };
+ A._SemanticsData_Object_Diagnosticable.prototype = {};
+ A._SemanticsNode_AbstractNode_DiagnosticableTreeMixin.prototype = {};
+ A._SemanticsSortKey_Object_Diagnosticable.prototype = {};
+ E.SemanticsEvent.prototype = {
+ toMap$1$nodeId: function(nodeId) {
+ var $event = P.LinkedHashMap_LinkedHashMap$_literal(["type", this.type, "data", this.getDataMap$0()], type$.String, type$.dynamic);
+ if (nodeId != null)
+ $event.$indexSet(0, "nodeId", nodeId);
+ return $event;
+ },
+ toMap$0: function() {
+ return this.toMap$1$nodeId(null);
+ },
+ toString$0: function(_) {
+ var _i, key,
+ pairs = H.setRuntimeTypeInfo([], type$.JSArray_String),
+ dataMap = this.getDataMap$0(),
+ t1 = dataMap.get$keys(dataMap),
+ sortedKeys = t1.toList$0(t1);
+ C.JSArray_methods.sort$0(sortedKeys);
+ for (t1 = sortedKeys.length, _i = 0; _i < sortedKeys.length; sortedKeys.length === t1 || (0, H.throwConcurrentModificationError)(sortedKeys), ++_i) {
+ key = sortedKeys[_i];
+ pairs.push(H.S(key) + ": " + H.S(dataMap.$index(0, key)));
+ }
+ return "SemanticsEvent(" + C.JSArray_methods.join$1(pairs, ", ") + ")";
+ }
+ };
+ E.TooltipSemanticsEvent.prototype = {
+ getDataMap$0: function() {
+ return P.LinkedHashMap_LinkedHashMap$_literal(["message", this.message], type$.String, type$.dynamic);
+ }
+ };
+ E.LongPressSemanticsEvent.prototype = {
+ getDataMap$0: function() {
+ return C.Map_empty3;
+ }
+ };
+ E.TapSemanticEvent.prototype = {
+ getDataMap$0: function() {
+ return C.Map_empty3;
+ }
+ };
+ Q.AssetBundle.prototype = {
+ loadString$2$cache: function(key, cache) {
+ return this.loadString$body$AssetBundle(key, true);
+ },
+ loadString$body$AssetBundle: function(key, cache) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.String),
+ $async$returnValue, $async$self = this, data;
+ var $async$loadString$2$cache = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait($async$self.load$1(0, key), $async$loadString$2$cache);
+ case 3:
+ // returning from await.
+ data = $async$result;
+ if (data == null)
+ throw H.wrapException(U.FlutterError_FlutterError("Unable to load asset: " + key));
+ if (data.byteLength < 51200) {
+ $async$returnValue = C.C_Utf8Codec.decode$1(0, H.NativeUint8List_NativeUint8List$view(data.buffer, 0, null));
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $async$returnValue = U.compute(Q.asset_bundle_AssetBundle__utf8decode$closure(), data, 'UTF8 decode for "' + key + '"', type$.ByteData, type$.String);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$loadString$2$cache, $async$completer);
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this) + "()";
+ }
+ };
+ Q.CachingAssetBundle.prototype = {
+ loadString$2$cache: function(key, cache) {
+ return this.super$AssetBundle$loadString(key, true);
+ }
+ };
+ Q.PlatformAssetBundle.prototype = {
+ load$1: function(_, key) {
+ return this.load$body$PlatformAssetBundle(_, key);
+ },
+ load$body$PlatformAssetBundle: function(_, key) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.ByteData),
+ $async$returnValue, encoded, asset;
+ var $async$load$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ encoded = C.C_Utf8Encoder.convert$1(P._Uri__Uri(P._Uri__uriEncode(C.List_gnE, key, C.C_Utf8Codec, false)).path);
+ $async$goto = 3;
+ return P._asyncAwait($.ServicesBinding__instance.get$_defaultBinaryMessenger().send$2(0, "flutter/assets", H.NativeByteData_NativeByteData$view(encoded.buffer, 0, null)), $async$load$1);
+ case 3:
+ // returning from await.
+ asset = $async$result;
+ if (asset == null)
+ throw H.wrapException(U.FlutterError_FlutterError("Unable to load asset: " + key));
+ $async$returnValue = asset;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$load$1, $async$completer);
+ }
+ };
+ F.AutofillConfiguration.prototype = {
+ toJson$0: function() {
+ return P.LinkedHashMap_LinkedHashMap$_literal(["uniqueIdentifier", this.uniqueIdentifier, "hints", this.autofillHints, "editingValue", this.currentEditingValue.toJSON$0()], type$.String, type$.dynamic);
+ }
+ };
+ Q.BinaryMessenger.prototype = {};
+ N.ServicesBinding.prototype = {
+ get$_defaultBinaryMessenger: function() {
+ return this.ServicesBinding___ServicesBinding__defaultBinaryMessenger_isSet ? this.ServicesBinding___ServicesBinding__defaultBinaryMessenger : H.throwExpression(H.LateError$fieldNI("_defaultBinaryMessenger"));
+ },
+ handleMemoryPressure$0: function() {
+ },
+ handleSystemMessage$1: function(systemMessage) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this;
+ var $async$handleSystemMessage$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ switch (H._asStringS(J.$index$asx(type$.Map_String_dynamic._as(systemMessage), "type"))) {
+ case "memoryPressure":
+ $async$self.handleMemoryPressure$0();
+ break;
+ }
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$handleSystemMessage$1, $async$completer);
+ },
+ _addLicenses$0: function() {
+ var $async$_addLicenses$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ switch ($async$errorCode) {
+ case 2:
+ $async$next = $async$nextWhenCanceled;
+ $async$goto = $async$next.pop();
+ break;
+ case 1:
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = new P._Future($.Zone__current, type$._Future_String);
+ rawLicenses = new P._AsyncCompleter(t1, type$._AsyncCompleter_String);
+ t2 = type$.Future_Null;
+ $async$self.scheduleTask$1$2(new N.ServicesBinding__addLicenses_closure(rawLicenses), C.Priority_100000, t2);
+ $async$goto = 3;
+ return P._asyncStarHelper(t1, $async$_addLicenses$0, $async$controller);
+ case 3:
+ // returning from await.
+ t1 = new P._Future($.Zone__current, type$._Future_List_LicenseEntry);
+ $async$self.scheduleTask$1$2(new N.ServicesBinding__addLicenses_closure0(new P._AsyncCompleter(t1, type$._AsyncCompleter_List_LicenseEntry), rawLicenses), C.Priority_100000, t2);
+ $async$goto = 4;
+ return P._asyncStarHelper(t1, $async$_addLicenses$0, $async$controller);
+ case 4:
+ // returning from await.
+ $async$temp1 = P;
+ $async$goto = 6;
+ return P._asyncStarHelper(t1, $async$_addLicenses$0, $async$controller);
+ case 6:
+ // returning from await.
+ $async$goto = 5;
+ $async$nextWhenCanceled = [1];
+ return P._asyncStarHelper(P._IterationMarker_yieldStar($async$temp1.Stream_Stream$fromIterable($async$result, type$.LicenseEntry)), $async$_addLicenses$0, $async$controller);
+ case 5:
+ // after yield
+ case 1:
+ // return
+ return P._asyncStarHelper(null, 0, $async$controller);
+ case 2:
+ // rethrow
+ return P._asyncStarHelper($async$currentError, 1, $async$controller);
+ }
+ });
+ var $async$goto = 0,
+ $async$controller = P._makeAsyncStarStreamController($async$_addLicenses$0, type$.LicenseEntry),
+ $async$nextWhenCanceled, $async$handler = 2, $async$currentError, $async$next = [], $async$self = this, t1, rawLicenses, t2, $async$temp1;
+ return P._streamOfController($async$controller);
+ },
+ readInitialLifecycleStateFromNativeWindow$0: function() {
+ if (this.SchedulerBinding__lifecycleState != null)
+ return;
+ $.$get$window().platformDispatcher.toString;
+ var state = N.ServicesBinding__parseAppLifecycleMessage("AppLifecycleState.resumed");
+ if (state != null)
+ this.handleAppLifecycleStateChanged$1(state);
+ },
+ _handleLifecycleMessage$1: function(message) {
+ return this._handleLifecycleMessage$body$ServicesBinding(message);
+ },
+ _handleLifecycleMessage$body$ServicesBinding: function(message) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.nullable_String),
+ $async$returnValue, $async$self = this, t1;
+ var $async$_handleLifecycleMessage$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ message.toString;
+ t1 = N.ServicesBinding__parseAppLifecycleMessage(message);
+ t1.toString;
+ $async$self.handleAppLifecycleStateChanged$1(t1);
+ $async$returnValue = null;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_handleLifecycleMessage$1, $async$completer);
+ },
+ get$_restorationManager: function() {
+ return this.ServicesBinding___ServicesBinding__restorationManager_isSet ? this.ServicesBinding___ServicesBinding__restorationManager : H.throwExpression(H.LateError$fieldNI("_restorationManager"));
+ }
+ };
+ N.ServicesBinding__addLicenses_closure.prototype = {
+ call$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Null),
+ $async$self = this, $async$temp1;
+ var $async$call$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$temp1 = $async$self.rawLicenses;
+ $async$goto = 2;
+ return P._asyncAwait($.$get$rootBundle().loadString$2$cache("NOTICES", false), $async$call$0);
+ case 2:
+ // returning from await.
+ $async$temp1.complete$1(0, $async$result);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$0, $async$completer);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 106
+ };
+ N.ServicesBinding__addLicenses_closure0.prototype = {
+ call$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Null),
+ $async$self = this, $async$temp1, $async$temp2, $async$temp3;
+ var $async$call$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$temp1 = $async$self.parsedLicenses;
+ $async$temp2 = U;
+ $async$temp3 = N.binding0_ServicesBinding__parseLicenses$closure();
+ $async$goto = 2;
+ return P._asyncAwait($async$self.rawLicenses.future, $async$call$0);
+ case 2:
+ // returning from await.
+ $async$temp1.complete$1(0, $async$temp2.compute($async$temp3, $async$result, "parseLicenses", type$.String, type$.List_LicenseEntry));
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$0, $async$completer);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 106
+ };
+ N._DefaultBinaryMessenger.prototype = {
+ _sendPlatformMessage$2: function(channel, message) {
+ var t1 = new P._Future($.Zone__current, type$._Future_nullable_ByteData),
+ t2 = $.$get$window().platformDispatcher;
+ t2.toString;
+ t2.__engine$_sendPlatformMessage$3(channel, message, H.EnginePlatformDispatcher__zonedPlatformMessageResponseCallback(new N._DefaultBinaryMessenger__sendPlatformMessage_closure(new P._AsyncCompleter(t1, type$._AsyncCompleter_nullable_ByteData))));
+ return t1;
+ },
+ handlePlatformMessage$3: function(channel, data, callback) {
+ return this.handlePlatformMessage$body$_DefaultBinaryMessenger(channel, data, callback);
+ },
+ handlePlatformMessage$body$_DefaultBinaryMessenger: function(channel, data, callback) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$handler = 1, $async$currentError, $async$next = [], response, handler, exception, stack, t1, t2, exception0, $async$exception0;
+ var $async$handlePlatformMessage$3 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ callback = callback;
+ response = null;
+ $async$handler = 3;
+ handler = $._DefaultBinaryMessenger__handlers.$index(0, channel);
+ $async$goto = handler != null ? 6 : 8;
+ break;
+ case 6:
+ // then
+ $async$goto = 9;
+ return P._asyncAwait(handler.call$1(data), $async$handlePlatformMessage$3);
+ case 9:
+ // returning from await.
+ response = $async$result;
+ // goto join
+ $async$goto = 7;
+ break;
+ case 8:
+ // else
+ t1 = $.$get$channelBuffers();
+ t2 = callback;
+ t2.toString;
+ t1.push$3(channel, data, t2);
+ callback = null;
+ case 7:
+ // join
+ $async$next.push(5);
+ // goto finally
+ $async$goto = 4;
+ break;
+ case 3:
+ // catch
+ $async$handler = 2;
+ $async$exception0 = $async$currentError;
+ exception = H.unwrapException($async$exception0);
+ stack = H.getTraceFromException($async$exception0);
+ t1 = U.ErrorDescription$("during a platform message callback");
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "services library", t1, null, false));
+ $async$next.push(5);
+ // goto finally
+ $async$goto = 4;
+ break;
+ case 2:
+ // uncaught
+ $async$next = [1];
+ case 4:
+ // finally
+ $async$handler = 1;
+ if (callback != null)
+ callback.call$1(response);
+ // goto the next finally handler
+ $async$goto = $async$next.pop();
+ break;
+ case 5:
+ // after finally
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ case 1:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$handlePlatformMessage$3, $async$completer);
+ },
+ send$2: function(_, channel, message) {
+ $._DefaultBinaryMessenger__mockHandlers.$index(0, channel);
+ return this._sendPlatformMessage$2(channel, message);
+ },
+ setMessageHandler$2: function(channel, handler) {
+ if (handler == null)
+ $._DefaultBinaryMessenger__handlers.remove$1(0, channel);
+ else {
+ $._DefaultBinaryMessenger__handlers.$indexSet(0, channel, handler);
+ $.$get$channelBuffers().drain$2(channel, new N._DefaultBinaryMessenger_setMessageHandler_closure(this, channel));
+ }
+ }
+ };
+ N._DefaultBinaryMessenger__sendPlatformMessage_closure.prototype = {
+ call$1: function(reply) {
+ var exception, stack, exception0, t1, t2;
+ try {
+ this.completer.complete$1(0, reply);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("during a platform message response callback");
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "services library", t1, null, false));
+ }
+ },
+ $signature: 28
+ };
+ N._DefaultBinaryMessenger_setMessageHandler_closure.prototype = {
+ call$2: function(data, callback) {
+ return this.$call$body$_DefaultBinaryMessenger_setMessageHandler_closure(data, callback);
+ },
+ $call$body$_DefaultBinaryMessenger_setMessageHandler_closure: function(data, callback) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this;
+ var $async$call$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait($async$self.$this.handlePlatformMessage$3($async$self.channel, data, callback), $async$call$2);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$2, $async$completer);
+ },
+ $signature: 229
+ };
+ T.ClipboardData.prototype = {};
+ G.KeyboardKey.prototype = {};
+ G.LogicalKeyboardKey.prototype = {
+ get$hashCode: function(_) {
+ return C.JSInt_methods.get$hashCode(this.keyId);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof G.LogicalKeyboardKey && other.keyId === this.keyId;
+ }
+ };
+ G.PhysicalKeyboardKey.prototype = {
+ get$hashCode: function(_) {
+ return C.JSInt_methods.get$hashCode(this.usbHidUsage);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof G.PhysicalKeyboardKey && other.usbHidUsage === this.usbHidUsage;
+ }
+ };
+ G._KeyboardKey_Object_Diagnosticable.prototype = {};
+ F.MethodCall.prototype = {
+ toString$0: function(_) {
+ return "MethodCall(" + this.method + ", " + H.S(this.$arguments) + ")";
+ }
+ };
+ F.PlatformException.prototype = {
+ toString$0: function(_) {
+ var _this = this;
+ return "PlatformException(" + H.S(_this.code) + ", " + H.S(_this.message) + ", " + H.S(_this.details) + ", " + H.S(_this.stacktrace) + ")";
+ },
+ $isException: 1
+ };
+ F.MissingPluginException.prototype = {
+ toString$0: function(_) {
+ return "MissingPluginException(" + H.S(this.message) + ")";
+ },
+ $isException: 1
+ };
+ U.StringCodec.prototype = {
+ decodeMessage$1: function(message) {
+ if (message == null)
+ return null;
+ return C.Utf8Decoder_false.convert$1(H.NativeUint8List_NativeUint8List$view(message.buffer, message.byteOffset, message.byteLength));
+ },
+ encodeMessage$1: function(message) {
+ if (message == null)
+ return null;
+ return H.NativeByteData_NativeByteData$view(C.C_Utf8Encoder.convert$1(message).buffer, 0, null);
+ }
+ };
+ U.JSONMessageCodec0.prototype = {
+ encodeMessage$1: function(message) {
+ if (message == null)
+ return null;
+ return C.C_StringCodec.encodeMessage$1(C.C_JsonCodec.encode$1(message));
+ },
+ decodeMessage$1: function(message) {
+ var t1;
+ if (message == null)
+ return message;
+ t1 = C.C_StringCodec.decodeMessage$1(message);
+ t1.toString;
+ return C.C_JsonCodec.decode$1(0, t1);
+ }
+ };
+ U.JSONMethodCodec0.prototype = {
+ encodeMethodCall$1: function($call) {
+ var t1 = C.C_JSONMessageCodec0.encodeMessage$1(P.LinkedHashMap_LinkedHashMap$_literal(["method", $call.method, "args", $call.$arguments], type$.String, type$.dynamic));
+ t1.toString;
+ return t1;
+ },
+ decodeMethodCall$1: function(methodCall) {
+ var t1, method, $arguments, _null = null,
+ decoded = C.C_JSONMessageCodec0.decodeMessage$1(methodCall);
+ if (!type$.Map_dynamic_dynamic._is(decoded))
+ throw H.wrapException(P.FormatException$("Expected method call Map, got " + H.S(decoded), _null, _null));
+ t1 = J.getInterceptor$asx(decoded);
+ method = t1.$index(decoded, "method");
+ $arguments = t1.$index(decoded, "args");
+ if (typeof method == "string")
+ return new F.MethodCall(method, $arguments);
+ throw H.wrapException(P.FormatException$("Invalid method call: " + H.S(decoded), _null, _null));
+ },
+ decodeEnvelope$1: function(envelope) {
+ var t1, t2, t3, _null = null,
+ decoded = C.C_JSONMessageCodec0.decodeMessage$1(envelope);
+ if (!type$.List_dynamic._is(decoded))
+ throw H.wrapException(P.FormatException$("Expected envelope List, got " + H.S(decoded), _null, _null));
+ t1 = J.getInterceptor$asx(decoded);
+ if (t1.get$length(decoded) === 1)
+ return t1.$index(decoded, 0);
+ if (t1.get$length(decoded) === 3)
+ if (typeof t1.$index(decoded, 0) == "string")
+ t2 = t1.$index(decoded, 1) == null || typeof t1.$index(decoded, 1) == "string";
+ else
+ t2 = false;
+ else
+ t2 = false;
+ if (t2) {
+ t2 = H._asStringS(t1.$index(decoded, 0));
+ t3 = H._asStringS(t1.$index(decoded, 1));
+ throw H.wrapException(F.PlatformException$(t2, t1.$index(decoded, 2), t3, _null));
+ }
+ if (t1.get$length(decoded) === 4)
+ if (typeof t1.$index(decoded, 0) == "string")
+ if (t1.$index(decoded, 1) == null || typeof t1.$index(decoded, 1) == "string")
+ t2 = t1.$index(decoded, 3) == null || typeof t1.$index(decoded, 3) == "string";
+ else
+ t2 = false;
+ else
+ t2 = false;
+ else
+ t2 = false;
+ if (t2) {
+ t2 = H._asStringS(t1.$index(decoded, 0));
+ t3 = H._asStringS(t1.$index(decoded, 1));
+ throw H.wrapException(F.PlatformException$(t2, t1.$index(decoded, 2), t3, H._asStringS(t1.$index(decoded, 3))));
+ }
+ throw H.wrapException(P.FormatException$("Invalid envelope: " + H.S(decoded), _null, _null));
+ },
+ encodeSuccessEnvelope$1: function(result) {
+ var t1 = C.C_JSONMessageCodec0.encodeMessage$1([result]);
+ t1.toString;
+ return t1;
+ },
+ encodeErrorEnvelope$3$code$details$message: function(code, details, message) {
+ var t1 = C.C_JSONMessageCodec0.encodeMessage$1([code, message, details]);
+ t1.toString;
+ return t1;
+ }
+ };
+ U.StandardMessageCodec0.prototype = {
+ encodeMessage$1: function(message) {
+ var buffer;
+ if (message == null)
+ return null;
+ buffer = G.WriteBuffer$();
+ this.writeValue$2(0, buffer, message);
+ return buffer.done$0();
+ },
+ decodeMessage$1: function(message) {
+ var buffer, result;
+ if (message == null)
+ return null;
+ buffer = new G.ReadBuffer(message);
+ result = this.readValue$1(0, buffer);
+ if (buffer._serialization$_position < message.byteLength)
+ throw H.wrapException(C.FormatException_oCg);
+ return result;
+ },
+ writeValue$2: function(_, buffer, value) {
+ var t1, t2, t3, bytes, _this = this;
+ if (value == null)
+ buffer._buffer._typed_buffer$_add$1(0, 0);
+ else if (H._isBool(value)) {
+ t1 = value ? 1 : 2;
+ buffer._buffer._typed_buffer$_add$1(0, t1);
+ } else if (typeof value == "number") {
+ buffer._buffer._typed_buffer$_add$1(0, 6);
+ buffer._alignTo$1(8);
+ t1 = $.$get$Endian_host();
+ buffer._eightBytes.setFloat64(0, value, C.C_Endian === t1);
+ t1 = buffer._buffer;
+ t1.toString;
+ t1.addAll$1(0, buffer.get$_eightBytesAsList());
+ } else if (H._isInt(value)) {
+ t1 = -2147483648 <= value && value <= 2147483647;
+ t2 = buffer._buffer;
+ t3 = buffer._eightBytes;
+ if (t1) {
+ t2._typed_buffer$_add$1(0, 3);
+ t1 = $.$get$Endian_host();
+ t3.setInt32(0, value, C.C_Endian === t1);
+ t1 = buffer._buffer;
+ t1.toString;
+ t1.addAll$3(0, buffer.get$_eightBytesAsList(), 0, 4);
+ } else {
+ t2._typed_buffer$_add$1(0, 4);
+ t1 = $.$get$Endian_host();
+ C.NativeByteData_methods.setInt64$3(t3, 0, value, t1);
+ }
+ } else if (typeof value == "string") {
+ buffer._buffer._typed_buffer$_add$1(0, 7);
+ bytes = C.C_Utf8Encoder.convert$1(value);
+ _this.writeSize$2(buffer, bytes.length);
+ buffer._buffer.addAll$1(0, bytes);
+ } else if (type$.Uint8List._is(value)) {
+ buffer._buffer._typed_buffer$_add$1(0, 8);
+ _this.writeSize$2(buffer, value.length);
+ buffer._buffer.addAll$1(0, value);
+ } else if (type$.Int32List._is(value)) {
+ buffer._buffer._typed_buffer$_add$1(0, 9);
+ t1 = value.length;
+ _this.writeSize$2(buffer, t1);
+ buffer._alignTo$1(4);
+ t2 = buffer._buffer;
+ t2.toString;
+ t2.addAll$1(0, H.NativeUint8List_NativeUint8List$view(value.buffer, value.byteOffset, 4 * t1));
+ } else if (type$.Float64List._is(value)) {
+ buffer._buffer._typed_buffer$_add$1(0, 11);
+ t1 = value.length;
+ _this.writeSize$2(buffer, t1);
+ buffer._alignTo$1(8);
+ t2 = buffer._buffer;
+ t2.toString;
+ t2.addAll$1(0, H.NativeUint8List_NativeUint8List$view(value.buffer, value.byteOffset, 8 * t1));
+ } else if (type$.List_dynamic._is(value)) {
+ buffer._buffer._typed_buffer$_add$1(0, 12);
+ t1 = J.getInterceptor$asx(value);
+ _this.writeSize$2(buffer, t1.get$length(value));
+ for (t1 = t1.get$iterator(value); t1.moveNext$0();)
+ _this.writeValue$2(0, buffer, t1.get$current(t1));
+ } else if (type$.Map_dynamic_dynamic._is(value)) {
+ buffer._buffer._typed_buffer$_add$1(0, 13);
+ t1 = J.getInterceptor$asx(value);
+ _this.writeSize$2(buffer, t1.get$length(value));
+ t1.forEach$1(value, new U.StandardMessageCodec_writeValue_closure(_this, buffer));
+ } else
+ throw H.wrapException(P.ArgumentError$value(value, null, null));
+ },
+ readValue$1: function(_, buffer) {
+ if (!(buffer._serialization$_position < buffer.data.byteLength))
+ throw H.wrapException(C.FormatException_oCg);
+ return this.readValueOfType$2(buffer.getUint8$0(0), buffer);
+ },
+ readValueOfType$2: function(type, buffer) {
+ var t1, t2, value, $length, list, result, i, t3, _this = this;
+ switch (type) {
+ case 0:
+ return null;
+ case 1:
+ return true;
+ case 2:
+ return false;
+ case 3:
+ t1 = buffer._serialization$_position;
+ t2 = $.$get$Endian_host();
+ value = buffer.data.getInt32(t1, C.C_Endian === t2);
+ buffer._serialization$_position += 4;
+ return value;
+ case 4:
+ return buffer.getInt64$0(0);
+ case 6:
+ buffer._alignTo$1(8);
+ t1 = buffer._serialization$_position;
+ t2 = $.$get$Endian_host();
+ value = buffer.data.getFloat64(t1, C.C_Endian === t2);
+ buffer._serialization$_position += 8;
+ return value;
+ case 5:
+ case 7:
+ $length = _this.readSize$1(buffer);
+ return C.Utf8Decoder_false.convert$1(buffer.getUint8List$1($length));
+ case 8:
+ return buffer.getUint8List$1(_this.readSize$1(buffer));
+ case 9:
+ $length = _this.readSize$1(buffer);
+ buffer._alignTo$1(4);
+ t1 = buffer.data;
+ list = H.NativeInt32List_NativeInt32List$view(t1.buffer, t1.byteOffset + buffer._serialization$_position, $length);
+ buffer._serialization$_position = buffer._serialization$_position + 4 * $length;
+ return list;
+ case 10:
+ return buffer.getInt64List$1(_this.readSize$1(buffer));
+ case 11:
+ $length = _this.readSize$1(buffer);
+ buffer._alignTo$1(8);
+ t1 = buffer.data;
+ list = H.NativeFloat64List_NativeFloat64List$view(t1.buffer, t1.byteOffset + buffer._serialization$_position, $length);
+ buffer._serialization$_position = buffer._serialization$_position + 8 * $length;
+ return list;
+ case 12:
+ $length = _this.readSize$1(buffer);
+ result = P.List_List$filled($length, null, false, type$.dynamic);
+ for (t1 = buffer.data, i = 0; i < $length; ++i) {
+ t2 = buffer._serialization$_position;
+ if (!(t2 < t1.byteLength))
+ H.throwExpression(C.FormatException_oCg);
+ buffer._serialization$_position = t2 + 1;
+ result[i] = _this.readValueOfType$2(t1.getUint8(t2), buffer);
+ }
+ return result;
+ case 13:
+ $length = _this.readSize$1(buffer);
+ t1 = type$.dynamic;
+ result = P.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
+ for (t1 = buffer.data, i = 0; i < $length; ++i) {
+ t2 = buffer._serialization$_position;
+ if (!(t2 < t1.byteLength))
+ H.throwExpression(C.FormatException_oCg);
+ buffer._serialization$_position = t2 + 1;
+ t2 = _this.readValueOfType$2(t1.getUint8(t2), buffer);
+ t3 = buffer._serialization$_position;
+ if (!(t3 < t1.byteLength))
+ H.throwExpression(C.FormatException_oCg);
+ buffer._serialization$_position = t3 + 1;
+ result.$indexSet(0, t2, _this.readValueOfType$2(t1.getUint8(t3), buffer));
+ }
+ return result;
+ default:
+ throw H.wrapException(C.FormatException_oCg);
+ }
+ },
+ writeSize$2: function(buffer, value) {
+ var t1, t2;
+ if (value < 254)
+ buffer._buffer._typed_buffer$_add$1(0, value);
+ else {
+ t1 = buffer._buffer;
+ t2 = buffer._eightBytes;
+ if (value <= 65535) {
+ t1._typed_buffer$_add$1(0, 254);
+ t1 = $.$get$Endian_host();
+ t2.setUint16(0, value, C.C_Endian === t1);
+ t1 = buffer._buffer;
+ t1.toString;
+ t1.addAll$3(0, buffer.get$_eightBytesAsList(), 0, 2);
+ } else {
+ t1._typed_buffer$_add$1(0, 255);
+ t1 = $.$get$Endian_host();
+ t2.setUint32(0, value, C.C_Endian === t1);
+ t1 = buffer._buffer;
+ t1.toString;
+ t1.addAll$3(0, buffer.get$_eightBytesAsList(), 0, 4);
+ }
+ }
+ },
+ readSize$1: function(buffer) {
+ var t1, t2,
+ value = buffer.getUint8$0(0);
+ switch (value) {
+ case 254:
+ t1 = buffer._serialization$_position;
+ t2 = $.$get$Endian_host();
+ value = buffer.data.getUint16(t1, C.C_Endian === t2);
+ buffer._serialization$_position += 2;
+ return value;
+ case 255:
+ t1 = buffer._serialization$_position;
+ t2 = $.$get$Endian_host();
+ value = buffer.data.getUint32(t1, C.C_Endian === t2);
+ buffer._serialization$_position += 4;
+ return value;
+ default:
+ return value;
+ }
+ }
+ };
+ U.StandardMessageCodec_writeValue_closure.prototype = {
+ call$2: function(key, value) {
+ var t1 = this.$this,
+ t2 = this.buffer;
+ t1.writeValue$2(0, t2, key);
+ t1.writeValue$2(0, t2, value);
+ },
+ $signature: 31
+ };
+ U.StandardMethodCodec0.prototype = {
+ encodeMethodCall$1: function($call) {
+ var buffer = G.WriteBuffer$();
+ C.C_StandardMessageCodec.writeValue$2(0, buffer, $call.method);
+ C.C_StandardMessageCodec.writeValue$2(0, buffer, $call.$arguments);
+ return buffer.done$0();
+ },
+ decodeMethodCall$1: function(methodCall) {
+ var buffer, method, $arguments;
+ methodCall.toString;
+ buffer = new G.ReadBuffer(methodCall);
+ method = C.C_StandardMessageCodec.readValue$1(0, buffer);
+ $arguments = C.C_StandardMessageCodec.readValue$1(0, buffer);
+ if (typeof method == "string" && !(buffer._serialization$_position < methodCall.byteLength))
+ return new F.MethodCall(method, $arguments);
+ else
+ throw H.wrapException(C.FormatException_Qi2);
+ },
+ encodeSuccessEnvelope$1: function(result) {
+ var buffer = G.WriteBuffer$();
+ buffer._buffer._typed_buffer$_add$1(0, 0);
+ C.C_StandardMessageCodec.writeValue$2(0, buffer, result);
+ return buffer.done$0();
+ },
+ encodeErrorEnvelope$3$code$details$message: function(code, details, message) {
+ var buffer = G.WriteBuffer$();
+ buffer._buffer._typed_buffer$_add$1(0, 1);
+ C.C_StandardMessageCodec.writeValue$2(0, buffer, code);
+ C.C_StandardMessageCodec.writeValue$2(0, buffer, message);
+ C.C_StandardMessageCodec.writeValue$2(0, buffer, details);
+ return buffer.done$0();
+ },
+ decodeEnvelope$1: function(envelope) {
+ var buffer, errorCode, errorMessage, errorDetails, errorStacktrace, t1;
+ if (envelope.byteLength === 0)
+ throw H.wrapException(C.FormatException_iDw);
+ buffer = new G.ReadBuffer(envelope);
+ if (buffer.getUint8$0(0) === 0)
+ return C.C_StandardMessageCodec.readValue$1(0, buffer);
+ errorCode = C.C_StandardMessageCodec.readValue$1(0, buffer);
+ errorMessage = C.C_StandardMessageCodec.readValue$1(0, buffer);
+ errorDetails = C.C_StandardMessageCodec.readValue$1(0, buffer);
+ errorStacktrace = buffer._serialization$_position < envelope.byteLength ? H._asStringS(C.C_StandardMessageCodec.readValue$1(0, buffer)) : null;
+ if (typeof errorCode == "string")
+ t1 = (errorMessage == null || typeof errorMessage == "string") && !(buffer._serialization$_position < envelope.byteLength);
+ else
+ t1 = false;
+ if (t1)
+ throw H.wrapException(F.PlatformException$(errorCode, errorDetails, H._asStringS(errorMessage), errorStacktrace));
+ else
+ throw H.wrapException(C.FormatException_pSr);
+ }
+ };
+ A.BasicMessageChannel.prototype = {
+ get$binaryMessenger: function() {
+ var t1 = $.ServicesBinding__instance;
+ return t1.get$_defaultBinaryMessenger();
+ },
+ send$1: function(_, message) {
+ return this.send$body$BasicMessageChannel(_, message, this.$ti._precomputed1);
+ },
+ send$body$BasicMessageChannel: function(_, message, $async$type) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter($async$type),
+ $async$returnValue, $async$self = this, t1, $async$temp1;
+ var $async$send$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self.codec;
+ $async$temp1 = t1;
+ $async$goto = 3;
+ return P._asyncAwait($async$self.get$binaryMessenger().send$2(0, $async$self.name, t1.encodeMessage$1(message)), $async$send$1);
+ case 3:
+ // returning from await.
+ $async$returnValue = $async$temp1.decodeMessage$1($async$result);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$send$1, $async$completer);
+ },
+ setMessageHandler$1: function(handler) {
+ this.get$binaryMessenger().setMessageHandler$2(this.name, new A.BasicMessageChannel_setMessageHandler_closure(this, handler));
+ },
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ A.BasicMessageChannel_setMessageHandler_closure.prototype = {
+ call$1: function(message) {
+ return this.$call$body$BasicMessageChannel_setMessageHandler_closure(message);
+ },
+ $call$body$BasicMessageChannel_setMessageHandler_closure: function(message) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.nullable_ByteData),
+ $async$returnValue, $async$self = this, t1, $async$temp1;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self.$this.codec;
+ $async$temp1 = t1;
+ $async$goto = 3;
+ return P._asyncAwait($async$self.handler.call$1(t1.decodeMessage$1(message)), $async$call$1);
+ case 3:
+ // returning from await.
+ $async$returnValue = $async$temp1.encodeMessage$1($async$result);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 87
+ };
+ A.MethodChannel.prototype = {
+ get$binaryMessenger: function() {
+ var t1 = $.ServicesBinding__instance;
+ return t1.get$_defaultBinaryMessenger();
+ },
+ _invokeMethod$1$3$arguments$missingOk: function(method, $arguments, missingOk, $T) {
+ return this._invokeMethod$body$MethodChannel(method, $arguments, missingOk, $T, $T._eval$1("0?"));
+ },
+ _invokeMethod$body$MethodChannel: function(method, $arguments, missingOk, $T, $async$type) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter($async$type),
+ $async$returnValue, $async$self = this, t1, t2, result;
+ var $async$_invokeMethod$1$3$arguments$missingOk = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self.name;
+ t2 = $async$self.codec;
+ $async$goto = 3;
+ return P._asyncAwait($async$self.get$binaryMessenger().send$2(0, t1, t2.encodeMethodCall$1(new F.MethodCall(method, $arguments))), $async$_invokeMethod$1$3$arguments$missingOk);
+ case 3:
+ // returning from await.
+ result = $async$result;
+ if (result == null) {
+ if (missingOk) {
+ $async$returnValue = null;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ throw H.wrapException(F.MissingPluginException$("No implementation found for method " + method + " on channel " + t1));
+ }
+ $async$returnValue = $T._as(t2.decodeEnvelope$1(result));
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_invokeMethod$1$3$arguments$missingOk, $async$completer);
+ },
+ invokeMethod$1$2: function(method, $arguments, $T) {
+ return this._invokeMethod$1$3$arguments$missingOk(method, $arguments, false, $T);
+ },
+ invokeMapMethod$2$1: function(method, $K, $V) {
+ return this.invokeMapMethod$body$MethodChannel(method, $K, $V, $K._eval$1("@<0>")._bind$1($V)._eval$1("Map<1,2>?"));
+ },
+ invokeMapMethod$body$MethodChannel: function(method, $K, $V, $async$type) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter($async$type),
+ $async$returnValue, $async$self = this, result;
+ var $async$invokeMapMethod$2$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait($async$self.invokeMethod$1$2(method, null, type$.nullable_Map_dynamic_dynamic), $async$invokeMapMethod$2$1);
+ case 3:
+ // returning from await.
+ result = $async$result;
+ $async$returnValue = result == null ? null : J.cast$2$0$ax(result, $K, $V);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$invokeMapMethod$2$1, $async$completer);
+ },
+ setMethodCallHandler$1: function(handler) {
+ var values, _this = this,
+ _s14_ = "expando$values",
+ t1 = $.$get$_methodChannelHandlers()._jsWeakMapOrKey;
+ if (typeof t1 != "string")
+ t1.set(_this, handler);
+ else {
+ values = H.Primitives_getProperty(_this, _s14_);
+ if (values == null) {
+ values = new P.Object();
+ H.Primitives_setProperty(_this, _s14_, values);
+ }
+ H.Primitives_setProperty(values, t1, handler);
+ }
+ t1 = _this.get$binaryMessenger();
+ t1.setMessageHandler$2(_this.name, new A.MethodChannel_setMethodCallHandler_closure(_this, handler));
+ },
+ _handleAsMethodCall$2: function(message, handler) {
+ return this._handleAsMethodCall$body$MethodChannel(message, handler);
+ },
+ _handleAsMethodCall$body$MethodChannel: function(message, handler) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.nullable_ByteData),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], $async$self = this, e, e0, t2, exception, t3, t1, $call, $async$exception, $async$temp1;
+ var $async$_handleAsMethodCall$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self.codec;
+ $call = t1.decodeMethodCall$1(message);
+ $async$handler = 4;
+ $async$temp1 = t1;
+ $async$goto = 7;
+ return P._asyncAwait(handler.call$1($call), $async$_handleAsMethodCall$2);
+ case 7:
+ // returning from await.
+ t2 = $async$temp1.encodeSuccessEnvelope$1($async$result);
+ $async$returnValue = t2;
+ // goto return
+ $async$goto = 1;
+ break;
+ $async$handler = 2;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 4:
+ // catch
+ $async$handler = 3;
+ $async$exception = $async$currentError;
+ t2 = H.unwrapException($async$exception);
+ if (t2 instanceof F.PlatformException) {
+ e = t2;
+ t2 = e.code;
+ t3 = e.message;
+ $async$returnValue = t1.encodeErrorEnvelope$3$code$details$message(t2, e.details, t3);
+ // goto return
+ $async$goto = 1;
+ break;
+ } else if (t2 instanceof F.MissingPluginException) {
+ $async$returnValue = null;
+ // goto return
+ $async$goto = 1;
+ break;
+ } else {
+ e0 = t2;
+ t1 = t1.encodeErrorEnvelope$3$code$details$message("error", null, J.toString$0$(e0));
+ $async$returnValue = t1;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 3:
+ // uncaught
+ // goto rethrow
+ $async$goto = 2;
+ break;
+ case 6:
+ // after finally
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_handleAsMethodCall$2, $async$completer);
+ },
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ A.MethodChannel_setMethodCallHandler_closure.prototype = {
+ call$1: function(message) {
+ return this.$this._handleAsMethodCall$2(message, this.handler);
+ },
+ $signature: 87
+ };
+ A.OptionalMethodChannel.prototype = {
+ invokeMethod$1$2: function(method, $arguments, $T) {
+ return this.invokeMethod$body$OptionalMethodChannel(method, $arguments, $T, $T._eval$1("0?"));
+ },
+ invokeMethod$1$1: function(method, $T) {
+ return this.invokeMethod$1$2(method, null, $T);
+ },
+ invokeMethod$body$OptionalMethodChannel: function(method, $arguments, $T, $async$type) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter($async$type),
+ $async$returnValue, $async$self = this;
+ var $async$invokeMethod$1$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = $async$self.super$MethodChannel$_invokeMethod(method, $arguments, true, $T);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$invokeMethod$1$2, $async$completer);
+ }
+ };
+ R.PlatformViewsRegistry.prototype = {};
+ R.PlatformViewController.prototype = {};
+ B.KeyboardSide.prototype = {
+ toString$0: function(_) {
+ return this._raw_keyboard$_name;
+ }
+ };
+ B.ModifierKey.prototype = {
+ toString$0: function(_) {
+ return this._raw_keyboard$_name;
+ }
+ };
+ B.RawKeyEventData.prototype = {
+ get$modifiersPressed: function() {
+ var _i, key, side,
+ result = P.LinkedHashMap_LinkedHashMap$_empty(type$.ModifierKey, type$.KeyboardSide);
+ for (_i = 0; _i < 9; ++_i) {
+ key = C.List_0[_i];
+ if (this.isModifierPressed$1(key)) {
+ side = this.getModifierSide$1(key);
+ if (side != null)
+ result.$indexSet(0, key, side);
+ }
+ }
+ return result;
+ }
+ };
+ B.RawKeyEvent.prototype = {};
+ B.RawKeyDownEvent.prototype = {};
+ B.RawKeyUpEvent.prototype = {};
+ B.RawKeyboard.prototype = {
+ _handleKeyEvent$1: function(message) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$returnValue, $async$self = this, t2, t3, _i, listener, $event, t1;
+ var $async$_handleKeyEvent$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $event = B.RawKeyEvent_RawKeyEvent$fromMessage(type$.Map_String_dynamic._as(message));
+ t1 = $event.data;
+ if (t1 instanceof B.RawKeyEventDataMacOs && t1.get$logicalKey().$eq(0, C.LogicalKeyboardKey_jjl)) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ if ($event instanceof B.RawKeyDownEvent)
+ $async$self._keysPressed.$indexSet(0, t1.get$physicalKey(), t1.get$logicalKey());
+ if ($event instanceof B.RawKeyUpEvent)
+ $async$self._keysPressed.remove$1(0, t1.get$physicalKey());
+ $async$self._synchronizeModifiers$1($event);
+ for (t1 = $async$self._listeners, t2 = P.List_List$from(t1, true, type$.void_Function_RawKeyEvent), t3 = t2.length, _i = 0; _i < t3; ++_i) {
+ listener = t2[_i];
+ if (C.JSArray_methods.contains$1(t1, listener))
+ listener.call$1($event);
+ }
+ t1 = $async$self.keyEventHandler;
+ $async$returnValue = P.LinkedHashMap_LinkedHashMap$_literal(["handled", t1 != null && t1.call$1($event)], type$.String, type$.dynamic);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_handleKeyEvent$1, $async$completer);
+ },
+ _synchronizeModifiers$1: function($event) {
+ var t2, t3, mappedKeys, t4, t5,
+ t1 = $event.data,
+ modifiersPressed = t1.get$modifiersPressed(),
+ modifierKeys = P.LinkedHashMap_LinkedHashMap$_empty(type$.PhysicalKeyboardKey, type$.LogicalKeyboardKey);
+ for (t2 = modifiersPressed.get$keys(modifiersPressed), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ mappedKeys = $.RawKeyboard__modifierKeyMap.$index(0, new B._ModifierSidePair(t3, modifiersPressed.$index(0, t3)));
+ if (mappedKeys == null)
+ continue;
+ for (t3 = new P._LinkedHashSetIterator(mappedKeys, mappedKeys._collection$_modifications), t3._collection$_cell = mappedKeys._collection$_first; t3.moveNext$0();) {
+ t4 = t3._collection$_current;
+ t5 = $.$get$RawKeyboard__allModifiers().$index(0, t4);
+ t5.toString;
+ modifierKeys.$indexSet(0, t4, t5);
+ }
+ }
+ t2 = this._keysPressed;
+ $.RawKeyboard__allModifiersExceptFn.get$keys($.RawKeyboard__allModifiersExceptFn).forEach$1(0, t2.get$remove(t2));
+ if (!(t1 instanceof Q.RawKeyEventDataFuchsia) && !(t1 instanceof B.RawKeyEventDataMacOs))
+ t2.remove$1(0, C.PhysicalKeyboardKey_18_Fn);
+ t2.addAll$1(0, modifierKeys);
+ }
+ };
+ B._ModifierSidePair.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof B._ModifierSidePair && other.modifier == this.modifier && other.side == this.side;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.modifier, this.side, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ B._RawKeyEvent_Object_Diagnosticable.prototype = {};
+ Q.RawKeyEventDataAndroid.prototype = {
+ get$keyLabel: function() {
+ var t1 = this.plainCodePoint;
+ return t1 === 0 ? "" : H.Primitives_stringFromCharCode(t1 & 2147483647);
+ },
+ get$physicalKey: function() {
+ var foundKey,
+ t1 = this.scanCode;
+ if (C.Map_kr0.containsKey$1(0, t1)) {
+ t1 = C.Map_kr0.$index(0, t1);
+ return t1 == null ? C.PhysicalKeyboardKey_0_None : t1;
+ }
+ if ((this.eventSource & 16777232) === 16777232) {
+ foundKey = C.Map_Eyiil.$index(0, this.keyCode);
+ t1 = J.getInterceptor$(foundKey);
+ if (t1.$eq(foundKey, C.LogicalKeyboardKey_gCR))
+ return C.PhysicalKeyboardKey_ytW;
+ if (t1.$eq(foundKey, C.LogicalKeyboardKey_O7X))
+ return C.PhysicalKeyboardKey_G79;
+ if (t1.$eq(foundKey, C.LogicalKeyboardKey_muk))
+ return C.PhysicalKeyboardKey_4iW;
+ if (t1.$eq(foundKey, C.LogicalKeyboardKey_CzM))
+ return C.PhysicalKeyboardKey_Q8r;
+ }
+ return C.PhysicalKeyboardKey_0_None;
+ },
+ get$logicalKey: function() {
+ var keyId, t2, newKey, _this = this,
+ t1 = _this.keyCode,
+ numPadKey = C.Map_uS2jN0.$index(0, t1);
+ if (numPadKey != null)
+ return numPadKey;
+ if (_this.get$keyLabel().length !== 0 && !G.LogicalKeyboardKey_isControlCharacter(_this.get$keyLabel())) {
+ keyId = _this.plainCodePoint & 2147483647 | 0;
+ t1 = C.Map_U4mPa.$index(0, keyId);
+ if (t1 == null) {
+ t1 = _this.get$keyLabel();
+ t2 = "Key " + _this.get$keyLabel().toUpperCase();
+ t1 = new G.LogicalKeyboardKey(keyId, t2, t1);
+ }
+ return t1;
+ }
+ newKey = C.Map_Eyiil.$index(0, t1);
+ if (newKey != null)
+ return newKey;
+ t2 = "Unknown Android key code " + t1;
+ newKey = new G.LogicalKeyboardKey((t1 | 0) >>> 0, t2, "");
+ return newKey;
+ },
+ _raw_keyboard_android$_isLeftRightModifierPressed$4: function(side, anyMask, leftMask, rightMask) {
+ var t1 = this.metaState;
+ if ((t1 & anyMask) === 0)
+ return false;
+ switch (side) {
+ case C.KeyboardSide_0:
+ return true;
+ case C.KeyboardSide_3:
+ return (t1 & leftMask) !== 0 && (t1 & rightMask) !== 0;
+ case C.KeyboardSide_1:
+ return (t1 & leftMask) !== 0;
+ case C.KeyboardSide_2:
+ return (t1 & rightMask) !== 0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ isModifierPressed$1: function(key) {
+ var _this = this;
+ switch (key) {
+ case C.ModifierKey_0:
+ return _this._raw_keyboard_android$_isLeftRightModifierPressed$4(C.KeyboardSide_0, 4096, 8192, 16384);
+ case C.ModifierKey_1:
+ return _this._raw_keyboard_android$_isLeftRightModifierPressed$4(C.KeyboardSide_0, 1, 64, 128);
+ case C.ModifierKey_2:
+ return _this._raw_keyboard_android$_isLeftRightModifierPressed$4(C.KeyboardSide_0, 2, 16, 32);
+ case C.ModifierKey_3:
+ return _this._raw_keyboard_android$_isLeftRightModifierPressed$4(C.KeyboardSide_0, 65536, 131072, 262144);
+ case C.ModifierKey_4:
+ return (_this.metaState & 1048576) !== 0;
+ case C.ModifierKey_5:
+ return (_this.metaState & 2097152) !== 0;
+ case C.ModifierKey_6:
+ return (_this.metaState & 4194304) !== 0;
+ case C.ModifierKey_7:
+ return (_this.metaState & 8) !== 0;
+ case C.ModifierKey_8:
+ return (_this.metaState & 4) !== 0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getModifierSide$1: function(key) {
+ var t1 = new Q.RawKeyEventDataAndroid_getModifierSide_findSide(this);
+ switch (key) {
+ case C.ModifierKey_0:
+ return t1.call$3(4096, 8192, 16384);
+ case C.ModifierKey_1:
+ return t1.call$3(1, 64, 128);
+ case C.ModifierKey_2:
+ return t1.call$3(2, 16, 32);
+ case C.ModifierKey_3:
+ return t1.call$3(65536, 131072, 262144);
+ case C.ModifierKey_4:
+ case C.ModifierKey_5:
+ case C.ModifierKey_6:
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ return C.KeyboardSide_3;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "RawKeyEventDataAndroid(keyLabel: " + _this.get$keyLabel() + " flags: " + _this.flags + ", codePoint: " + _this.codePoint + ", keyCode: " + _this.keyCode + ", scanCode: " + _this.scanCode + ", metaState: " + _this.metaState + ", modifiers down: " + _this.get$modifiersPressed().toString$0(0) + ")";
+ }
+ };
+ Q.RawKeyEventDataAndroid_getModifierSide_findSide.prototype = {
+ call$3: function(anyMask, leftMask, rightMask) {
+ var combinedMask = leftMask | rightMask,
+ t1 = this.$this.metaState,
+ combined = t1 & combinedMask;
+ if (combined === leftMask)
+ return C.KeyboardSide_1;
+ else if (combined === rightMask)
+ return C.KeyboardSide_2;
+ else if (combined === combinedMask)
+ return C.KeyboardSide_3;
+ if ((t1 & anyMask) !== 0)
+ return C.KeyboardSide_3;
+ return null;
+ },
+ $signature: 33
+ };
+ Q.RawKeyEventDataFuchsia.prototype = {
+ get$logicalKey: function() {
+ var t2, t3, newKey,
+ t1 = this.codePoint;
+ if (t1 !== 0) {
+ t2 = H.Primitives_stringFromCharCode(t1);
+ t3 = H.Primitives_stringFromCharCode(t1);
+ t3 = "Key " + t3;
+ return new G.LogicalKeyboardKey((t1 >>> 0 | 0) >>> 0, t3, t2);
+ }
+ t1 = this.hidUsage;
+ newKey = C.Map_09Jt.$index(0, (t1 | 4294967296) >>> 0);
+ if (newKey != null)
+ return newKey;
+ t2 = "Ephemeral Fuchsia key code " + t1;
+ newKey = new G.LogicalKeyboardKey((t1 | 0) >>> 0, t2, "");
+ return newKey;
+ },
+ get$physicalKey: function() {
+ var t1 = C.Map_api4A.$index(0, this.hidUsage);
+ return t1 == null ? C.PhysicalKeyboardKey_0_None : t1;
+ },
+ _raw_keyboard_fuchsia$_isLeftRightModifierPressed$4: function(side, anyMask, leftMask, rightMask) {
+ var t1 = this.modifiers;
+ if ((t1 & anyMask) === 0)
+ return false;
+ switch (side) {
+ case C.KeyboardSide_0:
+ return true;
+ case C.KeyboardSide_3:
+ return (t1 & leftMask) !== 0 && (t1 & rightMask) !== 0;
+ case C.KeyboardSide_1:
+ return (t1 & leftMask) !== 0;
+ case C.KeyboardSide_2:
+ return (t1 & rightMask) !== 0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ isModifierPressed$1: function(key) {
+ var _this = this;
+ switch (key) {
+ case C.ModifierKey_0:
+ return _this._raw_keyboard_fuchsia$_isLeftRightModifierPressed$4(C.KeyboardSide_0, 24, 8, 16);
+ case C.ModifierKey_1:
+ return _this._raw_keyboard_fuchsia$_isLeftRightModifierPressed$4(C.KeyboardSide_0, 6, 2, 4);
+ case C.ModifierKey_2:
+ return _this._raw_keyboard_fuchsia$_isLeftRightModifierPressed$4(C.KeyboardSide_0, 96, 32, 64);
+ case C.ModifierKey_3:
+ return _this._raw_keyboard_fuchsia$_isLeftRightModifierPressed$4(C.KeyboardSide_0, 384, 128, 256);
+ case C.ModifierKey_4:
+ return (_this.modifiers & 1) !== 0;
+ case C.ModifierKey_5:
+ case C.ModifierKey_6:
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ return false;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getModifierSide$1: function(key) {
+ var t1 = new Q.RawKeyEventDataFuchsia_getModifierSide_findSide(this);
+ switch (key) {
+ case C.ModifierKey_0:
+ return t1.call$3(24, 8, 16);
+ case C.ModifierKey_1:
+ return t1.call$3(6, 2, 4);
+ case C.ModifierKey_2:
+ return t1.call$3(96, 32, 64);
+ case C.ModifierKey_3:
+ return t1.call$3(384, 128, 256);
+ case C.ModifierKey_4:
+ return (this.modifiers & 1) === 0 ? null : C.KeyboardSide_3;
+ case C.ModifierKey_5:
+ case C.ModifierKey_6:
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ return null;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "RawKeyEventDataFuchsia(hidUsage: " + _this.hidUsage + ", codePoint: " + _this.codePoint + ", modifiers: " + _this.modifiers + ", modifiers down: " + _this.get$modifiersPressed().toString$0(0) + ")";
+ }
+ };
+ Q.RawKeyEventDataFuchsia_getModifierSide_findSide.prototype = {
+ call$3: function(anyMask, leftMask, rightMask) {
+ var combined = this.$this.modifiers & anyMask;
+ if (combined === leftMask)
+ return C.KeyboardSide_1;
+ else if (combined === rightMask)
+ return C.KeyboardSide_2;
+ else if (combined === anyMask)
+ return C.KeyboardSide_3;
+ return null;
+ },
+ $signature: 33
+ };
+ R.RawKeyEventDataIos.prototype = {
+ get$physicalKey: function() {
+ var t1 = C.Map_aWcoI.$index(0, this.keyCode);
+ return t1 == null ? C.PhysicalKeyboardKey_0_None : t1;
+ },
+ get$logicalKey: function() {
+ var t2, newKey, t3, codeUnit, keyId, _this = this,
+ t1 = _this.keyCode,
+ numPadKey = C.Map_uS2jN.$index(0, t1);
+ if (numPadKey != null)
+ return numPadKey;
+ t2 = _this.charactersIgnoringModifiers;
+ newKey = C.Map_dgFGJ.$index(0, t2);
+ if (newKey != null)
+ return newKey;
+ t3 = t2.length;
+ if (t3 !== 0 && !G.LogicalKeyboardKey_isControlCharacter(t2)) {
+ codeUnit = C.JSString_methods._codeUnitAt$1(t2, 0);
+ keyId = ((t3 === 2 ? codeUnit << 16 | C.JSString_methods._codeUnitAt$1(t2, 1) : codeUnit) | 0) >>> 0;
+ t1 = C.Map_U4mPa.$index(0, keyId);
+ if (t1 == null) {
+ t1 = "Key " + t2.toUpperCase();
+ t1 = new G.LogicalKeyboardKey(keyId, t1, t2);
+ }
+ return t1;
+ }
+ if (!_this.get$physicalKey().$eq(0, C.PhysicalKeyboardKey_0_None)) {
+ keyId = (_this.get$physicalKey().usbHidUsage | 4294967296) >>> 0;
+ t1 = C.Map_U4mPa.$index(0, keyId);
+ if (t1 == null) {
+ t1 = _this.get$physicalKey();
+ t1 = new G.LogicalKeyboardKey(keyId, _this.get$physicalKey().debugName, t1.debugName);
+ }
+ return t1;
+ }
+ t2 = "Unknown iOS key code " + t1;
+ return new G.LogicalKeyboardKey((t1 | 0) >>> 0, t2, "");
+ },
+ _raw_keyboard_ios$_isLeftRightModifierPressed$4: function(side, anyMask, leftMask, rightMask) {
+ var anyOnly,
+ t1 = this.modifiers;
+ if ((t1 & anyMask) === 0)
+ return false;
+ anyOnly = (t1 & (leftMask | rightMask | anyMask)) === anyMask;
+ switch (side) {
+ case C.KeyboardSide_0:
+ return true;
+ case C.KeyboardSide_3:
+ return (t1 & leftMask) !== 0 && (t1 & rightMask) !== 0 || anyOnly;
+ case C.KeyboardSide_1:
+ return (t1 & leftMask) !== 0 || anyOnly;
+ case C.KeyboardSide_2:
+ return (t1 & rightMask) !== 0 || anyOnly;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ isModifierPressed$1: function(key) {
+ var result, _this = this,
+ independentModifier = _this.modifiers & 4294901760;
+ switch (key) {
+ case C.ModifierKey_0:
+ result = _this._raw_keyboard_ios$_isLeftRightModifierPressed$4(C.KeyboardSide_0, independentModifier & 262144, 1, 8192);
+ break;
+ case C.ModifierKey_1:
+ result = _this._raw_keyboard_ios$_isLeftRightModifierPressed$4(C.KeyboardSide_0, independentModifier & 131072, 2, 4);
+ break;
+ case C.ModifierKey_2:
+ result = _this._raw_keyboard_ios$_isLeftRightModifierPressed$4(C.KeyboardSide_0, independentModifier & 524288, 32, 64);
+ break;
+ case C.ModifierKey_3:
+ result = _this._raw_keyboard_ios$_isLeftRightModifierPressed$4(C.KeyboardSide_0, independentModifier & 1048576, 8, 16);
+ break;
+ case C.ModifierKey_4:
+ result = (independentModifier & 65536) !== 0;
+ break;
+ case C.ModifierKey_7:
+ case C.ModifierKey_5:
+ case C.ModifierKey_8:
+ case C.ModifierKey_6:
+ result = false;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return result;
+ },
+ getModifierSide$1: function(key) {
+ var t1 = new R.RawKeyEventDataIos_getModifierSide_findSide(this);
+ switch (key) {
+ case C.ModifierKey_0:
+ return t1.call$3(262144, 1, 8192);
+ case C.ModifierKey_1:
+ return t1.call$3(131072, 2, 4);
+ case C.ModifierKey_2:
+ return t1.call$3(524288, 32, 64);
+ case C.ModifierKey_3:
+ return t1.call$3(1048576, 8, 16);
+ case C.ModifierKey_4:
+ case C.ModifierKey_5:
+ case C.ModifierKey_6:
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ return C.KeyboardSide_3;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.charactersIgnoringModifiers;
+ return "RawKeyEventDataIos(keyLabel: " + t1 + ", keyCode: " + _this.keyCode + ", characters: " + _this.characters + ", unmodifiedCharacters: " + t1 + ", modifiers: " + _this.modifiers + ", modifiers down: " + _this.get$modifiersPressed().toString$0(0) + ")";
+ }
+ };
+ R.RawKeyEventDataIos_getModifierSide_findSide.prototype = {
+ call$3: function(anyMask, leftMask, rightMask) {
+ var combinedMask = leftMask | rightMask,
+ t1 = this.$this.modifiers,
+ combined = t1 & combinedMask;
+ if (combined === leftMask)
+ return C.KeyboardSide_1;
+ else if (combined === rightMask)
+ return C.KeyboardSide_2;
+ else if (combined === combinedMask || (t1 & (combinedMask | anyMask)) === anyMask)
+ return C.KeyboardSide_3;
+ return null;
+ },
+ $signature: 33
+ };
+ O.RawKeyEventDataLinux.prototype = {
+ get$physicalKey: function() {
+ var t1 = C.Map_kmRDj.$index(0, this.scanCode);
+ return t1 == null ? C.PhysicalKeyboardKey_0_None : t1;
+ },
+ get$logicalKey: function() {
+ var t3, t4, t5, keyId, newKey,
+ t1 = this.keyHelper,
+ t2 = this.keyCode,
+ numPadKey = t1.numpadKey$1(t2);
+ if (numPadKey != null)
+ return numPadKey;
+ t3 = this.unicodeScalarValues;
+ t4 = t3 === 0;
+ if ((t4 ? "" : H.Primitives_stringFromCharCode(t3)).length !== 0)
+ t5 = !G.LogicalKeyboardKey_isControlCharacter(t4 ? "" : H.Primitives_stringFromCharCode(t3));
+ else
+ t5 = false;
+ if (t5) {
+ keyId = (t3 >>> 0 | 0) >>> 0;
+ t1 = C.Map_U4mPa.$index(0, keyId);
+ if (t1 == null) {
+ t1 = t4 ? "" : H.Primitives_stringFromCharCode(t3);
+ t2 = t4 ? "" : H.Primitives_stringFromCharCode(t3);
+ t2 = "Key " + t2.toUpperCase();
+ t1 = new G.LogicalKeyboardKey(keyId, t2, t1);
+ }
+ return t1;
+ }
+ newKey = t1.logicalKey$1(t2);
+ if (newKey != null)
+ return newKey;
+ t1 = "Unknown key code " + t2;
+ newKey = new G.LogicalKeyboardKey((t2 | 0) >>> 0, t1, "");
+ return newKey;
+ },
+ isModifierPressed$1: function(key) {
+ var _this = this;
+ return _this.keyHelper.isModifierPressed$5$isDown$keyCode$side(key, _this.modifiers, _this.isDown, _this.keyCode, C.KeyboardSide_0);
+ },
+ getModifierSide$1: function(key) {
+ return this.keyHelper.getModifierSide$1(key);
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.unicodeScalarValues;
+ return "RawKeyEventDataLinux(keyLabel: " + (t1 === 0 ? "" : H.Primitives_stringFromCharCode(t1)) + ", keyCode: " + _this.keyCode + ", scanCode: " + _this.scanCode + ", unicodeScalarValues: " + t1 + ", modifiers: " + _this.modifiers + ", modifiers down: " + _this.get$modifiersPressed().toString$0(0) + ")";
+ }
+ };
+ O.KeyHelper.prototype = {};
+ O.GLFWKeyHelper.prototype = {
+ isModifierPressed$5$isDown$keyCode$side: function(key, modifiers, isDown, keyCode, side) {
+ var modifierChange;
+ switch (keyCode) {
+ case 340:
+ case 344:
+ modifierChange = 1;
+ break;
+ case 341:
+ case 345:
+ modifierChange = 2;
+ break;
+ case 342:
+ case 346:
+ modifierChange = 4;
+ break;
+ case 343:
+ case 347:
+ modifierChange = 8;
+ break;
+ case 280:
+ modifierChange = 16;
+ break;
+ case 282:
+ modifierChange = 32;
+ break;
+ default:
+ modifierChange = 0;
+ break;
+ }
+ modifiers = isDown ? modifiers | modifierChange : modifiers & ~modifierChange;
+ switch (key) {
+ case C.ModifierKey_0:
+ return (modifiers & 2) !== 0;
+ case C.ModifierKey_1:
+ return (modifiers & 1) !== 0;
+ case C.ModifierKey_2:
+ return (modifiers & 4) !== 0;
+ case C.ModifierKey_3:
+ return (modifiers & 8) !== 0;
+ case C.ModifierKey_4:
+ return (modifiers & 16) !== 0;
+ case C.ModifierKey_5:
+ return (modifiers & 32) !== 0;
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ case C.ModifierKey_6:
+ return false;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getModifierSide$1: function(key) {
+ return C.KeyboardSide_3;
+ },
+ numpadKey$1: function(keyCode) {
+ return C.Map_s3kmC.$index(0, keyCode);
+ },
+ logicalKey$1: function(keyCode) {
+ return C.Map_kvIFE.$index(0, keyCode);
+ }
+ };
+ O.GtkKeyHelper.prototype = {
+ isModifierPressed$5$isDown$keyCode$side: function(key, modifiers, isDown, keyCode, side) {
+ var modifierChange;
+ switch (keyCode) {
+ case 65505:
+ case 65506:
+ modifierChange = 1;
+ break;
+ case 65507:
+ case 65508:
+ modifierChange = 4;
+ break;
+ case 65513:
+ case 65514:
+ modifierChange = 8;
+ break;
+ case 65511:
+ case 65512:
+ modifierChange = 268435456;
+ break;
+ case 65509:
+ case 65510:
+ modifierChange = 2;
+ break;
+ case 65407:
+ modifierChange = 16;
+ break;
+ default:
+ modifierChange = 0;
+ break;
+ }
+ modifiers = isDown ? modifiers | modifierChange : modifiers & ~modifierChange;
+ switch (key) {
+ case C.ModifierKey_0:
+ return (modifiers & 4) !== 0;
+ case C.ModifierKey_1:
+ return (modifiers & 1) !== 0;
+ case C.ModifierKey_2:
+ return (modifiers & 8) !== 0;
+ case C.ModifierKey_3:
+ return (modifiers & 268435456) !== 0;
+ case C.ModifierKey_4:
+ return (modifiers & 2) !== 0;
+ case C.ModifierKey_5:
+ return (modifiers & 16) !== 0;
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ case C.ModifierKey_6:
+ return false;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getModifierSide$1: function(key) {
+ return C.KeyboardSide_3;
+ },
+ numpadKey$1: function(keyCode) {
+ return C.Map_QXQIS.$index(0, keyCode);
+ },
+ logicalKey$1: function(keyCode) {
+ return C.Map_ViuZV.$index(0, keyCode);
+ }
+ };
+ O._GLFWKeyHelper_Object_KeyHelper.prototype = {};
+ O._GtkKeyHelper_Object_KeyHelper.prototype = {};
+ B.RawKeyEventDataMacOs.prototype = {
+ get$physicalKey: function() {
+ var t1 = C.Map_AY14u.$index(0, this.keyCode);
+ return t1 == null ? C.PhysicalKeyboardKey_0_None : t1;
+ },
+ get$logicalKey: function() {
+ var t2, t3, codeUnit, keyId, _this = this,
+ t1 = _this.keyCode,
+ numPadKey = C.Map_F1QoB.$index(0, t1);
+ if (numPadKey != null)
+ return numPadKey;
+ t2 = _this.charactersIgnoringModifiers;
+ t3 = t2.length;
+ if (t3 !== 0 && !G.LogicalKeyboardKey_isControlCharacter(t2) && !B.RawKeyEventDataMacOs__isUnprintableKey(t2)) {
+ codeUnit = C.JSString_methods._codeUnitAt$1(t2, 0);
+ keyId = ((t3 === 2 ? codeUnit << 16 | C.JSString_methods._codeUnitAt$1(t2, 1) : codeUnit) | 0) >>> 0;
+ t1 = C.Map_U4mPa.$index(0, keyId);
+ if (t1 == null) {
+ t1 = "Key " + t2.toUpperCase();
+ t1 = new G.LogicalKeyboardKey(keyId, t1, t2);
+ }
+ return t1;
+ }
+ if (!_this.get$physicalKey().$eq(0, C.PhysicalKeyboardKey_0_None)) {
+ keyId = (_this.get$physicalKey().usbHidUsage | 4294967296) >>> 0;
+ t1 = C.Map_U4mPa.$index(0, keyId);
+ if (t1 == null) {
+ t1 = _this.get$physicalKey();
+ t1 = new G.LogicalKeyboardKey(keyId, _this.get$physicalKey().debugName, t1.debugName);
+ }
+ return t1;
+ }
+ t2 = "Unknown macOS key code " + t1;
+ return new G.LogicalKeyboardKey((t1 | 0) >>> 0, t2, "");
+ },
+ _raw_keyboard_macos$_isLeftRightModifierPressed$4: function(side, anyMask, leftMask, rightMask) {
+ var anyOnly,
+ t1 = this.modifiers;
+ if ((t1 & anyMask) === 0)
+ return false;
+ anyOnly = (t1 & (leftMask | rightMask | anyMask)) === anyMask;
+ switch (side) {
+ case C.KeyboardSide_0:
+ return true;
+ case C.KeyboardSide_3:
+ return (t1 & leftMask) !== 0 && (t1 & rightMask) !== 0 || anyOnly;
+ case C.KeyboardSide_1:
+ return (t1 & leftMask) !== 0 || anyOnly;
+ case C.KeyboardSide_2:
+ return (t1 & rightMask) !== 0 || anyOnly;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ isModifierPressed$1: function(key) {
+ var result, _this = this,
+ independentModifier = _this.modifiers & 4294901760;
+ switch (key) {
+ case C.ModifierKey_0:
+ result = _this._raw_keyboard_macos$_isLeftRightModifierPressed$4(C.KeyboardSide_0, independentModifier & 262144, 1, 8192);
+ break;
+ case C.ModifierKey_1:
+ result = _this._raw_keyboard_macos$_isLeftRightModifierPressed$4(C.KeyboardSide_0, independentModifier & 131072, 2, 4);
+ break;
+ case C.ModifierKey_2:
+ result = _this._raw_keyboard_macos$_isLeftRightModifierPressed$4(C.KeyboardSide_0, independentModifier & 524288, 32, 64);
+ break;
+ case C.ModifierKey_3:
+ result = _this._raw_keyboard_macos$_isLeftRightModifierPressed$4(C.KeyboardSide_0, independentModifier & 1048576, 8, 16);
+ break;
+ case C.ModifierKey_4:
+ result = (independentModifier & 65536) !== 0;
+ break;
+ case C.ModifierKey_7:
+ case C.ModifierKey_5:
+ case C.ModifierKey_8:
+ case C.ModifierKey_6:
+ result = false;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return result;
+ },
+ getModifierSide$1: function(key) {
+ var t1 = new B.RawKeyEventDataMacOs_getModifierSide_findSide(this);
+ switch (key) {
+ case C.ModifierKey_0:
+ return t1.call$3(262144, 1, 8192);
+ case C.ModifierKey_1:
+ return t1.call$3(131072, 2, 4);
+ case C.ModifierKey_2:
+ return t1.call$3(524288, 32, 64);
+ case C.ModifierKey_3:
+ return t1.call$3(1048576, 8, 16);
+ case C.ModifierKey_4:
+ case C.ModifierKey_5:
+ case C.ModifierKey_6:
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ return C.KeyboardSide_3;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.charactersIgnoringModifiers;
+ return "RawKeyEventDataMacOs(keyLabel: " + t1 + ", keyCode: " + _this.keyCode + ", characters: " + _this.characters + ", unmodifiedCharacters: " + t1 + ", modifiers: " + _this.modifiers + ", modifiers down: " + _this.get$modifiersPressed().toString$0(0) + ")";
+ }
+ };
+ B.RawKeyEventDataMacOs_getModifierSide_findSide.prototype = {
+ call$3: function(anyMask, leftMask, rightMask) {
+ var combinedMask = leftMask | rightMask,
+ t1 = this.$this.modifiers,
+ combined = t1 & combinedMask;
+ if (combined === leftMask)
+ return C.KeyboardSide_1;
+ else if (combined === rightMask)
+ return C.KeyboardSide_2;
+ else if (combined === combinedMask || (t1 & (combinedMask | anyMask)) === anyMask)
+ return C.KeyboardSide_3;
+ return null;
+ },
+ $signature: 33
+ };
+ A.RawKeyEventDataWeb.prototype = {
+ get$physicalKey: function() {
+ var t1 = C.Map_YVo3E.$index(0, this.code);
+ return t1 == null ? C.PhysicalKeyboardKey_0_None : t1;
+ },
+ get$logicalKey: function() {
+ var newKey, t2,
+ t1 = this.code,
+ numPadKey = C.Map_oWD5f.$index(0, t1);
+ if (numPadKey != null)
+ return numPadKey;
+ newKey = C.Map_YVkOG.$index(0, t1);
+ if (newKey != null)
+ return newKey;
+ t2 = C.JSString_methods.get$hashCode(t1);
+ t1 = 'Unknown Web code "' + t1 + '"';
+ return new G.LogicalKeyboardKey((t2 | 0) >>> 0, t1, "");
+ },
+ isModifierPressed$1: function(key) {
+ var _this = this;
+ switch (key) {
+ case C.ModifierKey_0:
+ return (_this.metaState & 4) !== 0;
+ case C.ModifierKey_1:
+ return (_this.metaState & 1) !== 0;
+ case C.ModifierKey_2:
+ return (_this.metaState & 2) !== 0;
+ case C.ModifierKey_3:
+ return (_this.metaState & 8) !== 0;
+ case C.ModifierKey_5:
+ return (_this.metaState & 16) !== 0;
+ case C.ModifierKey_4:
+ return (_this.metaState & 32) !== 0;
+ case C.ModifierKey_6:
+ return (_this.metaState & 64) !== 0;
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ return false;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getModifierSide$1: function(key) {
+ return C.KeyboardSide_3;
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.key;
+ return "RawKeyEventDataWeb(keyLabel: " + (t1 === "Unidentified" ? "" : t1) + ", code: " + _this.code + ", metaState: " + _this.metaState + ", modifiers down: " + _this.get$modifiersPressed().toString$0(0) + ")";
+ }
+ };
+ R.RawKeyEventDataWindows.prototype = {
+ get$physicalKey: function() {
+ var t1 = C.Map_mDkQW.$index(0, this.scanCode);
+ return t1 == null ? C.PhysicalKeyboardKey_0_None : t1;
+ },
+ get$logicalKey: function() {
+ var t2, t3, t4, keyId, newKey,
+ t1 = this.keyCode,
+ numPadKey = C.Map_cG43h.$index(0, t1);
+ if (numPadKey != null)
+ return numPadKey;
+ t2 = this.characterCodePoint;
+ t3 = t2 === 0;
+ if ((t3 ? "" : H.Primitives_stringFromCharCode(t2)).length !== 0)
+ t4 = !G.LogicalKeyboardKey_isControlCharacter(t3 ? "" : H.Primitives_stringFromCharCode(t2));
+ else
+ t4 = false;
+ if (t4) {
+ keyId = (t2 >>> 0 | 0) >>> 0;
+ t1 = C.Map_U4mPa.$index(0, keyId);
+ if (t1 == null) {
+ t1 = t3 ? "" : H.Primitives_stringFromCharCode(t2);
+ t2 = t3 ? "" : H.Primitives_stringFromCharCode(t2);
+ t2 = "Key " + t2.toUpperCase();
+ t1 = new G.LogicalKeyboardKey(keyId, t2, t1);
+ }
+ return t1;
+ }
+ newKey = C.Map_2DKky.$index(0, t1);
+ if (newKey != null)
+ return newKey;
+ t2 = "Unknown Windows key code " + t1;
+ newKey = new G.LogicalKeyboardKey((t1 | 0) >>> 0, t2, "");
+ return newKey;
+ },
+ _isLeftRightModifierPressed$4: function(side, anyMask, leftMask, rightMask) {
+ var anyOnly,
+ t1 = this.modifiers;
+ if ((t1 & anyMask) === 0 && (t1 & leftMask) === 0 && (t1 & rightMask) === 0)
+ return false;
+ anyOnly = (t1 & (leftMask | rightMask | anyMask)) === anyMask;
+ switch (side) {
+ case C.KeyboardSide_0:
+ return true;
+ case C.KeyboardSide_3:
+ return (t1 & leftMask) !== 0 && (t1 & rightMask) !== 0 || anyOnly;
+ case C.KeyboardSide_1:
+ return (t1 & leftMask) !== 0 || anyOnly;
+ case C.KeyboardSide_2:
+ return (t1 & rightMask) !== 0 || anyOnly;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ isModifierPressed$1: function(key) {
+ var result, _this = this;
+ switch (key) {
+ case C.ModifierKey_0:
+ result = _this._isLeftRightModifierPressed$4(C.KeyboardSide_0, 8, 16, 32);
+ break;
+ case C.ModifierKey_1:
+ result = _this._isLeftRightModifierPressed$4(C.KeyboardSide_0, 1, 2, 4);
+ break;
+ case C.ModifierKey_2:
+ result = _this._isLeftRightModifierPressed$4(C.KeyboardSide_0, 64, 128, 256);
+ break;
+ case C.ModifierKey_3:
+ result = _this._isLeftRightModifierPressed$4(C.KeyboardSide_0, 1536, 512, 1024);
+ break;
+ case C.ModifierKey_4:
+ result = (_this.modifiers & 2048) !== 0;
+ break;
+ case C.ModifierKey_6:
+ result = (_this.modifiers & 8192) !== 0;
+ break;
+ case C.ModifierKey_5:
+ result = (_this.modifiers & 4096) !== 0;
+ break;
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ result = false;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return result;
+ },
+ getModifierSide$1: function(key) {
+ var t1 = new R.RawKeyEventDataWindows_getModifierSide_findSide(this);
+ switch (key) {
+ case C.ModifierKey_0:
+ return t1.call$3(16, 32, 8);
+ case C.ModifierKey_1:
+ return t1.call$3(2, 4, 1);
+ case C.ModifierKey_2:
+ return t1.call$3(128, 256, 64);
+ case C.ModifierKey_3:
+ return t1.call$3(512, 1024, 0);
+ case C.ModifierKey_4:
+ case C.ModifierKey_5:
+ case C.ModifierKey_6:
+ case C.ModifierKey_7:
+ case C.ModifierKey_8:
+ return C.KeyboardSide_3;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ R.RawKeyEventDataWindows_getModifierSide_findSide.prototype = {
+ call$3: function(leftMask, rightMask, anyMask) {
+ var combinedMask = leftMask | rightMask,
+ t1 = this.$this.modifiers,
+ combined = t1 & combinedMask;
+ if (combined === leftMask)
+ return C.KeyboardSide_1;
+ else if (combined === rightMask)
+ return C.KeyboardSide_2;
+ else if (combined === combinedMask || (t1 & (combinedMask | anyMask)) === anyMask)
+ return C.KeyboardSide_3;
+ return null;
+ },
+ $signature: 33
+ };
+ K.RestorationManager.prototype = {
+ get$rootBucket: function() {
+ var _this = this;
+ if (_this._rootBucketIsValid)
+ return new O.SynchronousFuture(_this._restoration$_rootBucket, type$.SynchronousFuture_nullable_RestorationBucket);
+ if (_this._pendingRootBucket == null) {
+ _this._pendingRootBucket = new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_nullable_RestorationBucket), type$._AsyncCompleter_nullable_RestorationBucket);
+ _this._getRootBucketFromEngine$0();
+ }
+ return _this._pendingRootBucket.future;
+ },
+ _getRootBucketFromEngine$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this, config;
+ var $async$_getRootBucketFromEngine$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait(C.OptionalMethodChannel_fgL.invokeMethod$1$1("get", type$.Map_dynamic_dynamic), $async$_getRootBucketFromEngine$0);
+ case 3:
+ // returning from await.
+ config = $async$result;
+ if ($async$self._pendingRootBucket == null) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $async$self._parseAndHandleRestorationUpdateFromEngine$1(config);
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_getRootBucketFromEngine$0, $async$completer);
+ },
+ _parseAndHandleRestorationUpdateFromEngine$1: function(update) {
+ var t1 = update == null,
+ t2 = !t1 && H._asBoolS(J.$index$asx(update, "enabled"));
+ this.handleRestorationUpdateFromEngine$2$data$enabled(t1 ? null : type$.nullable_Uint8List._as(J.$index$asx(update, "data")), t2);
+ },
+ handleRestorationUpdateFromEngine$2$data$enabled: function(data, enabled) {
+ var oldRoot, t2, _this = this,
+ t1 = _this._rootBucketIsValid && enabled;
+ _this._isReplacing = t1;
+ if (t1)
+ $.SchedulerBinding__instance.SchedulerBinding__postFrameCallbacks.push(new K.RestorationManager_handleRestorationUpdateFromEngine_closure(_this));
+ oldRoot = _this._restoration$_rootBucket;
+ if (enabled) {
+ t1 = _this._decodeRestorationData$1(data);
+ t2 = type$.String;
+ if (t1 == null) {
+ t1 = type$.dynamic;
+ t1 = P.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
+ }
+ t2 = new K.RestorationBucket(t1, _this, null, "root", P.LinkedHashMap_LinkedHashMap$_empty(t2, type$.RestorationBucket), P.LinkedHashMap_LinkedHashMap$_empty(t2, type$.List_RestorationBucket));
+ t1 = t2;
+ } else
+ t1 = null;
+ _this._restoration$_rootBucket = t1;
+ _this._rootBucketIsValid = true;
+ t2 = _this._pendingRootBucket;
+ if (t2 != null)
+ t2.complete$1(0, t1);
+ _this._pendingRootBucket = null;
+ if (_this._restoration$_rootBucket != oldRoot) {
+ _this.notifyListeners$0();
+ if (oldRoot != null)
+ oldRoot.dispose$0(0);
+ }
+ },
+ _methodHandler$1: function($call) {
+ return this._methodHandler$body$RestorationManager($call);
+ },
+ _methodHandler$body$RestorationManager: function($call) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this, t1;
+ var $async$_methodHandler$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $call.method;
+ switch (t1) {
+ case "push":
+ $async$self._parseAndHandleRestorationUpdateFromEngine$1(type$.Map_dynamic_dynamic._as($call.$arguments));
+ break;
+ default:
+ throw H.wrapException(P.UnimplementedError$(t1 + " was invoked but isn't implemented by " + H.getRuntimeType($async$self).toString$0(0)));
+ }
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_methodHandler$1, $async$completer);
+ },
+ _decodeRestorationData$1: function(data) {
+ if (data == null)
+ return null;
+ return type$.Map_dynamic_dynamic._as(C.C_StandardMessageCodec.decodeMessage$1(H.NativeByteData_NativeByteData$view(data.buffer, data.byteOffset, data.byteLength)));
+ },
+ scheduleSerializationFor$1: function(bucket) {
+ var _this = this;
+ _this._bucketsNeedingSerialization.add$1(0, bucket);
+ if (!_this._serializationScheduled) {
+ _this._serializationScheduled = true;
+ $.SchedulerBinding__instance.SchedulerBinding__postFrameCallbacks.push(new K.RestorationManager_scheduleSerializationFor_closure(_this));
+ }
+ },
+ _doSerialization$0: function() {
+ var t1, t2, encoded, _this = this;
+ if (!_this._serializationScheduled)
+ return;
+ _this._serializationScheduled = false;
+ for (t1 = _this._bucketsNeedingSerialization, t2 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t2.moveNext$0();)
+ t2._collection$_current._needsSerialization = false;
+ t1.clear$0(0);
+ encoded = C.C_StandardMessageCodec.encodeMessage$1(_this._restoration$_rootBucket._rawData);
+ C.OptionalMethodChannel_fgL.invokeMethod$1$2("put", H.NativeUint8List_NativeUint8List$view(encoded.buffer, encoded.byteOffset, encoded.byteLength), type$.void);
+ },
+ flushData$0: function() {
+ if ($.SchedulerBinding__instance.SchedulerBinding__hasScheduledFrame)
+ return;
+ this._doSerialization$0();
+ }
+ };
+ K.RestorationManager_handleRestorationUpdateFromEngine_closure.prototype = {
+ call$1: function(_) {
+ this.$this._isReplacing = false;
+ },
+ $signature: 4
+ };
+ K.RestorationManager_scheduleSerializationFor_closure.prototype = {
+ call$1: function(_) {
+ return this.$this._doSerialization$0();
+ },
+ $signature: 4
+ };
+ K.RestorationBucket.prototype = {
+ get$_rawChildren: function() {
+ return type$.Map_dynamic_dynamic._as(J.putIfAbsent$2$x(this._rawData, "c", new K.RestorationBucket__rawChildren_closure()));
+ },
+ get$_rawValues: function() {
+ return type$.Map_dynamic_dynamic._as(J.putIfAbsent$2$x(this._rawData, "v", new K.RestorationBucket__rawValues_closure()));
+ },
+ remove$1$1: function(_, restorationId, $P) {
+ var _this = this,
+ needsUpdate = J.containsKey$1$x(_this.get$_rawValues(), restorationId),
+ result = $P._eval$1("0?")._as(J.remove$1$ax(_this.get$_rawValues(), restorationId));
+ if (J.get$isEmpty$asx(_this.get$_rawValues()))
+ J.remove$1$ax(_this._rawData, "v");
+ if (needsUpdate)
+ _this._markNeedsSerialization$0();
+ return result;
+ },
+ remove$1: function($receiver, restorationId) {
+ return this.remove$1$1($receiver, restorationId, type$.dynamic);
+ },
+ claimChild$2$debugOwner: function(restorationId, debugOwner) {
+ var child, t2, t3, _this = this,
+ t1 = _this._claimedChildren;
+ if (t1.containsKey$1(0, restorationId) || !J.containsKey$1$x(_this.get$_rawChildren(), restorationId)) {
+ t1 = type$.String;
+ child = new K.RestorationBucket(P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.dynamic), null, null, restorationId, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.RestorationBucket), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.List_RestorationBucket));
+ _this.adoptChild$1(child);
+ return child;
+ }
+ t2 = type$.String;
+ t3 = _this._manager;
+ child = new K.RestorationBucket(type$.Map_dynamic_dynamic._as(J.$index$asx(_this.get$_rawChildren(), restorationId)), t3, _this, restorationId, P.LinkedHashMap_LinkedHashMap$_empty(t2, type$.RestorationBucket), P.LinkedHashMap_LinkedHashMap$_empty(t2, type$.List_RestorationBucket));
+ t1.$indexSet(0, restorationId, child);
+ return child;
+ },
+ adoptChild$1: function(child) {
+ var _this = this,
+ t1 = child._restoration$_parent;
+ if (t1 !== _this) {
+ if (t1 != null)
+ t1._removeChildData$1(child);
+ child._restoration$_parent = _this;
+ _this._addChildData$1(child);
+ if (child._manager != _this._manager)
+ _this._recursivelyUpdateManager$1(child);
+ }
+ },
+ _dropChild$1: function(child) {
+ this._removeChildData$1(child);
+ child._restoration$_parent = null;
+ if (child._manager != null) {
+ child._updateManager$1(null);
+ child._visitChildren$1(this.get$_recursivelyUpdateManager());
+ }
+ },
+ _markNeedsSerialization$0: function() {
+ var t1, _this = this;
+ if (!_this._needsSerialization) {
+ _this._needsSerialization = true;
+ t1 = _this._manager;
+ if (t1 != null)
+ t1.scheduleSerializationFor$1(_this);
+ }
+ },
+ _recursivelyUpdateManager$1: function(bucket) {
+ bucket._updateManager$1(this._manager);
+ bucket._visitChildren$1(this.get$_recursivelyUpdateManager());
+ },
+ _updateManager$1: function(newManager) {
+ var _this = this,
+ t1 = _this._manager;
+ if (t1 == newManager)
+ return;
+ if (_this._needsSerialization)
+ if (t1 != null)
+ t1._bucketsNeedingSerialization.remove$1(0, _this);
+ _this._manager = newManager;
+ if (_this._needsSerialization && newManager != null) {
+ _this._needsSerialization = false;
+ _this._markNeedsSerialization$0();
+ }
+ },
+ _removeChildData$1: function(child) {
+ var t1, pendingChildren, t2, _this = this;
+ if (J.$eq$(_this._claimedChildren.remove$1(0, child._restorationId), child)) {
+ J.remove$1$ax(_this.get$_rawChildren(), child._restorationId);
+ t1 = _this._childrenToAdd;
+ pendingChildren = t1.$index(0, child._restorationId);
+ if (pendingChildren != null) {
+ t2 = J.getInterceptor$ax(pendingChildren);
+ _this._finalizeAddChildData$1(t2.removeLast$0(pendingChildren));
+ if (t2.get$isEmpty(pendingChildren))
+ t1.remove$1(0, child._restorationId);
+ }
+ if (J.get$isEmpty$asx(_this.get$_rawChildren()))
+ J.remove$1$ax(_this._rawData, "c");
+ _this._markNeedsSerialization$0();
+ return;
+ }
+ t1 = _this._childrenToAdd;
+ t2 = t1.$index(0, child._restorationId);
+ if (t2 != null)
+ J.remove$1$ax(t2, child);
+ t2 = t1.$index(0, child._restorationId);
+ if ((t2 == null ? null : J.get$isEmpty$asx(t2)) === true)
+ t1.remove$1(0, child._restorationId);
+ },
+ _addChildData$1: function(child) {
+ var _this = this;
+ if (_this._claimedChildren.containsKey$1(0, child._restorationId)) {
+ J.add$1$ax(_this._childrenToAdd.putIfAbsent$2(0, child._restorationId, new K.RestorationBucket__addChildData_closure()), child);
+ _this._markNeedsSerialization$0();
+ return;
+ }
+ _this._finalizeAddChildData$1(child);
+ _this._markNeedsSerialization$0();
+ },
+ _finalizeAddChildData$1: function(child) {
+ this._claimedChildren.$indexSet(0, child._restorationId, child);
+ J.$indexSet$ax(this.get$_rawChildren(), child._restorationId, child._rawData);
+ },
+ _visitChildren$2$concurrentModification: function(visitor, concurrentModification) {
+ var t2, children,
+ t1 = this._claimedChildren;
+ t1 = t1.get$values(t1);
+ t2 = this._childrenToAdd;
+ t2 = t2.get$values(t2);
+ children = t1.followedBy$1(0, new H.ExpandIterable(t2, new K.RestorationBucket__visitChildren_closure(), H._instanceType(t2)._eval$1("ExpandIterable")));
+ J.forEach$1$ax(concurrentModification ? P.List_List$of(children, false, H._instanceType(children)._eval$1("Iterable.E")) : children, visitor);
+ },
+ _visitChildren$1: function(visitor) {
+ return this._visitChildren$2$concurrentModification(visitor, false);
+ },
+ rename$1: function(newRestorationId) {
+ var t1, _this = this;
+ if (newRestorationId == _this._restorationId)
+ return;
+ t1 = _this._restoration$_parent;
+ if (t1 != null)
+ t1._removeChildData$1(_this);
+ _this._restorationId = newRestorationId;
+ t1 = _this._restoration$_parent;
+ if (t1 != null)
+ t1._addChildData$1(_this);
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ _this._visitChildren$2$concurrentModification(_this.get$_dropChild(), true);
+ _this._claimedChildren.clear$0(0);
+ _this._childrenToAdd.clear$0(0);
+ t1 = _this._restoration$_parent;
+ if (t1 != null)
+ t1._removeChildData$1(_this);
+ _this._restoration$_parent = null;
+ _this._updateManager$1(null);
+ _this._debugDisposed = true;
+ },
+ toString$0: function(_) {
+ return "RestorationBucket(restorationId: " + H.S(this._restorationId) + ", owner: " + H.S(this._debugOwner) + ")";
+ }
+ };
+ K.RestorationBucket__rawChildren_closure.prototype = {
+ call$0: function() {
+ var t1 = type$.dynamic;
+ return P.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
+ },
+ $signature: 119
+ };
+ K.RestorationBucket__rawValues_closure.prototype = {
+ call$0: function() {
+ var t1 = type$.dynamic;
+ return P.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
+ },
+ $signature: 119
+ };
+ K.RestorationBucket__addChildData_closure.prototype = {
+ call$0: function() {
+ return H.setRuntimeTypeInfo([], type$.JSArray_RestorationBucket);
+ },
+ $signature: 236
+ };
+ K.RestorationBucket__visitChildren_closure.prototype = {
+ call$1: function(buckets) {
+ return buckets;
+ },
+ $signature: 237
+ };
+ X.ApplicationSwitcherDescription.prototype = {};
+ X.SystemUiOverlayStyle.prototype = {
+ _toMap$0: function() {
+ var t2, t3, t4, _this = this, _null = null,
+ t1 = _this.systemNavigationBarColor;
+ t1 = t1 == null ? _null : t1.value;
+ t2 = _this.statusBarBrightness;
+ t2 = t2 == null ? _null : t2._ui$_name;
+ t3 = _this.statusBarIconBrightness;
+ t3 = t3 == null ? _null : t3._ui$_name;
+ t4 = _this.systemNavigationBarIconBrightness;
+ return P.LinkedHashMap_LinkedHashMap$_literal(["systemNavigationBarColor", t1, "systemNavigationBarDividerColor", null, "statusBarColor", null, "statusBarBrightness", t2, "statusBarIconBrightness", t3, "systemNavigationBarIconBrightness", t4 == null ? _null : t4._ui$_name], type$.String, type$.dynamic);
+ },
+ toString$0: function(_) {
+ return P.MapBase_mapToString(this._toMap$0());
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.systemNavigationBarColor, _this.systemNavigationBarDividerColor, _this.statusBarColor, _this.statusBarBrightness, _this.statusBarIconBrightness, _this.systemNavigationBarIconBrightness, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof X.SystemUiOverlayStyle)
+ if (J.$eq$(other.systemNavigationBarColor, _this.systemNavigationBarColor))
+ t1 = other.statusBarIconBrightness == _this.statusBarIconBrightness && other.statusBarBrightness == _this.statusBarBrightness && other.systemNavigationBarIconBrightness == _this.systemNavigationBarIconBrightness;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ }
+ };
+ X.SystemChrome_setSystemUIOverlayStyle_closure.prototype = {
+ call$0: function() {
+ if (!J.$eq$($.SystemChrome__pendingStyle, $.SystemChrome__latestStyle)) {
+ C.OptionalMethodChannel_cWd.invokeMethod$1$2("SystemChrome.setSystemUIOverlayStyle", $.SystemChrome__pendingStyle._toMap$0(), type$.void);
+ $.SystemChrome__latestStyle = $.SystemChrome__pendingStyle;
+ }
+ $.SystemChrome__pendingStyle = null;
+ },
+ $signature: 0
+ };
+ V.SystemSoundType.prototype = {
+ toString$0: function(_) {
+ return this._system_sound$_name;
+ }
+ };
+ X.TextSelection.prototype = {
+ toString$0: function(_) {
+ var _this = this;
+ return "TextSelection(baseOffset: " + H.S(_this.baseOffset) + ", extentOffset: " + H.S(_this.extentOffset) + ", affinity: " + _this.affinity.toString$0(0) + ", isDirectional: " + _this.isDirectional + ")";
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ return other instanceof X.TextSelection && other.baseOffset == _this.baseOffset && other.extentOffset == _this.extentOffset && other.affinity === _this.affinity && other.isDirectional === _this.isDirectional;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(J.get$hashCode$(_this.baseOffset), J.get$hashCode$(_this.extentOffset), H.Primitives_objectHashCode(_this.affinity), C.JSBool_methods.get$hashCode(_this.isDirectional), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ copyWith$2$baseOffset$extentOffset: function(baseOffset, extentOffset) {
+ var _this = this,
+ t1 = baseOffset == null ? _this.baseOffset : baseOffset,
+ t2 = extentOffset == null ? _this.extentOffset : extentOffset;
+ return X.TextSelection$(_this.affinity, t1, t2, _this.isDirectional);
+ }
+ };
+ B.TextInputFormatter.prototype = {};
+ B.FilteringTextInputFormatter.prototype = {
+ formatEditUpdate$2: function(oldValue, newValue) {
+ var manipulatedText, manipulatedSelection, beforeSelection, inSelection, afterSelection,
+ t1 = new B.FilteringTextInputFormatter_formatEditUpdate_closure(this),
+ t2 = newValue.selection,
+ selectionStartIndex = t2.start,
+ selectionEndIndex = t2.end,
+ t3 = selectionStartIndex < 0 || selectionEndIndex < 0,
+ t4 = newValue.text;
+ if (t3) {
+ manipulatedText = t1.call$1(t4);
+ manipulatedSelection = null;
+ } else {
+ beforeSelection = t1.call$1(J.substring$2$s(t4, 0, selectionStartIndex));
+ inSelection = t1.call$1(C.JSString_methods.substring$2(t4, selectionStartIndex, selectionEndIndex));
+ afterSelection = t1.call$1(C.JSString_methods.substring$1(t4, selectionEndIndex));
+ manipulatedText = C.JSString_methods.$add(J.$add$ansx(beforeSelection, inSelection), afterSelection);
+ t1 = beforeSelection.length;
+ manipulatedSelection = t2.baseOffset > t2.extentOffset ? t2.copyWith$2$baseOffset$extentOffset(t1 + inSelection.length, t1) : t2.copyWith$2$baseOffset$extentOffset(t1, t1 + inSelection.length);
+ }
+ t1 = manipulatedSelection == null ? C.TextSelection_TbC : manipulatedSelection;
+ return new N.TextEditingValue(manipulatedText, t1, manipulatedText == t4 ? newValue.composing : C.TextRange_m1_m1);
+ }
+ };
+ B.FilteringTextInputFormatter_formatEditUpdate_closure.prototype = {
+ call$1: function(substring) {
+ var t1 = this.$this;
+ substring.toString;
+ return H.stringReplaceAllFuncUnchecked(substring, t1.filterPattern, new B.FilteringTextInputFormatter_formatEditUpdate__closure(t1), null);
+ },
+ $signature: 38
+ };
+ B.FilteringTextInputFormatter_formatEditUpdate__closure.prototype = {
+ call$1: function(match) {
+ return "";
+ },
+ $signature: 238
+ };
+ N.SmartDashesType.prototype = {
+ toString$0: function(_) {
+ return this._text_input$_name;
+ }
+ };
+ N.SmartQuotesType.prototype = {
+ toString$0: function(_) {
+ return this._text_input$_name;
+ }
+ };
+ N.TextInputType.prototype = {
+ toJson$0: function() {
+ return P.LinkedHashMap_LinkedHashMap$_literal(["name", "TextInputType." + C.List_Gn1[this.index], "signed", this.signed, "decimal", this.decimal], type$.String, type$.dynamic);
+ },
+ toString$0: function(_) {
+ return "TextInputType(name: " + ("TextInputType." + C.List_Gn1[this.index]) + ", signed: " + H.S(this.signed) + ", decimal: " + H.S(this.decimal) + ")";
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return other instanceof N.TextInputType && other.index === this.index && other.signed == this.signed && other.decimal == this.decimal;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.index, this.signed, this.decimal, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ N.TextInputAction.prototype = {
+ toString$0: function(_) {
+ return this._text_input$_name;
+ }
+ };
+ N.TextCapitalization0.prototype = {
+ toString$0: function(_) {
+ return "TextCapitalization.none";
+ }
+ };
+ N.TextInputConfiguration.prototype = {
+ toJson$0: function() {
+ var t2, _this = this,
+ t1 = P.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic);
+ t1.$indexSet(0, "inputType", _this.inputType.toJson$0());
+ t1.$indexSet(0, "readOnly", _this.readOnly);
+ t1.$indexSet(0, "obscureText", false);
+ t1.$indexSet(0, "autocorrect", true);
+ t1.$indexSet(0, "smartDashesType", C.JSInt_methods.toString$0(_this.smartDashesType.index));
+ t1.$indexSet(0, "smartQuotesType", C.JSInt_methods.toString$0(_this.smartQuotesType.index));
+ t1.$indexSet(0, "enableSuggestions", true);
+ t1.$indexSet(0, "actionLabel", null);
+ t1.$indexSet(0, "inputAction", _this.inputAction._text_input$_name);
+ t1.$indexSet(0, "textCapitalization", "TextCapitalization.none");
+ t1.$indexSet(0, "keyboardAppearance", _this.keyboardAppearance._ui$_name);
+ t2 = _this.autofillConfiguration;
+ if (t2 != null)
+ t1.$indexSet(0, "autofill", t2.toJson$0());
+ return t1;
+ }
+ };
+ N.FloatingCursorDragState.prototype = {
+ toString$0: function(_) {
+ return this._text_input$_name;
+ }
+ };
+ N.TextEditingValue.prototype = {
+ toJSON$0: function() {
+ var t1 = this.selection,
+ t2 = this.composing;
+ return P.LinkedHashMap_LinkedHashMap$_literal(["text", this.text, "selectionBase", t1.baseOffset, "selectionExtent", t1.extentOffset, "selectionAffinity", t1.affinity._ui$_name, "selectionIsDirectional", t1.isDirectional, "composingBase", t2.start, "composingExtent", t2.end], type$.String, type$.dynamic);
+ },
+ copyWith$2$composing$selection: function(composing, selection) {
+ var t1 = selection == null ? this.selection : selection,
+ t2 = composing == null ? this.composing : composing;
+ return new N.TextEditingValue(this.text, t1, t2);
+ },
+ copyWith$1$composing: function(composing) {
+ return this.copyWith$2$composing$selection(composing, null);
+ },
+ copyWith$1$selection: function(selection) {
+ return this.copyWith$2$composing$selection(null, selection);
+ },
+ toString$0: function(_) {
+ return "TextEditingValue(text: \u2524" + H.S(this.text) + "\u251c, selection: " + this.selection.toString$0(0) + ", composing: " + this.composing.toString$0(0) + ")";
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (_this === other)
+ return true;
+ return other instanceof N.TextEditingValue && other.text == _this.text && other.selection.$eq(0, _this.selection) && other.composing.$eq(0, _this.composing);
+ },
+ get$hashCode: function(_) {
+ var t1 = this.selection,
+ t2 = this.composing;
+ return P.hashValues(J.get$hashCode$(this.text), t1.get$hashCode(t1), P.hashValues(J.get$hashCode$(t2.start), J.get$hashCode$(t2.end), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd), C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ N.TextInputConnection.prototype = {
+ setComposingRect$1: function(rect) {
+ var validRect, t1, t2, t3;
+ if (rect.$eq(0, this._cachedRect))
+ return;
+ this._cachedRect = rect;
+ validRect = rect.get$isFinite(rect) ? rect : new P.Rect(0, 0, -1, -1);
+ t1 = $.$get$TextInput__instance();
+ t2 = validRect.left;
+ t3 = validRect.top;
+ t3 = P.LinkedHashMap_LinkedHashMap$_literal(["width", validRect.right - t2, "height", validRect.bottom - t3, "x", t2, "y", t3], type$.String, type$.dynamic);
+ t1.get$_channel().invokeMethod$1$2("TextInput.setMarkedTextRect", t3, type$.void);
+ },
+ setStyle$5$fontFamily$fontSize$fontWeight$textAlign$textDirection: function(_, fontFamily, fontSize, fontWeight, textAlign, textDirection) {
+ var t1 = $.$get$TextInput__instance(),
+ t2 = fontWeight == null ? null : fontWeight.index;
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["fontFamily", fontFamily, "fontSize", fontSize, "fontWeightIndex", t2, "textAlignIndex", textAlign.index, "textDirectionIndex", textDirection.index], type$.String, type$.dynamic);
+ t1.get$_channel().invokeMethod$1$2("TextInput.setStyle", t2, type$.void);
+ }
+ };
+ N.TextInput.prototype = {
+ _attach$2: function(connection, configuration) {
+ var _this = this;
+ _this.get$_channel().invokeMethod$1$2("TextInput.setClient", [connection._id, configuration.toJson$0()], type$.void);
+ _this._currentConnection = connection;
+ _this.__TextInput__currentConfiguration_isSet = true;
+ _this.__TextInput__currentConfiguration = configuration;
+ },
+ get$_channel: function() {
+ return this.__TextInput__channel_isSet ? this.__TextInput__channel : H.throwExpression(H.LateError$fieldNI("_channel"));
+ },
+ _handleTextInputInvocation$1: function(methodCall) {
+ return this._handleTextInputInvocation$body$TextInput(methodCall);
+ },
+ _handleTextInputInvocation$body$TextInput: function(methodCall) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$returnValue, $async$self = this, method, args, editingValue, t2, t3, client, action, t4, offset, t5, currentTextPosition, t6, centeredPoint, rawCursorOffset, t7, bottomBound, rightBound, deltaPosition, currentX, currentY, adjustedX, adjustedY, t8, t1;
+ var $async$_handleTextInputInvocation$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._currentConnection;
+ if (t1 == null) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ method = methodCall.method;
+ if (method === "TextInputClient.requestExistingInputState") {
+ $async$self._attach$2(t1, $async$self.__TextInput__currentConfiguration_isSet ? $async$self.__TextInput__currentConfiguration : H.throwExpression(H.LateError$fieldNI("_currentConfiguration")));
+ t1 = $async$self._currentConnection._client._widget.controller._change_notifier$_value;
+ if (t1 != null)
+ $async$self.get$_channel().invokeMethod$1$2("TextInput.setEditingState", t1.toJSON$0(), type$.void);
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ args = type$.List_dynamic._as(methodCall.$arguments);
+ if (method === string$.TextIn) {
+ t1 = type$.Map_String_dynamic;
+ editingValue = t1._as(J.$index$asx(args, 1));
+ for (t2 = J.getInterceptor$x(editingValue), t3 = J.get$iterator$ax(t2.get$keys(editingValue)); t3.moveNext$0();)
+ N.TextEditingValue_TextEditingValue$fromJSON(t1._as(t2.$index(editingValue, t3.get$current(t3))));
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ t1 = J.getInterceptor$asx(args);
+ client = H._asIntS(t1.$index(args, 0));
+ t2 = $async$self._currentConnection;
+ if (client !== t2._id) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ switch (method) {
+ case "TextInputClient.updateEditingState":
+ t2._client.updateEditingValue$1(N.TextEditingValue_TextEditingValue$fromJSON(type$.Map_String_dynamic._as(t1.$index(args, 1))));
+ break;
+ case "TextInputClient.performAction":
+ t2 = t2._client;
+ action = N._toTextInputAction(H._asStringS(t1.$index(args, 1)));
+ switch (action) {
+ case C.TextInputAction_12:
+ if (t2._widget.maxLines === 1)
+ t2._finalizeEditing$2$shouldUnfocus(action, true);
+ break;
+ case C.TextInputAction_2:
+ case C.TextInputAction_3:
+ case C.TextInputAction_6:
+ case C.TextInputAction_7:
+ case C.TextInputAction_4:
+ case C.TextInputAction_5:
+ t2._finalizeEditing$2$shouldUnfocus(action, true);
+ break;
+ case C.TextInputAction_8:
+ case C.TextInputAction_11:
+ case C.TextInputAction_9:
+ case C.TextInputAction_0:
+ case C.TextInputAction_10:
+ case C.TextInputAction_1:
+ t2._finalizeEditing$2$shouldUnfocus(action, false);
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ }
+ break;
+ case "TextInputClient.performPrivateCommand":
+ t2 = t2._client;
+ t3 = H._asStringS(J.$index$asx(t1.$index(args, 1), "action"));
+ t1 = type$.Map_String_dynamic._as(J.$index$asx(t1.$index(args, 1), "data"));
+ t2._widget.onAppPrivateCommand.call$2(t3, t1);
+ break;
+ case "TextInputClient.updateFloatingCursor":
+ t2 = t2._client;
+ t3 = N._toTextCursorAction(H._asStringS(t1.$index(args, 1)));
+ t1 = type$.Map_String_dynamic._as(t1.$index(args, 2));
+ if (t3 === C.FloatingCursorDragState_1) {
+ t4 = J.getInterceptor$asx(t1);
+ offset = new P.Offset(H._asDoubleS(t4.$index(t1, "X")), H._asDoubleS(t4.$index(t1, "Y")));
+ } else
+ offset = C.Offset_0_0;
+ switch (t3) {
+ case C.FloatingCursorDragState_0:
+ if (t2.get$_floatingCursorResetController().get$isAnimating()) {
+ t2.get$_floatingCursorResetController().stop$0(0);
+ t2._onFloatingCursorResetTick$0();
+ }
+ t2._pointOffsetOrigin = offset;
+ t1 = t2._editableKey;
+ t4 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t4.toString;
+ t5 = type$.RenderEditable;
+ currentTextPosition = new P.TextPosition(t5._as(t4)._selection.baseOffset, C.TextAffinity_1);
+ t4 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t4.toString;
+ t4 = t5._as(t4).getLocalRectForCaret$1(currentTextPosition);
+ t2._startCaretRect = t4;
+ t4 = t4.get$center();
+ t6 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t6.toString;
+ t2._lastBoundedOffset = t4.$sub(0, new P.Offset(0, t5._as(t6)._editable$_textPainter.get$preferredLineHeight() / 2));
+ t2._lastTextPosition = currentTextPosition;
+ t1 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t1.toString;
+ t5._as(t1);
+ t5 = t2._lastBoundedOffset;
+ t5.toString;
+ t2 = t2._lastTextPosition;
+ t2.toString;
+ t1.setFloatingCursor$3(t3, t5, t2);
+ break;
+ case C.FloatingCursorDragState_1:
+ t1 = t2._pointOffsetOrigin;
+ t1.toString;
+ centeredPoint = offset.$sub(0, t1);
+ t1 = t2._startCaretRect.get$center().$add(0, centeredPoint);
+ t4 = t2._editableKey;
+ t5 = $.GlobalKey__registry.$index(0, t4).get$renderObject();
+ t5.toString;
+ t6 = type$.RenderEditable;
+ rawCursorOffset = t1.$sub(0, new P.Offset(0, t6._as(t5)._editable$_textPainter.get$preferredLineHeight() / 2));
+ t5 = $.GlobalKey__registry.$index(0, t4).get$renderObject();
+ t5.toString;
+ t6._as(t5);
+ t1 = t5._editable$_textPainter;
+ t7 = t1._text_painter$_paragraph;
+ t7 = t7.get$height(t7);
+ t7.toString;
+ bottomBound = Math.ceil(t7) - t1.get$preferredLineHeight() + 5;
+ rightBound = t1.get$width(t1) + 4;
+ t1 = t5._previousOffset;
+ deltaPosition = t1 != null ? rawCursorOffset.$sub(0, t1) : C.Offset_0_0;
+ if (t5._resetOriginOnLeft && deltaPosition._dx > 0) {
+ t5._relativeOrigin = new P.Offset(rawCursorOffset._dx - -4, t5._relativeOrigin._dy);
+ t5._resetOriginOnLeft = false;
+ } else if (t5._resetOriginOnRight && deltaPosition._dx < 0) {
+ t5._relativeOrigin = new P.Offset(rawCursorOffset._dx - rightBound, t5._relativeOrigin._dy);
+ t5._resetOriginOnRight = false;
+ }
+ if (t5._resetOriginOnTop && deltaPosition._dy > 0) {
+ t5._relativeOrigin = new P.Offset(t5._relativeOrigin._dx, rawCursorOffset._dy - -4);
+ t5._resetOriginOnTop = false;
+ } else if (t5._resetOriginOnBottom && deltaPosition._dy < 0) {
+ t5._relativeOrigin = new P.Offset(t5._relativeOrigin._dx, rawCursorOffset._dy - bottomBound);
+ t5._resetOriginOnBottom = false;
+ }
+ t1 = t5._relativeOrigin;
+ currentX = rawCursorOffset._dx - t1._dx;
+ currentY = rawCursorOffset._dy - t1._dy;
+ adjustedX = Math.min(Math.max(currentX, -4), rightBound);
+ adjustedY = Math.min(Math.max(currentY, -4), bottomBound);
+ if (currentX < -4 && deltaPosition._dx < 0)
+ t5._resetOriginOnLeft = true;
+ else if (currentX > rightBound && deltaPosition._dx > 0)
+ t5._resetOriginOnRight = true;
+ if (currentY < -4 && deltaPosition._dy < 0)
+ t5._resetOriginOnTop = true;
+ else if (currentY > bottomBound && deltaPosition._dy > 0)
+ t5._resetOriginOnBottom = true;
+ t5._previousOffset = rawCursorOffset;
+ t2._lastBoundedOffset = new P.Offset(adjustedX, adjustedY);
+ t1 = $.GlobalKey__registry.$index(0, t4).get$renderObject();
+ t1.toString;
+ t6._as(t1);
+ t5 = $.GlobalKey__registry.$index(0, t4).get$renderObject();
+ t5.toString;
+ t6._as(t5);
+ t7 = t2._lastBoundedOffset;
+ t7.toString;
+ t8 = $.GlobalKey__registry.$index(0, t4).get$renderObject();
+ t8.toString;
+ t8 = t7.$add(0, new P.Offset(0, t6._as(t8)._editable$_textPainter.get$preferredLineHeight() / 2));
+ t2._lastTextPosition = t1.getPositionForPoint$1(T.MatrixUtils_transformPoint(t5.getTransformTo$1(0, null), t8));
+ t4 = $.GlobalKey__registry.$index(0, t4).get$renderObject();
+ t4.toString;
+ t6._as(t4);
+ t6 = t2._lastBoundedOffset;
+ t6.toString;
+ t2 = t2._lastTextPosition;
+ t2.toString;
+ t4.setFloatingCursor$3(t3, t6, t2);
+ break;
+ case C.FloatingCursorDragState_2:
+ if (t2._lastTextPosition != null && t2._lastBoundedOffset != null) {
+ t2.get$_floatingCursorResetController().set$value(0, 0);
+ t1 = t2.get$_floatingCursorResetController();
+ t1._direction = C._AnimationDirection_0;
+ t1._animateToInternal$3$curve$duration(1, C.C__DecelerateCurve, C.Duration_125000);
+ }
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ }
+ break;
+ case "TextInputClient.onConnectionClosed":
+ t1 = t2._client;
+ if (t1.get$_hasInputConnection()) {
+ t1._textInputConnection.toString;
+ t1._lastKnownRemoteTextEditingValue = t1._textInputConnection = $.$get$TextInput__instance()._currentConnection = null;
+ t1._finalizeEditing$2$shouldUnfocus(C.TextInputAction_2, true);
+ }
+ break;
+ case "TextInputClient.showAutocorrectionPromptRect":
+ t2._client.showAutocorrectionPromptRect$2(H._asIntS(t1.$index(args, 1)), H._asIntS(t1.$index(args, 2)));
+ break;
+ default:
+ throw H.wrapException(F.MissingPluginException$(null));
+ }
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_handleTextInputInvocation$1, $async$completer);
+ },
+ _scheduleHide$0: function() {
+ if (this._hidePending)
+ return;
+ this._hidePending = true;
+ P.scheduleMicrotask(new N.TextInput__scheduleHide_closure(this));
+ }
+ };
+ N.TextInput__scheduleHide_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._hidePending = false;
+ if (t1._currentConnection == null)
+ t1.get$_channel().invokeMethod$1$1("TextInput.hide", type$.void);
+ },
+ $signature: 0
+ };
+ U._getParent__parent_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ if (t2._parent_isSet)
+ throw H.wrapException(H.LateError$localAI("parent"));
+ else {
+ t2._parent_isSet = true;
+ return t2.parent = t1;
+ }
+ },
+ $signature: 239
+ };
+ U._getParent__parent_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._parent_isSet ? t1.parent : H.throwExpression(H.LateError$localNI("parent"));
+ },
+ $signature: 240
+ };
+ U._getParent_closure.prototype = {
+ call$1: function(ancestor) {
+ this._parent_set.call$1(ancestor);
+ return false;
+ },
+ $signature: 24
+ };
+ U.Intent.prototype = {};
+ U.Action.prototype = {
+ isEnabled$1: function(_, intent) {
+ return true;
+ },
+ consumesKey$1: function(intent) {
+ return true;
+ }
+ };
+ U.CallbackAction.prototype = {
+ invoke$1: function(intent) {
+ return this.onInvoke.call$1(intent);
+ }
+ };
+ U.ActionDispatcher.prototype = {
+ invokeAction$3: function(action, intent, context) {
+ var t1 = action.invoke$1(intent);
+ return t1;
+ }
+ };
+ U.Actions.prototype = {
+ createState$0: function() {
+ return new U._ActionsState(P.LinkedHashSet_LinkedHashSet$_empty(type$.Action_Intent), new P.Object(), C._StateLifecycle_0);
+ }
+ };
+ U.Actions__findDispatcher_closure.prototype = {
+ call$1: function(element) {
+ type$._ActionsMarker._as(element.get$widget()).toString;
+ return false;
+ },
+ $signature: 82
+ };
+ U.Actions_maybeFind_closure.prototype = {
+ call$1: function(element) {
+ var t1, _this = this,
+ result = _this.T._eval$1("Action<0>?")._as(type$._ActionsMarker._as(element.get$widget()).actions.$index(0, _this.type));
+ if (result != null) {
+ t1 = _this.context;
+ t1.toString;
+ t1.super$Element$dependOnInheritedElement(element, null);
+ _this._box_0.action = result;
+ return true;
+ }
+ return false;
+ },
+ $signature: 82
+ };
+ U._ActionsState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this._updateActionListeners$0();
+ },
+ _handleActionChanged$1: function(action) {
+ this.setState$1(new U._ActionsState__handleActionChanged_closure(this));
+ },
+ _updateActionListeners$0: function() {
+ var widgetActions, removedActions, addedActions, t2, t3, t4, _this = this,
+ t1 = _this._widget.actions;
+ t1 = t1.get$values(t1);
+ widgetActions = P.LinkedHashSet_LinkedHashSet$of(t1, H._instanceType(t1)._eval$1("Iterable.E"));
+ removedActions = _this.listenedActions.difference$1(widgetActions);
+ t1 = _this.listenedActions;
+ t1.toString;
+ addedActions = widgetActions.difference$1(t1);
+ for (t1 = removedActions.get$iterator(removedActions), t2 = _this.get$_handleActionChanged(); t1.moveNext$0();) {
+ t3 = t1.get$current(t1)._actions$_listeners;
+ t3._isDirty = true;
+ t4 = t3.get$_observer_list$_set();
+ if (t4._collection$_length > 0) {
+ t4._collection$_strings = t4._collection$_nums = t4._collection$_rest = t4._elements = null;
+ t4._collection$_length = 0;
+ }
+ C.JSArray_methods.remove$1(t3._observer_list$_list, t2);
+ }
+ for (t1 = addedActions.get$iterator(addedActions); t1.moveNext$0();) {
+ t3 = t1.get$current(t1)._actions$_listeners;
+ t3._isDirty = true;
+ t3._observer_list$_list.push(t2);
+ }
+ _this.listenedActions = widgetActions;
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ this.super$State$didUpdateWidget(oldWidget);
+ this._updateActionListeners$0();
+ },
+ dispose$0: function(_) {
+ var t1, t2, t3, t4, _this = this;
+ _this.super$State$dispose(0);
+ for (t1 = _this.listenedActions, t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications), t2 = _this.get$_handleActionChanged(); t1.moveNext$0();) {
+ t3 = t1._collection$_current._actions$_listeners;
+ t3._isDirty = true;
+ t4 = t3.get$_observer_list$_set();
+ if (t4._collection$_length > 0) {
+ t4._collection$_strings = t4._collection$_nums = t4._collection$_rest = t4._elements = null;
+ t4._collection$_length = 0;
+ }
+ C.JSArray_methods.remove$1(t3._observer_list$_list, t2);
+ }
+ _this.listenedActions = null;
+ },
+ build$1: function(_, context) {
+ var t1 = this._widget;
+ return new U._ActionsMarker(null, t1.actions, this.rebuildKey, t1.child, null);
+ }
+ };
+ U._ActionsState__handleActionChanged_closure.prototype = {
+ call$0: function() {
+ this.$this.rebuildKey = new P.Object();
+ },
+ $signature: 0
+ };
+ U._ActionsMarker.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ var t1;
+ if (this.rebuildKey === oldWidget.rebuildKey)
+ t1 = !S.mapEquals(oldWidget.actions, this.actions);
+ else
+ t1 = true;
+ return t1;
+ }
+ };
+ U.DoNothingAction.prototype = {
+ consumesKey$1: function(intent) {
+ return this._consumesKey;
+ },
+ invoke$1: function(intent) {
+ }
+ };
+ U.ActivateIntent.prototype = {};
+ U.DismissIntent.prototype = {};
+ U.DismissAction.prototype = {};
+ U._Action_Object_Diagnosticable.prototype = {};
+ U._ActionDispatcher_Object_Diagnosticable.prototype = {};
+ U._Intent_Object_Diagnosticable.prototype = {};
+ X.AnnotatedRegion.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderAnnotatedRegion(this.value, true, null, this.$ti._eval$1("RenderAnnotatedRegion<1>"));
+ t1.get$isRepaintBoundary();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$value(0, this.value);
+ renderObject.set$sized(true);
+ }
+ };
+ S.WidgetsApp.prototype = {
+ createState$0: function() {
+ return new S._WidgetsAppState(C._StateLifecycle_0);
+ }
+ };
+ S._WidgetsAppState.prototype = {
+ get$_initialRouteName: function() {
+ var t1, t2;
+ $.WidgetsBinding__instance.toString;
+ t1 = $.$get$window().platformDispatcher;
+ if (t1.get$defaultRouteName() !== "/") {
+ $.WidgetsBinding__instance.toString;
+ t1 = t1.get$defaultRouteName();
+ } else {
+ this._widget.toString;
+ t2 = $.WidgetsBinding__instance;
+ t2.toString;
+ t1 = t1.get$defaultRouteName();
+ }
+ return t1;
+ },
+ initState$0: function() {
+ var t1, _this = this;
+ _this.super$State$initState();
+ _this._updateRouting$0();
+ $.WidgetsBinding__instance.toString;
+ t1 = $.$get$window();
+ t1.toString;
+ _this._app$_locale = _this._resolveLocales$2(P.SingletonFlutterWindow.prototype.get$locales.call(t1), _this._widget.supportedLocales);
+ $.WidgetsBinding__instance.WidgetsBinding__observers.push(_this);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ this.super$State$didUpdateWidget(oldWidget);
+ this._updateRouting$1$oldWidget(oldWidget);
+ },
+ dispose$0: function(_) {
+ var t1;
+ C.JSArray_methods.remove$1($.WidgetsBinding__instance.WidgetsBinding__observers, this);
+ t1 = this._defaultRouteInformationProvider;
+ if (t1 != null)
+ t1.dispose$0(0);
+ this.super$State$dispose(0);
+ },
+ _updateRouting$1$oldWidget: function(oldWidget) {
+ var t1, _this = this;
+ _this._widget.toString;
+ if (_this.get$_usesNavigator()) {
+ t1 = _this._defaultRouteInformationProvider;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this._defaultRouteInformationProvider = null;
+ if (oldWidget != null) {
+ _this._widget.toString;
+ t1 = false;
+ } else
+ t1 = true;
+ if (t1) {
+ _this._widget.toString;
+ _this._navigator = new N.GlobalObjectKey(_this, type$.GlobalObjectKey_NavigatorState);
+ }
+ } else {
+ _this._navigator = null;
+ t1 = _this._defaultRouteInformationProvider;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this._defaultRouteInformationProvider = null;
+ }
+ },
+ _updateRouting$0: function() {
+ return this._updateRouting$1$oldWidget(null);
+ },
+ get$_usesNavigator: function() {
+ var t1 = this._widget;
+ if (t1.home == null) {
+ t1 = t1.routes;
+ if ((t1 == null ? null : t1.get$isNotEmpty(t1)) !== true) {
+ this._widget.toString;
+ t1 = false;
+ } else
+ t1 = true;
+ } else
+ t1 = true;
+ return t1;
+ },
+ _onGenerateRoute$1: function(settings) {
+ var _this = this,
+ $name = settings.name,
+ pageContentBuilder = $name === "/" && _this._widget.home != null ? new S._WidgetsAppState__onGenerateRoute_closure(_this) : _this._widget.routes.$index(0, $name);
+ if (pageContentBuilder != null)
+ return _this._widget.pageRouteBuilder.call$1$2(settings, pageContentBuilder, type$.dynamic);
+ _this._widget.toString;
+ return null;
+ },
+ _onUnknownRoute$1: function(settings) {
+ return this._widget.onUnknownRoute.call$1(settings);
+ },
+ didPopRoute$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.bool),
+ $async$returnValue, $async$self = this, t1, $navigator;
+ var $async$didPopRoute$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$self._widget.toString;
+ t1 = $async$self._navigator;
+ $navigator = t1 == null ? null : t1.get$currentState();
+ if ($navigator == null) {
+ $async$returnValue = false;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $async$goto = 3;
+ return P._asyncAwait($navigator.maybePop$0(), $async$didPopRoute$0);
+ case 3:
+ // returning from await.
+ $async$returnValue = $async$result;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$didPopRoute$0, $async$completer);
+ },
+ didPushRoute$1: function(route) {
+ return this.didPushRoute$body$_WidgetsAppState(route);
+ },
+ didPushRoute$body$_WidgetsAppState: function(route) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.bool),
+ $async$returnValue, $async$self = this, t1, $navigator;
+ var $async$didPushRoute$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$self._widget.toString;
+ t1 = $async$self._navigator;
+ $navigator = t1 == null ? null : t1.get$currentState();
+ if ($navigator == null) {
+ $async$returnValue = false;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ t1 = $navigator._routeNamed$1$2$arguments(route, null, type$.nullable_Object);
+ t1.toString;
+ $navigator.push$1(t1);
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$didPushRoute$1, $async$completer);
+ },
+ _resolveLocales$2: function(preferredLocales, supportedLocales) {
+ this._widget.toString;
+ return S._WidgetsAppState_basicLocaleListResolution(preferredLocales, supportedLocales);
+ },
+ didChangeLocales$1: function(locales) {
+ var _this = this,
+ newLocale = _this._resolveLocales$2(locales, _this._widget.supportedLocales);
+ if (!newLocale.$eq(0, _this._app$_locale))
+ _this.setState$1(new S._WidgetsAppState_didChangeLocales_closure(_this, newLocale));
+ },
+ get$_app$_localizationsDelegates: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError;
+ return function $async$get$_app$_localizationsDelegates($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._IterationMarker_yieldStar($async$self._widget.localizationsDelegates);
+ case 2:
+ // after yield
+ $async$goto = 3;
+ return C.C__WidgetsLocalizationsDelegate;
+ case 3:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.LocalizationsDelegate_dynamic);
+ },
+ build$1: function(_, context) {
+ var t2, t3, t4, result, performanceOverlay, t5, appLocale, t6, t7, _this = this, _null = null, t1 = {};
+ t1.routing = null;
+ _this._widget.toString;
+ if (_this.get$_usesNavigator()) {
+ t2 = _this._navigator;
+ t3 = _this.get$_initialRouteName();
+ t4 = _this._widget;
+ t4 = t4.navigatorObservers;
+ t4.toString;
+ t1.routing = new K.Navigator(t3, _this.get$_onGenerateRoute(), _this.get$_onUnknownRoute(), t4, "nav", K.navigator_Navigator_defaultGenerateInitialRoutes$closure(), true, t2);
+ }
+ t1.result = null;
+ t2 = _this._widget;
+ t2.toString;
+ result = new T.Builder(new S._WidgetsAppState_build_closure(t1, _this), _null);
+ t1.result = result;
+ result = t1.result = L.DefaultTextStyle$(result, _null, _null, C.TextOverflow_0, true, t2.textStyle, _null, _null, C.TextWidthBasis_0);
+ t2 = $.WidgetsApp_showPerformanceOverlayOverride;
+ if (t2)
+ performanceOverlay = new L.PerformanceOverlay(15, false, false, _null);
+ else
+ performanceOverlay = _null;
+ t1 = performanceOverlay != null ? t1.result = T.Stack$(C.AlignmentDirectional_m1_m1, H.setRuntimeTypeInfo([result, T.Positioned$(_null, performanceOverlay, _null, _null, 0, 0, 0, _null)], type$.JSArray_Widget), C.StackFit_0) : result;
+ t2 = _this._widget;
+ t3 = t2.title;
+ t4 = t2.color;
+ t5 = _this._app$_locale;
+ t5.toString;
+ appLocale = t5;
+ t2 = t2.restorationScopeId;
+ t5 = S.WidgetsApp_defaultShortcuts();
+ _this._widget.toString;
+ t6 = $.$get$WidgetsApp_defaultActions();
+ t7 = _this.get$_app$_localizationsDelegates();
+ t7 = P.List_List$of(t7, true, t7.$ti._eval$1("Iterable.E"));
+ return new K.RootRestorationScope(new X.Shortcuts(t5, U.Actions$(t6, new U.FocusTraversalGroup(new U.ReadingOrderTraversalPolicy(P.LinkedHashMap_LinkedHashMap$_empty(type$.FocusScopeNode, type$._DirectionalPolicyData)), new S._MediaQueryFromWindow(new L.Localizations(appLocale, t7, new U.Title(t3, t4, t1, _null), _null), _null), _null)), "", _null), t2, _null);
+ }
+ };
+ S._WidgetsAppState__onGenerateRoute_closure.prototype = {
+ call$1: function(context) {
+ var t1 = this.$this._widget.home;
+ t1.toString;
+ return t1;
+ },
+ $signature: 21
+ };
+ S._WidgetsAppState_didChangeLocales_closure.prototype = {
+ call$0: function() {
+ this.$this._app$_locale = this.newLocale;
+ },
+ $signature: 0
+ };
+ S._WidgetsAppState_build_closure.prototype = {
+ call$1: function(context) {
+ return this.$this._widget.builder.call$2(context, this._box_0.routing);
+ },
+ $signature: 21
+ };
+ S._MediaQueryFromWindow.prototype = {
+ createState$0: function() {
+ return new S._MediaQueryFromWindowsState(C._StateLifecycle_0);
+ }
+ };
+ S._MediaQueryFromWindowsState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ $.WidgetsBinding__instance.WidgetsBinding__observers.push(this);
+ },
+ didChangeMetrics$0: function() {
+ this.setState$1(new S._MediaQueryFromWindowsState_didChangeMetrics_closure());
+ },
+ didChangePlatformBrightness$0: function() {
+ this.setState$1(new S._MediaQueryFromWindowsState_didChangePlatformBrightness_closure());
+ },
+ build$1: function(_, context) {
+ var t1, t2, t3, t4, t5, t6, t7, data;
+ $.WidgetsBinding__instance.toString;
+ t1 = $.$get$window();
+ t2 = t1.get$physicalSize().$div(0, t1.get$devicePixelRatio(t1));
+ t3 = t1.get$devicePixelRatio(t1);
+ t4 = t1.platformDispatcher._configuration;
+ t1.get$viewConfiguration();
+ t5 = V.EdgeInsets$fromWindowPadding(C.WindowPadding_0_0_0_0, t1.get$devicePixelRatio(t1));
+ t1.get$viewConfiguration();
+ t6 = V.EdgeInsets$fromWindowPadding(C.WindowPadding_0_0_0_0, t1.get$devicePixelRatio(t1));
+ t7 = V.EdgeInsets$fromWindowPadding(t1._viewInsets, t1.get$devicePixelRatio(t1));
+ t1.get$viewConfiguration();
+ data = new F.MediaQueryData(t2, t3, t4.textScaleFactor, t4.platformBrightness, t7, t5, t6, V.EdgeInsets$fromWindowPadding(C.WindowPadding_0_0_0_0, t1.get$devicePixelRatio(t1)), false, false, false, false, false, false, C.NavigationMode_0).copyWith$1$platformBrightness($.debugBrightnessOverride);
+ return new F.MediaQuery(data, this._widget.child, null);
+ },
+ dispose$0: function(_) {
+ C.JSArray_methods.remove$1($.WidgetsBinding__instance.WidgetsBinding__observers, this);
+ this.super$State$dispose(0);
+ }
+ };
+ S._MediaQueryFromWindowsState_didChangeMetrics_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ S._MediaQueryFromWindowsState_didChangePlatformBrightness_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ S.__MediaQueryFromWindowsState_State_WidgetsBindingObserver.prototype = {};
+ S.__WidgetsAppState_State_WidgetsBindingObserver.prototype = {};
+ L.AutomaticKeepAlive.prototype = {
+ createState$0: function() {
+ return new L._AutomaticKeepAliveState(C._StateLifecycle_0);
+ }
+ };
+ L._AutomaticKeepAliveState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this._updateChild$0();
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ this.super$State$didUpdateWidget(oldWidget);
+ this._updateChild$0();
+ },
+ _updateChild$0: function() {
+ this._automatic_keep_alive$_child = new U.NotificationListener(this._widget.child, this.get$_addClient(), null, type$.NotificationListener_KeepAliveNotification);
+ },
+ dispose$0: function(_) {
+ var t2, t3,
+ t1 = this._handles;
+ if (t1 != null)
+ for (t1 = t1.get$keys(t1), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
+ t2 = t1.get$current(t1);
+ t3 = this._handles.$index(0, t2);
+ t3.toString;
+ t2.removeListener$1(0, t3);
+ }
+ this.super$State$dispose(0);
+ },
+ _addClient$1: function(notification) {
+ var t2, childElement, _this = this,
+ handle = notification.handle,
+ t1 = _this._handles;
+ if (t1 == null)
+ t1 = _this._handles = P.LinkedHashMap_LinkedHashMap$_empty(type$.Listenable, type$.void_Function);
+ t1.$indexSet(0, handle, _this._createCallback$1(handle));
+ t1 = _this._handles.$index(0, handle);
+ t1.toString;
+ t2 = handle.ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(t1), false);
+ if (!_this._keepingAlive) {
+ _this._keepingAlive = true;
+ childElement = _this._getChildElement$0();
+ if (childElement != null)
+ _this._updateParentDataOfChild$1(childElement);
+ else
+ $.SchedulerBinding__instance.SchedulerBinding__postFrameCallbacks.push(new L._AutomaticKeepAliveState__addClient_closure(_this));
+ }
+ return false;
+ },
+ _getChildElement$0: function() {
+ var t1 = {},
+ t2 = this._framework$_element;
+ t2.toString;
+ t1.childElement = null;
+ t2.visitChildren$1(new L._AutomaticKeepAliveState__getChildElement_closure(t1));
+ return type$.nullable_ParentDataElement_KeepAliveParentDataMixin._as(t1.childElement);
+ },
+ _updateParentDataOfChild$1: function(childElement) {
+ var t1, t2;
+ this._framework$_element.toString;
+ t1 = this._keepingAlive;
+ t2 = this._automatic_keep_alive$_child;
+ t2.toString;
+ childElement._applyParentData$1(type$.ParentDataWidget_KeepAliveParentDataMixin._as(G.KeepAlive$(t2, t1)));
+ },
+ _createCallback$1: function(handle) {
+ return new L._AutomaticKeepAliveState__createCallback_closure(this, handle);
+ },
+ build$1: function(_, context) {
+ var t1 = this._keepingAlive,
+ t2 = this._automatic_keep_alive$_child;
+ t2.toString;
+ return new G.KeepAlive(t1, t2, null);
+ }
+ };
+ L._AutomaticKeepAliveState__addClient_closure.prototype = {
+ call$1: function(timeStamp) {
+ var childElement,
+ t1 = this.$this;
+ if (t1._framework$_element == null)
+ return;
+ childElement = t1._getChildElement$0();
+ childElement.toString;
+ t1._updateParentDataOfChild$1(childElement);
+ },
+ $signature: 4
+ };
+ L._AutomaticKeepAliveState__getChildElement_closure.prototype = {
+ call$1: function(child) {
+ this._box_0.childElement = child;
+ },
+ $signature: 9
+ };
+ L._AutomaticKeepAliveState__createCallback_closure.prototype = {
+ call$0: function() {
+ var t2,
+ t1 = this.$this;
+ t1._handles.remove$1(0, this.handle);
+ t2 = t1._handles;
+ if (t2.get$isEmpty(t2))
+ if ($.SchedulerBinding__instance.SchedulerBinding__schedulerPhase.index < 3)
+ t1.setState$1(new L._AutomaticKeepAliveState__createCallback__closure(t1));
+ else {
+ t1._keepingAlive = false;
+ P.scheduleMicrotask(new L._AutomaticKeepAliveState__createCallback__closure0(t1));
+ }
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ L._AutomaticKeepAliveState__createCallback__closure.prototype = {
+ call$0: function() {
+ this.$this._keepingAlive = false;
+ },
+ $signature: 0
+ };
+ L._AutomaticKeepAliveState__createCallback__closure0.prototype = {
+ call$0: function() {
+ var t2,
+ t1 = this.$this;
+ if (t1._framework$_element != null) {
+ t2 = t1._handles;
+ t2 = t2.get$isEmpty(t2);
+ } else
+ t2 = false;
+ if (t2)
+ t1.setState$1(new L._AutomaticKeepAliveState__createCallback___closure(t1));
+ },
+ $signature: 0
+ };
+ L._AutomaticKeepAliveState__createCallback___closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ L.KeepAliveNotification.prototype = {};
+ L.KeepAliveHandle.prototype = {};
+ L.AutomaticKeepAliveClientMixin.prototype = {
+ _ensureKeepAlive$0: function() {
+ var t2,
+ t1 = new L.KeepAliveHandle(new P.LinkedList(type$.LinkedList__ListenerEntry));
+ this.AutomaticKeepAliveClientMixin__keepAliveHandle = t1;
+ t2 = this._framework$_element;
+ t2.toString;
+ new L.KeepAliveNotification(t1).dispatch$1(t2);
+ },
+ updateKeepAlive$0: function() {
+ var t1, _this = this;
+ if (_this.get$wantKeepAlive()) {
+ if (_this.AutomaticKeepAliveClientMixin__keepAliveHandle == null)
+ _this._ensureKeepAlive$0();
+ } else {
+ t1 = _this.AutomaticKeepAliveClientMixin__keepAliveHandle;
+ if (t1 != null) {
+ t1.notifyListeners$0();
+ _this.AutomaticKeepAliveClientMixin__keepAliveHandle = null;
+ }
+ }
+ },
+ build$1: function(_, context) {
+ if (this.get$wantKeepAlive() && this.AutomaticKeepAliveClientMixin__keepAliveHandle == null)
+ this._ensureKeepAlive$0();
+ return C._NullWidget_null;
+ }
+ };
+ L._NullWidget0.prototype = {
+ build$1: function(_, context) {
+ throw H.wrapException(U.FlutterError_FlutterError("Widgets that mix AutomaticKeepAliveClientMixin into their State must call super.build() but must ignore the return value of the superclass."));
+ }
+ };
+ T.Directionality.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return this.textDirection !== oldWidget.textDirection;
+ }
+ };
+ T.Opacity.prototype = {
+ createRenderObject$1: function(context) {
+ var t2,
+ t1 = this.opacity;
+ t1 = new E.RenderOpacity(C.JSNumber_methods.round$0(J.clamp$2$n(t1, 0, 1) * 255), t1, false, null);
+ t1.get$isRepaintBoundary();
+ t2 = t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = t2;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$opacity(0, this.opacity);
+ renderObject.set$alwaysIncludeSemantics(false);
+ }
+ };
+ T.CustomPaint.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new V.RenderCustomPaint(this.painter, this.foregroundPainter, C.Size_0_0, false, false, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$painter(this.painter);
+ renderObject.set$foregroundPainter(this.foregroundPainter);
+ renderObject.set$preferredSize(C.Size_0_0);
+ renderObject.willChange = renderObject.isComplex = false;
+ },
+ didUnmountRenderObject$1: function(renderObject) {
+ renderObject.set$painter(null);
+ renderObject.set$foregroundPainter(null);
+ }
+ };
+ T.ClipRect.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderClipRect(null, C.Clip_1, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$clipper(null);
+ renderObject.set$clipBehavior(C.Clip_1);
+ },
+ didUnmountRenderObject$1: function(renderObject) {
+ renderObject.set$clipper(null);
+ }
+ };
+ T.ClipPath.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderClipPath(this.clipper, this.clipBehavior, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$clipper(this.clipper);
+ renderObject.set$clipBehavior(this.clipBehavior);
+ },
+ didUnmountRenderObject$1: function(renderObject) {
+ renderObject.set$clipper(null);
+ }
+ };
+ T.PhysicalModel.prototype = {
+ createRenderObject$1: function(context) {
+ var _this = this,
+ t1 = new E.RenderPhysicalModel(_this.shape, _this.borderRadius, _this.elevation, _this.shadowColor, _this.color, null, _this.clipBehavior, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var _this = this;
+ renderObject.set$shape(0, _this.shape);
+ renderObject.set$clipBehavior(_this.clipBehavior);
+ renderObject.set$borderRadius(0, _this.borderRadius);
+ renderObject.set$elevation(0, _this.elevation);
+ renderObject.set$color(0, _this.color);
+ renderObject.set$shadowColor(0, _this.shadowColor);
+ }
+ };
+ T.PhysicalShape.prototype = {
+ createRenderObject$1: function(context) {
+ var _this = this,
+ t1 = new E.RenderPhysicalShape(_this.elevation, _this.shadowColor, _this.color, _this.clipper, _this.clipBehavior, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var _this = this;
+ renderObject.set$clipper(_this.clipper);
+ renderObject.set$clipBehavior(_this.clipBehavior);
+ renderObject.set$elevation(0, _this.elevation);
+ renderObject.set$color(0, _this.color);
+ renderObject.set$shadowColor(0, _this.shadowColor);
+ }
+ };
+ T.Transform.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = T.Directionality_maybeOf(context),
+ t2 = new E.RenderTransform(this.transformHitTests, null);
+ t2.get$isRepaintBoundary();
+ t2.get$alwaysNeedsCompositing();
+ t2.__RenderObject__needsCompositing_isSet = true;
+ t2.__RenderObject__needsCompositing = false;
+ t2.set$child(null);
+ t2.set$transform(0, this.transform);
+ t2.set$alignment(0, this.alignment);
+ t2.set$textDirection(0, t1);
+ t2.set$origin(0, null);
+ return t2;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$transform(0, this.transform);
+ renderObject.set$origin(0, null);
+ renderObject.set$alignment(0, this.alignment);
+ renderObject.set$textDirection(0, T.Directionality_maybeOf(context));
+ renderObject.transformHitTests = this.transformHitTests;
+ }
+ };
+ T.CompositedTransformTarget.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderLeaderLayer(this.link, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$link(this.link);
+ }
+ };
+ T.CompositedTransformFollower.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderFollowerLayer(this.link, false, this.offset, C.Alignment_m1_m1, C.Alignment_m1_m1, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$link(this.link);
+ renderObject.set$showWhenUnlinked(false);
+ renderObject.set$offset(0, this.offset);
+ renderObject.set$leaderAnchor(C.Alignment_m1_m1);
+ renderObject.set$followerAnchor(C.Alignment_m1_m1);
+ }
+ };
+ T.FractionalTranslation.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderFractionalTranslation(this.translation, this.transformHitTests, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$translation(this.translation);
+ renderObject.transformHitTests = this.transformHitTests;
+ }
+ };
+ T.Padding.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new T.RenderPadding(this.padding, T.Directionality_maybeOf(context), null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$padding(0, this.padding);
+ renderObject.set$textDirection(0, T.Directionality_maybeOf(context));
+ }
+ };
+ T.Align.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new T.RenderPositionedBox(this.widthFactor, this.heightFactor, this.alignment, T.Directionality_maybeOf(context), null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$alignment(0, this.alignment);
+ renderObject.set$widthFactor(this.widthFactor);
+ renderObject.set$heightFactor(this.heightFactor);
+ renderObject.set$textDirection(0, T.Directionality_maybeOf(context));
+ }
+ };
+ T.Center.prototype = {};
+ T.CustomSingleChildLayout.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new T.RenderCustomSingleChildLayoutBox(this.delegate, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$delegate(this.delegate);
+ }
+ };
+ T.LayoutId.prototype = {
+ applyParentData$1: function(renderObject) {
+ var t2, targetParent,
+ t1 = renderObject.parentData;
+ t1.toString;
+ type$.MultiChildLayoutParentData._as(t1);
+ t2 = this.id;
+ if (t1.id !== t2) {
+ t1.id = t2;
+ targetParent = renderObject._node$_parent;
+ if (targetParent instanceof K.RenderObject)
+ targetParent.markNeedsLayout$0();
+ }
+ }
+ };
+ T.CustomMultiChildLayout.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new B.RenderCustomMultiChildLayoutBox(this.delegate, 0, null, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.addAll$1(0, null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$delegate(this.delegate);
+ }
+ };
+ T.SizedBox.prototype = {
+ createRenderObject$1: function(context) {
+ return E.RenderConstrainedBox$(S.BoxConstraints$tightFor(this.height, this.width));
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$additionalConstraints(S.BoxConstraints$tightFor(this.height, this.width));
+ },
+ toStringShort$0: function() {
+ var type, _this = this,
+ t1 = _this.width;
+ if (t1 === 1 / 0 && _this.height === 1 / 0)
+ type = "SizedBox.expand";
+ else
+ type = t1 === 0 && _this.height === 0 ? "SizedBox.shrink" : "SizedBox";
+ t1 = _this.key;
+ return t1 == null ? type : type + "-" + t1.toString$0(0);
+ }
+ };
+ T.ConstrainedBox.prototype = {
+ createRenderObject$1: function(context) {
+ return E.RenderConstrainedBox$(this.constraints);
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$additionalConstraints(this.constraints);
+ }
+ };
+ T.LimitedBox.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderLimitedBox(this.maxWidth, this.maxHeight, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$maxWidth(0, this.maxWidth);
+ renderObject.set$maxHeight(0, this.maxHeight);
+ }
+ };
+ T.Offstage.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderOffstage(this.offstage, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$offstage(this.offstage);
+ },
+ createElement$0: function(_) {
+ var t1 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t1;
+ return new T._OffstageElement(t1, this, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2));
+ }
+ };
+ T._OffstageElement.prototype = {
+ get$widget: function() {
+ return type$.Offstage._as(N.SingleChildRenderObjectElement.prototype.get$widget.call(this));
+ }
+ };
+ T.IntrinsicWidth.prototype = {
+ createRenderObject$1: function(context) {
+ var _null = null,
+ t1 = new E.RenderIntrinsicWidth(_null, _null, _null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(_null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$stepWidth(null);
+ renderObject.set$stepHeight(null);
+ }
+ };
+ T.SliverPadding.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ t1 = new T.RenderSliverPadding(this.padding, t1.textDirection, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1;
+ renderObject.set$padding(0, this.padding);
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ renderObject.set$textDirection(0, t1.textDirection);
+ }
+ };
+ T.ListBody.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new R.RenderListBody(T.getAxisDirectionFromAxisReverseAndDirectionality(context, C.Axis_1, false), 0, null, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.addAll$1(0, null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$axisDirection(T.getAxisDirectionFromAxisReverseAndDirectionality(context, C.Axis_1, false));
+ }
+ };
+ T.Stack.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = T.Directionality_maybeOf(context);
+ t1 = new K.RenderStack(this.alignment, t1, this.fit, C.Clip_1, 0, null, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.addAll$1(0, null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1;
+ renderObject.set$alignment(0, this.alignment);
+ t1 = T.Directionality_maybeOf(context);
+ renderObject.set$textDirection(0, t1);
+ t1 = this.fit;
+ if (renderObject._fit !== t1) {
+ renderObject._fit = t1;
+ renderObject.markNeedsLayout$0();
+ }
+ if (C.Clip_1 !== renderObject._clipBehavior) {
+ renderObject._clipBehavior = C.Clip_1;
+ renderObject.markNeedsPaint$0();
+ renderObject.markNeedsSemanticsUpdate$0();
+ }
+ }
+ };
+ T.Positioned.prototype = {
+ applyParentData$1: function(renderObject) {
+ var t2, needsLayout, t3, targetParent, _this = this,
+ t1 = renderObject.parentData;
+ t1.toString;
+ type$.StackParentData._as(t1);
+ t2 = _this.left;
+ if (t1.left != t2) {
+ t1.left = t2;
+ needsLayout = true;
+ } else
+ needsLayout = false;
+ t2 = _this.top;
+ if (t1.top != t2) {
+ t1.top = t2;
+ needsLayout = true;
+ }
+ t2 = _this.right;
+ if (t1.right != t2) {
+ t1.right = t2;
+ needsLayout = true;
+ }
+ t2 = _this.bottom;
+ if (t1.bottom != t2) {
+ t1.bottom = t2;
+ needsLayout = true;
+ }
+ t2 = _this.width;
+ if (t1.width != t2) {
+ t1.width = t2;
+ needsLayout = true;
+ }
+ t2 = t1.height;
+ t3 = _this.height;
+ if (t2 == null ? t3 != null : t2 !== t3) {
+ t1.height = t3;
+ needsLayout = true;
+ }
+ if (needsLayout) {
+ targetParent = renderObject._node$_parent;
+ if (targetParent instanceof K.RenderObject)
+ targetParent.markNeedsLayout$0();
+ }
+ }
+ };
+ T.PositionedDirectional.prototype = {
+ build$1: function(_, context) {
+ var right, left, _this = this, _null = null,
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ right = _this.start;
+ switch (t1.textDirection) {
+ case C.TextDirection_0:
+ left = _null;
+ break;
+ case C.TextDirection_1:
+ left = right;
+ right = _null;
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ right = _null;
+ left = right;
+ }
+ return T.Positioned$(_this.bottom, _this.child, _null, _null, left, right, _this.top, _this.width);
+ }
+ };
+ T.Flex.prototype = {
+ get$_needTextDirection: function() {
+ switch (this.direction) {
+ case C.Axis_0:
+ return true;
+ case C.Axis_1:
+ var t1 = this.crossAxisAlignment;
+ return t1 === C.CrossAxisAlignment_0 || t1 === C.CrossAxisAlignment_1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getEffectiveTextDirection$1: function(context) {
+ var t1 = this.get$_needTextDirection() ? T.Directionality_maybeOf(context) : null;
+ return t1;
+ },
+ createRenderObject$1: function(context) {
+ var _this = this;
+ return F.RenderFlex$(null, C.Clip_0, _this.crossAxisAlignment, _this.direction, _this.mainAxisAlignment, _this.mainAxisSize, _this.textBaseline, _this.getEffectiveTextDirection$1(context), _this.verticalDirection);
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var _this = this;
+ renderObject.set$direction(0, _this.direction);
+ renderObject.set$mainAxisAlignment(_this.mainAxisAlignment);
+ renderObject.set$mainAxisSize(_this.mainAxisSize);
+ renderObject.set$crossAxisAlignment(_this.crossAxisAlignment);
+ renderObject.set$textDirection(0, _this.getEffectiveTextDirection$1(context));
+ renderObject.set$verticalDirection(_this.verticalDirection);
+ renderObject.set$textBaseline(0, _this.textBaseline);
+ if (C.Clip_0 !== renderObject._flex$_clipBehavior) {
+ renderObject._flex$_clipBehavior = C.Clip_0;
+ renderObject.markNeedsPaint$0();
+ renderObject.markNeedsSemanticsUpdate$0();
+ }
+ }
+ };
+ T.Row.prototype = {};
+ T.Column.prototype = {};
+ T.Flexible.prototype = {
+ applyParentData$1: function(renderObject) {
+ var needsLayout, targetParent,
+ t1 = renderObject.parentData;
+ t1.toString;
+ type$.FlexParentData._as(t1);
+ if (t1.flex !== 1) {
+ t1.flex = 1;
+ needsLayout = true;
+ } else
+ needsLayout = false;
+ if (t1.fit !== C.FlexFit_1) {
+ t1.fit = C.FlexFit_1;
+ needsLayout = true;
+ }
+ if (needsLayout) {
+ targetParent = renderObject._node$_parent;
+ if (targetParent instanceof K.RenderObject)
+ targetParent.markNeedsLayout$0();
+ }
+ }
+ };
+ T.RichText.prototype = {
+ createRenderObject$1: function(context) {
+ var t3, t4, t5, _this = this, _null = null,
+ t1 = _this.text,
+ t2 = _this.textDirection;
+ if (t2 == null) {
+ t2 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t2.toString;
+ t2 = t2.textDirection;
+ }
+ t3 = _this.overflow;
+ t4 = L.Localizations_maybeLocaleOf(context);
+ t5 = t3 === C.TextOverflow_2 ? "\u2026" : _null;
+ t3 = new Q.RenderParagraph(new U.TextPainter(t1, _this.textAlign, t2, _this.textScaleFactor, t5, t4, _this.maxLines, _this.strutStyle, _this.textWidthBasis, _this.textHeightBehavior), _this.softWrap, t3, 0, _null, _null);
+ t3.get$isRepaintBoundary();
+ t3.get$alwaysNeedsCompositing();
+ t3.__RenderObject__needsCompositing_isSet = true;
+ t3.__RenderObject__needsCompositing = false;
+ t3.addAll$1(0, _null);
+ t3._extractPlaceholderSpans$1(t1);
+ return t3;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1, _this = this;
+ renderObject.set$text(0, _this.text);
+ renderObject.set$textAlign(0, _this.textAlign);
+ t1 = _this.textDirection;
+ if (t1 == null) {
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ t1 = t1.textDirection;
+ }
+ renderObject.set$textDirection(0, t1);
+ renderObject.set$softWrap(_this.softWrap);
+ renderObject.set$overflow(0, _this.overflow);
+ renderObject.set$textScaleFactor(_this.textScaleFactor);
+ renderObject.set$maxLines(0, _this.maxLines);
+ renderObject.set$strutStyle(0, _this.strutStyle);
+ renderObject.set$textWidthBasis(_this.textWidthBasis);
+ renderObject.set$textHeightBehavior(0, _this.textHeightBehavior);
+ t1 = L.Localizations_maybeLocaleOf(context);
+ renderObject.set$locale(0, t1);
+ }
+ };
+ T.RichText__extractChildren_closure.prototype = {
+ call$1: function(span) {
+ return true;
+ },
+ $signature: 43
+ };
+ T.Listener.prototype = {
+ createRenderObject$1: function(context) {
+ var _this = this, _null = null,
+ t1 = new E.RenderPointerListener(_this.onPointerDown, _null, _this.onPointerUp, _null, _this.onPointerCancel, _this.onPointerSignal, _this.behavior, _null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(_null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var _this = this;
+ renderObject.onPointerDown = _this.onPointerDown;
+ renderObject.onPointerMove = null;
+ renderObject.onPointerUp = _this.onPointerUp;
+ renderObject.onPointerHover = null;
+ renderObject.onPointerCancel = _this.onPointerCancel;
+ renderObject.onPointerSignal = _this.onPointerSignal;
+ renderObject.behavior = _this.behavior;
+ }
+ };
+ T.MouseRegion.prototype = {
+ createState$0: function() {
+ return new T._MouseRegionState(C._StateLifecycle_0);
+ }
+ };
+ T._MouseRegionState.prototype = {
+ handleExit$1: function($event) {
+ var t1 = this._widget.onExit;
+ if (t1 != null && this._framework$_element != null)
+ t1.call$1($event);
+ },
+ getHandleExit$0: function() {
+ return this._widget.onExit == null ? null : this.get$handleExit();
+ },
+ build$1: function(_, context) {
+ return new T._RawMouseRegion(this, this._widget.child, null);
+ }
+ };
+ T._RawMouseRegion.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = this.owner,
+ t2 = t1._widget;
+ t2.toString;
+ t2 = new E.RenderMouseRegion(true, t2.onEnter, null, t1.getHandleExit$0(), t2.cursor, null);
+ t2.get$isRepaintBoundary();
+ t2.get$alwaysNeedsCompositing();
+ t2.__RenderObject__needsCompositing_isSet = true;
+ t2.__RenderObject__needsCompositing = false;
+ t2.set$child(null);
+ return t2;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1 = this.owner,
+ t2 = t1._widget;
+ t2.toString;
+ renderObject.onEnter = t2.onEnter;
+ renderObject.onHover = null;
+ renderObject.onExit = t1.getHandleExit$0();
+ t2 = t2.cursor;
+ if (!J.$eq$(renderObject._cursor, t2)) {
+ renderObject._cursor = t2;
+ renderObject.markNeedsPaint$0();
+ }
+ }
+ };
+ T.RepaintBoundary.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderRepaintBoundary(null);
+ t1.get$isRepaintBoundary();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.set$child(null);
+ return t1;
+ }
+ };
+ T.IgnorePointer.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderIgnorePointer(this.ignoring, this.ignoringSemantics, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$ignoring(this.ignoring);
+ renderObject.set$ignoringSemantics(this.ignoringSemantics);
+ }
+ };
+ T.AbsorbPointer.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderAbsorbPointer(false, null, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$absorbing(false);
+ renderObject.set$ignoringSemantics(null);
+ }
+ };
+ T.Semantics.prototype = {
+ createRenderObject$1: function(context) {
+ var _this = this, _null = null,
+ t1 = _this.properties;
+ t1 = new E.RenderSemanticsAnnotations(_this.container, _this.explicitChildNodes, false, t1.checked, t1.enabled, t1.selected, t1.button, t1.slider, t1.link, t1.header, t1.textField, t1.readOnly, t1.focusable, t1.focused, t1.inMutuallyExclusiveGroup, t1.obscured, t1.multiline, t1.scopesRoute, t1.namesRoute, t1.hidden, t1.image, t1.liveRegion, t1.maxValueLength, t1.currentValueLength, t1.toggled, t1.label, t1.value, t1.increasedValue, t1.decreasedValue, t1.hint, t1.hintOverrides, _this._getTextDirection$1(context), t1.sortKey, t1.tagForChildren, t1.onTap, t1.onDismiss, t1.onLongPress, t1.onScrollLeft, t1.onScrollRight, t1.onScrollUp, t1.onScrollDown, t1.onIncrease, t1.onDecrease, t1.onCopy, t1.onCut, t1.onPaste, t1.onMoveCursorForwardByCharacter, t1.onMoveCursorBackwardByCharacter, _null, _null, t1.onSetSelection, t1.onDidGainAccessibilityFocus, t1.onDidLoseAccessibilityFocus, t1.customSemanticsActions, _null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(_null);
+ return t1;
+ },
+ _getTextDirection$1: function(context) {
+ var containsText,
+ t1 = this.properties,
+ t2 = t1.textDirection;
+ if (t2 != null)
+ return t2;
+ if (t1.label == null)
+ containsText = false;
+ else
+ containsText = true;
+ if (!containsText)
+ return null;
+ return T.Directionality_maybeOf(context);
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1, t2, _this = this;
+ renderObject.set$container(_this.container);
+ renderObject.set$explicitChildNodes(_this.explicitChildNodes);
+ renderObject.set$excludeSemantics(false);
+ t1 = _this.properties;
+ renderObject.set$scopesRoute(t1.scopesRoute);
+ renderObject.set$enabled(0, t1.enabled);
+ renderObject.set$checked(0, t1.checked);
+ renderObject.set$toggled(t1.toggled);
+ renderObject.set$selected(0, t1.selected);
+ renderObject.set$button(0, t1.button);
+ renderObject.set$slider(t1.slider);
+ renderObject.set$link(t1.link);
+ renderObject.set$header(t1.header);
+ renderObject.set$textField(t1.textField);
+ renderObject.set$readOnly(0, t1.readOnly);
+ renderObject.set$focusable(t1.focusable);
+ renderObject.set$focused(0, t1.focused);
+ renderObject.set$inMutuallyExclusiveGroup(t1.inMutuallyExclusiveGroup);
+ renderObject.set$obscured(t1.obscured);
+ renderObject.set$multiline(0, t1.multiline);
+ renderObject.set$hidden(0, t1.hidden);
+ renderObject.set$image(0, t1.image);
+ renderObject.set$liveRegion(t1.liveRegion);
+ renderObject.set$maxValueLength(t1.maxValueLength);
+ renderObject.set$currentValueLength(t1.currentValueLength);
+ renderObject.set$label(0, t1.label);
+ renderObject.set$value(0, t1.value);
+ renderObject.set$increasedValue(t1.increasedValue);
+ renderObject.set$decreasedValue(t1.decreasedValue);
+ renderObject.set$hint(0, t1.hint);
+ renderObject.set$hintOverrides(t1.hintOverrides);
+ renderObject.set$namesRoute(t1.namesRoute);
+ renderObject.set$textDirection(0, _this._getTextDirection$1(context));
+ renderObject.set$sortKey(t1.sortKey);
+ renderObject.set$tagForChildren(t1.tagForChildren);
+ renderObject.set$onTap(t1.onTap);
+ renderObject.set$onLongPress(t1.onLongPress);
+ renderObject.set$onScrollLeft(t1.onScrollLeft);
+ renderObject.set$onScrollRight(t1.onScrollRight);
+ renderObject.set$onScrollUp(t1.onScrollUp);
+ renderObject.set$onScrollDown(t1.onScrollDown);
+ renderObject.set$onIncrease(t1.onIncrease);
+ renderObject.set$onDismiss(t1.onDismiss);
+ renderObject.set$onDecrease(t1.onDecrease);
+ renderObject.set$onCopy(0, t1.onCopy);
+ renderObject.set$onCut(0, t1.onCut);
+ renderObject.set$onPaste(0, t1.onPaste);
+ t2 = t1.onMoveCursorForwardByCharacter;
+ renderObject.set$onMoveCursorForwardByCharacter(t2);
+ renderObject.set$onMoveCursorBackwardByCharacter(t2);
+ renderObject.set$onMoveCursorForwardByWord(null);
+ renderObject.set$onMoveCursorBackwardByWord(null);
+ renderObject.set$onSetSelection(t1.onSetSelection);
+ renderObject.set$onDidGainAccessibilityFocus(t1.onDidGainAccessibilityFocus);
+ renderObject.set$onDidLoseAccessibilityFocus(t1.onDidLoseAccessibilityFocus);
+ renderObject.set$customSemanticsActions(t1.customSemanticsActions);
+ }
+ };
+ T.MergeSemantics.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderMergeSemantics(null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ }
+ };
+ T.BlockSemantics.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderBlockSemantics(true, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$blocking(true);
+ }
+ };
+ T.ExcludeSemantics.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderExcludeSemantics(this.excluding, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$excluding(this.excluding);
+ }
+ };
+ T.IndexedSemantics.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderIndexedSemantics(this.index, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$index(0, this.index);
+ }
+ };
+ T.KeyedSubtree.prototype = {
+ build$1: function(_, context) {
+ return this.child;
+ }
+ };
+ T.Builder.prototype = {
+ build$1: function(_, context) {
+ return this.builder.call$1(context);
+ }
+ };
+ T.ColoredBox.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new T._RenderColoredBox(this.color, C.HitTestBehavior_1, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$color(0, this.color);
+ }
+ };
+ T._RenderColoredBox.prototype = {
+ set$color: function(_, value) {
+ if (J.$eq$(value, this._basic$_color))
+ return;
+ this._basic$_color = value;
+ this.markNeedsPaint$0();
+ },
+ paint$2: function(context, offset) {
+ var t2, t3, t4, t5, t6, _this = this,
+ t1 = _this._size;
+ if (t1._dx > 0 && t1._dy > 0) {
+ t1 = context.get$canvas(context);
+ t2 = _this._size;
+ t3 = offset._dx;
+ t4 = offset._dy;
+ t5 = t2._dx;
+ t2 = t2._dy;
+ t6 = new H.SurfacePaint(new H.SurfacePaintData());
+ t6.set$color(0, _this._basic$_color);
+ t1.drawRect$2(0, new P.Rect(t3, t4, t3 + t5, t4 + t2), t6);
+ }
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ context.paintChild$2(t1, offset);
+ }
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure.prototype = {
+ call$0: function() {
+ var result,
+ t1 = $.RendererBinding__instance;
+ if (t1 == null)
+ t1 = null;
+ else {
+ t1 = t1.get$_pipelineOwner()._rootNode;
+ t1.toString;
+ result = t1.super$DiagnosticableTreeMixin$toStringDeep(C.DiagnosticLevel_2, "", "");
+ t1 = result;
+ }
+ D.print__debugPrintThrottled$closure().call$1(t1 == null ? "Render tree unavailable." : t1);
+ return D.debugPrintDone();
+ },
+ $signature: 29
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure0.prototype = {
+ call$0: function() {
+ N.debugDumpSemanticsTree(C.DebugSemanticsDumpOrder_1);
+ return D.debugPrintDone();
+ },
+ $signature: 29
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure1.prototype = {
+ call$0: function() {
+ N.debugDumpSemanticsTree(C.DebugSemanticsDumpOrder_0);
+ return D.debugPrintDone();
+ },
+ $signature: 29
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_dispatchEvent_closure.prototype = {
+ call$0: function() {
+ var t2, result,
+ t1 = this.hitTestResult;
+ if (t1 == null) {
+ t1 = this.$this.get$_pipelineOwner()._rootNode;
+ t1.toString;
+ t2 = this.event;
+ t2 = t2.get$position(t2);
+ result = S.BoxHitTestResult$();
+ t1.hitTest$2$position(result, t2);
+ t1 = result;
+ }
+ return t1;
+ },
+ $signature: 248
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initInstances_closure.prototype = {
+ call$1: function(timings) {
+ var t1, t2, t3, t4, t5, t6, t7, t8, t9;
+ for (t1 = J.get$iterator$ax(timings), t2 = this._box_0, t3 = type$.String, t4 = type$.dynamic; t1.moveNext$0();) {
+ t5 = t1.get$current(t1);
+ t6 = ++t2.frameNumber;
+ t5 = t5._timestamps;
+ t7 = t5[1];
+ t8 = t5[4];
+ t9 = t5[0];
+ t9 = P.LinkedHashMap_LinkedHashMap$_literal(["number", t6, "startTime", t7, "elapsed", t8 - t9, "build", t5[2] - t7, "raster", t8 - t5[3], "vsyncOverhead", t7 - t9], t3, t4);
+ C.C_JsonCodec.encode$1(t9);
+ }
+ },
+ $signature: 66
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure.prototype = {
+ call$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.double),
+ $async$returnValue;
+ var $async$call$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = $._timeDilation;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$0, $async$completer);
+ },
+ $signature: 249
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure0.prototype = {
+ call$1: function(value) {
+ return this.$call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure(value);
+ },
+ $call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure: function(value) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ N.timeDilation(value);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 250
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_initInstances_closure.prototype = {
+ call$1: function(message) {
+ return this.$this.handleSystemMessage$1(message);
+ },
+ $signature: 251
+ };
+ N.WidgetsBindingObserver.prototype = {
+ didPopRoute$0: function() {
+ return P.Future_Future$value(false, type$.bool);
+ },
+ didPushRoute$1: function(route) {
+ return P.Future_Future$value(false, type$.bool);
+ },
+ didPushRouteInformation$1: function(routeInformation) {
+ var t1 = routeInformation.location;
+ t1.toString;
+ return this.didPushRoute$1(t1);
+ },
+ didChangeMetrics$0: function() {
+ },
+ didChangePlatformBrightness$0: function() {
+ },
+ didChangeLocales$1: function(locale) {
+ },
+ didChangeAppLifecycleState$1: function(state) {
+ }
+ };
+ N.WidgetsBinding.prototype = {
+ handleLocaleChanged$0: function() {
+ var t1 = $.$get$window();
+ t1.toString;
+ this.dispatchLocalesChanged$1(P.SingletonFlutterWindow.prototype.get$locales.call(t1));
+ },
+ dispatchLocalesChanged$1: function(locales) {
+ var t1, t2, _i;
+ for (t1 = this.WidgetsBinding__observers, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].didChangeLocales$1(locales);
+ },
+ handlePopRoute$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this, t1, t2, _i;
+ var $async$handlePopRoute$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = P.List_List$from($async$self.WidgetsBinding__observers, true, type$.WidgetsBindingObserver), t2 = t1.length, _i = 0;
+ case 3:
+ // for condition
+ if (!(_i < t2)) {
+ // goto after for
+ $async$goto = 5;
+ break;
+ }
+ $async$goto = 6;
+ return P._asyncAwait(t1[_i].didPopRoute$0(), $async$handlePopRoute$0);
+ case 6:
+ // returning from await.
+ if ($async$result) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ case 4:
+ // for update
+ ++_i;
+ // goto for condition
+ $async$goto = 3;
+ break;
+ case 5:
+ // after for
+ M.SystemNavigator_pop();
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$handlePopRoute$0, $async$completer);
+ },
+ handlePushRoute$1: function(route) {
+ return this.handlePushRoute$body$WidgetsBinding(route);
+ },
+ handlePushRoute$body$WidgetsBinding: function(route) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this, t1, t2, _i;
+ var $async$handlePushRoute$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = P.List_List$from($async$self.WidgetsBinding__observers, true, type$.WidgetsBindingObserver), t2 = t1.length, _i = 0;
+ case 3:
+ // for condition
+ if (!(_i < t2)) {
+ // goto after for
+ $async$goto = 5;
+ break;
+ }
+ $async$goto = 6;
+ return P._asyncAwait(t1[_i].didPushRoute$1(route), $async$handlePushRoute$1);
+ case 6:
+ // returning from await.
+ if ($async$result) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ case 4:
+ // for update
+ ++_i;
+ // goto for condition
+ $async$goto = 3;
+ break;
+ case 5:
+ // after for
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$handlePushRoute$1, $async$completer);
+ },
+ _handlePushRouteInformation$1: function(routeArguments) {
+ return this._handlePushRouteInformation$body$WidgetsBinding(routeArguments);
+ },
+ _handlePushRouteInformation$body$WidgetsBinding: function(routeArguments) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this, t1, t2, t3, _i;
+ var $async$_handlePushRouteInformation$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = P.List_List$from($async$self.WidgetsBinding__observers, true, type$.WidgetsBindingObserver), t2 = t1.length, t3 = J.getInterceptor$asx(routeArguments), _i = 0;
+ case 3:
+ // for condition
+ if (!(_i < t2)) {
+ // goto after for
+ $async$goto = 5;
+ break;
+ }
+ $async$goto = 6;
+ return P._asyncAwait(t1[_i].didPushRouteInformation$1(new Z.RouteInformation(H._asStringS(t3.$index(routeArguments, "location")), t3.$index(routeArguments, "state"))), $async$_handlePushRouteInformation$1);
+ case 6:
+ // returning from await.
+ if ($async$result) {
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ case 4:
+ // for update
+ ++_i;
+ // goto for condition
+ $async$goto = 3;
+ break;
+ case 5:
+ // after for
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_handlePushRouteInformation$1, $async$completer);
+ },
+ _handleNavigationInvocation$1: function(methodCall) {
+ switch (methodCall.method) {
+ case "popRoute":
+ return this.handlePopRoute$0();
+ case "pushRoute":
+ return this.handlePushRoute$1(H._asStringS(methodCall.$arguments));
+ case "pushRouteInformation":
+ return this._handlePushRouteInformation$1(type$.Map_dynamic_dynamic._as(methodCall.$arguments));
+ }
+ return P.Future_Future$value(null, type$.dynamic);
+ },
+ _handleBuildScheduled$0: function() {
+ this.ensureVisualUpdate$0();
+ },
+ scheduleAttachRootWidget$1: function(rootWidget) {
+ P.Timer_Timer(C.Duration_0, new N.WidgetsBinding_scheduleAttachRootWidget_closure(this, rootWidget));
+ }
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure.prototype = {
+ call$0: function() {
+ D.print__debugPrintThrottled$closure().call$1(J.get$runtimeType$($.WidgetsBinding__instance).toString$0(0) + " - RELEASE MODE");
+ var t1 = $.WidgetsBinding__instance.WidgetsBinding__renderViewElement;
+ if (t1 != null) {
+ t1.toDiagnosticsNode$0();
+ D.print__debugPrintThrottled$closure().call$1("");
+ } else
+ D.print__debugPrintThrottled$closure().call$1("");
+ return D.debugPrintDone();
+ },
+ $signature: 29
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure0.prototype = {
+ call$1: function(_) {
+ return this.$call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure2(_);
+ },
+ $call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure2: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Map_String_dynamic),
+ $async$returnValue, $async$self = this;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = P.LinkedHashMap_LinkedHashMap$_literal(["enabled", $async$self.$this.WidgetsBinding__needToReportFirstFrame ? "false" : "true"], type$.String, type$.dynamic);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 40
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure1.prototype = {
+ call$1: function(_) {
+ return this.$call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure1(_);
+ },
+ $call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure1: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Map_String_dynamic),
+ $async$returnValue, $async$self = this;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = P.LinkedHashMap_LinkedHashMap$_literal(["enabled", $async$self.$this.WidgetsBinding__firstFrameCompleter.future._state !== 0 ? "true" : "false"], type$.String, type$.dynamic);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 40
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure2.prototype = {
+ call$1: function(params) {
+ return this.$call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure0(params);
+ },
+ $call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure0: function(params) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Map_String_String),
+ $async$returnValue, $async$self = this, className, t1, t2;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ className = H._asStringQ(J.$index$asx(params, "className"));
+ t1 = $async$self.$this;
+ t2 = t1.WidgetsBinding__renderViewElement;
+ if (t2 != null)
+ new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure_markElementsDirty(className).call$1(t2);
+ $async$goto = 3;
+ return P._asyncAwait(t1.get$endOfFrame(), $async$call$1);
+ case 3:
+ // returning from await.
+ t1 = type$.String;
+ $async$returnValue = P.LinkedHashMap_LinkedHashMap$_literal(["type", "Success"], t1, t1);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 252
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure_markElementsDirty.prototype = {
+ call$1: function(element) {
+ if (H._rtiToString(J.get$runtimeType$(element.get$widget())._rti, null) == this.className)
+ element.markNeedsBuild$0();
+ element.visitChildren$1(this);
+ },
+ $signature: 9
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure3.prototype = {
+ call$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.bool),
+ $async$returnValue;
+ var $async$call$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = $.debugProfileBuildsEnabled;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$0, $async$completer);
+ },
+ $signature: 253
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure4.prototype = {
+ call$1: function(value) {
+ return this.$call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure(value);
+ },
+ $call$body$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure: function(value) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if ($.debugProfileBuildsEnabled !== value)
+ $.debugProfileBuildsEnabled = value;
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 254
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_drawFrame_closure.prototype = {
+ call$1: function(timings) {
+ var t1, t2, t3;
+ P.Timeline_instantSync("Rasterized first useful frame", null);
+ P.postEvent("Flutter.FirstFrame", P.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic));
+ t1 = $.SchedulerBinding__instance;
+ t1.toString;
+ t2 = this._box_0;
+ t3 = t2.firstFrameCallback;
+ t3.toString;
+ t1.removeTimingsCallback$1(t3);
+ t2.firstFrameCallback = null;
+ this.$this.WidgetsBinding__firstFrameCompleter.complete$0(0);
+ },
+ $signature: 66
+ };
+ N.WidgetsBinding_scheduleAttachRootWidget_closure.prototype = {
+ call$0: function() {
+ var t2, t3,
+ t1 = this.$this;
+ t1.WidgetsBinding__readyToProduceFrames = true;
+ t2 = t1.get$_pipelineOwner()._rootNode;
+ t2.toString;
+ t3 = t1.WidgetsBinding__buildOwner;
+ t3.toString;
+ t1.WidgetsBinding__renderViewElement = new N.RenderObjectToWidgetAdapter(this.rootWidget, t2, "[root]", new N.GlobalObjectKey(t2, type$.GlobalObjectKey_State_StatefulWidget), type$.RenderObjectToWidgetAdapter_RenderBox).attachToRenderTree$2(t3, type$.nullable_RenderObjectToWidgetElement_RenderBox._as(t1.WidgetsBinding__renderViewElement));
+ },
+ $signature: 0
+ };
+ N.RenderObjectToWidgetAdapter.prototype = {
+ createElement$0: function(_) {
+ var t1 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t1;
+ return new N.RenderObjectToWidgetElement(t1, this, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2), this.$ti._eval$1("RenderObjectToWidgetElement<1>"));
+ },
+ createRenderObject$1: function(context) {
+ return this.container;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ },
+ attachToRenderTree$2: function(owner, element) {
+ var t2, t1 = {};
+ t1.element = element;
+ if (element == null) {
+ owner.lockState$1(new N.RenderObjectToWidgetAdapter_attachToRenderTree_closure(t1, this, owner));
+ t2 = t1.element;
+ t2.toString;
+ owner.buildScope$2(t2, new N.RenderObjectToWidgetAdapter_attachToRenderTree_closure0(t1));
+ $.SchedulerBinding__instance.ensureVisualUpdate$0();
+ } else {
+ element._newWidget = this;
+ element.markNeedsBuild$0();
+ }
+ t1 = t1.element;
+ t1.toString;
+ return t1;
+ },
+ toStringShort$0: function() {
+ return this.debugShortDescription;
+ }
+ };
+ N.RenderObjectToWidgetAdapter_attachToRenderTree_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ element = N.RenderObjectToWidgetElement$(t1, t1.$ti._precomputed1);
+ this._box_0.element = element;
+ element._owner = this.owner;
+ },
+ $signature: 0
+ };
+ N.RenderObjectToWidgetAdapter_attachToRenderTree_closure0.prototype = {
+ call$0: function() {
+ var t1 = this._box_0.element;
+ t1.toString;
+ t1.super$RootRenderObjectElement$mount(null, null);
+ t1._rebuild$0();
+ },
+ $signature: 0
+ };
+ N.RenderObjectToWidgetElement.prototype = {
+ get$widget: function() {
+ return this.$ti._eval$1("RenderObjectToWidgetAdapter<1>")._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ },
+ visitChildren$1: function(visitor) {
+ var t1 = this._child;
+ if (t1 != null)
+ visitor.call$1(t1);
+ },
+ forgetChild$1: function(child) {
+ this._child = null;
+ this.super$Element$forgetChild(child);
+ },
+ mount$2: function($parent, newSlot) {
+ this.super$RootRenderObjectElement$mount($parent, newSlot);
+ this._rebuild$0();
+ },
+ update$1: function(_, newWidget) {
+ this.super$RenderObjectElement$update(0, newWidget);
+ this._rebuild$0();
+ },
+ performRebuild$0: function() {
+ var _this = this,
+ t1 = _this._newWidget;
+ if (t1 != null) {
+ _this._newWidget = null;
+ _this.super$RenderObjectElement$update(0, _this.$ti._eval$1("RenderObjectToWidgetAdapter<1>")._as(t1));
+ _this._rebuild$0();
+ }
+ _this.super$RenderObjectElement$performRebuild();
+ },
+ _rebuild$0: function() {
+ var exception, stack, details, error, exception0, t1, _this = this;
+ try {
+ _this._child = _this.updateChild$3(_this._child, _this.$ti._eval$1("RenderObjectToWidgetAdapter<1>")._as(N.RenderObjectElement.prototype.get$widget.call(_this)).child, C.C_Object);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("attaching to the render tree");
+ details = new U.FlutterErrorDetails(exception, stack, "widgets library", t1, null, false);
+ t1 = $.$get$FlutterError_onError();
+ if (t1 != null)
+ t1.call$1(details);
+ error = N.ErrorWidget__defaultErrorWidgetBuilder(details);
+ _this._child = _this.updateChild$3(null, error, C.C_Object);
+ }
+ },
+ get$renderObject: function() {
+ return this.$ti._eval$1("RenderObjectWithChildMixin<1>")._as(N.RenderObjectElement.prototype.get$renderObject.call(this));
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ var t1 = this.$ti;
+ t1._eval$1("RenderObjectWithChildMixin<1>")._as(N.RenderObjectElement.prototype.get$renderObject.call(this)).set$child(t1._precomputed1._as(child));
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ this.$ti._eval$1("RenderObjectWithChildMixin<1>")._as(N.RenderObjectElement.prototype.get$renderObject.call(this)).set$child(null);
+ }
+ };
+ N.WidgetsFlutterBinding.prototype = {};
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding.prototype = {
+ initInstances$0: function() {
+ this.super$BindingBase$initInstances();
+ $.GestureBinding__instance = this;
+ var t1 = $.$get$window().platformDispatcher;
+ t1._onPointerDataPacket = this.get$_handlePointerDataPacket();
+ t1._onPointerDataPacketZone = $.Zone__current;
+ },
+ unlocked$0: function() {
+ this.super$BindingBase$unlocked();
+ this._flushPointerEventQueue$0();
+ }
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding.prototype = {
+ initInstances$0: function() {
+ var _this = this, t1 = {};
+ _this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding$initInstances();
+ $.SchedulerBinding__instance = _this;
+ t1.frameNumber = 0;
+ _this.addTimingsCallback$1(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initInstances_closure(t1, _this));
+ },
+ initServiceExtensions$0: function() {
+ this.super$BindingBase$initServiceExtensions();
+ this.registerNumericServiceExtension$3$getter$name$setter(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure(), "timeDilation", new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure0());
+ }
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding.prototype = {
+ initInstances$0: function() {
+ var t1, t2, _this = this;
+ _this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding$initInstances();
+ $.ServicesBinding__instance = _this;
+ _this.ServicesBinding___ServicesBinding__defaultBinaryMessenger_isSet = true;
+ _this.ServicesBinding___ServicesBinding__defaultBinaryMessenger = C.C__DefaultBinaryMessenger;
+ t1 = new K.RestorationManager(P.LinkedHashSet_LinkedHashSet$_empty(type$.RestorationBucket), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ C.OptionalMethodChannel_fgL.setMethodCallHandler$1(t1.get$_methodHandler());
+ _this.ServicesBinding___ServicesBinding__restorationManager_isSet = true;
+ _this.ServicesBinding___ServicesBinding__restorationManager = t1;
+ t1 = $.$get$window();
+ t2 = _this.get$_defaultBinaryMessenger().get$handlePlatformMessage();
+ t1 = t1.platformDispatcher;
+ t1._onPlatformMessage = t2;
+ t1._onPlatformMessageZone = $.Zone__current;
+ t1 = $.LicenseRegistry__collectors;
+ if (t1 == null)
+ t1 = $.LicenseRegistry__collectors = H.setRuntimeTypeInfo([], type$.JSArray_of_Stream_LicenseEntry_Function);
+ t1.push(_this.get$_addLicenses());
+ C.BasicMessageChannel_Qma.setMessageHandler$1(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_initInstances_closure(_this));
+ C.BasicMessageChannel_No7.setMessageHandler$1(_this.get$_handleLifecycleMessage());
+ _this.readInitialLifecycleStateFromNativeWindow$0();
+ },
+ initServiceExtensions$0: function() {
+ this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding$initServiceExtensions();
+ }
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding.prototype = {
+ initInstances$0: function() {
+ this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding$initInstances();
+ $.PaintingBinding__instance = this;
+ var t1 = type$.Object;
+ this.PaintingBinding__imageCache = new E.ImageCache(P.LinkedHashMap_LinkedHashMap$_empty(t1, type$._PendingImage), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$._CachedImage), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$._LiveImage));
+ C.C_DefaultShaderWarmUp.execute$0();
+ },
+ handleMemoryPressure$0: function() {
+ this.super$ServicesBinding$handleMemoryPressure();
+ var t1 = this.PaintingBinding__imageCache;
+ if (t1 != null)
+ t1.clear$0(0);
+ },
+ handleSystemMessage$1: function(systemMessage) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this;
+ var $async$handleSystemMessage$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait($async$self.super$ServicesBinding$handleSystemMessage(systemMessage), $async$handleSystemMessage$1);
+ case 3:
+ // returning from await.
+ switch (H._asStringS(J.$index$asx(type$.Map_String_dynamic._as(systemMessage), "type"))) {
+ case "fontsChange":
+ $async$self.PaintingBinding__systemFonts.notifyListeners$0();
+ break;
+ }
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$handleSystemMessage$1, $async$completer);
+ }
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding.prototype = {
+ initInstances$0: function() {
+ var t1, _this = this;
+ _this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding$initInstances();
+ $.SemanticsBinding__instance = _this;
+ t1 = $.$get$window().platformDispatcher._configuration;
+ _this.SemanticsBinding___SemanticsBinding__accessibilityFeatures_isSet = true;
+ _this.SemanticsBinding___SemanticsBinding__accessibilityFeatures = t1.accessibilityFeatures;
+ }
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding.prototype = {
+ initInstances$0: function() {
+ var t1, t2, t3, _this = this;
+ _this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding$initInstances();
+ $.RendererBinding__instance = _this;
+ t1 = type$.JSArray_RenderObject;
+ t2 = H.setRuntimeTypeInfo([], t1);
+ t3 = H.setRuntimeTypeInfo([], t1);
+ t1 = H.setRuntimeTypeInfo([], t1);
+ _this.RendererBinding___RendererBinding__pipelineOwner_isSet = true;
+ _this.RendererBinding___RendererBinding__pipelineOwner = new K.PipelineOwner(_this.get$ensureVisualUpdate(), _this.get$_handleSemanticsOwnerCreated(), _this.get$_handleSemanticsOwnerDisposed(), t2, t3, t1, P.LinkedHashSet_LinkedHashSet$_empty(type$.RenderObject));
+ t1 = $.$get$window();
+ t3 = t1.platformDispatcher;
+ t3._onMetricsChanged = _this.get$handleMetricsChanged();
+ t2 = t3._onMetricsChangedZone = $.Zone__current;
+ t3._onPlatformBrightnessChanged = _this.get$handlePlatformBrightnessChanged();
+ t3._onPlatformBrightnessChangedZone = t2;
+ t3._onSemanticsEnabledChanged = _this.get$_handleSemanticsEnabledChanged();
+ t3._onSemanticsEnabledChangedZone = t2;
+ t3._onSemanticsAction = _this.get$_handleSemanticsAction();
+ t3._onSemanticsActionZone = t2;
+ t1 = new A.RenderView(C.Size_0_0, _this.createViewConfiguration$0(), t1, null);
+ t1.get$isRepaintBoundary();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.set$child(null);
+ _this.get$_pipelineOwner().set$rootNode(t1);
+ t1 = _this.get$_pipelineOwner()._rootNode;
+ t1._relayoutBoundary = t1;
+ t2 = type$.nullable_PipelineOwner;
+ t2._as(B.AbstractNode.prototype.get$owner.call(t1))._nodesNeedingLayout.push(t1);
+ t1._layer = t1._updateMatricesAndCreateNewRootLayer$0();
+ t2._as(B.AbstractNode.prototype.get$owner.call(t1))._nodesNeedingPaint.push(t1);
+ _this.setSemanticsEnabled$1(t3._configuration.semanticsEnabled);
+ _this.SchedulerBinding__persistentCallbacks.push(_this.get$_handlePersistentFrameCallback());
+ t3 = _this.RendererBinding__mouseTracker;
+ if (t3 != null)
+ t3.ChangeNotifier__listeners = null;
+ t1 = type$.int;
+ _this.RendererBinding__mouseTracker = new Y.MouseTracker(P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.MouseCursorSession), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$._MouseState), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ _this.SchedulerBinding__postFrameCallbacks.push(_this.get$_handleWebFirstFrame());
+ },
+ initServiceExtensions$0: function() {
+ var _this = this;
+ _this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding$initServiceExtensions();
+ _this.registerSignalServiceExtension$2$callback$name(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure(), "debugDumpRenderTree");
+ _this.registerSignalServiceExtension$2$callback$name(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure0(), "debugDumpSemanticsTreeInTraversalOrder");
+ _this.registerSignalServiceExtension$2$callback$name(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure1(), "debugDumpSemanticsTreeInInverseHitTestOrder");
+ },
+ dispatchEvent$2: function(_, $event, hitTestResult) {
+ if (hitTestResult != null || type$.PointerAddedEvent._is($event) || type$.PointerRemovedEvent._is($event))
+ this.RendererBinding__mouseTracker.updateWithEvent$2($event, new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_dispatchEvent_closure(this, hitTestResult, $event));
+ this.super$GestureBinding$dispatchEvent(0, $event, hitTestResult);
+ }
+ };
+ N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding.prototype = {
+ initServiceExtensions$0: function() {
+ var _this = this;
+ _this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding$initServiceExtensions();
+ _this.registerSignalServiceExtension$2$callback$name(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure(), "debugDumpApp");
+ _this.registerServiceExtension$2$callback$name(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure0(_this), "didSendFirstFrameEvent");
+ _this.registerServiceExtension$2$callback$name(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure1(_this), "didSendFirstFrameRasterizedEvent");
+ _this.registerServiceExtension$2$callback$name(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure2(_this), "fastReassemble");
+ _this.registerBoolServiceExtension$3$getter$name$setter(new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure3(), "profileWidgetBuilds", new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure4());
+ },
+ handleMetricsChanged$0: function() {
+ var t1, t2, _i;
+ this.super$RendererBinding$handleMetricsChanged();
+ for (t1 = this.WidgetsBinding__observers, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].didChangeMetrics$0();
+ },
+ handlePlatformBrightnessChanged$0: function() {
+ var t1, t2, _i;
+ this.super$RendererBinding$handlePlatformBrightnessChanged();
+ for (t1 = this.WidgetsBinding__observers, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].didChangePlatformBrightness$0();
+ },
+ handleAppLifecycleStateChanged$1: function(state) {
+ var t1, t2, _i;
+ this.super$SchedulerBinding$handleAppLifecycleStateChanged(state);
+ for (t1 = this.WidgetsBinding__observers, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].didChangeAppLifecycleState$1(state);
+ },
+ handleMemoryPressure$0: function() {
+ var t1, _i;
+ this.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding$handleMemoryPressure();
+ for (t1 = this.WidgetsBinding__observers.length, _i = 0; _i < t1; ++_i)
+ ;
+ },
+ drawFrame$0: function() {
+ var firstFrameCallback, t2, _this = this, t1 = {};
+ t1.firstFrameCallback = null;
+ if (_this.WidgetsBinding__needToReportFirstFrame) {
+ firstFrameCallback = new N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_drawFrame_closure(t1, _this);
+ t1.firstFrameCallback = firstFrameCallback;
+ $.SchedulerBinding__instance.addTimingsCallback$1(firstFrameCallback);
+ }
+ try {
+ t2 = _this.WidgetsBinding__renderViewElement;
+ if (t2 != null)
+ _this.WidgetsBinding__buildOwner.buildScope$1(t2);
+ _this.super$RendererBinding$drawFrame();
+ _this.WidgetsBinding__buildOwner.finalizeTree$0();
+ } finally {
+ }
+ if (_this.WidgetsBinding__needToReportFirstFrame)
+ t2 = _this.RendererBinding__firstFrameSent || _this.RendererBinding__firstFrameDeferredCount === 0;
+ else
+ t2 = false;
+ if (t2)
+ P.Timeline_instantSync("Widgets built first useful frame", null);
+ t2 = _this.WidgetsBinding__needToReportFirstFrame = false;
+ t1 = t1.firstFrameCallback;
+ if (t1 != null)
+ t2 = !(_this.RendererBinding__firstFrameSent || _this.RendererBinding__firstFrameDeferredCount === 0);
+ if (t2) {
+ _this.WidgetsBinding__needToReportFirstFrame = true;
+ t2 = $.SchedulerBinding__instance;
+ t2.toString;
+ t1.toString;
+ t2.removeTimingsCallback$1(t1);
+ }
+ }
+ };
+ M.DecoratedBox.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new E.RenderDecoratedBox(this.decoration, this.position, U.createLocalImageConfiguration(context), null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$child(null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$decoration(0, this.decoration);
+ renderObject.set$configuration(U.createLocalImageConfiguration(context));
+ renderObject.set$position(0, this.position);
+ }
+ };
+ M.Container.prototype = {
+ get$_paddingIncludingDecoration: function() {
+ var decorationPadding,
+ t1 = this.decoration;
+ if (t1 == null || t1.get$padding(t1) == null)
+ return this.padding;
+ decorationPadding = t1.get$padding(t1);
+ t1 = this.padding;
+ if (t1 == null)
+ return decorationPadding;
+ decorationPadding.toString;
+ return t1.add$1(0, decorationPadding);
+ },
+ build$1: function(_, context) {
+ var t1, effectivePadding, _this = this, _null = null,
+ current = _this.child;
+ if (current == null) {
+ t1 = _this.constraints;
+ if (t1 != null)
+ t1 = !(t1.minWidth >= t1.maxWidth && t1.minHeight >= t1.maxHeight);
+ else
+ t1 = true;
+ } else
+ t1 = false;
+ if (t1)
+ current = new T.LimitedBox(0, 0, new T.ConstrainedBox(C.BoxConstraints_ALM, _null, _null), _null);
+ t1 = _this.alignment;
+ if (t1 != null)
+ current = new T.Align(t1, _null, _null, current, _null);
+ effectivePadding = _this.get$_paddingIncludingDecoration();
+ if (effectivePadding != null)
+ current = new T.Padding(effectivePadding, current, _null);
+ t1 = _this.color;
+ if (t1 != null)
+ current = new T.ColoredBox(t1, current, _null);
+ t1 = _this.decoration;
+ if (t1 != null)
+ current = M.DecoratedBox$(current, t1, C.DecorationPosition_0);
+ t1 = _this.constraints;
+ if (t1 != null)
+ current = new T.ConstrainedBox(t1, current, _null);
+ t1 = _this.margin;
+ if (t1 != null)
+ current = new T.Padding(t1, current, _null);
+ current.toString;
+ return current;
+ }
+ };
+ D.TextEditingController.prototype = {
+ buildTextSpan$2$style$withComposing: function(style, withComposing) {
+ var t3, composingStyle, _null = null,
+ t1 = this._change_notifier$_value,
+ t2 = t1.composing;
+ if (t2.get$isValid()) {
+ t3 = t2.end;
+ t1 = t3 >= t2.start && t3 <= t1.text.length;
+ } else
+ t1 = false;
+ if (!t1 || !withComposing)
+ return new Q.TextSpan(this._change_notifier$_value.text, _null, style);
+ composingStyle = style.merge$1(C.TextStyle_MYu);
+ t1 = this._change_notifier$_value;
+ t2 = t1.composing;
+ t1 = t1.text;
+ t3 = t2.start;
+ t2 = t2.end;
+ return new Q.TextSpan(_null, H.setRuntimeTypeInfo([new Q.TextSpan(J.getInterceptor$s(t1).substring$2(t1, 0, t3), _null, _null), new Q.TextSpan(C.JSString_methods.substring$2(t1, t3, t2), _null, composingStyle), new Q.TextSpan(C.JSString_methods.substring$1(t1, t2), _null, _null)], type$.JSArray_TextSpan), style);
+ },
+ set$selection: function(newSelection) {
+ var t1, t2, t3, newComposing, _this = this;
+ if (!_this.isSelectionWithinTextBounds$1(newSelection))
+ throw H.wrapException(U.FlutterError_FlutterError("invalid text selection: " + newSelection.toString$0(0)));
+ t1 = newSelection.start;
+ t2 = newSelection.end;
+ if (t1 == t2) {
+ t3 = _this._change_notifier$_value.composing;
+ t1 = t1 >= t3.start && t2 <= t3.end;
+ } else
+ t1 = false;
+ newComposing = t1 ? _this._change_notifier$_value.composing : C.TextRange_m1_m1;
+ _this.super$ValueNotifier$value(0, _this._change_notifier$_value.copyWith$2$composing$selection(newComposing, newSelection));
+ },
+ isSelectionWithinTextBounds$1: function(selection) {
+ var t1 = this._change_notifier$_value.text.length;
+ return selection.start <= t1 && selection.end <= t1;
+ }
+ };
+ D.ToolbarOptions.prototype = {};
+ D.EditableText.prototype = {
+ get$strutStyle: function(_) {
+ var t1 = this.style,
+ t2 = t1.get$fontFamilyFallback();
+ return new M.StrutStyle(t1.fontFamily, t2, t1.fontSize, t1.height, t1.fontWeight, t1.fontStyle, null, true, t1.debugLabel);
+ },
+ createState$0: function() {
+ return new D.EditableTextState(new B.ValueNotifier(true, new P.LinkedList(type$.LinkedList__ListenerEntry)), new N.LabeledGlobalKey(null, type$.LabeledGlobalKey_State_StatefulWidget), new T.LayerLink(), new T.LayerLink(), new T.LayerLink(), null, null, C._StateLifecycle_0);
+ }
+ };
+ D.EditableTextState.prototype = {
+ get$_cursorBlinkOpacityController: function() {
+ return this.__EditableTextState__cursorBlinkOpacityController_isSet ? this.__EditableTextState__cursorBlinkOpacityController : H.throwExpression(H.LateError$fieldNI("_cursorBlinkOpacityController"));
+ },
+ get$_floatingCursorResetController: function() {
+ return this.__EditableTextState__floatingCursorResetController_isSet ? this.__EditableTextState__floatingCursorResetController : H.throwExpression(H.LateError$fieldNI("_floatingCursorResetController"));
+ },
+ get$wantKeepAlive: function() {
+ return this._widget.focusNode.get$hasFocus();
+ },
+ initState$0: function() {
+ var t1, t2, _this = this, _null = null;
+ _this.super$_EditableTextState_State_AutomaticKeepAliveClientMixin$initState();
+ t1 = _this._widget.controller.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(_this.get$_didChangeTextEditingValue()), false);
+ t1 = _this._widget.focusNode;
+ t2 = _this._framework$_element;
+ t2.toString;
+ _this._editable_text$_focusAttachment = t1.attach$1(t2);
+ t2 = _this._widget.focusNode.ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(_this.get$_editable_text$_handleFocusChanged()), false);
+ _this._widget.toString;
+ t1 = F.ScrollController$();
+ _this._scrollController = t1;
+ t1 = t1.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(new D.EditableTextState_initState_closure(_this)), false);
+ t1 = G.AnimationController$(_null, C.Duration_250000, 0, _null, 1, _null, _this);
+ _this.__EditableTextState__cursorBlinkOpacityController_isSet = true;
+ _this.__EditableTextState__cursorBlinkOpacityController = t1;
+ t1 = _this.get$_cursorBlinkOpacityController();
+ t1.didRegisterListener$0();
+ t1 = t1.AnimationLocalListenersMixin__listeners;
+ t1._isDirty = true;
+ t1._observer_list$_list.push(_this.get$_onCursorColorTick());
+ t1 = G.AnimationController$(_null, _null, 0, _null, 1, _null, _this);
+ _this.__EditableTextState__floatingCursorResetController_isSet = true;
+ _this.__EditableTextState__floatingCursorResetController = t1;
+ t1 = _this.get$_floatingCursorResetController();
+ t1.didRegisterListener$0();
+ t1 = t1.AnimationLocalListenersMixin__listeners;
+ t1._isDirty = true;
+ t1._observer_list$_list.push(_this.get$_onFloatingCursorResetTick());
+ _this._cursorVisibilityNotifier.set$value(0, _this._widget.showCursor);
+ },
+ didChangeDependencies$0: function() {
+ var _this = this;
+ _this.super$_EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin$didChangeDependencies();
+ _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$._AutofillScope);
+ if (!_this._didAutoFocus)
+ _this._widget.toString;
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, t2, t3, style, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ t1 = _this._widget.controller;
+ t2 = oldWidget.controller;
+ if (t1 != t2) {
+ t1 = _this.get$_didChangeTextEditingValue();
+ t2.removeListener$1(0, t1);
+ t3 = _this._widget.controller.ChangeNotifier__listeners;
+ t3._insertBefore$3$updateFirst(t3._collection$_first, new B._ListenerEntry(t1), false);
+ _this._updateRemoteEditingValueIfNeeded$0();
+ }
+ if (!_this._widget.controller._change_notifier$_value.selection.$eq(0, t2._change_notifier$_value.selection)) {
+ t1 = _this._selectionOverlay;
+ if (t1 != null)
+ t1.update$1(0, _this._widget.controller._change_notifier$_value);
+ }
+ t1 = _this._selectionOverlay;
+ if (t1 != null)
+ t1.set$handlesVisible(_this._widget.showSelectionHandles);
+ if (!_this._isInAutofillContext) {
+ _this.get$_needsAutofill();
+ t1 = false;
+ } else
+ t1 = true;
+ _this._isInAutofillContext = t1;
+ t1 = _this._widget.focusNode;
+ t2 = oldWidget.focusNode;
+ if (t1 !== t2) {
+ t1 = _this.get$_editable_text$_handleFocusChanged();
+ t2.removeListener$1(0, t1);
+ t2 = _this._editable_text$_focusAttachment;
+ if (t2 != null)
+ t2.detach$0(0);
+ t2 = _this._widget.focusNode;
+ t3 = _this._framework$_element;
+ t3.toString;
+ _this._editable_text$_focusAttachment = t2.attach$1(t3);
+ t3 = _this._widget.focusNode.ChangeNotifier__listeners;
+ t3._insertBefore$3$updateFirst(t3._collection$_first, new B._ListenerEntry(t1), false);
+ _this.updateKeepAlive$0();
+ }
+ if (oldWidget.readOnly && _this._widget.focusNode.get$hasFocus())
+ _this._openInputConnection$0();
+ t1 = _this.get$_hasInputConnection();
+ if (t1)
+ if (oldWidget.readOnly !== _this._widget.readOnly) {
+ _this._textInputConnection.toString;
+ _this.get$_needsAutofill();
+ t1 = _this._createTextInputConfiguration$1(false);
+ $.$get$TextInput__instance().get$_channel().invokeMethod$1$2("TextInput.updateConfig", t1.toJson$0(), type$.void);
+ }
+ if (!_this._widget.style.$eq(0, oldWidget.style)) {
+ style = _this._widget.style;
+ if (_this.get$_hasInputConnection()) {
+ t1 = _this._textInputConnection;
+ t1.toString;
+ t2 = _this.get$_editable_text$_textDirection();
+ t1.setStyle$5$fontFamily$fontSize$fontWeight$textAlign$textDirection(0, style.fontFamily, style.fontSize, style.fontWeight, _this._widget.textAlign, t2);
+ }
+ }
+ t1 = _this._widget;
+ t2 = !t1.readOnly;
+ if (t2) {
+ if (t1.selectionControls == null)
+ t1 = null;
+ else
+ t1 = t2;
+ t1 = t1 === true;
+ } else
+ t1 = false;
+ t1;
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ _this._widget.controller.removeListener$1(0, _this.get$_didChangeTextEditingValue());
+ _this.get$_cursorBlinkOpacityController().removeListener$1(0, _this.get$_onCursorColorTick());
+ _this.get$_floatingCursorResetController().removeListener$1(0, _this.get$_onFloatingCursorResetTick());
+ _this._closeInputConnectionIfNeeded$0();
+ _this._stopCursorTimer$0();
+ t1 = _this._selectionOverlay;
+ if (t1 != null) {
+ t1.hide$0();
+ t1.get$_toolbarController().dispose$0(0);
+ }
+ _this._selectionOverlay = null;
+ _this._editable_text$_focusAttachment.detach$0(0);
+ _this._widget.focusNode.removeListener$1(0, _this.get$_editable_text$_handleFocusChanged());
+ C.JSArray_methods.remove$1($.WidgetsBinding__instance.WidgetsBinding__observers, _this);
+ _this.super$_EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin$dispose(0);
+ },
+ updateEditingValue$1: function(value) {
+ var _this = this,
+ t1 = _this._widget;
+ if (t1.readOnly)
+ value = t1.controller._change_notifier$_value.copyWith$1$selection(value.selection);
+ _this._lastKnownRemoteTextEditingValue = value;
+ if (value.$eq(0, _this._widget.controller._change_notifier$_value))
+ return;
+ t1 = _this._widget.controller._change_notifier$_value;
+ if (value.text == t1.text && value.composing.$eq(0, t1.composing)) {
+ t1 = $.GlobalKey__registry.$index(0, _this._editableKey).get$renderObject();
+ t1.toString;
+ _this._editable_text$_handleSelectionChanged$3(value.selection, type$.RenderEditable._as(t1), C.SelectionChangedCause_4);
+ } else {
+ _this.hideToolbar$0();
+ _this._currentPromptRectRange = null;
+ if (_this.get$_hasInputConnection()) {
+ _this._showCaretOnScreen$0();
+ _this._widget.toString;
+ }
+ _this._formatAndSetValue$1(value);
+ }
+ if (_this.get$_hasInputConnection()) {
+ _this._stopCursorTimer$1$resetCharTicks(false);
+ _this._startCursorTimer$0();
+ }
+ },
+ _onFloatingCursorResetTick$0: function() {
+ var t3, t4, finalPosition, lerpValue, _this = this,
+ t1 = _this._editableKey,
+ t2 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t2.toString;
+ t3 = type$.RenderEditable;
+ t3._as(t2);
+ t4 = _this._lastTextPosition;
+ t4.toString;
+ t4 = t2.getLocalRectForCaret$1(t4).get$centerLeft();
+ t2 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t2.toString;
+ finalPosition = t4.$sub(0, new P.Offset(0, t3._as(t2)._editable$_textPainter.get$preferredLineHeight() / 2));
+ t2 = _this.get$_floatingCursorResetController();
+ if (t2.get$status(t2) === C.AnimationStatus_3) {
+ t2 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t2.toString;
+ t3._as(t2);
+ t4 = _this._lastTextPosition;
+ t4.toString;
+ t2.setFloatingCursor$3(C.FloatingCursorDragState_2, finalPosition, t4);
+ t2 = _this._lastTextPosition.offset;
+ t4 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t4.toString;
+ if (t2 != t3._as(t4)._selection.baseOffset) {
+ t2 = X.TextSelection$collapsed(C.TextAffinity_1, _this._lastTextPosition.offset);
+ t1 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t1.toString;
+ _this._editable_text$_handleSelectionChanged$3(t2, t3._as(t1), C.SelectionChangedCause_3);
+ }
+ _this._lastBoundedOffset = _this._pointOffsetOrigin = _this._lastTextPosition = _this._startCaretRect = null;
+ } else {
+ lerpValue = _this.get$_floatingCursorResetController().get$_animation_controller$_value();
+ t2 = _this._lastBoundedOffset;
+ t4 = P.lerpDouble(t2._dx, finalPosition._dx, lerpValue);
+ t4.toString;
+ t2 = P.lerpDouble(t2._dy, finalPosition._dy, lerpValue);
+ t2.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t1.toString;
+ t3._as(t1);
+ t3 = _this._lastTextPosition;
+ t3.toString;
+ t1.setFloatingCursor$4$resetLerpValue(C.FloatingCursorDragState_1, new P.Offset(t4, t2), t3, lerpValue);
+ }
+ },
+ _finalizeEditing$2$shouldUnfocus: function(action, shouldUnfocus) {
+ var exception, stack, exception0, t2, _this = this,
+ t1 = _this._widget.controller;
+ t1.super$ValueNotifier$value(0, t1._change_notifier$_value.copyWith$1$composing(C.TextRange_m1_m1));
+ if (shouldUnfocus)
+ switch (action) {
+ case C.TextInputAction_0:
+ case C.TextInputAction_1:
+ case C.TextInputAction_2:
+ case C.TextInputAction_3:
+ case C.TextInputAction_4:
+ case C.TextInputAction_5:
+ case C.TextInputAction_8:
+ case C.TextInputAction_9:
+ case C.TextInputAction_10:
+ case C.TextInputAction_11:
+ case C.TextInputAction_12:
+ _this._widget.focusNode.unfocus$0();
+ break;
+ case C.TextInputAction_6:
+ t1 = _this._widget.focusNode;
+ t1._context.dependOnInheritedWidgetOfExactType$1$0(type$._FocusTraversalGroupMarker).policy._moveFocus$2$forward(t1, true);
+ break;
+ case C.TextInputAction_7:
+ t1 = _this._widget.focusNode;
+ t1._context.dependOnInheritedWidgetOfExactType$1$0(type$._FocusTraversalGroupMarker).policy._moveFocus$2$forward(t1, false);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ try {
+ _this._widget.toString;
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("while calling onSubmitted for " + action.toString$0(0));
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "widgets", t1, null, false));
+ }
+ },
+ _updateRemoteEditingValueIfNeeded$0: function() {
+ var t1, _this = this;
+ if (_this._batchEditDepth > 0 || !_this.get$_hasInputConnection())
+ return;
+ t1 = _this._widget.controller._change_notifier$_value;
+ if (J.$eq$(t1, _this._lastKnownRemoteTextEditingValue))
+ return;
+ _this._textInputConnection.toString;
+ $.$get$TextInput__instance().get$_channel().invokeMethod$1$2("TextInput.setEditingState", t1.toJSON$0(), type$.void);
+ _this._lastKnownRemoteTextEditingValue = t1;
+ },
+ _getOffsetToRevealCaret$1: function(rect) {
+ var t1, t2, t3, additionalOffset, unitOffset, t4, t5, t6, t7, t8, expandedRect, targetOffset, _this = this;
+ C.JSArray_methods.get$single(_this._scrollController._positions).physics.toString;
+ t1 = _this._editableKey;
+ t2 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t2.toString;
+ t3 = type$.RenderEditable;
+ t2 = t3._as(t2)._size;
+ t2.toString;
+ if (_this._widget.maxLines === 1) {
+ t1 = rect.right;
+ t3 = rect.left;
+ t2 = t2._dx;
+ additionalOffset = t1 - t3 >= t2 ? t2 / 2 - rect.get$center()._dx : C.JSInt_methods.clamp$2(0, t1 - t2, t3);
+ unitOffset = C.Offset_1_0;
+ } else {
+ t4 = rect.get$center();
+ t5 = rect.right;
+ t6 = rect.left;
+ t7 = rect.bottom;
+ t8 = rect.top;
+ t1 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t1.toString;
+ expandedRect = P.Rect$fromCenter(t4, Math.max(t7 - t8, H.checkNum(t3._as(t1)._editable$_textPainter.get$preferredLineHeight())), t5 - t6);
+ t1 = expandedRect.bottom;
+ t3 = expandedRect.top;
+ t2 = t2._dy;
+ additionalOffset = t1 - t3 >= t2 ? t2 / 2 - expandedRect.get$center()._dy : C.JSInt_methods.clamp$2(0, t1 - t2, t3);
+ unitOffset = C.Offset_0_1;
+ }
+ t1 = C.JSArray_methods.get$single(_this._scrollController._positions)._pixels;
+ t1.toString;
+ t2 = C.JSArray_methods.get$single(_this._scrollController._positions)._minScrollExtent;
+ t2.toString;
+ t3 = C.JSArray_methods.get$single(_this._scrollController._positions)._maxScrollExtent;
+ t3.toString;
+ targetOffset = C.JSNumber_methods.clamp$2(additionalOffset + t1, t2, t3);
+ t3 = C.JSArray_methods.get$single(_this._scrollController._positions)._pixels;
+ t3.toString;
+ return new Q.RevealedOffset(targetOffset, rect.shift$1(unitOffset.$mul(0, t3 - targetOffset)));
+ },
+ get$_hasInputConnection: function() {
+ var t1 = this._textInputConnection;
+ t1 = t1 == null ? null : $.$get$TextInput__instance()._currentConnection === t1;
+ return t1 === true;
+ },
+ get$_needsAutofill: function() {
+ this._widget.toString;
+ return false;
+ },
+ _openInputConnection$0: function() {
+ var t1, t2, t3, connection, style, t4, t5, _this = this,
+ _s14_ = "TextInput.show";
+ if (!_this.get$_hasInputConnection()) {
+ t1 = _this._widget.controller._change_notifier$_value;
+ _this.get$_needsAutofill();
+ if (!_this._isInAutofillContext) {
+ _this.get$_needsAutofill();
+ t2 = false;
+ } else
+ t2 = true;
+ t2 = _this._createTextInputConfiguration$1(t2);
+ t3 = $.TextInputConnection__nextId;
+ $.TextInputConnection__nextId = t3 + 1;
+ connection = new N.TextInputConnection(t3, _this);
+ $.$get$TextInput__instance()._attach$2(connection, t2);
+ t2 = connection;
+ _this._textInputConnection = t2;
+ t2 = $.$get$TextInput__instance();
+ t3 = type$.void;
+ t2.get$_channel().invokeMethod$1$1(_s14_, t3);
+ _this._updateSizeAndTransform$0();
+ _this._updateComposingRectIfNeeded$0();
+ _this.get$_needsAutofill();
+ style = _this._widget.style;
+ t4 = _this._textInputConnection;
+ t4.toString;
+ t5 = _this.get$_editable_text$_textDirection();
+ t4.setStyle$5$fontFamily$fontSize$fontWeight$textAlign$textDirection(0, style.fontFamily, style.fontSize, style.fontWeight, _this._widget.textAlign, t5);
+ t2.get$_channel().invokeMethod$1$2("TextInput.setEditingState", t1.toJSON$0(), t3);
+ } else {
+ _this._textInputConnection.toString;
+ $.$get$TextInput__instance().get$_channel().invokeMethod$1$1(_s14_, type$.void);
+ }
+ },
+ _closeInputConnectionIfNeeded$0: function() {
+ var t1, t2, _this = this;
+ if (_this.get$_hasInputConnection()) {
+ t1 = _this._textInputConnection;
+ t1.toString;
+ t2 = $.$get$TextInput__instance();
+ if (t2._currentConnection === t1) {
+ t2.get$_channel().invokeMethod$1$1("TextInput.clearClient", type$.void);
+ t2._currentConnection = null;
+ t2._scheduleHide$0();
+ }
+ _this._lastKnownRemoteTextEditingValue = _this._textInputConnection = null;
+ }
+ },
+ requestKeyboard$0: function() {
+ if (this._widget.focusNode.get$hasFocus())
+ this._openInputConnection$0();
+ else
+ this._widget.focusNode.requestFocus$0();
+ },
+ _updateOrDisposeSelectionOverlayIfNeeded$0: function() {
+ var t1, t2, _this = this;
+ if (_this._selectionOverlay != null) {
+ t1 = _this._widget.focusNode.get$hasFocus();
+ t2 = _this._selectionOverlay;
+ if (t1) {
+ t2.toString;
+ t2.update$1(0, _this._widget.controller._change_notifier$_value);
+ } else {
+ t2.hide$0();
+ t2.get$_toolbarController().dispose$0(0);
+ _this._selectionOverlay = null;
+ }
+ }
+ },
+ _editable_text$_handleSelectionChanged$3: function(selection, renderObject, cause) {
+ var exception, stack, t1, t2, t3, t4, result, exception0, _this = this, _null = null;
+ if (!_this._widget.controller.isSelectionWithinTextBounds$1(selection))
+ return;
+ _this._widget.controller.set$selection(selection);
+ _this.requestKeyboard$0();
+ t1 = _this._selectionOverlay;
+ if (t1 != null)
+ t1.hide$0();
+ _this._selectionOverlay = null;
+ t1 = _this._widget;
+ t2 = t1.selectionControls;
+ if (t2 != null) {
+ t3 = _this._framework$_element;
+ t3.toString;
+ t4 = t1.controller._change_notifier$_value;
+ t4 = new F.TextSelectionOverlay(t3, t1, _this._toolbarLayerLink, _this._startHandleLayerLink, _this._endHandleLayerLink, renderObject, t2, _this, t1.dragStartBehavior, t1.onSelectionHandleTapped, _null, t4);
+ result = t3.findRootAncestorStateOfType$1$0(type$.OverlayState);
+ result.toString;
+ t1 = G.AnimationController$(_null, C.Duration_150000, 0, _null, 1, _null, result);
+ t4.__TextSelectionOverlay__toolbarController_isSet = true;
+ t4.__TextSelectionOverlay__toolbarController = t1;
+ _this._selectionOverlay = t4;
+ t4.set$handlesVisible(_this._widget.showSelectionHandles);
+ _this._selectionOverlay.showHandles$0();
+ try {
+ _this._widget.onSelectionChanged.call$2(selection, cause);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("while calling onSelectionChanged for " + H.S(cause));
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "widgets", t1, _null, false));
+ }
+ }
+ },
+ _handleCaretChanged$1: function(caretRect) {
+ var _this = this;
+ _this._currentCaretRect = caretRect;
+ if (_this._textChangedSinceLastCaretUpdate) {
+ _this._textChangedSinceLastCaretUpdate = false;
+ _this._showCaretOnScreen$0();
+ }
+ },
+ _showCaretOnScreen$0: function() {
+ if (this._showCaretOnScreenScheduled)
+ return;
+ this._showCaretOnScreenScheduled = true;
+ $.SchedulerBinding__instance.SchedulerBinding__postFrameCallbacks.push(new D.EditableTextState__showCaretOnScreen_closure(this));
+ },
+ didChangeMetrics$0: function() {
+ var t2, _this = this,
+ t1 = _this.__EditableTextState__lastBottomViewInset_isSet ? _this.__EditableTextState__lastBottomViewInset : H.throwExpression(H.LateError$fieldNI("_lastBottomViewInset"));
+ $.WidgetsBinding__instance.toString;
+ t2 = $.$get$window();
+ if (t1 < t2._viewInsets.bottom)
+ _this._showCaretOnScreen$0();
+ $.WidgetsBinding__instance.toString;
+ t1 = t2._viewInsets;
+ _this.__EditableTextState__lastBottomViewInset_isSet = true;
+ _this.__EditableTextState__lastBottomViewInset = t1.bottom;
+ },
+ _formatAndSetValue$1: function(value) {
+ var exception, stack, t1, textChanged, value0, t2, t3, t4, exception0, _this = this;
+ value = value;
+ t1 = _this._widget.controller._change_notifier$_value;
+ textChanged = t1.text != value.text || !t1.composing.$eq(0, value.composing);
+ if (textChanged) {
+ value0 = C.JSArray_methods.fold$2(_this._widget.inputFormatters, value, new D.EditableTextState__formatAndSetValue_closure(_this));
+ value = value0 == null ? value : value0;
+ t1 = _this._widget.inputFormatters.length;
+ if (t1 !== 0) {
+ if (!_this.__EditableTextState__whitespaceFormatter_isSet) {
+ t1 = _this.get$_editable_text$_textDirection();
+ t2 = P.RegExp_RegExp("[A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF]", true);
+ t3 = P.RegExp_RegExp("[\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC]", true);
+ t4 = P.RegExp_RegExp("\\s", true);
+ if (_this.__EditableTextState__whitespaceFormatter_isSet)
+ H.throwExpression(H.LateError$fieldADI("_whitespaceFormatter"));
+ _this.__EditableTextState__whitespaceFormatter = new D._WhitespaceDirectionalityFormatter(t2, t3, t4, t1, t1);
+ _this.__EditableTextState__whitespaceFormatter_isSet = true;
+ }
+ value = _this.__EditableTextState__whitespaceFormatter.formatEditUpdate$2(_this._widget.controller._change_notifier$_value, value);
+ }
+ }
+ ++_this._batchEditDepth;
+ t1 = value;
+ t2 = _this._widget.controller;
+ t2.toString;
+ t2.super$ValueNotifier$value(0, t1);
+ if (textChanged)
+ try {
+ t1 = _this._widget.onChanged;
+ t2 = value;
+ t1.call$1(t2.text);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ t1 = U.ErrorDescription$("while calling onChanged");
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "widgets", t1, null, false));
+ }
+ --_this._batchEditDepth;
+ _this._updateRemoteEditingValueIfNeeded$0();
+ },
+ _onCursorColorTick$0: function() {
+ var t2, t3, _this = this,
+ t1 = $.GlobalKey__registry.$index(0, _this._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1);
+ t2 = _this._widget.cursorColor;
+ t3 = _this.get$_cursorBlinkOpacityController().get$_animation_controller$_value();
+ t2.toString;
+ t1.set$cursorColor(P.Color$fromARGB(C.JSNumber_methods.round$0(255 * t3), t2.get$value(t2) >>> 16 & 255, t2.get$value(t2) >>> 8 & 255, t2.get$value(t2) & 255));
+ t1 = _this._widget.showCursor && _this.get$_cursorBlinkOpacityController().get$_animation_controller$_value() > 0;
+ _this._cursorVisibilityNotifier.set$value(0, t1);
+ },
+ _cursorTick$1: function(timer) {
+ var targetOpacity, _this = this,
+ t1 = !_this._targetCursorVisibility;
+ _this._targetCursorVisibility = t1;
+ targetOpacity = t1 ? 1 : 0;
+ if (_this._widget.cursorOpacityAnimates) {
+ t1 = _this.get$_cursorBlinkOpacityController();
+ t1._direction = C._AnimationDirection_0;
+ t1._animateToInternal$3$curve$duration(targetOpacity, C.Cubic_xDo0, null);
+ } else
+ _this.get$_cursorBlinkOpacityController().set$value(0, targetOpacity);
+ if (_this._obscureShowCharTicksPending > 0)
+ _this.setState$1(new D.EditableTextState__cursorTick_closure(_this));
+ },
+ _cursorWaitForStart$1: function(timer) {
+ var t1 = this._cursorTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ this._cursorTimer = P.Timer_Timer$periodic(C.Duration_500000, this.get$_cursorTick());
+ },
+ _startCursorTimer$0: function() {
+ var _this = this;
+ _this._targetCursorVisibility = true;
+ _this.get$_cursorBlinkOpacityController().set$value(0, 1);
+ if (_this._widget.cursorOpacityAnimates)
+ _this._cursorTimer = P.Timer_Timer$periodic(C.Duration_150000, _this.get$_cursorWaitForStart());
+ else
+ _this._cursorTimer = P.Timer_Timer$periodic(C.Duration_500000, _this.get$_cursorTick());
+ },
+ _stopCursorTimer$1$resetCharTicks: function(resetCharTicks) {
+ var _this = this,
+ t1 = _this._cursorTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._cursorTimer = null;
+ _this._targetCursorVisibility = false;
+ _this.get$_cursorBlinkOpacityController().set$value(0, 0);
+ if (resetCharTicks)
+ _this._obscureShowCharTicksPending = 0;
+ if (_this._widget.cursorOpacityAnimates) {
+ _this.get$_cursorBlinkOpacityController().stop$0(0);
+ _this.get$_cursorBlinkOpacityController().set$value(0, 0);
+ }
+ },
+ _stopCursorTimer$0: function() {
+ return this._stopCursorTimer$1$resetCharTicks(true);
+ },
+ _startOrStopCursorTimerIfNeeded$0: function() {
+ var t1, _this = this;
+ if (_this._cursorTimer == null)
+ if (_this._widget.focusNode.get$hasFocus()) {
+ t1 = _this._widget.controller._change_notifier$_value.selection;
+ t1 = t1.start == t1.end;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ _this._startCursorTimer$0();
+ else {
+ if (_this._cursorTimer != null)
+ if (_this._widget.focusNode.get$hasFocus()) {
+ t1 = _this._widget.controller._change_notifier$_value.selection;
+ t1 = t1.start != t1.end;
+ } else
+ t1 = true;
+ else
+ t1 = false;
+ if (t1)
+ _this._stopCursorTimer$0();
+ }
+ },
+ _didChangeTextEditingValue$0: function() {
+ var _this = this;
+ _this._updateRemoteEditingValueIfNeeded$0();
+ _this._startOrStopCursorTimerIfNeeded$0();
+ _this._updateOrDisposeSelectionOverlayIfNeeded$0();
+ _this._textChangedSinceLastCaretUpdate = true;
+ _this.setState$1(new D.EditableTextState__didChangeTextEditingValue_closure());
+ },
+ _editable_text$_handleFocusChanged$0: function() {
+ var t1, t2, _this = this;
+ if (_this._widget.focusNode.get$hasFocus() && _this._widget.focusNode.consumeKeyboardToken$0())
+ _this._openInputConnection$0();
+ else if (!_this._widget.focusNode.get$hasFocus()) {
+ _this._closeInputConnectionIfNeeded$0();
+ t1 = _this._widget.controller;
+ t1.super$ValueNotifier$value(0, t1._change_notifier$_value.copyWith$1$composing(C.TextRange_m1_m1));
+ }
+ _this._startOrStopCursorTimerIfNeeded$0();
+ _this._updateOrDisposeSelectionOverlayIfNeeded$0();
+ t1 = _this._widget.focusNode.get$hasFocus();
+ t2 = $.WidgetsBinding__instance;
+ if (t1) {
+ t2.WidgetsBinding__observers.push(_this);
+ $.WidgetsBinding__instance.toString;
+ t1 = $.$get$window()._viewInsets;
+ _this.__EditableTextState__lastBottomViewInset_isSet = true;
+ _this.__EditableTextState__lastBottomViewInset = t1.bottom;
+ _this._showCaretOnScreen$0();
+ if (!_this._widget.controller._change_notifier$_value.selection.get$isValid()) {
+ t1 = X.TextSelection$collapsed(C.TextAffinity_1, _this._widget.controller._change_notifier$_value.text.length);
+ t2 = $.GlobalKey__registry.$index(0, _this._editableKey).get$renderObject();
+ t2.toString;
+ _this._editable_text$_handleSelectionChanged$3(t1, type$.RenderEditable._as(t2), null);
+ }
+ } else {
+ C.JSArray_methods.remove$1(t2.WidgetsBinding__observers, _this);
+ t1 = _this._widget.controller;
+ t1.super$ValueNotifier$value(0, new N.TextEditingValue(t1._change_notifier$_value.text, C.TextSelection_TbC, C.TextRange_m1_m1));
+ _this._currentPromptRectRange = null;
+ }
+ _this.updateKeepAlive$0();
+ },
+ _updateSizeAndTransform$0: function() {
+ var t1, t2, t3, transform, _this = this;
+ if (_this.get$_hasInputConnection()) {
+ t1 = _this._editableKey;
+ t2 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t2.toString;
+ t3 = type$.RenderEditable;
+ t2 = t3._as(t2)._size;
+ t2.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t1.toString;
+ transform = t3._as(t1).getTransformTo$1(0, null);
+ t1 = _this._textInputConnection;
+ if (!t2.$eq(0, t1._cachedSize) || !transform.$eq(0, t1._cachedTransform)) {
+ t1._cachedSize = t2;
+ t1._cachedTransform = transform;
+ t1 = $.$get$TextInput__instance();
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["width", t2._dx, "height", t2._dy, "transform", transform._m4storage], type$.String, type$.dynamic);
+ t1.get$_channel().invokeMethod$1$2("TextInput.setEditableSizeAndTransform", t2, type$.void);
+ }
+ $.SchedulerBinding__instance.SchedulerBinding__postFrameCallbacks.push(new D.EditableTextState__updateSizeAndTransform_closure(_this));
+ }
+ },
+ _updateComposingRectIfNeeded$0: function() {
+ var t1, t2, t3, composingRect, offset, _this = this,
+ composingRange = _this._widget.controller._change_notifier$_value.composing;
+ if (_this.get$_hasInputConnection()) {
+ t1 = _this._editableKey;
+ t2 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t2.toString;
+ t3 = type$.RenderEditable;
+ composingRect = t3._as(t2).getRectForComposingRange$1(composingRange);
+ if (composingRect == null) {
+ offset = composingRange.get$isValid() ? composingRange.start : 0;
+ t1 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t1.toString;
+ composingRect = t3._as(t1).getLocalRectForCaret$1(new P.TextPosition(offset, C.TextAffinity_1));
+ }
+ _this._textInputConnection.setComposingRect$1(composingRect);
+ $.SchedulerBinding__instance.SchedulerBinding__postFrameCallbacks.push(new D.EditableTextState__updateComposingRectIfNeeded_closure(_this));
+ }
+ },
+ get$_editable_text$_textDirection: function() {
+ var t1, result;
+ this._widget.toString;
+ t1 = this._framework$_element;
+ t1 = t1.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ result = t1.textDirection;
+ return result;
+ },
+ set$textEditingValue: function(value) {
+ var t1 = this._selectionOverlay;
+ if (t1 != null)
+ t1.update$1(0, value);
+ this._formatAndSetValue$1(value);
+ },
+ bringIntoView$1: function(position) {
+ var t3, targetOffset,
+ t1 = this._editableKey,
+ t2 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t2.toString;
+ t3 = type$.RenderEditable;
+ targetOffset = this._getOffsetToRevealCaret$1(t3._as(t2).getLocalRectForCaret$1(position));
+ this._scrollController.jumpTo$1(targetOffset.offset);
+ t1 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t1.toString;
+ t3._as(t1).showOnScreen$1$rect(targetOffset.rect);
+ },
+ showToolbar$0: function() {
+ return false;
+ },
+ hideToolbar$0: function() {
+ var t1 = this._selectionOverlay;
+ if (t1 != null)
+ t1.hide$0();
+ },
+ _createTextInputConfiguration$1: function(needsAutofillConfiguration) {
+ var t5, t6, t7, t8, t9, _this = this,
+ t1 = _this._widget,
+ t2 = t1.keyboardType,
+ t3 = t1.readOnly,
+ t4 = t1.smartDashesType;
+ t1 = t1.smartQuotesType;
+ t5 = t2.$eq(0, C.TextInputType_1_null_null) ? C.TextInputAction_12 : C.TextInputAction_2;
+ t6 = _this._widget;
+ t7 = t6.textCapitalization;
+ t6 = t6.keyboardAppearance;
+ if (!needsAutofillConfiguration)
+ t8 = null;
+ else {
+ t8 = "EditableText-" + H.Primitives_objectHashCode(_this);
+ _this._widget.toString;
+ t9 = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ t8 = new F.AutofillConfiguration(t8, t9, _this._widget.controller._change_notifier$_value);
+ }
+ return new N.TextInputConfiguration(t2, t3, false, true, t8, t4, t1, true, t5, t7, t6);
+ },
+ showAutocorrectionPromptRect$2: function(start, end) {
+ this.setState$1(new D.EditableTextState_showAutocorrectionPromptRect_closure(this, start, end));
+ },
+ _semanticsOnCopy$1: function(controls) {
+ var t1 = this._widget;
+ if (t1.toolbarOptions.copy)
+ if (t1.focusNode.get$hasFocus()) {
+ if (controls == null)
+ t1 = null;
+ else {
+ t1 = this._widget;
+ if (t1.toolbarOptions.copy) {
+ t1 = t1.controller._change_notifier$_value.selection;
+ t1 = t1.start != t1.end;
+ } else
+ t1 = false;
+ }
+ t1 = t1 === true;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ return t1 ? new D.EditableTextState__semanticsOnCopy_closure(this, controls) : null;
+ },
+ _semanticsOnCut$1: function(controls) {
+ var t1 = this._widget;
+ if (t1.toolbarOptions.cut && !t1.readOnly)
+ if (t1.focusNode.get$hasFocus()) {
+ if (controls == null)
+ t1 = null;
+ else {
+ t1 = this._widget;
+ if (t1.toolbarOptions.cut && !t1.readOnly) {
+ t1 = t1.controller._change_notifier$_value.selection;
+ t1 = t1.start != t1.end;
+ } else
+ t1 = false;
+ }
+ t1 = t1 === true;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ return t1 ? new D.EditableTextState__semanticsOnCut_closure(this, controls) : null;
+ },
+ _semanticsOnPaste$1: function(controls) {
+ var t1 = this._widget,
+ t2 = t1.readOnly;
+ if (!t2)
+ if (t1.focusNode.get$hasFocus()) {
+ if (controls == null)
+ t1 = null;
+ else
+ t1 = !this._widget.readOnly;
+ if (t1 === true)
+ t1 = true;
+ else
+ t1 = false;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ return t1 ? new D.EditableTextState__semanticsOnPaste_closure(this, controls) : null;
+ },
+ build$1: function(_, context) {
+ var t1, controls, t2, t3, t4, t5, _this = this;
+ _this._editable_text$_focusAttachment.reparent$0();
+ _this.super$AutomaticKeepAliveClientMixin$build(0, context);
+ t1 = _this._widget;
+ controls = t1.selectionControls;
+ t2 = t1.mouseCursor;
+ t3 = t1.maxLines !== 1 ? C.AxisDirection_2 : C.AxisDirection_1;
+ t4 = _this._scrollController;
+ t5 = t1.scrollPhysics;
+ return T.MouseRegion$(F.Scrollable$(t3, t4, t1.dragStartBehavior, true, t5, t1.restorationId, null, new D.EditableTextState_build_closure(_this, controls)), t2, null, null, true);
+ },
+ buildTextSpan$0: function() {
+ var t1 = this._widget;
+ return t1.controller.buildTextSpan$2$style$withComposing(t1.style, !t1.readOnly);
+ }
+ };
+ D.EditableTextState_initState_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this._selectionOverlay;
+ if (t1 != null)
+ t1._text_selection$_markNeedsBuild$0();
+ },
+ $signature: 0
+ };
+ D.EditableTextState__showCaretOnScreen_closure.prototype = {
+ call$1: function(_) {
+ var t2, t3, t4, lineHeight, bottomSpacing, handleHeight, interactiveHandleHeight, caretPadding, targetOffset,
+ t1 = this.$this;
+ t1._showCaretOnScreenScheduled = false;
+ if (t1._currentCaretRect == null || t1._scrollController._positions.length === 0)
+ return;
+ t2 = t1._editableKey;
+ t3 = $.GlobalKey__registry.$index(0, t2).get$renderObject();
+ t3.toString;
+ t4 = type$.RenderEditable;
+ lineHeight = t4._as(t3)._editable$_textPainter.get$preferredLineHeight();
+ bottomSpacing = t1._widget.scrollPadding.bottom;
+ t3 = t1._selectionOverlay;
+ if ((t3 == null ? null : t3.selectionControls) != null) {
+ handleHeight = t3.selectionControls.getHandleSize$1(lineHeight)._dy;
+ interactiveHandleHeight = Math.max(H.checkNum(handleHeight), 48);
+ bottomSpacing = Math.max(handleHeight / 2 - t1._selectionOverlay.selectionControls.getHandleAnchor$2(C.TextSelectionHandleType_2, lineHeight)._dy + interactiveHandleHeight / 2, H.checkNum(bottomSpacing));
+ }
+ caretPadding = t1._widget.scrollPadding.copyWith$1$bottom(bottomSpacing);
+ t3 = t1._currentCaretRect;
+ t3.toString;
+ targetOffset = t1._getOffsetToRevealCaret$1(t3);
+ t1._scrollController.animateTo$3$curve$duration(targetOffset.offset, C.Cubic_ifx, C.Duration_100000);
+ t2 = $.GlobalKey__registry.$index(0, t2).get$renderObject();
+ t2.toString;
+ t1 = targetOffset.rect;
+ t4._as(t2).showOnScreen$3$curve$duration$rect(C.Cubic_ifx, C.Duration_100000, new P.Rect(t1.left - caretPadding.left, t1.top - caretPadding.top, t1.right + caretPadding.right, t1.bottom + caretPadding.bottom));
+ },
+ $signature: 4
+ };
+ D.EditableTextState__formatAndSetValue_closure.prototype = {
+ call$2: function(newValue, formatter) {
+ return formatter.formatEditUpdate$2(this.$this._widget.controller._change_notifier$_value, newValue);
+ },
+ $signature: 257
+ };
+ D.EditableTextState__cursorTick_closure.prototype = {
+ call$0: function() {
+ --this.$this._obscureShowCharTicksPending;
+ },
+ $signature: 0
+ };
+ D.EditableTextState__didChangeTextEditingValue_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ D.EditableTextState__updateSizeAndTransform_closure.prototype = {
+ call$1: function(_) {
+ return this.$this._updateSizeAndTransform$0();
+ },
+ $signature: 4
+ };
+ D.EditableTextState__updateComposingRectIfNeeded_closure.prototype = {
+ call$1: function(_) {
+ return this.$this._updateComposingRectIfNeeded$0();
+ },
+ $signature: 4
+ };
+ D.EditableTextState_showAutocorrectionPromptRect_closure.prototype = {
+ call$0: function() {
+ this.$this._currentPromptRectRange = new P.TextRange(this.start, this.end);
+ },
+ $signature: 0
+ };
+ D.EditableTextState__semanticsOnCopy_closure.prototype = {
+ call$0: function() {
+ return this.controls.handleCopy$2(this.$this, null);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ D.EditableTextState__semanticsOnCut_closure.prototype = {
+ call$0: function() {
+ return this.controls.handleCut$1(this.$this);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ D.EditableTextState__semanticsOnPaste_closure.prototype = {
+ call$0: function() {
+ return this.controls.handlePaste$1(this.$this);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ D.EditableTextState_build_closure.prototype = {
+ call$2: function(context, offset) {
+ var t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, _null = null,
+ t1 = this.$this,
+ t2 = this.controls,
+ t3 = t1._semanticsOnCopy$1(t2),
+ t4 = t1._semanticsOnCut$1(t2);
+ t2 = t1._semanticsOnPaste$1(t2);
+ t5 = t1.buildTextSpan$0();
+ t6 = t1._widget;
+ t7 = t6.controller._change_notifier$_value;
+ t6 = t6.cursorColor;
+ t8 = t1.get$_cursorBlinkOpacityController().get$_animation_controller$_value();
+ t6.toString;
+ t6 = P.Color$fromARGB(C.JSNumber_methods.round$0(255 * t8), t6.get$value(t6) >>> 16 & 255, t6.get$value(t6) >>> 8 & 255, t6.get$value(t6) & 255);
+ t8 = t1._widget;
+ t9 = t8.backgroundCursorColor;
+ t10 = t8.readOnly;
+ t8 = t8.focusNode.get$hasFocus();
+ t11 = t1._widget;
+ t12 = t11.maxLines;
+ t13 = t11.minLines;
+ t11 = t11.get$strutStyle(t11);
+ t14 = t1._widget.selectionColor;
+ t15 = F.MediaQuery_textScaleFactorOf(context);
+ t16 = t1._widget.textAlign;
+ t17 = t1.get$_editable_text$_textDirection();
+ t1._widget.toString;
+ t18 = L.DefaultTextHeightBehavior_of(context);
+ t19 = t1._widget;
+ t20 = t19.obscuringCharacter;
+ t21 = t19.cursorWidth;
+ t22 = t19.cursorHeight;
+ t23 = t19.cursorRadius;
+ t24 = t19.cursorOffset;
+ t25 = t19.selectionHeightStyle;
+ t26 = t19.selectionWidthStyle;
+ return new T.CompositedTransformTarget(t1._toolbarLayerLink, T.Semantics$(_null, new D._Editable(t5, t7, t6, t1._startHandleLayerLink, t1._endHandleLayerLink, t9, t1._cursorVisibilityNotifier, true, t10, t8, t12, t13, false, t11, t14, t15, t16, t17, _null, t20, false, t18, C.TextWidthBasis_0, offset, t1.get$_editable_text$_handleSelectionChanged(), t1.get$_handleCaretChanged(), true, t21, t22, t23, t24, t19.paintCursorAboveText, t25, t26, true, t1, t1._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.MediaQuery).data.devicePixelRatio, t1._currentPromptRectRange, t1._widget.autocorrectionTextRectColor, C.Clip_1, t1._editableKey), false, _null, _null, false, _null, _null, _null, _null, _null, _null, _null, t3, t4, _null, _null, t2, _null, _null, _null, _null, _null, _null), _null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 258
+ };
+ D._Editable.prototype = {
+ createRenderObject$1: function(context) {
+ var _this = this,
+ t1 = L.Localizations_maybeLocaleOf(context),
+ t2 = _this.value.selection,
+ t3 = _this.promptRectColor,
+ t4 = type$.LinkedList__ListenerEntry,
+ t5 = new H.SurfacePaint(new H.SurfacePaintData());
+ t1 = new D.RenderEditable(_this.onSelectionChanged, _this.onCaretChanged, true, _this.devicePixelRatio, _this.obscuringCharacter, false, _this.textSelectionDelegate, new B.ValueNotifier(true, new P.LinkedList(t4)), new B.ValueNotifier(true, new P.LinkedList(t4)), new U.TextPainter(_this.textSpan, _this.textAlign, _this.textDirection, _this.textScaleFactor, null, t1, null, _this.strutStyle, _this.textWidthBasis, _this.textHeightBehavior), _this.cursorColor, _this.backgroundCursorColor, _this.showCursor, true, _this.readOnly, _this.maxLines, _this.minLines, false, _this.selectionColor, t2, _this.offset, _this.cursorWidth, _this.cursorHeight, _this.paintCursorAboveText, _this.cursorOffset, _this.cursorRadius, _this.startHandleLayerLink, _this.endHandleLayerLink, _this.selectionHeightStyle, _this.selectionWidthStyle, true, _this.promptRectRange, _this.clipBehavior, C.Offset_0_0, t5);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.set$hasFocus(_this.hasFocus);
+ if (t3 != null)
+ t5.set$color(0, t3);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1, _this = this;
+ renderObject.set$text(0, _this.textSpan);
+ renderObject.set$cursorColor(_this.cursorColor);
+ renderObject.set$startHandleLayerLink(_this.startHandleLayerLink);
+ renderObject.set$endHandleLayerLink(_this.endHandleLayerLink);
+ renderObject.set$showCursor(_this.showCursor);
+ renderObject.set$forceLine(true);
+ renderObject.set$readOnly(0, _this.readOnly);
+ renderObject.set$hasFocus(_this.hasFocus);
+ renderObject.set$maxLines(0, _this.maxLines);
+ renderObject.set$minLines(_this.minLines);
+ renderObject.set$expands(false);
+ renderObject.set$strutStyle(0, _this.strutStyle);
+ renderObject.set$selectionColor(_this.selectionColor);
+ renderObject.set$textScaleFactor(_this.textScaleFactor);
+ renderObject.set$textAlign(0, _this.textAlign);
+ renderObject.set$textDirection(0, _this.textDirection);
+ t1 = L.Localizations_maybeLocaleOf(context);
+ renderObject.set$locale(0, t1);
+ renderObject.set$selection(_this.value.selection);
+ renderObject.set$offset(0, _this.offset);
+ renderObject.onSelectionChanged = _this.onSelectionChanged;
+ renderObject.onCaretChanged = _this.onCaretChanged;
+ renderObject.ignorePointer = true;
+ renderObject.set$textHeightBehavior(0, _this.textHeightBehavior);
+ renderObject.set$textWidthBasis(_this.textWidthBasis);
+ renderObject.set$obscuringCharacter(_this.obscuringCharacter);
+ renderObject.set$obscureText(false);
+ renderObject.set$cursorWidth(_this.cursorWidth);
+ renderObject.set$cursorHeight(_this.cursorHeight);
+ renderObject.set$cursorRadius(_this.cursorRadius);
+ renderObject.set$cursorOffset(_this.cursorOffset);
+ renderObject.set$selectionHeightStyle(_this.selectionHeightStyle);
+ renderObject.set$selectionWidthStyle(_this.selectionWidthStyle);
+ renderObject.textSelectionDelegate = _this.textSelectionDelegate;
+ renderObject.set$devicePixelRatio(0, _this.devicePixelRatio);
+ renderObject.set$paintCursorAboveText(_this.paintCursorAboveText);
+ renderObject.set$promptRectColor(_this.promptRectColor);
+ t1 = _this.clipBehavior;
+ if (t1 !== renderObject._editable$_clipBehavior) {
+ renderObject._editable$_clipBehavior = t1;
+ renderObject.markNeedsPaint$0();
+ renderObject.markNeedsSemanticsUpdate$0();
+ }
+ renderObject.setPromptRectRange$1(_this.promptRectRange);
+ }
+ };
+ D._WhitespaceDirectionalityFormatter.prototype = {
+ formatEditUpdate$2: function(oldValue, newValue) {
+ var outputCodepoints, t2, addToLength, subtractFromLength, t3, t4, t5, isBackspace, previousWasWhitespace, previousWasDirectionalityMarker, previousNonWhitespaceCodepoint, index, codepoint, t6, _this = this, _box_0 = {},
+ t1 = _this._hasOpposingDirection;
+ if (!t1) {
+ if (_this._baseDirection === C.TextDirection_1) {
+ t1 = newValue.text;
+ if (typeof t1 != "string")
+ H.throwExpression(H.argumentErrorValue(t1));
+ t1 = _this._rtlRegExp._nativeRegExp.test(t1);
+ } else {
+ t1 = newValue.text;
+ if (typeof t1 != "string")
+ H.throwExpression(H.argumentErrorValue(t1));
+ t1 = _this._ltrRegExp._nativeRegExp.test(t1);
+ }
+ t1 = _this._hasOpposingDirection = t1;
+ }
+ if (t1) {
+ _this._previousNonWhitespaceDirection = _this._baseDirection;
+ outputCodepoints = H.setRuntimeTypeInfo([], type$.JSArray_int);
+ t1 = newValue.selection;
+ _box_0.selectionBase = t1.baseOffset;
+ _box_0.selectionExtent = t1.extentOffset;
+ t2 = newValue.composing;
+ _box_0.composingStart = t2.start;
+ _box_0.composingEnd = t2.end;
+ addToLength = new D._WhitespaceDirectionalityFormatter_formatEditUpdate_addToLength(_box_0, outputCodepoints);
+ subtractFromLength = new D._WhitespaceDirectionalityFormatter_formatEditUpdate_subtractFromLength(_box_0, outputCodepoints);
+ t2 = oldValue.text;
+ t2.toString;
+ t3 = new P.Runes(t2);
+ t3 = t3.get$length(t3);
+ t4 = newValue.text;
+ t4.toString;
+ t5 = new P.Runes(t4);
+ if (t3 - t5.get$length(t5) === 1) {
+ t3 = new P.Runes(t2);
+ t3 = t3.get$last(t3);
+ isBackspace = (t3 === 8207 || t3 === 8206) && C.JSString_methods.substring$2(t2, 0, t2.length - 1) === t4;
+ } else
+ isBackspace = false;
+ for (t2 = new P.RuneIterator(t4), t3 = _this._whitespaceRegExp._nativeRegExp, t5 = _this._ltrRegExp._nativeRegExp, previousWasWhitespace = false, previousWasDirectionalityMarker = false, previousNonWhitespaceCodepoint = null, index = 0; t2.moveNext$0();) {
+ codepoint = t2._currentCodePoint;
+ t6 = H.Primitives_stringFromCharCode(codepoint);
+ if (t3.test(t6)) {
+ if (!previousWasWhitespace && previousNonWhitespaceCodepoint != null) {
+ t6 = H.Primitives_stringFromCharCode(previousNonWhitespaceCodepoint);
+ _this._previousNonWhitespaceDirection = t5.test(t6) ? C.TextDirection_1 : C.TextDirection_0;
+ }
+ if (previousWasWhitespace) {
+ subtractFromLength.call$0();
+ outputCodepoints.pop();
+ }
+ if (isBackspace) {
+ t6 = new P.Runes(t4);
+ t6 = index === t6.get$length(t6) - 1;
+ } else
+ t6 = false;
+ if (t6)
+ subtractFromLength.call$0();
+ else {
+ outputCodepoints.push(codepoint);
+ addToLength.call$0();
+ outputCodepoints.push(_this._previousNonWhitespaceDirection === C.TextDirection_0 ? 8207 : 8206);
+ }
+ previousWasWhitespace = true;
+ previousWasDirectionalityMarker = false;
+ } else {
+ if (codepoint === 8207 || codepoint === 8206) {
+ if (previousWasWhitespace) {
+ subtractFromLength.call$0();
+ outputCodepoints.pop();
+ }
+ outputCodepoints.push(codepoint);
+ previousWasDirectionalityMarker = true;
+ } else {
+ if (!previousWasDirectionalityMarker)
+ if (previousWasWhitespace) {
+ t6 = H.Primitives_stringFromCharCode(codepoint);
+ t6 = t5.test(t6) ? C.TextDirection_1 : C.TextDirection_0;
+ t6 = t6 === _this._previousNonWhitespaceDirection;
+ } else
+ t6 = false;
+ else
+ t6 = false;
+ if (t6) {
+ subtractFromLength.call$0();
+ outputCodepoints.pop();
+ }
+ outputCodepoints.push(codepoint);
+ previousNonWhitespaceCodepoint = codepoint;
+ previousWasDirectionalityMarker = false;
+ }
+ previousWasWhitespace = false;
+ }
+ ++index;
+ }
+ return new N.TextEditingValue(P.String_String$fromCharCodes(outputCodepoints, 0, null), X.TextSelection$(t1.affinity, _box_0.selectionBase, _box_0.selectionExtent, t1.isDirectional), new P.TextRange(_box_0.composingStart, _box_0.composingEnd));
+ }
+ return newValue;
+ }
+ };
+ D._WhitespaceDirectionalityFormatter_formatEditUpdate_addToLength.prototype = {
+ call$0: function() {
+ var t1 = this._box_0,
+ t2 = t1.selectionBase,
+ t3 = this.outputCodepoints.length;
+ t1.selectionBase = t2 + (t3 <= t2 ? 1 : 0);
+ t2 = t1.selectionExtent;
+ t1.selectionExtent = t2 + (t3 <= t2 ? 1 : 0);
+ t2 = t1.composingStart;
+ t1.composingStart = t2 + (t3 <= t2 ? 1 : 0);
+ t2 = t1.composingEnd;
+ t1.composingEnd = t2 + (t3 <= t2 ? 1 : 0);
+ },
+ $signature: 0
+ };
+ D._WhitespaceDirectionalityFormatter_formatEditUpdate_subtractFromLength.prototype = {
+ call$0: function() {
+ var t1 = this._box_0,
+ t2 = t1.selectionBase,
+ t3 = this.outputCodepoints.length;
+ t1.selectionBase = t2 - (t3 < t2 ? 1 : 0);
+ t2 = t1.selectionExtent;
+ t1.selectionExtent = t2 - (t3 < t2 ? 1 : 0);
+ t2 = t1.composingStart;
+ t1.composingStart = t2 - (t3 < t2 ? 1 : 0);
+ t2 = t1.composingEnd;
+ t1.composingEnd = t2 - (t3 < t2 ? 1 : 0);
+ },
+ $signature: 0
+ };
+ D._EditableTextState_State_AutomaticKeepAliveClientMixin.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ if (this._widget.focusNode.get$hasFocus())
+ this._ensureKeepAlive$0();
+ },
+ deactivate$0: function() {
+ var t1 = this.AutomaticKeepAliveClientMixin__keepAliveHandle;
+ if (t1 != null) {
+ t1.notifyListeners$0();
+ this.AutomaticKeepAliveClientMixin__keepAliveHandle = null;
+ }
+ this.super$State$deactivate();
+ }
+ };
+ D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver.prototype = {};
+ D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ O.KeyEventResult.prototype = {
+ toString$0: function(_) {
+ return this._focus_manager$_name;
+ }
+ };
+ O.FocusAttachment.prototype = {
+ detach$0: function(_) {
+ var t2,
+ t1 = this._node;
+ if (t1._attachment === this) {
+ if (!t1.get$hasPrimaryFocus()) {
+ t2 = t1._focus_manager$_manager;
+ t2 = t2 != null && t2._markedForFocus === t1;
+ } else
+ t2 = true;
+ if (t2)
+ t1.unfocus$1$disposition(C.UnfocusDisposition_1);
+ t2 = t1._focus_manager$_manager;
+ if (t2 != null) {
+ if (t2._primaryFocus === t1)
+ t2._primaryFocus = null;
+ t2._dirtyNodes.remove$1(0, t1);
+ }
+ t2 = t1._focus_manager$_parent;
+ if (t2 != null)
+ t2._removeChild$1(0, t1);
+ t1._attachment = null;
+ }
+ },
+ reparent$0: function() {
+ var t2, $parent,
+ t1 = this._node;
+ if (t1._attachment === this) {
+ t2 = t1._context;
+ t2.toString;
+ $parent = L.Focus_maybeOf(t2, true);
+ ($parent == null ? t1._context._owner.focusManager.rootScope : $parent)._reparent$1(t1);
+ }
+ }
+ };
+ O.UnfocusDisposition.prototype = {
+ toString$0: function(_) {
+ return this._focus_manager$_name;
+ }
+ };
+ O.FocusNode.prototype = {
+ set$skipTraversal: function(value) {
+ var t1, _this = this;
+ if (value != _this._skipTraversal) {
+ _this._skipTraversal = value;
+ t1 = _this._focus_manager$_manager;
+ if (t1 != null) {
+ t1._markNeedsUpdate$0();
+ t1._dirtyNodes.add$1(0, _this);
+ }
+ }
+ },
+ get$canRequestFocus: function() {
+ var scope, t1, t2, _i;
+ if (!this._focus_manager$_canRequestFocus)
+ return false;
+ scope = this.get$enclosingScope();
+ if (scope != null && !scope.get$canRequestFocus())
+ return false;
+ for (t1 = this.get$ancestors(), t2 = t1.length, _i = 0; _i < t2; ++_i)
+ t1[_i].toString;
+ return true;
+ },
+ set$canRequestFocus: function(value) {
+ var t1, _this = this;
+ if (value != _this._focus_manager$_canRequestFocus) {
+ _this._focus_manager$_canRequestFocus = value;
+ if (_this.get$hasFocus() && !value)
+ _this.unfocus$1$disposition(C.UnfocusDisposition_1);
+ t1 = _this._focus_manager$_manager;
+ if (t1 != null) {
+ t1._markNeedsUpdate$0();
+ t1._dirtyNodes.add$1(0, _this);
+ }
+ }
+ },
+ set$descendantsAreFocusable: function(value) {
+ return;
+ },
+ get$descendants: function() {
+ var result, t2, _i, child,
+ t1 = this._descendants;
+ if (t1 == null) {
+ result = H.setRuntimeTypeInfo([], type$.JSArray_FocusNode);
+ for (t1 = this._children, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ child = t1[_i];
+ C.JSArray_methods.addAll$1(result, child.get$descendants());
+ result.push(child);
+ }
+ this._descendants = result;
+ t1 = result;
+ }
+ return t1;
+ },
+ get$traversalDescendants: function() {
+ var t1 = this.get$descendants();
+ t1.toString;
+ return new H.WhereIterable(t1, new O.FocusNode_traversalDescendants_closure(), H._arrayInstanceType(t1)._eval$1("WhereIterable<1>"));
+ },
+ get$ancestors: function() {
+ var result, $parent,
+ t1 = this._ancestors;
+ if (t1 == null) {
+ result = H.setRuntimeTypeInfo([], type$.JSArray_FocusNode);
+ $parent = this._focus_manager$_parent;
+ for (; $parent != null;) {
+ result.push($parent);
+ $parent = $parent._focus_manager$_parent;
+ }
+ this._ancestors = result;
+ t1 = result;
+ }
+ return t1;
+ },
+ get$hasFocus: function() {
+ if (!this.get$hasPrimaryFocus()) {
+ var t1 = this._focus_manager$_manager;
+ if (t1 == null)
+ t1 = null;
+ else {
+ t1 = t1._primaryFocus;
+ if (t1 == null)
+ t1 = null;
+ else {
+ t1 = t1.get$ancestors();
+ t1 = (t1 && C.JSArray_methods).contains$1(t1, this);
+ }
+ }
+ t1 = t1 === true;
+ } else
+ t1 = true;
+ return t1;
+ },
+ get$hasPrimaryFocus: function() {
+ var t1 = this._focus_manager$_manager;
+ return (t1 == null ? null : t1._primaryFocus) === this;
+ },
+ get$nearestScope: function() {
+ return this.get$enclosingScope();
+ },
+ get$enclosingScope: function() {
+ var t1, t2, _i, node;
+ for (t1 = this.get$ancestors(), t2 = t1.length, _i = 0; _i < t2; ++_i) {
+ node = t1[_i];
+ if (node instanceof O.FocusScopeNode)
+ return node;
+ }
+ return null;
+ },
+ get$rect: function(_) {
+ var bottomRight,
+ object = this._context.get$renderObject(),
+ t1 = object.getTransformTo$1(0, null),
+ t2 = object.get$semanticBounds(),
+ topLeft = T.MatrixUtils_transformPoint(t1, new P.Offset(t2.left, t2.top));
+ t2 = object.getTransformTo$1(0, null);
+ t1 = object.get$semanticBounds();
+ bottomRight = T.MatrixUtils_transformPoint(t2, new P.Offset(t1.right, t1.bottom));
+ return new P.Rect(topLeft._dx, topLeft._dy, bottomRight._dx, bottomRight._dy);
+ },
+ unfocus$1$disposition: function(disposition) {
+ var t1, scope, _this = this;
+ if (!_this.get$hasFocus()) {
+ t1 = _this._focus_manager$_manager;
+ t1 = t1 == null || t1._markedForFocus !== _this;
+ } else
+ t1 = false;
+ if (t1)
+ return;
+ scope = _this.get$enclosingScope();
+ if (scope == null)
+ return;
+ switch (disposition) {
+ case C.UnfocusDisposition_0:
+ if (scope.get$canRequestFocus())
+ C.JSArray_methods.set$length(scope._focusedChildren, 0);
+ for (; !scope.get$canRequestFocus();) {
+ scope = scope.get$enclosingScope();
+ if (scope == null) {
+ t1 = _this._focus_manager$_manager;
+ scope = t1 == null ? null : t1.rootScope;
+ }
+ }
+ scope._doRequestFocus$1$findFirstFocus(false);
+ break;
+ case C.UnfocusDisposition_1:
+ if (scope.get$canRequestFocus())
+ C.JSArray_methods.remove$1(scope._focusedChildren, _this);
+ for (; !scope.get$canRequestFocus();) {
+ t1 = scope.get$enclosingScope();
+ if (t1 != null)
+ C.JSArray_methods.remove$1(t1._focusedChildren, scope);
+ scope = scope.get$enclosingScope();
+ if (scope == null) {
+ t1 = _this._focus_manager$_manager;
+ scope = t1 == null ? null : t1.rootScope;
+ }
+ }
+ scope._doRequestFocus$1$findFirstFocus(true);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ unfocus$0: function() {
+ return this.unfocus$1$disposition(C.UnfocusDisposition_0);
+ },
+ consumeKeyboardToken$0: function() {
+ if (!this._hasKeyboardToken)
+ return false;
+ this._hasKeyboardToken = false;
+ return true;
+ },
+ _markNextFocus$1: function(newFocus) {
+ var _this = this,
+ t1 = _this._focus_manager$_manager;
+ if (t1 != null) {
+ if (t1._primaryFocus === _this)
+ t1._markedForFocus = null;
+ else {
+ t1._markedForFocus = _this;
+ t1._markNeedsUpdate$0();
+ }
+ return;
+ }
+ newFocus._setAsFocusedChildForScope$0();
+ newFocus._notify$0();
+ if (newFocus !== _this)
+ _this._notify$0();
+ },
+ _removeChild$2$removeScopeFocus: function(_, node, removeScopeFocus) {
+ var t1, t2, _i;
+ if (removeScopeFocus) {
+ t1 = node.get$enclosingScope();
+ if (t1 != null)
+ C.JSArray_methods.remove$1(t1._focusedChildren, node);
+ }
+ node._focus_manager$_parent = null;
+ C.JSArray_methods.remove$1(this._children, node);
+ for (t1 = this.get$ancestors(), t2 = t1.length, _i = 0; _i < t2; ++_i)
+ t1[_i]._descendants = null;
+ this._descendants = null;
+ },
+ _removeChild$1: function($receiver, node) {
+ return this._removeChild$2$removeScopeFocus($receiver, node, true);
+ },
+ _focus_manager$_updateManager$1: function(manager) {
+ var t1, t2, _i, descendant;
+ this._focus_manager$_manager = manager;
+ for (t1 = this.get$descendants(), t2 = t1.length, _i = 0; _i < t2; ++_i) {
+ descendant = t1[_i];
+ descendant._focus_manager$_manager = manager;
+ descendant._ancestors = null;
+ }
+ },
+ _reparent$1: function(child) {
+ var oldScope, hadFocus, t1, t2, _i, inherited, _this = this;
+ if (child._focus_manager$_parent === _this)
+ return;
+ oldScope = child.get$enclosingScope();
+ hadFocus = child.get$hasFocus();
+ t1 = child._focus_manager$_parent;
+ if (t1 != null)
+ t1._removeChild$2$removeScopeFocus(0, child, oldScope != _this.get$nearestScope());
+ _this._children.push(child);
+ child._focus_manager$_parent = _this;
+ child._ancestors = null;
+ child._focus_manager$_updateManager$1(_this._focus_manager$_manager);
+ for (t1 = child.get$ancestors(), t2 = t1.length, _i = 0; _i < t2; ++_i)
+ t1[_i]._descendants = null;
+ if (hadFocus) {
+ t1 = _this._focus_manager$_manager;
+ if (t1 != null) {
+ t1 = t1._primaryFocus;
+ if (t1 != null)
+ t1._setAsFocusedChildForScope$0();
+ }
+ }
+ if (oldScope != null && child._context != null && child.get$enclosingScope() !== oldScope) {
+ inherited = child._context.dependOnInheritedWidgetOfExactType$1$0(type$._FocusTraversalGroupMarker);
+ t1 = inherited == null ? null : inherited.policy;
+ if (t1 != null)
+ t1.changedScope$2$node$oldScope(child, oldScope);
+ }
+ if (child._requestFocusWhenReparented) {
+ child._doRequestFocus$1$findFirstFocus(true);
+ child._requestFocusWhenReparented = false;
+ }
+ },
+ attach$2$onKey: function(context, onKey) {
+ var _this = this;
+ _this._context = context;
+ _this._onKey = onKey == null ? _this._onKey : onKey;
+ return _this._attachment = new O.FocusAttachment(_this);
+ },
+ attach$1: function(context) {
+ return this.attach$2$onKey(context, null);
+ },
+ dispose$0: function(_) {
+ var t1 = this._attachment;
+ if (t1 != null)
+ t1.detach$0(0);
+ this.super$ChangeNotifier$dispose(0);
+ },
+ _notify$0: function() {
+ var _this = this;
+ if (_this._focus_manager$_parent == null)
+ return;
+ if (_this.get$hasPrimaryFocus())
+ _this._setAsFocusedChildForScope$0();
+ _this.notifyListeners$0();
+ },
+ requestFocus$0: function() {
+ this._doRequestFocus$1$findFirstFocus(true);
+ },
+ _doRequestFocus$1$findFirstFocus: function(findFirstFocus) {
+ var t1, _this = this;
+ if (!_this.get$canRequestFocus())
+ return;
+ if (_this._focus_manager$_parent == null) {
+ _this._requestFocusWhenReparented = true;
+ return;
+ }
+ _this._setAsFocusedChildForScope$0();
+ if (_this.get$hasPrimaryFocus()) {
+ t1 = _this._focus_manager$_manager._markedForFocus;
+ t1 = t1 == null || t1 === _this;
+ } else
+ t1 = false;
+ if (t1)
+ return;
+ _this._hasKeyboardToken = true;
+ _this._markNextFocus$1(_this);
+ },
+ _setAsFocusedChildForScope$0: function() {
+ var t2, t3, scopeFocus, scopeFocus0, t4,
+ t1 = this.get$ancestors();
+ t1.toString;
+ t1 = C.JSArray_methods.get$iterator(t1);
+ t2 = new H.WhereTypeIterator(t1, type$.WhereTypeIterator_FocusScopeNode);
+ t3 = type$.FocusScopeNode;
+ scopeFocus = this;
+ for (; t2.moveNext$0(); scopeFocus = scopeFocus0) {
+ scopeFocus0 = t3._as(t1.get$current(t1));
+ t4 = scopeFocus0._focusedChildren;
+ C.JSArray_methods.remove$1(t4, scopeFocus);
+ t4.push(scopeFocus);
+ }
+ },
+ debugDescribeChildren$0: function() {
+ var t2, t3, t1 = {};
+ t1.count = 1;
+ t2 = this._children;
+ t3 = H._arrayInstanceType(t2)._eval$1("MappedListIterable<1,DiagnosticsNode>");
+ return P.List_List$of(new H.MappedListIterable(t2, new O.FocusNode_debugDescribeChildren_closure(t1), t3), true, t3._eval$1("ListIterable.E"));
+ },
+ toStringShort$0: function() {
+ var t1, extraData, _this = this;
+ _this.get$hasFocus();
+ t1 = _this.get$hasFocus() && !_this.get$hasPrimaryFocus() ? "[IN FOCUS PATH]" : "";
+ extraData = t1 + (_this.get$hasPrimaryFocus() ? "[PRIMARY FOCUS]" : "");
+ t1 = "#" + Y.shortHash(_this);
+ return t1 + (extraData.length !== 0 ? "(" + extraData + ")" : "");
+ },
+ $isListenable: 1,
+ $isDiagnosticableTree: 1
+ };
+ O.FocusNode_traversalDescendants_closure.prototype = {
+ call$1: function(node) {
+ return !node._skipTraversal && node.get$canRequestFocus();
+ },
+ $signature: 20
+ };
+ O.FocusNode_debugDescribeChildren_closure.prototype = {
+ call$1: function(child) {
+ var t1 = "Child " + this._box_0.count++;
+ child.toString;
+ return Y.DiagnosticableTreeNode$(t1, null, child);
+ },
+ $signature: 260
+ };
+ O.FocusScopeNode.prototype = {
+ get$nearestScope: function() {
+ return this;
+ },
+ setFirstFocus$1: function(scope) {
+ if (scope._focus_manager$_parent == null)
+ this._reparent$1(scope);
+ if (this.get$hasFocus())
+ scope._doRequestFocus$1$findFirstFocus(true);
+ else
+ scope._setAsFocusedChildForScope$0();
+ },
+ autofocus$1: function(_, node) {
+ var t1 = this._focusedChildren;
+ if ((t1.length !== 0 ? C.JSArray_methods.get$last(t1) : null) == null) {
+ if (node._focus_manager$_parent == null)
+ this._reparent$1(node);
+ node._doRequestFocus$1$findFirstFocus(true);
+ }
+ },
+ _doRequestFocus$1$findFirstFocus: function(findFirstFocus) {
+ var t2, primaryFocus, _this = this, _null = null,
+ t1 = _this._focusedChildren;
+ while (true) {
+ if ((t1.length !== 0 ? C.JSArray_methods.get$last(t1) : _null) != null)
+ t2 = !(t1.length !== 0 ? C.JSArray_methods.get$last(t1) : _null).get$canRequestFocus();
+ else
+ t2 = false;
+ if (!t2)
+ break;
+ t1.pop();
+ }
+ if (!findFirstFocus) {
+ if (_this.get$canRequestFocus()) {
+ _this._setAsFocusedChildForScope$0();
+ _this._markNextFocus$1(_this);
+ }
+ return;
+ }
+ primaryFocus = t1.length !== 0 ? C.JSArray_methods.get$last(t1) : _null;
+ if (primaryFocus == null)
+ primaryFocus = _this;
+ while (true) {
+ if (primaryFocus instanceof O.FocusScopeNode) {
+ t1 = primaryFocus._focusedChildren;
+ t1 = (t1.length !== 0 ? C.JSArray_methods.get$last(t1) : _null) != null;
+ } else
+ t1 = false;
+ if (!t1)
+ break;
+ t1 = primaryFocus._focusedChildren;
+ t1 = t1.length !== 0 ? C.JSArray_methods.get$last(t1) : _null;
+ t1.toString;
+ primaryFocus = t1;
+ }
+ if (primaryFocus === _this) {
+ if (primaryFocus.get$canRequestFocus()) {
+ _this._setAsFocusedChildForScope$0();
+ _this._markNextFocus$1(_this);
+ }
+ } else
+ primaryFocus._doRequestFocus$1$findFirstFocus(true);
+ }
+ };
+ O.FocusHighlightMode.prototype = {
+ toString$0: function(_) {
+ return this._focus_manager$_name;
+ }
+ };
+ O.FocusHighlightStrategy.prototype = {
+ toString$0: function(_) {
+ return this._focus_manager$_name;
+ }
+ };
+ O.FocusManager.prototype = {
+ get$highlightMode: function() {
+ var t1 = this._highlightMode;
+ return t1 == null ? O.FocusManager__defaultModeForPlatform() : t1;
+ },
+ _updateHighlightMode$0: function() {
+ var t1, newMode, oldMode, _this = this;
+ switch (C.FocusHighlightStrategy_0) {
+ case C.FocusHighlightStrategy_0:
+ t1 = _this._lastInteractionWasTouch;
+ if (t1 == null)
+ return;
+ newMode = t1 ? C.FocusHighlightMode_0 : C.FocusHighlightMode_1;
+ break;
+ case C.FocusHighlightStrategy_1:
+ newMode = C.FocusHighlightMode_0;
+ break;
+ case C.FocusHighlightStrategy_2:
+ newMode = C.FocusHighlightMode_1;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ oldMode = _this.get$highlightMode();
+ _this._highlightMode = newMode;
+ if (_this.get$highlightMode() !== oldMode)
+ _this._notifyHighlightModeListeners$0();
+ },
+ _notifyHighlightModeListeners$0: function() {
+ var listener, exception, stack, localListeners, _i, t3, exception0, rti, t4, _this = this,
+ t1 = _this._focus_manager$_listeners,
+ t2 = t1._observer_list$_map;
+ if (t2.get$isEmpty(t2))
+ return;
+ localListeners = P.List_List$from(t1, true, type$.void_Function_FocusHighlightMode);
+ for (t1 = localListeners.length, _i = 0; _i < t1; ++_i) {
+ listener = localListeners[_i];
+ try {
+ if (t2.containsKey$1(0, listener)) {
+ t3 = _this._highlightMode;
+ if (t3 == null)
+ t3 = O.FocusManager__defaultModeForPlatform();
+ listener.call$1(t3);
+ }
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stack = H.getTraceFromException(exception0);
+ rti = _this instanceof H.Closure ? H.closureFunctionType(_this) : null;
+ t3 = U.ErrorDescription$("while dispatching notifications for " + H.createRuntimeType(rti == null ? H.instanceType(_this) : rti).toString$0(0));
+ t4 = $.$get$FlutterError_onError();
+ if (t4 != null)
+ t4.call$1(new U.FlutterErrorDetails(exception, stack, "widgets library", t3, null, false));
+ }
+ }
+ },
+ _focus_manager$_handlePointerEvent$1: function($event) {
+ var expectedMode, _this = this;
+ switch ($event.get$kind($event)) {
+ case C.PointerDeviceKind_0:
+ case C.PointerDeviceKind_2:
+ case C.PointerDeviceKind_3:
+ _this._lastInteractionWasTouch = true;
+ expectedMode = C.FocusHighlightMode_0;
+ break;
+ case C.PointerDeviceKind_1:
+ case C.PointerDeviceKind_4:
+ _this._lastInteractionWasTouch = false;
+ expectedMode = C.FocusHighlightMode_1;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ if (expectedMode !== _this.get$highlightMode())
+ _this._updateHighlightMode$0();
+ },
+ _handleRawKeyEvent$1: function($event) {
+ var t1, t2, t3, _i, handled, node, result, _this = this;
+ _this._lastInteractionWasTouch = false;
+ _this._updateHighlightMode$0();
+ if (_this._primaryFocus == null)
+ return false;
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_FocusNode);
+ t2 = _this._primaryFocus;
+ t2.toString;
+ t1.push(t2);
+ for (t2 = _this._primaryFocus.get$ancestors(), t3 = t2.length, _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i)
+ t1.push(t2[_i]);
+ t2 = t1.length;
+ _i = 0;
+ while (true) {
+ if (!(_i < t1.length)) {
+ handled = false;
+ break;
+ }
+ c$1: {
+ node = t1[_i];
+ t3 = node._onKey;
+ if (t3 != null) {
+ result = t3.call$2(node, $event);
+ if (result instanceof O.KeyEventResult)
+ switch (result) {
+ case C.KeyEventResult_0:
+ handled = true;
+ break;
+ case C.KeyEventResult_2:
+ handled = false;
+ break;
+ case C.KeyEventResult_1:
+ break c$1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ else {
+ if (H._isBool(result))
+ if (result) {
+ handled = true;
+ break;
+ } else
+ break c$1;
+ handled = false;
+ }
+ break;
+ }
+ }
+ t1.length === t2 || (0, H.throwConcurrentModificationError)(t1);
+ ++_i;
+ }
+ return handled;
+ },
+ _markNeedsUpdate$0: function() {
+ if (this._haveScheduledUpdate)
+ return;
+ this._haveScheduledUpdate = true;
+ P.scheduleMicrotask(this.get$_applyFocusChange());
+ },
+ _applyFocusChange$0: function() {
+ var previousFocus, t1, t2, previousPath, nextPath, _this = this;
+ _this._haveScheduledUpdate = false;
+ previousFocus = _this._primaryFocus;
+ t1 = previousFocus == null;
+ if (t1 && _this._markedForFocus == null)
+ _this._markedForFocus = _this.rootScope;
+ t2 = _this._markedForFocus;
+ if (t2 != null && t2 !== previousFocus) {
+ if (t1)
+ previousPath = null;
+ else {
+ t2 = previousFocus.get$ancestors();
+ t2.toString;
+ t2 = P.LinkedHashSet_LinkedHashSet$from(t2, H._arrayInstanceType(t2)._precomputed1);
+ previousPath = t2;
+ }
+ if (previousPath == null)
+ previousPath = P.LinkedHashSet_LinkedHashSet$_empty(type$.FocusNode);
+ t2 = _this._markedForFocus.get$ancestors();
+ t2.toString;
+ nextPath = P.LinkedHashSet_LinkedHashSet$from(t2, H._arrayInstanceType(t2)._precomputed1);
+ t2 = _this._dirtyNodes;
+ t2.addAll$1(0, nextPath.difference$1(previousPath));
+ t2.addAll$1(0, previousPath.difference$1(nextPath));
+ t2 = _this._primaryFocus = _this._markedForFocus;
+ _this._markedForFocus = null;
+ } else
+ t2 = previousFocus;
+ if (previousFocus != t2) {
+ if (!t1)
+ _this._dirtyNodes.add$1(0, previousFocus);
+ t1 = _this._primaryFocus;
+ if (t1 != null)
+ _this._dirtyNodes.add$1(0, t1);
+ }
+ for (t1 = _this._dirtyNodes, t2 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t2.moveNext$0();)
+ t2._collection$_current._notify$0();
+ t1.clear$0(0);
+ if (previousFocus != _this._primaryFocus)
+ _this.notifyListeners$0();
+ },
+ debugDescribeChildren$0: function() {
+ return H.setRuntimeTypeInfo([Y.DiagnosticableTreeNode$("rootScope", null, this.rootScope)], type$.JSArray_DiagnosticsNode);
+ },
+ $isListenable: 1,
+ $isDiagnosticableTree: 1
+ };
+ O._FocusManager_Object_DiagnosticableTreeMixin.prototype = {};
+ O._FocusManager_Object_DiagnosticableTreeMixin_ChangeNotifier.prototype = {};
+ O._FocusNode_Object_DiagnosticableTreeMixin.prototype = {};
+ O._FocusNode_Object_DiagnosticableTreeMixin_ChangeNotifier.prototype = {};
+ L.Focus.prototype = {
+ createState$0: function() {
+ return new L._FocusState(C._StateLifecycle_0);
+ }
+ };
+ L._FocusState.prototype = {
+ get$focusNode: function(_) {
+ var t1 = this._widget.focusNode;
+ if (t1 == null) {
+ t1 = this._internalNode;
+ t1.toString;
+ }
+ return t1;
+ },
+ initState$0: function() {
+ this.super$State$initState();
+ this._initNode$0();
+ },
+ _initNode$0: function() {
+ var t1, t2, _this = this;
+ if (_this._widget.focusNode == null)
+ if (_this._internalNode == null)
+ _this._internalNode = _this._createNode$0();
+ t1 = _this.get$focusNode(_this);
+ _this._widget.toString;
+ t1.set$descendantsAreFocusable(true);
+ if (_this._widget.skipTraversal != null) {
+ t1 = _this.get$focusNode(_this);
+ t2 = _this._widget.skipTraversal;
+ t2.toString;
+ t1.set$skipTraversal(t2);
+ }
+ if (_this._widget.canRequestFocus != null) {
+ t1 = _this.get$focusNode(_this);
+ t2 = _this._widget.canRequestFocus;
+ t2.toString;
+ t1.set$canRequestFocus(t2);
+ }
+ _this._canRequestFocus = _this.get$focusNode(_this).get$canRequestFocus();
+ _this.get$focusNode(_this).toString;
+ _this._descendantsAreFocusable = true;
+ _this._hasPrimaryFocus = _this.get$focusNode(_this).get$hasPrimaryFocus();
+ t1 = _this.get$focusNode(_this);
+ t2 = _this._framework$_element;
+ t2.toString;
+ _this._focusAttachment = t1.attach$2$onKey(t2, _this._widget.onKey);
+ t2 = _this.get$focusNode(_this).ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(_this.get$_handleFocusChanged()), false);
+ },
+ _createNode$0: function() {
+ var t1 = this._widget,
+ t2 = t1.debugLabel,
+ t3 = t1.canRequestFocus;
+ t1 = t1.skipTraversal;
+ return O.FocusNode$(t3 !== false, t2, true, null, t1 === true);
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ _this.get$focusNode(_this).removeListener$1(0, _this.get$_handleFocusChanged());
+ _this._focusAttachment.detach$0(0);
+ t1 = _this._internalNode;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ this.super$State$didChangeDependencies();
+ var t1 = this._focusAttachment;
+ if (t1 != null)
+ t1.reparent$0();
+ this._handleAutofocus$0();
+ },
+ _handleAutofocus$0: function() {
+ var t1, _this = this;
+ if (!_this._didAutofocus && _this._widget.autofocus) {
+ t1 = _this._framework$_element;
+ t1.toString;
+ L.FocusScope_of(t1).autofocus$1(0, _this.get$focusNode(_this));
+ _this._didAutofocus = true;
+ }
+ },
+ deactivate$0: function() {
+ this.super$State$deactivate();
+ var t1 = this._focusAttachment;
+ if (t1 != null)
+ t1.reparent$0();
+ this._didAutofocus = false;
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, t2, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ t1 = oldWidget.focusNode;
+ t2 = _this._widget;
+ if (t1 == t2.focusNode) {
+ if (t2.skipTraversal != null) {
+ t1 = _this.get$focusNode(_this);
+ t2 = _this._widget.skipTraversal;
+ t2.toString;
+ t1.set$skipTraversal(t2);
+ }
+ if (_this._widget.canRequestFocus != null) {
+ t1 = _this.get$focusNode(_this);
+ t2 = _this._widget.canRequestFocus;
+ t2.toString;
+ t1.set$canRequestFocus(t2);
+ }
+ t1 = _this.get$focusNode(_this);
+ _this._widget.toString;
+ t1.set$descendantsAreFocusable(true);
+ } else {
+ _this._focusAttachment.detach$0(0);
+ _this.get$focusNode(_this).removeListener$1(0, _this.get$_handleFocusChanged());
+ _this._initNode$0();
+ }
+ if (oldWidget.autofocus !== _this._widget.autofocus)
+ _this._handleAutofocus$0();
+ },
+ _handleFocusChanged$0: function() {
+ var t1, _this = this,
+ hasPrimaryFocus = _this.get$focusNode(_this).get$hasPrimaryFocus(),
+ canRequestFocus = _this.get$focusNode(_this).get$canRequestFocus();
+ _this.get$focusNode(_this).toString;
+ t1 = _this._widget.onFocusChange;
+ if (t1 != null)
+ t1.call$1(_this.get$focusNode(_this).get$hasFocus());
+ if (_this._hasPrimaryFocus !== hasPrimaryFocus)
+ _this.setState$1(new L._FocusState__handleFocusChanged_closure(_this, hasPrimaryFocus));
+ if (_this._canRequestFocus !== canRequestFocus)
+ _this.setState$1(new L._FocusState__handleFocusChanged_closure0(_this, canRequestFocus));
+ if (_this._descendantsAreFocusable !== true)
+ _this.setState$1(new L._FocusState__handleFocusChanged_closure1(_this, true));
+ },
+ build$1: function(_, context) {
+ var t1, child, _this = this, _null = null;
+ _this._focusAttachment.reparent$0();
+ t1 = _this._widget;
+ child = t1.child;
+ if (t1.includeSemantics)
+ child = T.Semantics$(_null, child, false, _null, _null, false, _this._canRequestFocus, _this._hasPrimaryFocus, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ return L._FocusMarker$(child, _this.get$focusNode(_this));
+ }
+ };
+ L._FocusState__handleFocusChanged_closure.prototype = {
+ call$0: function() {
+ this.$this._hasPrimaryFocus = this.hasPrimaryFocus;
+ },
+ $signature: 0
+ };
+ L._FocusState__handleFocusChanged_closure0.prototype = {
+ call$0: function() {
+ this.$this._canRequestFocus = this.canRequestFocus;
+ },
+ $signature: 0
+ };
+ L._FocusState__handleFocusChanged_closure1.prototype = {
+ call$0: function() {
+ this.$this._descendantsAreFocusable = this.descendantsAreFocusable;
+ },
+ $signature: 0
+ };
+ L.FocusScope.prototype = {
+ createState$0: function() {
+ return new L._FocusScopeState(C._StateLifecycle_0);
+ }
+ };
+ L._FocusScopeState.prototype = {
+ _createNode$0: function() {
+ var t1 = this._widget,
+ t2 = t1.debugLabel,
+ t3 = t1.canRequestFocus;
+ t1 = t1.skipTraversal;
+ return O.FocusScopeNode$(t3 !== false, t2, t1 === true);
+ },
+ build$1: function(_, context) {
+ var t1, _this = this, _null = null;
+ _this._focusAttachment.reparent$0();
+ t1 = _this.get$focusNode(_this);
+ return T.Semantics$(_null, L._FocusMarker$(_this._widget.child, t1), false, _null, _null, true, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ }
+ };
+ L._FocusMarker.prototype = {};
+ U._getAncestor_closure.prototype = {
+ call$1: function(ancestor) {
+ var t1 = this._box_0;
+ if (--t1.count === 0) {
+ t1.target = ancestor;
+ return false;
+ }
+ return true;
+ },
+ $signature: 24
+ };
+ U._FocusTraversalGroupInfo.prototype = {};
+ U.TraversalDirection.prototype = {
+ toString$0: function(_) {
+ return this._focus_traversal$_name;
+ }
+ };
+ U.FocusTraversalPolicy.prototype = {
+ _findInitialFocus$2$fromEnd: function(currentNode, fromEnd) {
+ var sorted,
+ scope = currentNode.get$nearestScope(),
+ t1 = scope._focusedChildren,
+ candidate = t1.length !== 0 ? C.JSArray_methods.get$last(t1) : null;
+ if (candidate == null && scope.get$descendants().length !== 0) {
+ sorted = this._sortAllDescendants$2(scope, currentNode);
+ if (sorted.length === 0)
+ candidate = null;
+ else
+ candidate = fromEnd ? C.JSArray_methods.get$last(sorted) : C.JSArray_methods.get$first(sorted);
+ }
+ return candidate == null ? currentNode : candidate;
+ },
+ _findInitialFocus$1: function(currentNode) {
+ return this._findInitialFocus$2$fromEnd(currentNode, false);
+ },
+ invalidateScopeData$1: function(node) {
+ },
+ changedScope$2$node$oldScope: function(node, oldScope) {
+ },
+ _getMarker$1: function(context) {
+ var t1;
+ if (context == null)
+ t1 = null;
+ else {
+ t1 = context.getElementForInheritedWidgetOfExactType$1$0(type$._FocusTraversalGroupMarker);
+ t1 = t1 == null ? null : t1.get$widget();
+ }
+ return type$.nullable__FocusTraversalGroupMarker._as(t1);
+ },
+ _sortAllDescendants$2: function(scope, currentNode) {
+ var groups, t2, t3, t4, t5, t6, _i, node, t7, ancestor, groupNode, parentContext, parentNode, groupKeys, sortedDescendants, _null = null,
+ scopeGroupMarker = this._getMarker$1(scope._context),
+ t1 = scopeGroupMarker == null,
+ defaultPolicy = t1 ? _null : scopeGroupMarker.policy;
+ if (defaultPolicy == null)
+ defaultPolicy = new U.ReadingOrderTraversalPolicy(P.LinkedHashMap_LinkedHashMap$_empty(type$.FocusScopeNode, type$._DirectionalPolicyData));
+ groups = P.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_FocusNode, type$._FocusTraversalGroupInfo);
+ for (t2 = scope.get$descendants(), t3 = t2.length, t4 = type$.nullable__FocusTraversalGroupMarker, t5 = type$._FocusTraversalGroupMarker, t6 = type$.JSArray_FocusNode, _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i) {
+ node = t2[_i];
+ t7 = node._context;
+ if (t7 == null)
+ t7 = _null;
+ else {
+ t7 = t7._inheritedWidgets;
+ ancestor = t7 == null ? _null : t7.$index(0, H.createRuntimeType(t5));
+ t7 = ancestor == null ? _null : ancestor.get$widget();
+ }
+ t4._as(t7);
+ groupNode = t7 == null ? _null : t7.focusNode;
+ if (J.$eq$(node, groupNode)) {
+ t7 = groupNode._context;
+ t7.toString;
+ parentContext = U._getAncestor(t7, 2);
+ if (parentContext == null)
+ t7 = _null;
+ else {
+ t7 = parentContext._inheritedWidgets;
+ ancestor = t7 == null ? _null : t7.$index(0, H.createRuntimeType(t5));
+ t7 = ancestor == null ? _null : ancestor.get$widget();
+ }
+ t4._as(t7);
+ parentNode = t7 == null ? _null : t7.focusNode;
+ if (groups.$index(0, parentNode) == null)
+ groups.$indexSet(0, parentNode, U._FocusTraversalGroupInfo$(t7, defaultPolicy, H.setRuntimeTypeInfo([], t6)));
+ groups.$index(0, parentNode).members.push(groupNode);
+ continue;
+ }
+ if (node.get$canRequestFocus() && !node._skipTraversal) {
+ if (groups.$index(0, groupNode) == null)
+ groups.$indexSet(0, groupNode, U._FocusTraversalGroupInfo$(t7, defaultPolicy, H.setRuntimeTypeInfo([], t6)));
+ groups.$index(0, groupNode).members.push(node);
+ }
+ }
+ t2 = groups.get$keys(groups);
+ groupKeys = P.LinkedHashSet_LinkedHashSet$of(t2, H._instanceType(t2)._eval$1("Iterable.E"));
+ for (t2 = groups.get$keys(groups), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ t4 = groups.$index(0, t3).policy.sortDescendants$2(groups.$index(0, t3).members, currentNode);
+ t4 = H.setRuntimeTypeInfo(t4.slice(0), H._arrayInstanceType(t4));
+ C.JSArray_methods.set$length(groups.$index(0, t3).members, 0);
+ C.JSArray_methods.addAll$1(groups.$index(0, t3).members, t4);
+ }
+ sortedDescendants = H.setRuntimeTypeInfo([], t6);
+ t2 = groups.$index(0, t1 ? _null : scopeGroupMarker.focusNode);
+ t2.toString;
+ new U.FocusTraversalPolicy__sortAllDescendants_visitGroups(groupKeys, groups, sortedDescendants).call$1(t2);
+ return sortedDescendants;
+ },
+ _moveFocus$2$forward: function(currentNode, $forward) {
+ var t2, focusedChild, firstFocus, sortedNodes, previousNode, previousNode0, _this = this,
+ t1 = currentNode.get$nearestScope();
+ t1.toString;
+ _this.super$FocusTraversalPolicy$invalidateScopeData(t1);
+ _this.DirectionalFocusTraversalPolicyMixin__policyData.remove$1(0, t1);
+ t2 = t1._focusedChildren;
+ focusedChild = t2.length !== 0 ? C.JSArray_methods.get$last(t2) : null;
+ if (focusedChild == null) {
+ firstFocus = $forward ? _this._findInitialFocus$1(currentNode) : _this._findInitialFocus$2$fromEnd(currentNode, true);
+ U._focusAndEnsureVisible(firstFocus, $forward ? C.ScrollPositionAlignmentPolicy_1 : C.ScrollPositionAlignmentPolicy_2);
+ return true;
+ }
+ sortedNodes = _this._sortAllDescendants$2(t1, currentNode);
+ if ($forward && focusedChild == C.JSArray_methods.get$last(sortedNodes)) {
+ U._focusAndEnsureVisible(C.JSArray_methods.get$first(sortedNodes), C.ScrollPositionAlignmentPolicy_1);
+ return true;
+ }
+ if (!$forward && focusedChild == C.JSArray_methods.get$first(sortedNodes)) {
+ U._focusAndEnsureVisible(C.JSArray_methods.get$last(sortedNodes), C.ScrollPositionAlignmentPolicy_2);
+ return true;
+ }
+ for (t1 = J.get$iterator$ax($forward ? sortedNodes : new H.ReversedListIterable(sortedNodes, H._arrayInstanceType(sortedNodes)._eval$1("ReversedListIterable<1>"))), previousNode = null; t1.moveNext$0(); previousNode = previousNode0) {
+ previousNode0 = t1.get$current(t1);
+ if (previousNode == focusedChild) {
+ t1 = $forward ? C.ScrollPositionAlignmentPolicy_1 : C.ScrollPositionAlignmentPolicy_2;
+ previousNode0.requestFocus$0();
+ t2 = previousNode0._context;
+ t2.toString;
+ F.Scrollable_ensureVisible(t2, 1, t1);
+ return true;
+ }
+ }
+ return false;
+ }
+ };
+ U.FocusTraversalPolicy__sortAllDescendants_visitGroups.prototype = {
+ call$1: function(info) {
+ var t1, t2, t3, t4, t5, _i, node, t6, _this = this;
+ for (t1 = info.members, t2 = t1.length, t3 = _this.sortedDescendants, t4 = _this.groupKeys, t5 = _this.groups, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ node = t1[_i];
+ if (t4.contains$1(0, node)) {
+ t6 = t5.$index(0, node);
+ t6.toString;
+ _this.call$1(t6);
+ } else
+ t3.push(node);
+ }
+ },
+ $signature: 262
+ };
+ U._DirectionalPolicyDataEntry.prototype = {};
+ U._DirectionalPolicyData.prototype = {};
+ U.DirectionalFocusTraversalPolicyMixin.prototype = {
+ findFirstFocusInDirection$2: function(currentNode, direction) {
+ var _this = this;
+ switch (direction) {
+ case C.TraversalDirection_0:
+ return _this._sortAndFindInitial$3$first$vertical(currentNode, false, true);
+ case C.TraversalDirection_2:
+ return _this._sortAndFindInitial$3$first$vertical(currentNode, true, true);
+ case C.TraversalDirection_3:
+ return _this._sortAndFindInitial$3$first$vertical(currentNode, false, false);
+ case C.TraversalDirection_1:
+ return _this._sortAndFindInitial$3$first$vertical(currentNode, true, false);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _sortAndFindInitial$3$first$vertical: function(currentNode, first, vertical) {
+ var nodes = currentNode.get$nearestScope().get$traversalDescendants(),
+ sorted = P.List_List$of(nodes, true, nodes.$ti._eval$1("Iterable.E"));
+ S.mergeSort(sorted, new U.DirectionalFocusTraversalPolicyMixin__sortAndFindInitial_closure(vertical, first), type$.FocusNode);
+ if (sorted.length !== 0)
+ return C.JSArray_methods.get$first(sorted);
+ return null;
+ },
+ _sortAndFilterHorizontally$3: function(direction, target, nearestScope) {
+ var result,
+ nodes = nearestScope.get$traversalDescendants(),
+ sorted = P.List_List$of(nodes, true, nodes.$ti._eval$1("Iterable.E"));
+ S.mergeSort(sorted, new U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure(), type$.FocusNode);
+ switch (direction) {
+ case C.TraversalDirection_3:
+ result = new H.WhereIterable(sorted, new U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure0(target), H._arrayInstanceType(sorted)._eval$1("WhereIterable<1>"));
+ break;
+ case C.TraversalDirection_1:
+ result = new H.WhereIterable(sorted, new U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure1(target), H._arrayInstanceType(sorted)._eval$1("WhereIterable<1>"));
+ break;
+ case C.TraversalDirection_0:
+ case C.TraversalDirection_2:
+ result = null;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return result;
+ },
+ _sortAndFilterVertically$3: function(direction, target, nodes) {
+ var sorted = P.List_List$of(nodes, true, nodes.$ti._eval$1("Iterable.E"));
+ S.mergeSort(sorted, new U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure(), type$.FocusNode);
+ switch (direction) {
+ case C.TraversalDirection_0:
+ return new H.WhereIterable(sorted, new U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure0(target), H._arrayInstanceType(sorted)._eval$1("WhereIterable<1>"));
+ case C.TraversalDirection_2:
+ return new H.WhereIterable(sorted, new U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure1(target), H._arrayInstanceType(sorted)._eval$1("WhereIterable<1>"));
+ case C.TraversalDirection_3:
+ case C.TraversalDirection_1:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return null;
+ },
+ _popPolicyDataIfNeeded$3: function(direction, nearestScope, focusedChild) {
+ var t3, popOrInvalidate, _this = this,
+ _s80_ = string$.x60null_c,
+ t1 = _this.DirectionalFocusTraversalPolicyMixin__policyData,
+ policyData = t1.$index(0, nearestScope),
+ t2 = policyData != null;
+ if (t2) {
+ t3 = policyData.history;
+ t3 = t3.length !== 0 && C.JSArray_methods.get$first(t3).direction !== direction;
+ } else
+ t3 = false;
+ if (t3) {
+ t3 = policyData.history;
+ if (C.JSArray_methods.get$last(t3).node._focus_manager$_parent == null) {
+ _this.super$FocusTraversalPolicy$invalidateScopeData(nearestScope);
+ t1.remove$1(0, nearestScope);
+ return false;
+ }
+ popOrInvalidate = new U.DirectionalFocusTraversalPolicyMixin__popPolicyDataIfNeeded_popOrInvalidate(_this, policyData, nearestScope);
+ switch (direction) {
+ case C.TraversalDirection_2:
+ case C.TraversalDirection_0:
+ switch (C.JSArray_methods.get$first(t3).direction) {
+ case C.TraversalDirection_3:
+ case C.TraversalDirection_1:
+ _this.super$FocusTraversalPolicy$invalidateScopeData(nearestScope);
+ t1.remove$1(0, nearestScope);
+ break;
+ case C.TraversalDirection_0:
+ case C.TraversalDirection_2:
+ if (popOrInvalidate.call$1(direction))
+ return true;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ break;
+ case C.TraversalDirection_3:
+ case C.TraversalDirection_1:
+ switch (C.JSArray_methods.get$first(t3).direction) {
+ case C.TraversalDirection_3:
+ case C.TraversalDirection_1:
+ if (popOrInvalidate.call$1(direction))
+ return true;
+ break;
+ case C.TraversalDirection_0:
+ case C.TraversalDirection_2:
+ _this.super$FocusTraversalPolicy$invalidateScopeData(nearestScope);
+ t1.remove$1(0, nearestScope);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ }
+ if (t2 && policyData.history.length === 0) {
+ _this.super$FocusTraversalPolicy$invalidateScopeData(nearestScope);
+ t1.remove$1(0, nearestScope);
+ }
+ return false;
+ },
+ inDirection$2: function(currentNode, direction) {
+ var firstFocus, focusedScrollable, eligibleNodes, filteredEligibleNodes, found, sorted, inBand, policyData, newEntry, _this = this,
+ _s80_ = string$.x60null_c,
+ nearestScope = currentNode.get$nearestScope(),
+ t1 = nearestScope._focusedChildren,
+ focusedChild = t1.length !== 0 ? C.JSArray_methods.get$last(t1) : null;
+ if (focusedChild == null) {
+ firstFocus = _this.findFirstFocusInDirection$2(currentNode, direction);
+ if (firstFocus == null)
+ firstFocus = currentNode;
+ switch (direction) {
+ case C.TraversalDirection_0:
+ case C.TraversalDirection_3:
+ U._focusAndEnsureVisible(firstFocus, C.ScrollPositionAlignmentPolicy_2);
+ break;
+ case C.TraversalDirection_1:
+ case C.TraversalDirection_2:
+ U._focusAndEnsureVisible(firstFocus, C.ScrollPositionAlignmentPolicy_1);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ return true;
+ }
+ if (_this._popPolicyDataIfNeeded$3(direction, nearestScope, focusedChild))
+ return true;
+ t1 = focusedChild._context;
+ t1.toString;
+ focusedScrollable = F.Scrollable_of(t1);
+ switch (direction) {
+ case C.TraversalDirection_2:
+ case C.TraversalDirection_0:
+ eligibleNodes = _this._sortAndFilterVertically$3(direction, focusedChild.get$rect(focusedChild), nearestScope.get$traversalDescendants());
+ if (focusedScrollable != null && !focusedScrollable._scrollable$_position.get$atEdge()) {
+ eligibleNodes.toString;
+ filteredEligibleNodes = new H.WhereIterable(eligibleNodes, new U.DirectionalFocusTraversalPolicyMixin_inDirection_closure(focusedScrollable), eligibleNodes.$ti._eval$1("WhereIterable"));
+ if (!filteredEligibleNodes.get$isEmpty(filteredEligibleNodes))
+ eligibleNodes = filteredEligibleNodes;
+ }
+ if (!eligibleNodes.get$iterator(eligibleNodes).moveNext$0()) {
+ found = null;
+ break;
+ }
+ sorted = P.List_List$of(eligibleNodes, true, H._instanceType(eligibleNodes)._eval$1("Iterable.E"));
+ if (direction === C.TraversalDirection_0) {
+ t1 = H._arrayInstanceType(sorted)._eval$1("ReversedListIterable<1>");
+ sorted = P.List_List$of(new H.ReversedListIterable(sorted, t1), true, t1._eval$1("ListIterable.E"));
+ }
+ inBand = new H.WhereIterable(sorted, new U.DirectionalFocusTraversalPolicyMixin_inDirection_closure0(new P.Rect(focusedChild.get$rect(focusedChild).left, -1 / 0, focusedChild.get$rect(focusedChild).right, 1 / 0)), H._arrayInstanceType(sorted)._eval$1("WhereIterable<1>"));
+ if (!inBand.get$isEmpty(inBand)) {
+ found = inBand.get$first(inBand);
+ break;
+ }
+ S.mergeSort(sorted, new U.DirectionalFocusTraversalPolicyMixin_inDirection_closure1(focusedChild), type$.FocusNode);
+ found = C.JSArray_methods.get$first(sorted);
+ break;
+ case C.TraversalDirection_1:
+ case C.TraversalDirection_3:
+ eligibleNodes = _this._sortAndFilterHorizontally$3(direction, focusedChild.get$rect(focusedChild), nearestScope);
+ if (focusedScrollable != null && !focusedScrollable._scrollable$_position.get$atEdge()) {
+ eligibleNodes.toString;
+ filteredEligibleNodes = new H.WhereIterable(eligibleNodes, new U.DirectionalFocusTraversalPolicyMixin_inDirection_closure2(focusedScrollable), eligibleNodes.$ti._eval$1("WhereIterable"));
+ if (!filteredEligibleNodes.get$isEmpty(filteredEligibleNodes))
+ eligibleNodes = filteredEligibleNodes;
+ }
+ if (!eligibleNodes.get$iterator(eligibleNodes).moveNext$0()) {
+ found = null;
+ break;
+ }
+ sorted = P.List_List$of(eligibleNodes, true, H._instanceType(eligibleNodes)._eval$1("Iterable.E"));
+ if (direction === C.TraversalDirection_3) {
+ t1 = H._arrayInstanceType(sorted)._eval$1("ReversedListIterable<1>");
+ sorted = P.List_List$of(new H.ReversedListIterable(sorted, t1), true, t1._eval$1("ListIterable.E"));
+ }
+ inBand = new H.WhereIterable(sorted, new U.DirectionalFocusTraversalPolicyMixin_inDirection_closure3(new P.Rect(-1 / 0, focusedChild.get$rect(focusedChild).top, 1 / 0, focusedChild.get$rect(focusedChild).bottom)), H._arrayInstanceType(sorted)._eval$1("WhereIterable<1>"));
+ if (!inBand.get$isEmpty(inBand)) {
+ found = inBand.get$first(inBand);
+ break;
+ }
+ S.mergeSort(sorted, new U.DirectionalFocusTraversalPolicyMixin_inDirection_closure4(focusedChild), type$.FocusNode);
+ found = C.JSArray_methods.get$first(sorted);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ if (found != null) {
+ t1 = _this.DirectionalFocusTraversalPolicyMixin__policyData;
+ policyData = t1.$index(0, nearestScope);
+ newEntry = new U._DirectionalPolicyDataEntry(direction, focusedChild);
+ if (policyData != null)
+ policyData.history.push(newEntry);
+ else
+ t1.$indexSet(0, nearestScope, new U._DirectionalPolicyData(H.setRuntimeTypeInfo([newEntry], type$.JSArray__DirectionalPolicyDataEntry)));
+ switch (direction) {
+ case C.TraversalDirection_0:
+ case C.TraversalDirection_3:
+ U._focusAndEnsureVisible(found, C.ScrollPositionAlignmentPolicy_2);
+ break;
+ case C.TraversalDirection_2:
+ case C.TraversalDirection_1:
+ U._focusAndEnsureVisible(found, C.ScrollPositionAlignmentPolicy_1);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ return true;
+ }
+ return false;
+ }
+ };
+ U._ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin_changedScope_closure.prototype = {
+ call$1: function(entry) {
+ return entry.node === this.node;
+ },
+ $signature: 263
+ };
+ U.DirectionalFocusTraversalPolicyMixin__sortAndFindInitial_closure.prototype = {
+ call$2: function(a, b) {
+ if (this.vertical)
+ if (this.first)
+ return J.compareTo$1$ns(a.get$rect(a).top, b.get$rect(b).top);
+ else
+ return J.compareTo$1$ns(b.get$rect(b).bottom, a.get$rect(a).bottom);
+ else if (this.first)
+ return J.compareTo$1$ns(a.get$rect(a).left, b.get$rect(b).left);
+ else
+ return J.compareTo$1$ns(b.get$rect(b).right, a.get$rect(a).right);
+ },
+ $signature: 35
+ };
+ U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure.prototype = {
+ call$2: function(a, b) {
+ return J.compareTo$1$ns(a.get$rect(a).get$center()._dx, b.get$rect(b).get$center()._dx);
+ },
+ $signature: 35
+ };
+ U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure0.prototype = {
+ call$1: function(node) {
+ var t1 = this.target;
+ return !node.get$rect(node).$eq(0, t1) && node.get$rect(node).get$center()._dx <= t1.left;
+ },
+ $signature: 20
+ };
+ U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure1.prototype = {
+ call$1: function(node) {
+ var t1 = this.target;
+ return !node.get$rect(node).$eq(0, t1) && node.get$rect(node).get$center()._dx >= t1.right;
+ },
+ $signature: 20
+ };
+ U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure.prototype = {
+ call$2: function(a, b) {
+ return J.compareTo$1$ns(a.get$rect(a).get$center()._dy, b.get$rect(b).get$center()._dy);
+ },
+ $signature: 35
+ };
+ U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure0.prototype = {
+ call$1: function(node) {
+ var t1 = this.target;
+ return !node.get$rect(node).$eq(0, t1) && node.get$rect(node).get$center()._dy <= t1.top;
+ },
+ $signature: 20
+ };
+ U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure1.prototype = {
+ call$1: function(node) {
+ var t1 = this.target;
+ return !node.get$rect(node).$eq(0, t1) && node.get$rect(node).get$center()._dy >= t1.bottom;
+ },
+ $signature: 20
+ };
+ U.DirectionalFocusTraversalPolicyMixin__popPolicyDataIfNeeded_popOrInvalidate.prototype = {
+ call$1: function(direction) {
+ var t2, alignmentPolicy,
+ lastNode = this.policyData.history.pop().node,
+ t1 = lastNode._context;
+ t1.toString;
+ t1 = F.Scrollable_of(t1);
+ t2 = $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._primaryFocus._context;
+ t2.toString;
+ if (t1 != F.Scrollable_of(t2)) {
+ t1 = this.$this;
+ t2 = this.nearestScope;
+ t1.super$FocusTraversalPolicy$invalidateScopeData(t2);
+ t1.DirectionalFocusTraversalPolicyMixin__policyData.remove$1(0, t2);
+ return false;
+ }
+ switch (direction) {
+ case C.TraversalDirection_0:
+ case C.TraversalDirection_3:
+ alignmentPolicy = C.ScrollPositionAlignmentPolicy_2;
+ break;
+ case C.TraversalDirection_1:
+ case C.TraversalDirection_2:
+ alignmentPolicy = C.ScrollPositionAlignmentPolicy_1;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ U._focusAndEnsureVisible(lastNode, alignmentPolicy);
+ return true;
+ },
+ $signature: 265
+ };
+ U.DirectionalFocusTraversalPolicyMixin_inDirection_closure.prototype = {
+ call$1: function(node) {
+ var t1 = node._context;
+ t1.toString;
+ return F.Scrollable_of(t1) === this.focusedScrollable;
+ },
+ $signature: 20
+ };
+ U.DirectionalFocusTraversalPolicyMixin_inDirection_closure0.prototype = {
+ call$1: function(node) {
+ var t1 = node.get$rect(node).intersect$1(this.band);
+ return !t1.get$isEmpty(t1);
+ },
+ $signature: 20
+ };
+ U.DirectionalFocusTraversalPolicyMixin_inDirection_closure1.prototype = {
+ call$2: function(a, b) {
+ var t1 = this.focusedChild;
+ return C.JSNumber_methods.compareTo$1(Math.abs(a.get$rect(a).get$center()._dx - t1.get$rect(t1).get$center()._dx), Math.abs(b.get$rect(b).get$center()._dx - t1.get$rect(t1).get$center()._dx));
+ },
+ $signature: 35
+ };
+ U.DirectionalFocusTraversalPolicyMixin_inDirection_closure2.prototype = {
+ call$1: function(node) {
+ var t1 = node._context;
+ t1.toString;
+ return F.Scrollable_of(t1) === this.focusedScrollable;
+ },
+ $signature: 20
+ };
+ U.DirectionalFocusTraversalPolicyMixin_inDirection_closure3.prototype = {
+ call$1: function(node) {
+ var t1 = node.get$rect(node).intersect$1(this.band);
+ return !t1.get$isEmpty(t1);
+ },
+ $signature: 20
+ };
+ U.DirectionalFocusTraversalPolicyMixin_inDirection_closure4.prototype = {
+ call$2: function(a, b) {
+ var t1 = this.focusedChild;
+ return C.JSNumber_methods.compareTo$1(Math.abs(a.get$rect(a).get$center()._dy - t1.get$rect(t1).get$center()._dy), Math.abs(b.get$rect(b).get$center()._dy - t1.get$rect(t1).get$center()._dy));
+ },
+ $signature: 35
+ };
+ U._ReadingOrderSortData.prototype = {
+ get$directionalAncestors: function() {
+ var t1 = this._directionalAncestors;
+ if (t1 == null) {
+ t1 = this.node._context;
+ t1.toString;
+ t1 = this._directionalAncestors = new U._ReadingOrderSortData_directionalAncestors_getDirectionalityAncestors().call$1(t1);
+ }
+ t1.toString;
+ return t1;
+ }
+ };
+ U._ReadingOrderSortData_commonDirectionalityOf_closure.prototype = {
+ call$1: function(member) {
+ var t1 = member.get$directionalAncestors();
+ t1.toString;
+ return P.LinkedHashSet_LinkedHashSet$from(t1, H._arrayInstanceType(t1)._precomputed1);
+ },
+ $signature: 266
+ };
+ U._ReadingOrderSortData_sortWithDirectionality_closure.prototype = {
+ call$2: function(a, b) {
+ switch (this.directionality) {
+ case C.TextDirection_1:
+ return J.compareTo$1$ns(a.rect.left, b.rect.left);
+ case C.TextDirection_0:
+ return J.compareTo$1$ns(b.rect.right, a.rect.right);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $signature: 128
+ };
+ U._ReadingOrderSortData_directionalAncestors_getDirectionalityAncestors.prototype = {
+ call$1: function(context) {
+ var t2, ancestor,
+ result = H.setRuntimeTypeInfo([], type$.JSArray_Directionality),
+ t1 = type$.Directionality,
+ directionalityElement = context.getElementForInheritedWidgetOfExactType$1$0(t1);
+ for (; directionalityElement != null;) {
+ result.push(t1._as(directionalityElement.get$widget()));
+ t2 = U._getAncestor(directionalityElement, 1);
+ if (t2 == null)
+ directionalityElement = null;
+ else {
+ t2 = t2._inheritedWidgets;
+ ancestor = t2 == null ? null : t2.$index(0, H.createRuntimeType(t1));
+ directionalityElement = ancestor;
+ }
+ }
+ return result;
+ },
+ $signature: 268
+ };
+ U._ReadingOrderDirectionalGroupData.prototype = {
+ get$rect: function(_) {
+ var t1, cur, t2, _this = this;
+ if (_this._rect == null)
+ for (t1 = _this.members, t1 = new H.MappedListIterable(t1, new U._ReadingOrderDirectionalGroupData_rect_closure(), H._arrayInstanceType(t1)._eval$1("MappedListIterable<1,Rect>")), t1 = new H.ListIterator(t1, t1.get$length(t1)); t1.moveNext$0();) {
+ cur = t1._current;
+ t2 = _this._rect;
+ if (t2 == null) {
+ _this._rect = cur;
+ t2 = cur;
+ }
+ _this._rect = t2.expandToInclude$1(cur);
+ }
+ t1 = _this._rect;
+ t1.toString;
+ return t1;
+ }
+ };
+ U._ReadingOrderDirectionalGroupData_rect_closure.prototype = {
+ call$1: function(data) {
+ return data.rect;
+ },
+ $signature: 269
+ };
+ U._ReadingOrderDirectionalGroupData_sortWithDirectionality_closure.prototype = {
+ call$2: function(a, b) {
+ switch (this.directionality) {
+ case C.TextDirection_1:
+ return J.compareTo$1$ns(a.get$rect(a).left, b.get$rect(b).left);
+ case C.TextDirection_0:
+ return J.compareTo$1$ns(b.get$rect(b).right, a.get$rect(a).right);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $signature: 270
+ };
+ U.ReadingOrderTraversalPolicy.prototype = {
+ _collectDirectionalityGroups$1: function(candidates) {
+ var t2, _i, candidate, currentDirection0, t3,
+ currentDirection = C.JSArray_methods.get$first(candidates).directionality,
+ t1 = type$.JSArray__ReadingOrderSortData,
+ currentGroup = H.setRuntimeTypeInfo([], t1),
+ result = H.setRuntimeTypeInfo([], type$.JSArray__ReadingOrderDirectionalGroupData);
+ for (t2 = candidates.length, _i = 0; _i < candidates.length; candidates.length === t2 || (0, H.throwConcurrentModificationError)(candidates), ++_i) {
+ candidate = candidates[_i];
+ currentDirection0 = candidate.directionality;
+ if (currentDirection0 == currentDirection) {
+ currentGroup.push(candidate);
+ continue;
+ }
+ result.push(new U._ReadingOrderDirectionalGroupData(currentGroup));
+ currentGroup = H.setRuntimeTypeInfo([candidate], t1);
+ currentDirection = currentDirection0;
+ }
+ if (currentGroup.length !== 0)
+ result.push(new U._ReadingOrderDirectionalGroupData(currentGroup));
+ for (t1 = result.length, _i = 0; _i < result.length; result.length === t1 || (0, H.throwConcurrentModificationError)(result), ++_i) {
+ t2 = result[_i].members;
+ if (t2.length === 1)
+ continue;
+ t3 = C.JSArray_methods.get$first(t2).directionality;
+ t3.toString;
+ U._ReadingOrderSortData_sortWithDirectionality(t2, t3);
+ }
+ return result;
+ },
+ _pickNext$1: function(candidates) {
+ var topmost, inBandOfTop, nearestCommonDirectionality, bandGroups;
+ S.mergeSort(candidates, new U.ReadingOrderTraversalPolicy__pickNext_closure(), type$._ReadingOrderSortData);
+ topmost = C.JSArray_methods.get$first(candidates);
+ inBandOfTop = new U.ReadingOrderTraversalPolicy__pickNext_inBand().call$2(topmost, candidates);
+ if (J.get$length$asx(inBandOfTop) <= 1)
+ return topmost;
+ nearestCommonDirectionality = U._ReadingOrderSortData_commonDirectionalityOf(inBandOfTop);
+ nearestCommonDirectionality.toString;
+ U._ReadingOrderSortData_sortWithDirectionality(inBandOfTop, nearestCommonDirectionality);
+ bandGroups = this._collectDirectionalityGroups$1(inBandOfTop);
+ if (bandGroups.length === 1)
+ return C.JSArray_methods.get$first(C.JSArray_methods.get$first(bandGroups).members);
+ U._ReadingOrderDirectionalGroupData_sortWithDirectionality(bandGroups, nearestCommonDirectionality);
+ return C.JSArray_methods.get$first(C.JSArray_methods.get$first(bandGroups).members);
+ },
+ sortDescendants$2: function(descendants, currentNode) {
+ var t1, t2, t3, t4, _i, node, t5, t6, ancestor, sortedList, current, next;
+ if (descendants.length <= 1)
+ return descendants;
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray__ReadingOrderSortData);
+ for (t2 = descendants.length, t3 = type$.nullable_Directionality, t4 = type$.Directionality, _i = 0; _i < descendants.length; descendants.length === t2 || (0, H.throwConcurrentModificationError)(descendants), ++_i) {
+ node = descendants[_i];
+ t5 = node.get$rect(node);
+ t6 = node._context._inheritedWidgets;
+ ancestor = t6 == null ? null : t6.$index(0, H.createRuntimeType(t4));
+ t6 = t3._as(ancestor == null ? null : ancestor.get$widget());
+ t1.push(new U._ReadingOrderSortData(t6 == null ? null : t6.textDirection, t5, node));
+ }
+ sortedList = H.setRuntimeTypeInfo([], type$.JSArray_FocusNode);
+ current = this._pickNext$1(t1);
+ sortedList.push(current.node);
+ C.JSArray_methods.remove$1(t1, current);
+ for (; t1.length !== 0;) {
+ next = this._pickNext$1(t1);
+ sortedList.push(next.node);
+ C.JSArray_methods.remove$1(t1, next);
+ }
+ return sortedList;
+ }
+ };
+ U.ReadingOrderTraversalPolicy__pickNext_closure.prototype = {
+ call$2: function(a, b) {
+ return J.compareTo$1$ns(a.rect.top, b.rect.top);
+ },
+ $signature: 128
+ };
+ U.ReadingOrderTraversalPolicy__pickNext_inBand.prototype = {
+ call$2: function(current, candidates) {
+ var t1 = current.rect,
+ t2 = H._arrayInstanceType(candidates)._eval$1("WhereIterable<1>");
+ return P.List_List$of(new H.WhereIterable(candidates, new U.ReadingOrderTraversalPolicy__pickNext_inBand_closure(new P.Rect(-1 / 0, t1.top, 1 / 0, t1.bottom)), t2), true, t2._eval$1("Iterable.E"));
+ },
+ $signature: 271
+ };
+ U.ReadingOrderTraversalPolicy__pickNext_inBand_closure.prototype = {
+ call$1: function(item) {
+ var t1 = item.rect.intersect$1(this.band);
+ return !t1.get$isEmpty(t1);
+ },
+ $signature: 272
+ };
+ U.FocusTraversalGroup.prototype = {
+ createState$0: function() {
+ return new U._FocusTraversalGroupState(C._StateLifecycle_0);
+ }
+ };
+ U._FocusTraversalGroupState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this.focusNode = O.FocusNode$(false, "FocusTraversalGroup", true, null, true);
+ },
+ dispose$0: function(_) {
+ var t1 = this.focusNode;
+ if (t1 != null)
+ t1.dispose$0(0);
+ this.super$State$dispose(0);
+ },
+ build$1: function(_, context) {
+ var _null = null,
+ t1 = this._widget,
+ t2 = t1.policy,
+ t3 = this.focusNode;
+ t3.toString;
+ return new U._FocusTraversalGroupMarker(t2, t3, L.Focus$(false, false, t1.child, _null, true, t3, false, _null, _null, _null, true), _null);
+ }
+ };
+ U._FocusTraversalGroupMarker.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return false;
+ }
+ };
+ U.RequestFocusAction.prototype = {
+ invoke$1: function(intent) {
+ U._focusAndEnsureVisible(intent.get$focusNode(intent), C.ScrollPositionAlignmentPolicy_0);
+ }
+ };
+ U.NextFocusIntent.prototype = {};
+ U.NextFocusAction.prototype = {
+ invoke$1: function(intent) {
+ var t1 = $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._primaryFocus;
+ t1._context.dependOnInheritedWidgetOfExactType$1$0(type$._FocusTraversalGroupMarker).policy._moveFocus$2$forward(t1, true);
+ }
+ };
+ U.PreviousFocusIntent.prototype = {};
+ U.PreviousFocusAction.prototype = {
+ invoke$1: function(intent) {
+ var t1 = $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._primaryFocus;
+ t1._context.dependOnInheritedWidgetOfExactType$1$0(type$._FocusTraversalGroupMarker).policy._moveFocus$2$forward(t1, false);
+ }
+ };
+ U.DirectionalFocusAction.prototype = {
+ invoke$1: function(intent) {
+ var t1 = $.WidgetsBinding__instance;
+ if (!(t1.WidgetsBinding__buildOwner.focusManager._primaryFocus._context._widget instanceof D.EditableText)) {
+ t1 = t1.WidgetsBinding__buildOwner.focusManager._primaryFocus;
+ t1._context.dependOnInheritedWidgetOfExactType$1$0(type$._FocusTraversalGroupMarker).policy.inDirection$2(t1, intent.direction);
+ }
+ }
+ };
+ U._FocusTraversalPolicy_Object_Diagnosticable.prototype = {};
+ U._ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin.prototype = {
+ changedScope$2$node$oldScope: function(node, oldScope) {
+ var t1;
+ this.super$FocusTraversalPolicy$changedScope(node, oldScope);
+ t1 = this.DirectionalFocusTraversalPolicyMixin__policyData.$index(0, oldScope);
+ if (t1 != null) {
+ t1 = t1.history;
+ if (!!t1.fixed$length)
+ H.throwExpression(P.UnsupportedError$("removeWhere"));
+ C.JSArray_methods._removeWhere$2(t1, new U._ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin_changedScope_closure(node), true);
+ }
+ }
+ };
+ U.__ReadingOrderDirectionalGroupData_Object_Diagnosticable.prototype = {};
+ U.__ReadingOrderSortData_Object_Diagnosticable.prototype = {};
+ N.UniqueKey.prototype = {
+ toString$0: function(_) {
+ return "[#" + Y.shortHash(this) + "]";
+ }
+ };
+ N.GlobalKey.prototype = {
+ get$currentState: function() {
+ var state,
+ element = $.GlobalKey__registry.$index(0, this);
+ if (element instanceof N.StatefulElement) {
+ state = element.state;
+ if (H._instanceType(this)._precomputed1._is(state))
+ return state;
+ }
+ return null;
+ }
+ };
+ N.LabeledGlobalKey.prototype = {
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this._debugLabel,
+ label = t1 != null ? " " + t1 : "";
+ if (H.getRuntimeType(_this) === C.Type_LabeledGlobalKey_6TW)
+ return "[GlobalKey#" + Y.shortHash(_this) + label + "]";
+ return "[" + ("#" + Y.shortHash(_this)) + label + "]";
+ }
+ };
+ N.GlobalObjectKey.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return this.$ti._is(other) && other.value == this.value;
+ },
+ get$hashCode: function(_) {
+ return H.objectHashCode(this.value);
+ },
+ toString$0: function(_) {
+ var _s15_ = "GlobalObjectKey";
+ return "[" + (C.JSString_methods.endsWith$1(_s15_, ">") ? C.JSString_methods.substring$2(_s15_, 0, -8) : _s15_) + " " + ("#" + Y.shortHash(this.value)) + "]";
+ }
+ };
+ N.Widget.prototype = {
+ toStringShort$0: function() {
+ var t1 = this.key;
+ return t1 == null ? "Widget" : "Widget-" + t1.toString$0(0);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return this.super$Object$$eq(0, other);
+ },
+ get$hashCode: function(_) {
+ return P.Object.prototype.get$hashCode.call(this, this);
+ }
+ };
+ N.StatelessWidget.prototype = {
+ createElement$0: function(_) {
+ var t1 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t1;
+ return new N.StatelessElement(t1, this, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2));
+ }
+ };
+ N.StatefulWidget.prototype = {
+ createElement$0: function(_) {
+ return N.StatefulElement$(this);
+ }
+ };
+ N._StateLifecycle.prototype = {
+ toString$0: function(_) {
+ return this._framework$_name;
+ }
+ };
+ N.State.prototype = {
+ initState$0: function() {
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ },
+ setState$1: function(fn) {
+ fn.call$0();
+ this._framework$_element.markNeedsBuild$0();
+ },
+ deactivate$0: function() {
+ },
+ dispose$0: function(_) {
+ },
+ didChangeDependencies$0: function() {
+ }
+ };
+ N.ProxyWidget.prototype = {};
+ N.ParentDataWidget.prototype = {
+ createElement$0: function(_) {
+ var t1 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t1;
+ return new N.ParentDataElement(t1, this, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2), H._instanceType(this)._eval$1("ParentDataElement"));
+ }
+ };
+ N.InheritedWidget.prototype = {
+ createElement$0: function(_) {
+ return N.InheritedElement$(this);
+ }
+ };
+ N.RenderObjectWidget.prototype = {
+ updateRenderObject$2: function(context, renderObject) {
+ },
+ didUnmountRenderObject$1: function(renderObject) {
+ }
+ };
+ N.LeafRenderObjectWidget.prototype = {
+ createElement$0: function(_) {
+ var t1 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t1;
+ return new N.LeafRenderObjectElement(t1, this, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2));
+ }
+ };
+ N.SingleChildRenderObjectWidget.prototype = {
+ createElement$0: function(_) {
+ return N.SingleChildRenderObjectElement$(this);
+ }
+ };
+ N.MultiChildRenderObjectWidget.prototype = {
+ createElement$0: function(_) {
+ return N.MultiChildRenderObjectElement$(this);
+ }
+ };
+ N._ElementLifecycle.prototype = {
+ toString$0: function(_) {
+ return this._framework$_name;
+ }
+ };
+ N._InactiveElements.prototype = {
+ _unmount$1: function(element) {
+ element.visitChildren$1(new N._InactiveElements__unmount_closure(this, element));
+ element.unmount$0();
+ },
+ _unmountAll$0: function() {
+ var elements, t1, elements0, _this = this;
+ _this._locked = true;
+ t1 = _this._framework$_elements;
+ elements0 = P.List_List$of(t1, true, H._instanceType(t1)._eval$1("SetMixin.E"));
+ C.JSArray_methods.sort$1(elements0, N.framework_Element__sort$closure());
+ elements = elements0;
+ t1.clear$0(0);
+ try {
+ t1 = elements;
+ new H.ReversedListIterable(t1, H.instanceType(t1)._eval$1("ReversedListIterable<1>")).forEach$1(0, _this.get$_unmount());
+ } finally {
+ _this._locked = false;
+ }
+ },
+ remove$1: function(_, element) {
+ this._framework$_elements.remove$1(0, element);
+ }
+ };
+ N._InactiveElements__unmount_closure.prototype = {
+ call$1: function(child) {
+ this.$this._unmount$1(child);
+ },
+ $signature: 9
+ };
+ N.BuildOwner.prototype = {
+ scheduleBuildFor$1: function(element) {
+ var _this = this;
+ if (element._inDirtyList) {
+ _this._dirtyElementsNeedsResorting = true;
+ return;
+ }
+ if (!_this._scheduledFlushDirtyElements && _this.onBuildScheduled != null) {
+ _this._scheduledFlushDirtyElements = true;
+ _this.onBuildScheduled.call$0();
+ }
+ _this._dirtyElements.push(element);
+ element._inDirtyList = true;
+ },
+ lockState$1: function(callback) {
+ try {
+ callback.call$0();
+ } finally {
+ }
+ },
+ buildScope$2: function(context, callback) {
+ var e, stack, element, t2, exception, t3, t4, _i, _this = this, _box_0 = {},
+ t1 = callback == null;
+ if (t1 && _this._dirtyElements.length === 0)
+ return;
+ P.Timeline_startSync("Build", C.Map_9aZ6I, null);
+ try {
+ _this._scheduledFlushDirtyElements = true;
+ if (!t1) {
+ _box_0.debugPreviousBuildTarget = null;
+ _this._dirtyElementsNeedsResorting = false;
+ try {
+ callback.call$0();
+ } finally {
+ }
+ }
+ t1 = _this._dirtyElements;
+ C.JSArray_methods.sort$1(t1, N.framework_Element__sort$closure());
+ _this._dirtyElementsNeedsResorting = false;
+ _box_0.dirtyCount = t1.length;
+ _box_0.index = 0;
+ for (t2 = 0; t2 < _box_0.dirtyCount;) {
+ try {
+ t1[t2].rebuild$0();
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ stack = H.getTraceFromException(exception);
+ t2 = U.ErrorDescription$("while rebuilding dirty elements");
+ t3 = $.$get$FlutterError_onError();
+ if (t3 != null)
+ t3.call$1(new U.FlutterErrorDetails(e, stack, "widgets library", t2, new N.BuildOwner_buildScope_closure(_box_0, _this), false));
+ }
+ t2 = ++_box_0.index;
+ t3 = _box_0.dirtyCount;
+ t4 = t1.length;
+ if (t3 >= t4) {
+ t3 = _this._dirtyElementsNeedsResorting;
+ t3.toString;
+ } else
+ t3 = true;
+ if (t3) {
+ if (!!t1.immutable$list)
+ H.throwExpression(P.UnsupportedError$("sort"));
+ t2 = t4 - 1;
+ if (t2 - 0 <= 32)
+ H.Sort__insertionSort(t1, 0, t2, N.framework_Element__sort$closure());
+ else
+ H.Sort__dualPivotQuicksort(t1, 0, t2, N.framework_Element__sort$closure());
+ t2 = _this._dirtyElementsNeedsResorting = false;
+ _box_0.dirtyCount = t1.length;
+ while (true) {
+ t3 = _box_0.index;
+ if (!(t3 > 0 ? t1[t3 - 1]._dirty : t2))
+ break;
+ _box_0.index = t3 - 1;
+ }
+ t2 = t3;
+ }
+ }
+ } finally {
+ for (t1 = _this._dirtyElements, t2 = t1.length, _i = 0; _i < t2; ++_i) {
+ element = t1[_i];
+ element._inDirtyList = false;
+ }
+ C.JSArray_methods.set$length(t1, 0);
+ _this._scheduledFlushDirtyElements = false;
+ _this._dirtyElementsNeedsResorting = null;
+ P.Timeline_finishSync();
+ }
+ },
+ buildScope$1: function(context) {
+ return this.buildScope$2(context, null);
+ },
+ finalizeTree$0: function() {
+ var e, stack, exception;
+ P.Timeline_startSync("Finalize tree", C.Map_9aZ6I, null);
+ try {
+ this.lockState$1(new N.BuildOwner_finalizeTree_closure(this));
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ stack = H.getTraceFromException(exception);
+ N._debugReportException(U.ErrorSummary$("while finalizing the widget tree"), e, stack, null);
+ } finally {
+ P.Timeline_finishSync();
+ }
+ }
+ };
+ N.BuildOwner_buildScope_closure.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1, t2, t3;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._box_0;
+ t2 = t1.index;
+ t3 = $async$self.$this._dirtyElements;
+ $async$goto = t2 < t3.length ? 2 : 4;
+ break;
+ case 2:
+ // then
+ $async$goto = 5;
+ return K.DiagnosticsDebugCreator$(new N.DebugCreator(t3[t2]));
+ case 5:
+ // after yield
+ t2 = t1.index;
+ t3 = t3[t2];
+ $async$goto = 6;
+ return Y.DiagnosticsProperty$(string$.The_el + t2 + " of " + t1.dirtyCount, t3, true, C.C__NoDefaultValue, null, false, null, null, C.DiagnosticLevel_3, null, false, true, true, C.DiagnosticsTreeStyle_9, null, type$.Element_2);
+ case 6:
+ // after yield
+ // goto join
+ $async$goto = 3;
+ break;
+ case 4:
+ // else
+ $async$goto = 7;
+ return U.ErrorHint$(string$.The_el + t2 + " of " + t1.dirtyCount + ", but _dirtyElements only had " + t3.length + " entries. This suggests some confusion in the framework internals.");
+ case 7:
+ // after yield
+ case 3:
+ // join
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ N.BuildOwner_finalizeTree_closure.prototype = {
+ call$0: function() {
+ this.$this._inactiveElements._unmountAll$0();
+ },
+ $signature: 0
+ };
+ N.Element.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return this === other;
+ },
+ get$hashCode: function(_) {
+ return this._cachedHash;
+ },
+ get$_depth: function() {
+ return this.__Element__depth_isSet ? this.__Element__depth : H.throwExpression(H.LateError$fieldNI("_depth"));
+ },
+ get$widget: function() {
+ return this._widget;
+ },
+ get$renderObject: function() {
+ var t1 = {};
+ t1.result = null;
+ new N.Element_renderObject_visit(t1).call$1(this);
+ return t1.result;
+ },
+ describeElement$1: function($name) {
+ var _null = null;
+ return Y.DiagnosticsProperty$($name, this, true, C.C__NoDefaultValue, _null, false, _null, _null, C.DiagnosticLevel_3, _null, false, true, true, C.DiagnosticsTreeStyle_9, _null, type$.Element_2);
+ },
+ visitChildren$1: function(visitor) {
+ },
+ updateChild$3: function(child, newWidget, newSlot) {
+ var t1, newChild, _this = this;
+ if (newWidget == null) {
+ if (child != null)
+ _this.deactivateChild$1(child);
+ return null;
+ }
+ if (child != null) {
+ t1 = J.$eq$(child.get$widget(), newWidget);
+ if (t1) {
+ if (!J.$eq$(child._slot, newSlot))
+ _this.updateSlotForChild$2(child, newSlot);
+ t1 = child;
+ } else {
+ t1 = N.Widget_canUpdate(child.get$widget(), newWidget);
+ if (t1) {
+ if (!J.$eq$(child._slot, newSlot))
+ _this.updateSlotForChild$2(child, newSlot);
+ child.update$1(0, newWidget);
+ t1 = child;
+ } else {
+ _this.deactivateChild$1(child);
+ newChild = _this.inflateWidget$2(newWidget, newSlot);
+ t1 = newChild;
+ }
+ }
+ } else {
+ newChild = _this.inflateWidget$2(newWidget, newSlot);
+ t1 = newChild;
+ }
+ return t1;
+ },
+ mount$2: function($parent, newSlot) {
+ var t1, t2, key, _this = this;
+ _this._framework$_parent = $parent;
+ _this._slot = newSlot;
+ _this._lifecycleState = C._ElementLifecycle_1;
+ t1 = $parent != null;
+ t2 = t1 ? $parent.get$_depth() + 1 : 1;
+ _this.__Element__depth_isSet = true;
+ _this.__Element__depth = t2;
+ if (t1)
+ _this._owner = $parent._owner;
+ key = _this.get$widget().key;
+ if (key instanceof N.GlobalKey)
+ $.GlobalKey__registry.$indexSet(0, key, _this);
+ _this._updateInheritance$0();
+ },
+ update$1: function(_, newWidget) {
+ this._widget = newWidget;
+ },
+ updateSlotForChild$2: function(child, newSlot) {
+ new N.Element_updateSlotForChild_visit(newSlot).call$1(child);
+ },
+ _updateSlot$1: function(newSlot) {
+ this._slot = newSlot;
+ },
+ _updateDepth$1: function(parentDepth) {
+ var _this = this,
+ expectedDepth = parentDepth + 1;
+ if (_this.get$_depth() < expectedDepth) {
+ _this.__Element__depth_isSet = true;
+ _this.__Element__depth = expectedDepth;
+ _this.visitChildren$1(new N.Element__updateDepth_closure(expectedDepth));
+ }
+ },
+ detachRenderObject$0: function() {
+ this.visitChildren$1(new N.Element_detachRenderObject_closure());
+ this._slot = null;
+ },
+ attachRenderObject$1: function(newSlot) {
+ this.visitChildren$1(new N.Element_attachRenderObject_closure(newSlot));
+ this._slot = newSlot;
+ },
+ _retakeInactiveElement$2: function(key, newWidget) {
+ var $parent,
+ element = $.GlobalKey__registry.$index(0, key);
+ if (element == null)
+ return null;
+ if (!N.Widget_canUpdate(element.get$widget(), newWidget))
+ return null;
+ $parent = element._framework$_parent;
+ if ($parent != null) {
+ $parent.forgetChild$1(element);
+ $parent.deactivateChild$1(element);
+ }
+ this._owner._inactiveElements._framework$_elements.remove$1(0, element);
+ return element;
+ },
+ inflateWidget$2: function(newWidget, newSlot) {
+ var newChild, updatedChild, _this = this,
+ key = newWidget.key;
+ if (key instanceof N.GlobalKey) {
+ newChild = _this._retakeInactiveElement$2(key, newWidget);
+ if (newChild != null) {
+ newChild._framework$_parent = _this;
+ newChild._updateDepth$1(_this.get$_depth());
+ newChild.activate$0();
+ newChild.visitChildren$1(N.framework_Element__activateRecursively$closure());
+ newChild.attachRenderObject$1(newSlot);
+ updatedChild = _this.updateChild$3(newChild, newWidget, newSlot);
+ updatedChild.toString;
+ return updatedChild;
+ }
+ }
+ newChild = newWidget.createElement$0(0);
+ newChild.mount$2(_this, newSlot);
+ return newChild;
+ },
+ deactivateChild$1: function(child) {
+ var t1;
+ child._framework$_parent = null;
+ child.detachRenderObject$0();
+ t1 = this._owner._inactiveElements;
+ if (child._lifecycleState === C._ElementLifecycle_1) {
+ child.deactivate$0();
+ child.visitChildren$1(N.framework__InactiveElements__deactivateRecursively$closure());
+ }
+ t1._framework$_elements.add$1(0, child);
+ },
+ forgetChild$1: function(child) {
+ },
+ activate$0: function() {
+ var _this = this,
+ t1 = _this._dependencies,
+ t2 = t1 == null,
+ hadDependencies = !t2 && t1._collection$_length !== 0 || _this._hadUnsatisfiedDependencies;
+ _this._lifecycleState = C._ElementLifecycle_1;
+ if (!t2)
+ t1.clear$0(0);
+ _this._hadUnsatisfiedDependencies = false;
+ _this._updateInheritance$0();
+ if (_this._dirty)
+ _this._owner.scheduleBuildFor$1(_this);
+ if (hadDependencies)
+ _this.didChangeDependencies$0();
+ },
+ deactivate$0: function() {
+ var _this = this,
+ t1 = _this._dependencies;
+ if (t1 != null && t1._collection$_length !== 0)
+ for (t1 = new P._HashSetIterator(t1, t1._computeElements$0()); t1.moveNext$0();)
+ t1._collection$_current._dependents.remove$1(0, _this);
+ _this._inheritedWidgets = null;
+ _this._lifecycleState = C._ElementLifecycle_2;
+ },
+ unmount$0: function() {
+ var key = this._widget.key;
+ if (key instanceof N.GlobalKey)
+ if (J.$eq$($.GlobalKey__registry.$index(0, key), this))
+ $.GlobalKey__registry.remove$1(0, key);
+ this._lifecycleState = C._ElementLifecycle_3;
+ },
+ get$size: function(_) {
+ var t1,
+ renderObject = this.get$renderObject();
+ if (renderObject instanceof S.RenderBox) {
+ t1 = renderObject._size;
+ t1.toString;
+ return t1;
+ }
+ return null;
+ },
+ dependOnInheritedElement$2$aspect: function(ancestor, aspect) {
+ var t1 = this._dependencies;
+ (t1 == null ? this._dependencies = P.HashSet_HashSet(type$.InheritedElement) : t1).add$1(0, ancestor);
+ ancestor._dependents.$indexSet(0, this, null);
+ return ancestor.get$widget();
+ },
+ dependOnInheritedWidgetOfExactType$1$0: function($T) {
+ var t1 = this._inheritedWidgets,
+ ancestor = t1 == null ? null : t1.$index(0, H.createRuntimeType($T));
+ if (ancestor != null)
+ return $T._as(this.dependOnInheritedElement$2$aspect(ancestor, null));
+ this._hadUnsatisfiedDependencies = true;
+ return null;
+ },
+ getElementForInheritedWidgetOfExactType$1$0: function($T) {
+ var t1 = this._inheritedWidgets;
+ return t1 == null ? null : t1.$index(0, H.createRuntimeType($T));
+ },
+ _updateInheritance$0: function() {
+ var t1 = this._framework$_parent;
+ this._inheritedWidgets = t1 == null ? null : t1._inheritedWidgets;
+ },
+ findAncestorWidgetOfExactType$1$0: function($T) {
+ var t1,
+ ancestor = this._framework$_parent;
+ while (true) {
+ t1 = ancestor == null;
+ if (!(!t1 && J.get$runtimeType$(ancestor.get$widget()) !== H.createRuntimeType($T)))
+ break;
+ ancestor = ancestor._framework$_parent;
+ }
+ t1 = t1 ? null : ancestor.get$widget();
+ return $T._eval$1("0?")._as(t1);
+ },
+ findAncestorStateOfType$1$0: function($T) {
+ var t1,
+ ancestor = this._framework$_parent;
+ for (; t1 = ancestor == null, !t1;) {
+ if (ancestor instanceof N.StatefulElement && $T._is(ancestor.state))
+ break;
+ ancestor = ancestor._framework$_parent;
+ }
+ type$.nullable_StatefulElement._as(ancestor);
+ t1 = t1 ? null : ancestor.state;
+ return $T._eval$1("0?")._as(t1);
+ },
+ findRootAncestorStateOfType$1$0: function($T) {
+ var statefulAncestor, t1,
+ ancestor = this._framework$_parent;
+ for (statefulAncestor = null; ancestor != null;) {
+ if (ancestor instanceof N.StatefulElement && $T._is(ancestor.state))
+ statefulAncestor = ancestor;
+ ancestor = ancestor._framework$_parent;
+ }
+ t1 = statefulAncestor == null ? null : statefulAncestor.state;
+ return $T._eval$1("0?")._as(t1);
+ },
+ findAncestorRenderObjectOfType$1$0: function($T) {
+ var ancestor = this._framework$_parent;
+ for (; ancestor != null;) {
+ if (ancestor instanceof N.RenderObjectElement && $T._is(ancestor.get$renderObject()))
+ return $T._as(ancestor.get$renderObject());
+ ancestor = ancestor._framework$_parent;
+ }
+ return null;
+ },
+ visitAncestorElements$1: function(visitor) {
+ var ancestor = this._framework$_parent;
+ while (true) {
+ if (!(ancestor != null && visitor.call$1(ancestor)))
+ break;
+ ancestor = ancestor._framework$_parent;
+ }
+ },
+ didChangeDependencies$0: function() {
+ this.markNeedsBuild$0();
+ },
+ debugGetCreatorChain$1: function(limit) {
+ var chain = H.setRuntimeTypeInfo([], type$.JSArray_String),
+ node = this;
+ while (true) {
+ if (!(chain.length < limit && node != null))
+ break;
+ chain.push(node.get$widget().toStringShort$0());
+ node = node._framework$_parent;
+ }
+ if (node != null)
+ chain.push("\u22ef");
+ return C.JSArray_methods.join$1(chain, " \u2190 ");
+ },
+ toStringShort$0: function() {
+ return this.get$widget().toStringShort$0();
+ },
+ toDiagnosticsNode$2$name$style: function($name, style) {
+ return N._ElementDiagnosticableTreeNode$($name, false, style, this);
+ },
+ toDiagnosticsNode$0: function() {
+ return this.toDiagnosticsNode$2$name$style(null, null);
+ },
+ debugDescribeChildren$0: function() {
+ var children = H.setRuntimeTypeInfo([], type$.JSArray_DiagnosticsNode);
+ this.visitChildren$1(new N.Element_debugDescribeChildren_closure(children));
+ return children;
+ },
+ markNeedsBuild$0: function() {
+ var _this = this;
+ if (_this._lifecycleState !== C._ElementLifecycle_1)
+ return;
+ if (_this._dirty)
+ return;
+ _this._dirty = true;
+ _this._owner.scheduleBuildFor$1(_this);
+ },
+ rebuild$0: function() {
+ if (this._lifecycleState !== C._ElementLifecycle_1 || !this._dirty)
+ return;
+ this.performRebuild$0();
+ },
+ $isBuildContext: 1
+ };
+ N.Element_renderObject_visit.prototype = {
+ call$1: function(element) {
+ if (element instanceof N.RenderObjectElement)
+ this._box_0.result = element.get$renderObject();
+ else
+ element.visitChildren$1(this);
+ },
+ $signature: 9
+ };
+ N.Element_updateSlotForChild_visit.prototype = {
+ call$1: function(element) {
+ element._updateSlot$1(this.newSlot);
+ if (!(element instanceof N.RenderObjectElement))
+ element.visitChildren$1(this);
+ },
+ $signature: 9
+ };
+ N.Element__updateDepth_closure.prototype = {
+ call$1: function(child) {
+ child._updateDepth$1(this.expectedDepth);
+ },
+ $signature: 9
+ };
+ N.Element_detachRenderObject_closure.prototype = {
+ call$1: function(child) {
+ child.detachRenderObject$0();
+ },
+ $signature: 9
+ };
+ N.Element_attachRenderObject_closure.prototype = {
+ call$1: function(child) {
+ child.attachRenderObject$1(this.newSlot);
+ },
+ $signature: 9
+ };
+ N.Element_debugDescribeChildren_closure.prototype = {
+ call$1: function(child) {
+ this.children.push(child.toDiagnosticsNode$0());
+ },
+ $signature: 9
+ };
+ N._ElementDiagnosticableTreeNode.prototype = {};
+ N.ErrorWidget.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = this.message,
+ t2 = new V.RenderErrorBox(t1);
+ t2.get$isRepaintBoundary();
+ t2.get$alwaysNeedsCompositing();
+ t2.__RenderObject__needsCompositing_isSet = true;
+ t2.__RenderObject__needsCompositing = false;
+ t2.RenderErrorBox$1(t1);
+ return t2;
+ }
+ };
+ N.ComponentElement.prototype = {
+ mount$2: function($parent, newSlot) {
+ this.super$Element$mount($parent, newSlot);
+ this._firstBuild$0();
+ },
+ _firstBuild$0: function() {
+ this.rebuild$0();
+ },
+ performRebuild$0: function() {
+ var built, e, stack, e0, stack0, exception, built0, _this = this,
+ t1 = $.debugProfileBuildsEnabled;
+ if (t1)
+ P.Timeline_startSync(J.get$runtimeType$(_this.get$widget()).toString$0(0), C.Map_9aZ6I, null);
+ built = null;
+ try {
+ built = _this.build$0(0);
+ _this.get$widget();
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ stack = H.getTraceFromException(exception);
+ built0 = N.ErrorWidget__defaultErrorWidgetBuilder(N._debugReportException(U.ErrorDescription$("building " + _this.toString$0(0)), e, stack, new N.ComponentElement_performRebuild_closure(_this)));
+ built = built0;
+ } finally {
+ _this._dirty = false;
+ }
+ try {
+ _this._framework$_child = _this.updateChild$3(_this._framework$_child, built, _this._slot);
+ } catch (exception) {
+ e0 = H.unwrapException(exception);
+ stack0 = H.getTraceFromException(exception);
+ built0 = N.ErrorWidget__defaultErrorWidgetBuilder(N._debugReportException(U.ErrorDescription$("building " + _this.toString$0(0)), e0, stack0, new N.ComponentElement_performRebuild_closure0(_this)));
+ built = built0;
+ _this._framework$_child = _this.updateChild$3(null, built, _this._slot);
+ }
+ t1 = $.debugProfileBuildsEnabled;
+ if (t1)
+ P.Timeline_finishSync();
+ },
+ visitChildren$1: function(visitor) {
+ var t1 = this._framework$_child;
+ if (t1 != null)
+ visitor.call$1(t1);
+ },
+ forgetChild$1: function(child) {
+ this._framework$_child = null;
+ this.super$Element$forgetChild(child);
+ }
+ };
+ N.ComponentElement_performRebuild_closure.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return K.DiagnosticsDebugCreator$(new N.DebugCreator($async$self.$this));
+ case 2:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ N.ComponentElement_performRebuild_closure0.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return K.DiagnosticsDebugCreator$(new N.DebugCreator($async$self.$this));
+ case 2:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ N.StatelessElement.prototype = {
+ get$widget: function() {
+ return type$.StatelessWidget._as(N.Element.prototype.get$widget.call(this));
+ },
+ build$0: function(_) {
+ return type$.StatelessWidget._as(N.Element.prototype.get$widget.call(this)).build$1(0, this);
+ },
+ update$1: function(_, newWidget) {
+ this.super$Element$update(0, newWidget);
+ this._dirty = true;
+ this.rebuild$0();
+ }
+ };
+ N.StatefulElement.prototype = {
+ build$0: function(_) {
+ return this.state.build$1(0, this);
+ },
+ _firstBuild$0: function() {
+ var debugCheckForReturnedFuture, _this = this;
+ try {
+ _this._debugAllowIgnoredCallsToMarkNeedsBuild = true;
+ debugCheckForReturnedFuture = _this.state.initState$0();
+ } finally {
+ _this._debugAllowIgnoredCallsToMarkNeedsBuild = false;
+ }
+ _this.state.didChangeDependencies$0();
+ _this.super$ComponentElement$_firstBuild();
+ },
+ performRebuild$0: function() {
+ var _this = this;
+ if (_this._didChangeDependencies) {
+ _this.state.didChangeDependencies$0();
+ _this._didChangeDependencies = false;
+ }
+ _this.super$ComponentElement$performRebuild();
+ },
+ update$1: function(_, newWidget) {
+ var oldWidget, debugCheckForReturnedFuture, t1, t2, _this = this;
+ _this.super$Element$update(0, newWidget);
+ t1 = _this.state;
+ t2 = t1._widget;
+ t2.toString;
+ oldWidget = t2;
+ _this._dirty = true;
+ t1._widget = type$.StatefulWidget._as(_this._widget);
+ try {
+ _this._debugAllowIgnoredCallsToMarkNeedsBuild = true;
+ debugCheckForReturnedFuture = t1.didUpdateWidget$1(oldWidget);
+ } finally {
+ _this._debugAllowIgnoredCallsToMarkNeedsBuild = false;
+ }
+ _this.rebuild$0();
+ },
+ activate$0: function() {
+ this.super$Element$activate();
+ this.markNeedsBuild$0();
+ },
+ deactivate$0: function() {
+ this.state.deactivate$0();
+ this.super$Element$deactivate();
+ },
+ unmount$0: function() {
+ this.super$Element$unmount();
+ var t1 = this.state;
+ t1.dispose$0(0);
+ t1._framework$_element = null;
+ },
+ dependOnInheritedElement$2$aspect: function(ancestor, aspect) {
+ return this.super$Element$dependOnInheritedElement(ancestor, aspect);
+ },
+ didChangeDependencies$0: function() {
+ this.super$Element$didChangeDependencies();
+ this._didChangeDependencies = true;
+ },
+ toDiagnosticsNode$2$name$style: function($name, style) {
+ return N._ElementDiagnosticableTreeNode$($name, true, style, this);
+ },
+ toDiagnosticsNode$0: function() {
+ return this.toDiagnosticsNode$2$name$style(null, null);
+ }
+ };
+ N.ProxyElement.prototype = {
+ get$widget: function() {
+ return type$.ProxyWidget._as(N.Element.prototype.get$widget.call(this));
+ },
+ build$0: function(_) {
+ return this.get$widget().child;
+ },
+ update$1: function(_, newWidget) {
+ var _this = this,
+ oldWidget = _this.get$widget();
+ _this.super$Element$update(0, newWidget);
+ _this.updated$1(oldWidget);
+ _this._dirty = true;
+ _this.rebuild$0();
+ },
+ updated$1: function(oldWidget) {
+ this.notifyClients$1(oldWidget);
+ }
+ };
+ N.ParentDataElement.prototype = {
+ get$widget: function() {
+ return this.$ti._eval$1("ParentDataWidget<1>")._as(N.ProxyElement.prototype.get$widget.call(this));
+ },
+ _applyParentData$1: function(widget) {
+ this.visitChildren$1(new N.ParentDataElement__applyParentData_applyParentDataToChild(widget));
+ },
+ notifyClients$1: function(oldWidget) {
+ this._applyParentData$1(this.$ti._eval$1("ParentDataWidget<1>")._as(N.ProxyElement.prototype.get$widget.call(this)));
+ }
+ };
+ N.ParentDataElement__applyParentData_applyParentDataToChild.prototype = {
+ call$1: function(child) {
+ if (child instanceof N.RenderObjectElement)
+ this.widget.applyParentData$1(child.get$renderObject());
+ else
+ child.visitChildren$1(this);
+ },
+ $signature: 9
+ };
+ N.InheritedElement.prototype = {
+ get$widget: function() {
+ return type$.InheritedWidget._as(N.ProxyElement.prototype.get$widget.call(this));
+ },
+ _updateInheritance$0: function() {
+ var t2, _this = this,
+ t1 = _this._framework$_parent,
+ incomingWidgets = t1 == null ? null : t1._inheritedWidgets;
+ t1 = type$.Type;
+ t2 = type$.InheritedElement;
+ t1 = incomingWidgets != null ? _this._inheritedWidgets = P.HashMap_HashMap$from(incomingWidgets, t1, t2) : _this._inheritedWidgets = P.HashMap_HashMap(t1, t2);
+ t1.$indexSet(0, J.get$runtimeType$(_this.get$widget()), _this);
+ },
+ updated$1: function(oldWidget) {
+ if (this.get$widget().updateShouldNotify$1(oldWidget))
+ this.super$ProxyElement$updated(oldWidget);
+ },
+ notifyClients$1: function(oldWidget) {
+ var t1;
+ for (t1 = this._dependents, t1 = new P._HashMapKeyIterable(t1, H._instanceType(t1)._eval$1("_HashMapKeyIterable<1>")), t1 = t1.get$iterator(t1); t1.moveNext$0();)
+ t1._collection$_current.didChangeDependencies$0();
+ }
+ };
+ N.RenderObjectElement.prototype = {
+ get$widget: function() {
+ return type$.RenderObjectWidget._as(N.Element.prototype.get$widget.call(this));
+ },
+ get$renderObject: function() {
+ return this.__RenderObjectElement__renderObject_isSet ? this.__RenderObjectElement__renderObject : H.throwExpression(H.LateError$fieldNI("_renderObject"));
+ },
+ get$_renderObject: function() {
+ return this.__RenderObjectElement__renderObject_isSet ? this.__RenderObjectElement__renderObject : H.throwExpression(H.LateError$fieldNI("_renderObject"));
+ },
+ _findAncestorRenderObjectElement$0: function() {
+ var ancestor = this._framework$_parent;
+ while (true) {
+ if (!(ancestor != null && !(ancestor instanceof N.RenderObjectElement)))
+ break;
+ ancestor = ancestor._framework$_parent;
+ }
+ return type$.nullable_RenderObjectElement._as(ancestor);
+ },
+ _findAncestorParentDataElement$0: function() {
+ var ancestor, _box_0 = {},
+ t1 = _box_0.ancestor = this._framework$_parent;
+ _box_0.result = null;
+ while (true) {
+ if (!(t1 != null && !(t1 instanceof N.RenderObjectElement)))
+ break;
+ if (t1 instanceof N.ParentDataElement) {
+ _box_0.result = t1;
+ break;
+ }
+ ancestor = t1._framework$_parent;
+ _box_0.ancestor = ancestor;
+ t1 = ancestor;
+ }
+ return _box_0.result;
+ },
+ mount$2: function($parent, newSlot) {
+ var t1, _this = this;
+ _this.super$Element$mount($parent, newSlot);
+ t1 = _this.get$widget().createRenderObject$1(_this);
+ _this.__RenderObjectElement__renderObject_isSet = true;
+ _this.__RenderObjectElement__renderObject = t1;
+ _this.attachRenderObject$1(newSlot);
+ _this._dirty = false;
+ },
+ update$1: function(_, newWidget) {
+ var _this = this;
+ _this.super$Element$update(0, newWidget);
+ _this.get$widget().updateRenderObject$2(_this, _this.get$renderObject());
+ _this._dirty = false;
+ },
+ performRebuild$0: function() {
+ var _this = this;
+ _this.get$widget().updateRenderObject$2(_this, _this.get$renderObject());
+ _this._dirty = false;
+ },
+ updateChildren$3$forgottenChildren: function(oldChildren, newWidgets, forgottenChildren) {
+ var previousChild, newChildrenTop, oldChildrenTop, oldChild, newWidget, oldChildrenBottom0, haveOldChildren, oldKeyedChildren, key, t3, _this = this, _null = null,
+ replaceWithNullIfForgotten = new N.RenderObjectElement_updateChildren_replaceWithNullIfForgotten(forgottenChildren),
+ t1 = newWidgets.length,
+ newChildrenBottom = t1 - 1,
+ t2 = oldChildren.length,
+ oldChildrenBottom = t2 - 1,
+ newChildren = t2 === t1 ? oldChildren : P.List_List$filled(t1, $.$get$_NullElement_instance(), false, type$.Element_2);
+ t1 = type$.IndexedSlot_nullable_Element;
+ previousChild = _null;
+ newChildrenTop = 0;
+ oldChildrenTop = 0;
+ while (true) {
+ if (!(oldChildrenTop <= oldChildrenBottom && newChildrenTop <= newChildrenBottom))
+ break;
+ oldChild = replaceWithNullIfForgotten.call$1(oldChildren[oldChildrenTop]);
+ newWidget = newWidgets[newChildrenTop];
+ if (oldChild != null) {
+ t2 = oldChild.get$widget();
+ t2 = !(J.get$runtimeType$(t2) === J.get$runtimeType$(newWidget) && J.$eq$(t2.key, newWidget.key));
+ } else
+ t2 = true;
+ if (t2)
+ break;
+ t2 = _this.updateChild$3(oldChild, newWidget, new N.IndexedSlot(previousChild, newChildrenTop, t1));
+ t2.toString;
+ newChildren[newChildrenTop] = t2;
+ ++newChildrenTop;
+ ++oldChildrenTop;
+ previousChild = t2;
+ }
+ oldChildrenBottom0 = oldChildrenBottom;
+ while (true) {
+ haveOldChildren = oldChildrenTop <= oldChildrenBottom0;
+ if (!(haveOldChildren && newChildrenTop <= newChildrenBottom))
+ break;
+ oldChild = replaceWithNullIfForgotten.call$1(oldChildren[oldChildrenBottom0]);
+ newWidget = newWidgets[newChildrenBottom];
+ if (oldChild != null) {
+ t2 = oldChild.get$widget();
+ t2 = !(J.get$runtimeType$(t2) === J.get$runtimeType$(newWidget) && J.$eq$(t2.key, newWidget.key));
+ } else
+ t2 = true;
+ if (t2)
+ break;
+ --oldChildrenBottom0;
+ --newChildrenBottom;
+ }
+ if (haveOldChildren) {
+ oldKeyedChildren = P.LinkedHashMap_LinkedHashMap$_empty(type$.Key, type$.Element_2);
+ for (; oldChildrenTop <= oldChildrenBottom0;) {
+ oldChild = replaceWithNullIfForgotten.call$1(oldChildren[oldChildrenTop]);
+ if (oldChild != null)
+ if (oldChild.get$widget().key != null) {
+ t2 = oldChild.get$widget().key;
+ t2.toString;
+ oldKeyedChildren.$indexSet(0, t2, oldChild);
+ } else {
+ oldChild._framework$_parent = null;
+ oldChild.detachRenderObject$0();
+ t2 = _this._owner._inactiveElements;
+ if (oldChild._lifecycleState === C._ElementLifecycle_1) {
+ oldChild.deactivate$0();
+ oldChild.visitChildren$1(N.framework__InactiveElements__deactivateRecursively$closure());
+ }
+ t2._framework$_elements.add$1(0, oldChild);
+ }
+ ++oldChildrenTop;
+ }
+ haveOldChildren = true;
+ } else
+ oldKeyedChildren = _null;
+ for (; newChildrenTop <= newChildrenBottom; previousChild = t2) {
+ newWidget = newWidgets[newChildrenTop];
+ if (haveOldChildren) {
+ key = newWidget.key;
+ if (key != null) {
+ oldChild = oldKeyedChildren.$index(0, key);
+ if (oldChild != null) {
+ t2 = oldChild.get$widget();
+ if (J.get$runtimeType$(t2) === newWidget.get$runtimeType(newWidget) && J.$eq$(t2.key, key))
+ oldKeyedChildren.remove$1(0, key);
+ else
+ oldChild = _null;
+ }
+ } else
+ oldChild = _null;
+ } else
+ oldChild = _null;
+ t2 = _this.updateChild$3(oldChild, newWidget, new N.IndexedSlot(previousChild, newChildrenTop, t1));
+ t2.toString;
+ newChildren[newChildrenTop] = t2;
+ ++newChildrenTop;
+ }
+ newChildrenBottom = newWidgets.length - 1;
+ while (true) {
+ if (!(oldChildrenTop <= oldChildrenBottom && newChildrenTop <= newChildrenBottom))
+ break;
+ t2 = _this.updateChild$3(oldChildren[oldChildrenTop], newWidgets[newChildrenTop], new N.IndexedSlot(previousChild, newChildrenTop, t1));
+ t2.toString;
+ newChildren[newChildrenTop] = t2;
+ ++newChildrenTop;
+ ++oldChildrenTop;
+ previousChild = t2;
+ }
+ if (haveOldChildren && oldKeyedChildren.get$isNotEmpty(oldKeyedChildren))
+ for (t1 = oldKeyedChildren.get$values(oldKeyedChildren), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
+ t2 = t1.get$current(t1);
+ if (!forgottenChildren.contains$1(0, t2)) {
+ t2._framework$_parent = null;
+ t2.detachRenderObject$0();
+ t3 = _this._owner._inactiveElements;
+ if (t2._lifecycleState === C._ElementLifecycle_1) {
+ t2.deactivate$0();
+ t2.visitChildren$1(N.framework__InactiveElements__deactivateRecursively$closure());
+ }
+ t3._framework$_elements.add$1(0, t2);
+ }
+ }
+ return newChildren;
+ },
+ deactivate$0: function() {
+ this.super$Element$deactivate();
+ },
+ unmount$0: function() {
+ this.super$Element$unmount();
+ this.get$widget().didUnmountRenderObject$1(this.get$renderObject());
+ },
+ _updateSlot$1: function(newSlot) {
+ var t1, _this = this,
+ oldSlot = _this._slot;
+ _this.super$Element$_updateSlot(newSlot);
+ t1 = _this._ancestorRenderObjectElement;
+ t1.toString;
+ t1.moveRenderObjectChild$3(_this.get$renderObject(), oldSlot, _this._slot);
+ },
+ attachRenderObject$1: function(newSlot) {
+ var t1, parentDataElement, _this = this;
+ _this._slot = newSlot;
+ t1 = _this._ancestorRenderObjectElement = _this._findAncestorRenderObjectElement$0();
+ if (t1 != null)
+ t1.insertRenderObjectChild$2(_this.get$renderObject(), newSlot);
+ parentDataElement = _this._findAncestorParentDataElement$0();
+ if (parentDataElement != null)
+ parentDataElement.$ti._eval$1("ParentDataWidget<1>")._as(N.ProxyElement.prototype.get$widget.call(parentDataElement)).applyParentData$1(_this.get$renderObject());
+ },
+ detachRenderObject$0: function() {
+ var _this = this,
+ t1 = _this._ancestorRenderObjectElement;
+ if (t1 != null) {
+ t1.removeRenderObjectChild$2(_this.get$renderObject(), _this._slot);
+ _this._ancestorRenderObjectElement = null;
+ }
+ _this._slot = null;
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ }
+ };
+ N.RenderObjectElement_updateChildren_replaceWithNullIfForgotten.prototype = {
+ call$1: function(child) {
+ var t1 = this.forgottenChildren.contains$1(0, child);
+ return t1 ? null : child;
+ },
+ $signature: 273
+ };
+ N.RootRenderObjectElement.prototype = {
+ mount$2: function($parent, newSlot) {
+ this.super$RenderObjectElement$mount($parent, newSlot);
+ }
+ };
+ N.LeafRenderObjectElement.prototype = {
+ forgetChild$1: function(child) {
+ this.super$Element$forgetChild(child);
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ },
+ debugDescribeChildren$0: function() {
+ type$.RenderObjectWidget._as(N.Element.prototype.get$widget.call(this)).toString;
+ return C.List_empty;
+ }
+ };
+ N.SingleChildRenderObjectElement.prototype = {
+ get$widget: function() {
+ return type$.SingleChildRenderObjectWidget._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ },
+ visitChildren$1: function(visitor) {
+ var t1 = this._framework$_child;
+ if (t1 != null)
+ visitor.call$1(t1);
+ },
+ forgetChild$1: function(child) {
+ this._framework$_child = null;
+ this.super$Element$forgetChild(child);
+ },
+ mount$2: function($parent, newSlot) {
+ var _this = this;
+ _this.super$RenderObjectElement$mount($parent, newSlot);
+ _this._framework$_child = _this.updateChild$3(_this._framework$_child, _this.get$widget().child, null);
+ },
+ update$1: function(_, newWidget) {
+ var _this = this;
+ _this.super$RenderObjectElement$update(0, newWidget);
+ _this._framework$_child = _this.updateChild$3(_this._framework$_child, _this.get$widget().child, null);
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ type$.RenderObjectWithChildMixin_RenderObject._as(this.get$_renderObject()).set$child(child);
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ type$.RenderObjectWithChildMixin_RenderObject._as(this.get$_renderObject()).set$child(null);
+ }
+ };
+ N.MultiChildRenderObjectElement.prototype = {
+ get$widget: function() {
+ return type$.MultiChildRenderObjectWidget._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ },
+ get$_framework$_children: function(_) {
+ return this.__MultiChildRenderObjectElement__children_isSet ? this.__MultiChildRenderObjectElement__children : H.throwExpression(H.LateError$fieldNI("_children"));
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ var renderObject = type$.ContainerRenderObjectMixin_of_RenderObject_and_ContainerParentDataMixin_RenderObject._as(this.get$renderObject()),
+ t1 = slot.value;
+ renderObject.insert$2$after(0, child, t1 == null ? null : t1.get$renderObject());
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ var renderObject = type$.ContainerRenderObjectMixin_of_RenderObject_and_ContainerParentDataMixin_RenderObject._as(this.get$renderObject()),
+ t1 = newSlot.value;
+ renderObject.move$2$after(child, t1 == null ? null : t1.get$renderObject());
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ type$.ContainerRenderObjectMixin_of_RenderObject_and_ContainerParentDataMixin_RenderObject._as(this.get$renderObject()).remove$1(0, child);
+ },
+ visitChildren$1: function(visitor) {
+ var t1, t2, t3, _i, child;
+ for (t1 = this.get$_framework$_children(this), t2 = t1.length, t3 = this._forgottenChildren, _i = 0; _i < t2; ++_i) {
+ child = t1[_i];
+ if (!t3.contains$1(0, child))
+ visitor.call$1(child);
+ }
+ },
+ forgetChild$1: function(child) {
+ this._forgottenChildren.add$1(0, child);
+ this.super$Element$forgetChild(child);
+ },
+ mount$2: function($parent, newSlot) {
+ var t1, children, t2, previousChild, i, newChild, _this = this;
+ _this.super$RenderObjectElement$mount($parent, newSlot);
+ t1 = _this.get$widget().children.length;
+ children = P.List_List$filled(t1, $.$get$_NullElement_instance(), false, type$.Element_2);
+ for (t2 = type$.IndexedSlot_nullable_Element, previousChild = null, i = 0; i < t1; ++i, previousChild = newChild) {
+ newChild = _this.inflateWidget$2(_this.get$widget().children[i], new N.IndexedSlot(previousChild, i, t2));
+ children[i] = newChild;
+ }
+ _this.__MultiChildRenderObjectElement__children_isSet = true;
+ _this.__MultiChildRenderObjectElement__children = children;
+ },
+ update$1: function(_, newWidget) {
+ var t1, t2, _this = this;
+ _this.super$RenderObjectElement$update(0, newWidget);
+ t1 = _this._forgottenChildren;
+ t2 = _this.updateChildren$3$forgottenChildren(_this.get$_framework$_children(_this), _this.get$widget().children, t1);
+ _this.__MultiChildRenderObjectElement__children_isSet = true;
+ _this.__MultiChildRenderObjectElement__children = t2;
+ t1.clear$0(0);
+ }
+ };
+ N.DebugCreator.prototype = {
+ toString$0: function(_) {
+ return this.element.debugGetCreatorChain$1(12);
+ }
+ };
+ N.IndexedSlot.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof N.IndexedSlot && this.index === other.index && J.$eq$(this.value, other.value);
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.index, this.value, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ N._NullElement.prototype = {
+ performRebuild$0: function() {
+ }
+ };
+ N._NullWidget.prototype = {
+ createElement$0: function(_) {
+ return H.throwExpression(P.UnimplementedError$(null));
+ }
+ };
+ N._State_Object_Diagnosticable.prototype = {};
+ D.GestureRecognizerFactory.prototype = {};
+ D.GestureRecognizerFactoryWithHandlers.prototype = {
+ constructor$0: function() {
+ return this._constructor.call$0();
+ },
+ initializer$1: function(instance) {
+ return this._initializer.call$1(instance);
+ }
+ };
+ D.GestureDetector.prototype = {
+ build$1: function(_, context) {
+ var t1, _this = this,
+ gestures = P.LinkedHashMap_LinkedHashMap$_empty(type$.Type, type$.GestureRecognizerFactory_GestureRecognizer);
+ if (_this.onTapDown == null)
+ if (_this.onTapUp == null)
+ if (_this.onTap == null)
+ if (_this.onTapCancel == null)
+ t1 = false;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ if (t1)
+ gestures.$indexSet(0, C.Type_TapGestureRecognizer_62h, new D.GestureRecognizerFactoryWithHandlers(new D.GestureDetector_build_closure(_this), new D.GestureDetector_build_closure0(_this), type$.GestureRecognizerFactoryWithHandlers_TapGestureRecognizer));
+ if (_this.onDoubleTap != null)
+ gestures.$indexSet(0, C.Type_DoubleTapGestureRecognizer_oyU, new D.GestureRecognizerFactoryWithHandlers(new D.GestureDetector_build_closure1(_this), new D.GestureDetector_build_closure2(_this), type$.GestureRecognizerFactoryWithHandlers_DoubleTapGestureRecognizer));
+ if (_this.onLongPress == null)
+ t1 = false;
+ else
+ t1 = true;
+ if (t1)
+ gestures.$indexSet(0, C.Type_LongPressGestureRecognizer_46y, new D.GestureRecognizerFactoryWithHandlers(new D.GestureDetector_build_closure3(_this), new D.GestureDetector_build_closure4(_this), type$.GestureRecognizerFactoryWithHandlers_LongPressGestureRecognizer));
+ t1 = _this.onVerticalDragStart != null || _this.onVerticalDragUpdate != null || _this.onVerticalDragEnd != null || false;
+ if (t1)
+ gestures.$indexSet(0, C.Type_mLh, new D.GestureRecognizerFactoryWithHandlers(new D.GestureDetector_build_closure5(_this), new D.GestureDetector_build_closure6(_this), type$.GestureRecognizerFactoryWithHandlers_VerticalDragGestureRecognizer));
+ if (_this.onHorizontalDragDown == null)
+ t1 = _this.onHorizontalDragUpdate != null || _this.onHorizontalDragEnd != null || _this.onHorizontalDragCancel != null;
+ else
+ t1 = true;
+ if (t1)
+ gestures.$indexSet(0, C.Type_Vq1, new D.GestureRecognizerFactoryWithHandlers(new D.GestureDetector_build_closure7(_this), new D.GestureDetector_build_closure8(_this), type$.GestureRecognizerFactoryWithHandlers_HorizontalDragGestureRecognizer));
+ if (_this.onPanDown != null || _this.onPanStart != null || _this.onPanUpdate != null || _this.onPanEnd != null || false)
+ gestures.$indexSet(0, C.Type_PanGestureRecognizer_bbH, new D.GestureRecognizerFactoryWithHandlers(new D.GestureDetector_build_closure9(_this), new D.GestureDetector_build_closure10(_this), type$.GestureRecognizerFactoryWithHandlers_PanGestureRecognizer));
+ return new D.RawGestureDetector(_this.child, gestures, _this.behavior, _this.excludeFromSemantics, null, null);
+ }
+ };
+ D.GestureDetector_build_closure.prototype = {
+ call$0: function() {
+ return N.TapGestureRecognizer$(this.$this);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 274
+ };
+ D.GestureDetector_build_closure0.prototype = {
+ call$1: function(instance) {
+ var t1 = this.$this;
+ instance.onTapDown = t1.onTapDown;
+ instance.onTapUp = t1.onTapUp;
+ instance.onTap = t1.onTap;
+ instance.onTapCancel = t1.onTapCancel;
+ instance.onTertiaryTapCancel = instance.onTertiaryTapUp = instance.onTertiaryTapDown = instance.onSecondaryTapCancel = instance.onSecondaryTapUp = instance.onSecondaryTapDown = instance.onSecondaryTap = null;
+ },
+ $signature: 275
+ };
+ D.GestureDetector_build_closure1.prototype = {
+ call$0: function() {
+ var t1 = type$.int;
+ return new F.DoubleTapGestureRecognizer(P.LinkedHashMap_LinkedHashMap$_empty(t1, type$._TapTracker), this.$this, null, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 276
+ };
+ D.GestureDetector_build_closure2.prototype = {
+ call$1: function(instance) {
+ instance.onDoubleTapDown = null;
+ instance.onDoubleTap = this.$this.onDoubleTap;
+ instance.onDoubleTapCancel = null;
+ },
+ $signature: 277
+ };
+ D.GestureDetector_build_closure3.prototype = {
+ call$0: function() {
+ return T.LongPressGestureRecognizer$(this.$this, null);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 127
+ };
+ D.GestureDetector_build_closure4.prototype = {
+ call$1: function(instance) {
+ instance.onLongPress = this.$this.onLongPress;
+ instance.onSecondaryLongPressUp = instance.onSecondaryLongPressEnd = instance.onSecondaryLongPressMoveUpdate = instance.onSecondaryLongPressStart = instance.onSecondaryLongPress = instance.onLongPressUp = instance.onLongPressEnd = instance.onLongPressMoveUpdate = instance.onLongPressStart = null;
+ },
+ $signature: 126
+ };
+ D.GestureDetector_build_closure5.prototype = {
+ call$0: function() {
+ return O.VerticalDragGestureRecognizer$(this.$this);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 125
+ };
+ D.GestureDetector_build_closure6.prototype = {
+ call$1: function(instance) {
+ var t1;
+ instance.onDown = null;
+ t1 = this.$this;
+ instance.onStart = t1.onVerticalDragStart;
+ instance.onUpdate = t1.onVerticalDragUpdate;
+ instance.onEnd = t1.onVerticalDragEnd;
+ instance.onCancel = null;
+ instance.dragStartBehavior = t1.dragStartBehavior;
+ },
+ $signature: 124
+ };
+ D.GestureDetector_build_closure7.prototype = {
+ call$0: function() {
+ return O.HorizontalDragGestureRecognizer$(this.$this, null);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 78
+ };
+ D.GestureDetector_build_closure8.prototype = {
+ call$1: function(instance) {
+ var t1 = this.$this;
+ instance.onDown = t1.onHorizontalDragDown;
+ instance.onStart = null;
+ instance.onUpdate = t1.onHorizontalDragUpdate;
+ instance.onEnd = t1.onHorizontalDragEnd;
+ instance.onCancel = t1.onHorizontalDragCancel;
+ instance.dragStartBehavior = t1.dragStartBehavior;
+ },
+ $signature: 57
+ };
+ D.GestureDetector_build_closure9.prototype = {
+ call$0: function() {
+ var t1 = type$.int;
+ return new O.PanGestureRecognizer(C.DragStartBehavior_1, O.monodrag_DragGestureRecognizer__defaultBuilder$closure(), C._DragState_0, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.VelocityTracker), P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), this.$this, null, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 284
+ };
+ D.GestureDetector_build_closure10.prototype = {
+ call$1: function(instance) {
+ var t1 = this.$this;
+ instance.onDown = t1.onPanDown;
+ instance.onStart = t1.onPanStart;
+ instance.onUpdate = t1.onPanUpdate;
+ instance.onEnd = t1.onPanEnd;
+ instance.onCancel = null;
+ instance.dragStartBehavior = t1.dragStartBehavior;
+ },
+ $signature: 285
+ };
+ D.RawGestureDetector.prototype = {
+ createState$0: function() {
+ return new D.RawGestureDetectorState(C.Map_empty2, C._StateLifecycle_0);
+ }
+ };
+ D.RawGestureDetectorState.prototype = {
+ initState$0: function() {
+ var t1, t2, _this = this;
+ _this.super$State$initState();
+ t1 = _this._widget;
+ t2 = t1.semantics;
+ _this._gesture_detector$_semantics = t2 == null ? new D._DefaultSemanticsGestureDelegate(_this) : t2;
+ _this._syncAll$1(t1.gestures);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ if (!(oldWidget.semantics == null && _this._widget.semantics == null)) {
+ t1 = _this._widget.semantics;
+ _this._gesture_detector$_semantics = t1 == null ? new D._DefaultSemanticsGestureDelegate(_this) : t1;
+ }
+ _this._syncAll$1(_this._widget.gestures);
+ },
+ replaceSemanticsActions$1: function(actions) {
+ if (this._widget.excludeFromSemantics)
+ return;
+ type$.nullable_RenderSemanticsGestureHandler._as(this._framework$_element.get$renderObject()).set$validActions(actions);
+ },
+ dispose$0: function(_) {
+ var t1;
+ for (t1 = this._recognizers, t1 = t1.get$values(t1), t1 = t1.get$iterator(t1); t1.moveNext$0();)
+ t1.get$current(t1).dispose$0(0);
+ this._recognizers = null;
+ this.super$State$dispose(0);
+ },
+ _syncAll$1: function(gestures) {
+ var t2, t3, t4, t5, _this = this,
+ t1 = _this._recognizers;
+ t1.toString;
+ _this._recognizers = P.LinkedHashMap_LinkedHashMap$_empty(type$.Type, type$.GestureRecognizer);
+ for (t2 = gestures.get$keys(gestures), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ t4 = _this._recognizers;
+ t4.toString;
+ t5 = t1.$index(0, t3);
+ t4.$indexSet(0, t3, t5 == null ? gestures.$index(0, t3).constructor$0() : t5);
+ t4 = gestures.$index(0, t3);
+ t4.toString;
+ t3 = _this._recognizers.$index(0, t3);
+ t3.toString;
+ t4.initializer$1(t3);
+ }
+ for (t2 = t1.get$keys(t1), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ if (!_this._recognizers.containsKey$1(0, t3))
+ t1.$index(0, t3).dispose$0(0);
+ }
+ },
+ _gesture_detector$_handlePointerDown$1: function($event) {
+ var t1, t2;
+ for (t1 = this._recognizers, t1 = t1.get$values(t1), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
+ t2 = t1.get$current(t1);
+ t2._pointerToKind.$indexSet(0, $event.get$pointer(), $event.get$kind($event));
+ if (t2.isPointerAllowed$1($event))
+ t2.addAllowedPointer$1($event);
+ else
+ t2.handleNonAllowedPointer$1($event);
+ }
+ },
+ _updateSemanticsForRenderObject$1: function(renderObject) {
+ this._gesture_detector$_semantics.assignSemantics$1(renderObject);
+ },
+ build$1: function(_, context) {
+ var result, _null = null,
+ t1 = this._widget,
+ t2 = t1.behavior;
+ if (t2 == null)
+ t2 = t1.child == null ? C.HitTestBehavior_2 : C.HitTestBehavior_0;
+ result = T.Listener$(t2, t1.child, _null, this.get$_gesture_detector$_handlePointerDown(), _null, _null);
+ return !t1.excludeFromSemantics ? new D._GestureSemantics(this.get$_updateSemanticsForRenderObject(), result, _null) : result;
+ }
+ };
+ D._GestureSemantics.prototype = {
+ createRenderObject$1: function(context) {
+ var renderObject = new E.RenderSemanticsGestureHandler(null);
+ renderObject.get$isRepaintBoundary();
+ renderObject.get$alwaysNeedsCompositing();
+ renderObject.__RenderObject__needsCompositing_isSet = true;
+ renderObject.__RenderObject__needsCompositing = false;
+ renderObject.set$child(null);
+ this.assignSemantics.call$1(renderObject);
+ return renderObject;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ this.assignSemantics.call$1(renderObject);
+ }
+ };
+ D.SemanticsGestureDelegate.prototype = {
+ toString$0: function(_) {
+ return "SemanticsGestureDelegate()";
+ }
+ };
+ D._DefaultSemanticsGestureDelegate.prototype = {
+ assignSemantics$1: function(renderObject) {
+ var _this = this,
+ t1 = _this.detectorState._recognizers;
+ t1.toString;
+ renderObject.set$onTap(_this._getTapHandler$1(t1));
+ renderObject.set$onLongPress(_this._getLongPressHandler$1(t1));
+ renderObject.set$onHorizontalDragUpdate(_this._getHorizontalDragUpdateHandler$1(t1));
+ renderObject.set$onVerticalDragUpdate(_this._getVerticalDragUpdateHandler$1(t1));
+ },
+ _getTapHandler$1: function(recognizers) {
+ var tap = type$.nullable_TapGestureRecognizer._as(recognizers.$index(0, C.Type_TapGestureRecognizer_62h));
+ if (tap == null)
+ return null;
+ return new D._DefaultSemanticsGestureDelegate__getTapHandler_closure(tap);
+ },
+ _getLongPressHandler$1: function(recognizers) {
+ var longPress = type$.nullable_LongPressGestureRecognizer._as(recognizers.$index(0, C.Type_LongPressGestureRecognizer_46y));
+ if (longPress == null)
+ return null;
+ return new D._DefaultSemanticsGestureDelegate__getLongPressHandler_closure(longPress);
+ },
+ _getHorizontalDragUpdateHandler$1: function(recognizers) {
+ var horizontal = type$.nullable_HorizontalDragGestureRecognizer._as(recognizers.$index(0, C.Type_Vq1)),
+ pan = type$.nullable_PanGestureRecognizer._as(recognizers.$index(0, C.Type_PanGestureRecognizer_bbH)),
+ horizontalHandler = horizontal == null ? null : new D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure(horizontal),
+ panHandler = pan == null ? null : new D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure0(pan);
+ if (horizontalHandler == null && panHandler == null)
+ return null;
+ return new D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure1(horizontalHandler, panHandler);
+ },
+ _getVerticalDragUpdateHandler$1: function(recognizers) {
+ var vertical = type$.nullable_VerticalDragGestureRecognizer._as(recognizers.$index(0, C.Type_mLh)),
+ pan = type$.nullable_PanGestureRecognizer._as(recognizers.$index(0, C.Type_PanGestureRecognizer_bbH)),
+ verticalHandler = vertical == null ? null : new D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure(vertical),
+ panHandler = pan == null ? null : new D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure0(pan);
+ if (verticalHandler == null && panHandler == null)
+ return null;
+ return new D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure1(verticalHandler, panHandler);
+ }
+ };
+ D._DefaultSemanticsGestureDelegate__getTapHandler_closure.prototype = {
+ call$0: function() {
+ var t1 = this.tap,
+ t2 = t1.onTapDown;
+ if (t2 != null)
+ t2.call$1(new N.TapDownDetails(C.Offset_0_0, null));
+ t2 = t1.onTapUp;
+ if (t2 != null)
+ t2.call$1(new N.TapUpDetails(C.Offset_0_0, C.PointerDeviceKind_4));
+ t1 = t1.onTap;
+ if (t1 != null)
+ t1.call$0();
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ D._DefaultSemanticsGestureDelegate__getLongPressHandler_closure.prototype = {
+ call$0: function() {
+ var t1 = this.longPress,
+ t2 = t1.onLongPressStart;
+ if (t2 != null)
+ t2.call$1(C.LongPressStartDetails_Offset_0_0);
+ t2 = t1.onLongPress;
+ if (t2 != null)
+ t2.call$0();
+ t1 = t1.onLongPressEnd;
+ if (t1 != null)
+ t1.call$1(C.C_LongPressEndDetails);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure.prototype = {
+ call$1: function(details) {
+ var t1 = this.horizontal,
+ t2 = t1.onDown;
+ if (t2 != null)
+ t2.call$1(new O.DragDownDetails(C.Offset_0_0));
+ t2 = t1.onStart;
+ if (t2 != null)
+ t2.call$1(O.DragStartDetails$(C.Offset_0_0, null, null, null));
+ t2 = t1.onUpdate;
+ if (t2 != null)
+ t2.call$1(details);
+ t1 = t1.onEnd;
+ if (t1 != null)
+ t1.call$1(new O.DragEndDetails(C.Velocity_Offset_0_0, 0));
+ },
+ $signature: 14
+ };
+ D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure0.prototype = {
+ call$1: function(details) {
+ var _null = null,
+ t1 = this.pan,
+ t2 = t1.onDown;
+ if (t2 != null)
+ t2.call$1(new O.DragDownDetails(C.Offset_0_0));
+ t2 = t1.onStart;
+ if (t2 != null)
+ t2.call$1(O.DragStartDetails$(C.Offset_0_0, _null, _null, _null));
+ t2 = t1.onUpdate;
+ if (t2 != null)
+ t2.call$1(details);
+ t1 = t1.onEnd;
+ if (t1 != null)
+ t1.call$1(new O.DragEndDetails(C.Velocity_Offset_0_0, _null));
+ },
+ $signature: 14
+ };
+ D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure1.prototype = {
+ call$1: function(details) {
+ var t1 = this.horizontalHandler;
+ if (t1 != null)
+ t1.call$1(details);
+ t1 = this.panHandler;
+ if (t1 != null)
+ t1.call$1(details);
+ },
+ $signature: 14
+ };
+ D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure.prototype = {
+ call$1: function(details) {
+ var t1 = this.vertical,
+ t2 = t1.onDown;
+ if (t2 != null)
+ t2.call$1(new O.DragDownDetails(C.Offset_0_0));
+ t2 = t1.onStart;
+ if (t2 != null)
+ t2.call$1(O.DragStartDetails$(C.Offset_0_0, null, null, null));
+ t2 = t1.onUpdate;
+ if (t2 != null)
+ t2.call$1(details);
+ t1 = t1.onEnd;
+ if (t1 != null)
+ t1.call$1(new O.DragEndDetails(C.Velocity_Offset_0_0, 0));
+ },
+ $signature: 14
+ };
+ D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure0.prototype = {
+ call$1: function(details) {
+ var _null = null,
+ t1 = this.pan,
+ t2 = t1.onDown;
+ if (t2 != null)
+ t2.call$1(new O.DragDownDetails(C.Offset_0_0));
+ t2 = t1.onStart;
+ if (t2 != null)
+ t2.call$1(O.DragStartDetails$(C.Offset_0_0, _null, _null, _null));
+ t2 = t1.onUpdate;
+ if (t2 != null)
+ t2.call$1(details);
+ t1 = t1.onEnd;
+ if (t1 != null)
+ t1.call$1(new O.DragEndDetails(C.Velocity_Offset_0_0, _null));
+ },
+ $signature: 14
+ };
+ D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure1.prototype = {
+ call$1: function(details) {
+ var t1 = this.verticalHandler;
+ if (t1 != null)
+ t1.call$1(details);
+ t1 = this.panHandler;
+ if (t1 != null)
+ t1.call$1(details);
+ },
+ $signature: 14
+ };
+ T.HeroFlightDirection.prototype = {
+ toString$0: function(_) {
+ return this._heroes$_name;
+ }
+ };
+ T.Hero.prototype = {
+ createState$0: function() {
+ return new T._HeroState(new N.LabeledGlobalKey(null, type$.LabeledGlobalKey_State_StatefulWidget), C._StateLifecycle_0);
+ }
+ };
+ T.Hero__allHeroesFor_inviteHero.prototype = {
+ call$2: function(hero, tag) {
+ var t1,
+ heroWidget = type$.Hero._as(hero._widget),
+ heroState = type$._HeroState._as(hero.state);
+ if (this.isUserGestureTransition) {
+ heroWidget.toString;
+ t1 = false;
+ } else
+ t1 = true;
+ if (t1)
+ this.result.$indexSet(0, tag, heroState);
+ else
+ heroState.ensurePlaceholderIsHidden$0();
+ },
+ $signature: 287
+ };
+ T.Hero__allHeroesFor_visitor.prototype = {
+ call$1: function(element) {
+ var tag, heroRoute, _this = this,
+ widget = element.get$widget();
+ if (widget instanceof T.Hero) {
+ type$.StatefulElement._as(element);
+ tag = widget.tag;
+ if (K.Navigator_of(element, false) == _this.navigator)
+ _this.inviteHero.call$2(element, tag);
+ else {
+ heroRoute = T.ModalRoute_of(element, type$.nullable_Object);
+ if (heroRoute != null && heroRoute instanceof V.PageRoute && heroRoute.get$isCurrent())
+ _this.inviteHero.call$2(element, tag);
+ }
+ }
+ element.visitChildren$1(_this);
+ },
+ $signature: 9
+ };
+ T._HeroState.prototype = {
+ startFlight$1$shouldIncludedChildInPlaceholder: function(shouldIncludedChildInPlaceholder) {
+ var t1, _this = this;
+ _this._shouldIncludeChild = shouldIncludedChildInPlaceholder;
+ t1 = _this._framework$_element.get$renderObject();
+ t1.toString;
+ _this.setState$1(new T._HeroState_startFlight_closure(_this, type$.RenderBox._as(t1)));
+ },
+ startFlight$0: function() {
+ return this.startFlight$1$shouldIncludedChildInPlaceholder(false);
+ },
+ ensurePlaceholderIsHidden$0: function() {
+ if (this._framework$_element != null)
+ this.setState$1(new T._HeroState_ensurePlaceholderIsHidden_closure(this));
+ },
+ build$1: function(_, context) {
+ var t3, _this = this, _null = null,
+ t1 = _this._placeholderSize,
+ t2 = t1 == null,
+ showPlaceholder = !t2;
+ if (showPlaceholder)
+ _this._widget.toString;
+ if (showPlaceholder && !_this._shouldIncludeChild) {
+ t2 = t1._dx;
+ return T.SizedBox$(_null, t1._dy, t2);
+ }
+ t3 = t2 ? _null : t1._dx;
+ t1 = t2 ? _null : t1._dy;
+ return T.SizedBox$(new T.Offstage(showPlaceholder, new U.TickerMode(t2, new T.KeyedSubtree(_this._widget.child, _this._heroes$_key), _null), _null), t1, t3);
+ }
+ };
+ T._HeroState_startFlight_closure.prototype = {
+ call$0: function() {
+ var t1 = this.box._size;
+ t1.toString;
+ this.$this._placeholderSize = t1;
+ },
+ $signature: 0
+ };
+ T._HeroState_ensurePlaceholderIsHidden_closure.prototype = {
+ call$0: function() {
+ this.$this._placeholderSize = null;
+ },
+ $signature: 0
+ };
+ T._HeroFlightManifest.prototype = {
+ get$animation: function(_) {
+ var t1, _this = this;
+ if (_this.type === C.HeroFlightDirection_0) {
+ t1 = _this.toRoute._animationProxy;
+ t1.toString;
+ } else {
+ t1 = _this.fromRoute._animationProxy;
+ t1.toString;
+ }
+ return S.CurvedAnimation$(C.Cubic_ifx, t1, _this.isDiverted ? null : new Z.FlippedCurve(C.Cubic_ifx));
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = _this.fromHero;
+ return "_HeroFlightManifest(" + _this.type.toString$0(0) + " tag: " + t1._widget.tag.toString$0(0) + " from route: " + _this.fromRoute._settings.toString$0(0) + " to route: " + _this.toRoute._settings.toString$0(0) + " with hero: " + t1.toString$0(0) + " to " + H.S(_this.toHero) + ")";
+ }
+ };
+ T._HeroFlight.prototype = {
+ get$heroRectTween: function() {
+ return this.___HeroFlight_heroRectTween_isSet ? this.___HeroFlight_heroRectTween : H.throwExpression(H.LateError$fieldNI("heroRectTween"));
+ },
+ get$_proxyAnimation: function() {
+ return this.___HeroFlight__proxyAnimation_isSet ? this.___HeroFlight__proxyAnimation : H.throwExpression(H.LateError$fieldNI("_proxyAnimation"));
+ },
+ _doCreateRectTween$2: function(begin, end) {
+ var createRectTween,
+ t1 = this.manifest;
+ t1.toHero._widget.toString;
+ createRectTween = t1.createRectTween;
+ return createRectTween.call$2(begin, end);
+ },
+ _buildOverlay$1: function(context) {
+ var t1, t2, t3, t4, t5, _this = this;
+ if (_this.shuttle == null) {
+ t1 = _this.manifest;
+ t2 = t1.get$animation(t1);
+ t3 = _this.manifest;
+ t4 = t3.type;
+ t5 = t3.fromHero._framework$_element;
+ t5.toString;
+ t3 = t3.toHero._framework$_element;
+ t3.toString;
+ _this.shuttle = t1.shuttleBuilder.call$5(context, t2, t4, t5, t3);
+ }
+ return K.AnimatedBuilder$(_this.get$_proxyAnimation(), new T._HeroFlight__buildOverlay_closure(_this), _this.shuttle);
+ },
+ _performAnimationUpdate$1: function($status) {
+ var t2, _this = this,
+ t1 = $status !== C.AnimationStatus_3;
+ if (!t1 || $status === C.AnimationStatus_0) {
+ _this.get$_proxyAnimation().set$parent(0, null);
+ _this.overlayEntry.remove$0(0);
+ _this.overlayEntry = null;
+ t2 = _this.manifest.fromHero;
+ t2.toString;
+ if (t1)
+ t2.ensurePlaceholderIsHidden$0();
+ t1 = _this.manifest.toHero;
+ t1.toString;
+ if ($status !== C.AnimationStatus_0)
+ t1.ensurePlaceholderIsHidden$0();
+ _this.onFlightEnded.call$1(_this);
+ }
+ },
+ _handleAnimationUpdate$1: function($status) {
+ var t2, _this = this,
+ t1 = _this.manifest.fromRoute._navigator$_navigator;
+ if ((t1 == null ? null : t1.userGestureInProgressNotifier._change_notifier$_value) !== true) {
+ _this._performAnimationUpdate$1($status);
+ return;
+ }
+ if (_this._scheduledPerformAnimtationUpdate)
+ return;
+ t1.toString;
+ _this._scheduledPerformAnimtationUpdate = true;
+ t2 = t1.userGestureInProgressNotifier.ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(new T._HeroFlight__handleAnimationUpdate_delayedPerformAnimtationUpdate(_this, t1)), false);
+ },
+ start$1: function(_, initialManifest) {
+ var t1, t2, t3, _this = this;
+ _this.manifest = initialManifest;
+ if (initialManifest.type === C.HeroFlightDirection_1) {
+ t1 = _this.get$_proxyAnimation();
+ t2 = _this.manifest;
+ t1.set$parent(0, new S.ReverseAnimation(t2.get$animation(t2), new R.ObserverList(H.setRuntimeTypeInfo([], type$.JSArray_of_void_Function_AnimationStatus), type$.ObserverList_of_void_Function_AnimationStatus), 0));
+ } else {
+ t1 = _this.get$_proxyAnimation();
+ t2 = _this.manifest;
+ t1.set$parent(0, t2.get$animation(t2));
+ }
+ t1 = _this.manifest;
+ t1.fromHero.startFlight$1$shouldIncludedChildInPlaceholder(t1.type === C.HeroFlightDirection_0);
+ _this.manifest.toHero.startFlight$0();
+ t1 = _this.manifest;
+ t2 = t1.fromHero._framework$_element;
+ t2.toString;
+ t1 = T._boundingBoxFor(t2, $.GlobalKey__registry.$index(0, t1.fromRoute._subtreeKey));
+ t2 = _this.manifest;
+ t3 = t2.toHero._framework$_element;
+ t3.toString;
+ t2 = _this._doCreateRectTween$2(t1, T._boundingBoxFor(t3, $.GlobalKey__registry.$index(0, t2.toRoute._subtreeKey)));
+ _this.___HeroFlight_heroRectTween_isSet = true;
+ _this.___HeroFlight_heroRectTween = t2;
+ t2 = X.OverlayEntry$(_this.get$_buildOverlay(), false);
+ _this.overlayEntry = t2;
+ _this.manifest.overlay.insert$1(0, t2);
+ },
+ toString$0: function(_) {
+ var t1 = this.manifest,
+ from = t1.fromRoute._settings,
+ to = t1.toRoute._settings;
+ return "HeroFlight(for: " + t1.fromHero._widget.tag.toString$0(0) + ", from: " + from.toString$0(0) + ", to: " + to.toString$0(0) + " " + H.S(this.get$_proxyAnimation()._animations$_parent) + ")";
+ }
+ };
+ T._HeroFlight__buildOverlay_closure.prototype = {
+ call$2: function(context, child) {
+ var t3, t4, t5, toHeroOrigin, t6, t7, _null = null,
+ t1 = this.$this,
+ t2 = t1.manifest.toHero._framework$_element,
+ toHeroBox = t2 != null ? type$.nullable_RenderBox._as(t2.get$renderObject()) : _null;
+ if (t1._aborted || toHeroBox == null || toHeroBox._node$_owner == null) {
+ t2 = t1._heroOpacity;
+ if (t2.get$status(t2) === C.AnimationStatus_3) {
+ t2 = t1.get$_proxyAnimation();
+ t3 = $.$get$_HeroFlight__reverseTween();
+ t4 = t1.get$_proxyAnimation();
+ t4 = t4.get$value(t4);
+ t3.toString;
+ t5 = t3.$ti._eval$1("_ChainedEvaluation");
+ t2.toString;
+ t1._heroOpacity = new R._AnimatedEvaluation(type$.Animation_double._as(t2), new R._ChainedEvaluation(new R.CurveTween(new Z.Interval(t4, 1, C.C__Linear)), t3, t5), t5._eval$1("_AnimatedEvaluation"));
+ }
+ } else if (toHeroBox._size != null) {
+ t2 = $.GlobalKey__registry.$index(0, t1.manifest.toRoute._subtreeKey);
+ t2 = t2 == null ? _null : t2.get$renderObject();
+ toHeroOrigin = T.MatrixUtils_transformPoint(toHeroBox.getTransformTo$1(0, type$.nullable_RenderBox._as(t2)), C.Offset_0_0);
+ t2 = t1.get$heroRectTween().end;
+ if (!toHeroOrigin.$eq(0, new P.Offset(t2.left, t2.top))) {
+ t2 = t1.get$heroRectTween().end;
+ t3 = t2.right;
+ t4 = t2.left;
+ t5 = t2.bottom;
+ t2 = t2.top;
+ t6 = toHeroOrigin._dx;
+ t7 = toHeroOrigin._dy;
+ t2 = t1._doCreateRectTween$2(t1.get$heroRectTween().begin, new P.Rect(t6, t7, t6 + (t3 - t4), t7 + (t5 - t2)));
+ t1.___HeroFlight_heroRectTween_isSet = true;
+ t1.___HeroFlight_heroRectTween = t2;
+ }
+ }
+ t2 = t1.get$heroRectTween();
+ t3 = t1.get$_proxyAnimation();
+ t2.toString;
+ t3 = t2.transform$1(0, t3.get$value(t3));
+ t3.toString;
+ t2 = t1.manifest.navigatorRect;
+ t1 = t1._heroOpacity;
+ return T.Positioned$(t2.bottom - t2.top - t3.bottom, new T.IgnorePointer(true, _null, new T.RepaintBoundary(T.Opacity$(false, child, t1.get$value(t1)), _null), _null), _null, _null, t3.left, t2.right - t2.left - t3.right, t3.top, _null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 288
+ };
+ T._HeroFlight__handleAnimationUpdate_delayedPerformAnimtationUpdate.prototype = {
+ call$0: function() {
+ var t2,
+ t1 = this.$this;
+ t1._scheduledPerformAnimtationUpdate = false;
+ this.navigator.userGestureInProgressNotifier.removeListener$1(0, this);
+ t2 = t1.get$_proxyAnimation();
+ t1._performAnimationUpdate$1(t2.get$status(t2));
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ T.HeroController.prototype = {
+ didStopUserGesture$0: function() {
+ var t1, t2, invalidFlights, _i;
+ if (this._navigator$_navigator.userGestureInProgressNotifier._change_notifier$_value)
+ return;
+ t1 = this._flights;
+ t1 = t1.get$values(t1);
+ t2 = H._instanceType(t1)._eval$1("WhereIterable");
+ invalidFlights = P.List_List$of(new H.WhereIterable(t1, new T.HeroController_didStopUserGesture_isInvalidFlight(), t2), false, t2._eval$1("Iterable.E"));
+ for (t1 = invalidFlights.length, _i = 0; _i < t1; ++_i)
+ invalidFlights[_i]._handleAnimationUpdate$1(C.AnimationStatus_0);
+ },
+ _maybeStartHeroTransition$4: function(fromRoute, toRoute, flightType, isUserGestureTransition) {
+ var t1, animation;
+ if (toRoute != fromRoute && toRoute instanceof V.PageRoute && fromRoute instanceof V.PageRoute) {
+ if (flightType === C.HeroFlightDirection_0) {
+ t1 = toRoute._animationProxy;
+ t1.toString;
+ animation = t1;
+ } else {
+ t1 = fromRoute._animationProxy;
+ t1.toString;
+ animation = t1;
+ }
+ switch (flightType) {
+ case C.HeroFlightDirection_1:
+ if (animation.get$value(animation) === 0)
+ return;
+ break;
+ case C.HeroFlightDirection_0:
+ if (animation.get$value(animation) === 1)
+ return;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ if (isUserGestureTransition)
+ if (flightType === C.HeroFlightDirection_1) {
+ toRoute.toString;
+ t1 = true;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ this._startHeroTransition$5(fromRoute, toRoute, animation, flightType, isUserGestureTransition);
+ else {
+ t1 = toRoute._animationProxy;
+ toRoute.set$offstage(t1.get$value(t1) === 0);
+ $.WidgetsBinding__instance.SchedulerBinding__postFrameCallbacks.push(new T.HeroController__maybeStartHeroTransition_closure(this, fromRoute, toRoute, animation, flightType, isUserGestureTransition));
+ }
+ }
+ },
+ _startHeroTransition$5: function(from, to, animation, flightType, isUserGestureTransition) {
+ var t1, navigatorRect, t2, fromHeroes, t3, toHeroes, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, tag, isDiverted, t16, t17, t18, t19, manifest, t20, _this = this,
+ _s15_ = "_proxyAnimation",
+ _s13_ = "heroRectTween";
+ if (_this._navigator$_navigator == null || $.GlobalKey__registry.$index(0, from._subtreeKey) == null || $.GlobalKey__registry.$index(0, to._subtreeKey) == null) {
+ to.set$offstage(false);
+ return;
+ }
+ t1 = _this._navigator$_navigator._framework$_element;
+ t1.toString;
+ navigatorRect = T._boundingBoxFor(t1, null);
+ t1 = $.GlobalKey__registry.$index(0, from._subtreeKey);
+ t1.toString;
+ t2 = _this._navigator$_navigator;
+ t2.toString;
+ fromHeroes = T.Hero__allHeroesFor(t1, isUserGestureTransition, t2);
+ t2 = to._subtreeKey;
+ t1 = $.GlobalKey__registry.$index(0, t2);
+ t1.toString;
+ t3 = _this._navigator$_navigator;
+ t3.toString;
+ toHeroes = T.Hero__allHeroesFor(t1, isUserGestureTransition, t3);
+ to.set$offstage(false);
+ for (t1 = fromHeroes.get$keys(fromHeroes), t1 = t1.get$iterator(t1), t3 = _this._flights, t4 = _this.get$_handleFlightEnded(), t5 = type$.JSArray_of_void_Function_AnimationStatus, t6 = type$.ObserverList_of_void_Function_AnimationStatus, t7 = type$.JSArray_of_void_Function, t8 = type$.ObserverList_of_void_Function, t9 = _this.createRectTween, t10 = type$.Tween_double, t11 = type$.Animation_double, t12 = t10._eval$1("_AnimatedEvaluation"), t13 = type$.ReverseTween_nullable_Rect, t14 = flightType === C.HeroFlightDirection_0, t15 = flightType === C.HeroFlightDirection_1; t1.moveNext$0();) {
+ tag = t1.get$current(t1);
+ if (toHeroes.$index(0, tag) != null) {
+ fromHeroes.$index(0, tag)._widget.toString;
+ toHeroes.$index(0, tag)._widget.toString;
+ isDiverted = t3.$index(0, tag) != null;
+ t16 = _this._navigator$_navigator;
+ t16 = (t16.__NavigatorState__overlayKey_isSet ? t16.__NavigatorState__overlayKey : H.throwExpression(H.LateError$fieldNI("_overlayKey"))).get$currentState();
+ t17 = fromHeroes.$index(0, tag);
+ t17.toString;
+ t18 = toHeroes.$index(0, tag);
+ t18.toString;
+ t19 = $.$get$HeroController__defaultHeroFlightShuttleBuilder();
+ manifest = new T._HeroFlightManifest(flightType, t16, navigatorRect, from, to, t17, t18, t9, t19, isUserGestureTransition, isDiverted);
+ if (isDiverted) {
+ t16 = t3.$index(0, tag);
+ t19 = t16.manifest.type;
+ if (t19 === C.HeroFlightDirection_0 && t15) {
+ t17 = t16.___HeroFlight__proxyAnimation_isSet ? t16.___HeroFlight__proxyAnimation : H.throwExpression(H.LateError$fieldNI(_s15_));
+ t17.set$parent(0, new S.ReverseAnimation(manifest.get$animation(manifest), new R.ObserverList(H.setRuntimeTypeInfo([], t5), t6), 0));
+ t17 = t16.___HeroFlight_heroRectTween_isSet ? t16.___HeroFlight_heroRectTween : H.throwExpression(H.LateError$fieldNI(_s13_));
+ t18 = t17.end;
+ t19 = t17.begin;
+ t16.___HeroFlight_heroRectTween_isSet = true;
+ t16.___HeroFlight_heroRectTween = new R.ReverseTween(t17, t18, t19, t13);
+ } else if (t19 === C.HeroFlightDirection_1 && t14) {
+ t17 = t16.___HeroFlight__proxyAnimation_isSet ? t16.___HeroFlight__proxyAnimation : H.throwExpression(H.LateError$fieldNI(_s15_));
+ t19 = manifest.get$animation(manifest);
+ t20 = t16.manifest;
+ t20 = t20.get$animation(t20);
+ t20 = t20.get$value(t20);
+ t17.set$parent(0, new R._AnimatedEvaluation(t11._as(t19), new R.Tween(t20, 1, t10), t12));
+ t17 = t16.manifest.fromHero;
+ if (t17 !== t18) {
+ t17.toString;
+ t18.startFlight$0();
+ t17 = (t16.___HeroFlight_heroRectTween_isSet ? t16.___HeroFlight_heroRectTween : H.throwExpression(H.LateError$fieldNI(_s13_))).end;
+ t18 = t18._framework$_element;
+ t18.toString;
+ t18 = t16._doCreateRectTween$2(t17, T._boundingBoxFor(t18, $.GlobalKey__registry.$index(0, t2)));
+ t16.___HeroFlight_heroRectTween_isSet = true;
+ t16.___HeroFlight_heroRectTween = t18;
+ } else {
+ t17 = (t16.___HeroFlight_heroRectTween_isSet ? t16.___HeroFlight_heroRectTween : H.throwExpression(H.LateError$fieldNI(_s13_))).end;
+ t17 = t16._doCreateRectTween$2(t17, (t16.___HeroFlight_heroRectTween_isSet ? t16.___HeroFlight_heroRectTween : H.throwExpression(H.LateError$fieldNI(_s13_))).begin);
+ t16.___HeroFlight_heroRectTween_isSet = true;
+ t16.___HeroFlight_heroRectTween = t17;
+ }
+ } else {
+ t19 = t16.___HeroFlight_heroRectTween_isSet ? t16.___HeroFlight_heroRectTween : H.throwExpression(H.LateError$fieldNI(_s13_));
+ t20 = t16.___HeroFlight__proxyAnimation_isSet ? t16.___HeroFlight__proxyAnimation : H.throwExpression(H.LateError$fieldNI(_s15_));
+ t19.toString;
+ t20 = t19.transform$1(0, t20.get$value(t20));
+ t19 = t18._framework$_element;
+ t19.toString;
+ t19 = t16._doCreateRectTween$2(t20, T._boundingBoxFor(t19, $.GlobalKey__registry.$index(0, t2)));
+ t16.___HeroFlight_heroRectTween_isSet = true;
+ t16.___HeroFlight_heroRectTween = t19;
+ t16.shuttle = null;
+ if (t15) {
+ t19 = t16.___HeroFlight__proxyAnimation_isSet ? t16.___HeroFlight__proxyAnimation : H.throwExpression(H.LateError$fieldNI(_s15_));
+ t19.set$parent(0, new S.ReverseAnimation(manifest.get$animation(manifest), new R.ObserverList(H.setRuntimeTypeInfo([], t5), t6), 0));
+ } else {
+ t19 = t16.___HeroFlight__proxyAnimation_isSet ? t16.___HeroFlight__proxyAnimation : H.throwExpression(H.LateError$fieldNI(_s15_));
+ t19.set$parent(0, manifest.get$animation(manifest));
+ }
+ t19 = t16.manifest;
+ t19.fromHero.toString;
+ t19.toHero.toString;
+ t17.startFlight$1$shouldIncludedChildInPlaceholder(t14);
+ t18.startFlight$0();
+ t17 = t16.overlayEntry._key.get$currentState();
+ if (t17 != null)
+ t17._markNeedsBuild$0();
+ }
+ t16._aborted = false;
+ t16.manifest = manifest;
+ } else {
+ t16 = new T._HeroFlight(t4, C.C__AlwaysCompleteAnimation);
+ t17 = H.setRuntimeTypeInfo([], t5);
+ t18 = new R.ObserverList(t17, t6);
+ t19 = new S.ProxyAnimation(t18, new R.ObserverList(H.setRuntimeTypeInfo([], t7), t8), 0);
+ t19._status = C.AnimationStatus_0;
+ t19._animations$_value = 0;
+ t19.didRegisterListener$0();
+ t18._isDirty = true;
+ t17.push(t16.get$_handleAnimationUpdate());
+ t16.___HeroFlight__proxyAnimation_isSet = true;
+ t16.___HeroFlight__proxyAnimation = t19;
+ t16.start$1(0, manifest);
+ t3.$indexSet(0, tag, t16);
+ }
+ } else if (t3.$index(0, tag) != null)
+ t3.$index(0, tag)._aborted = true;
+ }
+ for (t1 = toHeroes.get$keys(toHeroes), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
+ tag = t1.get$current(t1);
+ if (fromHeroes.$index(0, tag) == null)
+ toHeroes.$index(0, tag).ensurePlaceholderIsHidden$0();
+ }
+ },
+ _handleFlightEnded$1: function(flight) {
+ this._flights.remove$1(0, flight.manifest.fromHero._widget.tag);
+ }
+ };
+ T.HeroController_didStopUserGesture_isInvalidFlight.prototype = {
+ call$1: function(flight) {
+ var t1 = flight.manifest;
+ if (t1.isUserGestureTransition)
+ if (t1.type === C.HeroFlightDirection_1) {
+ t1 = flight.get$_proxyAnimation();
+ t1 = t1.get$status(t1) === C.AnimationStatus_0;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ $signature: 290
+ };
+ T.HeroController__maybeStartHeroTransition_closure.prototype = {
+ call$1: function(value) {
+ var _this = this;
+ _this.$this._startHeroTransition$5(_this.from, _this.to, _this.animation, _this.flightType, _this.isUserGestureTransition);
+ },
+ $signature: 4
+ };
+ T.HeroController_closure.prototype = {
+ call$5: function(flightContext, animation, flightDirection, fromHeroContext, toHeroContext) {
+ return type$.Hero._as(toHeroContext.get$widget()).child;
+ },
+ "call*": "call$5",
+ $requiredArgCount: 5,
+ $signature: 291
+ };
+ L.Icon.prototype = {
+ build$1: function(_, context) {
+ var textDirection, iconThemeData, t2, iconTheme, t3, iconSize, iconOpacity, iconColor, iconWidget, _null = null,
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ textDirection = t1.textDirection;
+ iconThemeData = Y.IconTheme__getInheritedIconThemeData(context).resolve$1(context);
+ t1 = iconThemeData.color;
+ t2 = t1 == null;
+ if (!t2 && iconThemeData.get$opacity(iconThemeData) != null && iconThemeData.size != null)
+ iconTheme = iconThemeData;
+ else {
+ t3 = iconThemeData.size;
+ if (t3 == null)
+ t3 = 24;
+ if (t2)
+ t1 = C.Color_4278190080;
+ t2 = iconThemeData.get$opacity(iconThemeData);
+ iconTheme = iconThemeData.copyWith$3$color$opacity$size(t1, t2 == null ? C.IconThemeData_Color_4278190080_1_24.get$opacity(C.IconThemeData_Color_4278190080_1_24) : t2, t3);
+ }
+ iconSize = iconTheme.size;
+ iconOpacity = iconTheme.get$opacity(iconTheme);
+ if (iconOpacity == null)
+ iconOpacity = 1;
+ t1 = iconTheme.color;
+ t1.toString;
+ iconColor = t1;
+ if (iconOpacity !== 1)
+ iconColor = P.Color$fromARGB(C.JSNumber_methods.round$0(255 * ((iconColor.get$value(iconColor) >>> 24 & 255) / 255 * iconOpacity)), iconColor.get$value(iconColor) >>> 16 & 255, iconColor.get$value(iconColor) >>> 8 & 255, iconColor.get$value(iconColor) & 255);
+ t1 = this.icon;
+ iconWidget = T.RichText$(_null, _null, C.TextOverflow_3, true, _null, new Q.TextSpan(H.Primitives_stringFromCharCode(t1.codePoint), _null, A.TextStyle$(_null, _null, iconColor, _null, _null, _null, _null, _null, "MaterialIcons", _null, _null, iconSize, _null, _null, _null, _null, false, _null, _null, _null, _null, _null, _null)), C.TextAlign_4, textDirection, _null, 1, C.TextWidthBasis_0);
+ if (t1.matchTextDirection)
+ switch (textDirection) {
+ case C.TextDirection_0:
+ t1 = new E.Matrix4(new Float64Array(16));
+ t1.setIdentity$0();
+ t1.scale$3(0, -1, 1, 1);
+ iconWidget = T.Transform$(C.Alignment_0_0, iconWidget, t1, false);
+ break;
+ case C.TextDirection_1:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ return T.Semantics$(_null, new T.ExcludeSemantics(true, T.SizedBox$(T.Center$(iconWidget, _null, _null), iconSize, iconSize), _null), false, _null, _null, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ }
+ };
+ X.IconData.prototype = {
+ $eq: function(_, other) {
+ var t1;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ if (other instanceof X.IconData)
+ if (other.codePoint === this.codePoint)
+ t1 = other.matchTextDirection === this.matchTextDirection;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ return P.hashValues(this.codePoint, "MaterialIcons", null, this.matchTextDirection, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ return "IconData(U+" + C.JSString_methods.padLeft$2(C.JSInt_methods.toRadixString$1(this.codePoint, 16).toUpperCase(), 5, "0") + ")";
+ }
+ };
+ Y.IconTheme.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return !this.data.$eq(0, oldWidget.data);
+ },
+ wrap$2: function(_, context, child) {
+ return Y.IconTheme$(child, this.data, null);
+ }
+ };
+ Y.IconTheme_merge_closure.prototype = {
+ call$1: function(context) {
+ return Y.IconTheme$(this.child, Y.IconTheme__getInheritedIconThemeData(context).merge$1(this.data), this.key);
+ },
+ $signature: 292
+ };
+ T.IconThemeData.prototype = {
+ copyWith$3$color$opacity$size: function(color, opacity, size) {
+ var _this = this,
+ t1 = color == null ? _this.color : color,
+ t2 = opacity == null ? _this.get$opacity(_this) : opacity;
+ return new T.IconThemeData(t1, t2, size == null ? _this.size : size);
+ },
+ merge$1: function(other) {
+ if (other == null)
+ return this;
+ return this.copyWith$3$color$opacity$size(other.color, other.get$opacity(other), other.size);
+ },
+ resolve$1: function(context) {
+ return this;
+ },
+ get$opacity: function(_) {
+ var t1 = this._icon_theme_data$_opacity;
+ return t1 == null ? null : C.JSNumber_methods.clamp$2(t1, 0, 1);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ return other instanceof T.IconThemeData && J.$eq$(other.color, _this.color) && other.get$opacity(other) == _this.get$opacity(_this) && other.size == _this.size;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.color, _this.get$opacity(_this), _this.size, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ }
+ };
+ T._IconThemeData_Object_Diagnosticable.prototype = {};
+ G.DecorationTween.prototype = {
+ lerp$1: function(t) {
+ var t1 = Z.Decoration_lerp(this.begin, this.end, t);
+ t1.toString;
+ return t1;
+ }
+ };
+ G.EdgeInsetsGeometryTween.prototype = {
+ lerp$1: function(t) {
+ var t1 = V.EdgeInsetsGeometry_lerp(this.begin, this.end, t);
+ t1.toString;
+ return t1;
+ }
+ };
+ G.BorderRadiusTween.prototype = {
+ lerp$1: function(t) {
+ var t1 = K.BorderRadius_lerp(this.begin, this.end, t);
+ t1.toString;
+ return t1;
+ }
+ };
+ G.TextStyleTween.prototype = {
+ lerp$1: function(t) {
+ var t1 = A.TextStyle_lerp(this.begin, this.end, t);
+ t1.toString;
+ return t1;
+ }
+ };
+ G.ImplicitlyAnimatedWidget.prototype = {};
+ G.ImplicitlyAnimatedWidgetState.prototype = {
+ initState$0: function() {
+ var t1, _this = this;
+ _this.super$State$initState();
+ t1 = _this._widget.duration;
+ t1 = G.AnimationController$(null, t1, 0, null, 1, null, _this);
+ _this._implicit_animations$_controller = t1;
+ t1.addStatusListener$1(new G.ImplicitlyAnimatedWidgetState_initState_closure(_this));
+ _this._updateCurve$0();
+ _this._constructTweens$0();
+ _this.didUpdateTweens$0();
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ if (_this._widget.curve !== oldWidget.curve)
+ _this._updateCurve$0();
+ t1 = _this._implicit_animations$_controller;
+ t1.toString;
+ t1.duration = _this._widget.duration;
+ if (_this._constructTweens$0()) {
+ _this.forEachTween$1(new G.ImplicitlyAnimatedWidgetState_didUpdateWidget_closure(_this));
+ t1 = _this._implicit_animations$_controller;
+ t1.set$value(0, 0);
+ t1.forward$0(0);
+ _this.didUpdateTweens$0();
+ }
+ },
+ _updateCurve$0: function() {
+ var t1 = this._implicit_animations$_controller;
+ t1.toString;
+ this._animation = S.CurvedAnimation$(this._widget.curve, t1, null);
+ },
+ dispose$0: function(_) {
+ this._implicit_animations$_controller.dispose$0(0);
+ this.super$_ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin$dispose(0);
+ },
+ _updateTween$2: function(tween, targetValue) {
+ var t1;
+ if (tween == null)
+ return;
+ t1 = this._animation;
+ tween.set$begin(tween.transform$1(0, t1.get$value(t1)));
+ tween.set$end(0, targetValue);
+ },
+ _constructTweens$0: function() {
+ var t1 = {};
+ t1.shouldStartAnimation = false;
+ this.forEachTween$1(new G.ImplicitlyAnimatedWidgetState__constructTweens_closure(t1, this));
+ return t1.shouldStartAnimation;
+ },
+ didUpdateTweens$0: function() {
+ }
+ };
+ G.ImplicitlyAnimatedWidgetState_initState_closure.prototype = {
+ call$1: function($status) {
+ switch ($status) {
+ case C.AnimationStatus_3:
+ this.$this._widget.toString;
+ break;
+ case C.AnimationStatus_0:
+ case C.AnimationStatus_1:
+ case C.AnimationStatus_2:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $signature: 7
+ };
+ G.ImplicitlyAnimatedWidgetState_didUpdateWidget_closure.prototype = {
+ call$3: function(tween, targetValue, $constructor) {
+ this.$this._updateTween$2(tween, targetValue);
+ return tween;
+ },
+ $signature: 117
+ };
+ G.ImplicitlyAnimatedWidgetState__constructTweens_closure.prototype = {
+ call$3: function(tween, targetValue, $constructor) {
+ var t1;
+ if (targetValue != null) {
+ if (tween == null)
+ tween = $constructor.call$1(targetValue);
+ t1 = tween.end;
+ if (!J.$eq$(targetValue, t1 == null ? tween.begin : t1))
+ this._box_0.shouldStartAnimation = true;
+ } else
+ tween = null;
+ return tween;
+ },
+ $signature: 117
+ };
+ G.AnimatedWidgetBaseState.prototype = {
+ initState$0: function() {
+ this.super$ImplicitlyAnimatedWidgetState$initState();
+ var t1 = this._implicit_animations$_controller;
+ t1.didRegisterListener$0();
+ t1 = t1.AnimationLocalListenersMixin__listeners;
+ t1._isDirty = true;
+ t1._observer_list$_list.push(this.get$_handleAnimationChanged());
+ },
+ _handleAnimationChanged$0: function() {
+ this.setState$1(new G.AnimatedWidgetBaseState__handleAnimationChanged_closure());
+ }
+ };
+ G.AnimatedWidgetBaseState__handleAnimationChanged_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ G.AnimatedPadding.prototype = {
+ createState$0: function() {
+ return new G._AnimatedPaddingState(null, C._StateLifecycle_0);
+ }
+ };
+ G._AnimatedPaddingState.prototype = {
+ forEachTween$1: function(visitor) {
+ this._implicit_animations$_padding = type$.nullable_EdgeInsetsGeometryTween._as(visitor.call$3(this._implicit_animations$_padding, this._widget.padding, new G._AnimatedPaddingState_forEachTween_closure()));
+ },
+ build$1: function(_, context) {
+ var t2,
+ t1 = this._implicit_animations$_padding;
+ t1.toString;
+ t2 = this._animation;
+ return new T.Padding(J.clamp$2$n(t1.transform$1(0, t2.get$value(t2)), C.EdgeInsets_0_0_0_0, C._MixedEdgeInsets_QWq), this._widget.child, null);
+ }
+ };
+ G._AnimatedPaddingState_forEachTween_closure.prototype = {
+ call$1: function(value) {
+ return new G.EdgeInsetsGeometryTween(type$.EdgeInsetsGeometry._as(value), null);
+ },
+ $signature: 294
+ };
+ G.AnimatedOpacity.prototype = {
+ createState$0: function() {
+ return new G._AnimatedOpacityState(null, C._StateLifecycle_0);
+ }
+ };
+ G._AnimatedOpacityState.prototype = {
+ forEachTween$1: function(visitor) {
+ this._implicit_animations$_opacity = type$.nullable_Tween_double._as(visitor.call$3(this._implicit_animations$_opacity, this._widget.opacity, new G._AnimatedOpacityState_forEachTween_closure()));
+ },
+ didUpdateTweens$0: function() {
+ var t2, _this = this,
+ t1 = _this._animation;
+ t1.toString;
+ t2 = _this._implicit_animations$_opacity;
+ t2.toString;
+ type$.Animation_double._as(t1);
+ _this.___AnimatedOpacityState__opacityAnimation_isSet = true;
+ _this.___AnimatedOpacityState__opacityAnimation = new R._AnimatedEvaluation(t1, t2, H._instanceType(t2)._eval$1("_AnimatedEvaluation"));
+ },
+ build$1: function(_, context) {
+ var t1 = this.___AnimatedOpacityState__opacityAnimation_isSet ? this.___AnimatedOpacityState__opacityAnimation : H.throwExpression(H.LateError$fieldNI("_opacityAnimation")),
+ t2 = this._widget,
+ t3 = t2.child;
+ return K.FadeTransition$(t2.alwaysIncludeSemantics, t3, t1);
+ }
+ };
+ G._AnimatedOpacityState_forEachTween_closure.prototype = {
+ call$1: function(value) {
+ return new R.Tween(H._asDoubleS(value), null, type$.Tween_double);
+ },
+ $signature: 71
+ };
+ G.AnimatedDefaultTextStyle.prototype = {
+ createState$0: function() {
+ return new G._AnimatedDefaultTextStyleState(null, C._StateLifecycle_0);
+ }
+ };
+ G._AnimatedDefaultTextStyleState.prototype = {
+ forEachTween$1: function(visitor) {
+ this._implicit_animations$_style = type$.nullable_TextStyleTween._as(visitor.call$3(this._implicit_animations$_style, this._widget.style, new G._AnimatedDefaultTextStyleState_forEachTween_closure()));
+ },
+ build$1: function(_, context) {
+ var t2, _null = null,
+ t1 = this._implicit_animations$_style;
+ t1.toString;
+ t2 = this._animation;
+ t2 = t1.transform$1(0, t2.get$value(t2));
+ return L.DefaultTextStyle$(this._widget.child, _null, _null, C.TextOverflow_0, true, t2, _null, _null, C.TextWidthBasis_0);
+ }
+ };
+ G._AnimatedDefaultTextStyleState_forEachTween_closure.prototype = {
+ call$1: function(value) {
+ return new G.TextStyleTween(type$.TextStyle._as(value), null);
+ },
+ $signature: 295
+ };
+ G.AnimatedPhysicalModel.prototype = {
+ createState$0: function() {
+ return new G._AnimatedPhysicalModelState(null, C._StateLifecycle_0);
+ }
+ };
+ G._AnimatedPhysicalModelState.prototype = {
+ forEachTween$1: function(visitor) {
+ var t1, _this = this;
+ _this._borderRadius = type$.nullable_BorderRadiusTween._as(visitor.call$3(_this._borderRadius, _this._widget.borderRadius, new G._AnimatedPhysicalModelState_forEachTween_closure()));
+ _this._implicit_animations$_elevation = type$.nullable_Tween_double._as(visitor.call$3(_this._implicit_animations$_elevation, _this._widget.elevation, new G._AnimatedPhysicalModelState_forEachTween_closure0()));
+ t1 = type$.nullable_ColorTween;
+ _this._implicit_animations$_color = t1._as(visitor.call$3(_this._implicit_animations$_color, _this._widget.color, new G._AnimatedPhysicalModelState_forEachTween_closure1()));
+ _this._implicit_animations$_shadowColor = t1._as(visitor.call$3(_this._implicit_animations$_shadowColor, _this._widget.shadowColor, new G._AnimatedPhysicalModelState_forEachTween_closure2()));
+ },
+ build$1: function(_, context) {
+ var t4, t5, t6, t7, t8, _this = this,
+ t1 = _this._widget,
+ t2 = t1.child,
+ t3 = t1.shape;
+ t1 = t1.clipBehavior;
+ t4 = _this._borderRadius;
+ t4.toString;
+ t5 = _this._animation;
+ t5 = t4.transform$1(0, t5.get$value(t5));
+ t4 = _this._implicit_animations$_elevation;
+ t4.toString;
+ t6 = _this._animation;
+ t6 = t4.transform$1(0, t6.get$value(t6));
+ t4 = _this._widget.color;
+ t7 = _this._implicit_animations$_shadowColor;
+ t7.toString;
+ t8 = _this._animation;
+ t8 = t7.transform$1(0, t8.get$value(t8));
+ t8.toString;
+ t7 = t8;
+ return new T.PhysicalModel(t3, t1, t5, t6, t4, t7, t2, null);
+ }
+ };
+ G._AnimatedPhysicalModelState_forEachTween_closure.prototype = {
+ call$1: function(value) {
+ return new G.BorderRadiusTween(type$.BorderRadius._as(value), null);
+ },
+ $signature: 296
+ };
+ G._AnimatedPhysicalModelState_forEachTween_closure0.prototype = {
+ call$1: function(value) {
+ return new R.Tween(H._asDoubleS(value), null, type$.Tween_double);
+ },
+ $signature: 71
+ };
+ G._AnimatedPhysicalModelState_forEachTween_closure1.prototype = {
+ call$1: function(value) {
+ return new R.ColorTween(type$.Color._as(value), null);
+ },
+ $signature: 70
+ };
+ G._AnimatedPhysicalModelState_forEachTween_closure2.prototype = {
+ call$1: function(value) {
+ return new R.ColorTween(type$.Color._as(value), null);
+ },
+ $signature: 70
+ };
+ G._ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var t2,
+ t1 = this.SingleTickerProviderStateMixin__ticker;
+ if (t1 != null) {
+ t2 = this._framework$_element;
+ t2.toString;
+ t1.set$muted(0, !U.TickerMode_of(t2));
+ }
+ this.super$State$didChangeDependencies();
+ }
+ };
+ S.InheritedNotifier.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return oldWidget.notifier != this.notifier;
+ },
+ createElement$0: function(_) {
+ var t1 = type$.Element_2,
+ t2 = P.HashMap_HashMap(t1, type$.nullable_Object),
+ t3 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t3;
+ t1 = new S._InheritedNotifierElement(t2, t3, this, C._ElementLifecycle_0, P.HashSet_HashSet(t1), H._instanceType(this)._eval$1("_InheritedNotifierElement"));
+ t3 = this.notifier;
+ if (t3 != null) {
+ t2 = t3.ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(t1.get$_handleUpdate()), false);
+ }
+ return t1;
+ }
+ };
+ S._InheritedNotifierElement.prototype = {
+ get$widget: function() {
+ return this.$ti._eval$1("InheritedNotifier<1>")._as(N.InheritedElement.prototype.get$widget.call(this));
+ },
+ update$1: function(_, newWidget) {
+ var t1, _this = this,
+ oldNotifier = _this.$ti._eval$1("InheritedNotifier<1>")._as(N.InheritedElement.prototype.get$widget.call(_this)).notifier,
+ newNotifier = newWidget.notifier;
+ if (oldNotifier != newNotifier) {
+ if (oldNotifier != null)
+ oldNotifier.removeListener$1(0, _this.get$_handleUpdate());
+ if (newNotifier != null) {
+ t1 = newNotifier.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(_this.get$_handleUpdate()), false);
+ }
+ }
+ _this.super$ProxyElement$update(0, newWidget);
+ },
+ build$0: function(_) {
+ var _this = this;
+ if (_this._inherited_notifier$_dirty) {
+ _this.super$InheritedElement$notifyClients(_this.$ti._eval$1("InheritedNotifier<1>")._as(N.InheritedElement.prototype.get$widget.call(_this)));
+ _this._inherited_notifier$_dirty = false;
+ }
+ return _this.super$ProxyElement$build(0);
+ },
+ _handleUpdate$0: function() {
+ this._inherited_notifier$_dirty = true;
+ this.markNeedsBuild$0();
+ },
+ notifyClients$1: function(oldWidget) {
+ this.super$InheritedElement$notifyClients(oldWidget);
+ this._inherited_notifier$_dirty = false;
+ },
+ unmount$0: function() {
+ var _this = this,
+ t1 = _this.$ti._eval$1("InheritedNotifier<1>")._as(N.InheritedElement.prototype.get$widget.call(_this)).notifier;
+ if (t1 != null)
+ t1.removeListener$1(0, _this.get$_handleUpdate());
+ _this.super$Element$unmount();
+ }
+ };
+ M.InheritedTheme.prototype = {};
+ M.InheritedTheme_capture__debugDidFindAncestor_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._debugDidFindAncestor_isSet = true;
+ return t2.debugDidFindAncestor = t1;
+ },
+ $signature: 297
+ };
+ M.InheritedTheme_capture_closure.prototype = {
+ call$1: function(ancestor) {
+ var theme, themeType, t1;
+ if (ancestor.$eq(0, this.to))
+ return false;
+ if (ancestor instanceof N.InheritedElement && ancestor.get$widget() instanceof M.InheritedTheme) {
+ theme = type$.InheritedTheme._as(ancestor.get$widget());
+ themeType = J.get$runtimeType$(theme);
+ t1 = this.themeTypes;
+ if (!t1.contains$1(0, themeType)) {
+ t1.add$1(0, themeType);
+ this.themes.push(theme);
+ }
+ }
+ return true;
+ },
+ $signature: 24
+ };
+ M.CapturedThemes.prototype = {};
+ M._CaptureAll.prototype = {
+ build$1: function(_, context) {
+ var t1, t2, _i,
+ wrappedChild = this.child;
+ for (t1 = this.themes, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ wrappedChild = t1[_i].wrap$2(0, context, wrappedChild);
+ return wrappedChild;
+ }
+ };
+ A.ConstrainedLayoutBuilder.prototype = {
+ createElement$0: function(_) {
+ var t1 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t1;
+ return new A._LayoutBuilderElement(t1, this, C._ElementLifecycle_0, P.HashSet_HashSet(type$.Element_2), H._instanceType(this)._eval$1("_LayoutBuilderElement"));
+ }
+ };
+ A._LayoutBuilderElement.prototype = {
+ get$widget: function() {
+ return this.$ti._eval$1("ConstrainedLayoutBuilder<1>")._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ },
+ get$renderObject: function() {
+ return this.$ti._eval$1("RenderConstrainedLayoutBuilder<1,RenderObject>")._as(N.RenderObjectElement.prototype.get$renderObject.call(this));
+ },
+ visitChildren$1: function(visitor) {
+ var t1 = this._layout_builder$_child;
+ if (t1 != null)
+ visitor.call$1(t1);
+ },
+ forgetChild$1: function(child) {
+ this._layout_builder$_child = null;
+ this.super$Element$forgetChild(child);
+ },
+ mount$2: function($parent, newSlot) {
+ var _this = this;
+ _this.super$RenderObjectElement$mount($parent, newSlot);
+ _this.$ti._eval$1("RenderConstrainedLayoutBuilder<1,RenderObject>")._as(N.RenderObjectElement.prototype.get$renderObject.call(_this)).updateCallback$1(_this.get$_layout());
+ },
+ update$1: function(_, newWidget) {
+ var t1, _this = this;
+ _this.super$RenderObjectElement$update(0, newWidget);
+ t1 = _this.$ti._eval$1("RenderConstrainedLayoutBuilder<1,RenderObject>");
+ t1._as(N.RenderObjectElement.prototype.get$renderObject.call(_this)).updateCallback$1(_this.get$_layout());
+ t1 = t1._as(N.RenderObjectElement.prototype.get$renderObject.call(_this));
+ t1.RenderConstrainedLayoutBuilder__needsBuild = true;
+ t1.markNeedsLayout$0();
+ },
+ performRebuild$0: function() {
+ var t1 = this.$ti._eval$1("RenderConstrainedLayoutBuilder<1,RenderObject>")._as(N.RenderObjectElement.prototype.get$renderObject.call(this));
+ t1.RenderConstrainedLayoutBuilder__needsBuild = true;
+ t1.markNeedsLayout$0();
+ this.super$RenderObjectElement$performRebuild();
+ },
+ unmount$0: function() {
+ this.$ti._eval$1("RenderConstrainedLayoutBuilder<1,RenderObject>")._as(N.RenderObjectElement.prototype.get$renderObject.call(this)).updateCallback$1(null);
+ this.super$RenderObjectElement$unmount();
+ },
+ _layout$1: function(constraints) {
+ this._owner.buildScope$2(this, new A._LayoutBuilderElement__layout_closure(this, constraints));
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ this.$ti._eval$1("RenderConstrainedLayoutBuilder<1,RenderObject>")._as(N.RenderObjectElement.prototype.get$renderObject.call(this)).set$child(child);
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ this.$ti._eval$1("RenderConstrainedLayoutBuilder<1,RenderObject>")._as(N.RenderObjectElement.prototype.get$renderObject.call(this)).set$child(null);
+ }
+ };
+ A._LayoutBuilderElement__layout_closure.prototype = {
+ call$0: function() {
+ var e, stack, e0, stack0, t1, t2, t3, exception, built0, _this = this, built = null;
+ try {
+ t1 = _this.$this;
+ t2 = t1.$ti._eval$1("ConstrainedLayoutBuilder<1>");
+ t3 = t2._as(N.RenderObjectElement.prototype.get$widget.call(t1));
+ t3.toString;
+ built = t3.builder.call$2(t1, _this.constraints);
+ t2._as(N.RenderObjectElement.prototype.get$widget.call(t1));
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ stack = H.getTraceFromException(exception);
+ t1 = _this.$this;
+ built0 = N.ErrorWidget__defaultErrorWidgetBuilder(A._debugReportException0(U.ErrorDescription$("building " + H.S(t1.$ti._eval$1("ConstrainedLayoutBuilder<1>")._as(N.RenderObjectElement.prototype.get$widget.call(t1)))), e, stack, new A._LayoutBuilderElement__layout__closure(t1)));
+ built = built0;
+ }
+ try {
+ t1 = _this.$this;
+ t1._layout_builder$_child = t1.updateChild$3(t1._layout_builder$_child, built, null);
+ } catch (exception) {
+ e0 = H.unwrapException(exception);
+ stack0 = H.getTraceFromException(exception);
+ t1 = _this.$this;
+ built0 = N.ErrorWidget__defaultErrorWidgetBuilder(A._debugReportException0(U.ErrorDescription$("building " + H.S(t1.$ti._eval$1("ConstrainedLayoutBuilder<1>")._as(N.RenderObjectElement.prototype.get$widget.call(t1)))), e0, stack0, new A._LayoutBuilderElement__layout__closure0(t1)));
+ built = built0;
+ t1._layout_builder$_child = t1.updateChild$3(null, built, t1._slot);
+ }
+ },
+ $signature: 0
+ };
+ A._LayoutBuilderElement__layout__closure.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return K.DiagnosticsDebugCreator$(new N.DebugCreator($async$self.$this));
+ case 2:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ A._LayoutBuilderElement__layout__closure0.prototype = {
+ call$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError;
+ return function $async$call$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return K.DiagnosticsDebugCreator$(new N.DebugCreator($async$self.$this));
+ case 2:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.DiagnosticsNode);
+ },
+ $signature: 17
+ };
+ A.RenderConstrainedLayoutBuilder.prototype = {
+ updateCallback$1: function(value) {
+ if (J.$eq$(value, this.RenderConstrainedLayoutBuilder__callback))
+ return;
+ this.RenderConstrainedLayoutBuilder__callback = value;
+ this.markNeedsLayout$0();
+ }
+ };
+ A.LayoutBuilder.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new A._RenderLayoutBuilder(null, true, null, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ return t1;
+ }
+ };
+ A._RenderLayoutBuilder.prototype = {
+ computeMinIntrinsicWidth$1: function(height) {
+ return 0;
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ return 0;
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return 0;
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return 0;
+ },
+ performLayout$0: function() {
+ var _this = this,
+ t1 = type$.BoxConstraints,
+ constraints = t1._as(K.RenderObject.prototype.get$constraints.call(_this));
+ if (_this.RenderConstrainedLayoutBuilder__needsBuild || !J.$eq$(t1._as(K.RenderObject.prototype.get$constraints.call(_this)), _this.RenderConstrainedLayoutBuilder__previousConstraints)) {
+ _this.RenderConstrainedLayoutBuilder__previousConstraints = t1._as(K.RenderObject.prototype.get$constraints.call(_this));
+ _this.RenderConstrainedLayoutBuilder__needsBuild = false;
+ t1 = _this.RenderConstrainedLayoutBuilder__callback;
+ t1.toString;
+ _this.invokeLayoutCallback$1$1(t1, H._instanceType(_this)._eval$1("RenderConstrainedLayoutBuilder.0"));
+ }
+ t1 = _this.RenderObjectWithChildMixin__child;
+ if (t1 != null) {
+ t1.layout$2$parentUsesSize(0, constraints, true);
+ t1 = _this.RenderObjectWithChildMixin__child._size;
+ t1.toString;
+ _this._size = constraints.constrain$1(t1);
+ } else
+ _this._size = new P.Size(C.JSInt_methods.clamp$2(1 / 0, constraints.minWidth, constraints.maxWidth), C.JSInt_methods.clamp$2(1 / 0, constraints.minHeight, constraints.maxHeight));
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ return t1.getDistanceToActualBaseline$1(baseline);
+ return this.super$RenderBox$computeDistanceToActualBaseline(baseline);
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ t1 = t1 == null ? null : t1.hitTest$2$position(result, position);
+ return t1 === true;
+ },
+ paint$2: function(context, offset) {
+ var t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ context.paintChild$2(t1, offset);
+ }
+ };
+ A.__RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin.prototype = {
+ attach$1: function(owner) {
+ var t1;
+ this.super$RenderObject$attach(owner);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.attach$1(owner);
+ },
+ detach$0: function(_) {
+ var t1;
+ this.super$AbstractNode$detach(0);
+ t1 = this.RenderObjectWithChildMixin__child;
+ if (t1 != null)
+ t1.detach$0(0);
+ }
+ };
+ A.__RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin_RenderConstrainedLayoutBuilder.prototype = {};
+ L._Pending.prototype = {};
+ L._loadAll_closure.prototype = {
+ call$1: function(value) {
+ return this._box_0.completedValue = value;
+ },
+ $signature: 34
+ };
+ L._loadAll_closure0.prototype = {
+ call$1: function(p) {
+ return p.futureValue;
+ },
+ $signature: 298
+ };
+ L._loadAll_closure1.prototype = {
+ call$1: function(values) {
+ var t1, t2, t3, i;
+ for (t1 = J.getInterceptor$asx(values), t2 = this._box_1, t3 = this.output, i = 0; i < t1.get$length(values); ++i)
+ t3.$indexSet(0, H.createRuntimeType(H._instanceType(t2.pendingList[i].delegate)._eval$1("LocalizationsDelegate.T")), t1.$index(values, i));
+ return t3;
+ },
+ $signature: 299
+ };
+ L.LocalizationsDelegate.prototype = {
+ toString$0: function(_) {
+ return "LocalizationsDelegate[" + H.createRuntimeType(H._instanceType(this)._eval$1("LocalizationsDelegate.T")).toString$0(0) + "]";
+ }
+ };
+ L._WidgetsLocalizationsDelegate.prototype = {
+ isSupported$1: function(locale) {
+ return true;
+ },
+ load$1: function(_, locale) {
+ return new O.SynchronousFuture(C.C_DefaultWidgetsLocalizations, type$.SynchronousFuture_WidgetsLocalizations);
+ },
+ shouldReload$1: function(old) {
+ return false;
+ },
+ toString$0: function(_) {
+ return "DefaultWidgetsLocalizations.delegate(en_US)";
+ }
+ };
+ L.DefaultWidgetsLocalizations.prototype = {$isWidgetsLocalizations: 1};
+ L._LocalizationsScope.prototype = {
+ updateShouldNotify$1: function(old) {
+ var t1 = this.typeToResources,
+ t2 = old.typeToResources;
+ return t1 == null ? t2 != null : t1 !== t2;
+ }
+ };
+ L.Localizations.prototype = {
+ createState$0: function() {
+ return new L._LocalizationsState(new N.LabeledGlobalKey(null, type$.LabeledGlobalKey_State_StatefulWidget), P.LinkedHashMap_LinkedHashMap$_empty(type$.Type, type$.dynamic), C._StateLifecycle_0);
+ }
+ };
+ L._LocalizationsState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this.load$1(0, this._widget.locale);
+ },
+ _anyDelegatesShouldReload$1: function(old) {
+ var delegates, oldDelegates, i, delegate, oldDelegate,
+ t1 = this._widget.delegates,
+ t2 = old.delegates;
+ if (t1.length !== t2.length)
+ return true;
+ delegates = H.setRuntimeTypeInfo(t1.slice(0), H._arrayInstanceType(t1));
+ oldDelegates = H.setRuntimeTypeInfo(t2.slice(0), H._arrayInstanceType(t2));
+ for (i = 0; i < delegates.length; ++i) {
+ delegate = delegates[i];
+ oldDelegate = oldDelegates[i];
+ if (J.get$runtimeType$(delegate) === J.get$runtimeType$(oldDelegate)) {
+ delegate.shouldReload$1(oldDelegate);
+ t1 = false;
+ } else
+ t1 = true;
+ if (t1)
+ return true;
+ }
+ return false;
+ },
+ didUpdateWidget$1: function(old) {
+ var t1, _this = this;
+ _this.super$State$didUpdateWidget(old);
+ if (J.$eq$(_this._widget.locale, old.locale)) {
+ _this._widget.toString;
+ t1 = _this._anyDelegatesShouldReload$1(old);
+ } else
+ t1 = true;
+ if (t1)
+ _this.load$1(0, _this._widget.locale);
+ },
+ load$1: function(_, locale) {
+ var typeToResourcesFuture, _this = this, t1 = {},
+ delegates = _this._widget.delegates,
+ t2 = delegates.length;
+ if (t2 === 0) {
+ _this._localizations$_locale = locale;
+ return;
+ }
+ t1.typeToResources = null;
+ typeToResourcesFuture = L._loadAll(locale, delegates).then$1$1(0, new L._LocalizationsState_load_closure(t1), type$.Map_Type_dynamic);
+ t1 = t1.typeToResources;
+ if (t1 != null) {
+ _this._typeToResources = t1;
+ _this._localizations$_locale = locale;
+ } else {
+ ++$.RendererBinding__instance.RendererBinding__firstFrameDeferredCount;
+ typeToResourcesFuture.then$1$1(0, new L._LocalizationsState_load_closure0(_this, locale), type$.void);
+ }
+ },
+ get$_localizations$_textDirection: function() {
+ type$.WidgetsLocalizations._as(J.$index$asx(this._typeToResources, C.Type_WidgetsLocalizations_43h)).toString;
+ return C.TextDirection_1;
+ },
+ build$1: function(_, context) {
+ var t1, t2, t3, _this = this, _null = null;
+ if (_this._localizations$_locale == null)
+ return M.Container$(_null, _null, _null, _null, _null, _null, _null, _null, _null);
+ t1 = _this.get$_localizations$_textDirection();
+ _this._localizations$_locale.toString;
+ t2 = _this._typeToResources;
+ t3 = _this.get$_localizations$_textDirection();
+ return T.Semantics$(_null, new L._LocalizationsScope(_this, t2, T.Directionality$(_this._widget.child, t3), _this._localizedResourcesScopeKey), false, _null, _null, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, t1);
+ }
+ };
+ L._LocalizationsState_load_closure.prototype = {
+ call$1: function(value) {
+ return this._box_0.typeToResources = value;
+ },
+ $signature: 300
+ };
+ L._LocalizationsState_load_closure0.prototype = {
+ call$1: function(value) {
+ var t1 = this.$this;
+ if (t1._framework$_element != null)
+ t1.setState$1(new L._LocalizationsState_load__closure(t1, value, this.locale));
+ $.RendererBinding__instance.allowFirstFrame$0();
+ },
+ $signature: 301
+ };
+ L._LocalizationsState_load__closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._typeToResources = this.value;
+ t1._localizations$_locale = this.locale;
+ },
+ $signature: 0
+ };
+ F.Orientation.prototype = {
+ toString$0: function(_) {
+ return this._media_query$_name;
+ }
+ };
+ F.MediaQueryData.prototype = {
+ copyWith$3$padding$platformBrightness$textScaleFactor: function(padding, platformBrightness, textScaleFactor) {
+ var _this = this,
+ t1 = textScaleFactor == null ? _this.textScaleFactor : textScaleFactor,
+ t2 = padding == null ? _this.padding : padding;
+ return new F.MediaQueryData(_this.size, _this.devicePixelRatio, t1, _this.platformBrightness, _this.viewInsets, t2, _this.viewPadding, _this.systemGestureInsets, false, _this.accessibleNavigation, _this.invertColors, _this.highContrast, _this.disableAnimations, _this.boldText, _this.navigationMode);
+ },
+ copyWith$1$platformBrightness: function(platformBrightness) {
+ return this.copyWith$3$padding$platformBrightness$textScaleFactor(null, platformBrightness, null);
+ },
+ copyWith$1$padding: function(padding) {
+ return this.copyWith$3$padding$platformBrightness$textScaleFactor(padding, null, null);
+ },
+ copyWith$1$textScaleFactor: function(textScaleFactor) {
+ return this.copyWith$3$padding$platformBrightness$textScaleFactor(null, null, textScaleFactor);
+ },
+ removePadding$4$removeBottom$removeLeft$removeRight$removeTop: function(removeBottom, removeLeft, removeRight, removeTop) {
+ var t1, t2, t3, t4, t5, t6, _this = this, _null = null;
+ if (!(removeLeft || removeTop || removeRight || removeBottom))
+ return _this;
+ t1 = _this.padding;
+ t2 = removeLeft ? 0 : _null;
+ t3 = removeTop ? 0 : _null;
+ t4 = removeRight ? 0 : _null;
+ t2 = t1.copyWith$4$bottom$left$right$top(removeBottom ? 0 : _null, t2, t4, t3);
+ t3 = _this.viewPadding;
+ t4 = removeLeft ? Math.max(0, t3.left - t1.left) : _null;
+ t5 = removeTop ? Math.max(0, t3.top - t1.top) : _null;
+ t6 = removeRight ? Math.max(0, t3.right - t1.right) : _null;
+ return new F.MediaQueryData(_this.size, _this.devicePixelRatio, _this.textScaleFactor, _this.platformBrightness, _this.viewInsets, t2, t3.copyWith$4$bottom$left$right$top(removeBottom ? Math.max(0, t3.bottom - t1.bottom) : _null, t4, t6, t5), C.EdgeInsets_0_0_0_0, false, _this.accessibleNavigation, _this.invertColors, _this.highContrast, _this.disableAnimations, _this.boldText, C.NavigationMode_0);
+ },
+ removeViewInsets$4$removeBottom$removeLeft$removeRight$removeTop: function(removeBottom, removeLeft, removeRight, removeTop) {
+ var t1, t2, t3, t4, t5, _this = this, _null = null;
+ if (!removeLeft)
+ !removeTop;
+ t1 = _this.viewPadding;
+ t2 = removeLeft ? Math.max(0, t1.left - _this.viewInsets.left) : _null;
+ t3 = removeTop ? Math.max(0, t1.top - _this.viewInsets.top) : _null;
+ t4 = removeRight ? Math.max(0, t1.right - _this.viewInsets.right) : _null;
+ t5 = _this.viewInsets;
+ t1 = t1.copyWith$4$bottom$left$right$top(Math.max(0, t1.bottom - t5.bottom), t2, t4, t3);
+ t2 = removeLeft ? 0 : _null;
+ t3 = removeTop ? 0 : _null;
+ t4 = removeRight ? 0 : _null;
+ return new F.MediaQueryData(_this.size, _this.devicePixelRatio, _this.textScaleFactor, _this.platformBrightness, t5.copyWith$4$bottom$left$right$top(0, t2, t4, t3), _this.padding, t1, C.EdgeInsets_0_0_0_0, false, _this.accessibleNavigation, _this.invertColors, _this.highContrast, _this.disableAnimations, _this.boldText, C.NavigationMode_0);
+ },
+ removeViewInsets$1$removeBottom: function(removeBottom) {
+ return this.removeViewInsets$4$removeBottom$removeLeft$removeRight$removeTop(removeBottom, false, false, false);
+ },
+ $eq: function(_, other) {
+ var t1, _this = this;
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(_this))
+ return false;
+ if (other instanceof F.MediaQueryData)
+ if (other.size.$eq(0, _this.size))
+ if (other.devicePixelRatio === _this.devicePixelRatio)
+ if (other.textScaleFactor === _this.textScaleFactor)
+ if (other.platformBrightness === _this.platformBrightness)
+ if (other.padding.$eq(0, _this.padding))
+ if (other.viewPadding.$eq(0, _this.viewPadding))
+ if (other.viewInsets.$eq(0, _this.viewInsets))
+ t1 = other.highContrast === _this.highContrast && other.disableAnimations === _this.disableAnimations && other.invertColors === _this.invertColors && other.accessibleNavigation === _this.accessibleNavigation && other.boldText === _this.boldText && other.navigationMode === _this.navigationMode;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ var _this = this;
+ return P.hashValues(_this.size, _this.devicePixelRatio, _this.textScaleFactor, _this.platformBrightness, _this.padding, _this.viewPadding, _this.viewInsets, false, _this.highContrast, _this.disableAnimations, _this.invertColors, _this.accessibleNavigation, _this.boldText, _this.navigationMode, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "MediaQueryData(" + C.JSArray_methods.join$1(H.setRuntimeTypeInfo(["size: " + _this.size.toString$0(0), "devicePixelRatio: " + C.JSNumber_methods.toStringAsFixed$1(_this.devicePixelRatio, 1), "textScaleFactor: " + C.JSNumber_methods.toStringAsFixed$1(_this.textScaleFactor, 1), "platformBrightness: " + _this.platformBrightness.toString$0(0), "padding: " + _this.padding.toString$0(0), "viewPadding: " + _this.viewPadding.toString$0(0), "viewInsets: " + _this.viewInsets.toString$0(0), "alwaysUse24HourFormat: false", "accessibleNavigation: " + _this.accessibleNavigation, "highContrast: " + _this.highContrast, "disableAnimations: " + _this.disableAnimations, "invertColors: " + _this.invertColors, "boldText: " + _this.boldText, "navigationMode: " + Y.describeEnum(_this.navigationMode)], type$.JSArray_String), ", ") + ")";
+ }
+ };
+ F.MediaQuery.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return !this.data.$eq(0, oldWidget.data);
+ }
+ };
+ F.NavigationMode.prototype = {
+ toString$0: function(_) {
+ return this._media_query$_name;
+ }
+ };
+ X.ModalBarrier.prototype = {
+ build$1: function(_, context) {
+ var platformSupportsDismissingBarrier, semanticsDismissible, t1, t2, t3, t4, _this = this, _null = null;
+ switch (U.defaultTargetPlatform()) {
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ platformSupportsDismissingBarrier = false;
+ break;
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ platformSupportsDismissingBarrier = true;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ semanticsDismissible = _this.dismissible && platformSupportsDismissingBarrier;
+ t1 = !semanticsDismissible || false;
+ t2 = semanticsDismissible ? _this.semanticsLabel : _null;
+ if (semanticsDismissible && _this.semanticsLabel != null) {
+ t3 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t3.toString;
+ t3 = t3.textDirection;
+ } else
+ t3 = _null;
+ t4 = _this.color;
+ return T.BlockSemantics$(new T.ExcludeSemantics(t1, new X._ModalBarrierGestureDetector(T.Semantics$(_null, T.MouseRegion$(new T.ConstrainedBox(C.BoxConstraints_ALM, t4 == null ? _null : M.DecoratedBox$(_null, new S.BoxDecoration(t4, _null, _null, _null, _null, _null, C.BoxShape_0), C.DecorationPosition_0), _null), C.SystemMouseCursor_basic, _null, _null, true), false, _null, _null, false, _null, _null, _null, t2, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, t3), new X.ModalBarrier_build_closure(_this, context), _null), _null));
+ }
+ };
+ X.ModalBarrier_build_closure.prototype = {
+ call$0: function() {
+ if (this.$this.dismissible)
+ K.Navigator_maybePop(this.context);
+ else
+ V.SystemSound_play(C.SystemSoundType_1);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ X.AnimatedModalBarrier.prototype = {
+ build$1: function(_, context) {
+ var t1 = type$.Animation_nullable_Color._as(this.listenable);
+ return new X.ModalBarrier(t1.get$value(t1), this.dismissible, true, this.semanticsLabel, null);
+ }
+ };
+ X._AnyTapGestureRecognizer.prototype = {
+ isPointerAllowed$1: function($event) {
+ if (this.onAnyTapUp == null)
+ return false;
+ return this.super$GestureRecognizer$isPointerAllowed($event);
+ },
+ handleTapDown$1$down: function(down) {
+ },
+ handleTapUp$2$down$up: function(down, up) {
+ var t1 = this.onAnyTapUp;
+ if (t1 != null)
+ t1.call$0();
+ },
+ handleTapCancel$3$cancel$down$reason: function(cancel, down, reason) {
+ }
+ };
+ X._ModalBarrierSemanticsDelegate.prototype = {
+ assignSemantics$1: function(renderObject) {
+ renderObject.set$onTap(this.onDismiss);
+ }
+ };
+ X._AnyTapGestureRecognizerFactory.prototype = {
+ constructor$0: function() {
+ var t1 = type$.int;
+ return new X._AnyTapGestureRecognizer(C.Duration_100000, 18, C.GestureRecognizerState_0, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), null, null, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ initializer$1: function(instance) {
+ instance.onAnyTapUp = this.onAnyTapUp;
+ }
+ };
+ X._ModalBarrierGestureDetector.prototype = {
+ build$1: function(_, context) {
+ var t1 = this.onDismiss;
+ return new D.RawGestureDetector(this.child, P.LinkedHashMap_LinkedHashMap$_literal([C.Type__AnyTapGestureRecognizer_5RQ, new X._AnyTapGestureRecognizerFactory(t1)], type$.Type, type$.GestureRecognizerFactory_GestureRecognizer), C.HitTestBehavior_1, false, new X._ModalBarrierSemanticsDelegate(t1), null);
+ }
+ };
+ E.NavigationToolbar.prototype = {
+ build$1: function(_, context) {
+ var t2, t3, _this = this,
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_Widget);
+ t3 = _this.leading;
+ if (t3 != null)
+ t2.push(T.LayoutId$(t3, C._ToolbarSlot_0));
+ t3 = _this.middle;
+ if (t3 != null)
+ t2.push(T.LayoutId$(t3, C._ToolbarSlot_1));
+ t3 = _this.trailing;
+ if (t3 != null)
+ t2.push(T.LayoutId$(t3, C._ToolbarSlot_2));
+ return new T.CustomMultiChildLayout(new E._ToolbarLayout(_this.centerMiddle, _this.middleSpacing, t1.textDirection), t2, null);
+ }
+ };
+ E._ToolbarSlot.prototype = {
+ toString$0: function(_) {
+ return this._navigation_toolbar$_name;
+ }
+ };
+ E._ToolbarLayout.prototype = {
+ performLayout$1: function(size) {
+ var t1, t2, leadingWidth, leadingX, trailingSize, trailingX, trailingWidth, maxWidth, middleSize, middleStartMargin, t3, t4, middleStart, t5, middleX, _this = this,
+ _s80_ = string$.x60null_c;
+ if (_this._idToChild.$index(0, C._ToolbarSlot_0) != null) {
+ t1 = size._dx;
+ t2 = size._dy;
+ leadingWidth = _this.layoutChild$2(C._ToolbarSlot_0, new S.BoxConstraints(0, t1 / 3, t2, t2))._dx;
+ switch (_this.textDirection) {
+ case C.TextDirection_0:
+ leadingX = t1 - leadingWidth;
+ break;
+ case C.TextDirection_1:
+ leadingX = 0;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ _this.positionChild$2(C._ToolbarSlot_0, new P.Offset(leadingX, 0));
+ } else
+ leadingWidth = 0;
+ if (_this._idToChild.$index(0, C._ToolbarSlot_2) != null) {
+ trailingSize = _this.layoutChild$2(C._ToolbarSlot_2, S.BoxConstraints$loose(size));
+ switch (_this.textDirection) {
+ case C.TextDirection_0:
+ trailingX = 0;
+ break;
+ case C.TextDirection_1:
+ trailingX = size._dx - trailingSize._dx;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ t1 = size._dy;
+ t2 = trailingSize._dy;
+ trailingWidth = trailingSize._dx;
+ _this.positionChild$2(C._ToolbarSlot_2, new P.Offset(trailingX, (t1 - t2) / 2));
+ } else
+ trailingWidth = 0;
+ if (_this._idToChild.$index(0, C._ToolbarSlot_1) != null) {
+ t1 = size._dx;
+ t2 = _this.middleSpacing;
+ maxWidth = Math.max(t1 - leadingWidth - trailingWidth - t2 * 2, 0);
+ middleSize = _this.layoutChild$2(C._ToolbarSlot_1, S.BoxConstraints$loose(size).copyWith$1$maxWidth(maxWidth));
+ middleStartMargin = leadingWidth + t2;
+ t2 = size._dy;
+ t3 = middleSize._dy;
+ if (_this.centerMiddle) {
+ t4 = middleSize._dx;
+ middleStart = (t1 - t4) / 2;
+ t5 = t1 - trailingWidth;
+ if (middleStart + t4 > t5)
+ middleStart = t5 - t4;
+ else if (middleStart < middleStartMargin)
+ middleStart = middleStartMargin;
+ } else
+ middleStart = middleStartMargin;
+ switch (_this.textDirection) {
+ case C.TextDirection_0:
+ middleX = t1 - middleSize._dx - middleStart;
+ break;
+ case C.TextDirection_1:
+ middleX = middleStart;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ _this.positionChild$2(C._ToolbarSlot_1, new P.Offset(middleX, (t2 - t3) / 2));
+ }
+ },
+ shouldRelayout$1: function(oldDelegate) {
+ return oldDelegate.centerMiddle != this.centerMiddle || oldDelegate.middleSpacing !== this.middleSpacing || oldDelegate.textDirection !== this.textDirection;
+ }
+ };
+ K.RoutePopDisposition.prototype = {
+ toString$0: function(_) {
+ return this._navigator$_name;
+ }
+ };
+ K.Route.prototype = {
+ get$overlayEntries: function() {
+ return C.List_empty4;
+ },
+ install$0: function() {
+ },
+ didPush$0: function() {
+ var t1 = M.TickerFuture$complete();
+ t1.then$1$1(0, new K.Route_didPush_closure(this), type$.void);
+ return t1;
+ },
+ didAdd$0: function() {
+ M.TickerFuture$complete().then$1$1(0, new K.Route_didAdd_closure(this), type$.void);
+ },
+ didReplace$1: function(oldRoute) {
+ },
+ willPop$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.RoutePopDisposition),
+ $async$returnValue, $async$self = this;
+ var $async$willPop$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = $async$self.get$isFirst() ? C.RoutePopDisposition_2 : C.RoutePopDisposition_0;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$willPop$0, $async$completer);
+ },
+ get$willHandlePopInternally: function() {
+ return false;
+ },
+ didPop$1: function(result) {
+ this.didComplete$1(result);
+ return true;
+ },
+ didComplete$1: function(result) {
+ var t1 = result == null ? null : result;
+ this._popCompleter.complete$1(0, t1);
+ },
+ didPopNext$1: function(nextRoute) {
+ },
+ didChangeNext$1: function(nextRoute) {
+ },
+ didChangePrevious$1: function(previousRoute) {
+ },
+ changedInternalState$0: function() {
+ },
+ changedExternalState$0: function() {
+ },
+ dispose$0: function(_) {
+ this._navigator$_navigator = null;
+ },
+ get$isCurrent: function() {
+ var currentRouteEntry,
+ t1 = this._navigator$_navigator;
+ if (t1 == null)
+ return false;
+ t1 = t1._history;
+ t1 = new H.CastList(t1, H._arrayInstanceType(t1)._eval$1("CastList<1,_RouteEntry?>"));
+ currentRouteEntry = t1.lastWhere$2$orElse(t1, new K.Route_isCurrent_closure(), new K.Route_isCurrent_closure0());
+ if (currentRouteEntry == null)
+ return false;
+ return currentRouteEntry.route === this;
+ },
+ get$isFirst: function() {
+ var currentRouteEntry,
+ t1 = this._navigator$_navigator;
+ if (t1 == null)
+ return false;
+ t1 = t1._history;
+ t1 = new H.CastList(t1, H._arrayInstanceType(t1)._eval$1("CastList<1,_RouteEntry?>"));
+ currentRouteEntry = t1.firstWhere$2$orElse(t1, new K.Route_isFirst_closure(), new K.Route_isFirst_closure0());
+ if (currentRouteEntry == null)
+ return false;
+ return currentRouteEntry.route === this;
+ },
+ get$isActive: function() {
+ var t1 = this._navigator$_navigator;
+ if (t1 == null)
+ return false;
+ t1 = t1._history;
+ t1 = new H.CastList(t1, H._arrayInstanceType(t1)._eval$1("CastList<1,_RouteEntry?>"));
+ t1 = t1.firstWhere$2$orElse(t1, new K.Route_isActive_closure(this), new K.Route_isActive_closure0());
+ return (t1 == null ? null : t1.get$isPresent()) === true;
+ }
+ };
+ K.Route_didPush_closure.prototype = {
+ call$1: function(_) {
+ var t1 = this.$this._navigator$_navigator;
+ if (t1 != null)
+ t1.focusScopeNode.requestFocus$0();
+ },
+ $signature: 16
+ };
+ K.Route_didAdd_closure.prototype = {
+ call$1: function(_) {
+ var t1 = this.$this._navigator$_navigator;
+ if (t1 != null)
+ t1.focusScopeNode.requestFocus$0();
+ },
+ $signature: 16
+ };
+ K.Route_isCurrent_closure.prototype = {
+ call$1: function(e) {
+ return e != null && $.$get$_RouteEntry_isPresentPredicate().call$1(e);
+ },
+ $signature: 32
+ };
+ K.Route_isCurrent_closure0.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ K.Route_isFirst_closure.prototype = {
+ call$1: function(e) {
+ return e != null && $.$get$_RouteEntry_isPresentPredicate().call$1(e);
+ },
+ $signature: 32
+ };
+ K.Route_isFirst_closure0.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ K.Route_isActive_closure.prototype = {
+ call$1: function(e) {
+ return e != null && K._RouteEntry_isRoutePredicate(this.$this).call$1(e);
+ },
+ $signature: 32
+ };
+ K.Route_isActive_closure0.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ K.RouteSettings.prototype = {
+ toString$0: function(_) {
+ return 'RouteSettings("' + H.S(this.name) + '", ' + H.S(this.$arguments) + ")";
+ },
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ K.NavigatorObserver.prototype = {};
+ K.HeroControllerScope.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return oldWidget.controller != this.controller;
+ }
+ };
+ K.RouteTransitionRecord.prototype = {};
+ K.TransitionDelegate.prototype = {};
+ K.DefaultTransitionDelegate.prototype = {};
+ K.Navigator.prototype = {
+ createState$0: function() {
+ var _null = null,
+ t1 = type$.LinkedList__ListenerEntry,
+ t2 = type$._NavigatorObservation;
+ return new K.NavigatorState(H.setRuntimeTypeInfo([], type$.JSArray__RouteEntry), new K._HistoryProperty(new P.LinkedList(t1)), P.ListQueue$(_null, t2), P.ListQueue$(_null, t2), O.FocusScopeNode$(true, "Navigator Scope", false), new U.RestorableNum(0, new P.LinkedList(t1), type$.RestorableNum_int), new B.ValueNotifier(false, new P.LinkedList(t1)), P.LinkedHashSet_LinkedHashSet$_empty(type$.int), _null, P.LinkedHashMap_LinkedHashMap$_empty(type$.RestorableProperty_nullable_Object, type$.void_Function), _null, true, _null, _null, C._StateLifecycle_0);
+ },
+ onGenerateInitialRoutes$2: function(arg0, arg1) {
+ return this.onGenerateInitialRoutes.call$2(arg0, arg1);
+ }
+ };
+ K.Navigator_defaultGenerateInitialRoutes_closure.prototype = {
+ call$1: function(route) {
+ return route == null;
+ },
+ $signature: 303
+ };
+ K._RouteLifecycle.prototype = {
+ toString$0: function(_) {
+ return this._navigator$_name;
+ }
+ };
+ K._NotAnnounced.prototype = {};
+ K._RouteEntry.prototype = {
+ get$restorationId: function() {
+ this.route.toString;
+ var t1 = this.restorationInformation;
+ if (t1 != null)
+ return "r+" + H.S(t1.get$restorationScopeId());
+ return null;
+ },
+ handlePush$4$isNewFirst$navigator$previous$previousPresent: function(isNewFirst, $navigator, previous, previousPresent) {
+ var t2, routeFuture, t3, _this = this,
+ previousState = _this.currentState,
+ t1 = _this.route;
+ t1._navigator$_navigator = $navigator;
+ t1.install$0();
+ t2 = _this.currentState;
+ if (t2 === C._RouteLifecycle_3 || t2 === C._RouteLifecycle_4) {
+ routeFuture = t1.didPush$0();
+ _this.currentState = C._RouteLifecycle_5;
+ routeFuture.whenCompleteOrCancel$1(new K._RouteEntry_handlePush_closure(_this, $navigator));
+ } else {
+ t1.didReplace$1(previous);
+ _this.currentState = C._RouteLifecycle_7;
+ }
+ if (isNewFirst)
+ t1.didChangeNext$1(null);
+ t2 = previousState === C._RouteLifecycle_6 || previousState === C._RouteLifecycle_4;
+ t3 = $navigator._observedRouteAdditions;
+ if (t2)
+ t3._add$1(0, new K._NavigatorReplaceObservation(t1, previousPresent));
+ else
+ t3._add$1(0, new K._NavigatorPushObservation(t1, previousPresent));
+ },
+ pop$1$1: function(_, result) {
+ var _this = this;
+ _this.doingPop = true;
+ if (_this.route.didPop$1(result) && _this.doingPop)
+ _this.currentState = C._RouteLifecycle_8;
+ _this.doingPop = false;
+ },
+ pop$1: function($receiver, result) {
+ return this.pop$1$1($receiver, result, type$.dynamic);
+ },
+ remove$0: function(_) {
+ if (this.currentState.index >= 9)
+ return;
+ this._reportRemovalToObserver = true;
+ this.currentState = C._RouteLifecycle_9;
+ },
+ dispose$0: function(_) {
+ var t1, t2, t3, mountedEntries, t4, t5, _box_1 = {};
+ this.currentState = C._RouteLifecycle_13;
+ t1 = this.route;
+ t2 = t1.get$overlayEntries();
+ t3 = new K._RouteEntry_dispose_closure();
+ mountedEntries = new H.WhereIterable(t2, t3, H._arrayInstanceType(t2)._eval$1("WhereIterable<1>"));
+ if (!mountedEntries.get$iterator(mountedEntries).moveNext$0())
+ t1.dispose$0(0);
+ else {
+ _box_1.mounted = mountedEntries.get$length(mountedEntries);
+ for (t1 = C.JSArray_methods.get$iterator(t2), t3 = new H.WhereIterator(t1, t3); t3.moveNext$0();) {
+ t2 = {};
+ t4 = t1.get$current(t1);
+ t2.listener = null;
+ t2._listener_isSet = false;
+ t5 = new K._RouteEntry_dispose__listener_get(t2);
+ new K._RouteEntry_dispose__listener_set(t2).call$1(new K._RouteEntry_dispose_closure0(_box_1, this, t4, t5));
+ t5 = t5.call$0();
+ t4 = t4.ChangeNotifier__listeners;
+ t4._insertBefore$3$updateFirst(t4._collection$_first, new B._ListenerEntry(t5), false);
+ }
+ }
+ },
+ get$isPresent: function() {
+ var t1 = this.currentState.index;
+ return t1 <= 9 && t1 >= 1;
+ }
+ };
+ K._RouteEntry_handlePush_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ if (t1.currentState === C._RouteLifecycle_5) {
+ t1.currentState = C._RouteLifecycle_7;
+ this.navigator._flushHistoryUpdates$0();
+ }
+ },
+ $signature: 0
+ };
+ K._RouteEntry_dispose_closure.prototype = {
+ call$1: function(e) {
+ return e._mounted;
+ },
+ $signature: 304
+ };
+ K._RouteEntry_dispose__listener_set.prototype = {
+ call$1: function(t1) {
+ var t2 = this._box_0;
+ t2._listener_isSet = true;
+ return t2.listener = t1;
+ },
+ $signature: 108
+ };
+ K._RouteEntry_dispose__listener_get.prototype = {
+ call$0: function() {
+ var t1 = this._box_0;
+ return t1._listener_isSet ? t1.listener : H.throwExpression(H.LateError$localNI("listener"));
+ },
+ $signature: 135
+ };
+ K._RouteEntry_dispose_closure0.prototype = {
+ call$0: function() {
+ var _this = this,
+ t1 = _this._box_1;
+ --t1.mounted;
+ _this.entry.removeListener$1(0, _this._listener_get.call$0());
+ if (t1.mounted === 0)
+ _this.$this.route.dispose$0(0);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ K._RouteEntry_closure1.prototype = {
+ call$1: function(entry) {
+ return entry.get$isPresent();
+ },
+ $signature: 48
+ };
+ K._RouteEntry_closure.prototype = {
+ call$1: function(entry) {
+ var t1 = entry.currentState.index;
+ return t1 <= 9 && t1 >= 3;
+ },
+ $signature: 48
+ };
+ K._RouteEntry_closure0.prototype = {
+ call$1: function(entry) {
+ var t1 = entry.currentState.index;
+ return t1 <= 7 && t1 >= 1;
+ },
+ $signature: 48
+ };
+ K._RouteEntry_isRoutePredicate_closure.prototype = {
+ call$1: function(entry) {
+ return entry.route === this.route;
+ },
+ $signature: 48
+ };
+ K._NavigatorObservation.prototype = {};
+ K._NavigatorPushObservation.prototype = {
+ notify$1: function(observer) {
+ observer._maybeStartHeroTransition$4(this.secondaryRoute, this.primaryRoute, C.HeroFlightDirection_0, false);
+ }
+ };
+ K._NavigatorPopObservation.prototype = {
+ notify$1: function(observer) {
+ if (!observer._navigator$_navigator.userGestureInProgressNotifier._change_notifier$_value)
+ observer._maybeStartHeroTransition$4(this.primaryRoute, this.secondaryRoute, C.HeroFlightDirection_1, false);
+ }
+ };
+ K._NavigatorRemoveObservation.prototype = {
+ notify$1: function(observer) {
+ observer.toString;
+ }
+ };
+ K._NavigatorReplaceObservation.prototype = {
+ notify$1: function(observer) {
+ var t1 = this.primaryRoute;
+ observer.toString;
+ if ((t1 == null ? null : t1.get$isCurrent()) === true)
+ observer._maybeStartHeroTransition$4(this.secondaryRoute, t1, C.HeroFlightDirection_0, false);
+ }
+ };
+ K.NavigatorState.prototype = {
+ get$_overlayKey: function() {
+ return this.__NavigatorState__overlayKey_isSet ? this.__NavigatorState__overlayKey : H.throwExpression(H.LateError$fieldNI("_overlayKey"));
+ },
+ get$_effectiveObservers: function() {
+ return this.__NavigatorState__effectiveObservers_isSet ? this.__NavigatorState__effectiveObservers : H.throwExpression(H.LateError$fieldNI("_effectiveObservers"));
+ },
+ initState$0: function() {
+ var t1, _i, _this = this;
+ _this.super$State$initState();
+ for (t1 = _this._widget.observers, t1.length, _i = 0; false; ++_i)
+ t1[_i]._navigator$_navigator = _this;
+ t1 = _this._widget.observers;
+ _this.__NavigatorState__effectiveObservers_isSet = true;
+ _this.__NavigatorState__effectiveObservers = t1;
+ t1 = _this._framework$_element.getElementForInheritedWidgetOfExactType$1$0(type$.HeroControllerScope);
+ t1 = t1 == null ? null : t1.get$widget();
+ type$.nullable_HeroControllerScope._as(t1);
+ _this._updateHeroController$1(t1 == null ? null : t1.controller);
+ },
+ restoreState$2: function(oldBucket, initialRestore) {
+ var t1, t2, _i, page, t3, entry, initialRoute, _this = this;
+ _this.registerForRestoration$2(_this._rawNextPagelessRestorationScopeId, "id");
+ t1 = _this._serializableHistory;
+ _this.registerForRestoration$2(t1, "history");
+ for (; t2 = _this._history, t2.length !== 0;)
+ J.dispose$0$x(t2.pop());
+ _this.__NavigatorState__overlayKey_isSet = true;
+ _this.__NavigatorState__overlayKey = new N.LabeledGlobalKey(null, type$.LabeledGlobalKey_OverlayState);
+ C.JSArray_methods.addAll$1(t2, t1.restoreEntriesForPage$2(null, _this));
+ _this._widget.toString;
+ _i = 0;
+ for (; false; ++_i) {
+ page = C.List_empty3[_i];
+ t2 = _this._framework$_element;
+ t2.toString;
+ t2 = page.createRoute$1(t2);
+ t3 = $.$get$_RouteEntry_notAnnounced();
+ entry = new K._RouteEntry(t2, null, C._RouteLifecycle_1, t3, t3, t3);
+ _this._history.push(entry);
+ C.JSArray_methods.addAll$1(_this._history, t1.restoreEntriesForPage$2(entry, _this));
+ }
+ if (t1._pageToPagelessRoutes == null) {
+ t1 = _this._widget;
+ initialRoute = t1.initialRoute;
+ t2 = _this._history;
+ C.JSArray_methods.addAll$1(t2, J.map$1$1$ax(t1.onGenerateInitialRoutes$2(_this, initialRoute), new K.NavigatorState_restoreState_closure(_this), type$._RouteEntry));
+ }
+ _this._flushHistoryUpdates$0();
+ },
+ didToggleBucket$1: function(oldBucket) {
+ var t1, _this = this;
+ _this.super$RestorationMixin$didToggleBucket(oldBucket);
+ t1 = _this._serializableHistory;
+ if (_this.RestorationMixin__bucket != null)
+ t1.update$1(0, _this._history);
+ else
+ t1.clear$0(0);
+ },
+ get$restorationId: function() {
+ return this._widget.restorationScopeId;
+ },
+ didChangeDependencies$0: function() {
+ this.super$_NavigatorState_State_TickerProviderStateMixin_RestorationMixin$didChangeDependencies();
+ var host = this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.HeroControllerScope);
+ this._updateHeroController$1(host == null ? null : host.controller);
+ },
+ _updateHeroController$1: function(newHeroController) {
+ var t2, _this = this,
+ t1 = _this._heroControllerFromScope;
+ if (t1 != newHeroController) {
+ if (newHeroController != null)
+ newHeroController._navigator$_navigator = _this;
+ t2 = t1 == null;
+ if ((t2 ? null : t1._navigator$_navigator) === _this)
+ if (!t2)
+ t1._navigator$_navigator = null;
+ _this._heroControllerFromScope = newHeroController;
+ _this._updateEffectiveObservers$0();
+ }
+ },
+ _updateEffectiveObservers$0: function() {
+ var _this = this,
+ t1 = _this._heroControllerFromScope,
+ t2 = _this._widget;
+ if (t1 != null) {
+ t2 = t2.observers;
+ t1 = (t2 && C.JSArray_methods).$add(t2, H.setRuntimeTypeInfo([t1], type$.JSArray_NavigatorObserver));
+ _this.__NavigatorState__effectiveObservers_isSet = true;
+ _this.__NavigatorState__effectiveObservers = t1;
+ } else {
+ t1 = t2.observers;
+ _this.__NavigatorState__effectiveObservers_isSet = true;
+ _this.__NavigatorState__effectiveObservers = t1;
+ }
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, t2, _i, _this = this;
+ _this.super$_NavigatorState_State_TickerProviderStateMixin_RestorationMixin$didUpdateWidget(oldWidget);
+ t1 = oldWidget.observers;
+ t2 = _this._widget.observers;
+ if (t1 == null ? t2 != null : t1 !== t2) {
+ for (t1.length, _i = 0; false; ++_i)
+ t1[_i]._navigator$_navigator = null;
+ for (t1 = _this._widget.observers, t1.length, _i = 0; false; ++_i)
+ t1[_i]._navigator$_navigator = _this;
+ _this._updateEffectiveObservers$0();
+ }
+ _this._widget.toString;
+ for (t1 = _this._history, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].route.changedExternalState$0();
+ },
+ dispose$0: function(_) {
+ var t1, t2, _i, _this = this;
+ _this._updateHeroController$1(null);
+ for (t1 = _this.get$_effectiveObservers(), t2 = t1.length, _i = 0; _i < t2; ++_i)
+ t1[_i]._navigator$_navigator = null;
+ _this.focusScopeNode.dispose$0(0);
+ for (t1 = _this._history, t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ J.dispose$0$x(t1[_i]);
+ _this.super$_NavigatorState_State_TickerProviderStateMixin_RestorationMixin$dispose(0);
+ },
+ get$_allRouteOverlayEntries: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1, t2, _i;
+ return function $async$get$_allRouteOverlayEntries($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._history, t2 = t1.length, _i = 0;
+ case 2:
+ // for condition
+ if (!(_i < t1.length)) {
+ // goto after for
+ $async$goto = 4;
+ break;
+ }
+ $async$goto = 5;
+ return P._IterationMarker_yieldStar(t1[_i].route.get$overlayEntries());
+ case 5:
+ // after yield
+ case 3:
+ // for update
+ t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i;
+ // goto for condition
+ $async$goto = 2;
+ break;
+ case 4:
+ // after for
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.OverlayEntry);
+ },
+ _flushHistoryUpdates$1$rearrangeOverlay: function(rearrangeOverlay) {
+ var t2, poppedRoute, next, canRemoveOrAdd, seenTopActiveRoute, index0, t3, t4, previous0, lastEntry, routeName, _i, _i0, _this = this, _null = null,
+ t1 = _this._history,
+ index = t1.length - 1,
+ entry = t1[index],
+ previous = index > 0 ? t1[index - 1] : _null,
+ toBeDisposed = H.setRuntimeTypeInfo([], type$.JSArray__RouteEntry);
+ for (t1 = _this._observedRouteDeletions, t2 = _this._observedRouteAdditions, poppedRoute = _null, next = poppedRoute, canRemoveOrAdd = false, seenTopActiveRoute = false; index >= 0;) {
+ switch (entry.currentState) {
+ case C._RouteLifecycle_1:
+ index0 = _this._getIndexBefore$2(index - 1, $.$get$_RouteEntry_isPresentPredicate());
+ t3 = index0 >= 0 ? _this._history[index0] : _null;
+ t3 = t3 == null ? _null : t3.route;
+ t4 = entry.route;
+ t4._navigator$_navigator = _this;
+ t4.install$0();
+ entry.currentState = C._RouteLifecycle_2;
+ t2._add$1(0, new K._NavigatorPushObservation(t4, t3));
+ continue;
+ case C._RouteLifecycle_2:
+ if (canRemoveOrAdd || next == null) {
+ t3 = entry.route;
+ t3.didAdd$0();
+ entry.currentState = C._RouteLifecycle_7;
+ if (next == null)
+ t3.didChangeNext$1(_null);
+ continue;
+ }
+ break;
+ case C._RouteLifecycle_3:
+ case C._RouteLifecycle_4:
+ case C._RouteLifecycle_6:
+ t3 = previous == null ? _null : previous.route;
+ index0 = _this._getIndexBefore$2(index - 1, $.$get$_RouteEntry_isPresentPredicate());
+ t4 = index0 >= 0 ? _this._history[index0] : _null;
+ t4 = t4 == null ? _null : t4.route;
+ entry.handlePush$4$isNewFirst$navigator$previous$previousPresent(next == null, _this, t3, t4);
+ if (entry.currentState === C._RouteLifecycle_7)
+ continue;
+ break;
+ case C._RouteLifecycle_5:
+ if (!seenTopActiveRoute && poppedRoute != null) {
+ entry.route.didPopNext$1(poppedRoute);
+ entry.lastAnnouncedPoppedNextRoute = poppedRoute;
+ }
+ seenTopActiveRoute = true;
+ break;
+ case C._RouteLifecycle_7:
+ if (!seenTopActiveRoute && poppedRoute != null) {
+ entry.route.didPopNext$1(poppedRoute);
+ entry.lastAnnouncedPoppedNextRoute = poppedRoute;
+ }
+ canRemoveOrAdd = true;
+ seenTopActiveRoute = true;
+ break;
+ case C._RouteLifecycle_8:
+ if (!seenTopActiveRoute) {
+ if (poppedRoute != null) {
+ entry.route.didPopNext$1(poppedRoute);
+ entry.lastAnnouncedPoppedNextRoute = poppedRoute;
+ }
+ poppedRoute = entry.route;
+ }
+ index0 = _this._getIndexBefore$2(index, $.$get$_RouteEntry_willBePresentPredicate());
+ t3 = index0 >= 0 ? _this._history[index0] : _null;
+ t3 = t3 == null ? _null : t3.route;
+ entry.currentState = C._RouteLifecycle_10;
+ t1._add$1(0, new K._NavigatorPopObservation(entry.route, t3));
+ canRemoveOrAdd = true;
+ break;
+ case C._RouteLifecycle_10:
+ break;
+ case C._RouteLifecycle_9:
+ if (!seenTopActiveRoute) {
+ if (poppedRoute != null)
+ entry.route.didPopNext$1(poppedRoute);
+ poppedRoute = _null;
+ }
+ index0 = _this._getIndexBefore$2(index, $.$get$_RouteEntry_willBePresentPredicate());
+ t3 = index0 >= 0 ? _this._history[index0] : _null;
+ t3 = t3 == null ? _null : t3.route;
+ entry.currentState = C._RouteLifecycle_11;
+ if (entry._reportRemovalToObserver)
+ t1._add$1(0, new K._NavigatorRemoveObservation(entry.route, t3));
+ continue;
+ case C._RouteLifecycle_11:
+ if (!canRemoveOrAdd && next != null)
+ break;
+ entry.currentState = C._RouteLifecycle_12;
+ continue;
+ case C._RouteLifecycle_12:
+ toBeDisposed.push(C.JSArray_methods.removeAt$1(_this._history, index));
+ entry = next;
+ break;
+ case C._RouteLifecycle_13:
+ case C._RouteLifecycle_0:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ --index;
+ previous0 = index > 0 ? _this._history[index - 1] : _null;
+ next = entry;
+ entry = previous;
+ previous = previous0;
+ }
+ _this._flushObserverNotifications$0();
+ _this._flushRouteAnnouncement$0();
+ _this._widget.toString;
+ t1 = _this._history;
+ t1 = new H.CastList(t1, H._arrayInstanceType(t1)._eval$1("CastList<1,_RouteEntry?>"));
+ lastEntry = t1.lastWhere$2$orElse(t1, new K.NavigatorState__flushHistoryUpdates_closure(), new K.NavigatorState__flushHistoryUpdates_closure0());
+ routeName = lastEntry == null ? _null : lastEntry.route._settings.name;
+ t1 = _this._lastAnnouncedRouteName;
+ if (routeName != t1) {
+ C.OptionalMethodChannel_urv.invokeMethod$1$2("routeUpdated", P.LinkedHashMap_LinkedHashMap$_literal(["previousRouteName", t1, "routeName", routeName], type$.String, type$.dynamic), type$.void);
+ _this._lastAnnouncedRouteName = routeName;
+ }
+ for (t1 = toBeDisposed.length, _i = 0; _i < toBeDisposed.length; toBeDisposed.length === t1 || (0, H.throwConcurrentModificationError)(toBeDisposed), ++_i) {
+ entry = toBeDisposed[_i];
+ for (t2 = entry.route.get$overlayEntries(), t3 = t2.length, _i0 = 0; _i0 < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i0)
+ J.remove$0$ax(t2[_i0]);
+ entry.dispose$0(0);
+ }
+ if (rearrangeOverlay) {
+ t1 = _this.get$_overlayKey().get$currentState();
+ if (t1 != null)
+ t1.rearrange$1(_this.get$_allRouteOverlayEntries());
+ }
+ if (_this.RestorationMixin__bucket != null)
+ _this._serializableHistory.update$1(0, _this._history);
+ },
+ _flushHistoryUpdates$0: function() {
+ return this._flushHistoryUpdates$1$rearrangeOverlay(true);
+ },
+ _flushObserverNotifications$0: function() {
+ var t1, observation, t2, _this = this,
+ _s19_ = "_effectiveObservers";
+ if (_this.get$_effectiveObservers().length === 0) {
+ _this._observedRouteDeletions.clear$0(0);
+ _this._observedRouteAdditions.clear$0(0);
+ return;
+ }
+ for (t1 = _this._observedRouteAdditions; !t1.get$isEmpty(t1);) {
+ observation = t1.removeLast$0(0);
+ t2 = _this.__NavigatorState__effectiveObservers_isSet ? _this.__NavigatorState__effectiveObservers : H.throwExpression(H.LateError$fieldNI(_s19_));
+ (t2 && C.JSArray_methods).forEach$1(t2, observation.get$notify());
+ }
+ for (t1 = _this._observedRouteDeletions; !t1.get$isEmpty(t1);) {
+ observation = t1.removeFirst$0();
+ t2 = _this.__NavigatorState__effectiveObservers_isSet ? _this.__NavigatorState__effectiveObservers : H.throwExpression(H.LateError$fieldNI(_s19_));
+ (t2 && C.JSArray_methods).forEach$1(t2, observation.get$notify());
+ }
+ },
+ _flushRouteAnnouncement$0: function() {
+ var entry, t1, next, t2, t3, t4, index0, _this = this, _null = null,
+ index = _this._history.length - 1;
+ for (; index >= 0;) {
+ entry = _this._history[index];
+ t1 = entry.currentState.index;
+ if (!(t1 <= 11 && t1 >= 3)) {
+ --index;
+ continue;
+ }
+ t1 = $.$get$_RouteEntry_suitableForTransitionAnimationPredicate();
+ next = _this._getRouteAfter$2(index + 1, t1);
+ t2 = next == null;
+ t3 = t2 ? _null : next.route;
+ t4 = entry.lastAnnouncedNextRoute;
+ if (t3 != t4) {
+ if ((t2 ? _null : next.route) == null) {
+ t3 = entry.lastAnnouncedPoppedNextRoute;
+ t3 = t3 != null && t3 === t4;
+ } else
+ t3 = false;
+ if (!t3) {
+ t3 = entry.route;
+ t3.didChangeNext$1(t2 ? _null : next.route);
+ }
+ entry.lastAnnouncedNextRoute = t2 ? _null : next.route;
+ }
+ --index;
+ index0 = _this._getIndexBefore$2(index, t1);
+ t1 = index0 >= 0 ? _this._history[index0] : _null;
+ t2 = t1 == null;
+ t3 = t2 ? _null : t1.route;
+ if (t3 != entry.lastAnnouncedPreviousRoute) {
+ t3 = entry.route;
+ t3.didChangePrevious$1(t2 ? _null : t1.route);
+ entry.lastAnnouncedPreviousRoute = t2 ? _null : t1.route;
+ }
+ }
+ },
+ _getRouteBefore$2: function(index, predicate) {
+ index = this._getIndexBefore$2(index, predicate);
+ return index >= 0 ? this._history[index] : null;
+ },
+ _getIndexBefore$2: function(index, predicate) {
+ while (true) {
+ if (!(index >= 0 && !predicate.call$1(this._history[index])))
+ break;
+ --index;
+ }
+ return index;
+ },
+ _getRouteAfter$2: function(index, predicate) {
+ var t1;
+ while (true) {
+ t1 = this._history;
+ if (!(index < t1.length && !predicate.call$1(t1[index])))
+ break;
+ ++index;
+ }
+ t1 = this._history;
+ return index < t1.length ? t1[index] : null;
+ },
+ _routeNamed$1$3$allowNull$arguments: function($name, allowNull, $arguments, $T) {
+ var settings, t1, route;
+ if (allowNull)
+ this._widget.toString;
+ settings = new K.RouteSettings($name, $arguments);
+ t1 = $T._eval$1("Route<0>?");
+ route = t1._as(this._widget.onGenerateRoute.call$1(settings));
+ return route == null && !allowNull ? t1._as(this._widget.onUnknownRoute.call$1(settings)) : route;
+ },
+ _routeNamed$1$2$arguments: function($name, $arguments, $T) {
+ return this._routeNamed$1$3$allowNull$arguments($name, false, $arguments, $T);
+ },
+ push$1$1: function(route) {
+ var t1 = K._RouteEntry$(route, C._RouteLifecycle_3, null);
+ this._history.push(t1);
+ this._flushHistoryUpdates$0();
+ this._afterNavigation$1(t1.route);
+ return route._popCompleter.future;
+ },
+ push$1: function(route) {
+ return this.push$1$1(route, type$.nullable_Object);
+ },
+ _afterNavigation$1: function(route) {
+ var t1, t2, routeJsonable, settings, settingsJsonable;
+ if (route != null) {
+ t1 = type$.String;
+ t2 = type$.dynamic;
+ routeJsonable = P.LinkedHashMap_LinkedHashMap$_empty(t1, t2);
+ routeJsonable.$indexSet(0, "description", route instanceof T.TransitionRoute ? route.get$debugLabel() : route.toString$0(0));
+ settings = route._settings;
+ settingsJsonable = P.LinkedHashMap_LinkedHashMap$_literal(["name", settings.name], t1, t2);
+ t1 = settings.$arguments;
+ if (t1 != null)
+ settingsJsonable.$indexSet(0, "arguments", C.C_JsonCodec.encode$2$toEncodable(t1, new K.NavigatorState__afterNavigation_closure()));
+ routeJsonable.$indexSet(0, "settings", settingsJsonable);
+ } else
+ routeJsonable = null;
+ P.postEvent("Flutter.Navigation", P.LinkedHashMap_LinkedHashMap$_literal(["route", routeJsonable], type$.String, type$.dynamic));
+ this._cancelActivePointers$0();
+ },
+ maybePop$1$1: function(result) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.bool),
+ $async$returnValue, $async$self = this, lastEntry, disposition, t1;
+ var $async$maybePop$1$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ $async$outer:
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._history;
+ t1 = new H.CastList(t1, H._arrayInstanceType(t1)._eval$1("CastList<1,_RouteEntry?>"));
+ lastEntry = t1.lastWhere$2$orElse(t1, new K.NavigatorState_maybePop_closure(), new K.NavigatorState_maybePop_closure0());
+ if (lastEntry == null) {
+ $async$returnValue = false;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $async$goto = 3;
+ return P._asyncAwait(lastEntry.route.willPop$0(), $async$maybePop$1$1);
+ case 3:
+ // returning from await.
+ disposition = $async$result;
+ if ($async$self._framework$_element == null) {
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ t1 = $async$self._history;
+ t1 = new H.CastList(t1, H._arrayInstanceType(t1)._eval$1("CastList<1,_RouteEntry?>"));
+ if (lastEntry !== t1.lastWhere$2$orElse(t1, new K.NavigatorState_maybePop_closure1(), new K.NavigatorState_maybePop_closure2())) {
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ switch (disposition) {
+ case C.RoutePopDisposition_2:
+ $async$returnValue = false;
+ // goto return
+ $async$goto = 1;
+ break $async$outer;
+ case C.RoutePopDisposition_0:
+ $async$self.pop$1(0, result);
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break $async$outer;
+ case C.RoutePopDisposition_1:
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break $async$outer;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$maybePop$1$1, $async$completer);
+ },
+ maybePop$0: function() {
+ return this.maybePop$1$1(null, type$.nullable_Object);
+ },
+ maybePop$1: function(result) {
+ return this.maybePop$1$1(result, type$.nullable_Object);
+ },
+ pop$1$1: function(_, result) {
+ var entry = C.JSArray_methods.lastWhere$1(this._history, $.$get$_RouteEntry_isPresentPredicate()),
+ t1 = entry.route;
+ t1.toString;
+ entry.pop$1(0, result);
+ if (entry.currentState === C._RouteLifecycle_8)
+ this._flushHistoryUpdates$1$rearrangeOverlay(false);
+ this._afterNavigation$1(t1);
+ },
+ pop$0: function($receiver) {
+ return this.pop$1$1($receiver, null, type$.nullable_Object);
+ },
+ pop$1: function($receiver, result) {
+ return this.pop$1$1($receiver, result, type$.nullable_Object);
+ },
+ finalizeRoute$1: function(route) {
+ var entry = C.JSArray_methods.firstWhere$1(this._history, K._RouteEntry_isRoutePredicate(route));
+ if (entry.doingPop) {
+ entry.currentState = C._RouteLifecycle_8;
+ this._flushHistoryUpdates$1$rearrangeOverlay(false);
+ }
+ entry.currentState = C._RouteLifecycle_12;
+ this._flushHistoryUpdates$1$rearrangeOverlay(false);
+ },
+ set$_userGesturesInProgress: function(value) {
+ this._userGesturesInProgressCount = value;
+ this.userGestureInProgressNotifier.set$value(0, value > 0);
+ },
+ didStartUserGesture$0: function() {
+ var t1, t2, routeIndex, route, previousRoute, _i, _this = this;
+ _this.set$_userGesturesInProgress(_this._userGesturesInProgressCount + 1);
+ if (_this._userGesturesInProgressCount === 1) {
+ t1 = _this._history.length;
+ t2 = $.$get$_RouteEntry_willBePresentPredicate();
+ routeIndex = _this._getIndexBefore$2(t1 - 1, t2);
+ route = _this._history[routeIndex].route;
+ previousRoute = !route.get$willHandlePopInternally() && routeIndex > 0 ? _this._getRouteBefore$2(routeIndex - 1, t2).route : null;
+ for (t1 = _this.get$_effectiveObservers(), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i]._maybeStartHeroTransition$4(route, previousRoute, C.HeroFlightDirection_1, true);
+ }
+ },
+ didStopUserGesture$0: function() {
+ var t1, t2, _i, _this = this;
+ _this.set$_userGesturesInProgress(_this._userGesturesInProgressCount - 1);
+ if (_this._userGesturesInProgressCount === 0)
+ for (t1 = _this.get$_effectiveObservers(), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].didStopUserGesture$0();
+ },
+ _handlePointerDown$1: function($event) {
+ this._activePointers.add$1(0, $event.get$pointer());
+ },
+ _handlePointerUpOrCancel$1: function($event) {
+ this._activePointers.remove$1(0, $event.get$pointer());
+ },
+ _cancelActivePointers$0: function() {
+ if ($.SchedulerBinding__instance.SchedulerBinding__schedulerPhase === C.SchedulerPhase_0) {
+ var t1 = this.get$_overlayKey();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1);
+ this.setState$1(new K.NavigatorState__cancelActivePointers_closure(t1 == null ? null : t1.findAncestorRenderObjectOfType$1$0(type$.RenderAbsorbPointer)));
+ }
+ t1 = this._activePointers;
+ C.JSArray_methods.forEach$1(P.List_List$of(t1, true, H._instanceType(t1)._eval$1("SetMixin.E")), $.WidgetsBinding__instance.get$cancelPointer());
+ },
+ build$1: function(_, context) {
+ var t4, _this = this, _null = null,
+ t1 = _this.get$_handlePointerUpOrCancel(),
+ t2 = _this.RestorationMixin__bucket,
+ t3 = _this.get$_overlayKey();
+ if (_this.get$_overlayKey().get$currentState() == null) {
+ t4 = _this.get$_allRouteOverlayEntries();
+ t4 = P.List_List$of(t4, false, t4.$ti._eval$1("Iterable.E"));
+ } else
+ t4 = C.List_empty4;
+ return new K.HeroControllerScope(_null, T.Listener$(C.HitTestBehavior_0, new T.AbsorbPointer(false, L.FocusScope$(true, K.UnmanagedRestorationScope$(t2, new X.Overlay(t4, t3)), _null, _this.focusScopeNode), _null), t1, _this.get$_handlePointerDown(), _null, t1), _null);
+ }
+ };
+ K.NavigatorState_restoreState_closure.prototype = {
+ call$1: function(route) {
+ var t2, t3,
+ t1 = route._settings.name;
+ if (t1 != null) {
+ t2 = this.$this._rawNextPagelessRestorationScopeId;
+ t3 = t2._restoration_properties$_value;
+ t2.super$RestorableValue$value(0, t3 + 1);
+ t1 = new K._NamedRestorationInformation(t3, t1, null, C._RouteRestorationType_0);
+ } else
+ t1 = null;
+ return K._RouteEntry$(route, C._RouteLifecycle_1, t1);
+ },
+ $signature: 307
+ };
+ K.NavigatorState__flushHistoryUpdates_closure.prototype = {
+ call$1: function(e) {
+ return e != null && $.$get$_RouteEntry_isPresentPredicate().call$1(e);
+ },
+ $signature: 32
+ };
+ K.NavigatorState__flushHistoryUpdates_closure0.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ K.NavigatorState__afterNavigation_closure.prototype = {
+ call$1: function(object) {
+ return H.S(object);
+ },
+ $signature: 308
+ };
+ K.NavigatorState_maybePop_closure.prototype = {
+ call$1: function(e) {
+ return e != null && $.$get$_RouteEntry_isPresentPredicate().call$1(e);
+ },
+ $signature: 32
+ };
+ K.NavigatorState_maybePop_closure0.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ K.NavigatorState_maybePop_closure1.prototype = {
+ call$1: function(e) {
+ return e != null && $.$get$_RouteEntry_isPresentPredicate().call$1(e);
+ },
+ $signature: 32
+ };
+ K.NavigatorState_maybePop_closure2.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ K.NavigatorState__cancelActivePointers_closure.prototype = {
+ call$0: function() {
+ var t1 = this.absorber;
+ if (t1 != null)
+ t1.set$absorbing(true);
+ },
+ $signature: 0
+ };
+ K._RouteRestorationType.prototype = {
+ toString$0: function(_) {
+ return this._navigator$_name;
+ }
+ };
+ K._RestorationInformation.prototype = {
+ get$isRestorable: function() {
+ return true;
+ },
+ computeSerializableData$0: function() {
+ return H.setRuntimeTypeInfo([this.type.index], type$.JSArray_Object);
+ }
+ };
+ K._NamedRestorationInformation.prototype = {
+ computeSerializableData$0: function() {
+ var t3, _this = this,
+ t1 = _this.super$_RestorationInformation$computeSerializableData(),
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_Object);
+ t2.push(_this.restorationScopeId);
+ t2.push(_this.name);
+ t3 = _this.$arguments;
+ if (t3 != null)
+ t2.push(t3);
+ C.JSArray_methods.addAll$1(t1, t2);
+ return t1;
+ },
+ createRoute$1: function($navigator) {
+ var t1 = $navigator._routeNamed$1$3$allowNull$arguments(this.name, false, this.$arguments, type$.dynamic);
+ t1.toString;
+ return t1;
+ },
+ get$restorationScopeId: function() {
+ return this.restorationScopeId;
+ },
+ get$name: function(receiver) {
+ return this.name;
+ }
+ };
+ K._AnonymousRestorationInformation.prototype = {
+ get$isRestorable: function() {
+ return false;
+ },
+ computeSerializableData$0: function() {
+ P.PluginUtilities_getCallbackHandle(this.routeBuilder);
+ },
+ createRoute$1: function($navigator) {
+ var t1 = $navigator._framework$_element;
+ t1.toString;
+ return this.routeBuilder.call$2(t1, this.$arguments);
+ },
+ get$restorationScopeId: function() {
+ return this.restorationScopeId;
+ }
+ };
+ K._HistoryProperty.prototype = {
+ update$1: function(_, $history) {
+ var newRoutesForCurrentPage, t1, oldRoutesForCurrentPage, newMap, removedPages, currentPage, needsSerialization, restorationEnabled, _i, entry, t2, t3, serializedData, t4, _this = this, _null = null,
+ wasUninitialized = _this._pageToPagelessRoutes == null;
+ if (wasUninitialized)
+ _this._pageToPagelessRoutes = P.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.List_Object);
+ newRoutesForCurrentPage = H.setRuntimeTypeInfo([], type$.JSArray_Object);
+ t1 = _this._pageToPagelessRoutes;
+ t1.toString;
+ oldRoutesForCurrentPage = J.$index$asx(t1, null);
+ if (oldRoutesForCurrentPage == null)
+ oldRoutesForCurrentPage = C.List_empty1;
+ newMap = P.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_String, type$.List_Object);
+ t1 = _this._pageToPagelessRoutes;
+ t1.toString;
+ removedPages = J.toSet$0$ax(J.get$keys$x(t1));
+ for (t1 = $history.length, currentPage = _null, needsSerialization = wasUninitialized, restorationEnabled = true, _i = 0; _i < $history.length; $history.length === t1 || (0, H.throwConcurrentModificationError)($history), ++_i) {
+ entry = $history[_i];
+ if (entry.currentState.index > 7) {
+ t2 = entry.route;
+ t2._restorationScopeId.set$value(0, _null);
+ continue;
+ }
+ t2 = entry.route;
+ t2.toString;
+ if (restorationEnabled) {
+ t3 = entry.restorationInformation;
+ restorationEnabled = (t3 == null ? _null : t3.get$isRestorable()) === true;
+ } else
+ restorationEnabled = false;
+ t3 = restorationEnabled ? entry.get$restorationId() : _null;
+ t2._restorationScopeId.set$value(0, t3);
+ if (restorationEnabled) {
+ t2 = entry.restorationInformation;
+ serializedData = t2._serializableData;
+ if (serializedData == null)
+ serializedData = t2._serializableData = t2.computeSerializableData$0();
+ if (!needsSerialization) {
+ t2 = J.getInterceptor$asx(oldRoutesForCurrentPage);
+ t3 = t2.get$length(oldRoutesForCurrentPage);
+ t4 = newRoutesForCurrentPage.length;
+ needsSerialization = t3 <= t4 || !J.$eq$(t2.$index(oldRoutesForCurrentPage, t4), serializedData);
+ } else
+ needsSerialization = true;
+ newRoutesForCurrentPage.push(serializedData);
+ }
+ }
+ needsSerialization = needsSerialization || newRoutesForCurrentPage.length !== J.get$length$asx(oldRoutesForCurrentPage);
+ _this._finalizePage$4(newRoutesForCurrentPage, currentPage, newMap, removedPages);
+ if (needsSerialization || removedPages.get$isNotEmpty(removedPages)) {
+ _this._pageToPagelessRoutes = newMap;
+ _this.notifyListeners$0();
+ }
+ },
+ _finalizePage$4: function(routes, page, pageToRoutes, pagesToRemove) {
+ var restorationId,
+ t1 = routes.length;
+ if (t1 !== 0) {
+ restorationId = page == null ? null : page.get$restorationId();
+ pageToRoutes.$indexSet(0, restorationId, routes);
+ pagesToRemove.remove$1(0, restorationId);
+ }
+ },
+ clear$0: function(_) {
+ if (this._pageToPagelessRoutes == null)
+ return;
+ this._pageToPagelessRoutes = null;
+ this.notifyListeners$0();
+ },
+ restoreEntriesForPage$2: function(page, $navigator) {
+ var t1, serializedData, t2, route, t3,
+ result = H.setRuntimeTypeInfo([], type$.JSArray__RouteEntry);
+ if (this._pageToPagelessRoutes != null)
+ t1 = page != null && page.get$restorationId() == null;
+ else
+ t1 = true;
+ if (t1)
+ return result;
+ t1 = this._pageToPagelessRoutes;
+ t1.toString;
+ serializedData = J.$index$asx(t1, page == null ? null : page.get$restorationId());
+ if (serializedData == null)
+ return result;
+ for (t1 = J.get$iterator$ax(serializedData); t1.moveNext$0();) {
+ t2 = K._RestorationInformation__RestorationInformation$fromSerializableData(t1.get$current(t1));
+ route = t2.createRoute$1($navigator);
+ t3 = $.$get$_RouteEntry_notAnnounced();
+ result.push(new K._RouteEntry(route, t2, C._RouteLifecycle_1, t3, t3, t3));
+ }
+ return result;
+ },
+ createDefaultValue$0: function() {
+ return null;
+ },
+ fromPrimitives$1: function(data) {
+ data.toString;
+ return J.map$2$1$ax(type$.Map_dynamic_dynamic._as(data), new K._HistoryProperty_fromPrimitives_closure(), type$.nullable_String, type$.List_Object);
+ },
+ initWithValue$1: function(value) {
+ this._pageToPagelessRoutes = value;
+ },
+ toPrimitives$0: function() {
+ return this._pageToPagelessRoutes;
+ },
+ get$enabled: function(_) {
+ return this._pageToPagelessRoutes != null;
+ }
+ };
+ K._HistoryProperty_fromPrimitives_closure.prototype = {
+ call$2: function(key, value) {
+ return new P.MapEntry(H._asStringQ(key), P.List_List$from(type$.List_dynamic._as(value), true, type$.Object), type$.MapEntry_of_nullable_String_and_List_Object);
+ },
+ $signature: 309
+ };
+ K._NavigatorState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure.prototype = {
+ call$2: function(property, listener) {
+ if (!property._disposed)
+ property.removeListener$1(0, listener);
+ },
+ $signature: 44
+ };
+ K._NavigatorState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ K._NavigatorState_State_TickerProviderStateMixin_RestorationMixin.prototype = {
+ didUpdateWidget$1: function(oldWidget) {
+ this.super$State$didUpdateWidget(oldWidget);
+ this.didUpdateRestorationId$0();
+ },
+ didChangeDependencies$0: function() {
+ var oldBucket, needsRestore, t1, didReplaceBucket, _this = this;
+ _this.super$_NavigatorState_State_TickerProviderStateMixin$didChangeDependencies();
+ oldBucket = _this.RestorationMixin__bucket;
+ needsRestore = _this.get$restorePending();
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = K.RestorationScope_of(t1);
+ _this.RestorationMixin__currentParent = t1;
+ didReplaceBucket = _this._updateBucketIfNecessary$2$parent$restorePending(t1, needsRestore);
+ if (needsRestore) {
+ _this.restoreState$2(oldBucket, _this.RestorationMixin__firstRestorePending);
+ _this.RestorationMixin__firstRestorePending = false;
+ }
+ if (didReplaceBucket)
+ if (oldBucket != null)
+ oldBucket.dispose$0(0);
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ _this.RestorationMixin__properties.forEach$1(0, new K._NavigatorState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure());
+ t1 = _this.RestorationMixin__bucket;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this.RestorationMixin__bucket = null;
+ _this.super$_NavigatorState_State_TickerProviderStateMixin$dispose(0);
+ }
+ };
+ U.Notification0.prototype = {
+ visitAncestor$1: function(element) {
+ var widget;
+ if (element instanceof N.StatelessElement) {
+ widget = type$.StatelessWidget._as(N.Element.prototype.get$widget.call(element));
+ if (widget instanceof U.NotificationListener)
+ if (widget._notification_listener$_dispatch$2(this, element))
+ return false;
+ }
+ return true;
+ },
+ dispatch$1: function(target) {
+ if (target != null)
+ target.visitAncestorElements$1(this.get$visitAncestor());
+ },
+ toString$0: function(_) {
+ var description = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ this.debugFillDescription$1(description);
+ return "Notification(" + C.JSArray_methods.join$1(description, ", ") + ")";
+ },
+ debugFillDescription$1: function(description) {
+ }
+ };
+ U.NotificationListener.prototype = {
+ _notification_listener$_dispatch$2: function(notification, element) {
+ if (this.$ti._precomputed1._is(notification))
+ return this.onNotification.call$1(notification) === true;
+ return false;
+ },
+ build$1: function(_, context) {
+ return this.child;
+ }
+ };
+ U.LayoutChangedNotification.prototype = {};
+ V.OrientationBuilder.prototype = {
+ _buildWithConstraints$2: function(context, constraints) {
+ var orientation = constraints.maxWidth > constraints.maxHeight ? C.Orientation_1 : C.Orientation_0;
+ return this.builder.call$2(context, orientation);
+ },
+ build$1: function(_, context) {
+ return new A.LayoutBuilder(this.get$_buildWithConstraints(), null);
+ }
+ };
+ X.OverlayEntry.prototype = {
+ set$opaque: function(value) {
+ var t1;
+ if (this._opaque === value)
+ return;
+ this._opaque = value;
+ t1 = this._overlay;
+ if (t1 != null)
+ t1._didChangeEntryOpacity$0();
+ },
+ set$maintainState: function(value) {
+ if (this._maintainState)
+ return;
+ this._maintainState = true;
+ this._overlay._didChangeEntryOpacity$0();
+ },
+ _updateMounted$1: function(value) {
+ if (value === this._mounted)
+ return;
+ this._mounted = value;
+ this.notifyListeners$0();
+ },
+ remove$0: function(_) {
+ var t2,
+ t1 = this._overlay;
+ t1.toString;
+ this._overlay = null;
+ if (t1._framework$_element == null)
+ return;
+ C.JSArray_methods.remove$1(t1._entries, this);
+ t2 = $.SchedulerBinding__instance;
+ if (t2.SchedulerBinding__schedulerPhase === C.SchedulerPhase_3)
+ t2.SchedulerBinding__postFrameCallbacks.push(new X.OverlayEntry_remove_closure(t1));
+ else
+ t1._markDirty$0();
+ },
+ markNeedsBuild$0: function() {
+ var t1 = this._key.get$currentState();
+ if (t1 != null)
+ t1._markNeedsBuild$0();
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this) + "(opaque: " + this._opaque + "; maintainState: " + this._maintainState + ")";
+ }
+ };
+ X.OverlayEntry_remove_closure.prototype = {
+ call$1: function(duration) {
+ this.overlay._markDirty$0();
+ },
+ $signature: 4
+ };
+ X._OverlayEntryWidget.prototype = {
+ createState$0: function() {
+ return new X._OverlayEntryWidgetState(C._StateLifecycle_0);
+ }
+ };
+ X._OverlayEntryWidgetState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this._widget.entry._updateMounted$1(true);
+ },
+ dispose$0: function(_) {
+ this._widget.entry._updateMounted$1(false);
+ this.super$State$dispose(0);
+ },
+ build$1: function(_, context) {
+ var t1 = this._widget;
+ return new U.TickerMode(t1.tickerEnabled, t1.entry.builder.call$1(context), null);
+ },
+ _markNeedsBuild$0: function() {
+ this.setState$1(new X._OverlayEntryWidgetState__markNeedsBuild_closure());
+ }
+ };
+ X._OverlayEntryWidgetState__markNeedsBuild_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ X.Overlay.prototype = {
+ createState$0: function() {
+ return new X.OverlayState(H.setRuntimeTypeInfo([], type$.JSArray_OverlayEntry), null, C._StateLifecycle_0);
+ }
+ };
+ X.OverlayState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this.insertAll$1(0, this._widget.initialEntries);
+ },
+ _insertionIndex$2: function(below, above) {
+ return this._entries.length;
+ },
+ insert$1: function(_, entry) {
+ entry._overlay = this;
+ this.setState$1(new X.OverlayState_insert_closure(this, null, null, entry));
+ },
+ insertAll$1: function(_, entries) {
+ var _i,
+ t1 = entries.length;
+ if (t1 === 0)
+ return;
+ for (_i = 0; _i < t1; ++_i)
+ entries[_i]._overlay = this;
+ this.setState$1(new X.OverlayState_insertAll_closure(this, null, null, entries));
+ },
+ rearrange$1: function(newEntries) {
+ var t1, old, _i, entry, _this = this,
+ newEntriesList = P.List_List$of(newEntries, false, newEntries.$ti._eval$1("Iterable.E"));
+ if (newEntriesList.length === 0)
+ return;
+ t1 = _this._entries;
+ if (S.listEquals(t1, newEntriesList))
+ return;
+ old = P.LinkedHashSet_LinkedHashSet$from(t1, type$.OverlayEntry);
+ for (t1 = newEntriesList.length, _i = 0; _i < t1; ++_i) {
+ entry = newEntriesList[_i];
+ if (entry._overlay == null)
+ entry._overlay = _this;
+ }
+ _this.setState$1(new X.OverlayState_rearrange_closure(_this, newEntriesList, old, null, null));
+ },
+ _markDirty$0: function() {
+ if (this._framework$_element != null)
+ this.setState$1(new X.OverlayState__markDirty_closure());
+ },
+ _didChangeEntryOpacity$0: function() {
+ this.setState$1(new X.OverlayState__didChangeEntryOpacity_closure());
+ },
+ build$1: function(_, context) {
+ var t1, i, onstage, onstageCount, entry, t2,
+ children = H.setRuntimeTypeInfo([], type$.JSArray_Widget);
+ for (t1 = this._entries, i = t1.length - 1, onstage = true, onstageCount = 0; i >= 0; --i) {
+ entry = t1[i];
+ if (onstage) {
+ ++onstageCount;
+ children.push(new X._OverlayEntryWidget(entry, true, entry._key));
+ onstage = !entry._opaque || false;
+ } else if (entry._maintainState)
+ children.push(new X._OverlayEntryWidget(entry, false, entry._key));
+ }
+ t1 = children.length;
+ t2 = type$.ReversedListIterable_Widget;
+ t2 = P.List_List$of(new H.ReversedListIterable(children, t2), false, t2._eval$1("ListIterable.E"));
+ this._widget.toString;
+ return new X._Theatre(t1 - onstageCount, C.Clip_1, t2, null);
+ }
+ };
+ X.OverlayState_insert_closure.prototype = {
+ call$0: function() {
+ var _this = this,
+ t1 = _this.$this;
+ C.JSArray_methods.insert$2(t1._entries, t1._insertionIndex$2(_this.below, _this.above), _this.entry);
+ },
+ $signature: 0
+ };
+ X.OverlayState_insertAll_closure.prototype = {
+ call$0: function() {
+ var _this = this,
+ t1 = _this.$this;
+ C.JSArray_methods.insertAll$2(t1._entries, t1._insertionIndex$2(_this.below, _this.above), _this.entries);
+ },
+ $signature: 0
+ };
+ X.OverlayState_rearrange_closure.prototype = {
+ call$0: function() {
+ var t3, t4, _this = this,
+ t1 = _this.$this,
+ t2 = t1._entries;
+ C.JSArray_methods.set$length(t2, 0);
+ t3 = _this.newEntriesList;
+ C.JSArray_methods.addAll$1(t2, t3);
+ t4 = _this.old;
+ t4.removeAll$1(t3);
+ C.JSArray_methods.insertAll$2(t2, t1._insertionIndex$2(_this.below, _this.above), t4);
+ },
+ $signature: 0
+ };
+ X.OverlayState__markDirty_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ X.OverlayState__didChangeEntryOpacity_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ X._Theatre.prototype = {
+ createElement$0: function(_) {
+ var t1 = type$.Element_2,
+ t2 = P.HashSet_HashSet(t1),
+ t3 = ($.Element__nextHashCode + 1) % 16777215;
+ $.Element__nextHashCode = t3;
+ return new X._TheatreElement(t2, t3, this, C._ElementLifecycle_0, P.HashSet_HashSet(t1));
+ },
+ createRenderObject$1: function(context) {
+ var t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ t1 = new X._RenderTheatre(t1.textDirection, this.skipCount, this.clipBehavior, 0, null, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ t1.addAll$1(0, null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1 = this.skipCount;
+ if (renderObject._overlay$_skipCount !== t1) {
+ renderObject._overlay$_skipCount = t1;
+ renderObject.markNeedsLayout$0();
+ }
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(type$.Directionality);
+ t1.toString;
+ renderObject.set$textDirection(0, t1.textDirection);
+ t1 = this.clipBehavior;
+ if (t1 !== renderObject._overlay$_clipBehavior) {
+ renderObject._overlay$_clipBehavior = t1;
+ renderObject.markNeedsPaint$0();
+ renderObject.markNeedsSemanticsUpdate$0();
+ }
+ }
+ };
+ X._TheatreElement.prototype = {
+ get$widget: function() {
+ return type$._Theatre._as(N.MultiChildRenderObjectElement.prototype.get$widget.call(this));
+ },
+ get$renderObject: function() {
+ return type$._RenderTheatre._as(N.RenderObjectElement.prototype.get$renderObject.call(this));
+ }
+ };
+ X._RenderTheatre.prototype = {
+ setupParentData$1: function(child) {
+ if (!(child.parentData instanceof K.StackParentData))
+ child.parentData = new K.StackParentData(null, null, C.Offset_0_0);
+ },
+ _overlay$_resolve$0: function() {
+ if (this._overlay$_resolvedAlignment != null)
+ return;
+ this._overlay$_resolvedAlignment = C.AlignmentDirectional_m1_m1.resolve$1(this._overlay$_textDirection);
+ },
+ set$textDirection: function(_, value) {
+ var _this = this;
+ if (_this._overlay$_textDirection === value)
+ return;
+ _this._overlay$_textDirection = value;
+ _this._overlay$_resolvedAlignment = null;
+ _this.markNeedsLayout$0();
+ },
+ get$_firstOnstageChild: function() {
+ var child, toSkip, t1, t2, _this = this;
+ if (_this._overlay$_skipCount === K.ContainerRenderObjectMixin.prototype.get$childCount.call(_this))
+ return null;
+ child = K.ContainerRenderObjectMixin.prototype.get$firstChild.call(_this, _this);
+ for (toSkip = _this._overlay$_skipCount, t1 = type$.StackParentData; toSkip > 0; --toSkip) {
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ return child;
+ },
+ computeMinIntrinsicWidth$1: function(height) {
+ return K.RenderStack_getIntrinsicDimension(this.get$_firstOnstageChild(), new X._RenderTheatre_computeMinIntrinsicWidth_closure(height));
+ },
+ computeMaxIntrinsicWidth$1: function(height) {
+ return K.RenderStack_getIntrinsicDimension(this.get$_firstOnstageChild(), new X._RenderTheatre_computeMaxIntrinsicWidth_closure(height));
+ },
+ computeMinIntrinsicHeight$1: function(width) {
+ return K.RenderStack_getIntrinsicDimension(this.get$_firstOnstageChild(), new X._RenderTheatre_computeMinIntrinsicHeight_closure(width));
+ },
+ computeMaxIntrinsicHeight$1: function(width) {
+ return K.RenderStack_getIntrinsicDimension(this.get$_firstOnstageChild(), new X._RenderTheatre_computeMaxIntrinsicHeight_closure(width));
+ },
+ computeDistanceToActualBaseline$1: function(baseline) {
+ var t1, result, t2, candidate,
+ child = this.get$_firstOnstageChild();
+ for (t1 = type$.StackParentData, result = null; child != null;) {
+ t2 = child.parentData;
+ t2.toString;
+ t1._as(t2);
+ candidate = child.getDistanceToActualBaseline$1(baseline);
+ if (candidate != null) {
+ candidate += t2.offset._dy;
+ result = result != null ? Math.min(result, candidate) : candidate;
+ }
+ child = t2.ContainerParentDataMixin_nextSibling;
+ }
+ return result;
+ },
+ get$sizedByParent: function() {
+ return true;
+ },
+ performResize$0: function() {
+ var t1 = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(this));
+ this._size = new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight));
+ },
+ performLayout$0: function() {
+ var t1, nonPositionedConstraints, child, t2, t3, t4, t5, t6, _this = this;
+ _this._overlay$_hasVisualOverflow = false;
+ if (_this.ContainerRenderObjectMixin__childCount - _this._overlay$_skipCount === 0)
+ return;
+ _this._overlay$_resolve$0();
+ t1 = type$.BoxConstraints._as(K.RenderObject.prototype.get$constraints.call(_this));
+ nonPositionedConstraints = S.BoxConstraints$tight(new P.Size(C.JSInt_methods.clamp$2(1 / 0, t1.minWidth, t1.maxWidth), C.JSInt_methods.clamp$2(1 / 0, t1.minHeight, t1.maxHeight)));
+ child = _this.get$_firstOnstageChild();
+ for (t1 = type$.StackParentData, t2 = type$.Offset; child != null;) {
+ t3 = child.parentData;
+ t3.toString;
+ t1._as(t3);
+ if (!t3.get$isPositioned()) {
+ child.layout$2$parentUsesSize(0, nonPositionedConstraints, true);
+ t4 = _this._overlay$_resolvedAlignment;
+ t4.toString;
+ t5 = _this._size;
+ t5.toString;
+ t6 = child._size;
+ t6.toString;
+ t3.offset = t4.alongOffset$1(t2._as(t5.$sub(0, t6)));
+ } else {
+ t4 = _this._size;
+ t4.toString;
+ t5 = _this._overlay$_resolvedAlignment;
+ t5.toString;
+ _this._overlay$_hasVisualOverflow = K.RenderStack_layoutPositionedChild(child, t3, t4, t5) || _this._overlay$_hasVisualOverflow;
+ }
+ child = t3.ContainerParentDataMixin_nextSibling;
+ }
+ },
+ hitTestChildren$2$position: function(result, position) {
+ var t2, i, child, _this = this, _box_0 = {},
+ t1 = _box_0.child = _this._overlay$_skipCount === K.ContainerRenderObjectMixin.prototype.get$childCount.call(_this) ? null : _this.ContainerRenderObjectMixin__lastChild;
+ for (t2 = type$.StackParentData, i = 0; i < _this.ContainerRenderObjectMixin__childCount - _this._overlay$_skipCount; ++i, t1 = child) {
+ t1 = t1.parentData;
+ t1.toString;
+ t2._as(t1);
+ if (result.addWithPaintOffset$3$hitTest$offset$position(new X._RenderTheatre_hitTestChildren_closure(_box_0, position, t1), t1.offset, position))
+ return true;
+ child = t1.ContainerParentDataMixin_previousSibling;
+ _box_0.child = child;
+ }
+ return false;
+ },
+ paintStack$2: function(context, offset) {
+ var t1, t2, t3, t4, t5,
+ child = this.get$_firstOnstageChild();
+ for (t1 = type$.StackParentData, t2 = offset._dx, t3 = offset._dy; child != null;) {
+ t4 = child.parentData;
+ t4.toString;
+ t1._as(t4);
+ t5 = t4.offset;
+ context.paintChild$2(child, new P.Offset(t5._dx + t2, t5._dy + t3));
+ child = t4.ContainerParentDataMixin_nextSibling;
+ }
+ },
+ paint$2: function(context, offset) {
+ var t1, t2, _this = this;
+ if (_this._overlay$_hasVisualOverflow && _this._overlay$_clipBehavior !== C.Clip_0) {
+ t1 = _this.get$_needsCompositing();
+ t2 = _this._size;
+ _this._overlay$_clipRectLayer = context.pushClipRect$6$clipBehavior$oldLayer(t1, offset, new P.Rect(0, 0, 0 + t2._dx, 0 + t2._dy), _this.get$paintStack(), _this._overlay$_clipBehavior, _this._overlay$_clipRectLayer);
+ } else {
+ _this._overlay$_clipRectLayer = null;
+ _this.paintStack$2(context, offset);
+ }
+ },
+ visitChildrenForSemantics$1: function(visitor) {
+ var t1, t2,
+ child = this.get$_firstOnstageChild();
+ for (t1 = type$.StackParentData; child != null;) {
+ visitor.call$1(child);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ describeApproximatePaintClip$1: function(child) {
+ var t1;
+ if (this._overlay$_hasVisualOverflow) {
+ t1 = this._size;
+ t1 = new P.Rect(0, 0, 0 + t1._dx, 0 + t1._dy);
+ } else
+ t1 = null;
+ return t1;
+ },
+ debugDescribeChildren$0: function() {
+ var t2, count, onstage, t3, _i,
+ t1 = type$.JSArray_DiagnosticsNode,
+ offstageChildren = H.setRuntimeTypeInfo([], t1),
+ onstageChildren = H.setRuntimeTypeInfo([], t1),
+ child = this.ContainerRenderObjectMixin__firstChild,
+ firstOnstageChild = this.get$_firstOnstageChild();
+ for (t2 = type$.StackParentData, count = 1, onstage = false; child != null;) {
+ if (child === firstOnstageChild) {
+ count = 1;
+ onstage = true;
+ }
+ if (onstage)
+ onstageChildren.push(new Y.DiagnosticableTreeNode(child, "onstage " + count, true, true, null, null));
+ else
+ offstageChildren.push(new Y.DiagnosticableTreeNode(child, "offstage " + count, true, true, null, C.DiagnosticsTreeStyle_2));
+ t3 = child.parentData;
+ t3.toString;
+ child = t2._as(t3).ContainerParentDataMixin_nextSibling;
+ ++count;
+ }
+ t1 = H.setRuntimeTypeInfo([], t1);
+ for (t2 = onstageChildren.length, _i = 0; _i < onstageChildren.length; onstageChildren.length === t2 || (0, H.throwConcurrentModificationError)(onstageChildren), ++_i)
+ t1.push(onstageChildren[_i]);
+ t2 = offstageChildren.length;
+ if (t2 !== 0)
+ for (_i = 0; _i < offstageChildren.length; offstageChildren.length === t2 || (0, H.throwConcurrentModificationError)(offstageChildren), ++_i)
+ t1.push(offstageChildren[_i]);
+ else
+ t1.push(Y.DiagnosticsNode_DiagnosticsNode$message("no offstage children", true, C.DiagnosticsTreeStyle_2));
+ return t1;
+ }
+ };
+ X._RenderTheatre_computeMinIntrinsicWidth_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_0, this.height, child.get$computeMinIntrinsicWidth());
+ },
+ $signature: 5
+ };
+ X._RenderTheatre_computeMaxIntrinsicWidth_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_1, this.height, child.get$computeMaxIntrinsicWidth());
+ },
+ $signature: 5
+ };
+ X._RenderTheatre_computeMinIntrinsicHeight_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_2, this.width, child.get$computeMinIntrinsicHeight());
+ },
+ $signature: 5
+ };
+ X._RenderTheatre_computeMaxIntrinsicHeight_closure.prototype = {
+ call$1: function(child) {
+ return child._computeIntrinsicDimension$3(C._IntrinsicDimension_3, this.width, child.get$computeMaxIntrinsicHeight());
+ },
+ $signature: 5
+ };
+ X._RenderTheatre_hitTestChildren_closure.prototype = {
+ call$2: function(result, transformed) {
+ var t1 = this._box_0.child;
+ t1.toString;
+ transformed.toString;
+ return t1.hitTest$2$position(result, transformed);
+ },
+ $signature: 23
+ };
+ X._OverlayState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ X.__RenderTheatre_RenderBox_ContainerRenderObjectMixin.prototype = {
+ attach$1: function(owner) {
+ var child, t1, t2;
+ this.super$RenderObject$attach(owner);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.StackParentData; child != null;) {
+ child.attach$1(owner);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ },
+ detach$0: function(_) {
+ var child, t1, t2;
+ this.super$AbstractNode$detach(0);
+ child = this.ContainerRenderObjectMixin__firstChild;
+ for (t1 = type$.StackParentData; child != null;) {
+ child.detach$0(0);
+ t2 = child.parentData;
+ t2.toString;
+ child = t1._as(t2).ContainerParentDataMixin_nextSibling;
+ }
+ }
+ };
+ L.GlowingOverscrollIndicator.prototype = {
+ createState$0: function() {
+ var t1 = type$.bool;
+ return new L._GlowingOverscrollIndicatorState(P.LinkedHashMap_LinkedHashMap$_literal([false, true, true, true], t1, t1), null, C._StateLifecycle_0);
+ },
+ notificationPredicate$1: function(arg0) {
+ return G.scroll_notification__defaultScrollNotificationPredicate$closure().call$1(arg0);
+ }
+ };
+ L._GlowingOverscrollIndicatorState.prototype = {
+ initState$0: function() {
+ var t1, t2, _this = this;
+ _this.super$State$initState();
+ t1 = _this._widget;
+ t2 = t1.color;
+ _this._leadingController = L._GlowController$(G.axisDirectionToAxis(t1.axisDirection), t2, _this);
+ t2 = _this._widget;
+ t1 = t2.color;
+ t1 = L._GlowController$(G.axisDirectionToAxis(t2.axisDirection), t1, _this);
+ _this._trailingController = t1;
+ t2 = _this._leadingController;
+ t2.toString;
+ _this._leadingAndTrailingListener = new B._MergingListenable(H.setRuntimeTypeInfo([t2, t1], type$.JSArray_Listenable));
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ if (!J.$eq$(oldWidget.color, _this._widget.color) || G.axisDirectionToAxis(oldWidget.axisDirection) !== G.axisDirectionToAxis(_this._widget.axisDirection)) {
+ t1 = _this._leadingController;
+ t1.toString;
+ t1.set$color(0, _this._widget.color);
+ t1 = _this._leadingController;
+ t1.toString;
+ t1.set$axis(G.axisDirectionToAxis(_this._widget.axisDirection));
+ t1 = _this._trailingController;
+ t1.toString;
+ t1.set$color(0, _this._widget.color);
+ t1 = _this._trailingController;
+ t1.toString;
+ t1.set$axis(G.axisDirectionToAxis(_this._widget.axisDirection));
+ }
+ },
+ _handleScrollNotification$1: function(notification) {
+ var t1, t2, t3, t4, t5, controller, isLeading, velocity, position, _this = this;
+ if (!_this._widget.notificationPredicate$1(notification))
+ return false;
+ t1 = _this._leadingController;
+ t1.toString;
+ t2 = notification.metrics;
+ t3 = t2._scroll_metrics$_pixels;
+ t3.toString;
+ t4 = t2._scroll_metrics$_minScrollExtent;
+ t4.toString;
+ t1._paintOffsetScrollPixels = -Math.min(t3 - t4, t1._paintOffset);
+ t4 = _this._trailingController;
+ t4.toString;
+ t5 = t2._scroll_metrics$_maxScrollExtent;
+ t5.toString;
+ t4._paintOffsetScrollPixels = -Math.min(t5 - t3, t4._paintOffset);
+ if (notification instanceof G.OverscrollNotification) {
+ t3 = notification.overscroll;
+ if (t3 < 0)
+ controller = t1;
+ else if (t3 > 0)
+ controller = t4;
+ else
+ controller = null;
+ isLeading = controller === t1;
+ if (_this._lastNotificationType !== C.Type_OverscrollNotification_Ps9) {
+ t1 = _this._framework$_element;
+ t1.toString;
+ new L.OverscrollIndicatorNotification(isLeading, 0).dispatch$1(t1);
+ t1 = _this._accepted;
+ t1.$indexSet(0, isLeading, true);
+ t1.$index(0, isLeading).toString;
+ controller._paintOffset = 0;
+ }
+ _this._accepted.$index(0, isLeading).toString;
+ t1 = notification.velocity;
+ if (t1 !== 0) {
+ t2 = controller._pullRecedeTimer;
+ if (t2 != null)
+ t2.cancel$0(0);
+ controller._pullRecedeTimer = null;
+ velocity = C.JSNumber_methods.clamp$2(Math.abs(t1), 100, 10000);
+ t1 = controller._glowOpacityTween;
+ if (controller._overscroll_indicator$_state === C._GlowState_0)
+ t2 = 0.3;
+ else {
+ t2 = controller.get$_glowOpacity();
+ t3 = t2._evaluatable;
+ t2 = t2.parent;
+ t2 = t3.transform$1(0, t2.get$value(t2));
+ }
+ t1.begin = t2;
+ t2.toString;
+ t1.end = C.JSNumber_methods.clamp$2(velocity * 0.00006, t2, 0.5);
+ t2 = controller._glowSizeTween;
+ t1 = controller.get$_glowSize();
+ t3 = t1._evaluatable;
+ t1 = t1.parent;
+ t2.begin = t3.transform$1(0, t1.get$value(t1));
+ t2.end = Math.min(0.025 + 75e-8 * velocity * velocity, 1);
+ controller.get$_glowController().duration = P.Duration$(0, C.JSDouble_methods.round$0(0.15 + velocity * 0.02), 0);
+ controller.get$_glowController().forward$1$from(0, 0);
+ controller._displacement = 0.5;
+ controller._overscroll_indicator$_state = C._GlowState_1;
+ } else {
+ t1 = notification.dragDetails;
+ if (t1 != null) {
+ t4 = notification.context.get$renderObject();
+ t4.toString;
+ type$.RenderBox._as(t4);
+ t5 = t4._size;
+ t5.toString;
+ position = t4.globalToLocal$1(t1.globalPosition);
+ switch (G.axisDirectionToAxis(t2.axisDirection)) {
+ case C.Axis_0:
+ controller.toString;
+ t1 = t5._dy;
+ controller.pull$4(0, Math.abs(t3), t5._dx, J.clamp$2$n(position._dy, 0, t1), t1);
+ break;
+ case C.Axis_1:
+ controller.toString;
+ t1 = t5._dx;
+ controller.pull$4(0, Math.abs(t3), t5._dy, J.clamp$2$n(position._dx, 0, t1), t1);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ }
+ } else if (notification instanceof G.ScrollEndNotification || notification instanceof G.ScrollUpdateNotification)
+ if (notification.get$dragDetails() != null) {
+ t1 = _this._leadingController;
+ if (t1._overscroll_indicator$_state === C._GlowState_2)
+ t1._recede$1(C.Duration_600000);
+ t1 = _this._trailingController;
+ if (t1._overscroll_indicator$_state === C._GlowState_2)
+ t1._recede$1(C.Duration_600000);
+ }
+ _this._lastNotificationType = H.getRuntimeType(notification);
+ return false;
+ },
+ dispose$0: function(_) {
+ this._leadingController.dispose$0(0);
+ this._trailingController.dispose$0(0);
+ this.super$__GlowingOverscrollIndicatorState_State_TickerProviderStateMixin$dispose(0);
+ },
+ build$1: function(_, context) {
+ var _this = this, _null = null,
+ t1 = _this._widget,
+ t2 = _this._leadingController,
+ t3 = _this._trailingController,
+ t4 = t1.axisDirection,
+ t5 = _this._leadingAndTrailingListener;
+ return new U.NotificationListener(new T.RepaintBoundary(T.CustomPaint$(new T.RepaintBoundary(t1.child, _null), new L._GlowingOverscrollIndicatorPainter(t2, t3, t4, t5), _null), _null), _this.get$_handleScrollNotification(), _null, type$.NotificationListener_ScrollNotification);
+ }
+ };
+ L._GlowState.prototype = {
+ toString$0: function(_) {
+ return this._overscroll_indicator$_name;
+ }
+ };
+ L._GlowController.prototype = {
+ get$_glowController: function() {
+ return this.___GlowController__glowController_isSet ? this.___GlowController__glowController : H.throwExpression(H.LateError$fieldNI("_glowController"));
+ },
+ get$_glowOpacity: function() {
+ return this.___GlowController__glowOpacity_isSet ? this.___GlowController__glowOpacity : H.throwExpression(H.LateError$fieldNI("_glowOpacity"));
+ },
+ get$_glowSize: function() {
+ return this.___GlowController__glowSize_isSet ? this.___GlowController__glowSize : H.throwExpression(H.LateError$fieldNI("_glowSize"));
+ },
+ get$_displacementTicker: function() {
+ return this.___GlowController__displacementTicker_isSet ? this.___GlowController__displacementTicker : H.throwExpression(H.LateError$fieldNI("_displacementTicker"));
+ },
+ set$color: function(_, value) {
+ if (J.$eq$(this._overscroll_indicator$_color, value))
+ return;
+ this._overscroll_indicator$_color = value;
+ this.notifyListeners$0();
+ },
+ set$axis: function(value) {
+ if (this._axis === value)
+ return;
+ this._axis = value;
+ this.notifyListeners$0();
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ _this.get$_glowController().dispose$0(0);
+ t1 = _this.get$_displacementTicker();
+ t1._creator.TickerProviderStateMixin__tickers.remove$1(0, t1);
+ t1.super$Ticker$dispose(0);
+ t1 = _this._pullRecedeTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this.super$ChangeNotifier$dispose(0);
+ },
+ pull$4: function(_, overscroll, extent, crossAxisOffset, crossExtent) {
+ var t2, t3, height, t4, _this = this,
+ t1 = _this._pullRecedeTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._pullDistance = _this._pullDistance + overscroll / 200;
+ t1 = _this._glowOpacityTween;
+ t2 = _this.get$_glowOpacity();
+ t3 = t2._evaluatable;
+ t2 = t2.parent;
+ t1.begin = t3.transform$1(0, t2.get$value(t2));
+ t2 = _this.get$_glowOpacity();
+ t3 = t2._evaluatable;
+ t2 = t2.parent;
+ t1.end = Math.min(t3.transform$1(0, t2.get$value(t2)) + overscroll / extent * 0.8, 0.5);
+ height = Math.min(extent, crossExtent * 0.20096189432249995);
+ t2 = _this._glowSizeTween;
+ t3 = _this.get$_glowSize();
+ t1 = t3._evaluatable;
+ t3 = t3.parent;
+ t2.begin = t1.transform$1(0, t3.get$value(t3));
+ t3 = Math.sqrt(_this._pullDistance * height);
+ t1 = _this.get$_glowSize();
+ t4 = t1._evaluatable;
+ t1 = t1.parent;
+ t2.end = Math.max(1 - 1 / (0.7 * t3), H.checkNum(t4.transform$1(0, t1.get$value(t1))));
+ t1 = crossAxisOffset / crossExtent;
+ _this._displacementTarget = t1;
+ if (t1 !== _this._displacement) {
+ if (!_this.get$_displacementTicker().get$isTicking())
+ _this.get$_displacementTicker().start$0(0);
+ } else {
+ _this.get$_displacementTicker().stop$0(0);
+ _this._displacementTickerLastElapsed = null;
+ }
+ _this.get$_glowController().duration = C.Duration_167000;
+ if (_this._overscroll_indicator$_state !== C._GlowState_2) {
+ _this.get$_glowController().forward$1$from(0, 0);
+ _this._overscroll_indicator$_state = C._GlowState_2;
+ } else if (!_this.get$_glowController().get$isAnimating())
+ _this.notifyListeners$0();
+ _this._pullRecedeTimer = P.Timer_Timer(C.Duration_167000, new L._GlowController_pull_closure(_this));
+ },
+ _changePhase$1: function($status) {
+ var _this = this;
+ if ($status !== C.AnimationStatus_3)
+ return;
+ switch (_this._overscroll_indicator$_state) {
+ case C._GlowState_1:
+ _this._recede$1(C.Duration_600000);
+ break;
+ case C._GlowState_3:
+ _this._overscroll_indicator$_state = C._GlowState_0;
+ _this._pullDistance = 0;
+ break;
+ case C._GlowState_2:
+ case C._GlowState_0:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _recede$1: function(duration) {
+ var t2, t3, _this = this,
+ t1 = _this._overscroll_indicator$_state;
+ if (t1 === C._GlowState_3 || t1 === C._GlowState_0)
+ return;
+ t1 = _this._pullRecedeTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ _this._pullRecedeTimer = null;
+ t1 = _this._glowOpacityTween;
+ t2 = _this.get$_glowOpacity();
+ t3 = t2._evaluatable;
+ t2 = t2.parent;
+ t1.begin = t3.transform$1(0, t2.get$value(t2));
+ t1.end = 0;
+ t1 = _this._glowSizeTween;
+ t2 = _this.get$_glowSize();
+ t3 = t2._evaluatable;
+ t2 = t2.parent;
+ t1.begin = t3.transform$1(0, t2.get$value(t2));
+ t1.end = 0;
+ _this.get$_glowController().duration = duration;
+ _this.get$_glowController().forward$1$from(0, 0);
+ _this._overscroll_indicator$_state = C._GlowState_3;
+ },
+ _tickDisplacement$1: function(elapsed) {
+ var t2, _this = this,
+ t1 = _this._displacementTickerLastElapsed;
+ if (t1 != null) {
+ t1 = t1._duration;
+ t2 = _this._displacementTarget;
+ _this._displacement = t2 - (t2 - _this._displacement) * Math.pow(2, -(elapsed._duration - t1) / $.$get$_GlowController__crossAxisHalfTime()._duration);
+ _this.notifyListeners$0();
+ }
+ if (B.nearEqual(_this._displacementTarget, _this._displacement, 0.001)) {
+ _this.get$_displacementTicker().stop$0(0);
+ _this._displacementTickerLastElapsed = null;
+ } else
+ _this._displacementTickerLastElapsed = elapsed;
+ },
+ paint$2: function(canvas, size) {
+ var baseGlowScale, radius, height, t3, paint, t4, t5, t6, _this = this,
+ t1 = _this.get$_glowOpacity(),
+ t2 = t1._evaluatable;
+ t1 = t1.parent;
+ if (J.$eq$(t2.transform$1(0, t1.get$value(t1)), 0))
+ return;
+ t1 = size._dx;
+ t2 = size._dy;
+ baseGlowScale = t1 > t2 ? t2 / t1 : 1;
+ radius = t1 * 3 / 2;
+ height = Math.min(t2, t1 * 0.20096189432249995);
+ t2 = _this.get$_glowSize();
+ t3 = t2._evaluatable;
+ t2 = t2.parent;
+ t2 = t3.transform$1(0, t2.get$value(t2));
+ t3 = _this._displacement;
+ paint = new H.SurfacePaint(new H.SurfacePaintData());
+ t4 = _this._overscroll_indicator$_color;
+ t5 = _this.get$_glowOpacity();
+ t6 = t5._evaluatable;
+ t5 = t5.parent;
+ t5 = t6.transform$1(0, t5.get$value(t5));
+ t4.toString;
+ t4 = t4.value;
+ paint.set$color(0, P.Color$fromARGB(C.JSNumber_methods.round$0(255 * t5), t4 >>> 16 & 255, t4 >>> 8 & 255, t4 & 255));
+ canvas.save$0(0);
+ canvas.translate$2(0, 0, _this._paintOffset + _this._paintOffsetScrollPixels);
+ canvas.scale$2(0, 1, t2 * baseGlowScale);
+ canvas.clipRect$1(0, new P.Rect(0, 0, 0 + t1, 0 + height));
+ canvas.drawCircle$3(0, new P.Offset(t1 / 2 * (0.5 + t3), height - radius), radius, paint);
+ canvas.restore$0(0);
+ }
+ };
+ L._GlowController_pull_closure.prototype = {
+ call$0: function() {
+ return this.$this._recede$1(C.Duration_2000000);
+ },
+ $signature: 0
+ };
+ L._GlowingOverscrollIndicatorPainter.prototype = {
+ _paintSide$5: function(canvas, size, controller, axisDirection, growthDirection) {
+ var t1;
+ if (controller == null)
+ return;
+ switch (G.applyGrowthDirectionToAxisDirection(axisDirection, growthDirection)) {
+ case C.AxisDirection_0:
+ controller.paint$2(canvas, size);
+ break;
+ case C.AxisDirection_2:
+ canvas.save$0(0);
+ canvas.translate$2(0, 0, size._dy);
+ canvas.scale$2(0, 1, -1);
+ controller.paint$2(canvas, size);
+ canvas.restore$0(0);
+ break;
+ case C.AxisDirection_3:
+ canvas.save$0(0);
+ canvas.rotate$1(0, 1.5707963267948966);
+ canvas.scale$2(0, 1, -1);
+ controller.paint$2(canvas, new P.Size(size._dy, size._dx));
+ canvas.restore$0(0);
+ break;
+ case C.AxisDirection_1:
+ canvas.save$0(0);
+ t1 = size._dx;
+ canvas.translate$2(0, t1, 0);
+ canvas.rotate$1(0, 1.5707963267948966);
+ controller.paint$2(canvas, new P.Size(size._dy, t1));
+ canvas.restore$0(0);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ paint$2: function(canvas, size) {
+ var _this = this,
+ t1 = _this.axisDirection;
+ _this._paintSide$5(canvas, size, _this.leadingController, t1, C.GrowthDirection_1);
+ _this._paintSide$5(canvas, size, _this.trailingController, t1, C.GrowthDirection_0);
+ },
+ shouldRepaint$1: function(oldDelegate) {
+ return oldDelegate.leadingController != this.leadingController || oldDelegate.trailingController != this.trailingController;
+ }
+ };
+ L.OverscrollIndicatorNotification.prototype = {
+ debugFillDescription$1: function(description) {
+ this.super$_OverscrollIndicatorNotification_Notification_ViewportNotificationMixin$debugFillDescription(description);
+ description.push("side: " + (this.leading ? "leading edge" : "trailing edge"));
+ }
+ };
+ L._OverscrollIndicatorNotification_Notification_ViewportNotificationMixin.prototype = {
+ visitAncestor$1: function(element) {
+ if (element instanceof N.RenderObjectElement && type$.RenderAbstractViewport._is(element.get$renderObject()))
+ ++this.ViewportNotificationMixin__depth;
+ return this.super$Notification$visitAncestor(element);
+ },
+ debugFillDescription$1: function(description) {
+ var t1;
+ this.super$Notification$debugFillDescription(description);
+ t1 = "depth: " + this.ViewportNotificationMixin__depth + " (";
+ description.push(t1 + (this.ViewportNotificationMixin__depth === 0 ? "local" : "remote") + ")");
+ }
+ };
+ L.__GlowingOverscrollIndicatorState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ S._StorageEntryIdentifier.prototype = {
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return other instanceof S._StorageEntryIdentifier && S.listEquals(other.keys, this.keys);
+ },
+ get$hashCode: function(_) {
+ return P.hashList(this.keys);
+ },
+ toString$0: function(_) {
+ return "StorageEntryIdentifier(" + C.JSArray_methods.join$1(this.keys, ":") + ")";
+ }
+ };
+ S.PageStorageBucket.prototype = {
+ _allKeys$1: function(context) {
+ var keys = H.setRuntimeTypeInfo([], type$.JSArray_PageStorageKey_dynamic);
+ if (S.PageStorageBucket__maybeAddKey(context, keys))
+ context.visitAncestorElements$1(new S.PageStorageBucket__allKeys_closure(keys));
+ return keys;
+ },
+ readState$1: function(context) {
+ var t1;
+ if (this._storage == null)
+ return null;
+ t1 = this._allKeys$1(context);
+ return t1.length !== 0 ? this._storage.$index(0, new S._StorageEntryIdentifier(t1)) : null;
+ }
+ };
+ S.PageStorageBucket__allKeys_closure.prototype = {
+ call$1: function(element) {
+ return S.PageStorageBucket__maybeAddKey(element, this.keys);
+ },
+ $signature: 24
+ };
+ S.PageStorage.prototype = {
+ build$1: function(_, context) {
+ return this.child;
+ }
+ };
+ V.PageRoute.prototype = {
+ get$opaque: function() {
+ return true;
+ },
+ get$barrierDismissible: function() {
+ return false;
+ },
+ canTransitionTo$1: function(nextRoute) {
+ return nextRoute instanceof V.PageRoute;
+ },
+ canTransitionFrom$1: function(previousRoute) {
+ return previousRoute instanceof V.PageRoute;
+ }
+ };
+ L.PerformanceOverlay.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new L.RenderPerformanceOverlay(this.optionsMask, 0, false, false);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$optionsMask(this.optionsMask);
+ renderObject.set$rasterizerThreshold(0);
+ }
+ };
+ G.HtmlElementView.prototype = {
+ build$1: function(_, context) {
+ return new G.PlatformViewLink(new G.HtmlElementView_build_closure(), this.get$_createHtmlElementView(), this.viewType, null);
+ },
+ _createHtmlElementView$1: function(params) {
+ var controller = new G._HtmlElementViewController(params.id, this.viewType);
+ controller._platform_view$_initialize$0().then$1$1(0, new G.HtmlElementView__createHtmlElementView_closure(params), type$.Null);
+ return controller;
+ }
+ };
+ G.HtmlElementView_build_closure.prototype = {
+ call$2: function(context, controller) {
+ return new G.PlatformViewSurface(controller, C.Set_empty, C.PlatformViewHitTestBehavior_0, null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 313
+ };
+ G.HtmlElementView__createHtmlElementView_closure.prototype = {
+ call$1: function(_) {
+ var t1 = this.params;
+ t1.onPlatformViewCreated.call$1(t1.id);
+ },
+ $signature: 16
+ };
+ G._HtmlElementViewController.prototype = {
+ _platform_view$_initialize$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this;
+ var $async$_platform_view$_initialize$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(C.MethodChannel_gkc._invokeMethod$1$3$arguments$missingOk("create", P.LinkedHashMap_LinkedHashMap$_literal(["id", $async$self.viewId, "viewType", $async$self.viewType], type$.String, type$.dynamic), false, type$.void), $async$_platform_view$_initialize$0);
+ case 2:
+ // returning from await.
+ $async$self._initialized = true;
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_platform_view$_initialize$0, $async$completer);
+ },
+ clearFocus$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$clearFocus$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$clearFocus$0, $async$completer);
+ },
+ dispatchPointerEvent$1: function($event) {
+ return this.dispatchPointerEvent$body$_HtmlElementViewController($event);
+ },
+ dispatchPointerEvent$body$_HtmlElementViewController: function($event) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$dispatchPointerEvent$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$dispatchPointerEvent$1, $async$completer);
+ },
+ dispose$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this;
+ var $async$dispose$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = $async$self._initialized ? 2 : 3;
+ break;
+ case 2:
+ // then
+ $async$goto = 4;
+ return P._asyncAwait(C.MethodChannel_gkc._invokeMethod$1$3$arguments$missingOk("dispose", $async$self.viewId, false, type$.void), $async$dispose$0);
+ case 4:
+ // returning from await.
+ case 3:
+ // join
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$dispose$0, $async$completer);
+ }
+ };
+ G.PlatformViewCreationParams.prototype = {};
+ G.PlatformViewLink.prototype = {
+ createState$0: function() {
+ return new G._PlatformViewLinkState(C._StateLifecycle_0);
+ },
+ _surfaceFactory$2: function(arg0, arg1) {
+ return this._surfaceFactory.call$2(arg0, arg1);
+ },
+ _onCreatePlatformView$1: function(arg0) {
+ return this._onCreatePlatformView.call$1(arg0);
+ }
+ };
+ G._PlatformViewLinkState.prototype = {
+ build$1: function(_, context) {
+ var t1, t2, _this = this, _null = null;
+ if (!_this._platformViewCreated)
+ return C.SizedBox_yzX;
+ t1 = _this._surface;
+ if (t1 == null) {
+ t1 = _this._widget;
+ t1.toString;
+ t2 = _this._platform_view$_controller;
+ t2.toString;
+ t2 = _this._surface = t1._surfaceFactory$2(context, t2);
+ t1 = t2;
+ }
+ t2 = _this._platform_view$_focusNode;
+ t1.toString;
+ return L.Focus$(false, _null, t1, _null, true, t2, true, _null, _this.get$_handleFrameworkFocusChanged(), _null, _null);
+ },
+ initState$0: function() {
+ var _this = this;
+ _this._platform_view$_focusNode = O.FocusNode$(true, "PlatformView(id: " + H.S(_this._platform_view$_id) + ")", true, null, false);
+ _this._platform_view$_initialize$0();
+ _this.super$State$initState();
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ if (_this._widget.viewType !== oldWidget.viewType) {
+ t1 = _this._platform_view$_controller;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this._surface = null;
+ _this._platformViewCreated = false;
+ _this._platform_view$_initialize$0();
+ }
+ },
+ _platform_view$_initialize$0: function() {
+ var _this = this,
+ t1 = $.$get$platformViewsRegistry()._nextPlatformViewId++;
+ _this._platform_view$_id = t1;
+ _this._platform_view$_controller = _this._widget._onCreatePlatformView$1(new G.PlatformViewCreationParams(t1, _this.get$_onPlatformViewCreated()));
+ },
+ _onPlatformViewCreated$1: function(id) {
+ this.setState$1(new G._PlatformViewLinkState__onPlatformViewCreated_closure(this));
+ },
+ _handleFrameworkFocusChanged$1: function(isFocused) {
+ var t1;
+ if (!isFocused) {
+ t1 = this._platform_view$_controller;
+ if (t1 != null)
+ t1.clearFocus$0();
+ }
+ },
+ dispose$0: function(_) {
+ var t1 = this._platform_view$_controller;
+ if (t1 != null)
+ t1.dispose$0(0);
+ this._platform_view$_controller = null;
+ this.super$State$dispose(0);
+ }
+ };
+ G._PlatformViewLinkState__onPlatformViewCreated_closure.prototype = {
+ call$0: function() {
+ this.$this._platformViewCreated = true;
+ },
+ $signature: 0
+ };
+ G.PlatformViewSurface.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = new G.PlatformViewRenderBox(this.controller, null, null, null);
+ t1.get$isRepaintBoundary();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.set$hitTestBehavior(this.hitTestBehavior);
+ t1._updateGestureRecognizersWithCallBack$2(this.gestureRecognizers, t1._platform_view0$_controller.get$dispatchPointerEvent());
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$controller(0, this.controller);
+ renderObject.set$hitTestBehavior(this.hitTestBehavior);
+ renderObject._updateGestureRecognizersWithCallBack$2(this.gestureRecognizers, renderObject._platform_view0$_controller.get$dispatchPointerEvent());
+ }
+ };
+ E.PrimaryScrollController.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return this.controller != oldWidget.controller;
+ }
+ };
+ K.RestorationScope.prototype = {
+ createState$0: function() {
+ return new K._RestorationScopeState(null, P.LinkedHashMap_LinkedHashMap$_empty(type$.RestorableProperty_nullable_Object, type$.void_Function), null, true, null, C._StateLifecycle_0);
+ }
+ };
+ K._RestorationScopeState.prototype = {
+ get$restorationId: function() {
+ return this._widget.restorationId;
+ },
+ restoreState$2: function(oldBucket, initialRestore) {
+ },
+ build$1: function(_, context) {
+ return K.UnmanagedRestorationScope$(this.RestorationMixin__bucket, this._widget.child);
+ }
+ };
+ K.UnmanagedRestorationScope.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return oldWidget.bucket != this.bucket;
+ }
+ };
+ K.RootRestorationScope.prototype = {
+ createState$0: function() {
+ return new K._RootRestorationScopeState(C._StateLifecycle_0);
+ }
+ };
+ K._RootRestorationScopeState.prototype = {
+ didChangeDependencies$0: function() {
+ var t1, _this = this;
+ _this.super$State$didChangeDependencies();
+ t1 = _this._framework$_element;
+ t1.toString;
+ _this._ancestorBucket = K.RestorationScope_of(t1);
+ _this._loadRootBucketIfNecessary$0();
+ if (_this._okToRenderBlankContainer == null) {
+ _this._widget.toString;
+ _this._okToRenderBlankContainer = false;
+ }
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ this.super$State$didUpdateWidget(oldWidget);
+ this._loadRootBucketIfNecessary$0();
+ },
+ get$_isWaitingForRootBucket: function() {
+ this._widget.toString;
+ return false;
+ },
+ _loadRootBucketIfNecessary$0: function() {
+ var _this = this;
+ if (_this.get$_isWaitingForRootBucket() && !_this._isLoadingRootBucket) {
+ _this._isLoadingRootBucket = true;
+ ++$.RendererBinding__instance.RendererBinding__firstFrameDeferredCount;
+ $.ServicesBinding__instance.get$_restorationManager().get$rootBucket().then$1$1(0, new K._RootRestorationScopeState__loadRootBucketIfNecessary_closure(_this), type$.Null);
+ }
+ },
+ _replaceRootBucket$0: function() {
+ var _this = this;
+ _this._rootBucketValid = false;
+ _this._rootBucket = null;
+ $.ServicesBinding__instance.get$_restorationManager().removeListener$1(0, _this.get$_replaceRootBucket());
+ _this._loadRootBucketIfNecessary$0();
+ },
+ dispose$0: function(_) {
+ $.ServicesBinding__instance.get$_restorationManager().removeListener$1(0, this.get$_replaceRootBucket());
+ this.super$State$dispose(0);
+ },
+ build$1: function(_, context) {
+ var t2, t3, _this = this,
+ t1 = _this._okToRenderBlankContainer;
+ t1.toString;
+ if (t1 && _this.get$_isWaitingForRootBucket())
+ return C.SizedBox_0_0_null_null;
+ t1 = _this._ancestorBucket;
+ if (t1 == null)
+ t1 = _this._rootBucket;
+ t2 = _this._widget;
+ t3 = t2.restorationId;
+ return K.UnmanagedRestorationScope$(t1, new K.RestorationScope(t2.child, t3, null));
+ }
+ };
+ K._RootRestorationScopeState__loadRootBucketIfNecessary_closure.prototype = {
+ call$1: function(bucket) {
+ var t2,
+ t1 = this.$this;
+ t1._isLoadingRootBucket = false;
+ if (t1._framework$_element != null) {
+ t2 = $.ServicesBinding__instance.get$_restorationManager().ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(t1.get$_replaceRootBucket()), false);
+ t1.setState$1(new K._RootRestorationScopeState__loadRootBucketIfNecessary__closure(t1, bucket));
+ }
+ $.RendererBinding__instance.allowFirstFrame$0();
+ },
+ $signature: 315
+ };
+ K._RootRestorationScopeState__loadRootBucketIfNecessary__closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._rootBucket = this.bucket;
+ t1._rootBucketValid = true;
+ t1._okToRenderBlankContainer = false;
+ },
+ $signature: 0
+ };
+ K.RestorableProperty.prototype = {
+ get$enabled: function(_) {
+ return true;
+ },
+ dispose$0: function(_) {
+ var _this = this,
+ t1 = _this._restoration0$_owner;
+ if (t1 != null)
+ t1._unregister$1(_this);
+ _this.super$ChangeNotifier$dispose(0);
+ _this._disposed = true;
+ }
+ };
+ K.RestorationMixin.prototype = {
+ didToggleBucket$1: function(oldBucket) {
+ },
+ registerForRestoration$2: function(property, restorationId) {
+ var listener, _this = this,
+ t1 = _this.RestorationMixin__bucket,
+ hasSerializedValue = (t1 == null ? null : J.containsKey$1$x(t1.get$_rawValues(), restorationId)) === true,
+ initialValue = hasSerializedValue ? property.fromPrimitives$1(J.$index$asx(_this.RestorationMixin__bucket.get$_rawValues(), restorationId)) : property.createDefaultValue$0();
+ if (property._restoration0$_restorationId == null) {
+ property._restoration0$_restorationId = restorationId;
+ property._restoration0$_owner = _this;
+ listener = new K.RestorationMixin_registerForRestoration_closure(_this, property);
+ t1 = property.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(listener), false);
+ _this.RestorationMixin__properties.$indexSet(0, property, listener);
+ }
+ property.initWithValue$1(initialValue);
+ if (!hasSerializedValue && property.get$enabled(property) && _this.RestorationMixin__bucket != null)
+ _this._updateProperty$1(property);
+ },
+ didUpdateRestorationId$0: function() {
+ var t1, oldBucket, _this = this;
+ if (_this.RestorationMixin__currentParent != null) {
+ t1 = _this.RestorationMixin__bucket;
+ t1 = t1 == null ? null : t1._restorationId;
+ t1 = t1 == _this.get$restorationId() || _this.get$restorePending();
+ } else
+ t1 = true;
+ if (t1)
+ return;
+ oldBucket = _this.RestorationMixin__bucket;
+ if (_this._updateBucketIfNecessary$2$parent$restorePending(_this.RestorationMixin__currentParent, false))
+ if (oldBucket != null)
+ oldBucket.dispose$0(0);
+ },
+ get$restorePending: function() {
+ var t1, potentialNewParent, _this = this;
+ if (_this.RestorationMixin__firstRestorePending)
+ return true;
+ if (_this.get$restorationId() == null)
+ return false;
+ t1 = _this._framework$_element;
+ t1.toString;
+ potentialNewParent = K.RestorationScope_of(t1);
+ if (potentialNewParent != _this.RestorationMixin__currentParent) {
+ if (potentialNewParent == null)
+ t1 = null;
+ else {
+ t1 = potentialNewParent._manager;
+ t1 = t1 == null ? null : t1._isReplacing;
+ t1 = t1 === true;
+ }
+ t1 = t1 === true;
+ } else
+ t1 = false;
+ return t1;
+ },
+ _updateBucketIfNecessary$2$parent$restorePending: function($parent, restorePending) {
+ var t1, t2, _this = this;
+ if (_this.get$restorationId() == null || $parent == null)
+ return _this._setNewBucketIfNecessary$2$newBucket$restorePending(null, restorePending);
+ if (restorePending || _this.RestorationMixin__bucket == null) {
+ t1 = _this.get$restorationId();
+ t1.toString;
+ return _this._setNewBucketIfNecessary$2$newBucket$restorePending($parent.claimChild$2$debugOwner(t1, _this), restorePending);
+ }
+ t1 = _this.RestorationMixin__bucket;
+ t1.toString;
+ t2 = _this.get$restorationId();
+ t2.toString;
+ t1.rename$1(t2);
+ t2 = _this.RestorationMixin__bucket;
+ t2.toString;
+ $parent.adoptChild$1(t2);
+ return false;
+ },
+ _setNewBucketIfNecessary$2$newBucket$restorePending: function(newBucket, restorePending) {
+ var t2, _this = this,
+ t1 = _this.RestorationMixin__bucket;
+ if (newBucket == t1)
+ return false;
+ _this.RestorationMixin__bucket = newBucket;
+ if (!restorePending) {
+ if (newBucket != null) {
+ t2 = _this.RestorationMixin__properties;
+ t2.get$keys(t2).forEach$1(0, _this.get$_updateProperty());
+ }
+ _this.didToggleBucket$1(t1);
+ }
+ return true;
+ },
+ _updateProperty$1: function(property) {
+ var t3,
+ t1 = property.get$enabled(property),
+ t2 = this.RestorationMixin__bucket;
+ if (t1) {
+ if (t2 != null) {
+ t1 = property._restoration0$_restorationId;
+ t1.toString;
+ t3 = property.toPrimitives$0();
+ if (!J.$eq$(J.$index$asx(t2.get$_rawValues(), t1), t3) || !J.containsKey$1$x(t2.get$_rawValues(), t1)) {
+ J.$indexSet$ax(t2.get$_rawValues(), t1, t3);
+ t2._markNeedsSerialization$0();
+ }
+ }
+ } else if (t2 != null) {
+ t1 = property._restoration0$_restorationId;
+ t1.toString;
+ t2.remove$1$1(0, t1, type$.Object);
+ }
+ },
+ _unregister$1: function(property) {
+ var t1 = this.RestorationMixin__properties.remove$1(0, property);
+ t1.toString;
+ property.removeListener$1(0, t1);
+ property._restoration0$_owner = property._restoration0$_restorationId = null;
+ }
+ };
+ K.RestorationMixin_registerForRestoration_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ if (t1.RestorationMixin__bucket == null)
+ return;
+ t1._updateProperty$1(this.property);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ K.__RestorationScopeState_State_RestorationMixin_dispose_closure.prototype = {
+ call$2: function(property, listener) {
+ if (!property._disposed)
+ property.removeListener$1(0, listener);
+ },
+ $signature: 44
+ };
+ K.__RestorationScopeState_State_RestorationMixin.prototype = {
+ didUpdateWidget$1: function(oldWidget) {
+ this.super$State$didUpdateWidget(oldWidget);
+ this.didUpdateRestorationId$0();
+ },
+ didChangeDependencies$0: function() {
+ var oldBucket, needsRestore, t1, didReplaceBucket, _this = this;
+ _this.super$State$didChangeDependencies();
+ oldBucket = _this.RestorationMixin__bucket;
+ needsRestore = _this.get$restorePending();
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = K.RestorationScope_of(t1);
+ _this.RestorationMixin__currentParent = t1;
+ didReplaceBucket = _this._updateBucketIfNecessary$2$parent$restorePending(t1, needsRestore);
+ if (needsRestore) {
+ _this.restoreState$2(oldBucket, _this.RestorationMixin__firstRestorePending);
+ _this.RestorationMixin__firstRestorePending = false;
+ }
+ if (didReplaceBucket)
+ if (oldBucket != null)
+ oldBucket.dispose$0(0);
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ _this.RestorationMixin__properties.forEach$1(0, new K.__RestorationScopeState_State_RestorationMixin_dispose_closure());
+ t1 = _this.RestorationMixin__bucket;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this.RestorationMixin__bucket = null;
+ _this.super$State$dispose(0);
+ }
+ };
+ U.RestorableValue.prototype = {
+ set$value: function(_, newValue) {
+ var t1 = this._restoration_properties$_value;
+ if (newValue == null ? t1 != null : newValue !== t1) {
+ this._restoration_properties$_value = newValue;
+ this.didUpdateValue$1(t1);
+ }
+ },
+ initWithValue$1: function(value) {
+ this._restoration_properties$_value = value;
+ }
+ };
+ U._RestorablePrimitiveValue.prototype = {
+ createDefaultValue$0: function() {
+ return this._defaultValue;
+ },
+ didUpdateValue$1: function(oldValue) {
+ this.notifyListeners$0();
+ },
+ fromPrimitives$1: function(serialized) {
+ serialized.toString;
+ return this.$ti._precomputed1._as(serialized);
+ },
+ toPrimitives$0: function() {
+ return this._restoration_properties$_value;
+ }
+ };
+ U.RestorableNum.prototype = {};
+ U.RestorableListenable.prototype = {
+ initWithValue$1: function(value) {
+ var _this = this,
+ t1 = _this._restoration_properties$_value;
+ if (t1 != null)
+ t1.removeListener$1(0, _this.get$notifyListeners());
+ _this._restoration_properties$_value = value;
+ value.addListener$1(0, _this.get$notifyListeners());
+ },
+ dispose$0: function(_) {
+ var t1;
+ this.super$RestorableProperty$dispose(0);
+ t1 = this._restoration_properties$_value;
+ if (t1 != null)
+ t1.removeListener$1(0, this.get$notifyListeners());
+ }
+ };
+ U.RestorableChangeNotifier.prototype = {
+ initWithValue$1: function(value) {
+ this._diposeOldValue$0();
+ this.super$RestorableListenable$initWithValue(value);
+ },
+ dispose$0: function(_) {
+ this._diposeOldValue$0();
+ this.super$RestorableListenable$dispose(0);
+ },
+ _diposeOldValue$0: function() {
+ var t1 = this._restoration_properties$_value;
+ if (t1 != null)
+ P.scheduleMicrotask(t1.get$dispose(t1));
+ }
+ };
+ U.RestorableTextEditingController.prototype = {
+ createDefaultValue$0: function() {
+ return new D.TextEditingController(this._initialValue, new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ fromPrimitives$1: function(data) {
+ data.toString;
+ H._asStringS(data);
+ return new D.TextEditingController(new N.TextEditingValue(data, C.TextSelection_TbC, C.TextRange_m1_m1), new P.LinkedList(type$.LinkedList__ListenerEntry));
+ },
+ toPrimitives$0: function() {
+ return this._restoration_properties$_value._change_notifier$_value.text;
+ }
+ };
+ Z.RouteInformation.prototype = {};
+ T.OverlayRoute.prototype = {
+ get$overlayEntries: function() {
+ return this._overlayEntries;
+ },
+ install$0: function() {
+ C.JSArray_methods.addAll$1(this._overlayEntries, this.createOverlayEntries$0());
+ this.super$Route$install();
+ },
+ didPop$1: function(result) {
+ var _this = this;
+ _this.super$Route$didPop(result);
+ if (_this._routes$_controller.get$_animation_controller$_status() === C.AnimationStatus_0)
+ _this._navigator$_navigator.finalizeRoute$1(_this);
+ return true;
+ },
+ dispose$0: function(_) {
+ C.JSArray_methods.set$length(this._overlayEntries, 0);
+ this.super$Route$dispose(0);
+ }
+ };
+ T.TransitionRoute.prototype = {
+ get$animation: function(_) {
+ return this._routes$_animation;
+ },
+ get$secondaryAnimation: function() {
+ return this._secondaryAnimation;
+ },
+ _handleStatusChanged$1: function($status) {
+ var t1, _this = this;
+ switch ($status) {
+ case C.AnimationStatus_3:
+ t1 = _this._overlayEntries;
+ if (t1.length !== 0)
+ C.JSArray_methods.get$first(t1).set$opaque(_this.get$opaque());
+ break;
+ case C.AnimationStatus_1:
+ case C.AnimationStatus_2:
+ t1 = _this._overlayEntries;
+ if (t1.length !== 0)
+ C.JSArray_methods.get$first(t1).set$opaque(false);
+ break;
+ case C.AnimationStatus_0:
+ if (!_this.get$isActive())
+ _this._navigator$_navigator.finalizeRoute$1(_this);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ install$0: function() {
+ var _this = this,
+ duration = _this.get$transitionDuration(_this),
+ reverseDuration = _this.get$transitionDuration(_this),
+ t1 = _this.get$debugLabel(),
+ t2 = _this._navigator$_navigator;
+ t2.toString;
+ t2 = _this._routes$_controller = G.AnimationController$(t1, duration, 0, reverseDuration, 1, null, t2);
+ t2.addStatusListener$1(_this.get$_handleStatusChanged());
+ _this._routes$_animation = t2;
+ _this.super$OverlayRoute$install();
+ t1 = _this._routes$_animation;
+ if (t1.get$status(t1) === C.AnimationStatus_3 && _this._overlayEntries.length !== 0)
+ C.JSArray_methods.get$first(_this._overlayEntries).set$opaque(_this.get$opaque());
+ },
+ didPush$0: function() {
+ this.super$Route$didPush();
+ return this._routes$_controller.forward$0(0);
+ },
+ didAdd$0: function() {
+ this.super$Route$didAdd();
+ var t1 = this._routes$_controller;
+ t1.set$value(0, t1.upperBound);
+ },
+ didReplace$1: function(oldRoute) {
+ var t1;
+ if (oldRoute instanceof T.TransitionRoute) {
+ t1 = this._routes$_controller;
+ t1.toString;
+ t1.set$value(0, oldRoute._routes$_controller.get$_animation_controller$_value());
+ }
+ this.super$Route$didReplace(oldRoute);
+ },
+ didPop$1: function(result) {
+ this._result = result;
+ this._routes$_controller.reverse$0(0);
+ this.super$OverlayRoute$didPop(result);
+ return true;
+ },
+ didPopNext$1: function(nextRoute) {
+ this._updateSecondaryAnimation$1(nextRoute);
+ this.super$Route$didPopNext(nextRoute);
+ },
+ didChangeNext$1: function(nextRoute) {
+ this._updateSecondaryAnimation$1(nextRoute);
+ this.super$Route$didChangeNext(nextRoute);
+ },
+ _updateSecondaryAnimation$1: function(nextRoute) {
+ var current, t2, t3, t4, t5, newAnimation, _this = this, t1 = {},
+ previousTrainHoppingListenerRemover = _this._trainHoppingListenerRemover;
+ _this._trainHoppingListenerRemover = null;
+ if (nextRoute instanceof T.TransitionRoute && _this.canTransitionTo$1(nextRoute) && nextRoute.canTransitionFrom$1(_this)) {
+ current = _this._secondaryAnimation._animations$_parent;
+ if (current != null) {
+ t2 = current instanceof S.TrainHoppingAnimation ? current._currentTrain : current;
+ t2.toString;
+ t3 = nextRoute._routes$_animation;
+ t3.toString;
+ t4 = J.$eq$(t2.get$value(t2), t3.get$_animation_controller$_value()) || t3.get$_animation_controller$_status() === C.AnimationStatus_3 || t3.get$_animation_controller$_status() === C.AnimationStatus_0;
+ t5 = nextRoute._transitionCompleter.future;
+ if (t4)
+ _this._setSecondaryAnimation$2(t3, t5);
+ else {
+ t1.newAnimation = null;
+ t4 = new T.TransitionRoute__updateSecondaryAnimation__jumpOnAnimationEnd(_this, t3, nextRoute);
+ _this._trainHoppingListenerRemover = new T.TransitionRoute__updateSecondaryAnimation_closure(t1, t3, t4);
+ t3.addStatusListener$1(t4);
+ newAnimation = S.TrainHoppingAnimation$(t2, t3, new T.TransitionRoute__updateSecondaryAnimation_closure0(t1, _this, nextRoute));
+ t1.newAnimation = newAnimation;
+ _this._setSecondaryAnimation$2(newAnimation, t5);
+ }
+ } else
+ _this._setSecondaryAnimation$2(nextRoute._routes$_animation, nextRoute._transitionCompleter.future);
+ } else
+ _this._setSecondaryAnimation$1(C.C__AlwaysDismissedAnimation);
+ if (previousTrainHoppingListenerRemover != null)
+ previousTrainHoppingListenerRemover.call$0();
+ },
+ _setSecondaryAnimation$2: function(animation, disposed) {
+ this._secondaryAnimation.set$parent(0, animation);
+ if (disposed != null)
+ disposed.then$1$1(0, new T.TransitionRoute__setSecondaryAnimation_closure(this, animation), type$.Null);
+ },
+ _setSecondaryAnimation$1: function(animation) {
+ return this._setSecondaryAnimation$2(animation, null);
+ },
+ canTransitionTo$1: function(nextRoute) {
+ return true;
+ },
+ canTransitionFrom$1: function(previousRoute) {
+ return true;
+ },
+ dispose$0: function(_) {
+ var _this = this,
+ t1 = _this._routes$_controller;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this._transitionCompleter.complete$1(0, _this._result);
+ _this.super$OverlayRoute$dispose(0);
+ },
+ get$debugLabel: function() {
+ return "TransitionRoute";
+ },
+ toString$0: function(_) {
+ return "TransitionRoute(animation: " + H.S(this._routes$_controller) + ")";
+ }
+ };
+ T.TransitionRoute__updateSecondaryAnimation__jumpOnAnimationEnd.prototype = {
+ call$1: function($status) {
+ var t1, t2;
+ switch ($status) {
+ case C.AnimationStatus_3:
+ case C.AnimationStatus_0:
+ t1 = this.$this;
+ t1._setSecondaryAnimation$2(this.nextTrain, this.nextRoute._transitionCompleter.future);
+ t2 = t1._trainHoppingListenerRemover;
+ if (t2 != null) {
+ t2.call$0();
+ t1._trainHoppingListenerRemover = null;
+ }
+ break;
+ case C.AnimationStatus_1:
+ case C.AnimationStatus_2:
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ $signature: 7
+ };
+ T.TransitionRoute__updateSecondaryAnimation_closure.prototype = {
+ call$0: function() {
+ this.nextTrain.removeStatusListener$1(this._jumpOnAnimationEnd);
+ var t1 = this._box_0.newAnimation;
+ if (t1 != null)
+ t1.dispose$0(0);
+ },
+ $signature: 0
+ };
+ T.TransitionRoute__updateSecondaryAnimation_closure0.prototype = {
+ call$0: function() {
+ var t2,
+ t1 = this.$this;
+ t1._setSecondaryAnimation$2(this._box_0.newAnimation._currentTrain, this.nextRoute._transitionCompleter.future);
+ t2 = t1._trainHoppingListenerRemover;
+ if (t2 != null) {
+ t2.call$0();
+ t1._trainHoppingListenerRemover = null;
+ }
+ },
+ $signature: 0
+ };
+ T.TransitionRoute__setSecondaryAnimation_closure.prototype = {
+ call$1: function(_) {
+ var t1 = this.$this._secondaryAnimation,
+ t2 = this.animation;
+ if (t1._animations$_parent == t2) {
+ t1.set$parent(0, C.C__AlwaysDismissedAnimation);
+ if (t2 instanceof S.TrainHoppingAnimation)
+ t2.dispose$0(0);
+ }
+ },
+ $signature: 3
+ };
+ T.LocalHistoryRoute.prototype = {
+ get$willHandlePopInternally: function() {
+ var t1 = this.LocalHistoryRoute__localHistory;
+ return t1 != null && t1.length !== 0;
+ }
+ };
+ T._DismissModalAction.prototype = {
+ invoke$1: function(intent) {
+ var t1 = $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._primaryFocus._context;
+ t1.toString;
+ return K.Navigator_of(t1, false).maybePop$0();
+ }
+ };
+ T._ModalScopeStatus.prototype = {
+ updateShouldNotify$1: function(old) {
+ return this.isCurrent !== old.isCurrent || this.canPop !== old.canPop || this.route !== old.route;
+ }
+ };
+ T._ModalScope.prototype = {
+ createState$0: function() {
+ return new T._ModalScopeState(O.FocusScopeNode$(true, C.Type__ModalScopeState_Yap.toString$0(0) + " Focus Scope", false), C._StateLifecycle_0, this.$ti._eval$1("_ModalScopeState<1>"));
+ }
+ };
+ T._ModalScopeState.prototype = {
+ initState$0: function() {
+ var t1, t2, _this = this;
+ _this.super$State$initState();
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_Listenable);
+ t2 = _this._widget.route._animationProxy;
+ if (t2 != null)
+ t1.push(t2);
+ t2 = _this._widget.route._secondaryAnimationProxy;
+ if (t2 != null)
+ t1.push(t2);
+ _this.___ModalScopeState__listenable_isSet = true;
+ _this.___ModalScopeState__listenable = new B._MergingListenable(t1);
+ if (_this._widget.route.get$isCurrent())
+ _this._widget.route._navigator$_navigator.focusScopeNode.setFirstFocus$1(_this.focusScopeNode);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ if (_this._widget.route.get$isCurrent())
+ _this._widget.route._navigator$_navigator.focusScopeNode.setFirstFocus$1(_this.focusScopeNode);
+ },
+ didChangeDependencies$0: function() {
+ this.super$State$didChangeDependencies();
+ this._page = null;
+ },
+ _forceRebuildPage$0: function() {
+ this.setState$1(new T._ModalScopeState__forceRebuildPage_closure(this));
+ },
+ dispose$0: function(_) {
+ this.focusScopeNode.dispose$0(0);
+ this.super$State$dispose(0);
+ },
+ get$_shouldIgnoreFocusRequest: function() {
+ var t1 = this._widget.route._animationProxy;
+ if ((t1 == null ? null : t1.get$status(t1)) !== C.AnimationStatus_2) {
+ t1 = this._widget.route._navigator$_navigator;
+ t1 = t1 == null ? null : t1.userGestureInProgressNotifier._change_notifier$_value;
+ t1 = t1 === true;
+ } else
+ t1 = true;
+ return t1;
+ },
+ build$1: function(_, context) {
+ var t4, t5, t6, t7, t8, _this = this, _null = null,
+ t1 = _this._widget.route,
+ t2 = t1.get$isCurrent(),
+ t3 = _this._widget.route;
+ t3 = !t3.get$isFirst() || t3.get$willHandlePopInternally();
+ t4 = _this._widget.route;
+ t5 = t4._offstage;
+ t6 = $.$get$_ModalScopeState__actionMap();
+ t7 = _this.___ModalScopeState__listenable_isSet ? _this.___ModalScopeState__listenable : H.throwExpression(H.LateError$fieldNI("_listenable"));
+ t8 = _this._page;
+ if (t8 == null)
+ t8 = _this._page = new T.RepaintBoundary(new T.Builder(new T._ModalScopeState_build_closure(_this), _null), _this._widget.route._subtreeKey);
+ return K.AnimatedBuilder$(t1._restorationScopeId, new T._ModalScopeState_build_closure0(_this), new T._ModalScopeStatus(t2, t3, t1, new T.Offstage(t5, new S.PageStorage(U.Actions$(t6, L.FocusScope$(false, new T.RepaintBoundary(K.AnimatedBuilder$(t7, new T._ModalScopeState_build_closure1(_this), t8), _null), _null, _this.focusScopeNode)), t4._storageBucket, _null), _null), _null));
+ }
+ };
+ T._ModalScopeState__forceRebuildPage_closure.prototype = {
+ call$0: function() {
+ this.$this._page = null;
+ },
+ $signature: 0
+ };
+ T._ModalScopeState_build_closure0.prototype = {
+ call$2: function(context, child) {
+ var t1 = this.$this._widget.route._restorationScopeId._change_notifier$_value;
+ child.toString;
+ return new K.RestorationScope(child, t1, null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 317
+ };
+ T._ModalScopeState_build_closure1.prototype = {
+ call$2: function(context, child) {
+ var t4, t5,
+ t1 = this.$this,
+ t2 = t1._widget.route,
+ t3 = t2._animationProxy;
+ t3.toString;
+ t4 = t2._secondaryAnimationProxy;
+ t4.toString;
+ t5 = t2._navigator$_navigator;
+ t5 = t5 == null ? null : t5.userGestureInProgressNotifier;
+ if (t5 == null)
+ t5 = new B.ValueNotifier(false, new P.LinkedList(type$.LinkedList__ListenerEntry));
+ return t2.buildTransitions$4(context, t3, t4, K.AnimatedBuilder$(t5, new T._ModalScopeState_build__closure(t1), child));
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 132
+ };
+ T._ModalScopeState_build__closure.prototype = {
+ call$2: function(context, child) {
+ var t1 = this.$this,
+ ignoreEvents = t1.get$_shouldIgnoreFocusRequest();
+ t1.focusScopeNode.set$canRequestFocus(!ignoreEvents);
+ return new T.IgnorePointer(ignoreEvents, null, child, null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 318
+ };
+ T._ModalScopeState_build_closure.prototype = {
+ call$1: function(context) {
+ var t3,
+ t1 = this.$this._widget.route,
+ t2 = t1._animationProxy;
+ t2.toString;
+ t3 = t1._secondaryAnimationProxy;
+ t3.toString;
+ return t1.buildPage$3(context, t2, t3);
+ },
+ $signature: 21
+ };
+ T.ModalRoute.prototype = {
+ setState$1: function(fn) {
+ var t1 = this._scopeKey;
+ if (t1.get$currentState() != null) {
+ t1 = t1.get$currentState();
+ if (t1._widget.route.get$isCurrent() && !t1.get$_shouldIgnoreFocusRequest())
+ t1._widget.route._navigator$_navigator.focusScopeNode.setFirstFocus$1(t1.focusScopeNode);
+ t1.setState$1(fn);
+ } else
+ fn.call$0();
+ },
+ buildTransitions$4: function(context, animation, secondaryAnimation, child) {
+ return child;
+ },
+ install$0: function() {
+ var _this = this;
+ _this.super$TransitionRoute$install();
+ _this._animationProxy = S.ProxyAnimation$(T.TransitionRoute.prototype.get$animation.call(_this, _this));
+ _this._secondaryAnimationProxy = S.ProxyAnimation$(T.TransitionRoute.prototype.get$secondaryAnimation.call(_this));
+ },
+ didPush$0: function() {
+ var t1 = this._scopeKey;
+ if (t1.get$currentState() != null)
+ this._navigator$_navigator.focusScopeNode.setFirstFocus$1(t1.get$currentState().focusScopeNode);
+ return this.super$TransitionRoute$didPush();
+ },
+ didAdd$0: function() {
+ var t1 = this._scopeKey;
+ if (t1.get$currentState() != null)
+ this._navigator$_navigator.focusScopeNode.setFirstFocus$1(t1.get$currentState().focusScopeNode);
+ this.super$TransitionRoute$didAdd();
+ },
+ set$offstage: function(value) {
+ var t1, _this = this;
+ if (_this._offstage === value)
+ return;
+ _this.setState$1(new T.ModalRoute_offstage_closure(_this, value));
+ t1 = _this._animationProxy;
+ t1.toString;
+ t1.set$parent(0, _this._offstage ? C.C__AlwaysCompleteAnimation : T.TransitionRoute.prototype.get$animation.call(_this, _this));
+ t1 = _this._secondaryAnimationProxy;
+ t1.toString;
+ t1.set$parent(0, _this._offstage ? C.C__AlwaysDismissedAnimation : T.TransitionRoute.prototype.get$secondaryAnimation.call(_this));
+ _this.changedInternalState$0();
+ },
+ willPop$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.RoutePopDisposition),
+ $async$returnValue, $async$self = this, t1, t2, _i, $async$temp1;
+ var $async$willPop$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$self._scopeKey.get$currentState();
+ t1 = P.List_List$from($async$self._willPopCallbacks, true, type$.Future_bool_Function), t2 = t1.length, _i = 0;
+ case 3:
+ // for condition
+ if (!(_i < t2)) {
+ // goto after for
+ $async$goto = 5;
+ break;
+ }
+ $async$temp1 = J;
+ $async$goto = 6;
+ return P._asyncAwait(t1[_i].call$0(), $async$willPop$0);
+ case 6:
+ // returning from await.
+ if (!$async$temp1.$eq$($async$result, true)) {
+ $async$returnValue = C.RoutePopDisposition_1;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ case 4:
+ // for update
+ ++_i;
+ // goto for condition
+ $async$goto = 3;
+ break;
+ case 5:
+ // after for
+ $async$goto = 7;
+ return P._asyncAwait($async$self.super$_ModalRoute_TransitionRoute_LocalHistoryRoute$willPop(), $async$willPop$0);
+ case 7:
+ // returning from await.
+ $async$returnValue = $async$result;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$willPop$0, $async$completer);
+ },
+ didChangePrevious$1: function(previousRoute) {
+ this.super$Route$didChangePrevious(previousRoute);
+ this.changedInternalState$0();
+ },
+ changedInternalState$0: function() {
+ var t1, _this = this;
+ _this.super$Route$changedInternalState();
+ _this.setState$1(new T.ModalRoute_changedInternalState_closure());
+ (_this.__ModalRoute__modalBarrier_isSet ? _this.__ModalRoute__modalBarrier : H.throwExpression(H.LateError$fieldNI("_modalBarrier"))).markNeedsBuild$0();
+ t1 = _this.__ModalRoute__modalScope_isSet ? _this.__ModalRoute__modalScope : H.throwExpression(H.LateError$fieldNI("_modalScope"));
+ _this.get$maintainState();
+ t1.set$maintainState(true);
+ },
+ changedExternalState$0: function() {
+ this.super$Route$changedExternalState();
+ var t1 = this._scopeKey;
+ if (t1.get$currentState() != null)
+ t1.get$currentState()._forceRebuildPage$0();
+ },
+ _buildModalBarrier$1: function(context) {
+ var t1, t2, t3, barrier, _this = this, _null = null;
+ if (_this.get$barrierColor() != null && (_this.get$barrierColor().value >>> 24 & 255) !== 0 && !_this._offstage) {
+ t1 = _this._animationProxy;
+ t1.toString;
+ t2 = _this.get$barrierColor();
+ t3 = type$.ColorTween._eval$1("_ChainedEvaluation");
+ type$.Animation_double._as(t1);
+ barrier = new X.AnimatedModalBarrier(_this.get$barrierDismissible(), _this.get$barrierLabel(), true, new R._AnimatedEvaluation(t1, new R._ChainedEvaluation(new R.CurveTween(C.Cubic_JUR), new R.ColorTween(C.Color_0, t2), t3), t3._eval$1("_AnimatedEvaluation")), _null);
+ } else
+ barrier = new X.ModalBarrier(_null, _this.get$barrierDismissible(), true, _this.get$barrierLabel(), _null);
+ t1 = _this._animationProxy;
+ if (t1.get$status(t1) !== C.AnimationStatus_2) {
+ t1 = _this._animationProxy;
+ t1 = t1.get$status(t1) === C.AnimationStatus_0;
+ } else
+ t1 = true;
+ barrier = new T.IgnorePointer(t1, _null, barrier, _null);
+ t1 = _this.get$barrierDismissible();
+ return t1 ? T.Semantics$(_null, barrier, false, _null, _null, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, C.OrdinalSortKey_1_null, _null, _null) : barrier;
+ },
+ _buildModalScope$1: function(context) {
+ var _this = this, _null = null,
+ t1 = _this._modalScopeCache;
+ return t1 == null ? _this._modalScopeCache = T.Semantics$(_null, new T._ModalScope(_this, _this._scopeKey, H._instanceType(_this)._eval$1("_ModalScope<1>")), false, _null, _null, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, C.OrdinalSortKey_0_null, _null, _null) : t1;
+ },
+ createOverlayEntries$0: function() {
+ var $async$self = this;
+ return P._makeSyncStarIterable(function() {
+ var $async$goto = 0, $async$handler = 1, $async$currentError, t1;
+ return function $async$createOverlayEntries$0($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = X.OverlayEntry$($async$self.get$_buildModalBarrier(), false);
+ $async$self.__ModalRoute__modalBarrier_isSet = true;
+ $async$self.__ModalRoute__modalBarrier = t1;
+ $async$goto = 2;
+ return t1;
+ case 2:
+ // after yield
+ $async$self.get$maintainState();
+ t1 = X.OverlayEntry$($async$self.get$_buildModalScope(), true);
+ $async$self.__ModalRoute__modalScope_isSet = true;
+ $async$self.__ModalRoute__modalScope = t1;
+ $async$goto = 3;
+ return t1;
+ case 3:
+ // after yield
+ // implicit return
+ return P._IterationMarker_endOfIteration();
+ case 1:
+ // rethrow
+ return P._IterationMarker_uncaughtError($async$currentError);
+ }
+ };
+ }, type$.OverlayEntry);
+ },
+ toString$0: function(_) {
+ return "ModalRoute(" + this._settings.toString$0(0) + ", animation: " + H.S(this._routes$_animation) + ")";
+ }
+ };
+ T.ModalRoute_offstage_closure.prototype = {
+ call$0: function() {
+ this.$this._offstage = this.value;
+ },
+ $signature: 0
+ };
+ T.ModalRoute_changedInternalState_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ T.PopupRoute.prototype = {
+ get$opaque: function() {
+ return false;
+ },
+ get$maintainState: function() {
+ return true;
+ }
+ };
+ T._DialogRoute.prototype = {
+ get$barrierDismissible: function() {
+ return true;
+ },
+ get$barrierLabel: function() {
+ return this._barrierLabel;
+ },
+ get$barrierColor: function() {
+ return this._barrierColor;
+ },
+ get$transitionDuration: function(_) {
+ return this._transitionDuration;
+ },
+ buildPage$3: function(context, animation, secondaryAnimation) {
+ var _null = null;
+ return T.Semantics$(_null, this._pageBuilder.call$3(context, animation, secondaryAnimation), false, _null, _null, true, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, true, _null, _null, _null, _null);
+ },
+ buildTransitions$4: function(context, animation, secondaryAnimation, child) {
+ return this._transitionBuilder.call$4(context, animation, secondaryAnimation, child);
+ }
+ };
+ T._ModalRoute_TransitionRoute_LocalHistoryRoute.prototype = {
+ willPop$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.RoutePopDisposition),
+ $async$returnValue, $async$self = this;
+ var $async$willPop$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if ($async$self.get$willHandlePopInternally()) {
+ $async$returnValue = C.RoutePopDisposition_0;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ $async$returnValue = $async$self.super$Route$willPop();
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$willPop$0, $async$completer);
+ },
+ didPop$1: function(result) {
+ var entry, _this = this,
+ t1 = _this.LocalHistoryRoute__localHistory;
+ if (t1 != null && t1.length !== 0) {
+ entry = t1.pop();
+ entry._routes$_owner = null;
+ entry._notifyRemoved$0();
+ if (_this.LocalHistoryRoute__localHistory.length === 0)
+ _this.changedInternalState$0();
+ return false;
+ }
+ _this.super$TransitionRoute$didPop(result);
+ return true;
+ }
+ };
+ Q.SafeArea.prototype = {
+ build$1: function(_, context) {
+ var t3, t4, t5, t6, t7, t8, _this = this,
+ t1 = type$.MediaQuery,
+ padding = context.dependOnInheritedWidgetOfExactType$1$0(t1).data.padding,
+ t2 = padding.bottom;
+ t2 === 0;
+ t3 = _this.minimum;
+ t4 = Math.max(H.checkNum(padding.left), H.checkNum(t3.left));
+ t5 = _this.top;
+ t6 = Math.max(H.checkNum(t5 ? padding.top : 0), H.checkNum(t3.top));
+ t7 = Math.max(H.checkNum(padding.right), H.checkNum(t3.right));
+ t8 = _this.bottom;
+ return new T.Padding(new V.EdgeInsets(t4, t6, t7, Math.max(H.checkNum(t8 ? t2 : 0), H.checkNum(t3.bottom))), new F.MediaQuery(context.dependOnInheritedWidgetOfExactType$1$0(t1).data.removePadding$4$removeBottom$removeLeft$removeRight$removeTop(t8, true, true, t5), _this.child, null), null);
+ }
+ };
+ M.ScrollActivity.prototype = {
+ resetActivity$0: function() {
+ },
+ dispatchScrollStartNotification$2: function(metrics, context) {
+ new G.ScrollStartNotification(null, metrics, context, 0).dispatch$1(context);
+ },
+ dispatchScrollUpdateNotification$3: function(metrics, context, scrollDelta) {
+ new G.ScrollUpdateNotification(null, scrollDelta, metrics, context, 0).dispatch$1(context);
+ },
+ dispatchOverscrollNotification$3: function(metrics, context, overscroll) {
+ new G.OverscrollNotification(null, overscroll, 0, metrics, context, 0).dispatch$1(context);
+ },
+ dispatchScrollEndNotification$2: function(metrics, context) {
+ new G.ScrollEndNotification(null, metrics, context, 0).dispatch$1(context);
+ },
+ applyNewDimensions$0: function() {
+ },
+ dispose$0: function(_) {
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this);
+ }
+ };
+ M.IdleScrollActivity.prototype = {
+ applyNewDimensions$0: function() {
+ this._delegate.goBallistic$1(0);
+ },
+ get$shouldIgnorePointer: function() {
+ return false;
+ },
+ get$isScrolling: function() {
+ return false;
+ },
+ get$velocity: function() {
+ return 0;
+ }
+ };
+ M.HoldScrollActivity.prototype = {
+ get$shouldIgnorePointer: function() {
+ return false;
+ },
+ get$isScrolling: function() {
+ return false;
+ },
+ get$velocity: function() {
+ return 0;
+ },
+ dispose$0: function(_) {
+ this.onHoldCanceled.call$0();
+ this.super$ScrollActivity$dispose(0);
+ }
+ };
+ M.ScrollDragController.prototype = {
+ _adjustForScrollStartThreshold$2: function(offset, timestamp) {
+ var t1, t2, _this = this;
+ if (timestamp == null)
+ return offset;
+ if (offset === 0) {
+ if (_this.motionStartDistanceThreshold != null)
+ if (_this._offsetSinceLastStop == null) {
+ t1 = _this._lastNonStationaryTimestamp;
+ t1 = timestamp._duration - t1._duration > 50000;
+ } else
+ t1 = false;
+ else
+ t1 = false;
+ if (t1)
+ _this._offsetSinceLastStop = 0;
+ return 0;
+ } else {
+ t1 = _this._offsetSinceLastStop;
+ if (t1 == null)
+ return offset;
+ else {
+ t1 += offset;
+ _this._offsetSinceLastStop = t1;
+ t2 = _this.motionStartDistanceThreshold;
+ t2.toString;
+ if (Math.abs(t1) > t2) {
+ _this._offsetSinceLastStop = null;
+ t1 = Math.abs(offset);
+ if (t1 > 24)
+ return offset;
+ else
+ return Math.min(t2 / 3, t1) * J.get$sign$in(offset);
+ } else
+ return 0;
+ }
+ }
+ },
+ update$1: function(_, details) {
+ var t1, t2, t3, offset, _this = this;
+ _this._lastDetails = details;
+ t1 = details.primaryDelta;
+ t1.toString;
+ t2 = t1 === 0;
+ if (!t2)
+ _this._lastNonStationaryTimestamp = details.sourceTimeStamp;
+ t3 = details.sourceTimeStamp;
+ if (_this._retainMomentum)
+ if (t2)
+ if (t3 != null) {
+ t2 = _this._lastNonStationaryTimestamp;
+ t2 = t3._duration - t2._duration > 20000;
+ } else
+ t2 = true;
+ else
+ t2 = false;
+ else
+ t2 = false;
+ if (t2)
+ _this._retainMomentum = false;
+ offset = _this._adjustForScrollStartThreshold$2(t1, t3);
+ if (offset === 0)
+ return;
+ t1 = _this._delegate;
+ if (G.axisDirectionIsReversed(t1.context._widget.axisDirection))
+ offset = -offset;
+ t1.updateUserScrollDirection$1(offset > 0 ? C.ScrollDirection_1 : C.ScrollDirection_2);
+ t2 = t1._pixels;
+ t2.toString;
+ t1.super$ScrollPosition$setPixels(t2 - t1.physics.applyPhysicsToUserOffset$2(t1, offset));
+ },
+ end$1: function(_, details) {
+ var velocity, _this = this,
+ t1 = details.primaryVelocity;
+ t1.toString;
+ velocity = -t1;
+ if (G.axisDirectionIsReversed(_this._delegate.context._widget.axisDirection))
+ velocity = -velocity;
+ _this._lastDetails = details;
+ if (_this._retainMomentum && J.get$sign$in(velocity) === J.get$sign$in(_this.carriedVelocity))
+ velocity += _this.carriedVelocity;
+ _this._delegate.goBallistic$1(velocity);
+ },
+ dispose$0: function(_) {
+ this._lastDetails = null;
+ this.onDragCanceled.call$0();
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this);
+ }
+ };
+ M.DragScrollActivity.prototype = {
+ dispatchScrollStartNotification$2: function(metrics, context) {
+ new G.ScrollStartNotification(type$.DragStartDetails._as(this._controller._lastDetails), metrics, context, 0).dispatch$1(context);
+ },
+ dispatchScrollUpdateNotification$3: function(metrics, context, scrollDelta) {
+ new G.ScrollUpdateNotification(type$.DragUpdateDetails._as(this._controller._lastDetails), scrollDelta, metrics, context, 0).dispatch$1(context);
+ },
+ dispatchOverscrollNotification$3: function(metrics, context, overscroll) {
+ new G.OverscrollNotification(type$.DragUpdateDetails._as(this._controller._lastDetails), overscroll, 0, metrics, context, 0).dispatch$1(context);
+ },
+ dispatchScrollEndNotification$2: function(metrics, context) {
+ var lastDetails = this._controller._lastDetails;
+ new G.ScrollEndNotification(lastDetails instanceof O.DragEndDetails ? lastDetails : null, metrics, context, 0).dispatch$1(context);
+ },
+ get$shouldIgnorePointer: function() {
+ return true;
+ },
+ get$isScrolling: function() {
+ return true;
+ },
+ get$velocity: function() {
+ return 0;
+ },
+ dispose$0: function(_) {
+ this._controller = null;
+ this.super$ScrollActivity$dispose(0);
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this) + "(" + H.S(this._controller) + ")";
+ }
+ };
+ M.BallisticScrollActivity.prototype = {
+ get$_controller: function() {
+ return this.__BallisticScrollActivity__controller_isSet ? this.__BallisticScrollActivity__controller : H.throwExpression(H.LateError$fieldNI("_controller"));
+ },
+ resetActivity$0: function() {
+ this._delegate.goBallistic$1(this.get$_controller().get$velocity());
+ },
+ applyNewDimensions$0: function() {
+ this._delegate.goBallistic$1(this.get$_controller().get$velocity());
+ },
+ _scroll_activity$_tick$0: function() {
+ var t1 = this.get$_controller().get$_animation_controller$_value();
+ if (this._delegate.super$ScrollPosition$setPixels(t1) !== 0) {
+ t1 = this._delegate;
+ t1.beginActivity$1(new M.IdleScrollActivity(t1));
+ }
+ },
+ _scroll_activity$_end$0: function() {
+ this._delegate.goBallistic$1(0);
+ },
+ dispatchOverscrollNotification$3: function(metrics, context, overscroll) {
+ new G.OverscrollNotification(null, overscroll, this.get$_controller().get$velocity(), metrics, context, 0).dispatch$1(context);
+ },
+ get$shouldIgnorePointer: function() {
+ return true;
+ },
+ get$isScrolling: function() {
+ return true;
+ },
+ get$velocity: function() {
+ return this.get$_controller().get$velocity();
+ },
+ dispose$0: function(_) {
+ this.get$_controller().dispose$0(0);
+ this.super$ScrollActivity$dispose(0);
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this) + "(" + H.S(this.get$_controller()) + ")";
+ }
+ };
+ M.DrivenScrollActivity.prototype = {
+ get$_completer: function() {
+ return this.__DrivenScrollActivity__completer_isSet ? this.__DrivenScrollActivity__completer : H.throwExpression(H.LateError$fieldNI("_completer"));
+ },
+ get$_controller: function() {
+ return this.__DrivenScrollActivity__controller_isSet ? this.__DrivenScrollActivity__controller : H.throwExpression(H.LateError$fieldNI("_controller"));
+ },
+ _scroll_activity$_tick$0: function() {
+ if (this._delegate.super$ScrollPosition$setPixels(this.get$_controller().get$_animation_controller$_value()) !== 0) {
+ var t1 = this._delegate;
+ t1.beginActivity$1(new M.IdleScrollActivity(t1));
+ }
+ },
+ _scroll_activity$_end$0: function() {
+ this._delegate.goBallistic$1(this.get$_controller().get$velocity());
+ },
+ dispatchOverscrollNotification$3: function(metrics, context, overscroll) {
+ new G.OverscrollNotification(null, overscroll, this.get$_controller().get$velocity(), metrics, context, 0).dispatch$1(context);
+ },
+ get$shouldIgnorePointer: function() {
+ return true;
+ },
+ get$isScrolling: function() {
+ return true;
+ },
+ get$velocity: function() {
+ return this.get$_controller().get$velocity();
+ },
+ dispose$0: function(_) {
+ this.get$_completer().complete$0(0);
+ this.get$_controller().dispose$0(0);
+ this.super$ScrollActivity$dispose(0);
+ },
+ toString$0: function(_) {
+ return "#" + Y.shortHash(this) + "(" + H.S(this.get$_controller()) + ")";
+ }
+ };
+ K.ScrollBehavior.prototype = {
+ getPlatform$1: function(context) {
+ return U.defaultTargetPlatform();
+ },
+ buildViewportChrome$3: function(context, child, axisDirection) {
+ switch (this.getPlatform$1(context)) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_4:
+ case C.TargetPlatform_5:
+ return child;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ return L.GlowingOverscrollIndicator$(axisDirection, child, C.Color_4294967295);
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ velocityTrackerBuilder$1: function(context) {
+ switch (this.getPlatform$1(context)) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ return new K.ScrollBehavior_velocityTrackerBuilder_closure();
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ return new K.ScrollBehavior_velocityTrackerBuilder_closure0();
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ getScrollPhysics$1: function(context) {
+ switch (this.getPlatform$1(context)) {
+ case C.TargetPlatform_2:
+ case C.TargetPlatform_4:
+ return C.BouncingScrollPhysics_MuS;
+ case C.TargetPlatform_0:
+ case C.TargetPlatform_1:
+ case C.TargetPlatform_3:
+ case C.TargetPlatform_5:
+ return C.ClampingScrollPhysics_KYr;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ toString$0: function(_) {
+ return "ScrollBehavior";
+ }
+ };
+ K.ScrollBehavior_velocityTrackerBuilder_closure.prototype = {
+ call$1: function($event) {
+ var t1 = $event.get$kind($event),
+ t2 = type$.nullable__PointAtTime;
+ return new R.IOSScrollViewFlingVelocityTracker(P.List_List$filled(20, null, false, t2), t1, P.List_List$filled(20, null, false, t2));
+ },
+ $signature: 319
+ };
+ K.ScrollBehavior_velocityTrackerBuilder_closure0.prototype = {
+ call$1: function($event) {
+ return new R.VelocityTracker($event.get$kind($event), P.List_List$filled(20, null, false, type$.nullable__PointAtTime));
+ },
+ $signature: 95
+ };
+ K.ScrollConfiguration.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ var t1;
+ if (H.getRuntimeType(this.behavior) === H.getRuntimeType(oldWidget.behavior))
+ t1 = false;
+ else
+ t1 = true;
+ return t1;
+ }
+ };
+ F.ScrollController.prototype = {
+ animateTo$3$curve$duration: function(offset, curve, duration) {
+ return this.animateTo$body$ScrollController(offset, curve, duration);
+ },
+ animateTo$body$ScrollController: function(offset, curve, duration) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t2, i, t1;
+ var $async$animateTo$3$curve$duration = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_Future_void);
+ for (t2 = $async$self._positions, i = 0; i < t2.length; ++i)
+ t1.push(t2[i].animateTo$3$curve$duration(offset, curve, duration));
+ $async$goto = 2;
+ return P._asyncAwait(P.Future_wait(t1, type$.void), $async$animateTo$3$curve$duration);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$animateTo$3$curve$duration, $async$completer);
+ },
+ jumpTo$1: function(value) {
+ var t1, t2, _i;
+ for (t1 = P.List_List$from(this._positions, true, type$.ScrollPosition), t2 = t1.length, _i = 0; _i < t2; ++_i)
+ t1[_i].jumpTo$1(value);
+ },
+ attach$1: function(position) {
+ var t1;
+ this._positions.push(position);
+ t1 = position.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(this.get$notifyListeners()), false);
+ },
+ detach$1: function(_, position) {
+ position.removeListener$1(0, this.get$notifyListeners());
+ C.JSArray_methods.remove$1(this._positions, position);
+ },
+ dispose$0: function(_) {
+ var t1, t2, t3, _i;
+ for (t1 = this._positions, t2 = t1.length, t3 = this.get$notifyListeners(), _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
+ t1[_i].removeListener$1(0, t3);
+ this.super$ChangeNotifier$dispose(0);
+ },
+ toString$0: function(_) {
+ var description = H.setRuntimeTypeInfo([], type$.JSArray_String),
+ t1 = this._positions,
+ t2 = t1.length;
+ if (t2 === 0)
+ description.push("no clients");
+ else if (t2 === 1) {
+ t1 = C.JSArray_methods.get$single(t1)._pixels;
+ t1.toString;
+ description.push("one client, offset " + C.JSNumber_methods.toStringAsFixed$1(t1, 1));
+ } else
+ description.push("" + t2 + " clients");
+ return "#" + Y.shortHash(this) + "(" + C.JSArray_methods.join$1(description, ", ") + ")";
+ }
+ };
+ M.ScrollMetrics.prototype = {
+ copyWith$0: function() {
+ var _this = this, _null = null,
+ t1 = _this.get$hasContentDimensions() ? _this.get$minScrollExtent() : _null,
+ t2 = _this.get$hasContentDimensions() ? _this.get$maxScrollExtent() : _null,
+ t3 = _this.get$hasPixels() ? _this.get$pixels() : _null,
+ t4 = _this.get$hasViewportDimension() ? _this.get$viewportDimension() : _null,
+ t5 = _this.get$axisDirection();
+ return new M.FixedScrollMetrics(t1, t2, t3, t4, t5);
+ },
+ get$outOfRange: function() {
+ var _this = this;
+ return _this.get$pixels() < _this.get$minScrollExtent() || _this.get$pixels() > _this.get$maxScrollExtent();
+ },
+ get$atEdge: function() {
+ var _this = this;
+ return _this.get$pixels() == _this.get$minScrollExtent() || _this.get$pixels() == _this.get$maxScrollExtent();
+ }
+ };
+ M.FixedScrollMetrics.prototype = {
+ get$minScrollExtent: function() {
+ var t1 = this._scroll_metrics$_minScrollExtent;
+ t1.toString;
+ return t1;
+ },
+ get$maxScrollExtent: function() {
+ var t1 = this._scroll_metrics$_maxScrollExtent;
+ t1.toString;
+ return t1;
+ },
+ get$hasContentDimensions: function() {
+ return this._scroll_metrics$_minScrollExtent != null && this._scroll_metrics$_maxScrollExtent != null;
+ },
+ get$pixels: function() {
+ var t1 = this._scroll_metrics$_pixels;
+ t1.toString;
+ return t1;
+ },
+ get$hasPixels: function() {
+ return this._scroll_metrics$_pixels != null;
+ },
+ get$viewportDimension: function() {
+ var t1 = this._viewportDimension;
+ t1.toString;
+ return t1;
+ },
+ get$hasViewportDimension: function() {
+ return this._viewportDimension != null;
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "FixedScrollMetrics(" + C.JSNumber_methods.toStringAsFixed$1(Math.max(_this.get$pixels() - _this.get$minScrollExtent(), 0), 1) + "..[" + C.JSNumber_methods.toStringAsFixed$1(_this.get$viewportDimension() - C.JSNumber_methods.clamp$2(_this.get$minScrollExtent() - _this.get$pixels(), 0, _this.get$viewportDimension()) - C.JSNumber_methods.clamp$2(_this.get$pixels() - _this.get$maxScrollExtent(), 0, _this.get$viewportDimension()), 1) + "].." + C.JSNumber_methods.toStringAsFixed$1(Math.max(_this.get$maxScrollExtent() - _this.get$pixels(), 0), 1) + ")";
+ },
+ get$axisDirection: function() {
+ return this.axisDirection;
+ }
+ };
+ G.ViewportNotificationMixin.prototype = {};
+ G.ScrollNotification.prototype = {
+ debugFillDescription$1: function(description) {
+ this.super$_ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin$debugFillDescription(description);
+ description.push(this.metrics.toString$0(0));
+ }
+ };
+ G.ScrollStartNotification.prototype = {
+ debugFillDescription$1: function(description) {
+ var t1;
+ this.super$ScrollNotification$debugFillDescription(description);
+ t1 = this.dragDetails;
+ if (t1 != null)
+ description.push(t1.toString$0(0));
+ }
+ };
+ G.ScrollUpdateNotification.prototype = {
+ debugFillDescription$1: function(description) {
+ var t1;
+ this.super$ScrollNotification$debugFillDescription(description);
+ description.push("scrollDelta: " + H.S(this.scrollDelta));
+ t1 = this.dragDetails;
+ if (t1 != null)
+ description.push(t1.toString$0(0));
+ },
+ get$dragDetails: function() {
+ return this.dragDetails;
+ }
+ };
+ G.OverscrollNotification.prototype = {
+ debugFillDescription$1: function(description) {
+ var t1, _this = this;
+ _this.super$ScrollNotification$debugFillDescription(description);
+ description.push("overscroll: " + C.JSNumber_methods.toStringAsFixed$1(_this.overscroll, 1));
+ description.push("velocity: " + C.JSNumber_methods.toStringAsFixed$1(_this.velocity, 1));
+ t1 = _this.dragDetails;
+ if (t1 != null)
+ description.push(t1.toString$0(0));
+ }
+ };
+ G.ScrollEndNotification.prototype = {
+ debugFillDescription$1: function(description) {
+ var t1;
+ this.super$ScrollNotification$debugFillDescription(description);
+ t1 = this.dragDetails;
+ if (t1 != null)
+ description.push(t1.toString$0(0));
+ },
+ get$dragDetails: function() {
+ return this.dragDetails;
+ }
+ };
+ G.UserScrollNotification.prototype = {
+ debugFillDescription$1: function(description) {
+ this.super$ScrollNotification$debugFillDescription(description);
+ description.push("direction: " + this.direction.toString$0(0));
+ }
+ };
+ G._ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin.prototype = {
+ visitAncestor$1: function(element) {
+ if (element instanceof N.RenderObjectElement && type$.RenderAbstractViewport._is(element.get$renderObject()))
+ ++this.ViewportNotificationMixin__depth;
+ return this.super$Notification$visitAncestor(element);
+ },
+ debugFillDescription$1: function(description) {
+ var t1;
+ this.super$Notification$debugFillDescription(description);
+ t1 = "depth: " + this.ViewportNotificationMixin__depth + " (";
+ description.push(t1 + (this.ViewportNotificationMixin__depth === 0 ? "local" : "remote") + ")");
+ }
+ };
+ L.ScrollPhysics.prototype = {
+ buildParent$1: function(ancestor) {
+ var t1 = this.parent;
+ t1 = t1 == null ? null : t1.applyTo$1(ancestor);
+ return t1 == null ? ancestor : t1;
+ },
+ applyPhysicsToUserOffset$2: function(position, offset) {
+ var t1 = this.parent;
+ if (t1 == null)
+ return offset;
+ return t1.applyPhysicsToUserOffset$2(position, offset);
+ },
+ shouldAcceptUserOffset$1: function(position) {
+ var t2,
+ t1 = this.parent;
+ if (t1 == null) {
+ t1 = position._pixels;
+ t1.toString;
+ if (t1 === 0) {
+ t1 = position._minScrollExtent;
+ t1.toString;
+ t2 = position._maxScrollExtent;
+ t2.toString;
+ t2 = t1 !== t2;
+ t1 = t2;
+ } else
+ t1 = true;
+ return t1;
+ }
+ return t1.shouldAcceptUserOffset$1(position);
+ },
+ applyBoundaryConditions$2: function(position, value) {
+ var t1 = this.parent;
+ if (t1 == null)
+ return 0;
+ return t1.applyBoundaryConditions$2(position, value);
+ },
+ adjustPositionForNewDimensions$4$isScrolling$newPosition$oldPosition$velocity: function(isScrolling, newPosition, oldPosition, velocity) {
+ var t1 = this.parent;
+ if (t1 == null) {
+ t1 = newPosition._scroll_metrics$_pixels;
+ t1.toString;
+ return t1;
+ }
+ return t1.adjustPositionForNewDimensions$4$isScrolling$newPosition$oldPosition$velocity(isScrolling, newPosition, oldPosition, velocity);
+ },
+ createBallisticSimulation$2: function(position, velocity) {
+ var t1 = this.parent;
+ if (t1 == null)
+ return null;
+ return t1.createBallisticSimulation$2(position, velocity);
+ },
+ get$spring: function() {
+ var t1 = this.parent;
+ t1 = t1 == null ? null : t1.get$spring();
+ return t1 == null ? $.$get$ScrollPhysics__kDefaultSpring() : t1;
+ },
+ get$tolerance: function() {
+ var t1 = this.parent;
+ t1 = t1 == null ? null : t1.get$tolerance();
+ return t1 == null ? $.$get$ScrollPhysics__kDefaultTolerance() : t1;
+ },
+ get$minFlingDistance: function() {
+ var t1 = this.parent;
+ t1 = t1 == null ? null : t1.get$minFlingDistance();
+ return t1 == null ? 18 : t1;
+ },
+ get$minFlingVelocity: function() {
+ var t1 = this.parent;
+ t1 = t1 == null ? null : t1.get$minFlingVelocity();
+ return t1 == null ? 50 : t1;
+ },
+ get$maxFlingVelocity: function() {
+ var t1 = this.parent;
+ t1 = t1 == null ? null : t1.get$maxFlingVelocity();
+ return t1 == null ? 8000 : t1;
+ },
+ carriedMomentum$1: function(existingVelocity) {
+ var t1 = this.parent;
+ if (t1 == null)
+ return 0;
+ return t1.carriedMomentum$1(existingVelocity);
+ },
+ get$dragStartDistanceMotionThreshold: function() {
+ var t1 = this.parent;
+ return t1 == null ? null : t1.get$dragStartDistanceMotionThreshold();
+ },
+ toString$0: function(_) {
+ var t1 = this.parent;
+ if (t1 == null)
+ return "ScrollPhsyics";
+ return "ScrollPhysics -> " + t1.toString$0(0);
+ }
+ };
+ L.RangeMaintainingScrollPhysics.prototype = {
+ applyTo$1: function(ancestor) {
+ return new L.RangeMaintainingScrollPhysics(this.buildParent$1(ancestor));
+ },
+ adjustPositionForNewDimensions$4$isScrolling$newPosition$oldPosition$velocity: function(isScrolling, newPosition, oldPosition, velocity) {
+ var maintainOverscroll, enforceBoundary, t1, t2, t3, t4, t5, result;
+ if (velocity !== 0) {
+ maintainOverscroll = false;
+ enforceBoundary = false;
+ } else {
+ maintainOverscroll = true;
+ enforceBoundary = true;
+ }
+ t1 = oldPosition._scroll_metrics$_minScrollExtent;
+ t1.toString;
+ t2 = newPosition._scroll_metrics$_minScrollExtent;
+ t2.toString;
+ if (t1 === t2) {
+ t3 = oldPosition._scroll_metrics$_maxScrollExtent;
+ t3.toString;
+ t4 = newPosition._scroll_metrics$_maxScrollExtent;
+ t4.toString;
+ t4 = t3 === t4;
+ t3 = t4;
+ } else
+ t3 = false;
+ if (t3)
+ maintainOverscroll = false;
+ t3 = oldPosition._scroll_metrics$_pixels;
+ t3.toString;
+ t4 = newPosition._scroll_metrics$_pixels;
+ t4.toString;
+ if (t3 !== t4) {
+ if (isFinite(t1)) {
+ t4 = oldPosition._scroll_metrics$_maxScrollExtent;
+ t4.toString;
+ if (isFinite(t4))
+ if (isFinite(t2)) {
+ t4 = newPosition._scroll_metrics$_maxScrollExtent;
+ t4.toString;
+ t4 = isFinite(t4);
+ } else
+ t4 = false;
+ else
+ t4 = false;
+ } else
+ t4 = false;
+ if (t4)
+ enforceBoundary = false;
+ maintainOverscroll = false;
+ }
+ t4 = t3 < t1;
+ if (!t4) {
+ t5 = oldPosition._scroll_metrics$_maxScrollExtent;
+ t5.toString;
+ t5 = t3 > t5;
+ } else
+ t5 = true;
+ if (t5)
+ enforceBoundary = false;
+ if (maintainOverscroll) {
+ if (t4)
+ return t2 - (t1 - t3);
+ t1 = oldPosition._scroll_metrics$_maxScrollExtent;
+ t1.toString;
+ if (t3 > t1) {
+ t2 = newPosition._scroll_metrics$_maxScrollExtent;
+ t2.toString;
+ return t2 + (t3 - t1);
+ }
+ }
+ result = this.super$ScrollPhysics$adjustPositionForNewDimensions(isScrolling, newPosition, oldPosition, velocity);
+ if (enforceBoundary) {
+ t1 = newPosition._scroll_metrics$_maxScrollExtent;
+ t1.toString;
+ result = J.clamp$2$n(result, t2, t1);
+ }
+ return result;
+ }
+ };
+ L.BouncingScrollPhysics.prototype = {
+ applyTo$1: function(ancestor) {
+ return new L.BouncingScrollPhysics(this.buildParent$1(ancestor));
+ },
+ applyPhysicsToUserOffset$2: function(position, offset) {
+ var t1, t2, overscrollPastStart, overscrollPastEnd, overscrollPast, easing, friction;
+ if (!position.get$outOfRange())
+ return offset;
+ t1 = position._minScrollExtent;
+ t1.toString;
+ t2 = position._pixels;
+ t2.toString;
+ overscrollPastStart = Math.max(t1 - t2, 0);
+ t1 = position._maxScrollExtent;
+ t1.toString;
+ overscrollPastEnd = Math.max(t2 - t1, 0);
+ overscrollPast = Math.max(overscrollPastStart, overscrollPastEnd);
+ if (!(overscrollPastStart > 0 && offset < 0))
+ easing = overscrollPastEnd > 0 && offset > 0;
+ else
+ easing = true;
+ t1 = position._scroll_position$_viewportDimension;
+ if (easing) {
+ t1.toString;
+ friction = 0.52 * Math.pow(1 - (overscrollPast - Math.abs(offset)) / t1, 2);
+ } else {
+ t1.toString;
+ friction = 0.52 * Math.pow(1 - overscrollPast / t1, 2);
+ }
+ return J.get$sign$in(offset) * L.BouncingScrollPhysics__applyFriction(overscrollPast, Math.abs(offset), friction);
+ },
+ applyBoundaryConditions$2: function(position, value) {
+ return 0;
+ },
+ createBallisticSimulation$2: function(position, velocity) {
+ var t1, t2, t3, t4, t5, t6, finalX,
+ tolerance = this.get$tolerance();
+ if (Math.abs(velocity) >= tolerance.velocity || position.get$outOfRange()) {
+ t1 = this.get$spring();
+ t2 = position._pixels;
+ t2.toString;
+ t3 = position._minScrollExtent;
+ t3.toString;
+ t4 = position._maxScrollExtent;
+ t4.toString;
+ t5 = new Y.BouncingScrollSimulation(t3, t4, t1, tolerance);
+ if (t2 < t3) {
+ t1 = M._SpringSolution__SpringSolution(t1, t2 - t3, velocity);
+ t5.__BouncingScrollSimulation__springSimulation_isSet = true;
+ t5.__BouncingScrollSimulation__springSimulation = new M.ScrollSpringSimulation(t3, t1, C.Tolerance_Gdw);
+ t5.__BouncingScrollSimulation__springTime_isSet = true;
+ t5.__BouncingScrollSimulation__springTime = -1 / 0;
+ } else if (t2 > t4) {
+ t1 = M._SpringSolution__SpringSolution(t1, t2 - t4, velocity);
+ t5.__BouncingScrollSimulation__springSimulation_isSet = true;
+ t5.__BouncingScrollSimulation__springSimulation = new M.ScrollSpringSimulation(t4, t1, C.Tolerance_Gdw);
+ t5.__BouncingScrollSimulation__springTime_isSet = true;
+ t5.__BouncingScrollSimulation__springTime = -1 / 0;
+ } else {
+ t6 = Math.log(0.135);
+ t5.__BouncingScrollSimulation__frictionSimulation_isSet = true;
+ t5.__BouncingScrollSimulation__frictionSimulation = new D.FrictionSimulation(0.135, t6, t2, velocity, C.Tolerance_Gdw);
+ finalX = t5.get$_frictionSimulation().get$finalX();
+ if (velocity > 0 && finalX > t4) {
+ t2 = t5.get$_frictionSimulation().timeAtX$1(t4);
+ t5.__BouncingScrollSimulation__springTime_isSet = true;
+ t5.__BouncingScrollSimulation__springTime = t2;
+ t2 = t5.get$_frictionSimulation();
+ t3 = t5.get$_springTime();
+ t6 = t2._v;
+ t2 = t2._drag;
+ H.checkNum(t3);
+ t3 = M._SpringSolution__SpringSolution(t1, t4 - t4, Math.min(t6 * Math.pow(t2, t3), 5000));
+ t5.__BouncingScrollSimulation__springSimulation_isSet = true;
+ t5.__BouncingScrollSimulation__springSimulation = new M.ScrollSpringSimulation(t4, t3, C.Tolerance_Gdw);
+ } else if (velocity < 0 && finalX < t3) {
+ t2 = t5.get$_frictionSimulation().timeAtX$1(t3);
+ t5.__BouncingScrollSimulation__springTime_isSet = true;
+ t5.__BouncingScrollSimulation__springTime = t2;
+ t2 = t5.get$_frictionSimulation();
+ t4 = t5.get$_springTime();
+ t6 = t2._v;
+ t2 = t2._drag;
+ H.checkNum(t4);
+ t4 = M._SpringSolution__SpringSolution(t1, t3 - t3, Math.min(t6 * Math.pow(t2, t4), 5000));
+ t5.__BouncingScrollSimulation__springSimulation_isSet = true;
+ t5.__BouncingScrollSimulation__springSimulation = new M.ScrollSpringSimulation(t3, t4, C.Tolerance_Gdw);
+ } else {
+ t5.__BouncingScrollSimulation__springTime_isSet = true;
+ t5.__BouncingScrollSimulation__springTime = 1 / 0;
+ }
+ }
+ return t5;
+ }
+ return null;
+ },
+ get$minFlingVelocity: function() {
+ return 100;
+ },
+ carriedMomentum$1: function(existingVelocity) {
+ return J.get$sign$in(existingVelocity) * Math.min(0.000816 * Math.pow(Math.abs(existingVelocity), 1.967), 40000);
+ },
+ get$dragStartDistanceMotionThreshold: function() {
+ return 3.5;
+ }
+ };
+ L.ClampingScrollPhysics.prototype = {
+ applyTo$1: function(ancestor) {
+ return new L.ClampingScrollPhysics(this.buildParent$1(ancestor));
+ },
+ applyBoundaryConditions$2: function(position, value) {
+ var t2, t3,
+ t1 = position._pixels;
+ t1.toString;
+ if (value < t1) {
+ t2 = position._minScrollExtent;
+ t2.toString;
+ t2 = t1 <= t2;
+ } else
+ t2 = false;
+ if (t2)
+ return value - t1;
+ t2 = position._maxScrollExtent;
+ t2.toString;
+ if (t2 <= t1 && t1 < value)
+ return value - t1;
+ t3 = position._minScrollExtent;
+ t3.toString;
+ if (value < t3 && t3 < t1)
+ return value - t3;
+ if (t1 < t2 && t2 < value)
+ return value - t2;
+ return 0;
+ },
+ createBallisticSimulation$2: function(position, velocity) {
+ var t1, t2, end, t3, _null = null,
+ tolerance = this.get$tolerance();
+ if (position.get$outOfRange()) {
+ t1 = position._pixels;
+ t1.toString;
+ t2 = position._maxScrollExtent;
+ t2.toString;
+ if (t1 > t2)
+ end = t2;
+ else
+ end = _null;
+ t2 = position._minScrollExtent;
+ t2.toString;
+ if (t1 < t2)
+ end = t2;
+ t1 = this.get$spring();
+ t2 = position._pixels;
+ t2.toString;
+ end.toString;
+ return new M.ScrollSpringSimulation(end, M._SpringSolution__SpringSolution(t1, t2 - end, Math.min(0, velocity)), tolerance);
+ }
+ t1 = Math.abs(velocity);
+ if (t1 < tolerance.velocity)
+ return _null;
+ if (velocity > 0) {
+ t2 = position._pixels;
+ t2.toString;
+ t3 = position._maxScrollExtent;
+ t3.toString;
+ t3 = t2 >= t3;
+ t2 = t3;
+ } else
+ t2 = false;
+ if (t2)
+ return _null;
+ if (velocity < 0) {
+ t2 = position._pixels;
+ t2.toString;
+ t3 = position._minScrollExtent;
+ t3.toString;
+ t3 = t2 <= t3;
+ t2 = t3;
+ } else
+ t2 = false;
+ if (t2)
+ return _null;
+ t2 = position._pixels;
+ t2.toString;
+ t2 = new Y.ClampingScrollSimulation(t2, velocity, tolerance);
+ t1 = Math.exp(Math.log(0.35 * t1 / 778.3530259679999) / ($.$get$ClampingScrollSimulation__kDecelerationRate() - 1));
+ t2.__ClampingScrollSimulation__duration_isSet = true;
+ t2.__ClampingScrollSimulation__duration = t1;
+ t1 = t2.get$_scroll_simulation$_duration();
+ t2.__ClampingScrollSimulation__distance_isSet = true;
+ t2.__ClampingScrollSimulation__distance = Math.abs(velocity * t1 / 3.065);
+ return t2;
+ }
+ };
+ L.AlwaysScrollableScrollPhysics.prototype = {
+ applyTo$1: function(ancestor) {
+ return new L.AlwaysScrollableScrollPhysics(this.buildParent$1(ancestor));
+ },
+ shouldAcceptUserOffset$1: function(position) {
+ return true;
+ }
+ };
+ A.ScrollPositionAlignmentPolicy.prototype = {
+ toString$0: function(_) {
+ return this._scroll_position$_name;
+ }
+ };
+ A.ScrollPosition.prototype = {
+ ScrollPosition$5$context$debugLabel$keepScrollOffset$oldPosition$physics: function(context, debugLabel, keepScrollOffset, oldPosition, physics) {
+ var t1, t2, value, _this = this;
+ if (oldPosition != null)
+ _this.absorb$1(oldPosition);
+ if (_this._pixels == null) {
+ t1 = _this.context;
+ t2 = t1._framework$_element;
+ t2.toString;
+ t2 = S.PageStorage_of(t2);
+ if (t2 == null)
+ value = null;
+ else {
+ t1 = t1._framework$_element;
+ t1.toString;
+ value = t2.readState$1(t1);
+ }
+ if (value != null)
+ _this._pixels = value;
+ }
+ },
+ get$minScrollExtent: function() {
+ var t1 = this._minScrollExtent;
+ t1.toString;
+ return t1;
+ },
+ get$maxScrollExtent: function() {
+ var t1 = this._maxScrollExtent;
+ t1.toString;
+ return t1;
+ },
+ get$hasContentDimensions: function() {
+ return this._minScrollExtent != null && this._maxScrollExtent != null;
+ },
+ get$pixels: function() {
+ var t1 = this._pixels;
+ t1.toString;
+ return t1;
+ },
+ get$hasPixels: function() {
+ return this._pixels != null;
+ },
+ get$viewportDimension: function() {
+ var t1 = this._scroll_position$_viewportDimension;
+ t1.toString;
+ return t1;
+ },
+ get$hasViewportDimension: function() {
+ return this._scroll_position$_viewportDimension != null;
+ },
+ absorb$1: function(other) {
+ var t1, _this = this;
+ if (other.get$hasContentDimensions()) {
+ t1 = other._minScrollExtent;
+ t1.toString;
+ _this._minScrollExtent = t1;
+ t1 = other._maxScrollExtent;
+ t1.toString;
+ _this._maxScrollExtent = t1;
+ }
+ t1 = other._pixels;
+ if (t1 != null)
+ _this._pixels = t1;
+ t1 = other._scroll_position$_viewportDimension;
+ if (t1 != null)
+ _this._scroll_position$_viewportDimension = t1;
+ _this._activity = other._activity;
+ other._activity = null;
+ if (H.getRuntimeType(other) !== H.getRuntimeType(_this))
+ _this._activity.resetActivity$0();
+ _this.context.setIgnorePointer$1(_this._activity.get$shouldIgnorePointer());
+ _this.isScrollingNotifier.set$value(0, _this._activity.get$isScrolling());
+ },
+ setPixels$1: function(newPixels) {
+ var result, t2, t3, _this = this,
+ t1 = _this._pixels;
+ t1.toString;
+ if (newPixels !== t1) {
+ result = _this.physics.applyBoundaryConditions$2(_this, newPixels);
+ t1 = _this._pixels;
+ t1.toString;
+ t2 = newPixels - result;
+ _this._pixels = t2;
+ if (t2 !== t1) {
+ _this._updateSemanticActions$0();
+ _this.super$ChangeNotifier$notifyListeners();
+ t2 = _this._pixels;
+ t2.toString;
+ _this.didUpdateScrollPositionBy$1(t2 - t1);
+ }
+ if (result !== 0) {
+ t1 = _this._activity;
+ t1.toString;
+ t2 = _this.copyWith$0();
+ t3 = $.GlobalKey__registry.$index(0, _this.context._gestureDetectorKey);
+ t3.toString;
+ t1.dispatchOverscrollNotification$3(t2, t3, result);
+ return result;
+ }
+ }
+ return 0;
+ },
+ correctBy$1: function(correction) {
+ var t1 = this._pixels;
+ t1.toString;
+ this._pixels = t1 + correction;
+ this._didChangeViewportDimensionOrReceiveCorrection = true;
+ },
+ forcePixels$1: function(value) {
+ var _this = this;
+ _this._pixels.toString;
+ _this._pixels = value;
+ _this._updateSemanticActions$0();
+ _this.super$ChangeNotifier$notifyListeners();
+ $.SchedulerBinding__instance.SchedulerBinding__postFrameCallbacks.push(new A.ScrollPosition_forcePixels_closure(_this));
+ },
+ applyViewportDimension$1: function(viewportDimension) {
+ if (this._scroll_position$_viewportDimension != viewportDimension) {
+ this._scroll_position$_viewportDimension = viewportDimension;
+ this._didChangeViewportDimensionOrReceiveCorrection = true;
+ }
+ return true;
+ },
+ applyContentDimensions$2: function(minScrollExtent, maxScrollExtent) {
+ var currentMetrics, t1, _this = this;
+ if (!B.nearEqual(_this._minScrollExtent, minScrollExtent, 0.001) || !B.nearEqual(_this._maxScrollExtent, maxScrollExtent, 0.001) || _this._didChangeViewportDimensionOrReceiveCorrection) {
+ _this._minScrollExtent = minScrollExtent;
+ _this._maxScrollExtent = maxScrollExtent;
+ currentMetrics = _this._haveDimensions ? _this.copyWith$0() : null;
+ _this._didChangeViewportDimensionOrReceiveCorrection = false;
+ _this._pendingDimensions = true;
+ if (_this._haveDimensions) {
+ t1 = _this._lastMetrics;
+ t1.toString;
+ currentMetrics.toString;
+ t1 = !_this.correctForNewDimensions$2(t1, currentMetrics);
+ } else
+ t1 = false;
+ if (t1)
+ return false;
+ _this._haveDimensions = true;
+ }
+ if (_this._pendingDimensions) {
+ _this.super$ScrollPosition$applyNewDimensions();
+ _this.context.setCanDrag$1(_this.physics.shouldAcceptUserOffset$1(_this));
+ _this._pendingDimensions = false;
+ }
+ _this._lastMetrics = _this.copyWith$0();
+ return true;
+ },
+ correctForNewDimensions$2: function(oldPosition, newPosition) {
+ var _this = this,
+ newPixels = _this.physics.adjustPositionForNewDimensions$4$isScrolling$newPosition$oldPosition$velocity(_this._activity.get$isScrolling(), newPosition, oldPosition, _this._activity.get$velocity()),
+ t1 = _this._pixels;
+ t1.toString;
+ if (newPixels !== t1) {
+ _this._pixels = newPixels;
+ return false;
+ }
+ return true;
+ },
+ applyNewDimensions$0: function() {
+ this._activity.applyNewDimensions$0();
+ this._updateSemanticActions$0();
+ },
+ _updateSemanticActions$0: function() {
+ var $forward, backward, actions, t2, t3, _this = this,
+ t1 = _this.context;
+ switch (t1._widget.axisDirection) {
+ case C.AxisDirection_0:
+ $forward = C.SemanticsAction_32;
+ backward = C.SemanticsAction_16;
+ break;
+ case C.AxisDirection_1:
+ $forward = C.SemanticsAction_4;
+ backward = C.SemanticsAction_8;
+ break;
+ case C.AxisDirection_2:
+ $forward = C.SemanticsAction_16;
+ backward = C.SemanticsAction_32;
+ break;
+ case C.AxisDirection_3:
+ $forward = C.SemanticsAction_8;
+ backward = C.SemanticsAction_4;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ actions = P.LinkedHashSet_LinkedHashSet$_empty(type$.SemanticsAction);
+ t2 = _this._pixels;
+ t2.toString;
+ t3 = _this._minScrollExtent;
+ t3.toString;
+ if (t2 > t3)
+ actions.add$1(0, backward);
+ t2 = _this._pixels;
+ t2.toString;
+ t3 = _this._maxScrollExtent;
+ t3.toString;
+ if (t2 < t3)
+ actions.add$1(0, $forward);
+ if (S.setEquals(actions, _this._semanticActions))
+ return;
+ _this._semanticActions = actions;
+ t1 = t1._gestureDetectorKey;
+ if (t1.get$currentState() != null)
+ t1.get$currentState().replaceSemanticsActions$1(actions);
+ },
+ ensureVisible$6$alignment$alignmentPolicy$curve$duration$targetRenderObject: function(object, alignment, alignmentPolicy, curve, duration, targetRenderObject) {
+ var targetRect, t2, t3, target, _this = this,
+ t1 = Q.RenderAbstractViewport_of(object);
+ t1.toString;
+ targetRect = targetRenderObject != null && targetRenderObject !== object ? T.MatrixUtils_transformRect(targetRenderObject.getTransformTo$1(0, object), object.get$paintBounds().intersect$1(targetRenderObject.get$paintBounds())) : null;
+ switch (alignmentPolicy) {
+ case C.ScrollPositionAlignmentPolicy_0:
+ t1 = t1.getOffsetToReveal$3$rect(object, alignment, targetRect);
+ t2 = _this._minScrollExtent;
+ t2.toString;
+ t3 = _this._maxScrollExtent;
+ t3.toString;
+ target = J.clamp$2$n(t1.offset, t2, t3);
+ break;
+ case C.ScrollPositionAlignmentPolicy_1:
+ t1 = t1.getOffsetToReveal$3$rect(object, 1, targetRect);
+ t2 = _this._minScrollExtent;
+ t2.toString;
+ t3 = _this._maxScrollExtent;
+ t3.toString;
+ target = J.clamp$2$n(t1.offset, t2, t3);
+ t1 = _this._pixels;
+ t1.toString;
+ if (target < t1)
+ target = t1;
+ break;
+ case C.ScrollPositionAlignmentPolicy_2:
+ t1 = t1.getOffsetToReveal$3$rect(object, 0, targetRect);
+ t2 = _this._minScrollExtent;
+ t2.toString;
+ t3 = _this._maxScrollExtent;
+ t3.toString;
+ target = J.clamp$2$n(t1.offset, t2, t3);
+ t1 = _this._pixels;
+ t1.toString;
+ if (target > t1)
+ target = t1;
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ t1 = _this._pixels;
+ t1.toString;
+ if (target === t1)
+ return P.Future_Future$value(null, type$.void);
+ if (duration._duration === 0) {
+ _this.jumpTo$1(target);
+ return P.Future_Future$value(null, type$.void);
+ }
+ return _this.animateTo$3$curve$duration(target, curve, duration);
+ },
+ moveTo$3$curve$duration: function(_, to, curve, duration) {
+ var t2,
+ t1 = this._minScrollExtent;
+ t1.toString;
+ t2 = this._maxScrollExtent;
+ t2.toString;
+ to = J.clamp$2$n(to, t1, t2);
+ return this.super$ViewportOffset$moveTo(0, to, curve, duration);
+ },
+ beginActivity$1: function(newActivity) {
+ var oldIgnorePointer, wasScrolling, _this = this,
+ t1 = _this._activity;
+ if (t1 != null) {
+ oldIgnorePointer = t1.get$shouldIgnorePointer();
+ wasScrolling = _this._activity.get$isScrolling();
+ if (wasScrolling && !newActivity.get$isScrolling())
+ _this.didEndScroll$0();
+ _this._activity.dispose$0(0);
+ } else {
+ wasScrolling = false;
+ oldIgnorePointer = false;
+ }
+ _this._activity = newActivity;
+ if (oldIgnorePointer !== newActivity.get$shouldIgnorePointer())
+ _this.context.setIgnorePointer$1(_this._activity.get$shouldIgnorePointer());
+ _this.isScrollingNotifier.set$value(0, _this._activity.get$isScrolling());
+ if (!wasScrolling && _this._activity.get$isScrolling())
+ _this.didStartScroll$0();
+ },
+ didStartScroll$0: function() {
+ var t1 = this._activity;
+ t1.toString;
+ t1.dispatchScrollStartNotification$2(this.copyWith$0(), $.GlobalKey__registry.$index(0, this.context._gestureDetectorKey));
+ },
+ didUpdateScrollPositionBy$1: function(delta) {
+ var t2, t3,
+ t1 = this._activity;
+ t1.toString;
+ t2 = this.copyWith$0();
+ t3 = $.GlobalKey__registry.$index(0, this.context._gestureDetectorKey);
+ t3.toString;
+ t1.dispatchScrollUpdateNotification$3(t2, t3, delta);
+ },
+ didEndScroll$0: function() {
+ var t2, t3, t4, _this = this,
+ t1 = _this._activity;
+ t1.toString;
+ t2 = _this.copyWith$0();
+ t3 = _this.context;
+ t4 = $.GlobalKey__registry.$index(0, t3._gestureDetectorKey);
+ t4.toString;
+ t1.dispatchScrollEndNotification$2(t2, t4);
+ t4 = _this._pixels;
+ t4.toString;
+ t3._persistedScrollOffset.set$value(0, t4);
+ $.ServicesBinding__instance.get$_restorationManager().flushData$0();
+ t1 = t3._framework$_element;
+ t1.toString;
+ t1 = S.PageStorage_of(t1);
+ if (t1 != null) {
+ t2 = t3._framework$_element;
+ t2.toString;
+ t3 = _this._pixels;
+ t3.toString;
+ if (t1._storage == null)
+ t1._storage = P.LinkedHashMap_LinkedHashMap$_empty(type$.Object, type$.dynamic);
+ t2 = t1._allKeys$1(t2);
+ if (t2.length !== 0)
+ t1._storage.$indexSet(0, new S._StorageEntryIdentifier(t2), t3);
+ }
+ },
+ dispose$0: function(_) {
+ var t1 = this._activity;
+ if (t1 != null)
+ t1.dispose$0(0);
+ this._activity = null;
+ this.super$ChangeNotifier$dispose(0);
+ },
+ debugFillDescription$1: function(description) {
+ var t1, t2, _this = this;
+ _this.super$ViewportOffset$debugFillDescription(description);
+ t1 = _this._minScrollExtent;
+ t1 = "range: " + H.S(t1 == null ? null : C.JSNumber_methods.toStringAsFixed$1(t1, 1)) + "..";
+ t2 = _this._maxScrollExtent;
+ description.push(t1 + H.S(t2 == null ? null : C.JSNumber_methods.toStringAsFixed$1(t2, 1)));
+ t1 = _this._scroll_position$_viewportDimension;
+ description.push("viewport: " + H.S(t1 == null ? null : C.JSNumber_methods.toStringAsFixed$1(t1, 1)));
+ }
+ };
+ A.ScrollPosition_forcePixels_closure.prototype = {
+ call$1: function(timeStamp) {
+ },
+ $signature: 4
+ };
+ A._ScrollPosition_ViewportOffset_ScrollMetrics.prototype = {};
+ R.ScrollPositionWithSingleContext.prototype = {
+ get$axisDirection: function() {
+ return this.context._widget.axisDirection;
+ },
+ absorb$1: function(other) {
+ var t1, _this = this;
+ _this.super$ScrollPosition$absorb(other);
+ _this._activity._delegate = _this;
+ _this._userScrollDirection = other._userScrollDirection;
+ t1 = other._currentDrag;
+ if (t1 != null) {
+ _this._currentDrag = t1;
+ t1._delegate = _this;
+ other._currentDrag = null;
+ }
+ },
+ beginActivity$1: function(newActivity) {
+ var t1, _this = this;
+ _this._heldPreviousVelocity = 0;
+ _this.super$ScrollPosition$beginActivity(newActivity);
+ t1 = _this._currentDrag;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this._currentDrag = null;
+ if (!_this._activity.get$isScrolling())
+ _this.updateUserScrollDirection$1(C.ScrollDirection_0);
+ },
+ goBallistic$1: function(velocity) {
+ var t1, t2, t3, _this = this,
+ simulation = _this.physics.createBallisticSimulation$2(_this, velocity);
+ if (simulation != null) {
+ t1 = new M.BallisticScrollActivity(_this);
+ t2 = G.AnimationController$unbounded(null, 0, _this.context);
+ t2.didRegisterListener$0();
+ t3 = t2.AnimationLocalListenersMixin__listeners;
+ t3._isDirty = true;
+ t3._observer_list$_list.push(t1.get$_scroll_activity$_tick());
+ t2.stop$0(0);
+ t2._direction = C._AnimationDirection_0;
+ t2._startSimulation$1(simulation)._primaryCompleter.future.whenComplete$1(t1.get$_scroll_activity$_end());
+ t1.__BallisticScrollActivity__controller_isSet = true;
+ t1.__BallisticScrollActivity__controller = t2;
+ _this.beginActivity$1(t1);
+ } else
+ _this.beginActivity$1(new M.IdleScrollActivity(_this));
+ },
+ updateUserScrollDirection$1: function(value) {
+ var t1, t2, t3, _this = this;
+ if (_this._userScrollDirection === value)
+ return;
+ _this._userScrollDirection = value;
+ t1 = _this.copyWith$0();
+ t2 = _this.context._gestureDetectorKey;
+ t3 = $.GlobalKey__registry.$index(0, t2);
+ t3.toString;
+ new G.UserScrollNotification(value, t1, t3, 0).dispatch$1($.GlobalKey__registry.$index(0, t2));
+ },
+ animateTo$3$curve$duration: function(to, curve, duration) {
+ var activity, t2, _this = this,
+ t1 = _this._pixels;
+ t1.toString;
+ if (B.nearEqual(to, t1, _this.physics.get$tolerance().distance)) {
+ _this.jumpTo$1(to);
+ return P.Future_Future$value(null, type$.void);
+ }
+ t1 = _this._pixels;
+ t1.toString;
+ activity = new M.DrivenScrollActivity(_this);
+ t2 = $.Zone__current;
+ activity.__DrivenScrollActivity__completer_isSet = true;
+ activity.__DrivenScrollActivity__completer = new P._AsyncCompleter(new P._Future(t2, type$._Future_void), type$._AsyncCompleter_void);
+ t1 = G.AnimationController$unbounded("DrivenScrollActivity", t1, _this.context);
+ t1.didRegisterListener$0();
+ t2 = t1.AnimationLocalListenersMixin__listeners;
+ t2._isDirty = true;
+ t2._observer_list$_list.push(activity.get$_scroll_activity$_tick());
+ t1._direction = C._AnimationDirection_0;
+ t1._animateToInternal$3$curve$duration(to, curve, duration)._primaryCompleter.future.whenComplete$1(activity.get$_scroll_activity$_end());
+ if (activity.__DrivenScrollActivity__controller_isSet)
+ H.throwExpression(H.LateError$fieldAI("_controller"));
+ else {
+ activity.__DrivenScrollActivity__controller_isSet = true;
+ activity.__DrivenScrollActivity__controller = t1;
+ }
+ _this.beginActivity$1(activity);
+ return activity.get$_completer().future;
+ },
+ jumpTo$1: function(value) {
+ var t1, t2, _this = this;
+ _this.beginActivity$1(new M.IdleScrollActivity(_this));
+ t1 = _this._pixels;
+ t1.toString;
+ if (t1 !== value) {
+ _this.forcePixels$1(value);
+ _this.didStartScroll$0();
+ t2 = _this._pixels;
+ t2.toString;
+ _this.didUpdateScrollPositionBy$1(t2 - t1);
+ _this.didEndScroll$0();
+ }
+ _this.goBallistic$1(0);
+ },
+ dispose$0: function(_) {
+ var t1 = this._currentDrag;
+ if (t1 != null)
+ t1.dispose$0(0);
+ this._currentDrag = null;
+ this.super$ScrollPosition$dispose(0);
+ }
+ };
+ Y.BouncingScrollSimulation.prototype = {
+ get$_frictionSimulation: function() {
+ return this.__BouncingScrollSimulation__frictionSimulation_isSet ? this.__BouncingScrollSimulation__frictionSimulation : H.throwExpression(H.LateError$fieldNI("_frictionSimulation"));
+ },
+ get$_springTime: function() {
+ return this.__BouncingScrollSimulation__springTime_isSet ? this.__BouncingScrollSimulation__springTime : H.throwExpression(H.LateError$fieldNI("_springTime"));
+ },
+ _scroll_simulation$_simulation$1: function(time) {
+ var t1, simulation, _this = this;
+ if (time > _this.get$_springTime()) {
+ t1 = _this.get$_springTime();
+ t1.toString;
+ _this._timeOffset = isFinite(t1) ? _this.get$_springTime() : 0;
+ simulation = _this.__BouncingScrollSimulation__springSimulation_isSet ? _this.__BouncingScrollSimulation__springSimulation : H.throwExpression(H.LateError$fieldNI("_springSimulation"));
+ } else {
+ _this._timeOffset = 0;
+ simulation = _this.get$_frictionSimulation();
+ }
+ simulation.tolerance = _this.tolerance;
+ return simulation;
+ },
+ x$1: function(_, time) {
+ return this._scroll_simulation$_simulation$1(time).x$1(0, time - this._timeOffset);
+ },
+ dx$1: function(_, time) {
+ return this._scroll_simulation$_simulation$1(time).dx$1(0, time - this._timeOffset);
+ },
+ isDone$1: function(time) {
+ return this._scroll_simulation$_simulation$1(time).isDone$1(time - this._timeOffset);
+ },
+ toString$0: function(_) {
+ return "BouncingScrollSimulation(leadingExtent: " + H.S(this.leadingExtent) + ", trailingExtent: " + H.S(this.trailingExtent) + ")";
+ }
+ };
+ Y.ClampingScrollSimulation.prototype = {
+ get$_scroll_simulation$_duration: function() {
+ return this.__ClampingScrollSimulation__duration_isSet ? this.__ClampingScrollSimulation__duration : H.throwExpression(H.LateError$fieldNI("_duration"));
+ },
+ get$_distance: function() {
+ return this.__ClampingScrollSimulation__distance_isSet ? this.__ClampingScrollSimulation__distance : H.throwExpression(H.LateError$fieldNI("_distance"));
+ },
+ x$1: function(_, time) {
+ var _this = this,
+ t = C.JSDouble_methods.clamp$2(time / _this.get$_scroll_simulation$_duration(), 0, 1);
+ return _this.position + _this.get$_distance() * (1.2 * t * t * t - 3.27 * t * t + 3.065 * t) * J.get$sign$in(_this.velocity);
+ },
+ dx$1: function(_, time) {
+ var _this = this,
+ t = C.JSDouble_methods.clamp$2(time / _this.get$_scroll_simulation$_duration(), 0, 1);
+ return _this.get$_distance() * (3.6 * t * t - 6.54 * t + 3.065) * J.get$sign$in(_this.velocity) / _this.get$_scroll_simulation$_duration();
+ },
+ isDone$1: function(time) {
+ return time >= this.get$_scroll_simulation$_duration();
+ }
+ };
+ B.ScrollViewKeyboardDismissBehavior.prototype = {
+ toString$0: function(_) {
+ return this._scroll_view$_name;
+ }
+ };
+ B.ScrollView.prototype = {
+ buildViewport$4: function(context, offset, axisDirection, slivers) {
+ return new Q.ShrinkWrappingViewport(axisDirection, offset, this.clipBehavior, slivers, null);
+ },
+ build$1: function(_, context) {
+ var _this = this,
+ sliver = _this.buildChildLayout$1(context),
+ slivers = H.setRuntimeTypeInfo([new T.SliverPadding(_this.padding, sliver, null)], type$.JSArray_Widget),
+ axisDirection = T.getAxisDirectionFromAxisReverseAndDirectionality(context, _this.scrollDirection, false),
+ t1 = _this.primary,
+ scrollController = t1 ? E.PrimaryScrollController_of(context) : _this.controller,
+ scrollable = F.Scrollable$(axisDirection, scrollController, _this.dragStartBehavior, false, _this.physics, _this.restorationId, _this.semanticChildCount, new B.ScrollView_build_closure(_this, axisDirection, slivers)),
+ scrollableResult = t1 && scrollController != null ? E.PrimaryScrollController$none(scrollable) : scrollable;
+ if (_this.keyboardDismissBehavior === C.ScrollViewKeyboardDismissBehavior_1)
+ return new U.NotificationListener(scrollableResult, new B.ScrollView_build_closure0(context), null, type$.NotificationListener_ScrollUpdateNotification);
+ else
+ return scrollableResult;
+ }
+ };
+ B.ScrollView_build_closure.prototype = {
+ call$2: function(context, offset) {
+ return this.$this.buildViewport$4(context, offset, this.axisDirection, this.slivers);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 321
+ };
+ B.ScrollView_build_closure0.prototype = {
+ call$1: function(notification) {
+ var focusScope = L.FocusScope_of(this.context);
+ if (notification.dragDetails != null && focusScope.get$hasFocus())
+ focusScope.unfocus$0();
+ return false;
+ },
+ $signature: 322
+ };
+ B.BoxScrollView.prototype = {};
+ B.ListView.prototype = {
+ buildChildLayout$1: function(context) {
+ return new G.SliverList(this.childrenDelegate, null);
+ }
+ };
+ F._ScrollableState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure.prototype = {
+ call$2: function(property, listener) {
+ if (!property._disposed)
+ property.removeListener$1(0, listener);
+ },
+ $signature: 44
+ };
+ F.Scrollable.prototype = {
+ createState$0: function() {
+ var _null = null,
+ t1 = type$.LabeledGlobalKey_State_StatefulWidget;
+ return new F.ScrollableState(new F._RestorableScrollOffset(new P.LinkedList(type$.LinkedList__ListenerEntry)), new N.LabeledGlobalKey(_null, t1), new N.LabeledGlobalKey(_null, type$.LabeledGlobalKey_RawGestureDetectorState), new N.LabeledGlobalKey(_null, t1), C.Map_empty4, _null, P.LinkedHashMap_LinkedHashMap$_empty(type$.RestorableProperty_nullable_Object, type$.void_Function), _null, true, _null, _null, C._StateLifecycle_0);
+ },
+ viewportBuilder$2: function(arg0, arg1) {
+ return this.viewportBuilder.call$2(arg0, arg1);
+ }
+ };
+ F._ScrollableScope.prototype = {
+ updateShouldNotify$1: function(old) {
+ return this.position != old.position;
+ }
+ };
+ F.ScrollableState.prototype = {
+ get$_scrollable$_configuration: function() {
+ return this.__ScrollableState__configuration_isSet ? this.__ScrollableState__configuration : H.throwExpression(H.LateError$fieldNI("_configuration"));
+ },
+ _updatePosition$0: function() {
+ var t2, controller, oldPosition, _this = this, _null = null,
+ configuration = _this._framework$_element.dependOnInheritedWidgetOfExactType$1$0(type$.ScrollConfiguration),
+ t1 = configuration == null ? _null : configuration.behavior;
+ if (t1 == null)
+ t1 = C.C_ScrollBehavior;
+ _this.__ScrollableState__configuration_isSet = true;
+ _this.__ScrollableState__configuration = t1;
+ t1 = _this.get$_scrollable$_configuration();
+ t2 = _this._framework$_element;
+ t2.toString;
+ t2 = t1.getScrollPhysics$1(t2);
+ _this._physics = t2;
+ t1 = _this._widget.physics;
+ if (t1 != null)
+ _this._physics = new L.AlwaysScrollableScrollPhysics(t1.buildParent$1(t2));
+ controller = _this._widget.controller;
+ oldPosition = _this._scrollable$_position;
+ if (oldPosition != null) {
+ if (controller != null)
+ controller.detach$1(0, oldPosition);
+ P.scheduleMicrotask(oldPosition.get$dispose(oldPosition));
+ }
+ t1 = controller == null;
+ if (t1)
+ t2 = _null;
+ else {
+ t2 = _this._physics;
+ t2.toString;
+ t2 = R.ScrollPositionWithSingleContext$(_this, _null, 0, true, oldPosition, t2);
+ }
+ if (t2 == null) {
+ t2 = _this._physics;
+ t2.toString;
+ t2 = R.ScrollPositionWithSingleContext$(_this, _null, 0, true, oldPosition, t2);
+ }
+ _this._scrollable$_position = t2;
+ if (!t1)
+ controller.attach$1(t2);
+ },
+ restoreState$2: function(oldBucket, initialRestore) {
+ var t2,
+ t1 = this._persistedScrollOffset;
+ this.registerForRestoration$2(t1, "offset");
+ t1 = t1._restoration_properties$_value;
+ if (t1 != null) {
+ t2 = this._scrollable$_position;
+ t2.toString;
+ if (initialRestore)
+ t2._pixels = t1;
+ else
+ t2.jumpTo$1(t1);
+ }
+ },
+ didChangeDependencies$0: function() {
+ this._updatePosition$0();
+ this.super$_ScrollableState_State_TickerProviderStateMixin_RestorationMixin$didChangeDependencies();
+ },
+ _shouldUpdatePosition$1: function(oldWidget) {
+ var t1, t2, t3, _null = null,
+ newPhysics = this._widget.physics,
+ oldPhysics = oldWidget.physics;
+ do {
+ t1 = newPhysics == null;
+ t2 = t1 ? _null : H.getRuntimeType(newPhysics);
+ t3 = oldPhysics == null;
+ if (t2 != (t3 ? _null : H.getRuntimeType(oldPhysics)))
+ return true;
+ newPhysics = t1 ? _null : newPhysics.parent;
+ oldPhysics = t3 ? _null : oldPhysics.parent;
+ } while (newPhysics != null || oldPhysics != null);
+ t1 = this._widget.controller;
+ t1 = t1 == null ? _null : H.getRuntimeType(t1);
+ t2 = oldWidget.controller;
+ return t1 != (t2 == null ? _null : H.getRuntimeType(t2));
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, t2, _this = this;
+ _this.super$_ScrollableState_State_TickerProviderStateMixin_RestorationMixin$didUpdateWidget(oldWidget);
+ t1 = _this._widget.controller;
+ t2 = oldWidget.controller;
+ if (t1 != t2) {
+ if (t2 != null) {
+ t1 = _this._scrollable$_position;
+ t1.toString;
+ t2.detach$1(0, t1);
+ }
+ t1 = _this._widget.controller;
+ if (t1 != null) {
+ t2 = _this._scrollable$_position;
+ t2.toString;
+ t1.attach$1(t2);
+ }
+ }
+ if (_this._shouldUpdatePosition$1(oldWidget))
+ _this._updatePosition$0();
+ },
+ dispose$0: function(_) {
+ var t2, _this = this,
+ t1 = _this._widget.controller;
+ if (t1 != null) {
+ t2 = _this._scrollable$_position;
+ t2.toString;
+ t1.detach$1(0, t2);
+ }
+ _this._scrollable$_position.dispose$0(0);
+ _this._persistedScrollOffset.dispose$0(0);
+ _this.super$_ScrollableState_State_TickerProviderStateMixin_RestorationMixin$dispose(0);
+ },
+ setCanDrag$1: function(canDrag) {
+ var t1, t2, _this = this;
+ if (canDrag === _this._lastCanDrag)
+ t1 = !canDrag || G.axisDirectionToAxis(_this._widget.axisDirection) === _this._lastAxisDirection;
+ else
+ t1 = false;
+ if (t1)
+ return;
+ if (!canDrag) {
+ _this._gestureRecognizers = C.Map_empty4;
+ _this._scrollable$_handleDragCancel$0();
+ } else {
+ switch (G.axisDirectionToAxis(_this._widget.axisDirection)) {
+ case C.Axis_1:
+ _this._gestureRecognizers = P.LinkedHashMap_LinkedHashMap$_literal([C.Type_mLh, new D.GestureRecognizerFactoryWithHandlers(new F.ScrollableState_setCanDrag_closure(), new F.ScrollableState_setCanDrag_closure0(_this), type$.GestureRecognizerFactoryWithHandlers_VerticalDragGestureRecognizer)], type$.Type, type$.GestureRecognizerFactory_GestureRecognizer);
+ break;
+ case C.Axis_0:
+ _this._gestureRecognizers = P.LinkedHashMap_LinkedHashMap$_literal([C.Type_Vq1, new D.GestureRecognizerFactoryWithHandlers(new F.ScrollableState_setCanDrag_closure1(), new F.ScrollableState_setCanDrag_closure2(_this), type$.GestureRecognizerFactoryWithHandlers_HorizontalDragGestureRecognizer)], type$.Type, type$.GestureRecognizerFactory_GestureRecognizer);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ canDrag = true;
+ }
+ _this._lastCanDrag = canDrag;
+ _this._lastAxisDirection = G.axisDirectionToAxis(_this._widget.axisDirection);
+ t1 = _this._gestureDetectorKey;
+ if (t1.get$currentState() != null) {
+ t1 = t1.get$currentState();
+ t1._syncAll$1(_this._gestureRecognizers);
+ if (!t1._widget.excludeFromSemantics) {
+ t2 = t1._framework$_element.get$renderObject();
+ t2.toString;
+ type$.RenderSemanticsGestureHandler._as(t2);
+ t1._gesture_detector$_semantics.assignSemantics$1(t2);
+ }
+ }
+ },
+ setIgnorePointer$1: function(value) {
+ var t1, _this = this;
+ if (_this._shouldIgnorePointer === value)
+ return;
+ _this._shouldIgnorePointer = value;
+ t1 = _this._ignorePointerKey;
+ if ($.GlobalKey__registry.$index(0, t1) != null) {
+ t1 = $.GlobalKey__registry.$index(0, t1).get$renderObject();
+ t1.toString;
+ type$.RenderIgnorePointer._as(t1).set$ignoring(_this._shouldIgnorePointer);
+ }
+ },
+ _handleDragDown$1: function(details) {
+ var t1 = this._scrollable$_position,
+ previousVelocity = t1._activity.get$velocity(),
+ holdActivity = new M.HoldScrollActivity(this.get$_disposeHold(), t1);
+ t1.beginActivity$1(holdActivity);
+ t1._heldPreviousVelocity = previousVelocity;
+ this._hold = holdActivity;
+ },
+ _scrollable$_handleDragStart$1: function(details) {
+ var t4, drag,
+ t1 = this._scrollable$_position,
+ t2 = t1.physics,
+ t3 = t2.carriedMomentum$1(t1._heldPreviousVelocity);
+ t2 = t2.get$dragStartDistanceMotionThreshold();
+ t4 = t2 == null ? null : 0;
+ drag = new M.ScrollDragController(t1, this.get$_disposeDrag(), t3, t2, details.sourceTimeStamp, t3 !== 0, t4, details);
+ t1.beginActivity$1(new M.DragScrollActivity(drag, t1));
+ this._scrollable$_drag = t1._currentDrag = drag;
+ },
+ _scrollable$_handleDragUpdate$1: function(details) {
+ var t1 = this._scrollable$_drag;
+ if (t1 != null)
+ t1.update$1(0, details);
+ },
+ _scrollable$_handleDragEnd$1: function(details) {
+ var t1 = this._scrollable$_drag;
+ if (t1 != null)
+ t1.end$1(0, details);
+ },
+ _scrollable$_handleDragCancel$0: function() {
+ var t1 = this._hold;
+ if (t1 != null)
+ t1._delegate.goBallistic$1(0);
+ t1 = this._scrollable$_drag;
+ if (t1 != null)
+ t1._delegate.goBallistic$1(0);
+ },
+ _disposeHold$0: function() {
+ this._hold = null;
+ },
+ _disposeDrag$0: function() {
+ this._scrollable$_drag = null;
+ },
+ _targetScrollDeltaForPointerScroll$1: function($event) {
+ var delta = G.axisDirectionToAxis(this._widget.axisDirection) === C.Axis_0 ? $event.get$scrollDelta()._dx : $event.get$scrollDelta()._dy;
+ return G.axisDirectionIsReversed(this._widget.axisDirection) ? delta * -1 : delta;
+ },
+ _receivedPointerSignal$1: function($event) {
+ if (type$.PointerScrollEvent._is($event) && this._scrollable$_position != null)
+ if (this._targetScrollDeltaForPointerScroll$1($event) !== 0)
+ $.GestureBinding__instance.GestureBinding_pointerSignalResolver.register$2(0, $event, this.get$_handlePointerScroll());
+ },
+ _handlePointerScroll$1: function($event) {
+ var t2, targetScrollOffset, t3, t4, targetPixels, _this = this,
+ t1 = _this._physics;
+ if (t1 != null) {
+ t2 = _this._scrollable$_position;
+ t2.toString;
+ t2 = !t1.shouldAcceptUserOffset$1(t2);
+ t1 = t2;
+ } else
+ t1 = false;
+ if (t1)
+ return;
+ targetScrollOffset = _this._targetScrollDeltaForPointerScroll$1($event);
+ if (targetScrollOffset !== 0) {
+ t1 = _this._scrollable$_position;
+ t2 = t1._pixels;
+ t2.toString;
+ t3 = t1._minScrollExtent;
+ t3.toString;
+ t3 = Math.max(t2 + targetScrollOffset, t3);
+ t4 = t1._maxScrollExtent;
+ t4.toString;
+ targetPixels = Math.min(t3, t4);
+ if (targetPixels !== t2) {
+ t1.beginActivity$1(new M.IdleScrollActivity(t1));
+ t1.updateUserScrollDirection$1(-targetScrollOffset > 0 ? C.ScrollDirection_1 : C.ScrollDirection_2);
+ t2 = t1._pixels;
+ t2.toString;
+ t1.forcePixels$1(targetPixels);
+ t1.didStartScroll$0();
+ t3 = t1._pixels;
+ t3.toString;
+ t1.didUpdateScrollPositionBy$1(t3 - t2);
+ t1.didEndScroll$0();
+ t1.goBallistic$1(0);
+ }
+ }
+ },
+ build$1: function(_, context) {
+ var t2, t3, t4, result, _this = this, _null = null,
+ t1 = _this._scrollable$_position;
+ t1.toString;
+ t2 = _this._gestureRecognizers;
+ t3 = _this._widget;
+ t4 = t3.excludeFromSemantics;
+ result = new F._ScrollableScope(_this, t1, T.Listener$(C.HitTestBehavior_0, new D.RawGestureDetector(T.Semantics$(_null, new T.IgnorePointer(_this._shouldIgnorePointer, false, t3.viewportBuilder$2(context, t1), _this._ignorePointerKey), false, _null, _null, !t4, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null), t2, C.HitTestBehavior_1, t4, _null, _this._gestureDetectorKey), _null, _null, _this.get$_receivedPointerSignal(), _null), _null);
+ t1 = _this._widget;
+ if (!t1.excludeFromSemantics) {
+ t2 = _this._scrollable$_position;
+ t2.toString;
+ _this._physics.toString;
+ result = new F._ScrollSemantics(t2, true, t1.semanticChildCount, result, _this._scrollSemanticsKey);
+ }
+ return _this.get$_scrollable$_configuration().buildViewportChrome$3(context, result, _this._widget.axisDirection);
+ },
+ get$restorationId: function() {
+ return this._widget.restorationId;
+ }
+ };
+ F.ScrollableState_setCanDrag_closure.prototype = {
+ call$0: function() {
+ return O.VerticalDragGestureRecognizer$(null);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 125
+ };
+ F.ScrollableState_setCanDrag_closure0.prototype = {
+ call$1: function(instance) {
+ var t2, t3,
+ t1 = this.$this;
+ instance.onDown = t1.get$_handleDragDown();
+ instance.onStart = t1.get$_scrollable$_handleDragStart();
+ instance.onUpdate = t1.get$_scrollable$_handleDragUpdate();
+ instance.onEnd = t1.get$_scrollable$_handleDragEnd();
+ instance.onCancel = t1.get$_scrollable$_handleDragCancel();
+ t2 = t1._physics;
+ instance.minFlingDistance = t2 == null ? null : t2.get$minFlingDistance();
+ t2 = t1._physics;
+ instance.minFlingVelocity = t2 == null ? null : t2.get$minFlingVelocity();
+ t2 = t1._physics;
+ instance.maxFlingVelocity = t2 == null ? null : t2.get$maxFlingVelocity();
+ t2 = t1.get$_scrollable$_configuration();
+ t3 = t1._framework$_element;
+ t3.toString;
+ instance.velocityTrackerBuilder = t2.velocityTrackerBuilder$1(t3);
+ instance.dragStartBehavior = t1._widget.dragStartBehavior;
+ },
+ $signature: 124
+ };
+ F.ScrollableState_setCanDrag_closure1.prototype = {
+ call$0: function() {
+ return O.HorizontalDragGestureRecognizer$(null, null);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 78
+ };
+ F.ScrollableState_setCanDrag_closure2.prototype = {
+ call$1: function(instance) {
+ var t2, t3,
+ t1 = this.$this;
+ instance.onDown = t1.get$_handleDragDown();
+ instance.onStart = t1.get$_scrollable$_handleDragStart();
+ instance.onUpdate = t1.get$_scrollable$_handleDragUpdate();
+ instance.onEnd = t1.get$_scrollable$_handleDragEnd();
+ instance.onCancel = t1.get$_scrollable$_handleDragCancel();
+ t2 = t1._physics;
+ instance.minFlingDistance = t2 == null ? null : t2.get$minFlingDistance();
+ t2 = t1._physics;
+ instance.minFlingVelocity = t2 == null ? null : t2.get$minFlingVelocity();
+ t2 = t1._physics;
+ instance.maxFlingVelocity = t2 == null ? null : t2.get$maxFlingVelocity();
+ t2 = t1.get$_scrollable$_configuration();
+ t3 = t1._framework$_element;
+ t3.toString;
+ instance.velocityTrackerBuilder = t2.velocityTrackerBuilder$1(t3);
+ instance.dragStartBehavior = t1._widget.dragStartBehavior;
+ },
+ $signature: 57
+ };
+ F._ScrollSemantics.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = this.position,
+ t2 = new F._RenderScrollSemantics(t1, true, this.semanticChildCount, null);
+ t2.get$isRepaintBoundary();
+ t2.get$alwaysNeedsCompositing();
+ t2.__RenderObject__needsCompositing_isSet = true;
+ t2.__RenderObject__needsCompositing = false;
+ t2.set$child(null);
+ t1 = t1.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(t2.get$markNeedsSemanticsUpdate()), false);
+ return t2;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$allowImplicitScrolling(true);
+ renderObject.set$position(0, this.position);
+ renderObject.set$semanticChildCount(this.semanticChildCount);
+ }
+ };
+ F._RenderScrollSemantics.prototype = {
+ set$position: function(_, value) {
+ var t2, _this = this,
+ t1 = _this._scrollable$_position;
+ if (value == t1)
+ return;
+ t2 = _this.get$markNeedsSemanticsUpdate();
+ t1.removeListener$1(0, t2);
+ _this._scrollable$_position = value;
+ t1 = value.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(t2), false);
+ _this.markNeedsSemanticsUpdate$0();
+ },
+ set$allowImplicitScrolling: function(value) {
+ return;
+ },
+ set$semanticChildCount: function(value) {
+ if (value == this._semanticChildCount)
+ return;
+ this._semanticChildCount = value;
+ this.markNeedsSemanticsUpdate$0();
+ },
+ describeSemanticsConfiguration$1: function(config) {
+ var t1, t2, _this = this;
+ _this.super$RenderObject$describeSemanticsConfiguration(config);
+ config._isSemanticBoundary = true;
+ if (_this._scrollable$_position._haveDimensions) {
+ config._setFlag$2(C.SemanticsFlag_262144, true);
+ t1 = _this._scrollable$_position;
+ t2 = t1._pixels;
+ t2.toString;
+ config._scrollPosition = t2;
+ config._hasBeenAnnotated = true;
+ t2 = t1._maxScrollExtent;
+ t2.toString;
+ config._scrollExtentMax = t2;
+ t1 = t1._minScrollExtent;
+ t1.toString;
+ config._scrollExtentMin = t1;
+ config.set$scrollChildCount(_this._semanticChildCount);
+ }
+ },
+ assembleSemanticsNode$3: function(node, config, children) {
+ var t1, t2, excluded, included, firstVisibleIndex, _i, child, _this = this;
+ if (children.length === 0 || !C.JSArray_methods.get$first(children).isTagged$1(C.SemanticsTag_FIw)) {
+ _this.super$RenderObject$assembleSemanticsNode(node, config, children);
+ return;
+ }
+ t1 = _this._innerNode;
+ if (t1 == null)
+ t1 = _this._innerNode = A.SemanticsNode$(null, _this.get$showOnScreen());
+ t1.set$isMergedIntoParent(node._mergeAllDescendantsIntoThisNode || node._isMergedIntoParent);
+ t1.set$rect(0, node._semantics$_rect);
+ t1 = _this._innerNode;
+ t1.toString;
+ t2 = type$.JSArray_SemanticsNode;
+ excluded = H.setRuntimeTypeInfo([t1], t2);
+ included = H.setRuntimeTypeInfo([], t2);
+ for (t1 = children.length, firstVisibleIndex = null, _i = 0; _i < children.length; children.length === t1 || (0, H.throwConcurrentModificationError)(children), ++_i) {
+ child = children[_i];
+ t2 = child.tags;
+ if (t2 != null && t2.contains$1(0, C.SemanticsTag_bQQ))
+ excluded.push(child);
+ else {
+ if ((child._flags & 8192) === 0)
+ firstVisibleIndex = firstVisibleIndex == null ? child.indexInParent : firstVisibleIndex;
+ included.push(child);
+ }
+ }
+ config.set$scrollIndex(firstVisibleIndex);
+ node.updateWith$2$childrenInInversePaintOrder$config(0, excluded, null);
+ _this._innerNode.updateWith$2$childrenInInversePaintOrder$config(0, included, config);
+ },
+ clearSemantics$0: function() {
+ this.super$RenderObject$clearSemantics();
+ this._innerNode = null;
+ }
+ };
+ F.ScrollIncrementType.prototype = {
+ toString$0: function(_) {
+ return this._scrollable$_name;
+ }
+ };
+ F.ScrollIntent.prototype = {};
+ F.ScrollAction.prototype = {
+ isEnabled$1: function(_, intent) {
+ var t1,
+ $focus = $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._primaryFocus;
+ if ($focus != null) {
+ t1 = $focus._context;
+ t1 = t1 != null && F.Scrollable_of(t1) != null;
+ } else
+ t1 = false;
+ return t1;
+ },
+ _calculateScrollIncrement$2$type: function(state, type) {
+ var t1;
+ state._widget.toString;
+ switch (type) {
+ case C.ScrollIncrementType_0:
+ return 50;
+ case C.ScrollIncrementType_1:
+ t1 = state._scrollable$_position._scroll_position$_viewportDimension;
+ t1.toString;
+ return 0.8 * t1;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ _getIncrement$2: function(state, intent) {
+ var _s80_ = string$.x60null_c,
+ increment = this._calculateScrollIncrement$2$type(state, intent.type);
+ switch (intent.direction) {
+ case C.AxisDirection_2:
+ switch (state._widget.axisDirection) {
+ case C.AxisDirection_0:
+ return -increment;
+ case C.AxisDirection_2:
+ return increment;
+ case C.AxisDirection_1:
+ case C.AxisDirection_3:
+ return 0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ case C.AxisDirection_0:
+ switch (state._widget.axisDirection) {
+ case C.AxisDirection_0:
+ return increment;
+ case C.AxisDirection_2:
+ return -increment;
+ case C.AxisDirection_1:
+ case C.AxisDirection_3:
+ return 0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ case C.AxisDirection_3:
+ switch (state._widget.axisDirection) {
+ case C.AxisDirection_1:
+ return -increment;
+ case C.AxisDirection_3:
+ return increment;
+ case C.AxisDirection_0:
+ case C.AxisDirection_2:
+ return 0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ case C.AxisDirection_1:
+ switch (state._widget.axisDirection) {
+ case C.AxisDirection_1:
+ return increment;
+ case C.AxisDirection_3:
+ return -increment;
+ case C.AxisDirection_0:
+ case C.AxisDirection_2:
+ return 0;
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ default:
+ throw H.wrapException(H.ReachabilityError$(_s80_));
+ }
+ },
+ invoke$1: function(intent) {
+ var state, t2, increment,
+ t1 = $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._primaryFocus._context;
+ t1.toString;
+ state = F.Scrollable_of(t1);
+ t1 = state._physics;
+ if (t1 != null) {
+ t2 = state._scrollable$_position;
+ t2.toString;
+ t2 = !t1.shouldAcceptUserOffset$1(t2);
+ t1 = t2;
+ } else
+ t1 = false;
+ if (t1)
+ return;
+ increment = this._getIncrement$2(state, intent);
+ if (increment === 0)
+ return;
+ t1 = state._scrollable$_position;
+ t2 = t1._pixels;
+ t2.toString;
+ t1.moveTo$3$curve$duration(0, t2 + increment, C.Cubic_xDo, C.Duration_100000);
+ }
+ };
+ F._RestorableScrollOffset.prototype = {
+ createDefaultValue$0: function() {
+ return null;
+ },
+ didUpdateValue$1: function(oldValue) {
+ this.notifyListeners$0();
+ },
+ fromPrimitives$1: function(data) {
+ data.toString;
+ return H._asDoubleS(data);
+ },
+ toPrimitives$0: function() {
+ return this._restoration_properties$_value;
+ },
+ get$enabled: function(_) {
+ return this._restoration_properties$_value != null;
+ }
+ };
+ F._ScrollableState_State_TickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var muted,
+ t1 = this._framework$_element;
+ t1.toString;
+ muted = !U.TickerMode_of(t1);
+ t1 = this.TickerProviderStateMixin__tickers;
+ if (t1 != null)
+ for (t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.set$muted(0, muted);
+ this.super$State$didChangeDependencies();
+ }
+ };
+ F._ScrollableState_State_TickerProviderStateMixin_RestorationMixin.prototype = {
+ didUpdateWidget$1: function(oldWidget) {
+ this.super$State$didUpdateWidget(oldWidget);
+ this.didUpdateRestorationId$0();
+ },
+ didChangeDependencies$0: function() {
+ var oldBucket, needsRestore, t1, didReplaceBucket, _this = this;
+ _this.super$_ScrollableState_State_TickerProviderStateMixin$didChangeDependencies();
+ oldBucket = _this.RestorationMixin__bucket;
+ needsRestore = _this.get$restorePending();
+ t1 = _this._framework$_element;
+ t1.toString;
+ t1 = K.RestorationScope_of(t1);
+ _this.RestorationMixin__currentParent = t1;
+ didReplaceBucket = _this._updateBucketIfNecessary$2$parent$restorePending(t1, needsRestore);
+ if (needsRestore) {
+ _this.restoreState$2(oldBucket, _this.RestorationMixin__firstRestorePending);
+ _this.RestorationMixin__firstRestorePending = false;
+ }
+ if (didReplaceBucket)
+ if (oldBucket != null)
+ oldBucket.dispose$0(0);
+ },
+ dispose$0: function(_) {
+ var t1, _this = this;
+ _this.RestorationMixin__properties.forEach$1(0, new F._ScrollableState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure());
+ t1 = _this.RestorationMixin__bucket;
+ if (t1 != null)
+ t1.dispose$0(0);
+ _this.RestorationMixin__bucket = null;
+ _this.super$_ScrollableState_State_TickerProviderStateMixin$dispose(0);
+ }
+ };
+ X.KeySet.prototype = {
+ KeySet$4: function(key1, key2, key3, key4, _box_0, $T) {
+ _box_0.count = 1;
+ if (key2 != null)
+ this._shortcuts$_keys.add$1(0, key2);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ if (J.get$runtimeType$(other) !== H.getRuntimeType(this))
+ return false;
+ return H._instanceType(this)._eval$1("KeySet")._is(other) && S.setEquals(other._shortcuts$_keys, this._shortcuts$_keys);
+ },
+ get$hashCode: function(_) {
+ var $length, iterator, h1, h2, sortedHashes, _this = this,
+ t1 = _this._shortcuts$_hashCode;
+ if (t1 != null)
+ return t1;
+ t1 = _this._shortcuts$_keys;
+ $length = t1._collection$_length;
+ iterator = new P._HashSetIterator(t1, t1._computeElements$0());
+ iterator.moveNext$0();
+ h1 = J.get$hashCode$(iterator._collection$_current);
+ if ($length === 1)
+ return _this._shortcuts$_hashCode = h1;
+ iterator.moveNext$0();
+ h2 = J.get$hashCode$(iterator._collection$_current);
+ if ($length === 2)
+ return _this._shortcuts$_hashCode = h1 < h2 ? P.hashValues(h1, h2, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd) : P.hashValues(h2, h1, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd, C.C__HashEnd);
+ sortedHashes = $length === 3 ? $.KeySet__tempHashStore3 : $.KeySet__tempHashStore4;
+ sortedHashes[0] = h1;
+ sortedHashes[1] = h2;
+ iterator.moveNext$0();
+ sortedHashes[2] = J.get$hashCode$(iterator._collection$_current);
+ if ($length === 4) {
+ iterator.moveNext$0();
+ sortedHashes[3] = J.get$hashCode$(iterator._collection$_current);
+ }
+ C.JSArray_methods.sort$0(sortedHashes);
+ return _this._shortcuts$_hashCode = P.hashList(sortedHashes);
+ }
+ };
+ X.LogicalKeySet.prototype = {};
+ X.ShortcutManager.prototype = {
+ set$shortcuts: function(value) {
+ if (!S.mapEquals(this._shortcuts, value)) {
+ this._shortcuts = value;
+ this.notifyListeners$0();
+ }
+ },
+ _find$1$keysPressed: function(keysPressed) {
+ var matchedIntent, pseudoKeys, t3, result, synonyms, first,
+ t1 = $.$get$RawKeyboard_instance(),
+ t2 = t1._keysPressed;
+ t2 = t2.get$values(t2);
+ t2 = P.LinkedHashSet_LinkedHashSet$of(t2, H._instanceType(t2)._eval$1("Iterable.E"))._collection$_length === 0;
+ if (t2)
+ return null;
+ t1 = t1._keysPressed;
+ t1 = t1.get$values(t1);
+ keysPressed = new X.LogicalKeySet(P.HashSet_HashSet$from(P.LinkedHashSet_LinkedHashSet$of(t1, H._instanceType(t1)._eval$1("Iterable.E")), type$.LogicalKeyboardKey));
+ matchedIntent = this._shortcuts.$index(0, keysPressed);
+ if (matchedIntent == null) {
+ t1 = type$.LogicalKeyboardKey;
+ pseudoKeys = P.LinkedHashSet_LinkedHashSet$_empty(t1);
+ for (t2 = keysPressed._shortcuts$_keys.toSet$0(0), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ if (t3 instanceof G.LogicalKeyboardKey) {
+ result = $.LogicalKeyboardKey__synonyms.$index(0, t3);
+ synonyms = result == null ? P.LinkedHashSet_LinkedHashSet$_empty(t1) : P.LinkedHashSet_LinkedHashSet$_literal([result], t1);
+ if (synonyms._collection$_length !== 0) {
+ first = synonyms._collection$_first;
+ if (first == null)
+ H.throwExpression(P.StateError$("No elements"));
+ pseudoKeys.add$1(0, first._collection$_element);
+ } else
+ pseudoKeys.add$1(0, t3);
+ }
+ }
+ matchedIntent = this._shortcuts.$index(0, new X.LogicalKeySet(P.HashSet_HashSet$from(pseudoKeys, t1)));
+ }
+ return matchedIntent;
+ },
+ handleKeypress$2: function(context, $event) {
+ var matchedIntent, t1, action, t2;
+ if (!($event instanceof B.RawKeyDownEvent))
+ return C.KeyEventResult_1;
+ matchedIntent = this._find$1$keysPressed(null);
+ if (matchedIntent != null) {
+ t1 = $.WidgetsBinding__instance.WidgetsBinding__buildOwner.focusManager._primaryFocus._context;
+ t1.toString;
+ action = U.Actions_maybeFind(t1, matchedIntent, type$.Intent);
+ if (action != null && action.isEnabled$1(0, matchedIntent)) {
+ t1.dependOnInheritedWidgetOfExactType$1$0(type$._ActionsMarker);
+ t2 = U.Actions__findDispatcher(t1);
+ t2.invokeAction$3(action, matchedIntent, t1);
+ return action.consumesKey$1(matchedIntent) ? C.KeyEventResult_0 : C.KeyEventResult_2;
+ }
+ }
+ return C.KeyEventResult_1;
+ }
+ };
+ X.Shortcuts.prototype = {
+ createState$0: function() {
+ return new X._ShortcutsState(C._StateLifecycle_0);
+ }
+ };
+ X._ShortcutsState.prototype = {
+ get$manager: function() {
+ this._widget.toString;
+ var t1 = this._internalManager;
+ t1.toString;
+ return t1;
+ },
+ dispose$0: function(_) {
+ var t1 = this._internalManager;
+ if (t1 != null)
+ t1.ChangeNotifier__listeners = null;
+ this.super$State$dispose(0);
+ },
+ initState$0: function() {
+ var _this = this;
+ _this.super$State$initState();
+ _this._widget.toString;
+ _this._internalManager = X.ShortcutManager$();
+ _this.get$manager().set$shortcuts(_this._widget.shortcuts);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ _this._widget.toString;
+ oldWidget.toString;
+ _this.get$manager().set$shortcuts(_this._widget.shortcuts);
+ },
+ _handleOnKey$2: function(node, $event) {
+ var t1, t2;
+ if (node._context == null)
+ return C.KeyEventResult_1;
+ t1 = this.get$manager();
+ t2 = node._context;
+ t2.toString;
+ return t1.handleKeypress$2(t2, $event);
+ },
+ build$1: function(_, context) {
+ var _null = null,
+ t1 = C.Type_Shortcuts_6TW.toString$0(0);
+ return L.Focus$(false, false, new X._ShortcutsMarker(this.get$manager(), this._widget.child, _null), t1, true, _null, true, _null, _null, this.get$_handleOnKey(), _null);
+ }
+ };
+ X._ShortcutsMarker.prototype = {};
+ X._LogicalKeySet_KeySet_Diagnosticable.prototype = {};
+ X._ShortcutManager_ChangeNotifier_Diagnosticable.prototype = {};
+ G.SliverChildDelegate.prototype = {
+ toString$0: function(_) {
+ var description = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ this.debugFillDescription$1(description);
+ return "#" + Y.shortHash(this) + "(" + C.JSArray_methods.join$1(description, ", ") + ")";
+ },
+ debugFillDescription$1: function(description) {
+ var children, e, exception;
+ try {
+ children = this.childCount;
+ if (children != null)
+ description.push("estimated child count: " + H.S(children));
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ description.push("estimated child count: EXCEPTION (" + J.get$runtimeType$(e).toString$0(0) + ")");
+ }
+ }
+ };
+ G._SaltedValueKey.prototype = {};
+ G.SliverChildBuilderDelegate.prototype = {
+ findIndexByKey$1: function(key) {
+ return null;
+ },
+ build$2: function(_, context, index) {
+ var child, exception, stackTrace, t1, exception0, details, key, semanticIndex, _null = null;
+ if (!(index < 0)) {
+ t1 = this.childCount;
+ t1 = t1 != null && index >= t1;
+ } else
+ t1 = true;
+ if (t1)
+ return _null;
+ child = null;
+ try {
+ child = this.builder.call$2(context, index);
+ } catch (exception0) {
+ exception = H.unwrapException(exception0);
+ stackTrace = H.getTraceFromException(exception0);
+ details = new U.FlutterErrorDetails(exception, stackTrace, "widgets library", U.ErrorDescription$("building"), _null, false);
+ t1 = $.$get$FlutterError_onError();
+ if (t1 != null)
+ t1.call$1(details);
+ child = N.ErrorWidget__defaultErrorWidgetBuilder(details);
+ }
+ if (child == null)
+ return _null;
+ if (child.key != null) {
+ t1 = child.key;
+ t1.toString;
+ key = new G._SaltedValueKey(t1);
+ } else
+ key = _null;
+ t1 = child;
+ child = new T.RepaintBoundary(t1, _null);
+ semanticIndex = G._kDefaultSemanticIndexCallback(child, index);
+ if (semanticIndex != null)
+ child = new T.IndexedSemantics(semanticIndex, child, _null);
+ t1 = child;
+ child = new L.AutomaticKeepAlive(t1, _null);
+ return new T.KeyedSubtree(child, key);
+ }
+ };
+ G.SliverWithKeepAliveWidget.prototype = {};
+ G.SliverMultiBoxAdaptorWidget.prototype = {
+ createElement$0: function(_) {
+ return G.SliverMultiBoxAdaptorElement$(this, false);
+ }
+ };
+ G.SliverList.prototype = {
+ createElement$0: function(_) {
+ return G.SliverMultiBoxAdaptorElement$(this, true);
+ },
+ createRenderObject$1: function(context) {
+ var t1 = new U.RenderSliverList(type$.SliverMultiBoxAdaptorElement._as(context), P.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.RenderBox), 0, null, null);
+ t1.get$isRepaintBoundary();
+ t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = false;
+ return t1;
+ }
+ };
+ G.SliverMultiBoxAdaptorElement.prototype = {
+ get$widget: function() {
+ return type$.SliverMultiBoxAdaptorWidget._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ },
+ get$renderObject: function() {
+ return type$.RenderSliverMultiBoxAdaptor._as(N.RenderObjectElement.prototype.get$renderObject.call(this));
+ },
+ update$1: function(_, newWidget) {
+ var newDelegate, oldDelegate, t1,
+ oldWidget = type$.SliverMultiBoxAdaptorWidget._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ this.super$RenderObjectElement$update(0, newWidget);
+ newDelegate = newWidget.delegate;
+ oldDelegate = oldWidget.delegate;
+ if (newDelegate !== oldDelegate) {
+ H.getRuntimeType(newDelegate);
+ H.getRuntimeType(oldDelegate);
+ t1 = true;
+ } else
+ t1 = false;
+ if (t1)
+ this.performRebuild$0();
+ },
+ performRebuild$0: function() {
+ var newChildren, indexToLayoutOffset, processElement, index, key, newIndex, childParentData, lastKey, rightBoundary, t1, t2, t3, t4, t5, t6, _i, t7, lastKey0, _this = this;
+ _this.super$RenderObjectElement$performRebuild();
+ _this._currentBeforeChild = null;
+ try {
+ t1 = type$.int;
+ newChildren = P.SplayTreeMap$(t1, type$.nullable_Element);
+ indexToLayoutOffset = P.HashMap_HashMap(t1, type$.double);
+ processElement = new G.SliverMultiBoxAdaptorElement_performRebuild_processElement(_this, newChildren, indexToLayoutOffset);
+ for (t1 = _this._childElements, t2 = t1.$ti, t2 = t2._eval$1("@<1>")._bind$1(t2._eval$1("_SplayTreeMapNode<1,2>"))._eval$1("_SplayTreeKeyIterable<1,2>"), t2 = P.List_List$of(new P._SplayTreeKeyIterable(t1, t2), true, t2._eval$1("Iterable.E")), t3 = t2.length, t4 = type$.nullable_SliverMultiBoxAdaptorParentData, t5 = type$.SliverMultiBoxAdaptorWidget, t6 = _this._replaceMovedChildren, _i = 0; _i < t3; ++_i) {
+ index = t2[_i];
+ key = t1.$index(0, index).get$widget().key;
+ newIndex = key == null ? null : t5._as(N.RenderObjectElement.prototype.get$widget.call(_this)).delegate.findIndexByKey$1(key);
+ t7 = t1.$index(0, index).get$renderObject();
+ childParentData = t4._as(t7 == null ? null : t7.parentData);
+ if (childParentData != null && childParentData.layoutOffset != null) {
+ t7 = childParentData.layoutOffset;
+ t7.toString;
+ J.$indexSet$ax(indexToLayoutOffset, index, t7);
+ }
+ if (newIndex != null && !J.$eq$(newIndex, index)) {
+ if (childParentData != null)
+ childParentData.layoutOffset = null;
+ J.$indexSet$ax(newChildren, newIndex, t1.$index(0, index));
+ if (t6)
+ J.putIfAbsent$2$x(newChildren, index, new G.SliverMultiBoxAdaptorElement_performRebuild_closure());
+ t1.remove$1(0, index);
+ } else
+ J.putIfAbsent$2$x(newChildren, index, new G.SliverMultiBoxAdaptorElement_performRebuild_closure0(_this, index));
+ }
+ type$.RenderSliverMultiBoxAdaptor._as(N.RenderObjectElement.prototype.get$renderObject.call(_this)).toString;
+ t2 = newChildren;
+ t3 = H.instanceType(t2);
+ new P._SplayTreeKeyIterable(t2, t3._eval$1("@<1>")._bind$1(t3._eval$1("_SplayTreeMapNode<1,2>"))._eval$1("_SplayTreeKeyIterable<1,2>")).forEach$1(0, processElement);
+ if (_this._didUnderflow) {
+ lastKey0 = t1.lastKey$0();
+ lastKey = lastKey0 == null ? -1 : lastKey0;
+ rightBoundary = lastKey + 1;
+ J.$indexSet$ax(newChildren, rightBoundary, t1.$index(0, rightBoundary));
+ processElement.call$1(rightBoundary);
+ }
+ } finally {
+ _this._currentlyUpdatingChildIndex = null;
+ type$.RenderSliverMultiBoxAdaptor._as(N.RenderObjectElement.prototype.get$renderObject.call(_this)).toString;
+ }
+ },
+ createChild$2$after: function(index, after) {
+ this._owner.buildScope$2(this, new G.SliverMultiBoxAdaptorElement_createChild_closure(this, after, index));
+ },
+ updateChild$3: function(child, newWidget, newSlot) {
+ var t1, t2, newChild, t3, _null = null;
+ if (child == null)
+ t1 = _null;
+ else {
+ t1 = child.get$renderObject();
+ t1 = t1 == null ? _null : t1.parentData;
+ }
+ t2 = type$.nullable_SliverMultiBoxAdaptorParentData;
+ t2._as(t1);
+ newChild = this.super$Element$updateChild(child, newWidget, newSlot);
+ if (newChild == null)
+ t3 = _null;
+ else {
+ t3 = newChild.get$renderObject();
+ t3 = t3 == null ? _null : t3.parentData;
+ }
+ t2._as(t3);
+ if (t1 != t3 && t1 != null && t3 != null)
+ t3.layoutOffset = t1.layoutOffset;
+ return newChild;
+ },
+ forgetChild$1: function(child) {
+ this._childElements.remove$1(0, child._slot);
+ this.super$Element$forgetChild(child);
+ },
+ removeChild$1: function(child) {
+ var t1, _this = this;
+ type$.RenderSliverMultiBoxAdaptor._as(N.RenderObjectElement.prototype.get$renderObject.call(_this)).toString;
+ t1 = child.parentData;
+ t1.toString;
+ t1 = type$.SliverMultiBoxAdaptorParentData._as(t1).index;
+ t1.toString;
+ _this._owner.buildScope$2(_this, new G.SliverMultiBoxAdaptorElement_removeChild_closure(_this, t1));
+ },
+ estimateMaxScrollOffset$5$firstIndex$lastIndex$leadingScrollOffset$trailingScrollOffset: function(constraints, firstIndex, lastIndex, leadingScrollOffset, trailingScrollOffset) {
+ var t1 = type$.SliverMultiBoxAdaptorWidget,
+ childCount = t1._as(N.RenderObjectElement.prototype.get$widget.call(this)).delegate.childCount;
+ if (childCount == null)
+ return 1 / 0;
+ t1 = t1._as(N.RenderObjectElement.prototype.get$widget.call(this));
+ firstIndex.toString;
+ lastIndex.toString;
+ leadingScrollOffset.toString;
+ t1.toString;
+ t1 = G.SliverMultiBoxAdaptorElement__extrapolateMaxScrollOffset(firstIndex, lastIndex, leadingScrollOffset, trailingScrollOffset, childCount);
+ return t1;
+ },
+ didFinishLayout$0: function() {
+ var t1 = this._childElements;
+ t1.firstKey$0();
+ t1.lastKey$0();
+ type$.SliverMultiBoxAdaptorWidget._as(N.RenderObjectElement.prototype.get$widget.call(this)).toString;
+ },
+ insertRenderObjectChild$2: function(child, slot) {
+ var t2,
+ t1 = type$.RenderSliverMultiBoxAdaptor._as(N.RenderObjectElement.prototype.get$renderObject.call(this));
+ type$.RenderBox._as(child);
+ t2 = this._currentBeforeChild;
+ t1.toString;
+ t1.super$ContainerRenderObjectMixin$insert(0, child, t2);
+ },
+ moveRenderObjectChild$3: function(child, oldSlot, newSlot) {
+ type$.RenderSliverMultiBoxAdaptor._as(N.RenderObjectElement.prototype.get$renderObject.call(this)).move$2$after(type$.RenderBox._as(child), this._currentBeforeChild);
+ },
+ removeRenderObjectChild$2: function(child, slot) {
+ type$.RenderSliverMultiBoxAdaptor._as(N.RenderObjectElement.prototype.get$renderObject.call(this)).remove$1(0, type$.RenderBox._as(child));
+ },
+ visitChildren$1: function(visitor) {
+ var t1 = this._childElements,
+ t2 = t1.$ti;
+ t2 = t2._eval$1("@<1>")._bind$1(t2._rest[1])._eval$1("_SplayTreeValueIterable<1,2>");
+ t2 = H.CastIterable_CastIterable(new P._SplayTreeValueIterable(t1, t2), t2._eval$1("Iterable.E"), type$.Element_2);
+ C.JSArray_methods.forEach$1(P.List_List$of(t2, true, H._instanceType(t2)._eval$1("Iterable.E")), visitor);
+ }
+ };
+ G.SliverMultiBoxAdaptorElement_performRebuild_processElement.prototype = {
+ call$1: function(index) {
+ var newChild, parentData, t2, _this = this,
+ t1 = _this.$this;
+ t1._currentlyUpdatingChildIndex = index;
+ t2 = t1._childElements;
+ if (t2.$index(0, index) != null && !J.$eq$(t2.$index(0, index), _this.newChildren.$index(0, index)))
+ t2.$indexSet(0, index, t1.updateChild$3(t2.$index(0, index), null, index));
+ newChild = t1.updateChild$3(_this.newChildren.$index(0, index), type$.SliverMultiBoxAdaptorWidget._as(N.RenderObjectElement.prototype.get$widget.call(t1)).delegate.build$2(0, t1, index), index);
+ if (newChild != null) {
+ t2.$indexSet(0, index, newChild);
+ t2 = newChild.get$renderObject().parentData;
+ t2.toString;
+ parentData = type$.SliverMultiBoxAdaptorParentData._as(t2);
+ if (index === 0)
+ parentData.layoutOffset = 0;
+ else {
+ t2 = _this.indexToLayoutOffset;
+ if (t2.containsKey$1(0, index))
+ parentData.layoutOffset = t2.$index(0, index);
+ }
+ if (!parentData._keptAlive)
+ t1._currentBeforeChild = type$.nullable_RenderBox._as(newChild.get$renderObject());
+ } else
+ t2.remove$1(0, index);
+ },
+ $signature: 36
+ };
+ G.SliverMultiBoxAdaptorElement_performRebuild_closure.prototype = {
+ call$0: function() {
+ return null;
+ },
+ $signature: 2
+ };
+ G.SliverMultiBoxAdaptorElement_performRebuild_closure0.prototype = {
+ call$0: function() {
+ return this.$this._childElements.$index(0, this.index);
+ },
+ $signature: 327
+ };
+ G.SliverMultiBoxAdaptorElement_createChild_closure.prototype = {
+ call$0: function() {
+ var newChild, t2, _this = this,
+ t1 = _this.$this;
+ t1._currentBeforeChild = _this.after == null ? null : type$.nullable_RenderBox._as(t1._childElements.$index(0, _this.index - 1).get$renderObject());
+ newChild = null;
+ try {
+ t2 = t1._currentlyUpdatingChildIndex = _this.index;
+ newChild = t1.updateChild$3(t1._childElements.$index(0, t2), type$.SliverMultiBoxAdaptorWidget._as(N.RenderObjectElement.prototype.get$widget.call(t1)).delegate.build$2(0, t1, t2), t2);
+ } finally {
+ t1._currentlyUpdatingChildIndex = null;
+ }
+ t2 = _this.index;
+ t1 = t1._childElements;
+ if (newChild != null)
+ t1.$indexSet(0, t2, newChild);
+ else
+ t1.remove$1(0, t2);
+ },
+ $signature: 0
+ };
+ G.SliverMultiBoxAdaptorElement_removeChild_closure.prototype = {
+ call$0: function() {
+ var result, t1, t2, _this = this;
+ try {
+ t1 = _this.$this;
+ t2 = t1._currentlyUpdatingChildIndex = _this.index;
+ result = t1.updateChild$3(t1._childElements.$index(0, t2), null, t2);
+ } finally {
+ _this.$this._currentlyUpdatingChildIndex = null;
+ }
+ _this.$this._childElements.remove$1(0, _this.index);
+ },
+ $signature: 0
+ };
+ G.KeepAlive.prototype = {
+ applyParentData$1: function(renderObject) {
+ var t2, targetParent,
+ t1 = renderObject.parentData;
+ t1.toString;
+ type$.KeepAliveParentDataMixin._as(t1);
+ t2 = this.keepAlive;
+ if (t1.KeepAliveParentDataMixin_keepAlive !== t2) {
+ t1.KeepAliveParentDataMixin_keepAlive = t2;
+ targetParent = renderObject._node$_parent;
+ if (targetParent instanceof K.RenderObject && !t2)
+ targetParent.markNeedsLayout$0();
+ }
+ }
+ };
+ L.DefaultTextStyle.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ var t1, _this = this;
+ if (J.$eq$(_this.style, oldWidget.style))
+ if (_this.softWrap === oldWidget.softWrap)
+ if (_this.overflow === oldWidget.overflow)
+ t1 = _this.textWidthBasis !== oldWidget.textWidthBasis || false;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ else
+ t1 = true;
+ return t1;
+ },
+ wrap$2: function(_, context, child) {
+ var _this = this;
+ return L.DefaultTextStyle$(child, null, _this.maxLines, _this.overflow, _this.softWrap, _this.style, _this.textAlign, _this.textHeightBehavior, _this.textWidthBasis);
+ }
+ };
+ L._NullWidget1.prototype = {
+ build$1: function(_, context) {
+ throw H.wrapException(U.FlutterError_FlutterError("A DefaultTextStyle constructed with DefaultTextStyle.fallback cannot be incorporated into the widget tree, it is meant only to provide a fallback value returned by DefaultTextStyle.of() when no enclosing default text style is present in a BuildContext."));
+ }
+ };
+ L.Text.prototype = {
+ build$1: function(_, context) {
+ var t1, t2, t3, t4, t5, result, _this = this, _null = null,
+ defaultTextStyle = L.DefaultTextStyle_of(context),
+ effectiveTextStyle = _this.style;
+ if (effectiveTextStyle == null || effectiveTextStyle.inherit)
+ effectiveTextStyle = defaultTextStyle.style.merge$1(effectiveTextStyle);
+ t1 = F.MediaQuery_maybeOf(context);
+ t1 = t1 == null ? _null : t1.boldText;
+ if (t1 === true)
+ effectiveTextStyle = effectiveTextStyle.merge$1(C.TextStyle_GVa);
+ t1 = _this.textAlign;
+ if (t1 == null)
+ t1 = defaultTextStyle.textAlign;
+ if (t1 == null)
+ t1 = C.TextAlign_4;
+ t2 = _this.overflow;
+ if (t2 == null)
+ t2 = defaultTextStyle.overflow;
+ t3 = F.MediaQuery_textScaleFactorOf(context);
+ t4 = _this.maxLines;
+ if (t4 == null)
+ t4 = defaultTextStyle.maxLines;
+ t5 = L.DefaultTextHeightBehavior_of(context);
+ result = T.RichText$(_null, t4, t2, defaultTextStyle.softWrap, _null, new Q.TextSpan(_this.data, _null, effectiveTextStyle), t1, _null, t5, t3, defaultTextStyle.textWidthBasis);
+ t1 = _this.semanticsLabel;
+ return t1 != null ? T.Semantics$(_null, new T.ExcludeSemantics(true, result, _null), false, _null, _null, false, _null, _null, _null, t1, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null) : result;
+ }
+ };
+ F.TextSelectionHandleType.prototype = {
+ toString$0: function(_) {
+ return this._text_selection$_name;
+ }
+ };
+ F._TextSelectionHandlePosition.prototype = {
+ toString$0: function(_) {
+ return this._text_selection$_name;
+ }
+ };
+ F.TextSelectionControls.prototype = {
+ handleCut$1: function(delegate) {
+ var t3,
+ t1 = delegate._widget.controller._change_notifier$_value,
+ t2 = t1.selection;
+ t1 = t1.text;
+ t3 = t2.start;
+ t2 = t2.end;
+ T.Clipboard_setData(new T.ClipboardData(J.getInterceptor$s(t1).substring$2(t1, t3, t2)));
+ delegate.set$textEditingValue(new N.TextEditingValue(C.JSString_methods.substring$2(t1, 0, t3) + C.JSString_methods.substring$1(t1, t2), X.TextSelection$collapsed(C.TextAffinity_1, t3), C.TextRange_m1_m1));
+ t3 = delegate._widget.controller._change_notifier$_value.selection;
+ delegate.bringIntoView$1(new P.TextPosition(t3.extentOffset, t3.affinity));
+ delegate.hideToolbar$0();
+ },
+ handleCopy$2: function(delegate, clipboardStatus) {
+ var t3,
+ t1 = delegate._widget.controller._change_notifier$_value,
+ t2 = t1.selection;
+ t1 = t1.text;
+ t3 = t2.end;
+ T.Clipboard_setData(new T.ClipboardData(J.substring$2$s(t1, t2.start, t3)));
+ delegate.set$textEditingValue(new N.TextEditingValue(t1, X.TextSelection$collapsed(C.TextAffinity_1, t3), C.TextRange_m1_m1));
+ t1 = delegate._widget.controller._change_notifier$_value.selection;
+ delegate.bringIntoView$1(new P.TextPosition(t1.extentOffset, t1.affinity));
+ delegate.hideToolbar$0();
+ },
+ handlePaste$1: function(delegate) {
+ return this.handlePaste$body$TextSelectionControls(delegate);
+ },
+ handlePaste$body$TextSelectionControls: function(delegate) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ t2, t3, t4, t5, t1, data;
+ var $async$handlePaste$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = delegate._widget.controller._change_notifier$_value;
+ $async$goto = 2;
+ return P._asyncAwait(T.Clipboard_getData("text/plain"), $async$handlePaste$1);
+ case 2:
+ // returning from await.
+ data = $async$result;
+ if (data != null) {
+ t2 = t1.selection;
+ t1 = t1.text;
+ t3 = t2.start;
+ t4 = J.getInterceptor$s(t1).substring$2(t1, 0, t3);
+ t5 = data.text;
+ t5.toString;
+ delegate.set$textEditingValue(new N.TextEditingValue(t4 + t5 + C.JSString_methods.substring$1(t1, t2.end), X.TextSelection$collapsed(C.TextAffinity_1, t3 + t5.length), C.TextRange_m1_m1));
+ }
+ t1 = delegate._widget.controller._change_notifier$_value.selection;
+ delegate.bringIntoView$1(new P.TextPosition(t1.extentOffset, t1.affinity));
+ delegate.hideToolbar$0();
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$handlePaste$1, $async$completer);
+ }
+ };
+ F.TextSelectionOverlay.prototype = {
+ get$_toolbarController: function() {
+ return this.__TextSelectionOverlay__toolbarController_isSet ? this.__TextSelectionOverlay__toolbarController : H.throwExpression(H.LateError$fieldNI("_toolbarController"));
+ },
+ set$handlesVisible: function(visible) {
+ var t1, _this = this;
+ if (_this._handlesVisible === visible)
+ return;
+ _this._handlesVisible = visible;
+ t1 = $.SchedulerBinding__instance;
+ if (t1.SchedulerBinding__schedulerPhase === C.SchedulerPhase_3)
+ t1.SchedulerBinding__postFrameCallbacks.push(_this.get$_text_selection$_markNeedsBuild());
+ else
+ _this._text_selection$_markNeedsBuild$0();
+ },
+ showHandles$0: function() {
+ var result, t1, _this = this;
+ _this._text_selection$_handles = H.setRuntimeTypeInfo([X.OverlayEntry$(new F.TextSelectionOverlay_showHandles_closure(_this), false), X.OverlayEntry$(new F.TextSelectionOverlay_showHandles_closure0(_this), false)], type$.JSArray_OverlayEntry);
+ result = _this.context.findRootAncestorStateOfType$1$0(type$.OverlayState);
+ result.toString;
+ t1 = _this._text_selection$_handles;
+ t1.toString;
+ result.insertAll$1(0, t1);
+ },
+ update$1: function(_, newValue) {
+ var t1, _this = this;
+ if (J.$eq$(_this._text_selection$_value, newValue))
+ return;
+ _this._text_selection$_value = newValue;
+ t1 = $.SchedulerBinding__instance;
+ if (t1.SchedulerBinding__schedulerPhase === C.SchedulerPhase_3)
+ t1.SchedulerBinding__postFrameCallbacks.push(_this.get$_text_selection$_markNeedsBuild());
+ else
+ _this._text_selection$_markNeedsBuild$0();
+ },
+ _text_selection$_markNeedsBuild$1: function(duration) {
+ var t1 = this._text_selection$_handles;
+ if (t1 != null) {
+ t1[0].markNeedsBuild$0();
+ this._text_selection$_handles[1].markNeedsBuild$0();
+ }
+ t1 = this._toolbar;
+ if (t1 != null)
+ t1.markNeedsBuild$0();
+ },
+ _text_selection$_markNeedsBuild$0: function() {
+ return this._text_selection$_markNeedsBuild$1(null);
+ },
+ hide$0: function() {
+ var _this = this,
+ t1 = _this._text_selection$_handles;
+ if (t1 != null) {
+ J.remove$0$ax(t1[0]);
+ J.remove$0$ax(_this._text_selection$_handles[1]);
+ _this._text_selection$_handles = null;
+ }
+ if (_this._toolbar != null) {
+ _this.get$_toolbarController().stop$0(0);
+ _this._toolbar.remove$0(0);
+ _this._toolbar = null;
+ }
+ },
+ _buildHandle$2: function(context, position) {
+ var _this = this, _null = null,
+ t1 = _this._text_selection$_value.selection;
+ if (t1.start == t1.end && position === C._TextSelectionHandlePosition_1 || _this.selectionControls == null)
+ return M.Container$(_null, _null, _null, _null, _null, _null, _null, _null, _null);
+ return new L.Visibility(new F._TextSelectionHandleOverlay(t1, position, _this.startHandleLayerLink, _this.endHandleLayerLink, _this.renderObject, new F.TextSelectionOverlay__buildHandle_closure(_this, position), _this.onSelectionHandleTapped, _this.selectionControls, _this.dragStartBehavior, _null), _this._handlesVisible, _null);
+ }
+ };
+ F.TextSelectionOverlay_showHandles_closure.prototype = {
+ call$1: function(context) {
+ return this.$this._buildHandle$2(context, C._TextSelectionHandlePosition_0);
+ },
+ $signature: 21
+ };
+ F.TextSelectionOverlay_showHandles_closure0.prototype = {
+ call$1: function(context) {
+ return this.$this._buildHandle$2(context, C._TextSelectionHandlePosition_1);
+ },
+ $signature: 21
+ };
+ F.TextSelectionOverlay__buildHandle_closure.prototype = {
+ call$1: function(newSelection) {
+ var textPosition, t2,
+ t1 = this.$this;
+ switch (this.position) {
+ case C._TextSelectionHandlePosition_0:
+ textPosition = new P.TextPosition(newSelection.baseOffset, newSelection.affinity);
+ break;
+ case C._TextSelectionHandlePosition_1:
+ textPosition = new P.TextPosition(newSelection.extentOffset, newSelection.affinity);
+ break;
+ default:
+ H.throwExpression(H.ReachabilityError$(string$.x60null_c));
+ textPosition = null;
+ }
+ t2 = t1.selectionDelegate;
+ t2.set$textEditingValue(t1._text_selection$_value.copyWith$2$composing$selection(C.TextRange_m1_m1, newSelection));
+ t2.bringIntoView$1(textPosition);
+ },
+ $signature: 90
+ };
+ F._TextSelectionHandleOverlay.prototype = {
+ createState$0: function() {
+ return new F._TextSelectionHandleOverlayState(null, C._StateLifecycle_0);
+ },
+ get$_visibility: function(_) {
+ switch (this.position) {
+ case C._TextSelectionHandlePosition_0:
+ return this.renderObject._selectionStartInViewport;
+ case C._TextSelectionHandlePosition_1:
+ return this.renderObject._selectionEndInViewport;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ },
+ onSelectionHandleChanged$1: function(arg0) {
+ return this.onSelectionHandleChanged.call$1(arg0);
+ }
+ };
+ F._TextSelectionHandleOverlayState.prototype = {
+ get$_dragPosition: function() {
+ return this.___TextSelectionHandleOverlayState__dragPosition_isSet ? this.___TextSelectionHandleOverlayState__dragPosition : H.throwExpression(H.LateError$fieldNI("_dragPosition"));
+ },
+ get$_text_selection$_controller: function() {
+ return this.___TextSelectionHandleOverlayState__controller_isSet ? this.___TextSelectionHandleOverlayState__controller : H.throwExpression(H.LateError$fieldNI("_controller"));
+ },
+ initState$0: function() {
+ var t1, _this = this;
+ _this.super$State$initState();
+ t1 = G.AnimationController$(null, C.Duration_150000, 0, null, 1, null, _this);
+ _this.___TextSelectionHandleOverlayState__controller_isSet = true;
+ _this.___TextSelectionHandleOverlayState__controller = t1;
+ _this._handleVisibilityChanged$0();
+ t1 = _this._widget;
+ t1 = t1.get$_visibility(t1).ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(_this.get$_handleVisibilityChanged()), false);
+ },
+ _handleVisibilityChanged$0: function() {
+ var t1 = this._widget;
+ if (t1.get$_visibility(t1)._change_notifier$_value)
+ this.get$_text_selection$_controller().forward$0(0);
+ else
+ this.get$_text_selection$_controller().reverse$0(0);
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, t2, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ t1 = _this.get$_handleVisibilityChanged();
+ oldWidget.get$_visibility(oldWidget).removeListener$1(0, t1);
+ _this._handleVisibilityChanged$0();
+ t2 = _this._widget;
+ t2 = t2.get$_visibility(t2).ChangeNotifier__listeners;
+ t2._insertBefore$3$updateFirst(t2._collection$_first, new B._ListenerEntry(t1), false);
+ },
+ dispose$0: function(_) {
+ var _this = this,
+ t1 = _this._widget;
+ t1.get$_visibility(t1).removeListener$1(0, _this.get$_handleVisibilityChanged());
+ _this.get$_text_selection$_controller().dispose$0(0);
+ _this.super$__TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin$dispose(0);
+ },
+ _text_selection$_handleDragStart$1: function(details) {
+ var t1 = this._widget,
+ t2 = t1.selectionControls;
+ t2.toString;
+ t1 = details.globalPosition.$add(0, new P.Offset(0, -t2.getHandleSize$1(t1.renderObject._editable$_textPainter.get$preferredLineHeight())._dy));
+ this.___TextSelectionHandleOverlayState__dragPosition_isSet = true;
+ this.___TextSelectionHandleOverlayState__dragPosition = t1;
+ },
+ _text_selection$_handleDragUpdate$1: function(details) {
+ var position, t2, newSelection, _this = this,
+ t1 = _this.get$_dragPosition().$add(0, details.delta);
+ _this.___TextSelectionHandleOverlayState__dragPosition_isSet = true;
+ _this.___TextSelectionHandleOverlayState__dragPosition = t1;
+ position = _this._widget.renderObject.getPositionForPoint$1(_this.get$_dragPosition());
+ t1 = _this._widget;
+ t2 = t1.selection;
+ if (t2.start == t2.end) {
+ t1.onSelectionHandleChanged$1(X.TextSelection$fromPosition(position));
+ return;
+ }
+ switch (t1.position) {
+ case C._TextSelectionHandlePosition_0:
+ newSelection = X.TextSelection$(C.TextAffinity_1, position.offset, t2.extentOffset, false);
+ break;
+ case C._TextSelectionHandlePosition_1:
+ newSelection = X.TextSelection$(C.TextAffinity_1, t2.baseOffset, position.offset, false);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ if (newSelection.baseOffset >= newSelection.extentOffset)
+ return;
+ t1.onSelectionHandleChanged$1(newSelection);
+ },
+ _text_selection$_handleTap$0: function() {
+ this._widget.onSelectionHandleTapped.call$0();
+ },
+ build$1: function(_, context) {
+ var layerLink, type, t2, handleAnchor, handleSize, t3, t4, handleRect, interactiveRect, t5, t6, t7, t8, t9, t10, _this = this, _null = null,
+ t1 = _this._widget;
+ switch (t1.position) {
+ case C._TextSelectionHandlePosition_0:
+ layerLink = t1.startHandleLayerLink;
+ t1 = t1.renderObject._editable$_textPainter._text_painter$_textDirection;
+ t1.toString;
+ type = _this._chooseType$3(t1, C.TextSelectionHandleType_0, C.TextSelectionHandleType_1);
+ break;
+ case C._TextSelectionHandlePosition_1:
+ layerLink = t1.endHandleLayerLink;
+ t1 = t1.renderObject._editable$_textPainter._text_painter$_textDirection;
+ t1.toString;
+ type = _this._chooseType$3(t1, C.TextSelectionHandleType_1, C.TextSelectionHandleType_0);
+ break;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ t1 = _this._widget;
+ t2 = t1.selectionControls;
+ t2.toString;
+ handleAnchor = t2.getHandleAnchor$2(type, t1.renderObject._editable$_textPainter.get$preferredLineHeight());
+ t1 = _this._widget;
+ t2 = t1.selectionControls;
+ t2.toString;
+ handleSize = t2.getHandleSize$1(t1.renderObject._editable$_textPainter.get$preferredLineHeight());
+ t1 = -handleAnchor._dx;
+ t2 = -handleAnchor._dy;
+ t3 = t1 + handleSize._dx;
+ t4 = t2 + handleSize._dy;
+ handleRect = new P.Rect(t1, t2, t3, t4);
+ interactiveRect = handleRect.expandToInclude$1(P.Rect$fromCircle(handleRect.get$center(), 24));
+ t5 = interactiveRect.left;
+ t6 = interactiveRect.right - t5;
+ t1 = Math.max((t6 - (t3 - t1)) / 2, 0);
+ t3 = interactiveRect.top;
+ t7 = interactiveRect.bottom - t3;
+ t2 = Math.max((t7 - (t4 - t2)) / 2, 0);
+ t4 = _this.get$_text_selection$_controller();
+ t4.toString;
+ t8 = _this._widget;
+ t9 = t8.dragStartBehavior;
+ t10 = t8.selectionControls;
+ t10.toString;
+ return T.CompositedTransformFollower$(K.FadeTransition$(false, M.Container$(C.Alignment_m1_m1, D.GestureDetector$(C.HitTestBehavior_2, new T.Padding(new V.EdgeInsets(t1, t2, t1, t2), t10.buildHandle$3(context, type, t8.renderObject._editable$_textPainter.get$preferredLineHeight()), _null), t9, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _this.get$_text_selection$_handleDragStart(), _this.get$_text_selection$_handleDragUpdate(), _this.get$_text_selection$_handleTap(), _null, _null, _null, _null, _null, _null), _null, _null, _null, t7, _null, _null, t6), t4), layerLink, new P.Offset(t5, t3), false);
+ },
+ _chooseType$3: function(textDirection, ltrType, rtlType) {
+ var t1 = this._widget.selection;
+ if (t1.start == t1.end)
+ return C.TextSelectionHandleType_2;
+ switch (textDirection) {
+ case C.TextDirection_1:
+ return ltrType;
+ case C.TextDirection_0:
+ return rtlType;
+ default:
+ throw H.wrapException(H.ReachabilityError$(string$.x60null_c));
+ }
+ }
+ };
+ F.TextSelectionGestureDetectorBuilder.prototype = {
+ onTapDown$1: function(details) {
+ var kind,
+ t1 = this.delegate.editableTextKey.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1)._lastTapDownPosition = details.globalPosition;
+ kind = details.kind;
+ this._shouldShowSelectionToolbar = kind == null || kind === C.PointerDeviceKind_0 || kind === C.PointerDeviceKind_2;
+ },
+ onForcePressStart$1: function(details) {
+ var t1;
+ this._shouldShowSelectionToolbar = true;
+ t1 = this.delegate;
+ t1._widget.toString;
+ t1 = t1.editableTextKey.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1).selectWordsInRange$2$cause$from(C.SelectionChangedCause_3, details.globalPosition);
+ },
+ onSingleTapCancel$0: function() {
+ },
+ onSingleLongTapEnd$1: function(details) {
+ var t1;
+ if (this._shouldShowSelectionToolbar) {
+ t1 = this.delegate.editableTextKey.get$currentState();
+ t1.toString;
+ t1.showToolbar$0();
+ }
+ },
+ onDoubleTapDown$1: function(details) {
+ var t2, t3,
+ t1 = this.delegate;
+ t1._widget.toString;
+ t1 = t1.editableTextKey;
+ t2 = t1.get$currentState();
+ t2.toString;
+ t2 = $.GlobalKey__registry.$index(0, t2._editableKey).get$renderObject();
+ t2.toString;
+ type$.RenderEditable._as(t2);
+ t3 = t2._lastTapDownPosition;
+ t3.toString;
+ t2.selectWordsInRange$2$cause$from(C.SelectionChangedCause_0, t3);
+ if (this._shouldShowSelectionToolbar) {
+ t1 = t1.get$currentState();
+ t1.toString;
+ t1.showToolbar$0();
+ }
+ },
+ onDragSelectionStart$1: function(details) {
+ var t1,
+ kind = details.kind;
+ this._shouldShowSelectionToolbar = kind == null || kind === C.PointerDeviceKind_0 || kind === C.PointerDeviceKind_2;
+ t1 = this.delegate.editableTextKey.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1).selectPositionAt$2$cause$from(C.SelectionChangedCause_5, details.globalPosition);
+ },
+ onDragSelectionUpdate$2: function(startDetails, updateDetails) {
+ var t1 = this.delegate.editableTextKey.get$currentState();
+ t1.toString;
+ t1 = $.GlobalKey__registry.$index(0, t1._editableKey).get$renderObject();
+ t1.toString;
+ type$.RenderEditable._as(t1).selectPositionAt$3$cause$from$to(C.SelectionChangedCause_5, startDetails.globalPosition, updateDetails.globalPosition);
+ },
+ onDragSelectionEnd$1: function(details) {
+ }
+ };
+ F.TextSelectionGestureDetector.prototype = {
+ createState$0: function() {
+ return new F._TextSelectionGestureDetectorState(C._StateLifecycle_0);
+ }
+ };
+ F._TextSelectionGestureDetectorState.prototype = {
+ dispose$0: function(_) {
+ var t1 = this._text_selection$_doubleTapTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ t1 = this._dragUpdateThrottleTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ this.super$State$dispose(0);
+ },
+ _text_selection$_handleTapDown$1: function(details) {
+ var _this = this;
+ _this._widget.onTapDown.call$1(details);
+ if (_this._text_selection$_doubleTapTimer != null && _this._isWithinDoubleTapTolerance$1(details.globalPosition)) {
+ _this._widget.onDoubleTapDown.call$1(details);
+ _this._text_selection$_doubleTapTimer.cancel$0(0);
+ _this._lastTapOffset = _this._text_selection$_doubleTapTimer = null;
+ _this._isDoubleTap = true;
+ }
+ },
+ _handleTapUp$1: function(details) {
+ var _this = this;
+ if (!_this._isDoubleTap) {
+ _this._widget.onSingleTapUp.call$1(details);
+ _this._lastTapOffset = details.globalPosition;
+ _this._text_selection$_doubleTapTimer = P.Timer_Timer(C.Duration_300000, _this.get$_doubleTapTimeout());
+ }
+ _this._isDoubleTap = false;
+ },
+ _text_selection$_handleTapCancel$0: function() {
+ this._widget.onSingleTapCancel.call$0();
+ },
+ _text_selection$_handleDragStart$1: function(details) {
+ this._lastDragStartDetails = details;
+ this._widget.onDragSelectionStart.call$1(details);
+ },
+ _text_selection$_handleDragUpdate$1: function(details) {
+ var _this = this;
+ _this._lastDragUpdateDetails = details;
+ if (_this._dragUpdateThrottleTimer == null)
+ _this._dragUpdateThrottleTimer = P.Timer_Timer(C.Duration_50000, _this.get$_handleDragUpdateThrottled());
+ },
+ _handleDragUpdateThrottled$0: function() {
+ var t3, _this = this,
+ t1 = _this._widget.onDragSelectionUpdate,
+ t2 = _this._lastDragStartDetails;
+ t2.toString;
+ t3 = _this._lastDragUpdateDetails;
+ t3.toString;
+ t1.call$2(t2, t3);
+ _this._lastDragUpdateDetails = _this._dragUpdateThrottleTimer = null;
+ },
+ _text_selection$_handleDragEnd$1: function(details) {
+ var _this = this,
+ t1 = _this._dragUpdateThrottleTimer;
+ if (t1 != null) {
+ t1.cancel$0(0);
+ _this._handleDragUpdateThrottled$0();
+ }
+ _this._widget.onDragSelectionEnd.call$1(details);
+ _this._lastDragUpdateDetails = _this._lastDragStartDetails = _this._dragUpdateThrottleTimer = null;
+ },
+ _forcePressStarted$1: function(details) {
+ var t1 = this._text_selection$_doubleTapTimer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ this._text_selection$_doubleTapTimer = null;
+ t1 = this._widget.onForcePressStart;
+ if (t1 != null)
+ t1.call$1(details);
+ },
+ _forcePressEnded$1: function(details) {
+ var t1 = this._widget.onForcePressEnd;
+ if (t1 != null)
+ t1.call$1(details);
+ },
+ _handleLongPressStart$1: function(details) {
+ var t1;
+ if (!this._isDoubleTap) {
+ this._widget.toString;
+ t1 = true;
+ } else
+ t1 = false;
+ if (t1)
+ this._widget.onSingleLongTapStart.call$1(details);
+ },
+ _handleLongPressMoveUpdate$1: function(details) {
+ var t1;
+ if (!this._isDoubleTap) {
+ this._widget.toString;
+ t1 = true;
+ } else
+ t1 = false;
+ if (t1)
+ this._widget.onSingleLongTapMoveUpdate.call$1(details);
+ },
+ _handleLongPressEnd$1: function(details) {
+ var t1, _this = this;
+ if (!_this._isDoubleTap) {
+ _this._widget.toString;
+ t1 = true;
+ } else
+ t1 = false;
+ if (t1)
+ _this._widget.onSingleLongTapEnd.call$1(details);
+ _this._isDoubleTap = false;
+ },
+ _doubleTapTimeout$0: function() {
+ this._lastTapOffset = this._text_selection$_doubleTapTimer = null;
+ },
+ _isWithinDoubleTapTolerance$1: function(secondTapOffset) {
+ var t1 = this._lastTapOffset;
+ if (t1 == null)
+ return false;
+ return secondTapOffset.$sub(0, t1).get$distance() <= 100;
+ },
+ build$1: function(_, context) {
+ var t1, t2, _this = this,
+ gestures = P.LinkedHashMap_LinkedHashMap$_empty(type$.Type, type$.GestureRecognizerFactory_GestureRecognizer);
+ gestures.$indexSet(0, C.Type_D34, new D.GestureRecognizerFactoryWithHandlers(new F._TextSelectionGestureDetectorState_build_closure(_this), new F._TextSelectionGestureDetectorState_build_closure0(_this), type$.GestureRecognizerFactoryWithHandlers__TransparentTapGestureRecognizer));
+ _this._widget.toString;
+ gestures.$indexSet(0, C.Type_LongPressGestureRecognizer_46y, new D.GestureRecognizerFactoryWithHandlers(new F._TextSelectionGestureDetectorState_build_closure1(_this), new F._TextSelectionGestureDetectorState_build_closure2(_this), type$.GestureRecognizerFactoryWithHandlers_LongPressGestureRecognizer));
+ _this._widget.toString;
+ gestures.$indexSet(0, C.Type_Vq1, new D.GestureRecognizerFactoryWithHandlers(new F._TextSelectionGestureDetectorState_build_closure3(_this), new F._TextSelectionGestureDetectorState_build_closure4(_this), type$.GestureRecognizerFactoryWithHandlers_HorizontalDragGestureRecognizer));
+ t1 = _this._widget;
+ if (t1.onForcePressStart != null || t1.onForcePressEnd != null)
+ gestures.$indexSet(0, C.Type_ForcePressGestureRecognizer_TN2, new D.GestureRecognizerFactoryWithHandlers(new F._TextSelectionGestureDetectorState_build_closure5(_this), new F._TextSelectionGestureDetectorState_build_closure6(_this), type$.GestureRecognizerFactoryWithHandlers_ForcePressGestureRecognizer));
+ t1 = _this._widget;
+ t2 = t1.behavior;
+ return new D.RawGestureDetector(t1.child, gestures, t2, true, null, null);
+ }
+ };
+ F._TextSelectionGestureDetectorState_build_closure.prototype = {
+ call$0: function() {
+ var t1 = type$.int;
+ return new F._TransparentTapGestureRecognizer(C.Duration_100000, 18, C.GestureRecognizerState_0, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.GestureArenaEntry), P.HashSet_HashSet(t1), this.$this, null, P.LinkedHashMap_LinkedHashMap$_empty(t1, type$.PointerDeviceKind));
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 331
+ };
+ F._TextSelectionGestureDetectorState_build_closure0.prototype = {
+ call$1: function(instance) {
+ var t1 = this.$this;
+ instance.onTapDown = t1.get$_text_selection$_handleTapDown();
+ instance.onTapUp = t1.get$_handleTapUp();
+ instance.onTapCancel = t1.get$_text_selection$_handleTapCancel();
+ },
+ $signature: 332
+ };
+ F._TextSelectionGestureDetectorState_build_closure1.prototype = {
+ call$0: function() {
+ return T.LongPressGestureRecognizer$(this.$this, C.PointerDeviceKind_0);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 127
+ };
+ F._TextSelectionGestureDetectorState_build_closure2.prototype = {
+ call$1: function(instance) {
+ var t1 = this.$this;
+ instance.onLongPressStart = t1.get$_handleLongPressStart();
+ instance.onLongPressMoveUpdate = t1.get$_handleLongPressMoveUpdate();
+ instance.onLongPressEnd = t1.get$_handleLongPressEnd();
+ },
+ $signature: 126
+ };
+ F._TextSelectionGestureDetectorState_build_closure3.prototype = {
+ call$0: function() {
+ return O.HorizontalDragGestureRecognizer$(this.$this, C.PointerDeviceKind_1);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 78
+ };
+ F._TextSelectionGestureDetectorState_build_closure4.prototype = {
+ call$1: function(instance) {
+ var t1;
+ instance.dragStartBehavior = C.DragStartBehavior_0;
+ t1 = this.$this;
+ instance.onStart = t1.get$_text_selection$_handleDragStart();
+ instance.onUpdate = t1.get$_text_selection$_handleDragUpdate();
+ instance.onEnd = t1.get$_text_selection$_handleDragEnd();
+ },
+ $signature: 57
+ };
+ F._TextSelectionGestureDetectorState_build_closure5.prototype = {
+ call$0: function() {
+ return K.ForcePressGestureRecognizer$(this.$this);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 333
+ };
+ F._TextSelectionGestureDetectorState_build_closure6.prototype = {
+ call$1: function(instance) {
+ var t1 = this.$this,
+ t2 = t1._widget;
+ instance.onStart = t2.onForcePressStart != null ? t1.get$_forcePressStarted() : null;
+ instance.onEnd = t2.onForcePressEnd != null ? t1.get$_forcePressEnded() : null;
+ },
+ $signature: 334
+ };
+ F._TransparentTapGestureRecognizer.prototype = {
+ rejectGesture$1: function(pointer) {
+ if (this.state === C.GestureRecognizerState_0)
+ this.acceptGesture$1(pointer);
+ else
+ this.super$BaseTapGestureRecognizer$rejectGesture(pointer);
+ }
+ };
+ F.__TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin.prototype = {
+ dispose$0: function(_) {
+ this.super$State$dispose(0);
+ },
+ didChangeDependencies$0: function() {
+ var t2,
+ t1 = this.SingleTickerProviderStateMixin__ticker;
+ if (t1 != null) {
+ t2 = this._framework$_element;
+ t2.toString;
+ t1.set$muted(0, !U.TickerMode_of(t2));
+ }
+ this.super$State$didChangeDependencies();
+ }
+ };
+ U.TickerMode.prototype = {
+ build$1: function(_, context) {
+ var t1 = this.enabled && U.TickerMode_of(context);
+ return new U._EffectiveTickerMode(t1, this.child, null);
+ }
+ };
+ U._EffectiveTickerMode.prototype = {
+ updateShouldNotify$1: function(oldWidget) {
+ return this.enabled !== oldWidget.enabled;
+ }
+ };
+ U.SingleTickerProviderStateMixin.prototype = {
+ createTicker$1: function(onTick) {
+ return this.SingleTickerProviderStateMixin__ticker = new M.Ticker(onTick, null);
+ }
+ };
+ U.TickerProviderStateMixin.prototype = {
+ createTicker$1: function(onTick) {
+ var result, _this = this;
+ if (_this.TickerProviderStateMixin__tickers == null)
+ _this.TickerProviderStateMixin__tickers = P.LinkedHashSet_LinkedHashSet$_empty(type$._WidgetTicker);
+ result = new U._WidgetTicker(_this, onTick, "created by " + _this.toString$0(0));
+ _this.TickerProviderStateMixin__tickers.add$1(0, result);
+ return result;
+ }
+ };
+ U._WidgetTicker.prototype = {
+ dispose$0: function(_) {
+ this._creator.TickerProviderStateMixin__tickers.remove$1(0, this);
+ this.super$Ticker$dispose(0);
+ }
+ };
+ U.Title.prototype = {
+ build$1: function(_, context) {
+ X.SystemChrome_setApplicationSwitcherDescription(new X.ApplicationSwitcherDescription(this.title, this.color.value));
+ return this.child;
+ }
+ };
+ K.AnimatedWidget.prototype = {
+ createState$0: function() {
+ return new K._AnimatedState(C._StateLifecycle_0);
+ }
+ };
+ K._AnimatedState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this._widget.listenable.addListener$1(0, this.get$_transitions$_handleChange());
+ },
+ didUpdateWidget$1: function(oldWidget) {
+ var t1, t2, _this = this;
+ _this.super$State$didUpdateWidget(oldWidget);
+ t1 = _this._widget.listenable;
+ t2 = oldWidget.listenable;
+ if (!J.$eq$(t1, t2)) {
+ t1 = _this.get$_transitions$_handleChange();
+ t2.removeListener$1(0, t1);
+ _this._widget.listenable.addListener$1(0, t1);
+ }
+ },
+ dispose$0: function(_) {
+ this._widget.listenable.removeListener$1(0, this.get$_transitions$_handleChange());
+ this.super$State$dispose(0);
+ },
+ _transitions$_handleChange$0: function() {
+ this.setState$1(new K._AnimatedState__handleChange_closure());
+ },
+ build$1: function(_, context) {
+ return this._widget.build$1(0, context);
+ }
+ };
+ K._AnimatedState__handleChange_closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 0
+ };
+ K.SlideTransition.prototype = {
+ build$1: function(_, context) {
+ var _this = this,
+ t1 = type$.Animation_Offset._as(_this.listenable),
+ offset = t1.get$value(t1);
+ if (_this.textDirection === C.TextDirection_0)
+ offset = new P.Offset(-offset._dx, offset._dy);
+ return T.FractionalTranslation$(_this.child, _this.transformHitTests, offset);
+ }
+ };
+ K.ScaleTransition.prototype = {
+ build$1: function(_, context) {
+ var t1 = type$.Animation_double._as(this.listenable),
+ scaleValue = t1.get$value(t1),
+ transform = new E.Matrix4(new Float64Array(16));
+ transform.setIdentity$0();
+ transform.scale$3(0, scaleValue, scaleValue, 1);
+ return T.Transform$(C.Alignment_0_0, this.child, transform, true);
+ }
+ };
+ K.RotationTransition.prototype = {
+ build$1: function(_, context) {
+ var t1 = type$.Animation_double._as(this.listenable);
+ return T.Transform$(C.Alignment_0_0, this.child, E.Matrix4_Matrix4$rotationZ(t1.get$value(t1) * 3.141592653589793 * 2), true);
+ }
+ };
+ K.FadeTransition.prototype = {
+ createRenderObject$1: function(context) {
+ var t2, _null = null,
+ t1 = new E.RenderAnimatedOpacity(_null, _null, _null, _null, _null);
+ t1.get$isRepaintBoundary();
+ t2 = t1.get$alwaysNeedsCompositing();
+ t1.__RenderObject__needsCompositing_isSet = true;
+ t1.__RenderObject__needsCompositing = t2;
+ t1.set$child(_null);
+ t1.set$opacity(0, this.opacity);
+ t1.set$alwaysIncludeSemantics(this.alwaysIncludeSemantics);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ renderObject.set$opacity(0, this.opacity);
+ renderObject.set$alwaysIncludeSemantics(this.alwaysIncludeSemantics);
+ }
+ };
+ K.DecoratedBoxTransition.prototype = {
+ build$1: function(_, context) {
+ var t1 = this.decoration,
+ t2 = t1.parent;
+ return M.DecoratedBox$(this.child, t1._evaluatable.transform$1(0, t2.get$value(t2)), C.DecorationPosition_0);
+ }
+ };
+ K.AnimatedBuilder.prototype = {
+ build$1: function(_, context) {
+ return this.builder.call$2(context, this.child);
+ }
+ };
+ Q.ShrinkWrappingViewport.prototype = {
+ createRenderObject$1: function(context) {
+ var t1 = this.axisDirection,
+ t2 = Q.Viewport_getDefaultCrossAxisDirection(context, t1);
+ t1 = new Q.RenderShrinkWrappingViewport(t1, t2, this.offset, 250, C.CacheExtentStyle_0, this.clipBehavior, 0, null, null);
+ t1.get$isRepaintBoundary();
+ t1.__RenderObject__needsCompositing = t1.__RenderObject__needsCompositing_isSet = true;
+ t1.addAll$1(0, null);
+ return t1;
+ },
+ updateRenderObject$2: function(context, renderObject) {
+ var t1 = this.axisDirection;
+ renderObject.set$axisDirection(t1);
+ t1 = Q.Viewport_getDefaultCrossAxisDirection(context, t1);
+ renderObject.set$crossAxisDirection(t1);
+ renderObject.set$offset(0, this.offset);
+ renderObject.set$clipBehavior(this.clipBehavior);
+ }
+ };
+ L.Visibility.prototype = {
+ build$1: function(_, context) {
+ return this.visible ? this.child : C.SizedBox_0_0_null_null;
+ }
+ };
+ N._WidgetInspectorService.prototype = {};
+ N.WidgetInspectorService.prototype = {
+ isWidgetCreationTracked$0: function() {
+ var t1 = this.WidgetInspectorService__widgetCreationTracked;
+ return t1 == null ? this.WidgetInspectorService__widgetCreationTracked = false : t1;
+ }
+ };
+ N._ElementLocationStatsTracker.prototype = {};
+ N.InspectorSelection.prototype = {};
+ N._describeRelevantUserCode_processElement.prototype = {
+ call$1: function(target) {
+ return true;
+ },
+ $signature: 24
+ };
+ L.JsUrlStrategy0.prototype = {};
+ D.PluginRegistry.prototype = {};
+ D._PlatformBinaryMessenger.prototype = {
+ handlePlatformMessage$3: function(channel, data, callback) {
+ return this.handlePlatformMessage$body$_PlatformBinaryMessenger(channel, data, callback);
+ },
+ handlePlatformMessage$body$_PlatformBinaryMessenger: function(channel, data, callback) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$handler = 1, $async$currentError, $async$next = [], $async$self = this, handler, exception, stack, exception0, t1, t2, response, $async$exception0;
+ var $async$handlePlatformMessage$3 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ response = null;
+ $async$handler = 3;
+ handler = $async$self._handlers.$index(0, channel);
+ $async$goto = handler != null ? 6 : 7;
+ break;
+ case 6:
+ // then
+ $async$goto = 8;
+ return P._asyncAwait(handler.call$1(data), $async$handlePlatformMessage$3);
+ case 8:
+ // returning from await.
+ response = $async$result;
+ case 7:
+ // join
+ $async$next.push(5);
+ // goto finally
+ $async$goto = 4;
+ break;
+ case 3:
+ // catch
+ $async$handler = 2;
+ $async$exception0 = $async$currentError;
+ exception = H.unwrapException($async$exception0);
+ stack = H.getTraceFromException($async$exception0);
+ t1 = U.ErrorDescription$("during a framework-to-plugin message");
+ t2 = $.$get$FlutterError_onError();
+ if (t2 != null)
+ t2.call$1(new U.FlutterErrorDetails(exception, stack, "flutter web plugins", t1, null, false));
+ $async$next.push(5);
+ // goto finally
+ $async$goto = 4;
+ break;
+ case 2:
+ // uncaught
+ $async$next = [1];
+ case 4:
+ // finally
+ $async$handler = 1;
+ if (callback != null)
+ callback.call$1(response);
+ // goto the next finally handler
+ $async$goto = $async$next.pop();
+ break;
+ case 5:
+ // after finally
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ case 1:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$handlePlatformMessage$3, $async$completer);
+ }
+ };
+ N.RTCDataChannelState.prototype = {
+ toString$0: function(_) {
+ return this._enums$_name;
+ }
+ };
+ N.RTCSignalingState.prototype = {
+ toString$0: function(_) {
+ return this._enums$_name;
+ }
+ };
+ N.RTCIceGatheringState.prototype = {
+ toString$0: function(_) {
+ return this._enums$_name;
+ }
+ };
+ N.RTCPeerConnectionState.prototype = {
+ toString$0: function(_) {
+ return this._enums$_name;
+ }
+ };
+ N.RTCIceConnectionState.prototype = {
+ toString$0: function(_) {
+ return this._enums$_name;
+ }
+ };
+ N.RTCVideoViewObjectFit.prototype = {
+ toString$0: function(_) {
+ return "RTCVideoViewObjectFit.RTCVideoViewObjectFitContain";
+ }
+ };
+ B.RTCFactory.prototype = {};
+ V.MediaStream0.prototype = {
+ dispose$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue;
+ var $async$dispose$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = P.Future_Future$value(null, type$.void);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$dispose$0, $async$completer);
+ }
+ };
+ Z.MediaStreamTrack0.prototype = {};
+ Q.MediaDevices0.prototype = {};
+ X.RTCDataChannelMessage.prototype = {};
+ X.RTCDataChannel.prototype = {};
+ K.RTCIceCandidate.prototype = {};
+ B.RTCPeerConnection.prototype = {};
+ D.RTCRtpSender.prototype = {};
+ V.RTCRtpTransceiver.prototype = {};
+ N.RTCSessionDescription.prototype = {};
+ D.RTCTrackEvent.prototype = {};
+ E.RTCVideoValue.prototype = {
+ copyWith$4$height$renderVideo$rotation$width: function(height, renderVideo, rotation, width) {
+ var _this = this,
+ t1 = width == null ? _this.width : width,
+ t2 = height == null ? _this.height : height,
+ t3 = rotation == null ? _this.rotation : rotation,
+ t4 = _this.width !== 0 && _this.height !== 0 && renderVideo;
+ return new E.RTCVideoValue(t1, t2, t3, t4);
+ },
+ copyWith$1$renderVideo: function(renderVideo) {
+ return this.copyWith$4$height$renderVideo$rotation$width(null, renderVideo, null, null);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return H.getRuntimeType(_this).toString$0(0) + "(width: " + H.S(_this.width) + ", height: " + H.S(_this.height) + ", rotation: " + _this.rotation + ")";
+ }
+ };
+ E.VideoRenderer.prototype = {
+ dispose$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this;
+ var $async$dispose$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$self.super$ChangeNotifier$dispose(0);
+ $async$returnValue = P.Future_Future$value(null, type$.void);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$dispose$0, $async$completer);
+ }
+ };
+ E.RTCVideoRenderer.prototype = {
+ dispose$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this;
+ var $async$dispose$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = $async$self._rtc_video_renderer$_delegate.dispose$0(0);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$dispose$0, $async$completer);
+ }
+ };
+ F.RTCFactoryWeb.prototype = {
+ createPeerConnection$2: function(configuration, constraints) {
+ return this.createPeerConnection$body$RTCFactoryWeb(configuration, constraints);
+ },
+ createPeerConnection$body$RTCFactoryWeb: function(configuration, constraints) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_RTCPeerConnection),
+ $async$returnValue, constr, t2, t3, jsRtcPc, t1;
+ var $async$createPeerConnection$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = constraints.get$isNotEmpty(constraints);
+ if (t1)
+ constr = constraints;
+ else {
+ t1 = type$.dynamic;
+ t2 = type$.legacy_String;
+ constr = P.LinkedHashMap_LinkedHashMap$_literal(["mandatory", P.LinkedHashMap_LinkedHashMap$_empty(t1, t1), "optional", H.setRuntimeTypeInfo([P.LinkedHashMap_LinkedHashMap$_literal(["DtlsSrtpKeyAgreement", true], t2, type$.legacy_bool)], type$.JSArray_legacy_Map_of_legacy_String_and_legacy_bool)], t2, type$.legacy_Object);
+ }
+ t1 = type$.dynamic;
+ t1 = P.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
+ for (t2 = constr.get$entries(constr), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ t1.$indexSet(0, t3.key, t3.value);
+ }
+ for (t2 = configuration.get$entries(configuration), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ t1.$indexSet(0, t3.key, t3.value);
+ }
+ jsRtcPc = W.RtcPeerConnection_RtcPeerConnection(t1);
+ t1 = "Instance of '" + H.S(H.Primitives_objectTypeName(jsRtcPc)) + "'";
+ $async$returnValue = U.RTCPeerConnectionWeb$(C.C_Base64Codec.get$encoder().convert$1(new H.CodeUnits(t1)), jsRtcPc);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$createPeerConnection$2, $async$completer);
+ }
+ };
+ R.MediaStreamWeb.prototype = {
+ removeTrack$2$removeFromNative: function(_, track, removeFromNative) {
+ return this.removeTrack$body$MediaStreamWeb(_, track, false);
+ },
+ removeTrack$body$MediaStreamWeb: function(_, track, removeFromNative) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void);
+ var $async$removeTrack$2$removeFromNative = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$removeTrack$2$removeFromNative, $async$completer);
+ },
+ getAudioTracks$0: function(_) {
+ var audioTracks = H.setRuntimeTypeInfo([], type$.JSArray_legacy_MediaStreamTrack);
+ C.JSArray_methods.forEach$1(this.jsStream.getAudioTracks(), new R.MediaStreamWeb_getAudioTracks_closure(audioTracks));
+ return audioTracks;
+ },
+ getVideoTracks$0: function(_) {
+ var audioTracks = H.setRuntimeTypeInfo([], type$.JSArray_legacy_MediaStreamTrack);
+ C.JSArray_methods.forEach$1(this.jsStream.getVideoTracks(), new R.MediaStreamWeb_getVideoTracks_closure(audioTracks));
+ return audioTracks;
+ },
+ dispose$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this;
+ var $async$dispose$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ C.JSArray_methods.forEach$1($async$self.getTracks$0(0), new R.MediaStreamWeb_dispose_closure());
+ $async$returnValue = $async$self.super$MediaStream$dispose(0);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$dispose$0, $async$completer);
+ },
+ getTracks$0: function(_) {
+ var t2, t3, _i,
+ t1 = H.setRuntimeTypeInfo([], type$.JSArray_legacy_MediaStreamTrack);
+ for (t2 = this.getAudioTracks$0(0), t3 = t2.length, _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i)
+ t1.push(t2[_i]);
+ for (t2 = this.getVideoTracks$0(0), t3 = t2.length, _i = 0; _i < t2.length; t2.length === t3 || (0, H.throwConcurrentModificationError)(t2), ++_i)
+ t1.push(t2[_i]);
+ return t1;
+ }
+ };
+ R.MediaStreamWeb_getAudioTracks_closure.prototype = {
+ call$1: function(jsTrack) {
+ return this.audioTracks.push(Q.MediaStreamTrackWeb$(jsTrack));
+ },
+ $signature: 92
+ };
+ R.MediaStreamWeb_getVideoTracks_closure.prototype = {
+ call$1: function(jsTrack) {
+ return this.audioTracks.push(Q.MediaStreamTrackWeb$(jsTrack));
+ },
+ $signature: 92
+ };
+ R.MediaStreamWeb_dispose_closure.prototype = {
+ call$1: function(element) {
+ element.dispose$0(0);
+ },
+ $signature: 337
+ };
+ Q.MediaStreamTrackWeb.prototype = {
+ MediaStreamTrackWeb$1: function(jsTrack) {
+ var t2,
+ t1 = this.jsTrack;
+ t1.toString;
+ t2 = type$.legacy_Event;
+ W._EventStreamSubscription$(t1, "ended", new Q.MediaStreamTrackWeb_closure(this), false, t2);
+ W._EventStreamSubscription$(t1, "mute", new Q.MediaStreamTrackWeb_closure0(this), false, t2);
+ },
+ switchCamera$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_bool),
+ $async$returnValue;
+ var $async$switchCamera$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$returnValue = false;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$switchCamera$0, $async$completer);
+ },
+ dispose$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this;
+ var $async$dispose$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$self.jsTrack.stop();
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$dispose$0, $async$completer);
+ }
+ };
+ Q.MediaStreamTrackWeb_closure.prototype = {
+ call$1: function($event) {
+ },
+ $signature: 12
+ };
+ Q.MediaStreamTrackWeb_closure0.prototype = {
+ call$1: function($event) {
+ },
+ $signature: 12
+ };
+ G.MediaDevicesWeb.prototype = {
+ getUserMedia$1: function(_, mediaConstraints) {
+ return this.getUserMedia$body$MediaDevicesWeb(_, mediaConstraints);
+ },
+ getUserMedia$body$MediaDevicesWeb: function(_, mediaConstraints) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_MediaStream),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], mediaDevices, args, jsStream, jsStream0, e, t1, t2, exception, $async$exception;
+ var $async$getUserMedia$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ mediaConstraints = mediaConstraints;
+ if (mediaConstraints == null)
+ mediaConstraints = P.LinkedHashMap_LinkedHashMap$_empty(type$.legacy_String, type$.dynamic);
+ $async$handler = 4;
+ if (type$.legacy_Map_dynamic_dynamic._is(J.$index$asx(mediaConstraints, "video")))
+ if (J.$index$asx(J.$index$asx(mediaConstraints, "video"), "facingMode") != null)
+ J.remove$1$ax(J.$index$asx(mediaConstraints, "video"), "facingMode");
+ J.putIfAbsent$2$x(mediaConstraints, "video", new G.MediaDevicesWeb_getUserMedia_closure());
+ J.putIfAbsent$2$x(mediaConstraints, "audio", new G.MediaDevicesWeb_getUserMedia_closure0());
+ mediaDevices = window.navigator.mediaDevices;
+ $async$goto = "getUserMedia" in mediaDevices ? 7 : 9;
+ break;
+ case 7:
+ // then
+ t1 = mediaConstraints;
+ if (!type$.Map_dynamic_dynamic._is(t1) && !type$.Iterable_dynamic._is(t1))
+ H.throwExpression(P.ArgumentError$("object must be a Map or Iterable"));
+ args = P._convertDataTree(t1);
+ t1 = mediaDevices;
+ $async$goto = 10;
+ return P._asyncAwait(P.promiseToFuture(t1.getUserMedia.apply(t1, H.setRuntimeTypeInfo([args], type$.JSArray_legacy_Object)), type$.legacy_MediaStream_2), $async$getUserMedia$1);
+ case 10:
+ // returning from await.
+ jsStream = $async$result;
+ t1 = jsStream;
+ t2 = t1.id;
+ $async$returnValue = new R.MediaStreamWeb(t1, t2, "local");
+ // goto return
+ $async$goto = 1;
+ break;
+ // goto join
+ $async$goto = 8;
+ break;
+ case 9:
+ // else
+ t1 = window.navigator;
+ $async$goto = 11;
+ return P._asyncAwait((t1 && C.Navigator_methods).getUserMedia$2$audio$video(t1, J.$index$asx(mediaConstraints, "audio"), J.$index$asx(mediaConstraints, "video")), $async$getUserMedia$1);
+ case 11:
+ // returning from await.
+ jsStream0 = $async$result;
+ t1 = jsStream0;
+ t2 = t1.id;
+ $async$returnValue = new R.MediaStreamWeb(t1, t2, "local");
+ // goto return
+ $async$goto = 1;
+ break;
+ case 8:
+ // join
+ $async$handler = 2;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 4:
+ // catch
+ $async$handler = 3;
+ $async$exception = $async$currentError;
+ e = H.unwrapException($async$exception);
+ t1 = "Unable to getUserMedia: " + H.S(J.toString$0$(e));
+ throw H.wrapException(t1);
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 3:
+ // uncaught
+ // goto rethrow
+ $async$goto = 2;
+ break;
+ case 6:
+ // after finally
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$getUserMedia$1, $async$completer);
+ },
+ getDisplayMedia$1: function(mediaConstraints) {
+ return this.getDisplayMedia$body$MediaDevicesWeb(mediaConstraints);
+ },
+ getDisplayMedia$body$MediaDevicesWeb: function(mediaConstraints) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_MediaStream),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], mediaDevices, arg, jsStream, jsStream0, e, t1, t2, t3, exception, $async$exception;
+ var $async$getDisplayMedia$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$handler = 4;
+ mediaDevices = window.navigator.mediaDevices;
+ $async$goto = "getDisplayMedia" in mediaDevices ? 7 : 9;
+ break;
+ case 7:
+ // then
+ arg = P._wrapToDart(P.JsObject__convertDataTree(mediaConstraints));
+ t1 = mediaDevices;
+ $async$goto = 10;
+ return P._asyncAwait(P.promiseToFuture(t1.getDisplayMedia.apply(t1, H.setRuntimeTypeInfo([arg], type$.JSArray_legacy_Object)), type$.legacy_MediaStream_2), $async$getDisplayMedia$1);
+ case 10:
+ // returning from await.
+ jsStream = $async$result;
+ t1 = jsStream;
+ t2 = t1.id;
+ $async$returnValue = new R.MediaStreamWeb(t1, t2, "local");
+ // goto return
+ $async$goto = 1;
+ break;
+ // goto join
+ $async$goto = 8;
+ break;
+ case 9:
+ // else
+ t1 = window.navigator;
+ t2 = type$.legacy_String;
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["mediaSource", "screen"], t2, t2);
+ t3 = mediaConstraints.$index(0, "audio");
+ if (t3 == null)
+ t3 = false;
+ $async$goto = 11;
+ return P._asyncAwait((t1 && C.Navigator_methods).getUserMedia$2$audio$video(t1, t3, t2), $async$getDisplayMedia$1);
+ case 11:
+ // returning from await.
+ jsStream0 = $async$result;
+ t2 = jsStream0;
+ t3 = t2.id;
+ $async$returnValue = new R.MediaStreamWeb(t2, t3, "local");
+ // goto return
+ $async$goto = 1;
+ break;
+ case 8:
+ // join
+ $async$handler = 2;
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 4:
+ // catch
+ $async$handler = 3;
+ $async$exception = $async$currentError;
+ e = H.unwrapException($async$exception);
+ t1 = "Unable to getDisplayMedia: " + H.S(J.toString$0$(e));
+ throw H.wrapException(t1);
+ // goto after finally
+ $async$goto = 6;
+ break;
+ case 3:
+ // uncaught
+ // goto rethrow
+ $async$goto = 2;
+ break;
+ case 6:
+ // after finally
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$getDisplayMedia$1, $async$completer);
+ }
+ };
+ G.MediaDevicesWeb_getUserMedia_closure.prototype = {
+ call$0: function() {
+ return false;
+ },
+ $signature: 88
+ };
+ G.MediaDevicesWeb_getUserMedia_closure0.prototype = {
+ call$0: function() {
+ return false;
+ },
+ $signature: 88
+ };
+ Z.RTCDataChannelWeb.prototype = {
+ RTCDataChannelWeb$1: function(_jsDc) {
+ var t2, _this = this,
+ t1 = _this._jsDc;
+ t1.toString;
+ t2 = type$.legacy_Event;
+ W._EventStreamSubscription$(t1, "close", new Z.RTCDataChannelWeb_closure(_this), false, t2);
+ W._EventStreamSubscription$(t1, "open", new Z.RTCDataChannelWeb_closure0(_this), false, t2);
+ W._EventStreamSubscription$(t1, "message", new Z.RTCDataChannelWeb_closure1(_this), false, type$.legacy_MessageEvent);
+ },
+ _parse$1: function(data) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_RTCDataChannelMessage),
+ $async$returnValue, t1, $async$temp1, $async$temp2;
+ var $async$_parse$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if (typeof data == "string") {
+ t1 = new X.RTCDataChannelMessage();
+ t1._rtc_data_channel$_data = data;
+ t1._isBinary = false;
+ $async$returnValue = t1;
+ // goto return
+ $async$goto = 1;
+ break;
+ }
+ t1 = new X.RTCDataChannelMessage();
+ $async$temp1 = t1;
+ $async$temp2 = J;
+ $async$goto = type$.legacy_Blob._is(data) ? 3 : 5;
+ break;
+ case 3:
+ // then
+ $async$goto = 6;
+ return P._asyncAwait(P.promiseToFuture(data.arrayBuffer.apply(data, H.setRuntimeTypeInfo([], type$.JSArray_legacy_Object)), type$.dynamic), $async$_parse$1);
+ case 6:
+ // returning from await.
+ // goto join
+ $async$goto = 4;
+ break;
+ case 5:
+ // else
+ $async$result = data;
+ case 4:
+ // join
+ $async$temp1._rtc_data_channel$_data = $async$temp2.asUint8List$0$x($async$result);
+ t1._isBinary = true;
+ $async$returnValue = t1;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_parse$1, $async$completer);
+ },
+ send$1: function(_, message) {
+ var t1 = message._isBinary,
+ t2 = this._jsDc,
+ t3 = message._rtc_data_channel$_data;
+ if (!t1)
+ t2.send(t3);
+ else
+ t2.send(t3.buffer);
+ return P.Future_Future$value(null, type$.void);
+ }
+ };
+ Z.RTCDataChannelWeb_closure.prototype = {
+ call$1: function(_) {
+ var t2,
+ t1 = this.$this;
+ t1._rtc_data_channel_impl$_state = C.RTCDataChannelState_3;
+ t1._stateChangeController.add$1(0, C.RTCDataChannelState_3);
+ t2 = t1.onDataChannelState;
+ if (t2 != null)
+ t2.call$1(t1._rtc_data_channel_impl$_state);
+ },
+ $signature: 12
+ };
+ Z.RTCDataChannelWeb_closure0.prototype = {
+ call$1: function(_) {
+ var t2,
+ t1 = this.$this;
+ t1._rtc_data_channel_impl$_state = C.RTCDataChannelState_1;
+ t1._stateChangeController.add$1(0, C.RTCDataChannelState_1);
+ t2 = t1.onDataChannelState;
+ if (t2 != null)
+ t2.call$1(t1._rtc_data_channel_impl$_state);
+ },
+ $signature: 12
+ };
+ Z.RTCDataChannelWeb_closure1.prototype = {
+ call$1: function($event) {
+ return this.$call$body$RTCDataChannelWeb_closure($event);
+ },
+ $call$body$RTCDataChannelWeb_closure: function($event) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Null),
+ $async$self = this, t1, msg;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self.$this;
+ $async$goto = 2;
+ return P._asyncAwait(t1._parse$1(new P._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy($event.data, true)), $async$call$1);
+ case 2:
+ // returning from await.
+ msg = $async$result;
+ t1._messageController.add$1(0, msg);
+ if (t1.onMessage != null)
+ t1.onMessage.call$1(msg);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 340
+ };
+ U.RTCPeerConnectionWeb.prototype = {
+ RTCPeerConnectionWeb$2: function(_peerConnectionId, _jsPc) {
+ var t3, _this = this,
+ _s24_ = "iceconnectionstatechange",
+ t1 = _this._jsPc,
+ t2 = type$.legacy_MediaStreamEvent;
+ W._EventStreamSubscription$(t1, "addstream", new U.RTCPeerConnectionWeb_closure(_this), false, t2);
+ W._EventStreamSubscription$(t1, "datachannel", new U.RTCPeerConnectionWeb_closure0(_this), false, type$.legacy_RtcDataChannelEvent);
+ W._EventStreamSubscription$(t1, "icecandidate", new U.RTCPeerConnectionWeb_closure1(_this), false, type$.legacy_RtcPeerConnectionIceEvent);
+ t3 = type$.legacy_Event;
+ W._EventStreamSubscription$(t1, _s24_, new U.RTCPeerConnectionWeb_closure2(_this), false, t3);
+ t1.onicegatheringstatechange = P.allowInterop(new U.RTCPeerConnectionWeb_closure3(_this));
+ W._EventStreamSubscription$(t1, "removestream", new U.RTCPeerConnectionWeb_closure4(_this), false, t2);
+ W._EventStreamSubscription$(t1, "signalingstatechange", new U.RTCPeerConnectionWeb_closure5(_this), false, t3);
+ W._EventStreamSubscription$(t1, _s24_, new U.RTCPeerConnectionWeb_closure6(_this), false, t3);
+ W._EventStreamSubscription$(t1, "negotiationneeded", new U.RTCPeerConnectionWeb_closure7(_this), false, t3);
+ W._EventStreamSubscription$(t1, "track", new U.RTCPeerConnectionWeb_closure8(_this), false, type$.legacy_RtcTrackEvent);
+ },
+ createOffer$1: function(_, constraints) {
+ return this.createOffer$body$RTCPeerConnectionWeb(_, constraints);
+ },
+ createOffer$body$RTCPeerConnectionWeb: function(_, constraints) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_RTCSessionDescription),
+ $async$returnValue, $async$self = this, options_dict, offer;
+ var $async$createOffer$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ options_dict = P.convertDartToNative_Dictionary(constraints);
+ $async$goto = 3;
+ return P._asyncAwait(P.promiseToFuture($async$self._jsPc.createOffer(options_dict), type$.RtcSessionDescription), $async$createOffer$1);
+ case 3:
+ // returning from await.
+ offer = $async$result;
+ $async$returnValue = new N.RTCSessionDescription(offer.sdp, offer.type);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$createOffer$1, $async$completer);
+ },
+ createAnswer$1: function(_, constraints) {
+ return this.createAnswer$body$RTCPeerConnectionWeb(_, constraints);
+ },
+ createAnswer$body$RTCPeerConnectionWeb: function(_, constraints) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_RTCSessionDescription),
+ $async$returnValue, $async$self = this, options_dict, answer;
+ var $async$createAnswer$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ options_dict = P.convertDartToNative_Dictionary(constraints);
+ $async$goto = 3;
+ return P._asyncAwait(P.promiseToFuture($async$self._jsPc.createAnswer(options_dict), type$.RtcSessionDescription), $async$createAnswer$1);
+ case 3:
+ // returning from await.
+ answer = $async$result;
+ $async$returnValue = new N.RTCSessionDescription(answer.sdp, answer.type);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$createAnswer$1, $async$completer);
+ },
+ setLocalDescription$1: function(_, description) {
+ return this.setLocalDescription$body$RTCPeerConnectionWeb(_, description);
+ },
+ setLocalDescription$body$RTCPeerConnectionWeb: function(_, description) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t1;
+ var $async$setLocalDescription$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = type$.legacy_String;
+ $async$goto = 2;
+ return P._asyncAwait(P.promiseToFuture($async$self._jsPc.setLocalDescription(P.convertDartToNative_Dictionary(P.LinkedHashMap_LinkedHashMap$_literal(["sdp", description.sdp, "type", description.type], t1, t1))), type$.dynamic), $async$setLocalDescription$1);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$setLocalDescription$1, $async$completer);
+ },
+ setRemoteDescription$1: function(_, description) {
+ return this.setRemoteDescription$body$RTCPeerConnectionWeb(_, description);
+ },
+ setRemoteDescription$body$RTCPeerConnectionWeb: function(_, description) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t1;
+ var $async$setRemoteDescription$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = type$.legacy_String;
+ $async$goto = 2;
+ return P._asyncAwait(P.promiseToFuture($async$self._jsPc.setRemoteDescription(P.convertDartToNative_Dictionary(P.LinkedHashMap_LinkedHashMap$_literal(["sdp", description.sdp, "type", description.type], t1, t1))), type$.dynamic), $async$setRemoteDescription$1);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$setRemoteDescription$1, $async$completer);
+ },
+ addCandidate$1: function(candidate) {
+ return this.addCandidate$body$RTCPeerConnectionWeb(candidate);
+ },
+ addCandidate$body$RTCPeerConnectionWeb: function(candidate) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$next = [], $async$self = this, completer, success, failure, e, t1, t2, exception;
+ var $async$addCandidate$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ try {
+ completer = new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void);
+ success = P.allowInterop(new U.RTCPeerConnectionWeb_addCandidate_closure(completer));
+ failure = P.allowInterop(new U.RTCPeerConnectionWeb_addCandidate_closure0(completer));
+ t1 = $async$self._jsPc;
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["candidate", candidate.candidate, "sdpMid", candidate.sdpMid, "sdpMLineIndex", candidate.sdpMlineIndex], type$.legacy_String, type$.legacy_Object);
+ t1.addIceCandidate.apply(t1, H.setRuntimeTypeInfo([new window.RTCIceCandidate(new P._StructuredCloneDart2Js([], []).walk$1(t2)), success, failure], type$.JSArray_legacy_Object));
+ t2 = completer.future;
+ $async$returnValue = t2;
+ // goto return
+ $async$goto = 1;
+ break;
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ P.print(J.toString$0$(e));
+ }
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$addCandidate$1, $async$completer);
+ },
+ close$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this;
+ var $async$close$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$self._jsPc.close();
+ $async$returnValue = P.Future_Future$value(null, type$.void);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$close$0, $async$completer);
+ },
+ addTrack$2: function(_, track, stream) {
+ return this.addTrack$body$RTCPeerConnectionWeb(_, track, stream);
+ },
+ addTrack$body$RTCPeerConnectionWeb: function(_, track, stream) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_RTCRtpSender),
+ $async$returnValue, $async$self = this, jStream;
+ var $async$addTrack$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ jStream = stream.jsStream;
+ $async$self._jsPc.addTrack(track.jsTrack, jStream).track;
+ $async$returnValue = new S.RTCRtpSenderWeb();
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$addTrack$2, $async$completer);
+ }
+ };
+ U.RTCPeerConnectionWeb_closure.prototype = {
+ call$1: function(mediaStreamEvent) {
+ var jsStream = mediaStreamEvent.stream,
+ t1 = this.$this,
+ _remoteStream = t1._rtc_peerconnection_impl$_remoteStreams.putIfAbsent$2(0, jsStream.id, new U.RTCPeerConnectionWeb__closure0(t1, jsStream)),
+ t2 = type$.legacy_Event;
+ W._EventStreamSubscription$(jsStream, "addtrack", new U.RTCPeerConnectionWeb__closure1(t1, _remoteStream), false, t2);
+ W._EventStreamSubscription$(jsStream, "removetrack", new U.RTCPeerConnectionWeb__closure2(t1, _remoteStream), false, t2);
+ },
+ $signature: 86
+ };
+ U.RTCPeerConnectionWeb__closure0.prototype = {
+ call$0: function() {
+ var t1 = this.jsStream;
+ return new R.MediaStreamWeb(t1, t1.id, this.$this._peerConnectionId);
+ },
+ $signature: 342
+ };
+ U.RTCPeerConnectionWeb__closure1.prototype = {
+ call$1: function(mediaStreamTrackEvent) {
+ var track = Q.MediaStreamTrackWeb$(type$.legacy_MediaStreamTrackEvent._as(mediaStreamTrackEvent).track),
+ t1 = this._remoteStream;
+ t1.toString;
+ P.Future_Future$value(null, type$.void).then$1$1(0, new U.RTCPeerConnectionWeb___closure0(this.$this, t1, track), type$.Null);
+ },
+ $signature: 12
+ };
+ U.RTCPeerConnectionWeb___closure0.prototype = {
+ call$1: function(_) {
+ },
+ $signature: 16
+ };
+ U.RTCPeerConnectionWeb__closure2.prototype = {
+ call$1: function(mediaStreamTrackEvent) {
+ var track = Q.MediaStreamTrackWeb$(type$.legacy_MediaStreamTrackEvent._as(mediaStreamTrackEvent).track),
+ t1 = this._remoteStream;
+ t1.removeTrack$2$removeFromNative(0, track, false).then$1$1(0, new U.RTCPeerConnectionWeb___closure(this.$this, t1, track), type$.Null);
+ },
+ $signature: 12
+ };
+ U.RTCPeerConnectionWeb___closure.prototype = {
+ call$1: function(_) {
+ },
+ $signature: 16
+ };
+ U.RTCPeerConnectionWeb_closure0.prototype = {
+ call$1: function(dataChannelEvent) {
+ var t1 = this.$this.onDataChannel;
+ if (t1 != null)
+ t1.call$1(Z.RTCDataChannelWeb$(dataChannelEvent.channel));
+ },
+ $signature: 343
+ };
+ U.RTCPeerConnectionWeb_closure1.prototype = {
+ call$1: function(iceEvent) {
+ var t2,
+ t1 = iceEvent.candidate;
+ if (t1 != null) {
+ t2 = this.$this.onIceCandidate;
+ if (t2 != null)
+ t2.call$1(new K.RTCIceCandidate(t1.candidate, t1.sdpMid, t1.sdpMLineIndex));
+ }
+ },
+ $signature: 344
+ };
+ U.RTCPeerConnectionWeb_closure2.prototype = {
+ call$1: function(_) {
+ var t1 = this.$this,
+ t2 = N.iceConnectionStateForString(t1._jsPc.iceConnectionState);
+ t1._iceConnectionState = t2;
+ t1 = t1.onIceConnectionState;
+ if (t1 != null)
+ t1.call$1(t2);
+ },
+ $signature: 12
+ };
+ U.RTCPeerConnectionWeb_closure3.prototype = {
+ call$1: function(_) {
+ var t1 = this.$this;
+ t1._iceGatheringState = N.iceGatheringStateforString(t1._jsPc.iceGatheringState);
+ },
+ $signature: 3
+ };
+ U.RTCPeerConnectionWeb_closure4.prototype = {
+ call$1: function(mediaStreamEvent) {
+ var t1 = this.$this,
+ _remoteStream = t1._rtc_peerconnection_impl$_remoteStreams.remove$1(0, mediaStreamEvent.stream.id);
+ t1 = t1.onRemoveStream;
+ if (t1 != null)
+ t1.call$1(_remoteStream);
+ },
+ $signature: 86
+ };
+ U.RTCPeerConnectionWeb_closure5.prototype = {
+ call$1: function(_) {
+ var t1 = this.$this;
+ t1._signalingState = N.signalingStateForString(t1._jsPc.signalingState);
+ },
+ $signature: 12
+ };
+ U.RTCPeerConnectionWeb_closure6.prototype = {
+ call$1: function(_) {
+ var t1 = this.$this;
+ t1._connectionState = N.peerConnectionStateForString(t1._jsPc.iceConnectionState);
+ },
+ $signature: 12
+ };
+ U.RTCPeerConnectionWeb_closure7.prototype = {
+ call$1: function(_) {
+ },
+ $signature: 12
+ };
+ U.RTCPeerConnectionWeb_closure8.prototype = {
+ call$1: function(trackEvent) {
+ var t3,
+ t1 = this.$this,
+ t2 = t1.onTrack;
+ if (t2 != null) {
+ t3 = Q.MediaStreamTrackWeb$(trackEvent.track);
+ trackEvent.receiver;
+ t2.call$1(new D.RTCTrackEvent(J.map$1$1$ax(trackEvent.streams, new U.RTCPeerConnectionWeb__closure(t1), type$.legacy_MediaStreamWeb).toList$0(0), t3));
+ }
+ },
+ $signature: 345
+ };
+ U.RTCPeerConnectionWeb__closure.prototype = {
+ call$1: function(e) {
+ return new R.MediaStreamWeb(e, e.id, this.$this._peerConnectionId);
+ },
+ $signature: 346
+ };
+ U.RTCPeerConnectionWeb_addCandidate_closure.prototype = {
+ call$0: function() {
+ return this.completer.complete$0(0);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 0
+ };
+ U.RTCPeerConnectionWeb_addCandidate_closure0.prototype = {
+ call$1: function(e) {
+ return this.completer.completeError$1(e);
+ },
+ $signature: 8
+ };
+ S.RTCRtpSenderWeb.prototype = {};
+ T.RTCRtpTransceiverWeb.prototype = {};
+ V.RTCVideoRendererWeb.prototype = {
+ get$renderVideo: function() {
+ return this._videoElement != null && this._srcObject != null;
+ },
+ initialize$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t2, t3, t1;
+ var $async$initialize$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = document.createElement("video");
+ t1.autoplay = true;
+ t1.muted = false;
+ t1.controls = false;
+ t2 = t1.style;
+ t2.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t2, C.CssStyleDeclaration_methods._browserPropertyName$1(t2, "object-fit"), "contain", "");
+ t2 = t1.style;
+ t2.border = "none";
+ $async$self._videoElement = t1;
+ t1.setAttribute("playsinline", "true");
+ $.$get$platformViewRegistry().registerViewFactory$2("RTCVideoRenderer-" + $async$self._textureId, new V.RTCVideoRendererWeb_initialize_closure($async$self));
+ t1 = $async$self._rtc_video_renderer_impl$_subscriptions;
+ t2 = $async$self._videoElement;
+ t2.toString;
+ t3 = type$._ElementEventStreamImpl_legacy_Event._precomputed1;
+ t1.push(W._EventStreamSubscription$(t2, "canplay", new V.RTCVideoRendererWeb_initialize_closure0($async$self), false, t3));
+ t2 = $async$self._videoElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "resize", new V.RTCVideoRendererWeb_initialize_closure1($async$self), false, t3));
+ t2 = $async$self._videoElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "error", new V.RTCVideoRendererWeb_initialize_closure2($async$self), false, t3));
+ t2 = $async$self._videoElement;
+ t2.toString;
+ t1.push(W._EventStreamSubscription$(t2, "ended", new V.RTCVideoRendererWeb_initialize_closure3(), false, t3));
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$initialize$0, $async$completer);
+ },
+ _updateAllValues$0: function() {
+ var _this = this, _null = null,
+ t1 = _this._change_notifier$_value,
+ t2 = _this._videoElement,
+ t3 = t2 == null,
+ t4 = t3 ? _null : t2.videoWidth;
+ if (t4 == null)
+ t4 = _null;
+ if (t4 == null)
+ t4 = 0;
+ t2 = t3 ? _null : t2.videoHeight;
+ if (t2 == null)
+ t2 = _null;
+ if (t2 == null)
+ t2 = 0;
+ _this.set$value(0, t1.copyWith$4$height$renderVideo$rotation$width(t2, _this.get$renderVideo(), 0, t4));
+ },
+ set$srcObject: function(_, stream) {
+ var _this = this,
+ t1 = _this._videoElement;
+ if (t1 == null)
+ throw H.wrapException("Call initialize before setting the stream");
+ if (stream == null) {
+ t1.srcObject = null;
+ _this._srcObject = null;
+ return;
+ }
+ _this._srcObject = stream;
+ t1.srcObject = stream.jsStream;
+ _this._videoElement.muted = stream._ownerTag === "local";
+ _this.set$value(0, _this._change_notifier$_value.copyWith$1$renderVideo(_this.get$renderVideo()));
+ },
+ dispose$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$returnValue, $async$self = this, t1;
+ var $async$dispose$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._srcObject;
+ $async$goto = 3;
+ return P._asyncAwait(t1 == null ? null : t1.dispose$0(0), $async$dispose$0);
+ case 3:
+ // returning from await.
+ $async$self._srcObject = null;
+ C.JSArray_methods.forEach$1($async$self._rtc_video_renderer_impl$_subscriptions, new V.RTCVideoRendererWeb_dispose_closure());
+ $async$self._videoElement.removeAttribute("src");
+ $async$self._videoElement.load();
+ $async$returnValue = $async$self.super$VideoRenderer$dispose(0);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$dispose$0, $async$completer);
+ }
+ };
+ V.RTCVideoRendererWeb_initialize_closure.prototype = {
+ call$1: function(viewId) {
+ return this.$this._videoElement;
+ },
+ $signature: 347
+ };
+ V.RTCVideoRendererWeb_initialize_closure0.prototype = {
+ call$1: function(_) {
+ this.$this._updateAllValues$0();
+ },
+ $signature: 3
+ };
+ V.RTCVideoRendererWeb_initialize_closure1.prototype = {
+ call$1: function(_) {
+ this.$this._updateAllValues$0();
+ },
+ $signature: 3
+ };
+ V.RTCVideoRendererWeb_initialize_closure2.prototype = {
+ call$1: function(_) {
+ var t1, t2,
+ error = this.$this._videoElement.error;
+ P.print("RTCVideoRenderer: videoElement.onError, " + J.toString$0$(error));
+ t1 = C.Map_iTiqV.$index(0, error.code);
+ t2 = error.message;
+ t2 = t2 !== "" ? t2 : "No further diagnostic information can be determined or provided.";
+ throw H.wrapException(F.PlatformException$(t1, C.Map_iTK2O.$index(0, error.code), t2, null));
+ },
+ $signature: 12
+ };
+ V.RTCVideoRendererWeb_initialize_closure3.prototype = {
+ call$1: function(_) {
+ },
+ $signature: 3
+ };
+ V.RTCVideoRendererWeb_dispose_closure.prototype = {
+ call$1: function(s) {
+ return s.cancel$0(0);
+ },
+ $signature: 348
+ };
+ R.RTCVideoView.prototype = {
+ createState$0: function() {
+ return new R._RTCVideoViewState(C._StateLifecycle_0);
+ }
+ };
+ R._RTCVideoViewState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ var t1 = this._widget._renderer;
+ t1 = t1._rtc_video_renderer$_delegate.ChangeNotifier__listeners;
+ t1._insertBefore$3$updateFirst(t1._collection$_first, new B._ListenerEntry(new R._RTCVideoViewState_initState_closure(this)), false);
+ },
+ build$1: function(_, context) {
+ return new A.LayoutBuilder(new R._RTCVideoViewState_build_closure(this), null);
+ }
+ };
+ R._RTCVideoViewState_initState_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ if (t1._framework$_element != null)
+ t1.setState$1(new R._RTCVideoViewState_initState__closure());
+ },
+ $signature: 2
+ };
+ R._RTCVideoViewState_initState__closure.prototype = {
+ call$0: function() {
+ },
+ $signature: 2
+ };
+ R._RTCVideoViewState_build_closure.prototype = {
+ call$2: function(context, constraints) {
+ var t4, t5, t6, _null = null,
+ t1 = constraints.maxWidth,
+ t2 = constraints.maxHeight,
+ t3 = this.$this;
+ if (t3._widget._renderer._rtc_video_renderer$_delegate.get$renderVideo()) {
+ t4 = t3._widget;
+ t5 = t4.mirror;
+ t4 = t4._renderer._rtc_video_renderer$_delegate._videoElement.style;
+ t6 = "rotateY(" + (t5 ? "180" : "0") + "deg)";
+ t4.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t4, C.CssStyleDeclaration_methods._browserPropertyName$1(t4, "transform"), t6, "");
+ t6 = t3._widget._renderer;
+ t4 = t6._rtc_video_renderer$_delegate._videoElement.style;
+ t4.toString;
+ C.CssStyleDeclaration_methods._setPropertyHelper$3(t4, C.CssStyleDeclaration_methods._browserPropertyName$1(t4, "object-fit"), "contain", "");
+ t3 = new G.HtmlElementView("RTCVideoRenderer-" + t3._widget._renderer._rtc_video_renderer$_delegate._textureId, _null);
+ } else
+ t3 = M.Container$(_null, _null, _null, _null, _null, _null, _null, _null, _null);
+ return T.Center$(M.Container$(_null, t3, _null, _null, _null, t2, _null, _null, t1), _null, _null);
+ },
+ $signature: 349
+ };
+ F.MyApp.prototype = {
+ createState$0: function() {
+ return new F._MyAppState(C._StateLifecycle_0);
+ }
+ };
+ F.DialogDemoAction.prototype = {
+ toString$0: function(_) {
+ return this._main$_name;
+ }
+ };
+ F._MyAppState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this._initData$0();
+ this._initItems$0();
+ },
+ _buildRow$2: function(context, item) {
+ var _null = null;
+ return T.ListBody$(H.setRuntimeTypeInfo([Q.ListTile$(new F._MyAppState__buildRow_closure(item, context), _null, L.Text$(item.title, _null, _null, _null, _null, _null), L.Icon$(C.IconData_58802_true)), Z.Divider$()], type$.JSArray_legacy_Widget));
+ },
+ build$1: function(_, context) {
+ var _null = null,
+ t1 = E.AppBar$(_null, L.Text$("Flutter-WebRTC example", _null, _null, _null, _null, _null));
+ this.items.length;
+ return new S.MaterialApp(M.Scaffold$(t1, B.ListView$builder(new F._MyAppState_build_closure(this), 2, C.EdgeInsets_0_0_0_0, true), _null, _null), _null);
+ },
+ _initData$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this;
+ var $async$_initData$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(V.SharedPreferences_getInstance(), $async$_initData$0);
+ case 2:
+ // returning from await.
+ $async$self._prefs = $async$result;
+ $async$self.setState$1(new F._MyAppState__initData_closure($async$self));
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_initData$0, $async$completer);
+ },
+ showDemoDialog$1$2$child$context: function(child, context, $T) {
+ E.showDialog(new F._MyAppState_showDemoDialog_closure(child), context, $T._eval$1("0*")).then$1$1(0, new F._MyAppState_showDemoDialog_closure0(this, context, $T), type$.void);
+ },
+ _showAddressDialog$1: function(context) {
+ var _null = null,
+ t1 = L.InputDecoration$(_null, _null, _null, _null, _null, _null, _null, true, _null, _null, _null, _null, _null, _null, _null, C.FloatingLabelBehavior_1, _null, _null, _null, true, _null, _null, _null, _null, _null, this._server, _null, _null, false, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+ this.showDemoDialog$1$2$child$context(new E.AlertDialog(C.Text_ZwX, new Z.TextField(t1, C.TextInputType_0_null_null, C.TextAlign_2, C.SmartDashesType_1, C.SmartQuotesType_1, C.ToolbarOptions_true_true, new F._MyAppState__showAddressDialog_closure(this), _null), H.setRuntimeTypeInfo([N.FlatButton$(C.Text_23h, new F._MyAppState__showAddressDialog_closure0(context)), N.FlatButton$(C.Text_EyI, new F._MyAppState__showAddressDialog_closure1(context))], type$.JSArray_legacy_Widget), _null), context, type$.legacy_DialogDemoAction);
+ },
+ _initItems$0: function() {
+ this.items = H.setRuntimeTypeInfo([new L.RouteItem("P2P Call Sample", new F._MyAppState__initItems_closure(this)), new L.RouteItem("Data Channel Sample", new F._MyAppState__initItems_closure0(this))], type$.JSArray_legacy_RouteItem);
+ }
+ };
+ F._MyAppState__buildRow_closure.prototype = {
+ call$0: function() {
+ return this.item.push.call$1(this.context);
+ },
+ $signature: 13
+ };
+ F._MyAppState_build_closure.prototype = {
+ call$2: function(context, i) {
+ var t1 = this.$this;
+ return t1._buildRow$2(context, t1.items[i]);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 67
+ };
+ F._MyAppState__initData_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ t2 = J.$index$asx(t1._prefs._preferenceCache, "server");
+ t1._server = t2 == null ? "demo.cloudwebrtc.com" : t2;
+ },
+ $signature: 2
+ };
+ F._MyAppState_showDemoDialog_closure.prototype = {
+ call$1: function(context) {
+ return this.child;
+ },
+ $signature: 351
+ };
+ F._MyAppState_showDemoDialog_closure0.prototype = {
+ call$1: function(value) {
+ var t1;
+ if (value != null)
+ if (J.$eq$(value, C.DialogDemoAction_1)) {
+ t1 = this.$this;
+ t1._prefs._setValue$3("String", "server", t1._server);
+ t1 = V.MaterialPageRoute$(new F._MyAppState_showDemoDialog__closure(t1), null, type$.dynamic);
+ K.Navigator_of(this.context, false).push$1(t1);
+ }
+ },
+ $signature: function() {
+ return this.T._eval$1("Null(0*)");
+ }
+ };
+ F._MyAppState_showDemoDialog__closure.prototype = {
+ call$1: function(context) {
+ var t1 = this.$this,
+ t2 = t1._datachannel;
+ t1 = t1._server;
+ return t2 ? new T.DataChannelSample(t1, null) : new Q.CallSample(t1, null);
+ },
+ $signature: 352
+ };
+ F._MyAppState__showAddressDialog_closure.prototype = {
+ call$1: function(text) {
+ var t1 = this.$this;
+ t1.setState$1(new F._MyAppState__showAddressDialog__closure(t1, text));
+ },
+ $signature: 353
+ };
+ F._MyAppState__showAddressDialog__closure.prototype = {
+ call$0: function() {
+ this.$this._server = this.text;
+ },
+ $signature: 2
+ };
+ F._MyAppState__showAddressDialog_closure0.prototype = {
+ call$0: function() {
+ K.Navigator_of(this.context, false).pop$1(0, C.DialogDemoAction_0);
+ },
+ $signature: 2
+ };
+ F._MyAppState__showAddressDialog_closure1.prototype = {
+ call$0: function() {
+ K.Navigator_of(this.context, false).pop$1(0, C.DialogDemoAction_1);
+ },
+ $signature: 2
+ };
+ F._MyAppState__initItems_closure.prototype = {
+ call$1: function(context) {
+ var t1 = this.$this;
+ t1._datachannel = false;
+ t1._showAddressDialog$1(context);
+ },
+ $signature: 136
+ };
+ F._MyAppState__initItems_closure0.prototype = {
+ call$1: function(context) {
+ var t1 = this.$this;
+ t1._datachannel = true;
+ t1._showAddressDialog$1(context);
+ },
+ $signature: 136
+ };
+ Q.CallSample.prototype = {
+ createState$0: function() {
+ $.$get$RTCFactoryWeb_instance().toString;
+ return new Q._CallSampleState(new E.RTCVideoRenderer(V.RTCVideoRendererWeb$()), new E.RTCVideoRenderer(V.RTCVideoRendererWeb$()), C._StateLifecycle_0);
+ }
+ };
+ Q._CallSampleState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this.initRenderers$0();
+ this._connect$0(0);
+ },
+ initRenderers$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this;
+ var $async$initRenderers$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait($async$self._localRenderer._rtc_video_renderer$_delegate.initialize$0(0), $async$initRenderers$0);
+ case 2:
+ // returning from await.
+ $async$goto = 3;
+ return P._asyncAwait($async$self._remoteRenderer._rtc_video_renderer$_delegate.initialize$0(0), $async$initRenderers$0);
+ case 3:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$initRenderers$0, $async$completer);
+ },
+ deactivate$0: function() {
+ var t1, _this = this;
+ _this.super$State$deactivate();
+ t1 = _this._signaling;
+ if (t1 != null)
+ t1.close$0(0);
+ _this._localRenderer.dispose$0(0);
+ _this._remoteRenderer.dispose$0(0);
+ },
+ _connect$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this, t1;
+ var $async$_connect$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if ($async$self._signaling == null) {
+ t1 = L.Signaling$($async$self._widget.host);
+ t1.connect$0();
+ $async$self._signaling = t1;
+ t1.onSignalingStateChange = new Q._CallSampleState__connect_closure();
+ t1.onCallStateChange = new Q._CallSampleState__connect_closure0($async$self);
+ t1.onPeersUpdate = new Q._CallSampleState__connect_closure1($async$self);
+ t1.onLocalStream = new Q._CallSampleState__connect_closure2($async$self);
+ t1.onAddRemoteStream = new Q._CallSampleState__connect_closure3($async$self);
+ t1.onRemoveRemoteStream = new Q._CallSampleState__connect_closure4($async$self);
+ }
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_connect$0, $async$completer);
+ },
+ _invitePeer$3: function(context, peerId, useScreen) {
+ return this._invitePeer$body$_CallSampleState(context, peerId, useScreen);
+ },
+ _invitePeer$body$_CallSampleState: function(context, peerId, useScreen) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this, t2, t1;
+ var $async$_invitePeer$3 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._signaling;
+ if (t1 != null) {
+ t2 = $async$self._call_sample$_selfId;
+ t2 = peerId == null ? t2 != null : peerId !== t2;
+ } else
+ t2 = false;
+ if (t2)
+ t1.invite$3(peerId, "video", useScreen);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_invitePeer$3, $async$completer);
+ },
+ _hangUp$0: function() {
+ var t1 = this._signaling;
+ if (t1 != null)
+ t1.bye$1(this._session.sid);
+ },
+ _switchCamera$0: function() {
+ var t1 = this._signaling._localStream;
+ if (t1 != null)
+ t1.getVideoTracks$0(0)[0].switchCamera$0();
+ },
+ _muteMic$0: function() {
+ var enabled,
+ t1 = this._signaling,
+ t2 = t1._localStream;
+ if (t2 != null) {
+ enabled = t2.getAudioTracks$0(0)[0].jsTrack.enabled;
+ t1._localStream.getAudioTracks$0(0)[0].jsTrack.enabled = !enabled;
+ }
+ },
+ _call_sample$_buildRow$2: function(context, peer) {
+ var _null = null,
+ t1 = J.getInterceptor$asx(peer),
+ t2 = L.Text$(J.$eq$(t1.$index(peer, "id"), this._call_sample$_selfId) ? J.$add$ansx(t1.$index(peer, "name"), "[Your self]") : J.$add$ansx(J.$add$ansx(J.$add$ansx(t1.$index(peer, "name"), "["), t1.$index(peer, "user_agent")), "]"), _null, _null, _null, _null, _null),
+ t3 = type$.JSArray_legacy_Widget,
+ t4 = T.SizedBox$(T.Row$(H.setRuntimeTypeInfo([B.IconButton$(_null, C.Icon_IconData_60086_false_null, new Q._CallSampleState__buildRow_closure(this, context, peer), "Video calling"), B.IconButton$(_null, C.Icon_IconData_59824_true_null, new Q._CallSampleState__buildRow_closure0(this, context, peer), "Screen sharing")], t3), C.CrossAxisAlignment_2, C.MainAxisAlignment_3, C.MainAxisSize_1), _null, 100);
+ return T.ListBody$(H.setRuntimeTypeInfo([Q.ListTile$(_null, L.Text$(C.JSString_methods.$add("id: ", t1.$index(peer, "id")), _null, _null, _null, _null, _null), t2, t4), Z.Divider$()], t3));
+ },
+ build$1: function(_, context) {
+ var t3, _this = this, _null = null,
+ t1 = L.Text$("P2P Call Sample", _null, _null, _null, _null, _null),
+ t2 = type$.JSArray_legacy_Widget;
+ t1 = E.AppBar$(H.setRuntimeTypeInfo([B.IconButton$(_null, C.Icon_IconData_59846_false_null, _null, "setup")], t2), t1);
+ t2 = _this._inCalling ? T.SizedBox$(T.Row$(H.setRuntimeTypeInfo([E.FloatingActionButton$(_null, C.Icon_IconData_59983_false_null, false, _this.get$_switchCamera(), _null), E.FloatingActionButton$(C.MaterialColor_Map_JN0o6_4293467747, L.Icon$(C.IconData_58918_false), false, _this.get$_hangUp(), "Hangup"), E.FloatingActionButton$(_null, C.Icon_IconData_59504_false_null, false, _this.get$_muteMic(), _null)], t2), C.CrossAxisAlignment_2, C.MainAxisAlignment_3, C.MainAxisSize_1), _null, 200) : _null;
+ if (_this._inCalling)
+ t3 = new V.OrientationBuilder(new Q._CallSampleState_build_closure(_this), _null);
+ else {
+ t3 = _this._peers;
+ t3 = t3 != null ? J.get$length$asx(t3) : 0;
+ t3 = B.ListView$builder(new Q._CallSampleState_build_closure0(_this), t3, C.EdgeInsets_0_0_0_0, true);
+ }
+ return M.Scaffold$(t1, t3, t2, C.C__CenterFloatFabLocation);
+ }
+ };
+ Q._CallSampleState__connect_closure.prototype = {
+ call$1: function(state) {
+ switch (state) {
+ case C.SignalingState_1:
+ case C.SignalingState_2:
+ case C.SignalingState_0:
+ break;
+ }
+ },
+ $signature: 83
+ };
+ Q._CallSampleState__connect_closure0.prototype = {
+ call$2: function(session, state) {
+ var t1;
+ switch (state) {
+ case C.CallState_0:
+ t1 = this.$this;
+ t1.setState$1(new Q._CallSampleState__connect__closure0(t1, session));
+ break;
+ case C.CallState_4:
+ t1 = this.$this;
+ t1.setState$1(new Q._CallSampleState__connect__closure1(t1));
+ break;
+ case C.CallState_2:
+ case C.CallState_3:
+ case C.CallState_1:
+ break;
+ }
+ },
+ $signature: 102
+ };
+ Q._CallSampleState__connect__closure0.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._session = this.session;
+ t1._inCalling = true;
+ },
+ $signature: 2
+ };
+ Q._CallSampleState__connect__closure1.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._localRenderer._rtc_video_renderer$_delegate.set$srcObject(0, null);
+ t1._remoteRenderer._rtc_video_renderer$_delegate.set$srcObject(0, null);
+ t1._inCalling = false;
+ t1._session = null;
+ },
+ $signature: 2
+ };
+ Q._CallSampleState__connect_closure1.prototype = {
+ call$1: function($event) {
+ var t1 = this.$this;
+ t1.setState$1(new Q._CallSampleState__connect__closure(t1, $event));
+ },
+ $signature: 3
+ };
+ Q._CallSampleState__connect__closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ t2 = this.event;
+ t1._call_sample$_selfId = t2.$index(0, "self");
+ t1._peers = t2.$index(0, "peers");
+ },
+ $signature: 2
+ };
+ Q._CallSampleState__connect_closure2.prototype = {
+ call$2: function(_, stream) {
+ this.$this._localRenderer._rtc_video_renderer$_delegate.set$srcObject(0, stream);
+ },
+ $signature: 59
+ };
+ Q._CallSampleState__connect_closure3.prototype = {
+ call$2: function(_, stream) {
+ this.$this._remoteRenderer._rtc_video_renderer$_delegate.set$srcObject(0, stream);
+ },
+ $signature: 59
+ };
+ Q._CallSampleState__connect_closure4.prototype = {
+ call$2: function(_, stream) {
+ this.$this._remoteRenderer._rtc_video_renderer$_delegate.set$srcObject(0, null);
+ },
+ $signature: 59
+ };
+ Q._CallSampleState__buildRow_closure.prototype = {
+ call$0: function() {
+ return this.$this._invitePeer$3(this.context, J.$index$asx(this.peer, "id"), false);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 13
+ };
+ Q._CallSampleState__buildRow_closure0.prototype = {
+ call$0: function() {
+ return this.$this._invitePeer$3(this.context, J.$index$asx(this.peer, "id"), true);
+ },
+ "call*": "call$0",
+ $requiredArgCount: 0,
+ $signature: 13
+ };
+ Q._CallSampleState_build_closure.prototype = {
+ call$2: function(context, orientation) {
+ var t3, t4, _null = null,
+ t1 = type$.MediaQuery,
+ t2 = context.dependOnInheritedWidgetOfExactType$1$0(t1).data;
+ t1 = context.dependOnInheritedWidgetOfExactType$1$0(t1).data;
+ t3 = this.$this;
+ t2 = T.Positioned$(0, M.Container$(_null, R.RTCVideoView$(t3._remoteRenderer, false), _null, _null, new S.BoxDecoration(C.Color_2315255808, _null, _null, _null, _null, _null, C.BoxShape_0), t1.size._dy, new V.EdgeInsets(0, 0, 0, 0), _null, t2.size._dx), _null, _null, 0, 0, 0, _null);
+ t1 = orientation === C.Orientation_0;
+ t4 = t1 ? 90 : 120;
+ t1 = t1 ? 120 : 90;
+ return M.Container$(_null, T.Stack$(C.AlignmentDirectional_m1_m1, H.setRuntimeTypeInfo([t2, T.Positioned$(_null, M.Container$(_null, R.RTCVideoView$(t3._localRenderer, true), _null, _null, new S.BoxDecoration(C.Color_2315255808, _null, _null, _null, _null, _null, C.BoxShape_0), t1, _null, _null, t4), _null, _null, 20, _null, 20, _null)], type$.JSArray_legacy_Widget), C.StackFit_0), _null, _null, _null, _null, _null, _null, _null);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 358
+ };
+ Q._CallSampleState_build_closure0.prototype = {
+ call$2: function(context, i) {
+ var t1 = this.$this;
+ return t1._call_sample$_buildRow$2(context, J.$index$asx(t1._peers, i));
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 67
+ };
+ T.DataChannelSample.prototype = {
+ createState$0: function() {
+ return new T._DataChannelSampleState(C._StateLifecycle_0);
+ }
+ };
+ T._DataChannelSampleState.prototype = {
+ initState$0: function() {
+ this.super$State$initState();
+ this._data_channel_sample$_connect$0(0);
+ },
+ deactivate$0: function() {
+ this.super$State$deactivate();
+ var t1 = this._data_channel_sample$_signaling;
+ if (t1 != null)
+ t1.close$0(0);
+ t1 = this._data_channel_sample$_timer;
+ if (t1 != null)
+ t1.cancel$0(0);
+ },
+ _data_channel_sample$_connect$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this, t1;
+ var $async$_data_channel_sample$_connect$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if ($async$self._data_channel_sample$_signaling == null) {
+ t1 = L.Signaling$($async$self._widget.host);
+ t1.connect$0();
+ $async$self._data_channel_sample$_signaling = t1;
+ t1.onDataChannelMessage = new T._DataChannelSampleState__connect_closure($async$self);
+ t1.onDataChannel = new T._DataChannelSampleState__connect_closure0($async$self);
+ t1.onSignalingStateChange = new T._DataChannelSampleState__connect_closure1();
+ t1.onCallStateChange = new T._DataChannelSampleState__connect_closure2($async$self);
+ t1.onPeersUpdate = new T._DataChannelSampleState__connect_closure3($async$self);
+ }
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_data_channel_sample$_connect$0, $async$completer);
+ },
+ _handleDataChannelTest$1: function(timer) {
+ return this._handleDataChannelTest$body$_DataChannelSampleState(timer);
+ },
+ _handleDataChannelTest$body$_DataChannelSampleState: function(timer) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this, text, t1, t2, t3;
+ var $async$_handleDataChannelTest$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if ($async$self._dataChannel != null) {
+ text = C.JSString_methods.$add("Say hello " + C.JSInt_methods.toString$0(timer._tick) + " times, from [", $async$self._data_channel_sample$_selfId) + "]";
+ t1 = $async$self._dataChannel;
+ t2 = timer._tick;
+ t3 = new X.RTCDataChannelMessage();
+ t3._rtc_data_channel$_data = new Uint8Array(t2 + 1);
+ t3._isBinary = true;
+ t1.send$1(0, t3);
+ t3 = $async$self._dataChannel;
+ t1 = new X.RTCDataChannelMessage();
+ t1._rtc_data_channel$_data = text;
+ t1._isBinary = false;
+ t3.send$1(0, t1);
+ }
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_handleDataChannelTest$1, $async$completer);
+ },
+ _data_channel_sample$_invitePeer$2: function(context, peerId) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this;
+ var $async$_data_channel_sample$_invitePeer$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if ($async$self._data_channel_sample$_signaling != null && !J.$eq$(peerId, $async$self._data_channel_sample$_selfId))
+ $async$self._data_channel_sample$_signaling.invite$3(peerId, "data", false);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_data_channel_sample$_invitePeer$2, $async$completer);
+ },
+ _data_channel_sample$_hangUp$0: function() {
+ var t1 = this._data_channel_sample$_signaling;
+ if (t1 != null)
+ t1.bye$1(this._data_channel_sample$_session.sid);
+ },
+ _data_channel_sample$_buildRow$2: function(context, peer) {
+ var _null = null,
+ t1 = J.getInterceptor$asx(peer),
+ t2 = L.Text$(J.$eq$(t1.$index(peer, "id"), this._data_channel_sample$_selfId) ? J.$add$ansx(t1.$index(peer, "name"), "[Your self]") : J.$add$ansx(J.$add$ansx(J.$add$ansx(t1.$index(peer, "name"), "["), t1.$index(peer, "user_agent")), "]"), _null, _null, _null, _null, _null),
+ t3 = L.Icon$(C.IconData_59897_false);
+ return T.ListBody$(H.setRuntimeTypeInfo([Q.ListTile$(new T._DataChannelSampleState__buildRow_closure(this, context, peer), L.Text$(C.JSString_methods.$add("id: ", t1.$index(peer, "id")), _null, _null, _null, _null, _null), t2, t3), Z.Divider$()], type$.JSArray_legacy_Widget));
+ },
+ build$1: function(_, context) {
+ var t2, t3, _this = this, _null = null,
+ t1 = L.Text$("Data Channel Sample", _null, _null, _null, _null, _null);
+ t1 = E.AppBar$(H.setRuntimeTypeInfo([B.IconButton$(_null, C.Icon_IconData_59846_false_null, _null, "setup")], type$.JSArray_legacy_Widget), t1);
+ t2 = _this._data_channel_sample$_inCalling;
+ t3 = t2 ? E.FloatingActionButton$(_null, L.Icon$(C.IconData_58918_false), false, _this.get$_data_channel_sample$_hangUp(), "Hangup") : _null;
+ if (t2)
+ t2 = T.Center$(M.Container$(_null, L.Text$("Recevied => " + _this._data_channel_sample$_text, _null, _null, _null, _null, _null), _null, _null, _null, _null, _null, _null, _null), _null, _null);
+ else {
+ t2 = _this._data_channel_sample$_peers;
+ t2 = t2 != null ? J.get$length$asx(t2) : 0;
+ t2 = B.ListView$builder(new T._DataChannelSampleState_build_closure(_this), t2, C.EdgeInsets_0_0_0_0, true);
+ }
+ return M.Scaffold$(t1, t2, t3, _null);
+ }
+ };
+ T._DataChannelSampleState__connect_closure.prototype = {
+ call$3: function(_, dc, data) {
+ var t1 = this.$this;
+ t1.setState$1(new T._DataChannelSampleState__connect__closure2(t1, data));
+ },
+ $signature: 360
+ };
+ T._DataChannelSampleState__connect__closure2.prototype = {
+ call$0: function() {
+ var t1 = this.data,
+ t2 = t1._isBinary;
+ t1 = t1._rtc_data_channel$_data;
+ if (t2)
+ P.print("Got binary [" + P.IterableBase_iterableToFullString(t1, "[", "]") + "]");
+ else
+ this.$this._data_channel_sample$_text = t1;
+ },
+ $signature: 2
+ };
+ T._DataChannelSampleState__connect_closure0.prototype = {
+ call$2: function(_, channel) {
+ this.$this._dataChannel = channel;
+ },
+ $signature: 361
+ };
+ T._DataChannelSampleState__connect_closure1.prototype = {
+ call$1: function(state) {
+ switch (state) {
+ case C.SignalingState_1:
+ case C.SignalingState_2:
+ case C.SignalingState_0:
+ break;
+ }
+ },
+ $signature: 83
+ };
+ T._DataChannelSampleState__connect_closure2.prototype = {
+ call$2: function(session, state) {
+ var t1, t2;
+ switch (state) {
+ case C.CallState_0:
+ t1 = this.$this;
+ t1.setState$1(new T._DataChannelSampleState__connect__closure0(t1, session));
+ t1._data_channel_sample$_timer = P.Timer_Timer$periodic(P.Duration$(0, 0, 1), t1.get$_handleDataChannelTest());
+ break;
+ case C.CallState_4:
+ t1 = this.$this;
+ t1.setState$1(new T._DataChannelSampleState__connect__closure1(t1));
+ t2 = t1._data_channel_sample$_timer;
+ if (t2 != null) {
+ t2.cancel$0(0);
+ t1._data_channel_sample$_timer = null;
+ }
+ t1._dataChannel = null;
+ t1._data_channel_sample$_inCalling = false;
+ t1._data_channel_sample$_session = null;
+ t1._data_channel_sample$_text = "";
+ break;
+ case C.CallState_2:
+ case C.CallState_3:
+ case C.CallState_1:
+ break;
+ }
+ },
+ $signature: 102
+ };
+ T._DataChannelSampleState__connect__closure0.prototype = {
+ call$0: function() {
+ var t1 = this.$this;
+ t1._data_channel_sample$_session = this.session;
+ t1._data_channel_sample$_inCalling = true;
+ },
+ $signature: 2
+ };
+ T._DataChannelSampleState__connect__closure1.prototype = {
+ call$0: function() {
+ this.$this._data_channel_sample$_inCalling = false;
+ },
+ $signature: 2
+ };
+ T._DataChannelSampleState__connect_closure3.prototype = {
+ call$1: function($event) {
+ var t1 = this.$this;
+ t1.setState$1(new T._DataChannelSampleState__connect__closure(t1, $event));
+ },
+ $signature: 3
+ };
+ T._DataChannelSampleState__connect__closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ t2 = this.event;
+ t1._data_channel_sample$_selfId = t2.$index(0, "self");
+ t1._data_channel_sample$_peers = t2.$index(0, "peers");
+ },
+ $signature: 2
+ };
+ T._DataChannelSampleState__buildRow_closure.prototype = {
+ call$0: function() {
+ return this.$this._data_channel_sample$_invitePeer$2(this.context, J.$index$asx(this.peer, "id"));
+ },
+ $signature: 13
+ };
+ T._DataChannelSampleState_build_closure.prototype = {
+ call$2: function(context, i) {
+ var t1 = this.$this;
+ return t1._data_channel_sample$_buildRow$2(context, J.$index$asx(t1._data_channel_sample$_peers, i));
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 67
+ };
+ Q.randomString_closure.prototype = {
+ call$1: function(index) {
+ var t1 = this.from,
+ t2 = this.to;
+ if (t1 > t2)
+ H.throwExpression(P.Exception_Exception("" + t1 + " cannot be > " + t2));
+ return C.JSNumber_methods.toInt$0((t2 - t1) * C.C__JSRandom.nextDouble$0()) + t1;
+ },
+ $signature: 362
+ };
+ L.SignalingState.prototype = {
+ toString$0: function(_) {
+ return this._signaling$_name;
+ }
+ };
+ L.CallState.prototype = {
+ toString$0: function(_) {
+ return this._signaling$_name;
+ }
+ };
+ L.Session.prototype = {};
+ L.Signaling.prototype = {
+ close$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this, t1;
+ var $async$close$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait($async$self._cleanSessions$0(), $async$close$0);
+ case 2:
+ // returning from await.
+ t1 = $async$self._socket;
+ if (t1 != null) {
+ t1 = t1._websocket_web$_socket;
+ if (t1 != null)
+ t1.close();
+ }
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$close$0, $async$completer);
+ },
+ invite$3: function(peerId, media, useScreen) {
+ return this.invite$body$Signaling(peerId, media, useScreen);
+ },
+ invite$body$Signaling: function(peerId, media, useScreen) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this, t1, sessionId, session;
+ var $async$invite$3 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ sessionId = C.JSString_methods.$add($async$self._selfId + "-", peerId);
+ $async$goto = 2;
+ return P._asyncAwait($async$self._createSession$4$media$peerId$screenSharing$sessionId(0, media, peerId, useScreen, sessionId), $async$invite$3);
+ case 2:
+ // returning from await.
+ session = $async$result;
+ $async$self._sessions.$indexSet(0, sessionId, session);
+ if (media === "data")
+ $async$self._createDataChannel$1(session);
+ $async$self._createOffer$2(session, media);
+ t1 = $async$self.onCallStateChange;
+ if (t1 != null)
+ t1.call$2(session, C.CallState_0);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$invite$3, $async$completer);
+ },
+ bye$1: function(sessionId) {
+ var _this = this,
+ t1 = type$.legacy_String;
+ _this._send$2("bye", P.LinkedHashMap_LinkedHashMap$_literal(["session_id", sessionId, "from", _this._selfId], t1, t1));
+ _this._closeSession$1(_this._sessions.$index(0, sessionId));
+ },
+ onMessage$1: function(_, message) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$self = this, $event, peerId, description, media, sessionId, newSession, session, t2, candidateMap, candidate, t1, data;
+ var $async$onMessage$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = J.getInterceptor$asx(message);
+ data = t1.$index(message, "data");
+ case 2:
+ // switch
+ switch (t1.$index(message, "type")) {
+ case "peers":
+ // goto case
+ $async$goto = 4;
+ break;
+ case "offer":
+ // goto case
+ $async$goto = 5;
+ break;
+ case "answer":
+ // goto case
+ $async$goto = 6;
+ break;
+ case "candidate":
+ // goto case
+ $async$goto = 7;
+ break;
+ case "leave":
+ // goto case
+ $async$goto = 8;
+ break;
+ case "bye":
+ // goto case
+ $async$goto = 9;
+ break;
+ case "keepalive":
+ // goto case
+ $async$goto = 10;
+ break;
+ default:
+ // goto default
+ $async$goto = 11;
+ break;
+ }
+ break;
+ case 4:
+ // case
+ if ($async$self.onPeersUpdate != null) {
+ $event = new H.JsLinkedHashMap(type$.JsLinkedHashMap_of_legacy_String_and_dynamic);
+ $event.$indexSet(0, "self", $async$self._selfId);
+ $event.$indexSet(0, "peers", data);
+ t1 = $async$self.onPeersUpdate;
+ if (t1 != null)
+ t1.call$1($event);
+ }
+ // goto after switch
+ $async$goto = 3;
+ break;
+ case 5:
+ // case
+ t1 = J.getInterceptor$asx(data);
+ peerId = t1.$index(data, "from");
+ description = t1.$index(data, "description");
+ media = t1.$index(data, "media");
+ sessionId = t1.$index(data, "session_id");
+ t1 = $async$self._sessions;
+ $async$goto = 12;
+ return P._asyncAwait($async$self._createSession$5$media$peerId$screenSharing$session$sessionId(0, media, peerId, false, t1.$index(0, sessionId), sessionId), $async$onMessage$1);
+ case 12:
+ // returning from await.
+ newSession = $async$result;
+ t1.$indexSet(0, sessionId, newSession);
+ t1 = J.getInterceptor$asx(description);
+ $async$goto = 13;
+ return P._asyncAwait(newSession.pc.setRemoteDescription$1(0, new N.RTCSessionDescription(t1.$index(description, "sdp"), t1.$index(description, "type"))), $async$onMessage$1);
+ case 13:
+ // returning from await.
+ $async$goto = 14;
+ return P._asyncAwait($async$self._createAnswer$2(newSession, media), $async$onMessage$1);
+ case 14:
+ // returning from await.
+ t1 = newSession.remoteCandidates;
+ if (t1.length > 0) {
+ C.JSArray_methods.forEach$1(t1, new L.Signaling_onMessage_closure(newSession));
+ C.JSArray_methods.set$length(t1, 0);
+ }
+ t1 = $async$self.onCallStateChange;
+ if (t1 != null)
+ t1.call$2(newSession, C.CallState_0);
+ // goto after switch
+ $async$goto = 3;
+ break;
+ case 6:
+ // case
+ t1 = J.getInterceptor$asx(data);
+ description = t1.$index(data, "description");
+ session = $async$self._sessions.$index(0, t1.$index(data, "session_id"));
+ t1 = session == null ? null : session.pc;
+ if (t1 != null) {
+ t2 = J.getInterceptor$asx(description);
+ t1.setRemoteDescription$1(0, new N.RTCSessionDescription(t2.$index(description, "sdp"), t2.$index(description, "type")));
+ }
+ // goto after switch
+ $async$goto = 3;
+ break;
+ case 7:
+ // case
+ t1 = J.getInterceptor$asx(data);
+ peerId = t1.$index(data, "from");
+ candidateMap = t1.$index(data, "candidate");
+ sessionId = t1.$index(data, "session_id");
+ t1 = $async$self._sessions;
+ session = t1.$index(0, sessionId);
+ t2 = J.getInterceptor$asx(candidateMap);
+ candidate = new K.RTCIceCandidate(t2.$index(candidateMap, "candidate"), t2.$index(candidateMap, "sdpMid"), t2.$index(candidateMap, "sdpMLineIndex"));
+ $async$goto = session != null ? 15 : 17;
+ break;
+ case 15:
+ // then
+ t1 = session.pc;
+ $async$goto = t1 != null ? 18 : 20;
+ break;
+ case 18:
+ // then
+ $async$goto = 21;
+ return P._asyncAwait(t1.addCandidate$1(candidate), $async$onMessage$1);
+ case 21:
+ // returning from await.
+ // goto join
+ $async$goto = 19;
+ break;
+ case 20:
+ // else
+ session.remoteCandidates.push(candidate);
+ case 19:
+ // join
+ // goto join
+ $async$goto = 16;
+ break;
+ case 17:
+ // else
+ t2 = H.setRuntimeTypeInfo([], type$.JSArray_legacy_RTCIceCandidate);
+ t2.push(candidate);
+ t1.$indexSet(0, sessionId, new L.Session(peerId, sessionId, t2));
+ case 16:
+ // join
+ // goto after switch
+ $async$goto = 3;
+ break;
+ case 8:
+ // case
+ $async$self._closeSessionByPeerId$1(H._asStringS(data));
+ // goto after switch
+ $async$goto = 3;
+ break;
+ case 9:
+ // case
+ sessionId = J.$index$asx(data, "session_id");
+ P.print(C.JSString_methods.$add("bye: ", sessionId));
+ session = $async$self._sessions.remove$1(0, sessionId);
+ t1 = $async$self.onCallStateChange;
+ if (t1 != null)
+ t1.call$2(session, C.CallState_4);
+ $async$self._closeSession$1(session);
+ // goto after switch
+ $async$goto = 3;
+ break;
+ case 10:
+ // case
+ P.print("keepalive response!");
+ // goto after switch
+ $async$goto = 3;
+ break;
+ case 11:
+ // default
+ // goto after switch
+ $async$goto = 3;
+ break;
+ case 3:
+ // after switch
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$onMessage$1, $async$completer);
+ },
+ connect$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$handler = 1, $async$currentError, $async$next = [], $async$self = this, t3, exception, t1, url, t2, $async$exception;
+ var $async$connect$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._signaling$_host;
+ url = "https://" + H.S(t1) + ":8086/ws";
+ t2 = new M.SimpleWebSocket(url);
+ t2._url = H.stringReplaceAllUnchecked(url, "https:", "wss:");
+ $async$self._socket = t2;
+ P.print("connect to " + url);
+ $async$goto = $async$self._turnCredential == null ? 2 : 3;
+ break;
+ case 2:
+ // then
+ $async$handler = 5;
+ $async$goto = 8;
+ return P._asyncAwait(L.getTurnCredential(t1, 8086), $async$connect$0);
+ case 8:
+ // returning from await.
+ t1 = $async$result;
+ $async$self._turnCredential = t1;
+ t2 = type$.legacy_String;
+ t3 = type$.dynamic;
+ $async$self._iceServers = P.LinkedHashMap_LinkedHashMap$_literal(["iceServers", H.setRuntimeTypeInfo([P.LinkedHashMap_LinkedHashMap$_literal(["urls", J.$index$asx(J.$index$asx(t1, "uris"), 0), "username", J.$index$asx($async$self._turnCredential, "username"), "credential", J.$index$asx($async$self._turnCredential, "password")], t2, t3)], type$.JSArray_legacy_Map_of_legacy_String_and_dynamic)], t2, t3);
+ $async$handler = 1;
+ // goto after finally
+ $async$goto = 7;
+ break;
+ case 5:
+ // catch
+ $async$handler = 4;
+ $async$exception = $async$currentError;
+ H.unwrapException($async$exception);
+ // goto after finally
+ $async$goto = 7;
+ break;
+ case 4:
+ // uncaught
+ // goto rethrow
+ $async$goto = 1;
+ break;
+ case 7:
+ // after finally
+ case 3:
+ // join
+ t1 = $async$self._socket;
+ t1.onOpen = new L.Signaling_connect_closure($async$self);
+ t1.onMessage = new L.Signaling_connect_closure0($async$self);
+ t1.onClose = new L.Signaling_connect_closure1($async$self);
+ $async$goto = 9;
+ return P._asyncAwait(t1.connect$0(), $async$connect$0);
+ case 9:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ case 1:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$connect$0, $async$completer);
+ },
+ createStream$2: function(media, userScreen) {
+ return this.createStream$body$Signaling(media, userScreen);
+ },
+ createStream$body$Signaling: function(media, userScreen) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_MediaStream),
+ $async$returnValue, $async$self = this, stream, t1, mediaConstraints;
+ var $async$createStream$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = type$.legacy_String;
+ mediaConstraints = P.LinkedHashMap_LinkedHashMap$_literal(["audio", true, "video", P.LinkedHashMap_LinkedHashMap$_literal(["mandatory", P.LinkedHashMap_LinkedHashMap$_literal(["minWidth", "640", "minHeight", "480", "minFrameRate", "30"], t1, t1), "facingMode", "user", "optional", []], t1, type$.legacy_Object)], t1, type$.dynamic);
+ $async$goto = userScreen ? 3 : 5;
+ break;
+ case 3:
+ // then
+ $.$get$RTCFactoryWeb_instance().toString;
+ $async$goto = 6;
+ return P._asyncAwait(new G.MediaDevicesWeb().getDisplayMedia$1(mediaConstraints), $async$createStream$2);
+ case 6:
+ // returning from await.
+ stream = $async$result;
+ // goto join
+ $async$goto = 4;
+ break;
+ case 5:
+ // else
+ $.$get$RTCFactoryWeb_instance().toString;
+ $async$goto = 7;
+ return P._asyncAwait(new G.MediaDevicesWeb().getUserMedia$1(0, mediaConstraints), $async$createStream$2);
+ case 7:
+ // returning from await.
+ stream = $async$result;
+ case 4:
+ // join
+ t1 = $async$self.onLocalStream;
+ if (t1 != null)
+ t1.call$2(null, stream);
+ $async$returnValue = stream;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$createStream$2, $async$completer);
+ },
+ _createSession$5$media$peerId$screenSharing$session$sessionId: function(_, media, peerId, screenSharing, session, sessionId) {
+ return this._createSession$body$Signaling(_, media, peerId, screenSharing, session, sessionId);
+ },
+ _createSession$4$media$peerId$screenSharing$sessionId: function($receiver, media, peerId, screenSharing, sessionId) {
+ return this._createSession$5$media$peerId$screenSharing$session$sessionId($receiver, media, peerId, screenSharing, null, sessionId);
+ },
+ _createSession$body$Signaling: function(_, media, peerId, screenSharing, session, sessionId) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_Session),
+ $async$returnValue, $async$self = this, t2, t3, t4, t5, t6, pc, newSession, t1;
+ var $async$_createSession$5$media$peerId$screenSharing$session$sessionId = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ newSession = session == null ? new L.Session(peerId, sessionId, H.setRuntimeTypeInfo([], type$.JSArray_legacy_RTCIceCandidate)) : session;
+ t1 = media !== "data";
+ $async$goto = t1 ? 3 : 4;
+ break;
+ case 3:
+ // then
+ $async$goto = 5;
+ return P._asyncAwait($async$self.createStream$2(media, screenSharing), $async$_createSession$5$media$peerId$screenSharing$session$sessionId);
+ case 5:
+ // returning from await.
+ $async$self._localStream = $async$result;
+ case 4:
+ // join
+ P.print($async$self._iceServers);
+ t2 = type$.legacy_String;
+ t3 = type$.dynamic;
+ t4 = P.LinkedHashMap_LinkedHashMap$_empty(t2, t3);
+ for (t5 = $async$self._iceServers, t5 = t5.get$entries(t5), t5 = t5.get$iterator(t5); t5.moveNext$0();) {
+ t6 = t5.get$current(t5);
+ t4.$indexSet(0, t6.key, t6.value);
+ }
+ for (t2 = P.LinkedHashMap_LinkedHashMap$_literal(["sdpSemantics", "unified-plan"], t2, t3), t2 = t2.get$entries(t2), t2 = t2.get$iterator(t2); t2.moveNext$0();) {
+ t3 = t2.get$current(t2);
+ t4.$indexSet(0, t3.key, t3.value);
+ }
+ $async$goto = 6;
+ return P._asyncAwait($.$get$RTCFactoryWeb_instance().createPeerConnection$2(t4, $async$self._config), $async$_createSession$5$media$peerId$screenSharing$session$sessionId);
+ case 6:
+ // returning from await.
+ pc = $async$result;
+ if (t1)
+ C.JSArray_methods.forEach$1($async$self._localStream.getTracks$0(0), new L.Signaling__createSession_closure($async$self, pc));
+ pc.onIceCandidate = new L.Signaling__createSession_closure0($async$self, peerId, sessionId);
+ pc.onIceConnectionState = new L.Signaling__createSession_closure1();
+ pc.onTrack = new L.Signaling__createSession_closure2($async$self, newSession);
+ pc.onRemoveStream = new L.Signaling__createSession_closure3($async$self, newSession);
+ pc.onDataChannel = new L.Signaling__createSession_closure4($async$self, newSession);
+ newSession.pc = pc;
+ $async$returnValue = newSession;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_createSession$5$media$peerId$screenSharing$session$sessionId, $async$completer);
+ },
+ _addDataChannel$2: function(session, channel) {
+ var t1;
+ channel.onDataChannelState = new L.Signaling__addDataChannel_closure();
+ channel.onMessage = new L.Signaling__addDataChannel_closure0(this, session, channel);
+ session.dc = channel;
+ t1 = this.onDataChannel;
+ if (t1 != null)
+ t1.call$2(session, channel);
+ },
+ _createDataChannel$1: function(session) {
+ return this._createDataChannel$body$Signaling(session);
+ },
+ _createDataChannel$body$Signaling: function(session) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t2, t1, $async$temp1;
+ var $async$_createDataChannel$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = session.pc;
+ t1.toString;
+ t2 = P.LinkedHashMap_LinkedHashMap$_empty(type$.legacy_String, type$.dynamic);
+ t2.$indexSet(0, "ordered", true);
+ t2.$indexSet(0, "maxRetransmits", 30);
+ t2.$indexSet(0, "protocol", "sctp");
+ t2.$indexSet(0, "negotiated", false);
+ t2.$indexSet(0, "id", 0);
+ $async$temp1 = session;
+ $async$goto = 2;
+ return P._asyncAwait(P.Future_Future$value(Z.RTCDataChannelWeb$(C.RtcPeerConnection_methods.createDataChannel$2(t1._jsPc, "fileTransfer", t2)), type$.legacy_RTCDataChannel), $async$_createDataChannel$1);
+ case 2:
+ // returning from await.
+ $async$self._addDataChannel$2($async$temp1, $async$result);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_createDataChannel$1, $async$completer);
+ },
+ _createOffer$2: function(session, media) {
+ return this._createOffer$body$Signaling(session, media);
+ },
+ _createOffer$body$Signaling: function(session, media) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$handler = 1, $async$currentError, $async$next = [], $async$self = this, s, e, t1, exception, $async$exception;
+ var $async$_createOffer$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$handler = 3;
+ t1 = session.pc;
+ $async$goto = 6;
+ return P._asyncAwait(t1.createOffer$1(0, media === "data" ? $async$self._dcConstraints : P.LinkedHashMap_LinkedHashMap$_empty(type$.legacy_String, type$.dynamic)), $async$_createOffer$2);
+ case 6:
+ // returning from await.
+ s = $async$result;
+ $async$goto = 7;
+ return P._asyncAwait(session.pc.setLocalDescription$1(0, s), $async$_createOffer$2);
+ case 7:
+ // returning from await.
+ t1 = type$.legacy_String;
+ $async$self._send$2("offer", P.LinkedHashMap_LinkedHashMap$_literal(["to", session.pid, "from", $async$self._selfId, "description", P.LinkedHashMap_LinkedHashMap$_literal(["sdp", s.sdp, "type", s.type], t1, t1), "session_id", session.sid, "media", media], t1, type$.legacy_Object));
+ $async$handler = 1;
+ // goto after finally
+ $async$goto = 5;
+ break;
+ case 3:
+ // catch
+ $async$handler = 2;
+ $async$exception = $async$currentError;
+ e = H.unwrapException($async$exception);
+ P.print(J.toString$0$(e));
+ // goto after finally
+ $async$goto = 5;
+ break;
+ case 2:
+ // uncaught
+ // goto rethrow
+ $async$goto = 1;
+ break;
+ case 5:
+ // after finally
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ case 1:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_createOffer$2, $async$completer);
+ },
+ _createAnswer$2: function(session, media) {
+ return this._createAnswer$body$Signaling(session, media);
+ },
+ _createAnswer$body$Signaling: function(session, media) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$handler = 1, $async$currentError, $async$next = [], $async$self = this, s, e, t1, exception, $async$exception;
+ var $async$_createAnswer$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$handler = 3;
+ t1 = session.pc;
+ $async$goto = 6;
+ return P._asyncAwait(t1.createAnswer$1(0, media === "data" ? $async$self._dcConstraints : P.LinkedHashMap_LinkedHashMap$_empty(type$.legacy_String, type$.dynamic)), $async$_createAnswer$2);
+ case 6:
+ // returning from await.
+ s = $async$result;
+ $async$goto = 7;
+ return P._asyncAwait(session.pc.setLocalDescription$1(0, s), $async$_createAnswer$2);
+ case 7:
+ // returning from await.
+ t1 = type$.legacy_String;
+ $async$self._send$2("answer", P.LinkedHashMap_LinkedHashMap$_literal(["to", session.pid, "from", $async$self._selfId, "description", P.LinkedHashMap_LinkedHashMap$_literal(["sdp", s.sdp, "type", s.type], t1, t1), "session_id", session.sid], t1, type$.legacy_Object));
+ $async$handler = 1;
+ // goto after finally
+ $async$goto = 5;
+ break;
+ case 3:
+ // catch
+ $async$handler = 2;
+ $async$exception = $async$currentError;
+ e = H.unwrapException($async$exception);
+ P.print(J.toString$0$(e));
+ // goto after finally
+ $async$goto = 5;
+ break;
+ case 2:
+ // uncaught
+ // goto rethrow
+ $async$goto = 1;
+ break;
+ case 5:
+ // after finally
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ case 1:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_createAnswer$2, $async$completer);
+ },
+ _send$2: function($event, data) {
+ var t1, t2,
+ request = new H.JsLinkedHashMap(type$.JsLinkedHashMap_dynamic_dynamic);
+ request.$indexSet(0, "type", $event);
+ request.$indexSet(0, "data", data);
+ t1 = this._socket;
+ t2 = P._JsonStringStringifier_stringify(request, this._encoder._toEncodable, null);
+ t1 = t1._websocket_web$_socket;
+ if (t1 != null && t1.readyState === 1) {
+ t1.send(t2);
+ P.print("send: " + t2);
+ } else
+ P.print("WebSocket not connected, message " + t2 + " not sent");
+ },
+ _cleanSessions$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t1;
+ var $async$_cleanSessions$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._localStream;
+ $async$goto = t1 != null ? 2 : 3;
+ break;
+ case 2:
+ // then
+ C.JSArray_methods.forEach$1(t1.getTracks$0(0), new L.Signaling__cleanSessions_closure());
+ $async$goto = 4;
+ return P._asyncAwait($async$self._localStream.dispose$0(0), $async$_cleanSessions$0);
+ case 4:
+ // returning from await.
+ $async$self._localStream = null;
+ case 3:
+ // join
+ t1 = $async$self._sessions;
+ t1.forEach$1(0, new L.Signaling__cleanSessions_closure0());
+ t1.clear$0(0);
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_cleanSessions$0, $async$completer);
+ },
+ _closeSessionByPeerId$1: function(peerId) {
+ var t2, t1 = {};
+ t1.session = null;
+ t2 = this._sessions;
+ t2.removeWhere$1(t2, new L.Signaling__closeSessionByPeerId_closure(t1, peerId));
+ t2 = t1.session;
+ if (t2 != null) {
+ this._closeSession$1(t2);
+ t2 = this.onCallStateChange;
+ if (t2 != null)
+ t2.call$2(t1.session, C.CallState_4);
+ }
+ },
+ _closeSession$1: function(session) {
+ return this._closeSession$body$Signaling(session);
+ },
+ _closeSession$body$Signaling: function(session) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.void),
+ $async$self = this, t2, t1;
+ var $async$_closeSession$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = $async$self._localStream;
+ t1 = t1 == null ? null : t1.getTracks$0(0);
+ if (t1 != null)
+ C.JSArray_methods.forEach$1(t1, new L.Signaling__closeSession_closure());
+ t1 = $async$self._localStream;
+ $async$goto = 2;
+ return P._asyncAwait(t1 == null ? null : t1.dispose$0(0), $async$_closeSession$1);
+ case 2:
+ // returning from await.
+ $async$self._localStream = null;
+ t1 = session == null;
+ t2 = t1 ? null : session.pc;
+ $async$goto = 3;
+ return P._asyncAwait(t2 == null ? null : t2.close$0(0), $async$_closeSession$1);
+ case 3:
+ // returning from await.
+ t1 = t1 ? null : session.dc;
+ if (t1 == null)
+ t1 = null;
+ else {
+ t1._jsDc.close();
+ t1 = P.Future_Future$value(null, type$.void);
+ }
+ $async$goto = 4;
+ return P._asyncAwait(t1, $async$_closeSession$1);
+ case 4:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_closeSession$1, $async$completer);
+ }
+ };
+ L.Signaling_onMessage_closure.prototype = {
+ call$1: function(candidate) {
+ return this.$call$body$Signaling_onMessage_closure(candidate);
+ },
+ $call$body$Signaling_onMessage_closure: function(candidate) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Null),
+ $async$self = this;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait($async$self.newSession.pc.addCandidate$1(candidate), $async$call$1);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 363
+ };
+ L.Signaling_connect_closure.prototype = {
+ call$0: function() {
+ var t1, t2;
+ P.print("onOpen");
+ t1 = this.$this;
+ t2 = t1.onSignalingStateChange;
+ if (t2 != null)
+ t2.call$1(C.SignalingState_0);
+ t2 = type$.legacy_String;
+ t1._send$2("new", P.LinkedHashMap_LinkedHashMap$_literal(["name", C.JSString_methods.$add("Flutter Web ( ", window.navigator.userAgent) + " )", "id", t1._selfId, "user_agent", "flutter-webrtc/web-plugin 0.0.1"], t2, t2));
+ },
+ $signature: 2
+ };
+ L.Signaling_connect_closure0.prototype = {
+ call$1: function(message) {
+ var t1;
+ P.print(C.JSString_methods.$add("Received data: ", message));
+ t1 = this.$this;
+ t1.onMessage$1(0, P._parseJson(message, t1._decoder._reviver));
+ },
+ $signature: 3
+ };
+ L.Signaling_connect_closure1.prototype = {
+ call$2: function(code, reason) {
+ var t1;
+ P.print("Closed by server [" + H.S(code) + " => " + H.S(reason) + "]!");
+ t1 = this.$this.onSignalingStateChange;
+ if (t1 != null)
+ t1.call$1(C.SignalingState_1);
+ },
+ $signature: 364
+ };
+ L.Signaling__createSession_closure.prototype = {
+ call$1: function(track) {
+ return this.$call$body$Signaling__createSession_closure(track);
+ },
+ $call$body$Signaling__createSession_closure: function(track) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_RTCRtpSender),
+ $async$returnValue, $async$self = this;
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 3;
+ return P._asyncAwait($async$self.pc.addTrack$2(0, track, $async$self.$this._localStream), $async$call$1);
+ case 3:
+ // returning from await.
+ $async$returnValue = $async$result;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 365
+ };
+ L.Signaling__createSession_closure0.prototype = {
+ call$1: function(candidate) {
+ var t1 = this.$this,
+ t2 = type$.legacy_String,
+ t3 = type$.legacy_Object;
+ t1._send$2("candidate", P.LinkedHashMap_LinkedHashMap$_literal(["to", this.peerId, "from", t1._selfId, "candidate", P.LinkedHashMap_LinkedHashMap$_literal(["sdpMLineIndex", candidate.sdpMlineIndex, "sdpMid", candidate.sdpMid, "candidate", candidate.candidate], t2, t3), "session_id", this.sessionId], t2, t3));
+ },
+ $signature: 366
+ };
+ L.Signaling__createSession_closure1.prototype = {
+ call$1: function(state) {
+ },
+ $signature: 367
+ };
+ L.Signaling__createSession_closure2.prototype = {
+ call$1: function($event) {
+ var t1;
+ if ($event.track.jsTrack.kind === "video") {
+ t1 = this.$this.onAddRemoteStream;
+ if (t1 != null)
+ t1.call$2(this.newSession, $event.streams[0]);
+ }
+ },
+ $signature: 368
+ };
+ L.Signaling__createSession_closure3.prototype = {
+ call$1: function(stream) {
+ var t1 = this.$this,
+ t2 = t1.onRemoveRemoteStream;
+ if (t2 != null)
+ t2.call$2(this.newSession, stream);
+ t1 = t1._remoteStreams;
+ if (!!t1.fixed$length)
+ H.throwExpression(P.UnsupportedError$("removeWhere"));
+ C.JSArray_methods._removeWhere$2(t1, new L.Signaling__createSession__closure(stream), true);
+ },
+ $signature: 369
+ };
+ L.Signaling__createSession__closure.prototype = {
+ call$1: function(it) {
+ return it._media_stream$_id == this.stream._media_stream$_id;
+ },
+ $signature: 370
+ };
+ L.Signaling__createSession_closure4.prototype = {
+ call$1: function(channel) {
+ this.$this._addDataChannel$2(this.newSession, channel);
+ },
+ $signature: 371
+ };
+ L.Signaling__addDataChannel_closure.prototype = {
+ call$1: function(e) {
+ },
+ $signature: 372
+ };
+ L.Signaling__addDataChannel_closure0.prototype = {
+ call$1: function(data) {
+ var t1 = this.$this.onDataChannelMessage;
+ if (t1 != null)
+ t1.call$3(this.session, this.channel, data);
+ },
+ $signature: 373
+ };
+ L.Signaling__cleanSessions_closure.prototype = {
+ call$1: function(element) {
+ return this.$call$body$Signaling__cleanSessions_closure0(element);
+ },
+ $call$body$Signaling__cleanSessions_closure0: function(element) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Null);
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(element.dispose$0(0), $async$call$1);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 134
+ };
+ L.Signaling__cleanSessions_closure0.prototype = {
+ call$2: function(key, sess) {
+ return this.$call$body$Signaling__cleanSessions_closure(key, sess);
+ },
+ $call$body$Signaling__cleanSessions_closure: function(key, sess) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Null),
+ t1, t2;
+ var $async$call$2 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = sess == null;
+ t2 = t1 ? null : sess.pc;
+ $async$goto = 2;
+ return P._asyncAwait(t2 == null ? null : t2.close$0(0), $async$call$2);
+ case 2:
+ // returning from await.
+ t1 = t1 ? null : sess.dc;
+ if (t1 == null)
+ t1 = null;
+ else {
+ t1._jsDc.close();
+ t1 = P.Future_Future$value(null, type$.void);
+ }
+ $async$goto = 3;
+ return P._asyncAwait(t1, $async$call$2);
+ case 3:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$2, $async$completer);
+ },
+ $signature: 375
+ };
+ L.Signaling__closeSessionByPeerId_closure.prototype = {
+ call$2: function(key, sess) {
+ var t1, t2,
+ ids = key.split("-");
+ this._box_0.session = sess;
+ t1 = this.peerId;
+ t2 = ids[0];
+ if (t1 == null ? t2 != null : t1 !== t2) {
+ t2 = ids[1];
+ t2 = t1 == null ? t2 == null : t1 === t2;
+ t1 = t2;
+ } else
+ t1 = true;
+ return t1;
+ },
+ $signature: 376
+ };
+ L.Signaling__closeSession_closure.prototype = {
+ call$1: function(element) {
+ return this.$call$body$Signaling__closeSession_closure(element);
+ },
+ $call$body$Signaling__closeSession_closure: function(element) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.Null);
+ var $async$call$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ $async$goto = 2;
+ return P._asyncAwait(element.dispose$0(0), $async$call$1);
+ case 2:
+ // returning from await.
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$call$1, $async$completer);
+ },
+ $signature: 134
+ };
+ L.RouteItem.prototype = {};
+ M.SimpleWebSocket.prototype = {
+ connect$0: function() {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.dynamic),
+ $async$next = [], $async$self = this, e, t1, exception;
+ var $async$connect$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ try {
+ t1 = W.WebSocket_WebSocket($async$self._url);
+ $async$self._websocket_web$_socket = t1;
+ W._EventStreamSubscription$(t1, "open", new M.SimpleWebSocket_connect_closure($async$self), false, type$.legacy_Event);
+ t1 = $async$self._websocket_web$_socket;
+ t1.toString;
+ W._EventStreamSubscription$(t1, "message", new M.SimpleWebSocket_connect_closure0($async$self), false, type$.legacy_MessageEvent);
+ t1 = $async$self._websocket_web$_socket;
+ t1.toString;
+ W._EventStreamSubscription$(t1, "close", new M.SimpleWebSocket_connect_closure1($async$self), false, type$.legacy_CloseEvent);
+ } catch (exception) {
+ e = H.unwrapException(exception);
+ t1 = $async$self.onClose;
+ if (t1 != null)
+ t1.call$2(500, J.toString$0$(e));
+ }
+ // implicit return
+ return P._asyncReturn(null, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$connect$0, $async$completer);
+ }
+ };
+ M.SimpleWebSocket_connect_closure.prototype = {
+ call$1: function(e) {
+ var t1 = this.$this.onOpen;
+ if (t1 != null)
+ t1.call$0();
+ },
+ $signature: 3
+ };
+ M.SimpleWebSocket_connect_closure0.prototype = {
+ call$1: function(e) {
+ var t1 = this.$this.onMessage;
+ if (t1 != null)
+ t1.call$1(J.get$data$x(e));
+ },
+ $signature: 3
+ };
+ M.SimpleWebSocket_connect_closure1.prototype = {
+ call$1: function(e) {
+ var t2,
+ t1 = this.$this.onClose;
+ if (t1 != null) {
+ t2 = J.getInterceptor$x(e);
+ t1.call$2(t2.get$code(e), t2.get$reason(e));
+ }
+ },
+ $signature: 3
+ };
+ G.get_closure.prototype = {
+ call$1: function(client) {
+ return client._sendUnstreamed$3("GET", this.url, this.headers);
+ },
+ $signature: 377
+ };
+ E.BaseClient.prototype = {
+ _sendUnstreamed$3: function(method, url, headers) {
+ return this._sendUnstreamed$body$BaseClient(method, url, headers);
+ },
+ _sendUnstreamed$body$BaseClient: function(method, url, headers) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_Response),
+ $async$returnValue, $async$self = this, t1, request, $async$temp1;
+ var $async$_sendUnstreamed$3 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ t1 = P.Uri_parse(url);
+ request = O.Request$(method, t1);
+ $async$temp1 = U;
+ $async$goto = 3;
+ return P._asyncAwait($async$self.send$1(0, request), $async$_sendUnstreamed$3);
+ case 3:
+ // returning from await.
+ $async$returnValue = $async$temp1.Response_fromStream($async$result);
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$_sendUnstreamed$3, $async$completer);
+ },
+ $isClient0: 1
+ };
+ G.BaseRequest.prototype = {
+ finalize$0: function() {
+ if (this._finalized)
+ throw H.wrapException(P.StateError$("Can't finalize a finalized Request."));
+ this._finalized = true;
+ return null;
+ },
+ toString$0: function(_) {
+ return this.method + " " + this.url.toString$0(0);
+ }
+ };
+ G.BaseRequest_closure.prototype = {
+ call$2: function(key1, key2) {
+ return key1.toLowerCase() === key2.toLowerCase();
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 378
+ };
+ G.BaseRequest_closure0.prototype = {
+ call$1: function(key) {
+ return C.JSString_methods.get$hashCode(key.toLowerCase());
+ },
+ $signature: 379
+ };
+ T.BaseResponse.prototype = {
+ BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request: function(statusCode, contentLength, headers, isRedirect, persistentConnection, reasonPhrase, request) {
+ var t1 = this.statusCode;
+ if (t1 < 100)
+ throw H.wrapException(P.ArgumentError$("Invalid status code " + H.S(t1) + "."));
+ }
+ };
+ O.BrowserClient.prototype = {
+ send$1: function(_, request) {
+ return this.send$body$BrowserClient(_, request);
+ },
+ send$body$BrowserClient: function(_, request) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_StreamedResponse),
+ $async$returnValue, $async$handler = 2, $async$currentError, $async$next = [], $async$self = this, xhr, completer, bytes, t1, t2, t3, t4;
+ var $async$send$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1) {
+ $async$currentError = $async$result;
+ $async$goto = $async$handler;
+ }
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ request.super$BaseRequest$finalize();
+ $async$goto = 3;
+ return P._asyncAwait(new Z.ByteStream(P.Stream_Stream$fromIterable(H.setRuntimeTypeInfo([request._bodyBytes], type$.JSArray_legacy_List_legacy_int), type$.legacy_List_legacy_int)).toBytes$0(), $async$send$1);
+ case 3:
+ // returning from await.
+ bytes = $async$result;
+ xhr = new XMLHttpRequest();
+ t1 = $async$self._xhrs;
+ t1.add$1(0, xhr);
+ t2 = xhr;
+ J.open$3$async$x(t2, request.method, request.url.toString$0(0), true);
+ t2.responseType = "blob";
+ t2.withCredentials = false;
+ request.headers.forEach$1(0, J.get$setRequestHeader$x(xhr));
+ completer = new P._AsyncCompleter(new P._Future($.Zone__current, type$._Future_legacy_StreamedResponse), type$._AsyncCompleter_legacy_StreamedResponse);
+ t2 = type$._EventStream_legacy_ProgressEvent;
+ t3 = new W._EventStream(xhr, "load", false, t2);
+ t4 = type$.void;
+ t3.get$first(t3).then$1$1(0, new O.BrowserClient_send_closure(xhr, completer, request), t4);
+ t2 = new W._EventStream(xhr, "error", false, t2);
+ t2.get$first(t2).then$1$1(0, new O.BrowserClient_send_closure0(completer, request), t4);
+ J.send$1$x(xhr, bytes);
+ $async$handler = 4;
+ $async$goto = 7;
+ return P._asyncAwait(completer.future, $async$send$1);
+ case 7:
+ // returning from await.
+ t2 = $async$result;
+ $async$returnValue = t2;
+ $async$next = [1];
+ // goto finally
+ $async$goto = 5;
+ break;
+ $async$next.push(6);
+ // goto finally
+ $async$goto = 5;
+ break;
+ case 4:
+ // uncaught
+ $async$next = [2];
+ case 5:
+ // finally
+ $async$handler = 2;
+ t1.remove$1(0, xhr);
+ // goto the next finally handler
+ $async$goto = $async$next.pop();
+ break;
+ case 6:
+ // after finally
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ case 2:
+ // rethrow
+ return P._asyncRethrow($async$currentError, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$send$1, $async$completer);
+ },
+ close$0: function(_) {
+ var t1;
+ for (t1 = this._xhrs, t1 = P._LinkedHashSetIterator$(t1, t1._collection$_modifications); t1.moveNext$0();)
+ t1._collection$_current.abort();
+ }
+ };
+ O.BrowserClient_send_closure.prototype = {
+ call$1: function(_) {
+ var reader, t2, t3, t4, t5, t6,
+ t1 = this.xhr,
+ blob = type$.legacy_Blob._as(W._convertNativeToDart_XHR_Response(t1.response));
+ if (blob == null)
+ blob = W.Blob_Blob([]);
+ reader = new FileReader();
+ t2 = type$._EventStream_legacy_ProgressEvent;
+ t3 = new W._EventStream(reader, "load", false, t2);
+ t4 = this.completer;
+ t5 = this.request;
+ t6 = type$.Null;
+ t3.get$first(t3).then$1$1(0, new O.BrowserClient_send__closure(reader, t4, t1, t5), t6);
+ t2 = new W._EventStream(reader, "error", false, t2);
+ t2.get$first(t2).then$1$1(0, new O.BrowserClient_send__closure0(t4, t5), t6);
+ reader.readAsArrayBuffer(blob);
+ },
+ $signature: 54
+ };
+ O.BrowserClient_send__closure.prototype = {
+ call$1: function(_) {
+ var _this = this,
+ body = type$.legacy_Uint8List._as(C.FileReader_methods.get$result(_this.reader)),
+ t1 = P.Stream_Stream$fromIterable(H.setRuntimeTypeInfo([body], type$.JSArray_legacy_List_legacy_int), type$.legacy_List_legacy_int),
+ t2 = _this.xhr,
+ t3 = t2.status,
+ t4 = body.length,
+ t5 = _this.request,
+ t6 = C.HttpRequest_methods.get$responseHeaders(t2);
+ t2 = t2.statusText;
+ t1 = new X.StreamedResponse(B.toByteStream(new Z.ByteStream(t1)), t5, t3, t2, t4, t6, false, true);
+ t1.BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request(t3, t4, t6, false, true, t2, t5);
+ _this.completer.complete$1(0, t1);
+ },
+ $signature: 54
+ };
+ O.BrowserClient_send__closure0.prototype = {
+ call$1: function(error) {
+ this.completer.completeError$2(new E.ClientException(J.toString$0$(error)), P.StackTrace_current());
+ },
+ $signature: 54
+ };
+ O.BrowserClient_send_closure0.prototype = {
+ call$1: function(_) {
+ this.completer.completeError$2(new E.ClientException("XMLHttpRequest error."), P.StackTrace_current());
+ },
+ $signature: 54
+ };
+ Z.ByteStream.prototype = {
+ toBytes$0: function() {
+ var t1 = new P._Future($.Zone__current, type$._Future_legacy_Uint8List),
+ completer = new P._AsyncCompleter(t1, type$._AsyncCompleter_legacy_Uint8List),
+ sink = new P._ByteCallbackSink(new Z.ByteStream_toBytes_closure(completer), new Uint8Array(1024));
+ this.listen$4$cancelOnError$onDone$onError(sink.get$add(sink), true, sink.get$close(sink), completer.get$completeError());
+ return t1;
+ }
+ };
+ Z.ByteStream_toBytes_closure.prototype = {
+ call$1: function(bytes) {
+ return this.completer.complete$1(0, new Uint8Array(H._ensureNativeList(bytes)));
+ },
+ $signature: 381
+ };
+ E.ClientException.prototype = {
+ toString$0: function(_) {
+ return this.message;
+ },
+ $isException: 1
+ };
+ O.Request.prototype = {};
+ U.Response.prototype = {};
+ X.StreamedResponse.prototype = {};
+ Z.CaseInsensitiveMap.prototype = {};
+ Z.CaseInsensitiveMap$from_closure.prototype = {
+ call$1: function(key) {
+ return key.toLowerCase();
+ },
+ $signature: 382
+ };
+ Z.CaseInsensitiveMap$from_closure0.prototype = {
+ call$1: function(key) {
+ return key != null;
+ },
+ $signature: 383
+ };
+ R.MediaType.prototype = {
+ toString$0: function(_) {
+ var buffer = new P.StringBuffer(""),
+ t1 = this.type;
+ buffer._contents = t1;
+ t1 += "/";
+ buffer._contents = t1;
+ buffer._contents = t1 + this.subtype;
+ this.parameters._collection$_map.forEach$1(0, new R.MediaType_toString_closure(buffer));
+ t1 = buffer._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ R.MediaType_MediaType$parse_closure.prototype = {
+ call$0: function() {
+ var t3, type, subtype, t4, parameters, t5, success, attribute, value,
+ t1 = this.mediaType,
+ scanner = new X.StringScanner(null, t1),
+ t2 = $.$get$whitespace();
+ scanner.scan$1(t2);
+ t3 = $.$get$token();
+ scanner.expect$1(t3);
+ type = scanner.get$lastMatch().$index(0, 0);
+ scanner.expect$1("/");
+ scanner.expect$1(t3);
+ subtype = scanner.get$lastMatch().$index(0, 0);
+ scanner.scan$1(t2);
+ t4 = type$.legacy_String;
+ parameters = P.LinkedHashMap_LinkedHashMap$_empty(t4, t4);
+ while (true) {
+ t4 = scanner._lastMatch = C.JSString_methods.matchAsPrefix$2(";", t1, scanner._string_scanner$_position);
+ t5 = scanner._lastMatchPosition = scanner._string_scanner$_position;
+ success = t4 != null;
+ t4 = success ? scanner._lastMatchPosition = scanner._string_scanner$_position = t4.get$end(t4) : t5;
+ if (!success)
+ break;
+ t4 = scanner._lastMatch = t2.matchAsPrefix$2(0, t1, t4);
+ scanner._lastMatchPosition = scanner._string_scanner$_position;
+ if (t4 != null)
+ scanner._lastMatchPosition = scanner._string_scanner$_position = t4.get$end(t4);
+ scanner.expect$1(t3);
+ if (scanner._string_scanner$_position !== scanner._lastMatchPosition)
+ scanner._lastMatch = null;
+ attribute = scanner._lastMatch.$index(0, 0);
+ scanner.expect$1("=");
+ t4 = scanner._lastMatch = t3.matchAsPrefix$2(0, t1, scanner._string_scanner$_position);
+ t5 = scanner._lastMatchPosition = scanner._string_scanner$_position;
+ success = t4 != null;
+ if (success) {
+ t4 = scanner._lastMatchPosition = scanner._string_scanner$_position = t4.get$end(t4);
+ t5 = t4;
+ } else
+ t4 = t5;
+ if (success) {
+ if (t4 !== t5)
+ scanner._lastMatch = null;
+ value = scanner._lastMatch.$index(0, 0);
+ } else
+ value = N.expectQuotedString(scanner);
+ t4 = scanner._lastMatch = t2.matchAsPrefix$2(0, t1, scanner._string_scanner$_position);
+ scanner._lastMatchPosition = scanner._string_scanner$_position;
+ if (t4 != null)
+ scanner._lastMatchPosition = scanner._string_scanner$_position = t4.get$end(t4);
+ parameters.$indexSet(0, attribute, value);
+ }
+ scanner.expectDone$0();
+ return R.MediaType$(type, subtype, parameters);
+ },
+ $signature: 384
+ };
+ R.MediaType_toString_closure.prototype = {
+ call$2: function(attribute, value) {
+ var t2,
+ t1 = this.buffer;
+ t1._contents += "; " + H.S(attribute) + "=";
+ t2 = $.$get$nonToken()._nativeRegExp;
+ if (typeof value != "string")
+ H.throwExpression(H.argumentErrorValue(value));
+ if (t2.test(value)) {
+ t1._contents += '"';
+ t2 = $.$get$_escapedChar();
+ value.toString;
+ t2 = t1._contents += H.stringReplaceAllFuncUnchecked(value, t2, new R.MediaType_toString__closure(), null);
+ t1._contents = t2 + '"';
+ } else
+ t1._contents += H.S(value);
+ },
+ $signature: 385
+ };
+ R.MediaType_toString__closure.prototype = {
+ call$1: function(match) {
+ return "\\" + H.S(match.$index(0, 0));
+ },
+ $signature: 112
+ };
+ N.expectQuotedString_closure.prototype = {
+ call$1: function(match) {
+ return match.$index(0, 1);
+ },
+ $signature: 112
+ };
+ M.Context.prototype = {
+ get$current: function(_) {
+ var t1 = this._context$_current;
+ return t1 == null ? D.current() : t1;
+ },
+ absolute$1: function(_, part1) {
+ var t1, _this = this, _null = null;
+ M._validateArgList("absolute", H.setRuntimeTypeInfo([part1, null, null, null, null, null, null], type$.JSArray_nullable_String));
+ t1 = _this.style;
+ t1 = t1.rootLength$1(part1) > 0 && !t1.isRootRelative$1(part1);
+ if (t1)
+ return part1;
+ return _this.join$8(0, _this.get$current(_this), part1, _null, _null, _null, _null, _null, _null);
+ },
+ join$8: function(_, part1, part2, part3, part4, part5, part6, part7, part8) {
+ var parts = H.setRuntimeTypeInfo([part1, part2, part3, part4, part5, part6, part7, part8], type$.JSArray_nullable_String);
+ M._validateArgList("join", parts);
+ return this.joinAll$1(new H.WhereTypeIterable(parts, type$.WhereTypeIterable_String));
+ },
+ joinAll$1: function(parts) {
+ var t1, t2, t3, needsSeparator, isAbsoluteAndNotRootRelative, t4, t5, parsed, path;
+ for (t1 = J.where$1$ax(parts, new M.Context_joinAll_closure()), t2 = J.get$iterator$ax(t1._iterable), t1 = new H.WhereIterator(t2, t1._f), t3 = this.style, needsSeparator = false, isAbsoluteAndNotRootRelative = false, t4 = ""; t1.moveNext$0();) {
+ t5 = t2.get$current(t2);
+ if (t3.isRootRelative$1(t5) && isAbsoluteAndNotRootRelative) {
+ parsed = X.ParsedPath_ParsedPath$parse(t5, t3);
+ path = t4.charCodeAt(0) == 0 ? t4 : t4;
+ t4 = C.JSString_methods.substring$2(path, 0, t3.rootLength$2$withDrive(path, true));
+ parsed.root = t4;
+ if (t3.needsSeparator$1(t4))
+ parsed.separators[0] = t3.get$separator();
+ t4 = parsed.toString$0(0);
+ } else if (t3.rootLength$1(t5) > 0) {
+ isAbsoluteAndNotRootRelative = !t3.isRootRelative$1(t5);
+ t4 = H.S(t5);
+ } else {
+ if (!(t5.length !== 0 && t3.containsSeparator$1(t5[0])))
+ if (needsSeparator)
+ t4 += t3.get$separator();
+ t4 += t5;
+ }
+ needsSeparator = t3.needsSeparator$1(t5);
+ }
+ return t4.charCodeAt(0) == 0 ? t4 : t4;
+ },
+ split$1: function(_, path) {
+ var parsed = X.ParsedPath_ParsedPath$parse(path, this.style),
+ t1 = parsed.parts,
+ t2 = H._arrayInstanceType(t1)._eval$1("WhereIterable<1>");
+ t2 = P.List_List$of(new H.WhereIterable(t1, new M.Context_split_closure(), t2), true, t2._eval$1("Iterable.E"));
+ parsed.parts = t2;
+ t1 = parsed.root;
+ if (t1 != null)
+ C.JSArray_methods.insert$2(t2, 0, t1);
+ return parsed.parts;
+ },
+ normalize$1: function(_, path) {
+ var parsed;
+ if (!this._needsNormalization$1(path))
+ return path;
+ parsed = X.ParsedPath_ParsedPath$parse(path, this.style);
+ parsed.normalize$0(0);
+ return parsed.toString$0(0);
+ },
+ _needsNormalization$1: function(path) {
+ var t1, root, i, start, previous, t2, t3, previousPrevious, codeUnit, t4;
+ path.toString;
+ t1 = this.style;
+ root = t1.rootLength$1(path);
+ if (root !== 0) {
+ if (t1 === $.$get$Style_windows())
+ for (i = 0; i < root; ++i)
+ if (C.JSString_methods._codeUnitAt$1(path, i) === 47)
+ return true;
+ start = root;
+ previous = 47;
+ } else {
+ start = 0;
+ previous = null;
+ }
+ for (t2 = new H.CodeUnits(path)._string, t3 = t2.length, i = start, previousPrevious = null; i < t3; ++i, previousPrevious = previous, previous = codeUnit) {
+ codeUnit = C.JSString_methods.codeUnitAt$1(t2, i);
+ if (t1.isSeparator$1(codeUnit)) {
+ if (t1 === $.$get$Style_windows() && codeUnit === 47)
+ return true;
+ if (previous != null && t1.isSeparator$1(previous))
+ return true;
+ if (previous === 46)
+ t4 = previousPrevious == null || previousPrevious === 46 || t1.isSeparator$1(previousPrevious);
+ else
+ t4 = false;
+ if (t4)
+ return true;
+ }
+ }
+ if (previous == null)
+ return true;
+ if (t1.isSeparator$1(previous))
+ return true;
+ if (previous === 46)
+ t1 = previousPrevious == null || t1.isSeparator$1(previousPrevious) || previousPrevious === 46;
+ else
+ t1 = false;
+ if (t1)
+ return true;
+ return false;
+ },
+ relative$1: function(path) {
+ var from, fromParsed, pathParsed, t3, _this = this,
+ _s26_ = 'Unable to find a path to "',
+ t1 = _this.style,
+ t2 = t1.rootLength$1(path);
+ if (t2 <= 0)
+ return _this.normalize$1(0, path);
+ from = _this.get$current(_this);
+ if (t1.rootLength$1(from) <= 0 && t1.rootLength$1(path) > 0)
+ return _this.normalize$1(0, path);
+ if (t1.rootLength$1(path) <= 0 || t1.isRootRelative$1(path))
+ path = _this.absolute$1(0, path);
+ if (t1.rootLength$1(path) <= 0 && t1.rootLength$1(from) > 0)
+ throw H.wrapException(X.PathException$(_s26_ + H.S(path) + '" from "' + H.S(from) + '".'));
+ fromParsed = X.ParsedPath_ParsedPath$parse(from, t1);
+ fromParsed.normalize$0(0);
+ pathParsed = X.ParsedPath_ParsedPath$parse(path, t1);
+ pathParsed.normalize$0(0);
+ t2 = fromParsed.parts;
+ if (t2.length !== 0 && J.$eq$(t2[0], "."))
+ return pathParsed.toString$0(0);
+ t2 = fromParsed.root;
+ t3 = pathParsed.root;
+ if (t2 != t3)
+ t2 = t2 == null || t3 == null || !t1.pathsEqual$2(t2, t3);
+ else
+ t2 = false;
+ if (t2)
+ return pathParsed.toString$0(0);
+ while (true) {
+ t2 = fromParsed.parts;
+ if (t2.length !== 0) {
+ t3 = pathParsed.parts;
+ t2 = t3.length !== 0 && t1.pathsEqual$2(t2[0], t3[0]);
+ } else
+ t2 = false;
+ if (!t2)
+ break;
+ C.JSArray_methods.removeAt$1(fromParsed.parts, 0);
+ C.JSArray_methods.removeAt$1(fromParsed.separators, 1);
+ C.JSArray_methods.removeAt$1(pathParsed.parts, 0);
+ C.JSArray_methods.removeAt$1(pathParsed.separators, 1);
+ }
+ t2 = fromParsed.parts;
+ if (t2.length !== 0 && J.$eq$(t2[0], ".."))
+ throw H.wrapException(X.PathException$(_s26_ + H.S(path) + '" from "' + H.S(from) + '".'));
+ t2 = type$.String;
+ C.JSArray_methods.insertAll$2(pathParsed.parts, 0, P.List_List$filled(fromParsed.parts.length, "..", false, t2));
+ t3 = pathParsed.separators;
+ t3[0] = "";
+ C.JSArray_methods.insertAll$2(t3, 1, P.List_List$filled(fromParsed.parts.length, t1.get$separator(), false, t2));
+ t1 = pathParsed.parts;
+ t2 = t1.length;
+ if (t2 === 0)
+ return ".";
+ if (t2 > 1 && J.$eq$(C.JSArray_methods.get$last(t1), ".")) {
+ C.JSArray_methods.removeLast$0(pathParsed.parts);
+ t1 = pathParsed.separators;
+ t1.pop();
+ t1.pop();
+ t1.push("");
+ }
+ pathParsed.root = "";
+ pathParsed.removeTrailingSeparators$0();
+ return pathParsed.toString$0(0);
+ },
+ prettyUri$1: function(uri) {
+ var path, rel, _this = this,
+ typedUri = M._parseUri(uri);
+ if (typedUri.get$scheme() === "file" && _this.style == $.$get$Style_url())
+ return typedUri.toString$0(0);
+ else if (typedUri.get$scheme() !== "file" && typedUri.get$scheme() !== "" && _this.style != $.$get$Style_url())
+ return typedUri.toString$0(0);
+ path = _this.normalize$1(0, _this.style.pathFromUri$1(M._parseUri(typedUri)));
+ rel = _this.relative$1(path);
+ return _this.split$1(0, rel).length > _this.split$1(0, path).length ? path : rel;
+ }
+ };
+ M.Context_joinAll_closure.prototype = {
+ call$1: function(part) {
+ return part !== "";
+ },
+ $signature: 30
+ };
+ M.Context_split_closure.prototype = {
+ call$1: function(part) {
+ return part.length !== 0;
+ },
+ $signature: 30
+ };
+ M._validateArgList_closure.prototype = {
+ call$1: function(arg) {
+ return arg == null ? "null" : '"' + arg + '"';
+ },
+ $signature: 387
+ };
+ B.InternalStyle.prototype = {
+ getRoot$1: function(path) {
+ var $length = this.rootLength$1(path);
+ if ($length > 0)
+ return J.substring$2$s(path, 0, $length);
+ return this.isRootRelative$1(path) ? path[0] : null;
+ },
+ pathsEqual$2: function(path1, path2) {
+ return path1 == path2;
+ }
+ };
+ X.ParsedPath.prototype = {
+ removeTrailingSeparators$0: function() {
+ var t1, t2, _this = this;
+ while (true) {
+ t1 = _this.parts;
+ if (!(t1.length !== 0 && J.$eq$(C.JSArray_methods.get$last(t1), "")))
+ break;
+ C.JSArray_methods.removeLast$0(_this.parts);
+ _this.separators.pop();
+ }
+ t1 = _this.separators;
+ t2 = t1.length;
+ if (t2 !== 0)
+ t1[t2 - 1] = "";
+ },
+ normalize$0: function(_) {
+ var t1, t2, leadingDoubles, _i, part, t3, _this = this,
+ newParts = H.setRuntimeTypeInfo([], type$.JSArray_String);
+ for (t1 = _this.parts, t2 = t1.length, leadingDoubles = 0, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ part = t1[_i];
+ t3 = J.getInterceptor$(part);
+ if (!(t3.$eq(part, ".") || t3.$eq(part, "")))
+ if (t3.$eq(part, ".."))
+ if (newParts.length !== 0)
+ newParts.pop();
+ else
+ ++leadingDoubles;
+ else
+ newParts.push(part);
+ }
+ if (_this.root == null)
+ C.JSArray_methods.insertAll$2(newParts, 0, P.List_List$filled(leadingDoubles, "..", false, type$.String));
+ if (newParts.length === 0 && _this.root == null)
+ newParts.push(".");
+ _this.parts = newParts;
+ t1 = _this.style;
+ _this.separators = P.List_List$filled(newParts.length + 1, t1.get$separator(), true, type$.String);
+ t2 = _this.root;
+ if (t2 == null || newParts.length === 0 || !t1.needsSeparator$1(t2))
+ _this.separators[0] = "";
+ t2 = _this.root;
+ if (t2 != null && t1 === $.$get$Style_windows()) {
+ t2.toString;
+ _this.root = H.stringReplaceAllUnchecked(t2, "/", "\\");
+ }
+ _this.removeTrailingSeparators$0();
+ },
+ toString$0: function(_) {
+ var i, _this = this,
+ t1 = _this.root;
+ t1 = t1 != null ? t1 : "";
+ for (i = 0; i < _this.parts.length; ++i)
+ t1 = t1 + H.S(_this.separators[i]) + H.S(_this.parts[i]);
+ t1 += H.S(C.JSArray_methods.get$last(_this.separators));
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ X.PathException.prototype = {
+ toString$0: function(_) {
+ return "PathException: " + this.message;
+ },
+ $isException: 1
+ };
+ O.Style.prototype = {
+ toString$0: function(_) {
+ return this.get$name(this);
+ }
+ };
+ E.PosixStyle.prototype = {
+ containsSeparator$1: function(path) {
+ return C.JSString_methods.contains$1(path, "/");
+ },
+ isSeparator$1: function(codeUnit) {
+ return codeUnit === 47;
+ },
+ needsSeparator$1: function(path) {
+ var t1 = path.length;
+ return t1 !== 0 && C.JSString_methods.codeUnitAt$1(path, t1 - 1) !== 47;
+ },
+ rootLength$2$withDrive: function(path, withDrive) {
+ if (path.length !== 0 && C.JSString_methods._codeUnitAt$1(path, 0) === 47)
+ return 1;
+ return 0;
+ },
+ rootLength$1: function(path) {
+ return this.rootLength$2$withDrive(path, false);
+ },
+ isRootRelative$1: function(path) {
+ return false;
+ },
+ pathFromUri$1: function(uri) {
+ var t1;
+ if (uri.get$scheme() === "" || uri.get$scheme() === "file") {
+ t1 = uri.get$path(uri);
+ return P._Uri__uriDecode(t1, 0, t1.length, C.C_Utf8Codec, false);
+ }
+ throw H.wrapException(P.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'."));
+ },
+ get$name: function() {
+ return "posix";
+ },
+ get$separator: function() {
+ return "/";
+ }
+ };
+ F.UrlStyle.prototype = {
+ containsSeparator$1: function(path) {
+ return C.JSString_methods.contains$1(path, "/");
+ },
+ isSeparator$1: function(codeUnit) {
+ return codeUnit === 47;
+ },
+ needsSeparator$1: function(path) {
+ var t1 = path.length;
+ if (t1 === 0)
+ return false;
+ if (C.JSString_methods.codeUnitAt$1(path, t1 - 1) !== 47)
+ return true;
+ return C.JSString_methods.endsWith$1(path, "://") && this.rootLength$1(path) === t1;
+ },
+ rootLength$2$withDrive: function(path, withDrive) {
+ var i, codeUnit, index, t2,
+ t1 = path.length;
+ if (t1 === 0)
+ return 0;
+ if (C.JSString_methods._codeUnitAt$1(path, 0) === 47)
+ return 1;
+ for (i = 0; i < t1; ++i) {
+ codeUnit = C.JSString_methods._codeUnitAt$1(path, i);
+ if (codeUnit === 47)
+ return 0;
+ if (codeUnit === 58) {
+ if (i === 0)
+ return 0;
+ index = C.JSString_methods.indexOf$2(path, "/", C.JSString_methods.startsWith$2(path, "//", i + 1) ? i + 3 : i);
+ if (index <= 0)
+ return t1;
+ if (!withDrive || t1 < index + 3)
+ return index;
+ if (!C.JSString_methods.startsWith$1(path, "file://"))
+ return index;
+ if (!B.isDriveLetter(path, index + 1))
+ return index;
+ t2 = index + 3;
+ return t1 === t2 ? t2 : index + 4;
+ }
+ }
+ return 0;
+ },
+ rootLength$1: function(path) {
+ return this.rootLength$2$withDrive(path, false);
+ },
+ isRootRelative$1: function(path) {
+ return path.length !== 0 && C.JSString_methods._codeUnitAt$1(path, 0) === 47;
+ },
+ pathFromUri$1: function(uri) {
+ return uri.toString$0(0);
+ },
+ get$name: function() {
+ return "url";
+ },
+ get$separator: function() {
+ return "/";
+ }
+ };
+ L.WindowsStyle.prototype = {
+ containsSeparator$1: function(path) {
+ return C.JSString_methods.contains$1(path, "/");
+ },
+ isSeparator$1: function(codeUnit) {
+ return codeUnit === 47 || codeUnit === 92;
+ },
+ needsSeparator$1: function(path) {
+ var t1 = path.length;
+ if (t1 === 0)
+ return false;
+ t1 = C.JSString_methods.codeUnitAt$1(path, t1 - 1);
+ return !(t1 === 47 || t1 === 92);
+ },
+ rootLength$2$withDrive: function(path, withDrive) {
+ var t2, index,
+ t1 = path.length;
+ if (t1 === 0)
+ return 0;
+ t2 = C.JSString_methods._codeUnitAt$1(path, 0);
+ if (t2 === 47)
+ return 1;
+ if (t2 === 92) {
+ if (t1 < 2 || C.JSString_methods._codeUnitAt$1(path, 1) !== 92)
+ return 1;
+ index = C.JSString_methods.indexOf$2(path, "\\", 2);
+ if (index > 0) {
+ index = C.JSString_methods.indexOf$2(path, "\\", index + 1);
+ if (index > 0)
+ return index;
+ }
+ return t1;
+ }
+ if (t1 < 3)
+ return 0;
+ if (!B.isAlphabetic(t2))
+ return 0;
+ if (C.JSString_methods._codeUnitAt$1(path, 1) !== 58)
+ return 0;
+ t1 = C.JSString_methods._codeUnitAt$1(path, 2);
+ if (!(t1 === 47 || t1 === 92))
+ return 0;
+ return 3;
+ },
+ rootLength$1: function(path) {
+ return this.rootLength$2$withDrive(path, false);
+ },
+ isRootRelative$1: function(path) {
+ return this.rootLength$1(path) === 1;
+ },
+ pathFromUri$1: function(uri) {
+ var path, t1;
+ if (uri.get$scheme() !== "" && uri.get$scheme() !== "file")
+ throw H.wrapException(P.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'."));
+ path = uri.get$path(uri);
+ if (uri.get$host(uri) === "") {
+ if (path.length >= 3 && C.JSString_methods.startsWith$1(path, "/") && B.isDriveLetter(path, 1))
+ path = C.JSString_methods.replaceFirst$2(path, "/", "");
+ } else
+ path = "\\\\" + uri.get$host(uri) + path;
+ t1 = H.stringReplaceAllUnchecked(path, "/", "\\");
+ return P._Uri__uriDecode(t1, 0, t1.length, C.C_Utf8Codec, false);
+ },
+ codeUnitsEqual$2: function(codeUnit1, codeUnit2) {
+ var upperCase1;
+ if (codeUnit1 === codeUnit2)
+ return true;
+ if (codeUnit1 === 47)
+ return codeUnit2 === 92;
+ if (codeUnit1 === 92)
+ return codeUnit2 === 47;
+ if ((codeUnit1 ^ codeUnit2) !== 32)
+ return false;
+ upperCase1 = codeUnit1 | 32;
+ return upperCase1 >= 97 && upperCase1 <= 122;
+ },
+ pathsEqual$2: function(path1, path2) {
+ var t1, t2, i;
+ if (path1 == path2)
+ return true;
+ t1 = path1.length;
+ if (t1 !== path2.length)
+ return false;
+ for (t2 = J.getInterceptor$s(path2), i = 0; i < t1; ++i)
+ if (!this.codeUnitsEqual$2(C.JSString_methods._codeUnitAt$1(path1, i), t2._codeUnitAt$1(path2, i)))
+ return false;
+ return true;
+ },
+ get$name: function() {
+ return "windows";
+ },
+ get$separator: function() {
+ return "\\";
+ }
+ };
+ V.SharedPreferences.prototype = {
+ remove$1: function(_, key) {
+ return this._setValue$3(null, key, null);
+ },
+ _setValue$3: function(valueType, key, value) {
+ var prefixedKey = "flutter." + key;
+ if (value == null) {
+ J.remove$1$ax(this._preferenceCache, key);
+ return V.SharedPreferences__store().remove$1(0, prefixedKey);
+ } else {
+ J.$indexSet$ax(this._preferenceCache, key, value);
+ return V.SharedPreferences__store().setValue$3(valueType, prefixedKey, value);
+ }
+ }
+ };
+ F.MethodChannelSharedPreferencesStore.prototype = {
+ remove$1: function(_, key) {
+ return this._invokeBoolMethod$2("remove", P.LinkedHashMap_LinkedHashMap$_literal(["key", key], type$.legacy_String, type$.dynamic));
+ },
+ setValue$3: function(valueType, key, value) {
+ return this._invokeBoolMethod$2("set" + H.S(valueType), P.LinkedHashMap_LinkedHashMap$_literal(["key", key, "value", value], type$.legacy_String, type$.dynamic));
+ },
+ _invokeBoolMethod$2: function(method, params) {
+ var t1 = type$.legacy_bool;
+ return C.MethodChannel_sty._invokeMethod$1$3$arguments$missingOk(method, params, false, t1).then$1$1(0, new F.MethodChannelSharedPreferencesStore__invokeBoolMethod_closure(), t1);
+ },
+ getAll$0: function(_) {
+ return C.MethodChannel_sty.invokeMapMethod$2$1("getAll", type$.legacy_String, type$.legacy_Object);
+ }
+ };
+ F.MethodChannelSharedPreferencesStore__invokeBoolMethod_closure.prototype = {
+ call$1: function(result) {
+ return result;
+ },
+ $signature: 388
+ };
+ E.SharedPreferencesStorePlatform.prototype = {};
+ V.SharedPreferencesPlugin.prototype = {
+ getAll$0: function(_) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_Map_of_legacy_String_and_legacy_Object),
+ $async$returnValue, $async$self = this, t1, t2, _i, key, allData;
+ var $async$getAll$0 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ allData = P.LinkedHashMap_LinkedHashMap$_empty(type$.legacy_String, type$.legacy_Object);
+ for (t1 = $async$self.get$_storedFlutterKeys(), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ key = t1[_i];
+ allData.$indexSet(0, key, $async$self._decodeValue$1(window.localStorage.getItem(key)));
+ }
+ $async$returnValue = allData;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$getAll$0, $async$completer);
+ },
+ remove$1: function(_, key) {
+ return this.remove$body$SharedPreferencesPlugin(_, key);
+ },
+ remove$body$SharedPreferencesPlugin: function(_, key) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_bool),
+ $async$returnValue, t1;
+ var $async$remove$1 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if (!C.JSString_methods.startsWith$1(key, "flutter."))
+ H.throwExpression(P.FormatException$(string$.Shared, key, 0));
+ t1 = window.localStorage;
+ (t1 && C.Storage_methods).remove$1(t1, key);
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$remove$1, $async$completer);
+ },
+ setValue$3: function(valueType, key, value) {
+ return this.setValue$body$SharedPreferencesPlugin(valueType, key, value);
+ },
+ setValue$body$SharedPreferencesPlugin: function(valueType, key, value) {
+ var $async$goto = 0,
+ $async$completer = P._makeAsyncAwaitCompleter(type$.legacy_bool),
+ $async$returnValue;
+ var $async$setValue$3 = P._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
+ if ($async$errorCode === 1)
+ return P._asyncRethrow($async$result, $async$completer);
+ while (true)
+ switch ($async$goto) {
+ case 0:
+ // Function start
+ if (!C.JSString_methods.startsWith$1(key, "flutter."))
+ H.throwExpression(P.FormatException$(string$.Shared, key, 0));
+ window.localStorage.setItem(key, C.C_JsonCodec.encode$1(value));
+ $async$returnValue = true;
+ // goto return
+ $async$goto = 1;
+ break;
+ case 1:
+ // return
+ return P._asyncReturn($async$returnValue, $async$completer);
+ }
+ });
+ return P._asyncStartSync($async$setValue$3, $async$completer);
+ },
+ get$_storedFlutterKeys: function() {
+ var t1, t2, _i, key,
+ keys = H.setRuntimeTypeInfo([], type$.JSArray_legacy_String);
+ for (t1 = window.localStorage, t1 = (t1 && C.Storage_methods).get$keys(t1), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
+ key = t1[_i];
+ if (J.startsWith$1$s(key, "flutter."))
+ keys.push(key);
+ }
+ return keys;
+ },
+ _decodeValue$1: function(encodedValue) {
+ var decodedValue = C.C_JsonCodec.decode$1(0, encodedValue);
+ if (type$.legacy_List_dynamic._is(decodedValue))
+ return J.cast$1$0$ax(decodedValue, type$.legacy_String);
+ return decodedValue;
+ }
+ };
+ Y.SourceFile.prototype = {
+ get$length: function(_) {
+ return this._decodedChars.length;
+ },
+ get$lines: function(_) {
+ return this._lineStarts.length;
+ },
+ SourceFile$decoded$2$url: function(decodedChars, url) {
+ var t1, t2, t3, i, c, j;
+ for (t1 = this._decodedChars, t2 = t1.length, t3 = this._lineStarts, i = 0; i < t2; ++i) {
+ c = t1[i];
+ if (c === 13) {
+ j = i + 1;
+ if (j >= t2 || t1[j] !== 10)
+ c = 10;
+ }
+ if (c === 10)
+ t3.push(i + 1);
+ }
+ },
+ getLine$1: function(offset) {
+ var t1, _this = this;
+ if (offset < 0)
+ throw H.wrapException(P.RangeError$("Offset may not be negative, was " + offset + "."));
+ else if (offset > _this._decodedChars.length)
+ throw H.wrapException(P.RangeError$("Offset " + offset + string$.x20must_ + _this.get$length(_this) + "."));
+ t1 = _this._lineStarts;
+ if (offset < C.JSArray_methods.get$first(t1))
+ return -1;
+ if (offset >= C.JSArray_methods.get$last(t1))
+ return t1.length - 1;
+ if (_this._isNearCachedLine$1(offset)) {
+ t1 = _this._cachedLine;
+ t1.toString;
+ return t1;
+ }
+ return _this._cachedLine = _this._file$_binarySearch$1(offset) - 1;
+ },
+ _isNearCachedLine$1: function(offset) {
+ var t2, t3,
+ t1 = this._cachedLine;
+ if (t1 == null)
+ return false;
+ t2 = this._lineStarts;
+ if (offset < t2[t1])
+ return false;
+ t3 = t2.length;
+ if (t1 >= t3 - 1 || offset < t2[t1 + 1])
+ return true;
+ if (t1 >= t3 - 2 || offset < t2[t1 + 2]) {
+ this._cachedLine = t1 + 1;
+ return true;
+ }
+ return false;
+ },
+ _file$_binarySearch$1: function(offset) {
+ var min, half,
+ t1 = this._lineStarts,
+ max = t1.length - 1;
+ for (min = 0; min < max;) {
+ half = min + C.JSInt_methods._tdivFast$1(max - min, 2);
+ if (t1[half] > offset)
+ max = half;
+ else
+ min = half + 1;
+ }
+ return max;
+ },
+ getColumn$1: function(offset) {
+ var line, lineStart, _this = this;
+ if (offset < 0)
+ throw H.wrapException(P.RangeError$("Offset may not be negative, was " + offset + "."));
+ else if (offset > _this._decodedChars.length)
+ throw H.wrapException(P.RangeError$("Offset " + offset + " must be not be greater than the number of characters in the file, " + _this.get$length(_this) + "."));
+ line = _this.getLine$1(offset);
+ lineStart = _this._lineStarts[line];
+ if (lineStart > offset)
+ throw H.wrapException(P.RangeError$("Line " + H.S(line) + " comes after offset " + offset + "."));
+ return offset - lineStart;
+ },
+ getOffset$1: function(line) {
+ var t1, t2, result, t3, _this = this;
+ if (line < 0)
+ throw H.wrapException(P.RangeError$("Line may not be negative, was " + H.S(line) + "."));
+ else {
+ t1 = _this._lineStarts;
+ t2 = t1.length;
+ if (line >= t2)
+ throw H.wrapException(P.RangeError$("Line " + H.S(line) + " must be less than the number of lines in the file, " + _this.get$lines(_this) + "."));
+ }
+ result = t1[line];
+ if (result <= _this._decodedChars.length) {
+ t3 = line + 1;
+ t1 = t3 < t2 && result >= t1[t3];
+ } else
+ t1 = true;
+ if (t1)
+ throw H.wrapException(P.RangeError$("Line " + H.S(line) + " doesn't have 0 columns."));
+ return result;
+ }
+ };
+ Y.FileLocation.prototype = {
+ get$sourceUrl: function() {
+ return this.file.url;
+ },
+ get$line: function(_) {
+ return this.file.getLine$1(this.offset);
+ },
+ get$column: function() {
+ return this.file.getColumn$1(this.offset);
+ },
+ get$offset: function(receiver) {
+ return this.offset;
+ }
+ };
+ Y._FileSpan.prototype = {
+ get$sourceUrl: function() {
+ return this.file.url;
+ },
+ get$length: function(_) {
+ return this._file$_end - this._file$_start;
+ },
+ get$start: function(_) {
+ return Y.FileLocation$_(this.file, this._file$_start);
+ },
+ get$end: function(_) {
+ return Y.FileLocation$_(this.file, this._file$_end);
+ },
+ get$text: function(_) {
+ return P.String_String$fromCharCodes(C.NativeUint32List_methods.sublist$2(this.file._decodedChars, this._file$_start, this._file$_end), 0, null);
+ },
+ get$context: function(_) {
+ var _this = this,
+ t1 = _this.file,
+ endOffset = _this._file$_end,
+ endLine = t1.getLine$1(endOffset);
+ if (t1.getColumn$1(endOffset) === 0 && endLine !== 0) {
+ if (endOffset - _this._file$_start === 0)
+ return endLine === t1._lineStarts.length - 1 ? "" : P.String_String$fromCharCodes(C.NativeUint32List_methods.sublist$2(t1._decodedChars, t1.getOffset$1(endLine), t1.getOffset$1(endLine + 1)), 0, null);
+ } else
+ endOffset = endLine === t1._lineStarts.length - 1 ? t1._decodedChars.length : t1.getOffset$1(endLine + 1);
+ return P.String_String$fromCharCodes(C.NativeUint32List_methods.sublist$2(t1._decodedChars, t1.getOffset$1(t1.getLine$1(_this._file$_start)), endOffset), 0, null);
+ },
+ compareTo$1: function(_, other) {
+ var result;
+ if (!(other instanceof Y._FileSpan))
+ return this.super$SourceSpanMixin$compareTo(0, other);
+ result = C.JSInt_methods.compareTo$1(this._file$_start, other._file$_start);
+ return result === 0 ? C.JSInt_methods.compareTo$1(this._file$_end, other._file$_end) : result;
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ if (!type$.FileSpan._is(other))
+ return _this.super$SourceSpanMixin$$eq(0, other);
+ return _this._file$_start === other._file$_start && _this._file$_end === other._file$_end && J.$eq$(_this.file.url, other.file.url);
+ },
+ get$hashCode: function(_) {
+ return Y.SourceSpanMixin.prototype.get$hashCode.call(this, this);
+ },
+ $isFileSpan: 1,
+ $isSourceSpanWithContext: 1
+ };
+ U.Highlighter.prototype = {
+ highlight$0: function(_) {
+ var highlightsByColumn, t2, t3, t4, i, line, lastLine, t5, t6, t7, t8, t9, cur, t10, t11, t12, index, primaryIdx, primary, _i, _this = this,
+ t1 = _this._lines;
+ _this._writeFileStart$1(C.JSArray_methods.get$first(t1).url);
+ highlightsByColumn = P.List_List$filled(_this._maxMultilineSpans, null, false, type$.nullable__Highlight);
+ for (t2 = _this._highlighter$_buffer, t3 = highlightsByColumn.length !== 0, t4 = _this._highlighter$_primaryColor, i = 0; i < t1.length; ++i) {
+ line = t1[i];
+ if (i > 0) {
+ lastLine = t1[i - 1];
+ t5 = lastLine.url;
+ t6 = line.url;
+ if (!J.$eq$(t5, t6)) {
+ _this._writeSidebar$1$end("\u2575");
+ t2._contents += "\n";
+ _this._writeFileStart$1(t6);
+ } else if (lastLine.number + 1 !== line.number) {
+ _this._writeSidebar$1$text("...");
+ t2._contents += "\n";
+ }
+ }
+ for (t5 = line.highlights, t6 = new H.ReversedListIterable(t5, H._arrayInstanceType(t5)._eval$1("ReversedListIterable<1>")), t6 = new H.ListIterator(t6, t6.get$length(t6)), t7 = line.number, t8 = line.text, t9 = J.getInterceptor$s(t8); t6.moveNext$0();) {
+ cur = t6._current;
+ t10 = cur.span;
+ t11 = t10.get$start(t10);
+ t11 = t11.get$line(t11);
+ t12 = t10.get$end(t10);
+ if (t11 != t12.get$line(t12)) {
+ t11 = t10.get$start(t10);
+ t10 = t11.get$line(t11) === t7 && _this._isOnlyWhitespace$1(t9.substring$2(t8, 0, t10.get$start(t10).get$column()));
+ } else
+ t10 = false;
+ if (t10) {
+ index = C.JSArray_methods.indexOf$1(highlightsByColumn, null);
+ if (index < 0)
+ H.throwExpression(P.ArgumentError$(H.S(highlightsByColumn) + " contains no null elements."));
+ highlightsByColumn[index] = cur;
+ }
+ }
+ _this._writeSidebar$1$line(t7);
+ t2._contents += " ";
+ _this._writeMultilineHighlights$2(line, highlightsByColumn);
+ if (t3)
+ t2._contents += " ";
+ primaryIdx = C.JSArray_methods.indexWhere$1(t5, new U.Highlighter_highlight_closure());
+ primary = primaryIdx === -1 ? null : t5[primaryIdx];
+ t6 = primary != null;
+ if (t6) {
+ t9 = primary.span;
+ t10 = t9.get$start(t9);
+ t10 = t10.get$line(t10) === t7 ? t9.get$start(t9).get$column() : 0;
+ t11 = t9.get$end(t9);
+ _this._writeHighlightedText$4$color(t8, t10, t11.get$line(t11) === t7 ? t9.get$end(t9).get$column() : t8.length, t4);
+ } else
+ _this._writeText$1(t8);
+ t2._contents += "\n";
+ if (t6)
+ _this._writeIndicator$3(line, primary, highlightsByColumn);
+ for (t6 = t5.length, _i = 0; _i < t6; ++_i) {
+ t5[_i].toString;
+ continue;
+ }
+ }
+ _this._writeSidebar$1$end("\u2575");
+ t1 = t2._contents;
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ },
+ _writeFileStart$1: function(url) {
+ var _this = this;
+ if (!_this._multipleFiles || url == null)
+ _this._writeSidebar$1$end("\u2577");
+ else {
+ _this._writeSidebar$1$end("\u250c");
+ _this._colorize$2$color(new U.Highlighter__writeFileStart_closure(_this), "\x1b[34m");
+ _this._highlighter$_buffer._contents += " " + H.S($.$get$context().prettyUri$1(url));
+ }
+ _this._highlighter$_buffer._contents += "\n";
+ },
+ _writeMultilineHighlights$3$current: function(line, highlightsByColumn, current) {
+ var t1, currentColor, t2, t3, t4, foundCurrent, _i, highlight, t5, startLine, t6, endLine, _this = this, _box_0 = {};
+ _box_0.openedOnThisLine = false;
+ _box_0.openedOnThisLineColor = null;
+ t1 = current == null;
+ if (t1)
+ currentColor = null;
+ else
+ currentColor = _this._highlighter$_primaryColor;
+ for (t2 = highlightsByColumn.length, t3 = _this._highlighter$_primaryColor, t1 = !t1, t4 = _this._highlighter$_buffer, foundCurrent = false, _i = 0; _i < t2; ++_i) {
+ highlight = highlightsByColumn[_i];
+ t5 = highlight == null;
+ if (t5)
+ startLine = null;
+ else {
+ t6 = highlight.span;
+ t6 = t6.get$start(t6);
+ startLine = t6.get$line(t6);
+ }
+ if (t5)
+ endLine = null;
+ else {
+ t6 = highlight.span;
+ t6 = t6.get$end(t6);
+ endLine = t6.get$line(t6);
+ }
+ if (t1 && highlight === current) {
+ _this._colorize$2$color(new U.Highlighter__writeMultilineHighlights_closure(_this, startLine, line), currentColor);
+ foundCurrent = true;
+ } else if (foundCurrent)
+ _this._colorize$2$color(new U.Highlighter__writeMultilineHighlights_closure0(_this, highlight), currentColor);
+ else if (t5)
+ if (_box_0.openedOnThisLine)
+ _this._colorize$2$color(new U.Highlighter__writeMultilineHighlights_closure1(_this), _box_0.openedOnThisLineColor);
+ else
+ t4._contents += " ";
+ else
+ _this._colorize$2$color(new U.Highlighter__writeMultilineHighlights_closure2(_box_0, _this, current, startLine, line, highlight, endLine), t3);
+ }
+ },
+ _writeMultilineHighlights$2: function(line, highlightsByColumn) {
+ return this._writeMultilineHighlights$3$current(line, highlightsByColumn, null);
+ },
+ _writeHighlightedText$4$color: function(text, startColumn, endColumn, color) {
+ var _this = this;
+ _this._writeText$1(J.getInterceptor$s(text).substring$2(text, 0, startColumn));
+ _this._colorize$2$color(new U.Highlighter__writeHighlightedText_closure(_this, text, startColumn, endColumn), color);
+ _this._writeText$1(C.JSString_methods.substring$2(text, endColumn, text.length));
+ },
+ _writeIndicator$3: function(line, highlight, highlightsByColumn) {
+ var t3, coversWholeLine, _this = this,
+ color = _this._highlighter$_primaryColor,
+ t1 = highlight.span,
+ t2 = t1.get$start(t1);
+ t2 = t2.get$line(t2);
+ t3 = t1.get$end(t1);
+ if (t2 == t3.get$line(t3)) {
+ _this._writeSidebar$0();
+ t1 = _this._highlighter$_buffer;
+ t1._contents += " ";
+ _this._writeMultilineHighlights$3$current(line, highlightsByColumn, highlight);
+ if (highlightsByColumn.length !== 0)
+ t1._contents += " ";
+ _this._colorize$2$color(new U.Highlighter__writeIndicator_closure(_this, line, highlight), color);
+ t1._contents += "\n";
+ } else {
+ t2 = t1.get$start(t1);
+ t3 = line.number;
+ if (t2.get$line(t2) === t3) {
+ if (C.JSArray_methods.contains$1(highlightsByColumn, highlight))
+ return;
+ B.replaceFirstNull(highlightsByColumn, highlight);
+ _this._writeSidebar$0();
+ t1 = _this._highlighter$_buffer;
+ t1._contents += " ";
+ _this._writeMultilineHighlights$3$current(line, highlightsByColumn, highlight);
+ _this._colorize$2$color(new U.Highlighter__writeIndicator_closure0(_this, line, highlight), color);
+ t1._contents += "\n";
+ } else {
+ t2 = t1.get$end(t1);
+ if (t2.get$line(t2) === t3) {
+ coversWholeLine = t1.get$end(t1).get$column() === line.text.length;
+ if (coversWholeLine && true) {
+ B.replaceWithNull(highlightsByColumn, highlight);
+ return;
+ }
+ _this._writeSidebar$0();
+ t1 = _this._highlighter$_buffer;
+ t1._contents += " ";
+ _this._writeMultilineHighlights$3$current(line, highlightsByColumn, highlight);
+ _this._colorize$2$color(new U.Highlighter__writeIndicator_closure1(_this, coversWholeLine, line, highlight), color);
+ t1._contents += "\n";
+ B.replaceWithNull(highlightsByColumn, highlight);
+ }
+ }
+ }
+ },
+ _writeArrow$3$beginning: function(line, column, beginning) {
+ var t1 = beginning ? 0 : 1,
+ t2 = this._highlighter$_buffer;
+ t1 = t2._contents += C.JSString_methods.$mul("\u2500", 1 + column + this._countTabs$1(J.substring$2$s(line.text, 0, column + t1)) * 3);
+ t2._contents = t1 + "^";
+ },
+ _writeArrow$2: function(line, column) {
+ return this._writeArrow$3$beginning(line, column, true);
+ },
+ _writeLabel$1: function(label) {
+ },
+ _writeText$1: function(text) {
+ var t1, t2, cur;
+ text.toString;
+ t1 = new H.CodeUnits(text);
+ t1 = new H.ListIterator(t1, t1.get$length(t1));
+ t2 = this._highlighter$_buffer;
+ for (; t1.moveNext$0();) {
+ cur = t1._current;
+ if (cur === 9)
+ t2._contents += C.JSString_methods.$mul(" ", 4);
+ else
+ t2._contents += H.Primitives_stringFromCharCode(cur);
+ }
+ },
+ _writeSidebar$3$end$line$text: function(end, line, text) {
+ var t1 = {};
+ t1.text = text;
+ if (line != null)
+ t1.text = C.JSInt_methods.toString$0(line + 1);
+ this._colorize$2$color(new U.Highlighter__writeSidebar_closure(t1, this, end), "\x1b[34m");
+ },
+ _writeSidebar$1$end: function(end) {
+ return this._writeSidebar$3$end$line$text(end, null, null);
+ },
+ _writeSidebar$1$text: function(text) {
+ return this._writeSidebar$3$end$line$text(null, null, text);
+ },
+ _writeSidebar$1$line: function(line) {
+ return this._writeSidebar$3$end$line$text(null, line, null);
+ },
+ _writeSidebar$0: function() {
+ return this._writeSidebar$3$end$line$text(null, null, null);
+ },
+ _countTabs$1: function(text) {
+ var t1, count, cur;
+ for (t1 = new H.CodeUnits(text), t1 = new H.ListIterator(t1, t1.get$length(t1)), count = 0; t1.moveNext$0();) {
+ cur = t1._current;
+ if (cur === 9)
+ ++count;
+ }
+ return count;
+ },
+ _isOnlyWhitespace$1: function(text) {
+ var t1, cur;
+ for (t1 = new H.CodeUnits(text), t1 = new H.ListIterator(t1, t1.get$length(t1)); t1.moveNext$0();) {
+ cur = t1._current;
+ if (cur !== 32 && cur !== 9)
+ return false;
+ }
+ return true;
+ },
+ _colorize$2$color: function(callback, color) {
+ var t1 = this._highlighter$_primaryColor != null;
+ if (t1 && color != null)
+ this._highlighter$_buffer._contents += color;
+ callback.call$0();
+ if (t1 && color != null)
+ this._highlighter$_buffer._contents += "\x1b[0m";
+ }
+ };
+ U.Highlighter_closure.prototype = {
+ call$0: function() {
+ return this.color;
+ },
+ $signature: 389
+ };
+ U.Highlighter$__closure.prototype = {
+ call$1: function(line) {
+ var t1 = line.highlights;
+ t1 = new H.WhereIterable(t1, new U.Highlighter$___closure(), H._arrayInstanceType(t1)._eval$1("WhereIterable<1>"));
+ return t1.get$length(t1);
+ },
+ $signature: 390
+ };
+ U.Highlighter$___closure.prototype = {
+ call$1: function(highlight) {
+ var t1 = highlight.span,
+ t2 = t1.get$start(t1);
+ t2 = t2.get$line(t2);
+ t1 = t1.get$end(t1);
+ return t2 != t1.get$line(t1);
+ },
+ $signature: 60
+ };
+ U.Highlighter$__closure0.prototype = {
+ call$1: function(line) {
+ return line.url;
+ },
+ $signature: 392
+ };
+ U.Highlighter__collateLines_closure.prototype = {
+ call$1: function(highlight) {
+ return highlight.span.get$sourceUrl();
+ },
+ $signature: 393
+ };
+ U.Highlighter__collateLines_closure0.prototype = {
+ call$2: function(highlight1, highlight2) {
+ return highlight1.span.compareTo$1(0, highlight2.span);
+ },
+ "call*": "call$2",
+ $requiredArgCount: 2,
+ $signature: 394
+ };
+ U.Highlighter__collateLines_closure1.prototype = {
+ call$1: function(highlightsForFile) {
+ var t1, t2, t3, t4, context, t5, linesBeforeSpan, url, lineNumber, _i, line, activeHighlights, highlightIndex, oldHighlightLength, t6,
+ lines = H.setRuntimeTypeInfo([], type$.JSArray__Line);
+ for (t1 = J.getInterceptor$ax(highlightsForFile), t2 = t1.get$iterator(highlightsForFile), t3 = type$.JSArray__Highlight; t2.moveNext$0();) {
+ t4 = t2.get$current(t2).span;
+ context = t4.get$context(t4);
+ t5 = B.findLineStart(context, t4.get$text(t4), t4.get$start(t4).get$column());
+ t5.toString;
+ t5 = C.JSString_methods.allMatches$1("\n", C.JSString_methods.substring$2(context, 0, t5));
+ linesBeforeSpan = t5.get$length(t5);
+ url = t4.get$sourceUrl();
+ t4 = t4.get$start(t4);
+ lineNumber = t4.get$line(t4) - linesBeforeSpan;
+ for (t4 = context.split("\n"), t5 = t4.length, _i = 0; _i < t5; ++_i) {
+ line = t4[_i];
+ if (lines.length === 0 || lineNumber > C.JSArray_methods.get$last(lines).number)
+ lines.push(new U._Line(line, lineNumber, url, H.setRuntimeTypeInfo([], t3)));
+ ++lineNumber;
+ }
+ }
+ activeHighlights = H.setRuntimeTypeInfo([], t3);
+ for (t2 = lines.length, highlightIndex = 0, _i = 0; _i < lines.length; lines.length === t2 || (0, H.throwConcurrentModificationError)(lines), ++_i) {
+ line = lines[_i];
+ if (!!activeHighlights.fixed$length)
+ H.throwExpression(P.UnsupportedError$("removeWhere"));
+ C.JSArray_methods._removeWhere$2(activeHighlights, new U.Highlighter__collateLines__closure(line), true);
+ oldHighlightLength = activeHighlights.length;
+ for (t3 = t1.skip$1(highlightsForFile, highlightIndex), t3 = t3.get$iterator(t3); t3.moveNext$0();) {
+ t4 = t3.get$current(t3);
+ t5 = t4.span;
+ t6 = t5.get$start(t5);
+ if (t6.get$line(t6) > line.number)
+ break;
+ if (!J.$eq$(t5.get$sourceUrl(), line.url))
+ break;
+ activeHighlights.push(t4);
+ }
+ highlightIndex += activeHighlights.length - oldHighlightLength;
+ C.JSArray_methods.addAll$1(line.highlights, activeHighlights);
+ }
+ return lines;
+ },
+ $signature: 395
+ };
+ U.Highlighter__collateLines__closure.prototype = {
+ call$1: function(highlight) {
+ var t1 = highlight.span,
+ t2 = this.line;
+ if (J.$eq$(t1.get$sourceUrl(), t2.url)) {
+ t1 = t1.get$end(t1);
+ t2 = t1.get$line(t1) < t2.number;
+ t1 = t2;
+ } else
+ t1 = true;
+ return t1;
+ },
+ $signature: 60
+ };
+ U.Highlighter_highlight_closure.prototype = {
+ call$1: function(highlight) {
+ highlight.toString;
+ return true;
+ },
+ $signature: 60
+ };
+ U.Highlighter__writeFileStart_closure.prototype = {
+ call$0: function() {
+ this.$this._highlighter$_buffer._contents += C.JSString_methods.$mul("\u2500", 2) + ">";
+ return null;
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeMultilineHighlights_closure.prototype = {
+ call$0: function() {
+ var t1 = this.startLine === this.line.number ? "\u250c" : "\u2514";
+ this.$this._highlighter$_buffer._contents += t1;
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeMultilineHighlights_closure0.prototype = {
+ call$0: function() {
+ var t1 = this.highlight == null ? "\u2500" : "\u253c";
+ this.$this._highlighter$_buffer._contents += t1;
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeMultilineHighlights_closure1.prototype = {
+ call$0: function() {
+ this.$this._highlighter$_buffer._contents += "\u2500";
+ return null;
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeMultilineHighlights_closure2.prototype = {
+ call$0: function() {
+ var t2, t3, _this = this,
+ t1 = _this._box_0,
+ vertical = t1.openedOnThisLine ? "\u253c" : "\u2502";
+ if (_this.current != null)
+ _this.$this._highlighter$_buffer._contents += vertical;
+ else {
+ t2 = _this.line;
+ t3 = t2.number;
+ if (_this.startLine === t3) {
+ t2 = _this.$this;
+ t2._colorize$2$color(new U.Highlighter__writeMultilineHighlights__closure(t1, t2), t1.openedOnThisLineColor);
+ t1.openedOnThisLine = true;
+ if (t1.openedOnThisLineColor == null)
+ t1.openedOnThisLineColor = t2._highlighter$_primaryColor;
+ } else {
+ if (_this.endLine === t3) {
+ t3 = _this.highlight.span;
+ t2 = t3.get$end(t3).get$column() === t2.text.length;
+ } else
+ t2 = false;
+ t3 = _this.$this;
+ if (t2)
+ t3._highlighter$_buffer._contents += "\u2514";
+ else
+ t3._colorize$2$color(new U.Highlighter__writeMultilineHighlights__closure0(t3, vertical), t1.openedOnThisLineColor);
+ }
+ }
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeMultilineHighlights__closure.prototype = {
+ call$0: function() {
+ var t1 = this._box_0.openedOnThisLine ? "\u252c" : "\u250c";
+ this.$this._highlighter$_buffer._contents += t1;
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeMultilineHighlights__closure0.prototype = {
+ call$0: function() {
+ this.$this._highlighter$_buffer._contents += this.vertical;
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeHighlightedText_closure.prototype = {
+ call$0: function() {
+ var _this = this;
+ return _this.$this._writeText$1(C.JSString_methods.substring$2(_this.text, _this.startColumn, _this.endColumn));
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeIndicator_closure.prototype = {
+ call$0: function() {
+ var tabsBefore, tabsInside,
+ t1 = this.$this,
+ t2 = this.highlight.span,
+ startColumn = t2.get$start(t2).get$column(),
+ endColumn = t2.get$end(t2).get$column();
+ t2 = this.line.text;
+ tabsBefore = t1._countTabs$1(J.getInterceptor$s(t2).substring$2(t2, 0, startColumn));
+ tabsInside = t1._countTabs$1(C.JSString_methods.substring$2(t2, startColumn, endColumn));
+ startColumn += tabsBefore * 3;
+ t2 = t1._highlighter$_buffer;
+ t2._contents += C.JSString_methods.$mul(" ", startColumn);
+ t2._contents += C.JSString_methods.$mul("^", Math.max(endColumn + (tabsBefore + tabsInside) * 3 - startColumn, 1));
+ t1._writeLabel$1(null);
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeIndicator_closure0.prototype = {
+ call$0: function() {
+ var t1 = this.highlight.span;
+ return this.$this._writeArrow$2(this.line, t1.get$start(t1).get$column());
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeIndicator_closure1.prototype = {
+ call$0: function() {
+ var t2, _this = this,
+ t1 = _this.$this;
+ if (_this.coversWholeLine)
+ t1._highlighter$_buffer._contents += C.JSString_methods.$mul("\u2500", 3);
+ else {
+ t2 = _this.highlight.span;
+ t1._writeArrow$3$beginning(_this.line, Math.max(t2.get$end(t2).get$column() - 1, 0), false);
+ }
+ t1._writeLabel$1(null);
+ },
+ $signature: 0
+ };
+ U.Highlighter__writeSidebar_closure.prototype = {
+ call$0: function() {
+ var t1 = this.$this,
+ t2 = t1._highlighter$_buffer,
+ t3 = this._box_0.text;
+ if (t3 == null)
+ t3 = "";
+ t1 = t2._contents += C.JSString_methods.padRight$1(t3, t1._paddingBeforeSidebar);
+ t3 = this.end;
+ t2._contents = t1 + (t3 == null ? "\u2502" : t3);
+ },
+ $signature: 0
+ };
+ U._Highlight.prototype = {
+ toString$0: function(_) {
+ var t3,
+ t1 = this.span,
+ t2 = t1.get$start(t1);
+ t2 = H.S(t2.get$line(t2)) + ":" + t1.get$start(t1).get$column() + "-";
+ t3 = t1.get$end(t1);
+ t1 = "primary " + (t2 + H.S(t3.get$line(t3)) + ":" + t1.get$end(t1).get$column());
+ return t1.charCodeAt(0) == 0 ? t1 : t1;
+ }
+ };
+ U._Highlight_closure.prototype = {
+ call$0: function() {
+ var t2, t3, t4, t5,
+ t1 = this.span;
+ if (!(type$.SourceSpanWithContext._is(t1) && B.findLineStart(t1.get$context(t1), t1.get$text(t1), t1.get$start(t1).get$column()) != null)) {
+ t2 = t1.get$start(t1);
+ t2 = V.SourceLocation$(t2.get$offset(t2), 0, 0, t1.get$sourceUrl());
+ t3 = t1.get$end(t1);
+ t3 = t3.get$offset(t3);
+ t4 = t1.get$sourceUrl();
+ t5 = B.countCodeUnits(t1.get$text(t1), 10);
+ t1 = X.SourceSpanWithContext$(t2, V.SourceLocation$(t3, U._Highlight__lastLineLength(t1.get$text(t1)), t5, t4), t1.get$text(t1), t1.get$text(t1));
+ }
+ return U._Highlight__normalizeEndOfLine(U._Highlight__normalizeTrailingNewline(U._Highlight__normalizeNewlines(t1)));
+ },
+ $signature: 396
+ };
+ U._Line.prototype = {
+ toString$0: function(_) {
+ return "" + this.number + ': "' + H.S(this.text) + '" (' + C.JSArray_methods.join$1(this.highlights, ", ") + ")";
+ }
+ };
+ V.SourceLocation.prototype = {
+ distance$1: function(other) {
+ var t1 = this.sourceUrl;
+ if (!J.$eq$(t1, other.get$sourceUrl()))
+ throw H.wrapException(P.ArgumentError$('Source URLs "' + H.S(t1) + '" and "' + H.S(other.get$sourceUrl()) + "\" don't match."));
+ return Math.abs(this.offset - other.get$offset(other));
+ },
+ compareTo$1: function(_, other) {
+ var t1 = this.sourceUrl;
+ if (!J.$eq$(t1, other.get$sourceUrl()))
+ throw H.wrapException(P.ArgumentError$('Source URLs "' + H.S(t1) + '" and "' + H.S(other.get$sourceUrl()) + "\" don't match."));
+ return this.offset - other.get$offset(other);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return type$.SourceLocation._is(other) && J.$eq$(this.sourceUrl, other.get$sourceUrl()) && this.offset === other.get$offset(other);
+ },
+ get$hashCode: function(_) {
+ var t1 = this.sourceUrl;
+ t1 = t1 == null ? null : t1.get$hashCode(t1);
+ if (t1 == null)
+ t1 = 0;
+ return t1 + this.offset;
+ },
+ toString$0: function(_) {
+ var _this = this,
+ t1 = "<" + H.getRuntimeType(_this).toString$0(0) + ": " + _this.offset + " ",
+ source = _this.sourceUrl;
+ return t1 + (H.S(source == null ? "unknown source" : source) + ":" + (_this.line + 1) + ":" + (_this.column + 1)) + ">";
+ },
+ $isComparable: 1,
+ get$sourceUrl: function() {
+ return this.sourceUrl;
+ },
+ get$offset: function(receiver) {
+ return this.offset;
+ },
+ get$line: function(receiver) {
+ return this.line;
+ },
+ get$column: function() {
+ return this.column;
+ }
+ };
+ D.SourceLocationMixin.prototype = {
+ distance$1: function(other) {
+ if (!J.$eq$(this.file.url, other.get$sourceUrl()))
+ throw H.wrapException(P.ArgumentError$('Source URLs "' + H.S(this.get$sourceUrl()) + '" and "' + H.S(other.get$sourceUrl()) + "\" don't match."));
+ return Math.abs(this.offset - other.get$offset(other));
+ },
+ compareTo$1: function(_, other) {
+ if (!J.$eq$(this.file.url, other.get$sourceUrl()))
+ throw H.wrapException(P.ArgumentError$('Source URLs "' + H.S(this.get$sourceUrl()) + '" and "' + H.S(other.get$sourceUrl()) + "\" don't match."));
+ return this.offset - other.get$offset(other);
+ },
+ $eq: function(_, other) {
+ if (other == null)
+ return false;
+ return type$.SourceLocation._is(other) && J.$eq$(this.file.url, other.get$sourceUrl()) && this.offset === other.get$offset(other);
+ },
+ get$hashCode: function(_) {
+ var t1 = this.file.url;
+ t1 = t1 == null ? null : t1.get$hashCode(t1);
+ if (t1 == null)
+ t1 = 0;
+ return t1 + this.offset;
+ },
+ toString$0: function(_) {
+ var t1 = this.offset,
+ t2 = "<" + H.getRuntimeType(this).toString$0(0) + ": " + t1 + " ",
+ t3 = this.file,
+ source = t3.url;
+ return t2 + (H.S(source == null ? "unknown source" : source) + ":" + (t3.getLine$1(t1) + 1) + ":" + (t3.getColumn$1(t1) + 1)) + ">";
+ },
+ $isComparable: 1,
+ $isSourceLocation: 1
+ };
+ V.SourceSpanBase.prototype = {
+ SourceSpanBase$3: function(start, end, text) {
+ var t3,
+ t1 = this.end,
+ t2 = this.start;
+ if (!J.$eq$(t1.get$sourceUrl(), t2.get$sourceUrl()))
+ throw H.wrapException(P.ArgumentError$('Source URLs "' + H.S(t2.get$sourceUrl()) + '" and "' + H.S(t1.get$sourceUrl()) + "\" don't match."));
+ else if (t1.get$offset(t1) < t2.get$offset(t2))
+ throw H.wrapException(P.ArgumentError$("End " + t1.toString$0(0) + " must come after start " + t2.toString$0(0) + "."));
+ else {
+ t3 = this.text;
+ if (t3.length !== t2.distance$1(t1))
+ throw H.wrapException(P.ArgumentError$('Text "' + t3 + '" must be ' + t2.distance$1(t1) + " characters long."));
+ }
+ },
+ get$start: function(receiver) {
+ return this.start;
+ },
+ get$end: function(receiver) {
+ return this.end;
+ },
+ get$text: function(receiver) {
+ return this.text;
+ }
+ };
+ G.SourceSpanException.prototype = {
+ get$message: function(_) {
+ return this._span_exception$_message;
+ },
+ toString$0: function(_) {
+ var t3, highlight,
+ t1 = this._span,
+ t2 = t1.get$start(t1);
+ t2 = "line " + (t2.get$line(t2) + 1) + ", column " + (t1.get$start(t1).get$column() + 1);
+ if (t1.get$sourceUrl() != null) {
+ t3 = t1.get$sourceUrl();
+ t3 = t2 + (" of " + H.S($.$get$context().prettyUri$1(t3)));
+ t2 = t3;
+ }
+ t2 += ": " + this._span_exception$_message;
+ highlight = t1.highlight$1$color(0, null);
+ t1 = highlight.length !== 0 ? t2 + "\n" + highlight : t2;
+ return "Error on " + (t1.charCodeAt(0) == 0 ? t1 : t1);
+ },
+ $isException: 1
+ };
+ G.SourceSpanFormatException.prototype = {
+ get$offset: function(_) {
+ var t1 = this._span;
+ t1 = Y.FileLocation$_(t1.file, t1._file$_start);
+ return t1.offset;
+ },
+ $isFormatException: 1,
+ get$source: function(receiver) {
+ return this.source;
+ }
+ };
+ Y.SourceSpanMixin.prototype = {
+ get$sourceUrl: function() {
+ return this.get$start(this).get$sourceUrl();
+ },
+ get$length: function(_) {
+ var t2, _this = this,
+ t1 = _this.get$end(_this);
+ t1 = t1.get$offset(t1);
+ t2 = _this.get$start(_this);
+ return t1 - t2.get$offset(t2);
+ },
+ compareTo$1: function(_, other) {
+ var _this = this,
+ result = _this.get$start(_this).compareTo$1(0, other.get$start(other));
+ return result === 0 ? _this.get$end(_this).compareTo$1(0, other.get$end(other)) : result;
+ },
+ highlight$1$color: function(_, color) {
+ var _this = this;
+ if (!type$.SourceSpanWithContext._is(_this) && _this.get$length(_this) === 0)
+ return "";
+ return U.Highlighter$(_this, color).highlight$0(0);
+ },
+ $eq: function(_, other) {
+ var _this = this;
+ if (other == null)
+ return false;
+ return type$.SourceSpan._is(other) && _this.get$start(_this).$eq(0, other.get$start(other)) && _this.get$end(_this).$eq(0, other.get$end(other));
+ },
+ get$hashCode: function(_) {
+ var t2, _this = this,
+ t1 = _this.get$start(_this);
+ t1 = t1.get$hashCode(t1);
+ t2 = _this.get$end(_this);
+ return t1 + 31 * t2.get$hashCode(t2);
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "<" + H.getRuntimeType(_this).toString$0(0) + ": from " + _this.get$start(_this).toString$0(0) + " to " + _this.get$end(_this).toString$0(0) + ' "' + _this.get$text(_this) + '">';
+ },
+ $isComparable: 1,
+ $isSourceSpan: 1
+ };
+ X.SourceSpanWithContext.prototype = {
+ get$context: function(_) {
+ return this._span_with_context$_context;
+ }
+ };
+ E.StringScannerException.prototype = {
+ get$source: function(_) {
+ return H._asStringS(this.source);
+ }
+ };
+ X.StringScanner.prototype = {
+ get$lastMatch: function() {
+ var _this = this;
+ if (_this._string_scanner$_position !== _this._lastMatchPosition)
+ _this._lastMatch = null;
+ return _this._lastMatch;
+ },
+ scan$1: function(pattern) {
+ var success, _this = this,
+ t1 = _this._lastMatch = J.matchAsPrefix$2$s(pattern, _this.string, _this._string_scanner$_position);
+ _this._lastMatchPosition = _this._string_scanner$_position;
+ success = t1 != null;
+ if (success)
+ _this._lastMatchPosition = _this._string_scanner$_position = t1.get$end(t1);
+ return success;
+ },
+ expect$2$name: function(pattern, $name) {
+ var t1;
+ if (this.scan$1(pattern))
+ return;
+ if ($name == null)
+ if (type$.RegExp._is(pattern))
+ $name = "/" + pattern.pattern + "/";
+ else {
+ t1 = J.toString$0$(pattern);
+ t1 = H.stringReplaceAllUnchecked(t1, "\\", "\\\\");
+ $name = '"' + H.stringReplaceAllUnchecked(t1, '"', '\\"') + '"';
+ }
+ this._fail$1($name);
+ H.ReachabilityError$(string$.x60null_t);
+ },
+ expect$1: function(pattern) {
+ return this.expect$2$name(pattern, null);
+ },
+ expectDone$0: function() {
+ if (this._string_scanner$_position === this.string.length)
+ return;
+ this._fail$1("no more input");
+ H.ReachabilityError$(string$.x60null_t);
+ },
+ error$3$length$position: function(_, message, $length, position) {
+ var t2, t3, t4, t5, sourceFile, end,
+ t1 = this.string;
+ if (position < 0)
+ H.throwExpression(P.RangeError$("position must be greater than or equal to 0."));
+ else if (position > t1.length)
+ H.throwExpression(P.RangeError$("position must be less than or equal to the string length."));
+ t2 = position + $length > t1.length;
+ if (t2)
+ H.throwExpression(P.RangeError$("position plus length must not go beyond the end of the string."));
+ t2 = this.sourceUrl;
+ t3 = new H.CodeUnits(t1);
+ t4 = H.setRuntimeTypeInfo([0], type$.JSArray_int);
+ t5 = new Uint32Array(H._ensureNativeList(t3.toList$0(t3)));
+ sourceFile = new Y.SourceFile(t2, t4, t5);
+ sourceFile.SourceFile$decoded$2$url(t3, t2);
+ end = position + $length;
+ if (end > t5.length)
+ H.throwExpression(P.RangeError$("End " + end + string$.x20must_ + sourceFile.get$length(sourceFile) + "."));
+ else if (position < 0)
+ H.throwExpression(P.RangeError$("Start may not be negative, was " + position + "."));
+ throw H.wrapException(new E.StringScannerException(t1, message, new Y._FileSpan(sourceFile, position, end)));
+ },
+ _fail$1: function($name) {
+ this.error$3$length$position(0, "expected " + $name + ".", 0, this._string_scanner$_position);
+ H.ReachabilityError$(string$.x60null_t);
+ }
+ };
+ E.TypedDataBuffer.prototype = {
+ get$length: function(_) {
+ return this._typed_buffer$_length;
+ },
+ $index: function(_, index) {
+ if (index >= this._typed_buffer$_length)
+ throw H.wrapException(P.IndexError$(index, this, null, null, null));
+ return this._typed_buffer$_buffer[index];
+ },
+ $indexSet: function(_, index, value) {
+ if (index >= this._typed_buffer$_length)
+ throw H.wrapException(P.IndexError$(index, this, null, null, null));
+ this._typed_buffer$_buffer[index] = value;
+ },
+ set$length: function(_, newLength) {
+ var t2, i, newBuffer, _this = this,
+ t1 = _this._typed_buffer$_length;
+ if (newLength < t1)
+ for (t2 = _this._typed_buffer$_buffer, i = newLength; i < t1; ++i)
+ t2[i] = 0;
+ else {
+ t1 = _this._typed_buffer$_buffer.length;
+ if (newLength > t1) {
+ if (t1 === 0)
+ newBuffer = new Uint8Array(newLength);
+ else
+ newBuffer = _this._createBiggerBuffer$1(newLength);
+ C.NativeUint8List_methods.setRange$3(newBuffer, 0, _this._typed_buffer$_length, _this._typed_buffer$_buffer);
+ _this._typed_buffer$_buffer = newBuffer;
+ }
+ }
+ _this._typed_buffer$_length = newLength;
+ },
+ _typed_buffer$_add$1: function(_, value) {
+ var _this = this,
+ t1 = _this._typed_buffer$_length;
+ if (t1 === _this._typed_buffer$_buffer.length)
+ _this._typed_buffer$_grow$1(t1);
+ _this._typed_buffer$_buffer[_this._typed_buffer$_length++] = value;
+ },
+ add$1: function(_, value) {
+ var _this = this,
+ t1 = _this._typed_buffer$_length;
+ if (t1 === _this._typed_buffer$_buffer.length)
+ _this._typed_buffer$_grow$1(t1);
+ _this._typed_buffer$_buffer[_this._typed_buffer$_length++] = value;
+ },
+ addAll$3: function(_, values, start, end) {
+ P.RangeError_checkNotNegative(start, "start");
+ if (end != null && start > end)
+ throw H.wrapException(P.RangeError$range(end, start, null, "end", null));
+ this._addAll$3(values, start, end);
+ },
+ addAll$1: function($receiver, values) {
+ return this.addAll$3($receiver, values, 0, null);
+ },
+ _addAll$3: function(values, start, end) {
+ var t1, i, value;
+ if (type$.List_dynamic._is(values))
+ end = end == null ? values.length : end;
+ if (end != null) {
+ this._insertKnownLength$4(this._typed_buffer$_length, values, start, end);
+ return;
+ }
+ for (t1 = J.get$iterator$ax(values), i = 0; t1.moveNext$0();) {
+ value = t1.get$current(t1);
+ if (i >= start)
+ this._typed_buffer$_add$1(0, value);
+ ++i;
+ }
+ if (i < start)
+ throw H.wrapException(P.StateError$("Too few elements"));
+ },
+ _insertKnownLength$4: function(index, values, start, end) {
+ var t1, valuesLength, newLength, t2, _this = this;
+ if (type$.List_dynamic._is(values)) {
+ t1 = values.length;
+ if (start > t1 || end > t1)
+ throw H.wrapException(P.StateError$("Too few elements"));
+ }
+ valuesLength = end - start;
+ newLength = _this._typed_buffer$_length + valuesLength;
+ _this._ensureCapacity$1(newLength);
+ t1 = _this._typed_buffer$_buffer;
+ t2 = index + valuesLength;
+ C.NativeUint8List_methods.setRange$4(t1, t2, _this._typed_buffer$_length + valuesLength, t1, index);
+ C.NativeUint8List_methods.setRange$4(_this._typed_buffer$_buffer, index, t2, values, start);
+ _this._typed_buffer$_length = newLength;
+ },
+ _ensureCapacity$1: function(requiredCapacity) {
+ var newBuffer, _this = this;
+ if (requiredCapacity <= _this._typed_buffer$_buffer.length)
+ return;
+ newBuffer = _this._createBiggerBuffer$1(requiredCapacity);
+ C.NativeUint8List_methods.setRange$3(newBuffer, 0, _this._typed_buffer$_length, _this._typed_buffer$_buffer);
+ _this._typed_buffer$_buffer = newBuffer;
+ },
+ _createBiggerBuffer$1: function(requiredCapacity) {
+ var newLength = this._typed_buffer$_buffer.length * 2;
+ if (requiredCapacity != null && newLength < requiredCapacity)
+ newLength = requiredCapacity;
+ else if (newLength < 8)
+ newLength = 8;
+ if (!H._isInt(newLength))
+ H.throwExpression(P.ArgumentError$("Invalid length " + H.S(newLength)));
+ return new Uint8Array(newLength);
+ },
+ _typed_buffer$_grow$1: function($length) {
+ var t1 = this._createBiggerBuffer$1(null);
+ C.NativeUint8List_methods.setRange$3(t1, 0, $length, this._typed_buffer$_buffer);
+ this._typed_buffer$_buffer = t1;
+ },
+ setRange$4: function(_, start, end, source, skipCount) {
+ var t1 = this._typed_buffer$_length;
+ if (end > t1)
+ throw H.wrapException(P.RangeError$range(end, 0, t1, null, null));
+ t1 = this._typed_buffer$_buffer;
+ if (H._instanceType(this)._eval$1("TypedDataBuffer")._is(source))
+ C.NativeUint8List_methods.setRange$4(t1, start, end, source._typed_buffer$_buffer, skipCount);
+ else
+ C.NativeUint8List_methods.setRange$4(t1, start, end, source, skipCount);
+ },
+ setRange$3: function($receiver, start, end, source) {
+ return this.setRange$4($receiver, start, end, source, 0);
+ }
+ };
+ E._IntBuffer0.prototype = {};
+ E.Uint8Buffer.prototype = {};
+ A.hashObjects_closure.prototype = {
+ call$2: function(h, i) {
+ var hash = h + J.get$hashCode$(i) & 536870911;
+ hash = hash + ((hash & 524287) << 10) & 536870911;
+ return hash ^ hash >>> 6;
+ },
+ $signature: 397
+ };
+ E.Matrix4.prototype = {
+ setFrom$1: function(arg) {
+ var argStorage = arg._m4storage,
+ t1 = this._m4storage;
+ t1[15] = argStorage[15];
+ t1[14] = argStorage[14];
+ t1[13] = argStorage[13];
+ t1[12] = argStorage[12];
+ t1[11] = argStorage[11];
+ t1[10] = argStorage[10];
+ t1[9] = argStorage[9];
+ t1[8] = argStorage[8];
+ t1[7] = argStorage[7];
+ t1[6] = argStorage[6];
+ t1[5] = argStorage[5];
+ t1[4] = argStorage[4];
+ t1[3] = argStorage[3];
+ t1[2] = argStorage[2];
+ t1[1] = argStorage[1];
+ t1[0] = argStorage[0];
+ },
+ toString$0: function(_) {
+ var _this = this;
+ return "[0] " + _this.getRow$1(0).toString$0(0) + "\n[1] " + _this.getRow$1(1).toString$0(0) + "\n[2] " + _this.getRow$1(2).toString$0(0) + "\n[3] " + _this.getRow$1(3).toString$0(0) + "\n";
+ },
+ $index: function(_, i) {
+ return this._m4storage[i];
+ },
+ $eq: function(_, other) {
+ var t1, t2, t3;
+ if (other == null)
+ return false;
+ if (other instanceof E.Matrix4) {
+ t1 = this._m4storage;
+ t2 = t1[0];
+ t3 = other._m4storage;
+ t1 = t2 === t3[0] && t1[1] === t3[1] && t1[2] === t3[2] && t1[3] === t3[3] && t1[4] === t3[4] && t1[5] === t3[5] && t1[6] === t3[6] && t1[7] === t3[7] && t1[8] === t3[8] && t1[9] === t3[9] && t1[10] === t3[10] && t1[11] === t3[11] && t1[12] === t3[12] && t1[13] === t3[13] && t1[14] === t3[14] && t1[15] === t3[15];
+ } else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ return A.hashObjects(this._m4storage);
+ },
+ setRow$2: function(row, arg) {
+ var argStorage = arg._v4storage,
+ t1 = this._m4storage;
+ t1[row] = argStorage[0];
+ t1[4 + row] = argStorage[1];
+ t1[8 + row] = argStorage[2];
+ t1[12 + row] = argStorage[3];
+ },
+ getRow$1: function(row) {
+ var t1 = new Float64Array(4),
+ t2 = this._m4storage;
+ t1[0] = t2[row];
+ t1[1] = t2[4 + row];
+ t1[2] = t2[8 + row];
+ t1[3] = t2[12 + row];
+ return new E.Vector4(t1);
+ },
+ $mul: function(_, arg) {
+ var t1;
+ if (typeof arg == "number") {
+ t1 = new E.Matrix4(new Float64Array(16));
+ t1.setFrom$1(this);
+ t1.scale$3(0, arg, null, null);
+ return t1;
+ }
+ if (arg instanceof E.Matrix4) {
+ t1 = new E.Matrix4(new Float64Array(16));
+ t1.setFrom$1(this);
+ t1.multiply$1(0, arg);
+ return t1;
+ }
+ throw H.wrapException(P.ArgumentError$(arg));
+ },
+ $add: function(_, arg) {
+ var oStorage,
+ t1 = new Float64Array(16),
+ t2 = new E.Matrix4(t1);
+ t2.setFrom$1(this);
+ oStorage = arg._m4storage;
+ t1[0] = t1[0] + oStorage[0];
+ t1[1] = t1[1] + oStorage[1];
+ t1[2] = t1[2] + oStorage[2];
+ t1[3] = t1[3] + oStorage[3];
+ t1[4] = t1[4] + oStorage[4];
+ t1[5] = t1[5] + oStorage[5];
+ t1[6] = t1[6] + oStorage[6];
+ t1[7] = t1[7] + oStorage[7];
+ t1[8] = t1[8] + oStorage[8];
+ t1[9] = t1[9] + oStorage[9];
+ t1[10] = t1[10] + oStorage[10];
+ t1[11] = t1[11] + oStorage[11];
+ t1[12] = t1[12] + oStorage[12];
+ t1[13] = t1[13] + oStorage[13];
+ t1[14] = t1[14] + oStorage[14];
+ t1[15] = t1[15] + oStorage[15];
+ return t2;
+ },
+ $sub: function(_, arg) {
+ var oStorage,
+ t1 = new Float64Array(16),
+ t2 = new E.Matrix4(t1);
+ t2.setFrom$1(this);
+ oStorage = arg._m4storage;
+ t1[0] = t1[0] - oStorage[0];
+ t1[1] = t1[1] - oStorage[1];
+ t1[2] = t1[2] - oStorage[2];
+ t1[3] = t1[3] - oStorage[3];
+ t1[4] = t1[4] - oStorage[4];
+ t1[5] = t1[5] - oStorage[5];
+ t1[6] = t1[6] - oStorage[6];
+ t1[7] = t1[7] - oStorage[7];
+ t1[8] = t1[8] - oStorage[8];
+ t1[9] = t1[9] - oStorage[9];
+ t1[10] = t1[10] - oStorage[10];
+ t1[11] = t1[11] - oStorage[11];
+ t1[12] = t1[12] - oStorage[12];
+ t1[13] = t1[13] - oStorage[13];
+ t1[14] = t1[14] - oStorage[14];
+ t1[15] = t1[15] - oStorage[15];
+ return t2;
+ },
+ translate$2: function(_, x, y) {
+ var tx, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17;
+ if (typeof x != "number")
+ throw H.wrapException(P.UnimplementedError$(null));
+ tx = x;
+ t1 = this._m4storage;
+ t2 = t1[0];
+ t3 = t1[4];
+ t4 = t1[8];
+ t5 = t1[12];
+ t6 = t1[1];
+ t7 = t1[5];
+ t8 = t1[9];
+ t9 = t1[13];
+ t10 = t1[2];
+ t11 = t1[6];
+ t12 = t1[10];
+ t13 = t1[14];
+ t14 = t1[3];
+ t15 = t1[7];
+ t16 = t1[11];
+ t17 = t1[15];
+ t1[12] = t2 * tx + t3 * y + t4 * 0 + t5;
+ t1[13] = t6 * tx + t7 * y + t8 * 0 + t9;
+ t1[14] = t10 * tx + t11 * y + t12 * 0 + t13;
+ t1[15] = t14 * tx + t15 * y + t16 * 0 + t17;
+ },
+ scale$3: function(_, x, y, z) {
+ var sy, sz, sx, t1;
+ if (typeof x == "number") {
+ sy = y == null ? x : y;
+ sz = z == null ? x : z;
+ } else
+ throw H.wrapException(P.UnimplementedError$(null));
+ sx = x;
+ t1 = this._m4storage;
+ t1[0] = t1[0] * sx;
+ t1[1] = t1[1] * sx;
+ t1[2] = t1[2] * sx;
+ t1[3] = t1[3] * sx;
+ t1[4] = t1[4] * sy;
+ t1[5] = t1[5] * sy;
+ t1[6] = t1[6] * sy;
+ t1[7] = t1[7] * sy;
+ t1[8] = t1[8] * sz;
+ t1[9] = t1[9] * sz;
+ t1[10] = t1[10] * sz;
+ t1[11] = t1[11] * sz;
+ t1[12] = t1[12];
+ t1[13] = t1[13];
+ t1[14] = t1[14];
+ t1[15] = t1[15];
+ },
+ scale$1: function($receiver, x) {
+ return this.scale$3($receiver, x, null, null);
+ },
+ setIdentity$0: function() {
+ var t1 = this._m4storage;
+ t1[0] = 1;
+ t1[1] = 0;
+ t1[2] = 0;
+ t1[3] = 0;
+ t1[4] = 0;
+ t1[5] = 1;
+ t1[6] = 0;
+ t1[7] = 0;
+ t1[8] = 0;
+ t1[9] = 0;
+ t1[10] = 1;
+ t1[11] = 0;
+ t1[12] = 0;
+ t1[13] = 0;
+ t1[14] = 0;
+ t1[15] = 1;
+ },
+ copyInverse$1: function(arg) {
+ var invDet, t1, t2, t3,
+ argStorage = arg._m4storage,
+ a00 = argStorage[0],
+ a01 = argStorage[1],
+ a02 = argStorage[2],
+ a03 = argStorage[3],
+ a10 = argStorage[4],
+ a11 = argStorage[5],
+ a12 = argStorage[6],
+ a13 = argStorage[7],
+ a20 = argStorage[8],
+ a21 = argStorage[9],
+ a22 = argStorage[10],
+ a23 = argStorage[11],
+ a30 = argStorage[12],
+ a31 = argStorage[13],
+ a32 = argStorage[14],
+ a33 = argStorage[15],
+ b00 = a00 * a11 - a01 * a10,
+ b01 = a00 * a12 - a02 * a10,
+ b02 = a00 * a13 - a03 * a10,
+ b03 = a01 * a12 - a02 * a11,
+ b04 = a01 * a13 - a03 * a11,
+ b05 = a02 * a13 - a03 * a12,
+ b06 = a20 * a31 - a21 * a30,
+ b07 = a20 * a32 - a22 * a30,
+ b08 = a20 * a33 - a23 * a30,
+ b09 = a21 * a32 - a22 * a31,
+ b10 = a21 * a33 - a23 * a31,
+ b11 = a22 * a33 - a23 * a32,
+ det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
+ if (det === 0) {
+ this.setFrom$1(arg);
+ return 0;
+ }
+ invDet = 1 / det;
+ t1 = this._m4storage;
+ t1[0] = (a11 * b11 - a12 * b10 + a13 * b09) * invDet;
+ t1[1] = (-a01 * b11 + a02 * b10 - a03 * b09) * invDet;
+ t1[2] = (a31 * b05 - a32 * b04 + a33 * b03) * invDet;
+ t1[3] = (-a21 * b05 + a22 * b04 - a23 * b03) * invDet;
+ t2 = -a10;
+ t1[4] = (t2 * b11 + a12 * b08 - a13 * b07) * invDet;
+ t1[5] = (a00 * b11 - a02 * b08 + a03 * b07) * invDet;
+ t3 = -a30;
+ t1[6] = (t3 * b05 + a32 * b02 - a33 * b01) * invDet;
+ t1[7] = (a20 * b05 - a22 * b02 + a23 * b01) * invDet;
+ t1[8] = (a10 * b10 - a11 * b08 + a13 * b06) * invDet;
+ t1[9] = (-a00 * b10 + a01 * b08 - a03 * b06) * invDet;
+ t1[10] = (a30 * b04 - a31 * b02 + a33 * b00) * invDet;
+ t1[11] = (-a20 * b04 + a21 * b02 - a23 * b00) * invDet;
+ t1[12] = (t2 * b09 + a11 * b07 - a12 * b06) * invDet;
+ t1[13] = (a00 * b09 - a01 * b07 + a02 * b06) * invDet;
+ t1[14] = (t3 * b03 + a31 * b01 - a32 * b00) * invDet;
+ t1[15] = (a20 * b03 - a21 * b01 + a22 * b00) * invDet;
+ return det;
+ },
+ multiply$1: function(_, arg) {
+ var t1 = this._m4storage,
+ m00 = t1[0],
+ m01 = t1[4],
+ m02 = t1[8],
+ m03 = t1[12],
+ m10 = t1[1],
+ m11 = t1[5],
+ m12 = t1[9],
+ m13 = t1[13],
+ m20 = t1[2],
+ m21 = t1[6],
+ m22 = t1[10],
+ m23 = t1[14],
+ m30 = t1[3],
+ m31 = t1[7],
+ m32 = t1[11],
+ m33 = t1[15],
+ argStorage = arg._m4storage,
+ n00 = argStorage[0],
+ n01 = argStorage[4],
+ n02 = argStorage[8],
+ n03 = argStorage[12],
+ n10 = argStorage[1],
+ n11 = argStorage[5],
+ n12 = argStorage[9],
+ n13 = argStorage[13],
+ n20 = argStorage[2],
+ n21 = argStorage[6],
+ n22 = argStorage[10],
+ n23 = argStorage[14],
+ n30 = argStorage[3],
+ n31 = argStorage[7],
+ n32 = argStorage[11],
+ n33 = argStorage[15];
+ t1[0] = m00 * n00 + m01 * n10 + m02 * n20 + m03 * n30;
+ t1[4] = m00 * n01 + m01 * n11 + m02 * n21 + m03 * n31;
+ t1[8] = m00 * n02 + m01 * n12 + m02 * n22 + m03 * n32;
+ t1[12] = m00 * n03 + m01 * n13 + m02 * n23 + m03 * n33;
+ t1[1] = m10 * n00 + m11 * n10 + m12 * n20 + m13 * n30;
+ t1[5] = m10 * n01 + m11 * n11 + m12 * n21 + m13 * n31;
+ t1[9] = m10 * n02 + m11 * n12 + m12 * n22 + m13 * n32;
+ t1[13] = m10 * n03 + m11 * n13 + m12 * n23 + m13 * n33;
+ t1[2] = m20 * n00 + m21 * n10 + m22 * n20 + m23 * n30;
+ t1[6] = m20 * n01 + m21 * n11 + m22 * n21 + m23 * n31;
+ t1[10] = m20 * n02 + m21 * n12 + m22 * n22 + m23 * n32;
+ t1[14] = m20 * n03 + m21 * n13 + m22 * n23 + m23 * n33;
+ t1[3] = m30 * n00 + m31 * n10 + m32 * n20 + m33 * n30;
+ t1[7] = m30 * n01 + m31 * n11 + m32 * n21 + m33 * n31;
+ t1[11] = m30 * n02 + m31 * n12 + m32 * n22 + m33 * n32;
+ t1[15] = m30 * n03 + m31 * n13 + m32 * n23 + m33 * n33;
+ },
+ transform3$1: function(arg) {
+ var argStorage = arg._v3storage,
+ t1 = this._m4storage,
+ t2 = t1[0],
+ t3 = argStorage[0],
+ t4 = t1[4],
+ t5 = argStorage[1],
+ t6 = t1[8],
+ t7 = argStorage[2],
+ t8 = t1[12],
+ t9 = t1[1],
+ t10 = t1[5],
+ t11 = t1[9],
+ t12 = t1[13],
+ t13 = t1[2],
+ t14 = t1[6],
+ t15 = t1[10];
+ t1 = t1[14];
+ argStorage[0] = t2 * t3 + t4 * t5 + t6 * t7 + t8;
+ argStorage[1] = t9 * t3 + t10 * t5 + t11 * t7 + t12;
+ argStorage[2] = t13 * t3 + t14 * t5 + t15 * t7 + t1;
+ return arg;
+ },
+ transform$1: function(_, arg) {
+ var argStorage = arg._v4storage,
+ t1 = this._m4storage,
+ t2 = t1[0],
+ t3 = argStorage[0],
+ t4 = t1[4],
+ t5 = argStorage[1],
+ t6 = t1[8],
+ t7 = argStorage[2],
+ t8 = t1[12],
+ t9 = argStorage[3],
+ t10 = t1[1],
+ t11 = t1[5],
+ t12 = t1[9],
+ t13 = t1[13],
+ t14 = t1[2],
+ t15 = t1[6],
+ t16 = t1[10],
+ t17 = t1[14],
+ t18 = t1[3],
+ t19 = t1[7],
+ t20 = t1[11];
+ t1 = t1[15];
+ argStorage[0] = t2 * t3 + t4 * t5 + t6 * t7 + t8 * t9;
+ argStorage[1] = t10 * t3 + t11 * t5 + t12 * t7 + t13 * t9;
+ argStorage[2] = t14 * t3 + t15 * t5 + t16 * t7 + t17 * t9;
+ argStorage[3] = t18 * t3 + t19 * t5 + t20 * t7 + t1 * t9;
+ return arg;
+ },
+ perspectiveTransform$1: function(arg) {
+ var argStorage = arg._v3storage,
+ t1 = this._m4storage,
+ t2 = t1[0],
+ t3 = argStorage[0],
+ t4 = t1[4],
+ t5 = argStorage[1],
+ t6 = t1[8],
+ t7 = argStorage[2],
+ t8 = t1[12],
+ t9 = t1[1],
+ t10 = t1[5],
+ t11 = t1[9],
+ t12 = t1[13],
+ t13 = t1[2],
+ t14 = t1[6],
+ t15 = t1[10],
+ t16 = t1[14],
+ w_ = 1 / (t1[3] * t3 + t1[7] * t5 + t1[11] * t7 + t1[15]);
+ argStorage[0] = (t2 * t3 + t4 * t5 + t6 * t7 + t8) * w_;
+ argStorage[1] = (t9 * t3 + t10 * t5 + t11 * t7 + t12) * w_;
+ argStorage[2] = (t13 * t3 + t14 * t5 + t15 * t7 + t16) * w_;
+ return arg;
+ }
+ };
+ E.Vector3.prototype = {
+ setValues$3: function(x, y, z) {
+ var t1 = this._v3storage;
+ t1[0] = x;
+ t1[1] = y;
+ t1[2] = z;
+ },
+ setFrom$1: function(other) {
+ var otherStorage = other._v3storage,
+ t1 = this._v3storage;
+ t1[0] = otherStorage[0];
+ t1[1] = otherStorage[1];
+ t1[2] = otherStorage[2];
+ },
+ toString$0: function(_) {
+ var t1 = this._v3storage;
+ return "[" + H.S(t1[0]) + "," + H.S(t1[1]) + "," + H.S(t1[2]) + "]";
+ },
+ $eq: function(_, other) {
+ var t1, t2, t3;
+ if (other == null)
+ return false;
+ if (other instanceof E.Vector3) {
+ t1 = this._v3storage;
+ t2 = t1[0];
+ t3 = other._v3storage;
+ t1 = t2 === t3[0] && t1[1] === t3[1] && t1[2] === t3[2];
+ } else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ return A.hashObjects(this._v3storage);
+ },
+ $sub: function(_, other) {
+ var argStorage,
+ t1 = new Float64Array(3),
+ t2 = new E.Vector3(t1);
+ t2.setFrom$1(this);
+ argStorage = other._v3storage;
+ t1[0] = t1[0] - argStorage[0];
+ t1[1] = t1[1] - argStorage[1];
+ t1[2] = t1[2] - argStorage[2];
+ return t2;
+ },
+ $add: function(_, other) {
+ var argStorage,
+ t1 = new Float64Array(3),
+ t2 = new E.Vector3(t1);
+ t2.setFrom$1(this);
+ argStorage = other._v3storage;
+ t1[0] = t1[0] + argStorage[0];
+ t1[1] = t1[1] + argStorage[1];
+ t1[2] = t1[2] + argStorage[2];
+ return t2;
+ },
+ $mul: function(_, scale) {
+ var t1 = new Float64Array(3),
+ t2 = new E.Vector3(t1);
+ t2.setFrom$1(this);
+ t1[2] = t1[2] * scale;
+ t1[1] = t1[1] * scale;
+ t1[0] = t1[0] * scale;
+ return t2;
+ },
+ $index: function(_, i) {
+ return this._v3storage[i];
+ },
+ get$length: function(_) {
+ var t1 = this._v3storage,
+ t2 = t1[0],
+ t3 = t1[1];
+ t1 = t1[2];
+ return Math.sqrt(t2 * t2 + t3 * t3 + t1 * t1);
+ },
+ dot$1: function(other) {
+ var otherStorage = other._v3storage,
+ t1 = this._v3storage;
+ return t1[0] * otherStorage[0] + t1[1] * otherStorage[1] + t1[2] * otherStorage[2];
+ },
+ scaled$1: function(arg) {
+ var t1 = new Float64Array(3),
+ t2 = new E.Vector3(t1);
+ t2.setFrom$1(this);
+ t1[2] = t1[2] * arg;
+ t1[1] = t1[1] * arg;
+ t1[0] = t1[0] * arg;
+ return t2;
+ }
+ };
+ E.Vector4.prototype = {
+ setValues$4: function(x_, y_, z_, w_) {
+ var t1 = this._v4storage;
+ t1[3] = w_;
+ t1[2] = z_;
+ t1[1] = y_;
+ t1[0] = x_;
+ },
+ setFrom$1: function(other) {
+ var otherStorage = other._v4storage,
+ t1 = this._v4storage;
+ t1[3] = otherStorage[3];
+ t1[2] = otherStorage[2];
+ t1[1] = otherStorage[1];
+ t1[0] = otherStorage[0];
+ },
+ toString$0: function(_) {
+ var t1 = this._v4storage;
+ return H.S(t1[0]) + "," + H.S(t1[1]) + "," + H.S(t1[2]) + "," + H.S(t1[3]);
+ },
+ $eq: function(_, other) {
+ var t1, t2, t3;
+ if (other == null)
+ return false;
+ if (other instanceof E.Vector4) {
+ t1 = this._v4storage;
+ t2 = t1[0];
+ t3 = other._v4storage;
+ t1 = t2 === t3[0] && t1[1] === t3[1] && t1[2] === t3[2] && t1[3] === t3[3];
+ } else
+ t1 = false;
+ return t1;
+ },
+ get$hashCode: function(_) {
+ return A.hashObjects(this._v4storage);
+ },
+ $sub: function(_, other) {
+ var argStorage,
+ t1 = new Float64Array(4),
+ t2 = new E.Vector4(t1);
+ t2.setFrom$1(this);
+ argStorage = other._v4storage;
+ t1[0] = t1[0] - argStorage[0];
+ t1[1] = t1[1] - argStorage[1];
+ t1[2] = t1[2] - argStorage[2];
+ t1[3] = t1[3] - argStorage[3];
+ return t2;
+ },
+ $add: function(_, other) {
+ var argStorage,
+ t1 = new Float64Array(4),
+ t2 = new E.Vector4(t1);
+ t2.setFrom$1(this);
+ argStorage = other._v4storage;
+ t1[0] = t1[0] + argStorage[0];
+ t1[1] = t1[1] + argStorage[1];
+ t1[2] = t1[2] + argStorage[2];
+ t1[3] = t1[3] + argStorage[3];
+ return t2;
+ },
+ $mul: function(_, scale) {
+ var t1 = new Float64Array(4),
+ t2 = new E.Vector4(t1);
+ t2.setFrom$1(this);
+ t1[0] = t1[0] * scale;
+ t1[1] = t1[1] * scale;
+ t1[2] = t1[2] * scale;
+ t1[3] = t1[3] * scale;
+ return t2;
+ },
+ $index: function(_, i) {
+ return this._v4storage[i];
+ },
+ get$length: function(_) {
+ var t1 = this._v4storage,
+ t2 = t1[0],
+ t3 = t1[1],
+ t4 = t1[2];
+ t1 = t1[3];
+ return Math.sqrt(t2 * t2 + t3 * t3 + t4 * t4 + t1 * t1);
+ }
+ };
+ (function aliases() {
+ var _ = H._SaveStackTracking.prototype;
+ _.super$_SaveStackTracking$clear = _.clear$0;
+ _.super$_SaveStackTracking$save = _.save$0;
+ _.super$_SaveStackTracking$restore = _.restore$0;
+ _.super$_SaveStackTracking$translate = _.translate$2;
+ _.super$_SaveStackTracking$scale = _.scale$2;
+ _.super$_SaveStackTracking$rotate = _.rotate$1;
+ _.super$_SaveStackTracking$transform = _.transform$1;
+ _.super$_SaveStackTracking$clipRect = _.clipRect$1;
+ _.super$_SaveStackTracking$clipRRect = _.clipRRect$1;
+ _.super$_SaveStackTracking$clipPath = _.clipPath$1;
+ _ = H.SaveElementStackTracking.prototype;
+ _.super$SaveElementStackTracking$clear = _.clear$0;
+ _ = H._DomClip.prototype;
+ _.super$_DomClip$createElement = _.createElement$0;
+ _ = H.PersistedSurface.prototype;
+ _.super$PersistedSurface$revive = _.revive$0;
+ _.super$PersistedSurface$canUpdateAsMatch = _.canUpdateAsMatch$1;
+ _.super$PersistedSurface$build = _.build$0;
+ _.super$PersistedSurface$adoptElements = _.adoptElements$1;
+ _.super$PersistedSurface$update = _.update$1;
+ _.super$PersistedSurface$retain = _.retain$0;
+ _.super$PersistedSurface$discard = _.discard$0;
+ _.super$PersistedSurface$preroll = _.preroll$0;
+ _ = H.PersistedContainerSurface.prototype;
+ _.super$PersistedContainerSurface$recomputeTransformAndClip = _.recomputeTransformAndClip$0;
+ _.super$PersistedContainerSurface$update = _.update$1;
+ _.super$PersistedContainerSurface$discard = _.discard$0;
+ _ = H.DefaultTextEditingStrategy.prototype;
+ _.super$DefaultTextEditingStrategy$domElement = _.set$domElement;
+ _.super$DefaultTextEditingStrategy$initializeTextEditing = _.initializeTextEditing$3$onAction$onChange;
+ _.super$DefaultTextEditingStrategy$disable = _.disable$0;
+ _.super$DefaultTextEditingStrategy$setEditingState = _.setEditingState$1;
+ _ = J.Interceptor.prototype;
+ _.super$Interceptor$toString = _.toString$0;
+ _.super$Interceptor$noSuchMethod = _.noSuchMethod$1;
+ _ = J.JavaScriptObject.prototype;
+ _.super$JavaScriptObject$toString = _.toString$0;
+ _ = H.JsLinkedHashMap.prototype;
+ _.super$JsLinkedHashMap$internalContainsKey = _.internalContainsKey$1;
+ _.super$JsLinkedHashMap$internalGet = _.internalGet$1;
+ _.super$JsLinkedHashMap$internalSet = _.internalSet$2;
+ _.super$JsLinkedHashMap$internalRemove = _.internalRemove$1;
+ _ = P._BroadcastStreamController.prototype;
+ _.super$_BroadcastStreamController$_addEventError = _._addEventError$0;
+ _ = P.ListMixin.prototype;
+ _.super$ListMixin$setRange = _.setRange$4;
+ _ = P.Iterable.prototype;
+ _.super$Iterable$where = _.where$1;
+ _ = P.Object.prototype;
+ _.super$Object$$eq = _.$eq;
+ _.super$Object$toString = _.toString$0;
+ _ = W.Element0.prototype;
+ _.super$Element$createFragment = _.createFragment$3$treeSanitizer$validator;
+ _ = W.EventTarget.prototype;
+ _.super$EventTarget$addEventListener = _.addEventListener$3;
+ _ = W._SimpleNodeValidator.prototype;
+ _.super$_SimpleNodeValidator$allowsAttribute = _.allowsAttribute$3;
+ _ = P.JsObject.prototype;
+ _.super$JsObject$$index = _.$index;
+ _.super$JsObject$$indexSet = _.$indexSet;
+ _ = P.Color.prototype;
+ _.super$Color$$eq = _.$eq;
+ _.super$Color$toString = _.toString$0;
+ _ = X.Animation0.prototype;
+ _.super$Animation$toStringDetails = _.toStringDetails$0;
+ _ = Z.ParametricCurve.prototype;
+ _.super$ParametricCurve$transform = _.transform$1;
+ _ = S.AnimationEagerListenerMixin.prototype;
+ _.super$AnimationEagerListenerMixin$dispose = _.dispose$0;
+ _ = N.BindingBase.prototype;
+ _.super$BindingBase$initInstances = _.initInstances$0;
+ _.super$BindingBase$initServiceExtensions = _.initServiceExtensions$0;
+ _.super$BindingBase$unlocked = _.unlocked$0;
+ _ = B.ChangeNotifier.prototype;
+ _.super$ChangeNotifier$dispose = _.dispose$0;
+ _.super$ChangeNotifier$notifyListeners = _.notifyListeners$0;
+ _ = B.ValueNotifier.prototype;
+ _.super$ValueNotifier$value = _.set$value;
+ _ = Y.Diagnosticable.prototype;
+ _.super$Diagnosticable$toStringShort = _.toStringShort$0;
+ _.super$Diagnosticable$debugFillProperties = _.debugFillProperties$1;
+ _ = Y.DiagnosticableTreeMixin.prototype;
+ _.super$DiagnosticableTreeMixin$toStringDeep = _.toStringDeep$3$minLevel$prefixLineOne$prefixOtherLines;
+ _.super$DiagnosticableTreeMixin$toStringShort = _.toStringShort$0;
+ _ = B.AbstractNode.prototype;
+ _.super$AbstractNode$attach = _.attach$1;
+ _.super$AbstractNode$detach = _.detach$0;
+ _.super$AbstractNode$adoptChild = _.adoptChild$1;
+ _.super$AbstractNode$dropChild = _.dropChild$1;
+ _ = N.GestureBinding.prototype;
+ _.super$GestureBinding$hitTest = _.hitTest$2;
+ _.super$GestureBinding$dispatchEvent = _.dispatchEvent$2;
+ _ = S.GestureRecognizer.prototype;
+ _.super$GestureRecognizer$isPointerAllowed = _.isPointerAllowed$1;
+ _.super$GestureRecognizer$dispose = _.dispose$0;
+ _ = S.OneSequenceGestureRecognizer.prototype;
+ _.super$OneSequenceGestureRecognizer$resolve = _.resolve$1;
+ _.super$OneSequenceGestureRecognizer$dispose = _.dispose$0;
+ _.super$OneSequenceGestureRecognizer$startTrackingPointer = _.startTrackingPointer$2;
+ _.super$OneSequenceGestureRecognizer$stopTrackingPointer = _.stopTrackingPointer$1;
+ _ = S.PrimaryPointerGestureRecognizer.prototype;
+ _.super$PrimaryPointerGestureRecognizer$addAllowedPointer = _.addAllowedPointer$1;
+ _.super$PrimaryPointerGestureRecognizer$acceptGesture = _.acceptGesture$1;
+ _.super$PrimaryPointerGestureRecognizer$rejectGesture = _.rejectGesture$1;
+ _ = N.BaseTapGestureRecognizer.prototype;
+ _.super$BaseTapGestureRecognizer$rejectGesture = _.rejectGesture$1;
+ _ = R.__InkResponseState_State_AutomaticKeepAliveClientMixin.prototype;
+ _.super$__InkResponseState_State_AutomaticKeepAliveClientMixin$initState = _.initState$0;
+ _.super$__InkResponseState_State_AutomaticKeepAliveClientMixin$deactivate = _.deactivate$0;
+ _ = L.__BorderContainerState_State_TickerProviderStateMixin.prototype;
+ _.super$__BorderContainerState_State_TickerProviderStateMixin$dispose = _.dispose$0;
+ _ = L.__HelperErrorState_State_SingleTickerProviderStateMixin.prototype;
+ _.super$__HelperErrorState_State_SingleTickerProviderStateMixin$dispose = _.dispose$0;
+ _ = L.__InputDecoratorState_State_TickerProviderStateMixin.prototype;
+ _.super$__InputDecoratorState_State_TickerProviderStateMixin$dispose = _.dispose$0;
+ _.super$__InputDecoratorState_State_TickerProviderStateMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _ = M.InkFeature.prototype;
+ _.super$InkFeature$dispose = _.dispose$0;
+ _ = M._ScaffoldMessengerState_State_TickerProviderStateMixin.prototype;
+ _.super$_ScaffoldMessengerState_State_TickerProviderStateMixin$dispose = _.dispose$0;
+ _.super$_ScaffoldMessengerState_State_TickerProviderStateMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _ = M._ScaffoldState_State_TickerProviderStateMixin.prototype;
+ _.super$_ScaffoldState_State_TickerProviderStateMixin$dispose = _.dispose$0;
+ _.super$_ScaffoldState_State_TickerProviderStateMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _ = M.__FloatingActionButtonTransitionState_State_TickerProviderStateMixin.prototype;
+ _.super$__FloatingActionButtonTransitionState_State_TickerProviderStateMixin$dispose = _.dispose$0;
+ _ = Z.__TextFieldState_State_RestorationMixin.prototype;
+ _.super$__TextFieldState_State_RestorationMixin$didUpdateWidget = _.didUpdateWidget$1;
+ _.super$__TextFieldState_State_RestorationMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _.super$__TextFieldState_State_RestorationMixin$dispose = _.dispose$0;
+ _ = S.__TooltipState_State_SingleTickerProviderStateMixin.prototype;
+ _.super$__TooltipState_State_SingleTickerProviderStateMixin$dispose = _.dispose$0;
+ _ = K.BorderRadiusGeometry.prototype;
+ _.super$BorderRadiusGeometry$subtract = _.subtract$1;
+ _.super$BorderRadiusGeometry$add = _.add$1;
+ _ = Y.ShapeBorder.prototype;
+ _.super$ShapeBorder$lerpFrom = _.lerpFrom$2;
+ _.super$ShapeBorder$lerpTo = _.lerpTo$2;
+ _ = Z.Decoration.prototype;
+ _.super$Decoration$lerpFrom = _.lerpFrom$2;
+ _.super$Decoration$lerpTo = _.lerpTo$2;
+ _ = Z.BoxPainter.prototype;
+ _.super$BoxPainter$dispose = _.dispose$0;
+ _ = V.EdgeInsetsGeometry.prototype;
+ _.super$EdgeInsetsGeometry$add = _.add$1;
+ _ = G.InlineSpan.prototype;
+ _.super$InlineSpan$$eq = _.$eq;
+ _ = M.SpringSimulation.prototype;
+ _.super$SpringSimulation$x = _.x$1;
+ _ = N.RendererBinding.prototype;
+ _.super$RendererBinding$handleMetricsChanged = _.handleMetricsChanged$0;
+ _.super$RendererBinding$handlePlatformBrightnessChanged = _.handlePlatformBrightnessChanged$0;
+ _.super$RendererBinding$drawFrame = _.drawFrame$0;
+ _ = S.BoxConstraints.prototype;
+ _.super$BoxConstraints$$eq = _.$eq;
+ _ = S.BoxParentData.prototype;
+ _.super$BoxParentData$toString = _.toString$0;
+ _ = S.RenderBox.prototype;
+ _.super$RenderBox$computeDistanceToActualBaseline = _.computeDistanceToActualBaseline$1;
+ _.super$RenderBox$hitTest = _.hitTest$2$position;
+ _.super$RenderBox$applyPaintTransform = _.applyPaintTransform$2;
+ _ = B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin.prototype;
+ _.super$_RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin$attach = _.attach$1;
+ _.super$_RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin$detach = _.detach$0;
+ _ = D._RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin.prototype;
+ _.super$_RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin$attach = _.attach$1;
+ _.super$_RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin$detach = _.detach$0;
+ _ = F.RenderFlex.prototype;
+ _.super$RenderFlex$performLayout = _.performLayout$0;
+ _ = T.Layer.prototype;
+ _.super$Layer$updateSubtreeNeedsAddToScene = _.updateSubtreeNeedsAddToScene$0;
+ _ = T.ContainerLayer.prototype;
+ _.super$ContainerLayer$findAnnotations = _.findAnnotations$1$3$onlyFirst;
+ _.super$ContainerLayer$attach = _.attach$1;
+ _.super$ContainerLayer$detach = _.detach$0;
+ _ = T.OffsetLayer.prototype;
+ _.super$OffsetLayer$findAnnotations = _.findAnnotations$1$3$onlyFirst;
+ _ = Y.BaseMouseTracker.prototype;
+ _.super$BaseMouseTracker$handleDeviceUpdate = _.handleDeviceUpdate$1;
+ _ = Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin.prototype;
+ _.super$_MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin$handleDeviceUpdate = _.handleDeviceUpdate$1;
+ _ = K.ParentData.prototype;
+ _.super$ParentData$detach = _.detach$0;
+ _ = K.RenderObject.prototype;
+ _.super$RenderObject$adoptChild = _.adoptChild$1;
+ _.super$RenderObject$attach = _.attach$1;
+ _.super$RenderObject$markNeedsLayout = _.markNeedsLayout$0;
+ _.super$RenderObject$applyPaintTransform = _.applyPaintTransform$2;
+ _.super$RenderObject$describeSemanticsConfiguration = _.describeSemanticsConfiguration$1;
+ _.super$RenderObject$clearSemantics = _.clearSemantics$0;
+ _.super$RenderObject$visitChildrenForSemantics = _.visitChildrenForSemantics$1;
+ _.super$RenderObject$assembleSemanticsNode = _.assembleSemanticsNode$3;
+ _.super$RenderObject$handleEvent = _.handleEvent$2;
+ _.super$RenderObject$toStringShort = _.toStringShort$0;
+ _.super$RenderObject$showOnScreen = _.showOnScreen$4$curve$descendant$duration$rect;
+ _ = K.ContainerRenderObjectMixin.prototype;
+ _.super$ContainerRenderObjectMixin$insert = _.insert$2$after;
+ _.super$ContainerRenderObjectMixin$remove = _.remove$1;
+ _.super$ContainerRenderObjectMixin$move = _.move$2$after;
+ _.super$ContainerRenderObjectMixin$redepthChildren = _.redepthChildren$0;
+ _.super$ContainerRenderObjectMixin$visitChildren = _.visitChildren$1;
+ _ = K.RelayoutWhenSystemFontsChangeMixin.prototype;
+ _.super$RelayoutWhenSystemFontsChangeMixin$systemFontsDidChange = _.systemFontsDidChange$0;
+ _ = Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin.prototype;
+ _.super$_RenderParagraph_RenderBox_ContainerRenderObjectMixin$attach = _.attach$1;
+ _.super$_RenderParagraph_RenderBox_ContainerRenderObjectMixin$detach = _.detach$0;
+ _ = E.RenderProxyBoxMixin.prototype;
+ _.super$RenderProxyBoxMixin$computeMinIntrinsicWidth = _.computeMinIntrinsicWidth$1;
+ _.super$RenderProxyBoxMixin$computeMaxIntrinsicWidth = _.computeMaxIntrinsicWidth$1;
+ _.super$RenderProxyBoxMixin$computeMinIntrinsicHeight = _.computeMinIntrinsicHeight$1;
+ _.super$RenderProxyBoxMixin$computeMaxIntrinsicHeight = _.computeMaxIntrinsicHeight$1;
+ _.super$RenderProxyBoxMixin$performLayout = _.performLayout$0;
+ _.super$RenderProxyBoxMixin$hitTestChildren = _.hitTestChildren$2$position;
+ _.super$RenderProxyBoxMixin$paint = _.paint$2;
+ _ = E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin.prototype;
+ _.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$attach = _.attach$1;
+ _.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin$detach = _.detach$0;
+ _ = E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin.prototype;
+ _.super$_RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin$computeDistanceToActualBaseline = _.computeDistanceToActualBaseline$1;
+ _ = T._RenderShiftedBox_RenderBox_RenderObjectWithChildMixin.prototype;
+ _.super$_RenderShiftedBox_RenderBox_RenderObjectWithChildMixin$attach = _.attach$1;
+ _.super$_RenderShiftedBox_RenderBox_RenderObjectWithChildMixin$detach = _.detach$0;
+ _ = G.SliverLogicalParentData.prototype;
+ _.super$SliverLogicalParentData$toString = _.toString$0;
+ _ = F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin.prototype;
+ _.super$_RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin$attach = _.attach$1;
+ _.super$_RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin$detach = _.detach$0;
+ _ = T.RenderSliverEdgeInsetsPadding.prototype;
+ _.super$RenderSliverEdgeInsetsPadding$performLayout = _.performLayout$0;
+ _ = Q._RenderViewportBase_RenderBox_ContainerRenderObjectMixin.prototype;
+ _.super$_RenderViewportBase_RenderBox_ContainerRenderObjectMixin$attach = _.attach$1;
+ _.super$_RenderViewportBase_RenderBox_ContainerRenderObjectMixin$detach = _.detach$0;
+ _ = N.ViewportOffset.prototype;
+ _.super$ViewportOffset$moveTo = _.moveTo$3$curve$duration;
+ _.super$ViewportOffset$debugFillDescription = _.debugFillDescription$1;
+ _ = N.SchedulerBinding.prototype;
+ _.super$SchedulerBinding$handleAppLifecycleStateChanged = _.handleAppLifecycleStateChanged$1;
+ _ = M.Ticker.prototype;
+ _.super$Ticker$dispose = _.dispose$0;
+ _ = Q.AssetBundle.prototype;
+ _.super$AssetBundle$loadString = _.loadString$2$cache;
+ _ = N.ServicesBinding.prototype;
+ _.super$ServicesBinding$handleMemoryPressure = _.handleMemoryPressure$0;
+ _.super$ServicesBinding$handleSystemMessage = _.handleSystemMessage$1;
+ _ = A.MethodChannel.prototype;
+ _.super$MethodChannel$_invokeMethod = _._invokeMethod$1$3$arguments$missingOk;
+ _ = L.AutomaticKeepAliveClientMixin.prototype;
+ _.super$AutomaticKeepAliveClientMixin$build = _.build$1;
+ _ = N._WidgetsFlutterBinding_BindingBase_GestureBinding.prototype;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding$initInstances = _.initInstances$0;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding$unlocked = _.unlocked$0;
+ _ = N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding.prototype;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding$initInstances = _.initInstances$0;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding$initServiceExtensions = _.initServiceExtensions$0;
+ _ = N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding.prototype;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding$initInstances = _.initInstances$0;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding$initServiceExtensions = _.initServiceExtensions$0;
+ _ = N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding.prototype;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding$initInstances = _.initInstances$0;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding$handleMemoryPressure = _.handleMemoryPressure$0;
+ _ = N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding.prototype;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding$initInstances = _.initInstances$0;
+ _ = N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding.prototype;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding$initInstances = _.initInstances$0;
+ _.super$_WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding$initServiceExtensions = _.initServiceExtensions$0;
+ _ = D._EditableTextState_State_AutomaticKeepAliveClientMixin.prototype;
+ _.super$_EditableTextState_State_AutomaticKeepAliveClientMixin$initState = _.initState$0;
+ _ = D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin.prototype;
+ _.super$_EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin$dispose = _.dispose$0;
+ _.super$_EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _ = U.FocusTraversalPolicy.prototype;
+ _.super$FocusTraversalPolicy$invalidateScopeData = _.invalidateScopeData$1;
+ _.super$FocusTraversalPolicy$changedScope = _.changedScope$2$node$oldScope;
+ _ = N.State.prototype;
+ _.super$State$initState = _.initState$0;
+ _.super$State$didUpdateWidget = _.didUpdateWidget$1;
+ _.super$State$deactivate = _.deactivate$0;
+ _.super$State$dispose = _.dispose$0;
+ _.super$State$didChangeDependencies = _.didChangeDependencies$0;
+ _ = N.Element.prototype;
+ _.super$Element$updateChild = _.updateChild$3;
+ _.super$Element$mount = _.mount$2;
+ _.super$Element$update = _.update$1;
+ _.super$Element$_updateSlot = _._updateSlot$1;
+ _.super$Element$forgetChild = _.forgetChild$1;
+ _.super$Element$activate = _.activate$0;
+ _.super$Element$deactivate = _.deactivate$0;
+ _.super$Element$unmount = _.unmount$0;
+ _.super$Element$dependOnInheritedElement = _.dependOnInheritedElement$2$aspect;
+ _.super$Element$didChangeDependencies = _.didChangeDependencies$0;
+ _ = N.ComponentElement.prototype;
+ _.super$ComponentElement$_firstBuild = _._firstBuild$0;
+ _.super$ComponentElement$performRebuild = _.performRebuild$0;
+ _ = N.ProxyElement.prototype;
+ _.super$ProxyElement$build = _.build$0;
+ _.super$ProxyElement$update = _.update$1;
+ _.super$ProxyElement$updated = _.updated$1;
+ _ = N.InheritedElement.prototype;
+ _.super$InheritedElement$notifyClients = _.notifyClients$1;
+ _ = N.RenderObjectElement.prototype;
+ _.super$RenderObjectElement$mount = _.mount$2;
+ _.super$RenderObjectElement$update = _.update$1;
+ _.super$RenderObjectElement$performRebuild = _.performRebuild$0;
+ _.super$RenderObjectElement$unmount = _.unmount$0;
+ _ = N.RootRenderObjectElement.prototype;
+ _.super$RootRenderObjectElement$mount = _.mount$2;
+ _ = G.ImplicitlyAnimatedWidgetState.prototype;
+ _.super$ImplicitlyAnimatedWidgetState$initState = _.initState$0;
+ _ = G._ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin.prototype;
+ _.super$_ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin$dispose = _.dispose$0;
+ _ = K.Route.prototype;
+ _.super$Route$install = _.install$0;
+ _.super$Route$didPush = _.didPush$0;
+ _.super$Route$didAdd = _.didAdd$0;
+ _.super$Route$didReplace = _.didReplace$1;
+ _.super$Route$willPop = _.willPop$0;
+ _.super$Route$didPop = _.didPop$1;
+ _.super$Route$didPopNext = _.didPopNext$1;
+ _.super$Route$didChangeNext = _.didChangeNext$1;
+ _.super$Route$didChangePrevious = _.didChangePrevious$1;
+ _.super$Route$changedInternalState = _.changedInternalState$0;
+ _.super$Route$changedExternalState = _.changedExternalState$0;
+ _.super$Route$dispose = _.dispose$0;
+ _ = K._RestorationInformation.prototype;
+ _.super$_RestorationInformation$computeSerializableData = _.computeSerializableData$0;
+ _ = K._NavigatorState_State_TickerProviderStateMixin.prototype;
+ _.super$_NavigatorState_State_TickerProviderStateMixin$dispose = _.dispose$0;
+ _.super$_NavigatorState_State_TickerProviderStateMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _ = K._NavigatorState_State_TickerProviderStateMixin_RestorationMixin.prototype;
+ _.super$_NavigatorState_State_TickerProviderStateMixin_RestorationMixin$didUpdateWidget = _.didUpdateWidget$1;
+ _.super$_NavigatorState_State_TickerProviderStateMixin_RestorationMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _.super$_NavigatorState_State_TickerProviderStateMixin_RestorationMixin$dispose = _.dispose$0;
+ _ = U.Notification0.prototype;
+ _.super$Notification$visitAncestor = _.visitAncestor$1;
+ _.super$Notification$debugFillDescription = _.debugFillDescription$1;
+ _ = L._OverscrollIndicatorNotification_Notification_ViewportNotificationMixin.prototype;
+ _.super$_OverscrollIndicatorNotification_Notification_ViewportNotificationMixin$debugFillDescription = _.debugFillDescription$1;
+ _ = L.__GlowingOverscrollIndicatorState_State_TickerProviderStateMixin.prototype;
+ _.super$__GlowingOverscrollIndicatorState_State_TickerProviderStateMixin$dispose = _.dispose$0;
+ _ = K.RestorableProperty.prototype;
+ _.super$RestorableProperty$dispose = _.dispose$0;
+ _ = K.RestorationMixin.prototype;
+ _.super$RestorationMixin$didToggleBucket = _.didToggleBucket$1;
+ _ = U.RestorableValue.prototype;
+ _.super$RestorableValue$value = _.set$value;
+ _ = U.RestorableListenable.prototype;
+ _.super$RestorableListenable$initWithValue = _.initWithValue$1;
+ _.super$RestorableListenable$dispose = _.dispose$0;
+ _ = T.OverlayRoute.prototype;
+ _.super$OverlayRoute$install = _.install$0;
+ _.super$OverlayRoute$didPop = _.didPop$1;
+ _.super$OverlayRoute$dispose = _.dispose$0;
+ _ = T.TransitionRoute.prototype;
+ _.super$TransitionRoute$install = _.install$0;
+ _.super$TransitionRoute$didPush = _.didPush$0;
+ _.super$TransitionRoute$didAdd = _.didAdd$0;
+ _.super$TransitionRoute$didPop = _.didPop$1;
+ _ = T._ModalRoute_TransitionRoute_LocalHistoryRoute.prototype;
+ _.super$_ModalRoute_TransitionRoute_LocalHistoryRoute$willPop = _.willPop$0;
+ _ = M.ScrollActivity.prototype;
+ _.super$ScrollActivity$dispose = _.dispose$0;
+ _ = G.ScrollNotification.prototype;
+ _.super$ScrollNotification$debugFillDescription = _.debugFillDescription$1;
+ _ = G._ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin.prototype;
+ _.super$_ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin$debugFillDescription = _.debugFillDescription$1;
+ _ = L.ScrollPhysics.prototype;
+ _.super$ScrollPhysics$adjustPositionForNewDimensions = _.adjustPositionForNewDimensions$4$isScrolling$newPosition$oldPosition$velocity;
+ _ = A.ScrollPosition.prototype;
+ _.super$ScrollPosition$absorb = _.absorb$1;
+ _.super$ScrollPosition$setPixels = _.setPixels$1;
+ _.super$ScrollPosition$applyNewDimensions = _.applyNewDimensions$0;
+ _.super$ScrollPosition$beginActivity = _.beginActivity$1;
+ _.super$ScrollPosition$dispose = _.dispose$0;
+ _.super$ScrollPosition$debugFillDescription = _.debugFillDescription$1;
+ _ = F._ScrollableState_State_TickerProviderStateMixin.prototype;
+ _.super$_ScrollableState_State_TickerProviderStateMixin$dispose = _.dispose$0;
+ _.super$_ScrollableState_State_TickerProviderStateMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _ = F._ScrollableState_State_TickerProviderStateMixin_RestorationMixin.prototype;
+ _.super$_ScrollableState_State_TickerProviderStateMixin_RestorationMixin$didUpdateWidget = _.didUpdateWidget$1;
+ _.super$_ScrollableState_State_TickerProviderStateMixin_RestorationMixin$didChangeDependencies = _.didChangeDependencies$0;
+ _.super$_ScrollableState_State_TickerProviderStateMixin_RestorationMixin$dispose = _.dispose$0;
+ _ = F.TextSelectionGestureDetectorBuilder.prototype;
+ _.super$TextSelectionGestureDetectorBuilder$onForcePressStart = _.onForcePressStart$1;
+ _ = F.__TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin.prototype;
+ _.super$__TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin$dispose = _.dispose$0;
+ _ = V.MediaStream0.prototype;
+ _.super$MediaStream$dispose = _.dispose$0;
+ _ = E.VideoRenderer.prototype;
+ _.super$VideoRenderer$dispose = _.dispose$0;
+ _ = G.BaseRequest.prototype;
+ _.super$BaseRequest$finalize = _.finalize$0;
+ _ = Y.SourceSpanMixin.prototype;
+ _.super$SourceSpanMixin$compareTo = _.compareTo$1;
+ _.super$SourceSpanMixin$$eq = _.$eq;
+ })();
+ (function installTearOffs() {
+ var _static_0 = hunkHelpers._static_0,
+ _static_1 = hunkHelpers._static_1,
+ _instance_0_u = hunkHelpers._instance_0u,
+ _instance_1_u = hunkHelpers._instance_1u,
+ _instance_1_i = hunkHelpers._instance_1i,
+ _instance_0_i = hunkHelpers._instance_0i,
+ _instance_2_u = hunkHelpers._instance_2u,
+ _static_2 = hunkHelpers._static_2,
+ _instance = hunkHelpers.installInstanceTearOff,
+ _static = hunkHelpers.installStaticTearOff,
+ _instance_2_i = hunkHelpers._instance_2i;
+ _static_0(H, "_engine_SkiaObjects_postFrameCleanUp$closure", "SkiaObjects_postFrameCleanUp", 0);
+ _static_1(H, "_engine___noopCallback$closure", "_noopCallback", 28);
+ _static_1(H, "_engine___newlinePredicate$closure", "_newlinePredicate", 129);
+ _static_1(H, "_engine___emptyCallback$closure", "_emptyCallback", 8);
+ _instance_0_u(H.AlarmClock.prototype, "get$_timerDidFire", "_timerDidFire$0", 0);
+ var _;
+ _instance_1_u(_ = H.DomRenderer.prototype, "get$_metricsDidChange", "_metricsDidChange$1", 401);
+ _instance_1_u(_, "get$_languageDidChange", "_languageDidChange$1", 10);
+ _instance_1_i(H.MultiEntriesBrowserHistory.prototype, "get$onPopState", "onPopState$1", 41);
+ _instance_1_i(H.SingleEntryBrowserHistory.prototype, "get$onPopState", "onPopState$1", 41);
+ _instance_1_u(H.PointerBinding.prototype, "get$_onPointerData", "_onPointerData$1", 380);
+ _instance_0_i(H.RulerManager.prototype, "get$dispose", "dispose$0", 0);
+ _instance_1_u(_ = H.DefaultTextEditingStrategy.prototype, "get$_handleChange", "_handleChange$1", 10);
+ _instance_1_u(_, "get$_maybeSendAction", "_maybeSendAction$1", 10);
+ _instance_2_u(H.WebExperiments.prototype, "get$updateExperiment", "updateExperiment$2", 267);
+ _static_2(J, "_interceptors_JSArray__compareAny$closure", "JSArray__compareAny", 68);
+ _instance_1_i(H._CastIterableBase.prototype, "get$contains", "contains$1", 25);
+ _static_0(H, "_js_helper_Primitives_dateNow$closure", "Primitives_dateNow", 73);
+ _static_1(H, "_js_helper___matchString$closure", "_matchString", 399);
+ _static_1(H, "_js_helper___stringIdentity$closure", "_stringIdentity", 38);
+ _instance_1_i(H.JsLinkedHashMap.prototype, "get$remove", "remove$1", "2?(Object?)");
+ _static_1(P, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 58);
+ _static_1(P, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 58);
+ _static_1(P, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 58);
+ _static_0(P, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 0);
+ _static_1(P, "async___nullDataHandler$closure", "_nullDataHandler", 8);
+ _instance_0_u(_ = P._BroadcastSubscription.prototype, "get$_onPause", "_onPause$0", 0);
+ _instance_0_u(_, "get$_onResume", "_onResume$0", 0);
+ _instance(P._Completer.prototype, "get$completeError", 0, 1, function() {
+ return [null];
+ }, ["call$2", "call$1"], ["completeError$2", "completeError$1"], 227, 0);
+ _instance_2_u(P._Future.prototype, "get$_completeError", "_completeError$2", 63);
+ _instance_1_i(_ = P._StreamController.prototype, "get$_async$_add", "_async$_add$1", 41);
+ _instance_2_u(_, "get$_addError", "_addError$2", 63);
+ _instance_0_u(_, "get$_async$_close", "_async$_close$0", 0);
+ _instance_0_u(_ = P._ControllerSubscription.prototype, "get$_onPause", "_onPause$0", 0);
+ _instance_0_u(_, "get$_onResume", "_onResume$0", 0);
+ _instance_0_u(_ = P._BufferingStreamSubscription.prototype, "get$_onPause", "_onPause$0", 0);
+ _instance_0_u(_, "get$_onResume", "_onResume$0", 0);
+ _instance_0_u(P._DoneStreamSubscription.prototype, "get$_sendDone", "_sendDone$0", 0);
+ _static_2(P, "collection___defaultEquals$closure", "_defaultEquals", 107);
+ _static_1(P, "collection___defaultHashCode$closure", "_defaultHashCode", 104);
+ _static_2(P, "collection_ListMixin__compareAny$closure", "ListMixin__compareAny", 68);
+ _static_2(P, "collection___dynamicCompare$closure", "_dynamicCompare", 68);
+ _instance_1_i(P._LinkedCustomHashMap.prototype, "get$remove", "remove$1", "2?(Object?)");
+ _instance_1_i(P._HashSet.prototype, "get$contains", "contains$1", 25);
+ _instance_1_i(P._LinkedHashSet.prototype, "get$contains", "contains$1", 25);
+ _instance_1_i(P.IterableMixin.prototype, "get$contains", "contains$1", 25);
+ _instance_1_i(P._UnmodifiableSet.prototype, "get$contains", "contains$1", 25);
+ _instance_1_i(P.SplayTreeSet.prototype, "get$contains", "contains$1", 25);
+ _static_1(P, "convert___defaultToEncodable$closure", "_defaultToEncodable", 34);
+ _instance_1_i(_ = P._ByteCallbackSink.prototype, "get$add", "add$1", 41);
+ _instance_0_i(_, "get$close", "close$0", 0);
+ _static_1(P, "core__identityHashCode$closure", "identityHashCode", 104);
+ _static_2(P, "core__identical$closure", "identical", 107);
+ _static_2(P, "core_Comparable_compare$closure", "Comparable_compare", 403);
+ _static_1(P, "core_Uri_decodeComponent$closure", "Uri_decodeComponent", 38);
+ _instance_1_i(P.Iterable.prototype, "get$contains", "contains$1", 25);
+ _static(W, "html__Html5NodeValidator__standardAttributeValidator$closure", 4, null, ["call$4"], ["_Html5NodeValidator__standardAttributeValidator"], 89, 0);
+ _static(W, "html__Html5NodeValidator__uriAttributeValidator$closure", 4, null, ["call$4"], ["_Html5NodeValidator__uriAttributeValidator"], 89, 0);
+ _instance_2_i(W.HttpRequest.prototype, "get$setRequestHeader", "setRequestHeader$2", 69);
+ _static_1(P, "js___convertToJS$closure", "_convertToJS", 100);
+ _static_1(P, "js___convertToDart$closure", "_convertToDart", 405);
+ _static(P, "math__max$closure", 2, null, ["call$1$2", "call$2"], ["max", function(a, b) {
+ return P.max(a, b, type$.num);
+ }], 406, 1);
+ _static(P, "ui_Size_lerp$closure", 3, null, ["call$3"], ["Size_lerp"], 407, 0);
+ _static(P, "ui__lerpDouble$closure", 3, null, ["call$3"], ["lerpDouble"], 408, 0);
+ _static(P, "ui_Color_lerp$closure", 3, null, ["call$3"], ["Color_lerp"], 409, 0);
+ _instance(_ = G.AnimationController.prototype, "get$reverse", 1, 0, null, ["call$1$from", "call$0"], ["reverse$1$from", "reverse$0"], 168, 0);
+ _instance_1_u(_, "get$_animation_controller$_tick", "_animation_controller$_tick$1", 4);
+ _instance_1_u(S.ReverseAnimation.prototype, "get$_statusChangeHandler", "_statusChangeHandler$1", 7);
+ _instance_1_u(S.CurvedAnimation.prototype, "get$_updateCurveDirection", "_updateCurveDirection$1", 7);
+ _instance_1_u(_ = S.TrainHoppingAnimation.prototype, "get$_statusChangeHandler", "_statusChangeHandler$1", 7);
+ _instance_0_u(_, "get$_valueChangeHandler", "_valueChangeHandler$0", 0);
+ _instance_1_u(_ = S.CompoundAnimation.prototype, "get$_maybeNotifyStatusListeners", "_maybeNotifyStatusListeners$1", 7);
+ _instance_0_u(_, "get$_maybeNotifyListeners", "_maybeNotifyListeners$0", 0);
+ _instance_0_u(S.AnimationLocalListenersMixin.prototype, "get$notifyListeners", "notifyListeners$0", 0);
+ _instance_1_u(S.AnimationLocalStatusListenersMixin.prototype, "get$notifyStatusListeners", "notifyStatusListeners$1", 7);
+ _instance_1_u(_ = D._CupertinoBackGestureDetectorState.prototype, "get$_handleDragStart", "_handleDragStart$1", 37);
+ _instance_1_u(_, "get$_handleDragUpdate", "_handleDragUpdate$1", 14);
+ _instance_1_u(_, "get$_handleDragEnd", "_handleDragEnd$1", 47);
+ _instance_0_u(_, "get$_handleDragCancel", "_handleDragCancel$0", 0);
+ _instance_1_u(_, "get$_route$_handlePointerDown", "_route$_handlePointerDown$1", 74);
+ _static(U, "assertions_FlutterError_dumpErrorToConsole$closure", 1, null, ["call$2$forceReport", "call$1"], ["FlutterError_dumpErrorToConsole", function(details) {
+ return U.FlutterError_dumpErrorToConsole(details, false);
+ }], 410, 0);
+ _static_1(U, "assertions_DiagnosticsStackTrace__createStackFrame$closure", "DiagnosticsStackTrace__createStackFrame", 411);
+ _instance_0_i(_ = B.ChangeNotifier.prototype, "get$dispose", "dispose$0", 0);
+ _instance_0_u(_, "get$notifyListeners", "notifyListeners$0", 0);
+ _instance_1_i(Y.DiagnosticPropertiesBuilder.prototype, "get$add", "add$1", 130);
+ _instance_1_u(B.AbstractNode.prototype, "get$redepthChild", "redepthChild$1", 144);
+ _static_1(R, "stack_frame_StackFrame_fromStackTraceLine$closure", "StackFrame_fromStackTraceLine", 412);
+ _instance_1_u(_ = N.GestureBinding.prototype, "get$_handlePointerDataPacket", "_handlePointerDataPacket$1", 329);
+ _instance_1_u(_, "get$cancelPointer", "cancelPointer$1", 36);
+ _instance_0_u(_, "get$_flushPointerEventQueue", "_flushPointerEventQueue$0", 0);
+ _instance_1_u(_, "get$_handlePointerEventImmediately", "_handlePointerEventImmediately$1", 15);
+ _instance_0_u(_, "get$_handleSampleTimeChanged", "_handleSampleTimeChanged$0", 0);
+ _static(K, "force_press_ForcePressGestureRecognizer__inverseLerp$closure", 3, null, ["call$3"], ["ForcePressGestureRecognizer__inverseLerp"], 413, 0);
+ _instance_1_u(K.ForcePressGestureRecognizer.prototype, "get$handleEvent", "handleEvent$1", 15);
+ _static_1(O, "monodrag_DragGestureRecognizer__defaultBuilder$closure", "DragGestureRecognizer__defaultBuilder", 95);
+ _instance_1_u(O.DragGestureRecognizer.prototype, "get$handleEvent", "handleEvent$1", 15);
+ _instance_0_u(F._CountdownZoned.prototype, "get$_onTimeout", "_onTimeout$0", 0);
+ _instance_1_u(_ = F.DoubleTapGestureRecognizer.prototype, "get$_handleEvent", "_handleEvent$1", 15);
+ _instance_1_u(_, "get$_reject", "_reject$1", 138);
+ _instance_0_u(_, "get$_multitap$_reset", "_multitap$_reset$0", 0);
+ _instance_1_u(S.OneSequenceGestureRecognizer.prototype, "get$stopTrackingPointer", "stopTrackingPointer$1", 36);
+ _instance_1_u(S.PrimaryPointerGestureRecognizer.prototype, "get$handleEvent", "handleEvent$1", 15);
+ _instance_2_u(_ = S._MaterialAppState.prototype, "get$_inspectorSelectButtonBuilder", "_inspectorSelectButtonBuilder$2", 143);
+ _instance_2_u(_, "get$_materialBuilder", "_materialBuilder$2", 132);
+ _instance_0_u(_ = E._AppBarState.prototype, "get$_handleDrawerButton", "_handleDrawerButton$0", 0);
+ _instance_0_u(_, "get$_handleDrawerButtonEnd", "_handleDrawerButtonEnd$0", 0);
+ _instance_1_u(_ = Z._RawMaterialButtonState.prototype, "get$_handleHighlightChanged", "_handleHighlightChanged$1", 11);
+ _instance_1_u(_, "get$_handleHoveredChanged", "_handleHoveredChanged$1", 11);
+ _instance_1_u(_, "get$_handleFocusedChanged", "_handleFocusedChanged$1", 11);
+ _instance_1_u(_ = Z._RenderInputPadding.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _static(E, "dialog___buildMaterialDialogTransitions$closure", 4, null, ["call$4"], ["_buildMaterialDialogTransitions"], 414, 0);
+ _instance_1_u(Y.InkHighlight.prototype, "get$_handleAlphaStatusChanged", "_handleAlphaStatusChanged$1", 7);
+ _instance_1_u(U.InkSplash.prototype, "get$_ink_splash$_handleAlphaStatusChanged", "_ink_splash$_handleAlphaStatusChanged$1", 7);
+ _instance_1_u(_ = R.InkResponse.prototype, "get$getRectCallback", "getRectCallback$1", 154);
+ _instance_1_u(_, "get$debugCheckContext", "debugCheckContext$1", 155);
+ _instance(_ = R._InkResponseState.prototype, "get$_simulateTap", 0, 0, function() {
+ return [null];
+ }, ["call$1", "call$0"], ["_simulateTap$1", "_simulateTap$0"], 156, 0);
+ _instance_1_u(_, "get$_handleFocusHighlightModeChange", "_handleFocusHighlightModeChange$1", 157);
+ _instance_1_u(_, "get$_handleFocusUpdate", "_handleFocusUpdate$1", 11);
+ _instance_1_u(_, "get$_handleTapDown", "_handleTapDown$1", 39);
+ _instance_0_u(_, "get$_handleTap", "_handleTap$0", 0);
+ _instance_0_u(_, "get$_handleTapCancel", "_handleTapCancel$0", 0);
+ _instance_1_u(_, "get$_handleMouseEnter", "_handleMouseEnter$1", 77);
+ _instance_1_u(_, "get$_handleMouseExit", "_handleMouseExit$1", 50);
+ _instance_0_u(L._HelperErrorState.prototype, "get$_input_decorator$_handleChange", "_input_decorator$_handleChange$0", 0);
+ _instance_1_u(_ = L._RenderDecoration.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_2_u(_, "get$_paintLabel", "_paintLabel$2", 22);
+ _instance_0_u(L._InputDecoratorState.prototype, "get$_input_decorator$_handleChange", "_input_decorator$_handleChange$0", 0);
+ _instance_1_u(_ = Q._RenderListTile.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(_ = M._FloatingActionButtonTransitionState.prototype, "get$_handlePreviousAnimationStatusChanged", "_handlePreviousAnimationStatusChanged$1", 7);
+ _instance_0_u(_, "get$_onProgressChanged", "_onProgressChanged$0", 0);
+ _instance_0_u(M.ScaffoldState.prototype, "get$_handleStatusBarTap", "_handleStatusBarTap$0", 0);
+ _instance_1_u(_ = Z._TextFieldSelectionGestureDetectorBuilder.prototype, "get$onForcePressStart", "onForcePressStart$1", 45);
+ _instance_1_u(_, "get$onForcePressEnd", "onForcePressEnd$1", 45);
+ _instance_1_u(_, "get$onSingleLongTapMoveUpdate", "onSingleLongTapMoveUpdate$1", 98);
+ _instance_1_u(_, "get$onSingleTapUp", "onSingleTapUp$1", 97);
+ _instance_1_u(_, "get$onSingleLongTapStart", "onSingleLongTapStart$1", 96);
+ _instance_2_u(_ = Z._TextFieldState.prototype, "get$_handleSelectionChanged", "_handleSelectionChanged$2", 178);
+ _instance_0_u(_, "get$_handleSelectionHandleTapped", "_handleSelectionHandleTapped$0", 0);
+ _instance_0_u(_ = S._TooltipState.prototype, "get$_handleMouseTrackerChange", "_handleMouseTrackerChange$0", 0);
+ _instance_1_u(_, "get$_tooltip$_handleStatusChanged", "_tooltip$_handleStatusChanged$1", 7);
+ _instance_0_u(_, "get$ensureTooltipVisible", "ensureTooltipVisible$0", 72);
+ _instance_1_u(_, "get$_tooltip$_handlePointerEvent", "_tooltip$_handlePointerEvent$1", 15);
+ _instance_0_u(_, "get$_handleLongPress", "_handleLongPress$0", 0);
+ _static(V, "edge_insets_EdgeInsetsGeometry_lerp$closure", 3, null, ["call$3"], ["EdgeInsetsGeometry_lerp"], 415, 0);
+ _static(A, "text_style_TextStyle_lerp$closure", 3, null, ["call$3"], ["TextStyle_lerp"], 416, 0);
+ _instance_0_u(_ = N.RendererBinding.prototype, "get$_handleSemanticsEnabledChanged", "_handleSemanticsEnabledChanged$0", 0);
+ _instance_1_u(_, "get$_handleWebFirstFrame", "_handleWebFirstFrame$1", 4);
+ _instance(_, "get$_handleSemanticsAction", 0, 3, null, ["call$3"], ["_handleSemanticsAction$3"], 192, 0);
+ _instance_0_u(_, "get$_handleSemanticsOwnerCreated", "_handleSemanticsOwnerCreated$0", 0);
+ _instance_0_u(_, "get$_handleSemanticsOwnerDisposed", "_handleSemanticsOwnerDisposed$0", 0);
+ _instance_1_u(_, "get$_handlePersistentFrameCallback", "_handlePersistentFrameCallback$1", 4);
+ _instance_1_u(_ = S.RenderBox.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_0_u(_, "get$markNeedsLayout", "markNeedsLayout$0", 0);
+ _instance_2_u(S.RenderBoxContainerDefaultsMixin.prototype, "get$defaultPaint", "defaultPaint$2", 22);
+ _instance_1_u(_ = B.RenderCustomMultiChildLayoutBox.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(_ = D.RenderEditable.prototype, "get$_editable$_handleKeyEvent", "_editable$_handleKeyEvent$1", 197);
+ _instance_0_u(_, "get$systemFontsDidChange", "systemFontsDidChange$0", 0);
+ _instance_1_u(_, "get$_handleSetSelection", "_handleSetSelection$1", 90);
+ _instance_1_u(_, "get$_handleMoveCursorForwardByCharacter", "_handleMoveCursorForwardByCharacter$1", 11);
+ _instance_1_u(_, "get$_handleMoveCursorBackwardByCharacter", "_handleMoveCursorBackwardByCharacter$1", 11);
+ _instance_1_u(_, "get$_handleMoveCursorForwardByWord", "_handleMoveCursorForwardByWord$1", 11);
+ _instance_1_u(_, "get$_handleMoveCursorBackwardByWord", "_handleMoveCursorBackwardByWord$1", 11);
+ _instance_1_u(_, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$_editable$_handleTapDown", "_editable$_handleTapDown$1", 39);
+ _instance_0_u(_, "get$_editable$_handleTap", "_editable$_handleTap$0", 0);
+ _instance_0_u(_, "get$_editable$_handleLongPress", "_editable$_handleLongPress$0", 0);
+ _instance_2_u(_, "get$_paintContents", "_paintContents$2", 22);
+ _instance_1_u(_ = V.RenderErrorBox.prototype, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(_ = F.RenderFlex.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(_ = R.RenderListBody.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _static_1(K, "object_RenderObject__cleanChildRelayoutBoundary$closure", "RenderObject__cleanChildRelayoutBoundary", 42);
+ _instance_0_u(_ = K.RenderObject.prototype, "get$markNeedsPaint", "markNeedsPaint$0", 0);
+ _instance_2_u(_, "get$paint", "paint$2", 22);
+ _instance_0_u(_, "get$markNeedsSemanticsUpdate", "markNeedsSemanticsUpdate$0", 0);
+ _instance(_, "get$showOnScreen", 0, 0, null, ["call$4$curve$descendant$duration$rect", "call$0", "call$3$curve$duration$rect", "call$1$rect"], ["showOnScreen$4$curve$descendant$duration$rect", "showOnScreen$0", "showOnScreen$3$curve$duration$rect", "showOnScreen$1$rect"], 80, 0);
+ _instance_1_u(K.ContainerRenderObjectMixin.prototype, "get$childAfter", "childAfter$1", "ContainerRenderObjectMixin.0?(Object?)");
+ _instance_1_u(_ = Q.RenderParagraph.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_0_u(_, "get$systemFontsDidChange", "systemFontsDidChange$0", 0);
+ _instance_1_u(_ = L.RenderPerformanceOverlay.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(G._PlatformViewGestureRecognizer.prototype, "get$handleEvent", "handleEvent$1", 15);
+ _instance_1_u(_ = E.RenderProxyBoxMixin.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_2_u(_, "get$paint", "paint$2", 22);
+ _instance_1_u(_ = E.RenderConstrainedBox.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(_ = E.RenderIntrinsicWidth.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_0_u(E.RenderAnimatedOpacityMixin.prototype, "get$_updateOpacity", "_updateOpacity$0", 0);
+ _instance_0_u(E._RenderCustomClip.prototype, "get$_markNeedsClip", "_markNeedsClip$0", 0);
+ _instance_1_u(_ = E.RenderOffstage.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_0_u(_ = E.RenderSemanticsGestureHandler.prototype, "get$_performSemanticScrollLeft", "_performSemanticScrollLeft$0", 0);
+ _instance_0_u(_, "get$_performSemanticScrollRight", "_performSemanticScrollRight$0", 0);
+ _instance_0_u(_, "get$_performSemanticScrollUp", "_performSemanticScrollUp$0", 0);
+ _instance_0_u(_, "get$_performSemanticScrollDown", "_performSemanticScrollDown$0", 0);
+ _instance_0_u(_ = E.RenderSemanticsAnnotations.prototype, "get$_performTap", "_performTap$0", 0);
+ _instance_0_u(_, "get$_performLongPress", "_performLongPress$0", 0);
+ _instance_0_u(_, "get$_performDismiss", "_performDismiss$0", 0);
+ _instance_0_u(_, "get$_performCopy", "_performCopy$0", 0);
+ _instance_0_u(_, "get$_performCut", "_performCut$0", 0);
+ _instance_0_u(_, "get$_performPaste", "_performPaste$0", 0);
+ _instance_1_u(_ = T.RenderShiftedBox.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(_ = T.RenderPadding.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_1_u(_ = T.RenderCustomSingleChildLayoutBox.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance(G.RenderSliver.prototype, "get$hitTest", 0, 1, null, ["call$3$crossAxisPosition$mainAxisPosition", "call$1"], ["hitTest$3$crossAxisPosition$mainAxisPosition", "hitTest$1"], 210, 0);
+ _instance_1_u(_ = K.RenderStack.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_2_u(_, "get$paintStack", "paintStack$2", 22);
+ _instance_1_u(A.RenderView.prototype, "get$hitTestMouseTrackers", "hitTestMouseTrackers$1", 214);
+ _instance_1_u(_ = Q.RenderViewportBase.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_2_u(_, "get$_viewport$_paintContents", "_viewport$_paintContents$2", 22);
+ _instance(_, "get$showOnScreen", 0, 0, null, ["call$4$curve$descendant$duration$rect", "call$0", "call$3$curve$duration$rect", "call$1$rect"], ["showOnScreen$4$curve$descendant$duration$rect", "showOnScreen$0", "showOnScreen$3$curve$duration$rect", "showOnScreen$1$rect"], 80, 0);
+ _static_2(N, "binding_SchedulerBinding__taskSorter$closure", "SchedulerBinding__taskSorter", 417);
+ _static(N, "binding__defaultSchedulingStrategy$closure", 0, null, ["call$2$priority$scheduler", "call$0"], ["defaultSchedulingStrategy", function() {
+ return N.defaultSchedulingStrategy(null, null);
+ }], 418, 0);
+ _instance_1_u(_ = N.SchedulerBinding.prototype, "get$_executeTimingsCallbacks", "_executeTimingsCallbacks$1", 66);
+ _instance_0_u(_, "get$_runTasks", "_runTasks$0", 0);
+ _instance_0_u(_, "get$ensureVisualUpdate", "ensureVisualUpdate$0", 0);
+ _instance_1_u(_, "get$_handleBeginFrame", "_handleBeginFrame$1", 4);
+ _instance_0_u(_, "get$_handleDrawFrame", "_handleDrawFrame$0", 0);
+ _instance_1_u(M.Ticker.prototype, "get$_ticker$_tick", "_ticker$_tick$1", 4);
+ _instance_0_i(A.SemanticsOwner.prototype, "get$dispose", "dispose$0", 0);
+ _static_1(Q, "asset_bundle_AssetBundle__utf8decode$closure", "AssetBundle__utf8decode", 419);
+ _static_1(N, "binding0_ServicesBinding__parseLicenses$closure", "ServicesBinding__parseLicenses", 420);
+ _instance_0_u(_ = N.ServicesBinding.prototype, "get$_addLicenses", "_addLicenses$0", 225);
+ _instance_1_u(_, "get$_handleLifecycleMessage", "_handleLifecycleMessage$1", 226);
+ _instance(N._DefaultBinaryMessenger.prototype, "get$handlePlatformMessage", 0, 3, null, ["call$3"], ["handlePlatformMessage$3"], 101, 0);
+ _instance_1_u(B.RawKeyboard.prototype, "get$_handleKeyEvent", "_handleKeyEvent$1", 231);
+ _instance_1_u(K.RestorationManager.prototype, "get$_methodHandler", "_methodHandler$1", 62);
+ _instance_1_u(_ = K.RestorationBucket.prototype, "get$_dropChild", "_dropChild$1", 123);
+ _instance_1_u(_, "get$_recursivelyUpdateManager", "_recursivelyUpdateManager$1", 123);
+ _instance_1_u(N.TextInput.prototype, "get$_handleTextInputInvocation", "_handleTextInputInvocation$1", 62);
+ _instance_1_u(U._ActionsState.prototype, "get$_handleActionChanged", "_handleActionChanged$1", 243);
+ _instance_1_u(_ = S._WidgetsAppState.prototype, "get$_onGenerateRoute", "_onGenerateRoute$1", 244);
+ _instance_1_u(_, "get$_onUnknownRoute", "_onUnknownRoute$1", 245);
+ _instance_1_u(L._AutomaticKeepAliveState.prototype, "get$_addClient", "_addClient$1", 246);
+ _instance_1_u(T._MouseRegionState.prototype, "get$handleExit", "handleExit$1", 50);
+ _instance_0_u(_ = N.WidgetsBinding.prototype, "get$handleLocaleChanged", "handleLocaleChanged$0", 0);
+ _instance_1_u(_, "get$_handleNavigationInvocation", "_handleNavigationInvocation$1", 62);
+ _instance_0_u(_, "get$_handleBuildScheduled", "_handleBuildScheduled$0", 0);
+ _instance_0_u(_ = N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding.prototype, "get$handleMetricsChanged", "handleMetricsChanged$0", 0);
+ _instance_0_u(_, "get$handlePlatformBrightnessChanged", "handlePlatformBrightnessChanged$0", 0);
+ _instance_0_u(_ = D.EditableTextState.prototype, "get$_onFloatingCursorResetTick", "_onFloatingCursorResetTick$0", 0);
+ _instance(_, "get$_editable_text$_handleSelectionChanged", 0, 3, null, ["call$3"], ["_editable_text$_handleSelectionChanged$3"], 255, 0);
+ _instance_1_u(_, "get$_handleCaretChanged", "_handleCaretChanged$1", 256);
+ _instance_0_u(_, "get$_onCursorColorTick", "_onCursorColorTick$0", 0);
+ _instance_1_u(_, "get$_cursorTick", "_cursorTick$1", 79);
+ _instance_1_u(_, "get$_cursorWaitForStart", "_cursorWaitForStart$1", 79);
+ _instance_0_u(_, "get$_didChangeTextEditingValue", "_didChangeTextEditingValue$0", 0);
+ _instance_0_u(_, "get$_editable_text$_handleFocusChanged", "_editable_text$_handleFocusChanged$0", 0);
+ _instance_0_i(O.FocusNode.prototype, "get$dispose", "dispose$0", 0);
+ _instance_1_u(_ = O.FocusManager.prototype, "get$_focus_manager$_handlePointerEvent", "_focus_manager$_handlePointerEvent$1", 15);
+ _instance_1_u(_, "get$_handleRawKeyEvent", "_handleRawKeyEvent$1", 261);
+ _instance_0_u(_, "get$_applyFocusChange", "_applyFocusChange$0", 0);
+ _instance_0_u(L._FocusState.prototype, "get$_handleFocusChanged", "_handleFocusChanged$0", 0);
+ _static_1(N, "framework__InactiveElements__deactivateRecursively$closure", "_InactiveElements__deactivateRecursively", 9);
+ _static_2(N, "framework_Element__sort$closure", "Element__sort", 421);
+ _static_1(N, "framework_Element__activateRecursively$closure", "Element__activateRecursively", 9);
+ _instance_1_u(N._InactiveElements.prototype, "get$_unmount", "_unmount$1", 9);
+ _instance_1_u(_ = D.RawGestureDetectorState.prototype, "get$_gesture_detector$_handlePointerDown", "_gesture_detector$_handlePointerDown$1", 74);
+ _instance_1_u(_, "get$_updateSemanticsForRenderObject", "_updateSemanticsForRenderObject$1", 286);
+ _instance_1_u(_ = T._HeroFlight.prototype, "get$_buildOverlay", "_buildOverlay$1", 21);
+ _instance_1_u(_, "get$_handleAnimationUpdate", "_handleAnimationUpdate$1", 7);
+ _instance_1_u(T.HeroController.prototype, "get$_handleFlightEnded", "_handleFlightEnded$1", 289);
+ _instance_0_u(G.AnimatedWidgetBaseState.prototype, "get$_handleAnimationChanged", "_handleAnimationChanged$0", 0);
+ _instance_0_u(S._InheritedNotifierElement.prototype, "get$_handleUpdate", "_handleUpdate$0", 0);
+ _instance_1_u(A._LayoutBuilderElement.prototype, "get$_layout", "_layout$1", 41);
+ _instance_1_u(_ = A._RenderLayoutBuilder.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _static_2(K, "navigator_Navigator_defaultGenerateInitialRoutes$closure", "Navigator_defaultGenerateInitialRoutes", 422);
+ _instance_1_u(K._NavigatorPushObservation.prototype, "get$notify", "notify$1", 49);
+ _instance_1_u(K._NavigatorPopObservation.prototype, "get$notify", "notify$1", 49);
+ _instance_1_u(K._NavigatorRemoveObservation.prototype, "get$notify", "notify$1", 49);
+ _instance_1_u(K._NavigatorReplaceObservation.prototype, "get$notify", "notify$1", 49);
+ _instance_1_u(_ = K.NavigatorState.prototype, "get$_handlePointerDown", "_handlePointerDown$1", 74);
+ _instance_1_u(_, "get$_handlePointerUpOrCancel", "_handlePointerUpOrCancel$1", 15);
+ _instance_1_u(U.Notification0.prototype, "get$visitAncestor", "visitAncestor$1", 24);
+ _instance_2_u(V.OrientationBuilder.prototype, "get$_buildWithConstraints", "_buildWithConstraints$2", 310);
+ _instance_1_u(_ = X._RenderTheatre.prototype, "get$computeMinIntrinsicWidth", "computeMinIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicWidth", "computeMaxIntrinsicWidth$1", 1);
+ _instance_1_u(_, "get$computeMinIntrinsicHeight", "computeMinIntrinsicHeight$1", 1);
+ _instance_1_u(_, "get$computeMaxIntrinsicHeight", "computeMaxIntrinsicHeight$1", 1);
+ _instance_2_u(_, "get$paintStack", "paintStack$2", 22);
+ _instance_1_u(L._GlowingOverscrollIndicatorState.prototype, "get$_handleScrollNotification", "_handleScrollNotification$1", 99);
+ _instance_0_i(_ = L._GlowController.prototype, "get$dispose", "dispose$0", 0);
+ _instance_1_u(_, "get$_changePhase", "_changePhase$1", 7);
+ _instance_1_u(_, "get$_tickDisplacement", "_tickDisplacement$1", 4);
+ _instance_1_u(L._OverscrollIndicatorNotification_Notification_ViewportNotificationMixin.prototype, "get$visitAncestor", "visitAncestor$1", 24);
+ _instance_1_u(G.HtmlElementView.prototype, "get$_createHtmlElementView", "_createHtmlElementView$1", 312);
+ _instance_1_u(G._HtmlElementViewController.prototype, "get$dispatchPointerEvent", "dispatchPointerEvent$1", 314);
+ _instance_1_u(_ = G._PlatformViewLinkState.prototype, "get$_onPlatformViewCreated", "_onPlatformViewCreated$1", 36);
+ _instance_1_u(_, "get$_handleFrameworkFocusChanged", "_handleFrameworkFocusChanged$1", 11);
+ _instance_0_u(K._RootRestorationScopeState.prototype, "get$_replaceRootBucket", "_replaceRootBucket$0", 0);
+ _instance_0_i(K.RestorableProperty.prototype, "get$dispose", "dispose$0", 0);
+ _instance_1_u(K.RestorationMixin.prototype, "get$_updateProperty", "_updateProperty$1", 316);
+ _instance_0_i(U.RestorableListenable.prototype, "get$dispose", "dispose$0", 0);
+ _instance_0_i(U.RestorableChangeNotifier.prototype, "get$dispose", "dispose$0", 0);
+ _instance_1_u(T.TransitionRoute.prototype, "get$_handleStatusChanged", "_handleStatusChanged$1", 7);
+ _instance_1_u(_ = T.ModalRoute.prototype, "get$_buildModalBarrier", "_buildModalBarrier$1", 21);
+ _instance_1_u(_, "get$_buildModalScope", "_buildModalScope$1", 21);
+ _instance_0_u(_ = M.BallisticScrollActivity.prototype, "get$_scroll_activity$_tick", "_scroll_activity$_tick$0", 0);
+ _instance_0_u(_, "get$_scroll_activity$_end", "_scroll_activity$_end$0", 0);
+ _instance_0_u(_ = M.DrivenScrollActivity.prototype, "get$_scroll_activity$_tick", "_scroll_activity$_tick$0", 0);
+ _instance_0_u(_, "get$_scroll_activity$_end", "_scroll_activity$_end$0", 0);
+ _instance_0_i(F.ScrollController.prototype, "get$dispose", "dispose$0", 0);
+ _static_1(G, "scroll_notification__defaultScrollNotificationPredicate$closure", "defaultScrollNotificationPredicate", 99);
+ _instance_1_u(G._ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin.prototype, "get$visitAncestor", "visitAncestor$1", 24);
+ _instance_0_i(A.ScrollPosition.prototype, "get$dispose", "dispose$0", 0);
+ _instance_0_i(R.ScrollPositionWithSingleContext.prototype, "get$dispose", "dispose$0", 0);
+ _instance_1_u(_ = F.ScrollableState.prototype, "get$_handleDragDown", "_handleDragDown$1", 323);
+ _instance_1_u(_, "get$_scrollable$_handleDragStart", "_scrollable$_handleDragStart$1", 37);
+ _instance_1_u(_, "get$_scrollable$_handleDragUpdate", "_scrollable$_handleDragUpdate$1", 14);
+ _instance_1_u(_, "get$_scrollable$_handleDragEnd", "_scrollable$_handleDragEnd$1", 47);
+ _instance_0_u(_, "get$_scrollable$_handleDragCancel", "_scrollable$_handleDragCancel$0", 0);
+ _instance_0_u(_, "get$_disposeHold", "_disposeHold$0", 0);
+ _instance_0_u(_, "get$_disposeDrag", "_disposeDrag$0", 0);
+ _instance_1_u(_, "get$_receivedPointerSignal", "_receivedPointerSignal$1", 324);
+ _instance_1_u(_, "get$_handlePointerScroll", "_handlePointerScroll$1", 15);
+ _instance_2_u(X._ShortcutsState.prototype, "get$_handleOnKey", "_handleOnKey$2", 325);
+ _static_2(G, "sliver0___kDefaultSemanticIndexCallback$closure", "_kDefaultSemanticIndexCallback", 423);
+ _instance_1_u(G.SliverMultiBoxAdaptorElement.prototype, "get$removeChild", "removeChild$1", 326);
+ _instance(F.TextSelectionOverlay.prototype, "get$_text_selection$_markNeedsBuild", 0, 0, function() {
+ return [null];
+ }, ["call$1", "call$0"], ["_text_selection$_markNeedsBuild$1", "_text_selection$_markNeedsBuild$0"], 328, 0);
+ _instance_0_u(_ = F._TextSelectionHandleOverlayState.prototype, "get$_handleVisibilityChanged", "_handleVisibilityChanged$0", 0);
+ _instance_1_u(_, "get$_text_selection$_handleDragStart", "_text_selection$_handleDragStart$1", 37);
+ _instance_1_u(_, "get$_text_selection$_handleDragUpdate", "_text_selection$_handleDragUpdate$1", 14);
+ _instance_0_u(_, "get$_text_selection$_handleTap", "_text_selection$_handleTap$0", 0);
+ _instance_1_u(_ = F.TextSelectionGestureDetectorBuilder.prototype, "get$onTapDown", "onTapDown$1", 39);
+ _instance_0_u(_, "get$onSingleTapCancel", "onSingleTapCancel$0", 0);
+ _instance_1_u(_, "get$onSingleLongTapEnd", "onSingleLongTapEnd$1", 94);
+ _instance_1_u(_, "get$onDoubleTapDown", "onDoubleTapDown$1", 39);
+ _instance_1_u(_, "get$onDragSelectionStart", "onDragSelectionStart$1", 37);
+ _instance_2_u(_, "get$onDragSelectionUpdate", "onDragSelectionUpdate$2", 330);
+ _instance_1_u(_, "get$onDragSelectionEnd", "onDragSelectionEnd$1", 47);
+ _instance_1_u(_ = F._TextSelectionGestureDetectorState.prototype, "get$_text_selection$_handleTapDown", "_text_selection$_handleTapDown$1", 39);
+ _instance_1_u(_, "get$_handleTapUp", "_handleTapUp$1", 97);
+ _instance_0_u(_, "get$_text_selection$_handleTapCancel", "_text_selection$_handleTapCancel$0", 0);
+ _instance_1_u(_, "get$_text_selection$_handleDragStart", "_text_selection$_handleDragStart$1", 37);
+ _instance_1_u(_, "get$_text_selection$_handleDragUpdate", "_text_selection$_handleDragUpdate$1", 14);
+ _instance_0_u(_, "get$_handleDragUpdateThrottled", "_handleDragUpdateThrottled$0", 0);
+ _instance_1_u(_, "get$_text_selection$_handleDragEnd", "_text_selection$_handleDragEnd$1", 47);
+ _instance_1_u(_, "get$_forcePressStarted", "_forcePressStarted$1", 45);
+ _instance_1_u(_, "get$_forcePressEnded", "_forcePressEnded$1", 45);
+ _instance_1_u(_, "get$_handleLongPressStart", "_handleLongPressStart$1", 96);
+ _instance_1_u(_, "get$_handleLongPressMoveUpdate", "_handleLongPressMoveUpdate$1", 98);
+ _instance_1_u(_, "get$_handleLongPressEnd", "_handleLongPressEnd$1", 94);
+ _instance_0_u(_, "get$_doubleTapTimeout", "_doubleTapTimeout$0", 0);
+ _instance_0_u(K._AnimatedState.prototype, "get$_transitions$_handleChange", "_transitions$_handleChange$0", 0);
+ _static_1(N, "widget_inspector__transformDebugCreator$closure", "transformDebugCreator", 424);
+ _instance(D._PlatformBinaryMessenger.prototype, "get$handlePlatformMessage", 0, 3, null, ["call$3"], ["handlePlatformMessage$3"], 101, 0);
+ _instance_0_i(E.VideoRenderer.prototype, "get$dispose", "dispose$0", 93);
+ _instance_0_i(V.RTCVideoRendererWeb.prototype, "get$dispose", "dispose$0", 93);
+ _instance_0_u(_ = Q._CallSampleState.prototype, "get$_hangUp", "_hangUp$0", 13);
+ _instance_0_u(_, "get$_switchCamera", "_switchCamera$0", 13);
+ _instance_0_u(_, "get$_muteMic", "_muteMic$0", 13);
+ _instance_1_u(_ = T._DataChannelSampleState.prototype, "get$_handleDataChannelTest", "_handleDataChannelTest$1", 359);
+ _instance_0_u(_, "get$_data_channel_sample$_hangUp", "_data_channel_sample$_hangUp$0", 13);
+ _static(D, "print__debugPrintThrottled$closure", 1, null, ["call$2$wrapWidth", "call$1"], ["debugPrintThrottled", function(message) {
+ return D.debugPrintThrottled(message, null);
+ }], 283, 0);
+ _static_0(D, "print___debugPrintTask$closure", "_debugPrintTask", 0);
+ })();
+ (function inheritance() {
+ var _mixin = hunkHelpers.mixin,
+ _inherit = hunkHelpers.inherit,
+ _inheritMany = hunkHelpers.inheritMany;
+ _inherit(P.Object, null);
+ _inheritMany(P.Object, [H.Closure, H._NullTreeSanitizer, H.AlarmClock, H.AssetManager, H.AssetManagerException, H.EngineCanvas, H.BrowserEngine, H.OperatingSystem, H._SaveStackTracking, H.ContextStateHandle, J.Interceptor, H.CanvasKitCanvas, H.SkiaObjectCache, H.CkTextStyle, H.ClipboardMessageHandler, H.ClipboardAPICopyStrategy, H.ClipboardAPIPasteStrategy, H.ExecCommandCopyStrategy, H.ExecCommandPasteStrategy, H.DomRenderer, H._SaveStackEntry, H._SaveClipEntry, H._SaveElementStackEntry, H.SaveElementStackTracking, H.FrameReference, H.CrossFrameCache, H.SurfaceCanvas, H._DomClip, H.PersistedSurface, H.SurfacePaint, H.SurfacePaintData, H.Conic, H._QuadBounds, H._ConicBounds, H._ConicPair, H._CubicBounds, H.SurfacePath, H._SkQuadCoefficients, H.PathRef, H.PathRefIterator, H._QuadRoots, H.PathWinding, H.PathIterator, H._PaintRequest, H.RecordingCanvas, H.PaintCommand, H._PaintBounds, H.SurfaceScene, H.SurfaceSceneBuilder, H.EngineGradient, H.PersistedSurfaceState, H._PersistedSurfaceMatch, H.Keyboard, H.MouseCursor, H.BrowserHistory, H.UrlStrategy, H.PlatformLocation, H.EnginePictureRecorder, H.EnginePicture, P.PlatformDispatcher, H.PointerBinding, H.PointerSupportDetector, H._BaseAdapter, H._WheelEventListenerMixin, H._SanitizedDetails, H._ButtonSanitizer, H._PointerState, H.PointerDataConverter, H.Profiler, H.AccessibilityAnnouncements, H._CheckableKind, H.RoleManager, H.SemanticsUpdate, H.SemanticsNodeUpdate, H.Role, H.SemanticsObject, H.AccessibilityMode, H.GestureMode, H.EngineSemanticsOwner, H.EnabledState, H.SemanticsHelper, H.SemanticsEnabler, H.DefaultTextEditingStrategy, P._ListBase_Object_ListMixin, H.MethodCall0, H.JSONMessageCodec, H.JSONMethodCodec, H.StandardMessageCodec, H.StandardMethodCodec, H.WriteBuffer0, H.ReadBuffer0, H.SurfaceShadowData, H.FontCollection, H.FontManager, H.LineCharProperty, H.LineBreakType, H.LineBreakResult, H.RulerManager, H.TextMeasurementService, H.LinesCalculator, H.MaxIntrinsicCalculator, H.EngineLineMetrics, H.DomParagraph, H.EngineParagraphStyle, H.EngineTextStyle, H.EngineStrutStyle, H.DomParagraphBuilder, H.ParagraphGeometricStyle, H.TextDimensions, H.ParagraphRuler, H.MeasurementResult, H._ComparisonResult, H.UnicodeRange, H.UnicodePropertyLookup, H.WordCharProperty, H._FindBreakDirection, H.BrowserAutofillHints, H.EngineInputType, H.TextCapitalization, H.TextCapitalizationConfig, H.EngineAutofillForm, H.AutofillInfo, H.EditingState, H.InputConfiguration, H.TextEditingChannel, H.HybridTextEditing, H.EditableTextStyle, H.EditableTextGeometry, H.TransformKind, H.Matrix40, H.Vector30, H.WebExperiments, P.FlutterView, H.WindowPadding, H.JS_CONST, J.ArrayIterator, P.Iterable, H.CastIterator, P.MapMixin, P.Error, H.ListIterator, P.Iterator, H.ExpandIterator, H.EmptyIterator, H.FollowedByIterator, H.WhereTypeIterator, H.FixedLengthListMixin, H.UnmodifiableListMixin, H.Symbol, P.MapView, H.ConstantMap, H.JSInvocationMirror, H.TypeErrorDecoder, H.NullThrownFromJavaScriptException, H.ExceptionAndStackTrace, H._StackTrace, H._Required, H.LinkedHashMapCell, H.LinkedHashMapKeyIterator, H.JSSyntaxRegExp, H._MatchImplementation, H._AllMatchesIterator, H.StringMatch, H._StringAllMatchesIterator, H.Rti, H._FunctionParameters, H._Type, P._TimerImpl, P._AsyncAwaitCompleter, P._AsyncStarStreamController, P._IterationMarker, P._SyncStarIterator, P._BufferingStreamSubscription, P._BroadcastStreamController, P._Completer, P._FutureListener, P._Future, P._AsyncCallbackEntry, P.Stream, P.StreamSubscription, P.StreamTransformerBase, P._StreamController, P._SyncStreamControllerDispatch, P._AsyncStreamControllerDispatch, P._AddStreamState, P._PendingEvents, P._DelayedEvent, P._DelayedDone, P._DoneStreamSubscription, P._StreamIterator, P.AsyncError, P._Zone, P._HashMapKeyIterator, P.__SetBase_Object_SetMixin, P._HashSetIterator, P._LinkedHashSetCell, P._LinkedHashSetIterator, P.IterableMixin, P._LinkedListIterator, P.LinkedListEntry, P.ListMixin, P._MapBaseValueIterator, P._UnmodifiableMapMixin, P._DoubleLink, P._DoubleLinkedQueueIterator, P._ListQueueIterator, P.SetMixin, P._SplayTreeNode, P._SplayTree, P._SplayTreeIterator, P.Codec, P._Base64Encoder, P.ChunkedConversionSink, P._JsonStringifier, P._Utf8Encoder, P._Utf8Decoder, P.Comparable, P.DateTime, P.Duration, P.OutOfMemoryError, P.StackOverflowError, P._Exception, P.FormatException, P.Expando, P.MapEntry, P.Null, P._StringStackTrace, P.Stopwatch, P.RuneIterator, P.StringBuffer, P._Uri, P.UriData, P._SimpleUri, P.ServiceExtensionResponse, P.TimelineTask, P._AsyncBlock, W.CssStyleDeclarationBase, W.EventStreamProvider, W._Html5NodeValidator, W.ImmutableListMixin, W.NodeValidatorBuilder, W._SimpleNodeValidator, W._SvgNodeValidator, W.FixedSizeListIterator, W._DOMWindowCrossFrame, W._SameOriginUriPolicy, W._ValidatingTreeSanitizer, P._StructuredClone, P._AcceptStructuredClone, P.JsObject, P._JSRandom, P.Point, P.Endian, P.ClipOp, P.PathFillType, P._StoredMessage, P._Channel, P.ChannelBuffers, P.OffsetBase, P.Rect, P.Radius, P.RRect, P._HashEnd, P.Color, P.StrokeCap, P.StrokeJoin, P.PaintingStyle, P.BlendMode, P.Clip, P.BlurStyle, P.MaskFilter, P.Shadow, P.PlatformConfiguration, P.ViewConfiguration, P.FrameTiming, P.AppLifecycleState, P.Locale, P.PointerChange, P.PointerDeviceKind, P.PointerSignalKind, P.PointerData, P.PointerDataPacket, P.SemanticsAction, P.SemanticsFlag, P.SemanticsUpdateBuilder, P.PlaceholderAlignment, P.FontWeight, P.TextAlign, P.TextBaseline, P.TextDecoration, P.TextDecorationStyle, P.TextDirection, P.TextBox, P.TextAffinity, P.TextPosition, P.TextRange, P.ParagraphConstraints, P.BoxHeightStyle, P.BoxWidthStyle, P.TileMode, P.AccessibilityFeatures, P.Brightness, P.CallbackHandle, P.PlatformViewRegistry, T.StringCharacterRange, A.Breaks, A.BackBreaks, M.CanonicalizedMap, Y.HeapPriorityQueue, X.AnimationStatus, B.Listenable, G._AnimationDirection, G.AnimationBehavior, T.Simulation, S.AnimationWithParentMixin, S._TrainHoppingMode, Z.ParametricCurve, S.AnimationLazyListenerMixin, S.AnimationEagerListenerMixin, S.AnimationLocalListenersMixin, S.AnimationLocalStatusListenersMixin, R.Animatable, T._IconThemeData_Object_Diagnosticable, K.CupertinoUserInterfaceLevelData, L.LocalizationsDelegate, L.DefaultCupertinoLocalizations, Y._DiagnosticableTree_Object_Diagnosticable, N._State_Object_Diagnosticable, D._CupertinoBackGestureController, Z._Decoration_Object_Diagnosticable, Z.BoxPainter, F.TextSelectionControls, R._CupertinoTextThemeData_Object_Diagnosticable, R._TextThemeDefaultsBuilder, K.NoDefaultCupertinoThemeData, K._CupertinoThemeDefaults, K._CupertinoTextThemeDefaults, Y.DiagnosticsNode, U._FlutterErrorDetails_Object_Diagnosticable, N.BindingBase, B.ChangeNotifier, Y.DiagnosticLevel, Y.DiagnosticsTreeStyle, Y.TextTreeConfiguration, Y._WordWrapParseMode, Y._PrefixedStringBuilder, Y._NoDefaultValue, Y.TextTreeRenderer, Y.DiagnosticPropertiesBuilder, Y.Diagnosticable, Y.DiagnosticableTreeMixin, D.Key, D._TypeLiteral, F.LicenseEntry, B.AbstractNode, T.TargetPlatform, G.WriteBuffer, G.ReadBuffer, R.StackFrame, O.SynchronousFuture, D.GestureDisposition, D.GestureArenaMember, D.GestureArenaEntry, D._GestureArena, D.GestureArenaManager, N._Resampler, N.GestureBinding, O.DragDownDetails, O.DragStartDetails, O.DragUpdateDetails, O.DragEndDetails, F._PointerEvent_Object_Diagnosticable, F._PointerEventDescription, F._AbstractPointerEvent, F._CopyPointerAddedEvent, F._CopyPointerRemovedEvent, F._CopyPointerHoverEvent, F._CopyPointerEnterEvent, F._CopyPointerExitEvent, F._CopyPointerDownEvent, F._CopyPointerMoveEvent, F._CopyPointerUpEvent, F._CopyPointerScrollEvent, F._CopyPointerCancelEvent, K._ForceState, K.ForcePressDetails, O.HitTestEntry, O._TransformPart, O.HitTestResult, T.LongPressStartDetails, T.LongPressMoveUpdateDetails, T.LongPressEndDetails, B._Vector, B._Matrix, B.PolynomialFit, B.LeastSquaresSolver, O._DragState, F._CountdownZoned, F._TapTracker, O.PointerRouter, G.PointerSignalResolver, S.DragStartBehavior, S.GestureRecognizerState, S.OffsetPair, N.TapDownDetails, N.TapUpDetails, V._CombiningGestureArenaEntry, V.GestureArenaTeam, R.Velocity, R.VelocityEstimate, R._PointAtTime, R.VelocityTracker, S.ThemeMode, K.ScrollBehavior, T.SingleChildLayoutDelegate, V._AppBarTheme_Object_Diagnosticable, D._CornerId, D._Diagonal, Q._MaterialBannerThemeData_Object_Diagnosticable, D._BottomAppBarTheme_Object_Diagnosticable, M._BottomNavigationBarThemeData_Object_Diagnosticable, X._BottomSheetThemeData_Object_Diagnosticable, M._ButtonBarThemeData_Object_Diagnosticable, A._ButtonStyle_Object_Diagnosticable, A._LerpProperties0, A._LerpSides, A._LerpShapes, M.ButtonTextTheme, M.ButtonBarLayoutBehavior, M._ButtonThemeData_Object_Diagnosticable, A._CardTheme_Object_Diagnosticable, K._ChipThemeData_Object_Diagnosticable, A._ColorScheme_Object_Diagnosticable, Z._DataTableThemeData_Object_Diagnosticable, Z._LerpProperties, Y._DialogTheme_Object_Diagnosticable, G._DividerThemeData_Object_Diagnosticable, T._ElevatedButtonThemeData_Object_Diagnosticable, E._DefaultHeroTag, A.FloatingActionButtonLocation, A.FabFloatOffsetY, A.FabCenterOffsetX, A.FabEndOffsetX, A.FloatingActionButtonAnimator, S._FloatingActionButtonThemeData_Object_Diagnosticable, M.InkFeature, R.InteractiveInkFeatureFactory, R._HighlightType, Y.ShapeBorder, L.FloatingLabelBehavior, L._DecorationSlot, L._Decoration, L._RenderDecorationLayout, L.InputDecoration, L._InputDecorationTheme_Object_Diagnosticable, Q.ListTileStyle, Q._ListTileSlot, M.MaterialType, U.DefaultMaterialLocalizations, V.MaterialState, A._MouseCursor_Object_Diagnosticable, E._NavigationRailThemeData_Object_Diagnosticable, U._OutlinedButtonThemeData_Object_Diagnosticable, K.Route, V.MaterialRouteTransitionMixin, K.PageTransitionsBuilder, K._PageTransitionsTheme_Object_Diagnosticable, R._PopupMenuThemeData_Object_Diagnosticable, M._ScaffoldSlot, M.ScaffoldPrelayoutGeometry, M.ScaffoldGeometry, K.Constraints, B.MultiChildLayoutDelegate, Q._SliderThemeData_Object_Diagnosticable, N.SnackBarClosedReason, K._SnackBarThemeData_Object_Diagnosticable, U._TabBarTheme_Object_Diagnosticable, T._TextButtonThemeData_Object_Diagnosticable, F.TextSelectionGestureDetectorBuilder, R._TextSelectionThemeData_Object_Diagnosticable, R._TextTheme_Object_Diagnosticable, X.MaterialTapTargetSize, X._ThemeData_Object_Diagnosticable, X._IdentityThemeDataCacheKey, X._FifoCache, X._VisualDensity_Object_Diagnosticable, A._TimePickerThemeData_Object_Diagnosticable, S._ToggleButtonsThemeData_Object_Diagnosticable, T._TooltipThemeData_Object_Diagnosticable, U.ScriptCategory, U._Typography_Object_Diagnosticable, K.AlignmentGeometry, K.TextAlignVertical, G.RenderComparison, G.Axis, G.VerticalDirection, G.AxisDirection, N.PaintingBinding, K.BorderRadiusGeometry, Y.BorderStyle, Y.BorderSide, F.BoxShape, Z.ClipContext, V.EdgeInsetsGeometry, T._ColorsAndStops, T.Gradient, E.ImageCache, M.ImageConfiguration, G.Accumulator, G.InlineSpanSemanticsInformation, D.ShaderWarmUp, M._StrutStyle_Object_Diagnosticable, U.PlaceholderDimensions, U.TextWidthBasis, U._CaretMetrics, U.TextPainter, A._TextStyle_Object_Diagnosticable, M.SpringDescription, M.SpringType, M._CriticalSolution, M._OverdampedSolution, M._UnderdampedSolution, N.Tolerance, N.RendererBinding, K.ParentData, S._IntrinsicDimension, S._IntrinsicDimensionsCacheEntry, S.RenderBoxContainerDefaultsMixin, T.DebugOverflowIndicatorMixin, D.SelectionChangedCause, D.TextSelectionPoint, F.FlexFit, F.MainAxisSize, F.MainAxisAlignment, F.CrossAxisAlignment, T.AnnotationEntry, T.AnnotationResult, T.LayerLink, A.MouseTrackerCursorMixin, A.MouseCursorSession, Y._MouseState, Y._MouseTrackerUpdateDetails_Object_Diagnosticable, Y._MouseTrackerEventMixin, K.SemanticsHandle, K.PipelineOwner, K.RenderObjectWithChildMixin, K.ContainerParentDataMixin, K.ContainerRenderObjectMixin, K.RelayoutWhenSystemFontsChangeMixin, K._SemanticsFragment, K._SemanticsGeometry, Q.TextOverflow, G.PlatformViewHitTestBehavior, G._PlatformViewGestureMixin, E.RenderProxyBoxMixin, E.HitTestBehavior, E.RenderAnimatedOpacityMixin, E.DecorationPosition, G.GrowthDirection, G._SliverGeometry_Object_Diagnosticable, G.RenderSliverHelpers, F.KeepAliveParentDataMixin, F.RenderSliverWithKeepAliveMixin, K.RelativeRect, K.StackFit, K.Overflow, A.ViewConfiguration0, Q.CacheExtentStyle, Q.RevealedOffset, N.ScrollDirection, N._TaskEntry, N._FrameCallbackEntry, N.SchedulerPhase, N.SchedulerBinding, V.Priority, M.Ticker, M.TickerFuture, M.TickerCanceled, N.SemanticsBinding, A.SemanticsTag, A._SemanticsData_Object_Diagnosticable, A._BoxEdge, A._TraversalSortNode, A.SemanticsConfiguration, A.DebugSemanticsDumpOrder, A._SemanticsSortKey_Object_Diagnosticable, E.SemanticsEvent, Q.AssetBundle, F.AutofillConfiguration, Q.BinaryMessenger, N.ServicesBinding, T.ClipboardData, G._KeyboardKey_Object_Diagnosticable, F.MethodCall, F.PlatformException, F.MissingPluginException, U.StringCodec, U.JSONMessageCodec0, U.JSONMethodCodec0, U.StandardMessageCodec0, U.StandardMethodCodec0, A.BasicMessageChannel, A.MethodChannel, R.PlatformViewsRegistry, R.PlatformViewController, B.KeyboardSide, B.ModifierKey, B.RawKeyEventData, B._RawKeyEvent_Object_Diagnosticable, B.RawKeyboard, B._ModifierSidePair, O.KeyHelper, O._GLFWKeyHelper_Object_KeyHelper, O._GtkKeyHelper_Object_KeyHelper, K.RestorationBucket, X.ApplicationSwitcherDescription, X.SystemUiOverlayStyle, V.SystemSoundType, B.TextInputFormatter, N.SmartDashesType, N.SmartQuotesType, N.TextInputType, N.TextInputAction, N.TextCapitalization0, N.TextInputConfiguration, N.FloatingCursorDragState, N.TextEditingValue, N.TextInputConnection, N.TextInput, U._Intent_Object_Diagnosticable, U._Action_Object_Diagnosticable, U._ActionDispatcher_Object_Diagnosticable, U.Notification0, L.AutomaticKeepAliveClientMixin, N.WidgetsBindingObserver, N.WidgetsBinding, D.ToolbarOptions, O.KeyEventResult, O.FocusAttachment, O.UnfocusDisposition, O._FocusNode_Object_DiagnosticableTreeMixin, O.FocusHighlightMode, O.FocusHighlightStrategy, O._FocusManager_Object_DiagnosticableTreeMixin, U._FocusTraversalGroupInfo, U.TraversalDirection, U._FocusTraversalPolicy_Object_Diagnosticable, U._DirectionalPolicyDataEntry, U._DirectionalPolicyData, U.DirectionalFocusTraversalPolicyMixin, U.__ReadingOrderSortData_Object_Diagnosticable, U.__ReadingOrderDirectionalGroupData_Object_Diagnosticable, N._StateLifecycle, N._ElementLifecycle, N._InactiveElements, N.BuildOwner, N.DebugCreator, N.IndexedSlot, D.GestureRecognizerFactory, D.SemanticsGestureDelegate, T.HeroFlightDirection, T._HeroFlightManifest, T._HeroFlight, K.NavigatorObserver, X.IconData, M.CapturedThemes, A.RenderConstrainedLayoutBuilder, L._Pending, L.DefaultWidgetsLocalizations, F.Orientation, F.MediaQueryData, F.NavigationMode, E._ToolbarSlot, K.RoutePopDisposition, K.RouteSettings, K.RouteTransitionRecord, K.TransitionDelegate, K._RouteLifecycle, K._NavigatorObservation, K._RouteRestorationType, K._RestorationInformation, L._GlowState, S._StorageEntryIdentifier, S.PageStorageBucket, G.PlatformViewCreationParams, K.RestorationMixin, Z.RouteInformation, T.LocalHistoryRoute, M.ScrollActivity, M.ScrollDragController, M.ScrollMetrics, G.ViewportNotificationMixin, L.ScrollPhysics, A.ScrollPositionAlignmentPolicy, B.ScrollViewKeyboardDismissBehavior, F.ScrollIncrementType, X.KeySet, G.SliverChildDelegate, F.TextSelectionHandleType, F._TextSelectionHandlePosition, F.TextSelectionOverlay, U.SingleTickerProviderStateMixin, U.TickerProviderStateMixin, N._WidgetInspectorService, N.WidgetInspectorService, N._ElementLocationStatsTracker, N.InspectorSelection, D.PluginRegistry, N.RTCDataChannelState, N.RTCSignalingState, N.RTCIceGatheringState, N.RTCPeerConnectionState, N.RTCIceConnectionState, N.RTCVideoViewObjectFit, B.RTCFactory, V.MediaStream0, Z.MediaStreamTrack0, Q.MediaDevices0, X.RTCDataChannelMessage, X.RTCDataChannel, K.RTCIceCandidate, B.RTCPeerConnection, D.RTCRtpSender, V.RTCRtpTransceiver, N.RTCSessionDescription, D.RTCTrackEvent, E.RTCVideoValue, E.RTCVideoRenderer, F.DialogDemoAction, L.SignalingState, L.CallState, L.Session, L.Signaling, L.RouteItem, M.SimpleWebSocket, E.BaseClient, G.BaseRequest, T.BaseResponse, E.ClientException, R.MediaType, M.Context, O.Style, X.ParsedPath, X.PathException, V.SharedPreferences, E.SharedPreferencesStorePlatform, Y.SourceFile, D.SourceLocationMixin, Y.SourceSpanMixin, U.Highlighter, U._Highlight, U._Line, V.SourceLocation, G.SourceSpanException, X.StringScanner, E.Matrix4, E.Vector3, E.Vector4]);
+ _inheritMany(H.Closure, [H.initializeEngine_closure, H.initializeEngine_closure0, H.initializeEngine__closure, H.AssetManager__baseUrl_closure, H.AssetManager__baseUrl_closure0, H.ClipboardMessageHandler_setDataMethodCall_closure, H.ClipboardMessageHandler_setDataMethodCall_closure0, H.ClipboardMessageHandler_getDataMethodCall_closure, H.ClipboardMessageHandler_getDataMethodCall_closure0, H.DomRenderer_reset_closure, H.DomRenderer_setPreferredOrientation_closure, H.DomRenderer_setPreferredOrientation_closure0, H.PersistedPicture__applyBitmapPaint_closure, H.SurfaceSceneBuilder_build_closure, H.SurfaceSceneBuilder_build_closure0, H.commitScene_closure, H.PersistedContainerSurface__matchChildren_closure, H.Keyboard$__closure, H.Keyboard$__closure0, H.Keyboard$__closure1, H.Keyboard__handleHtmlEvent_closure, H.MultiEntriesBrowserHistory_onPopState_closure, H.SingleEntryBrowserHistory_onPopState_closure, H.SingleEntryBrowserHistory_onPopState_closure0, H.HashUrlStrategy_addPopStateListener_closure, H.HashUrlStrategy__waitForPopState__unsubscribe_set, H.HashUrlStrategy__waitForPopState__unsubscribe_get, H.HashUrlStrategy__waitForPopState_closure, H.EnginePlatformDispatcher__zonedPlatformMessageResponseCallback_closure, H.EnginePlatformDispatcher__sendPlatformMessage_closure, H.EnginePlatformDispatcher__sendPlatformMessage_closure0, H.EnginePlatformDispatcher__sendPlatformMessage_closure1, H.EnginePlatformDispatcher__sendPlatformMessage_closure2, H.EnginePlatformDispatcher__sendPlatformMessage_closure3, H.EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure, H.EnginePlatformDispatcher__addBrightnessMediaQueryListener_closure0, H.EnginePlatformDispatcher__replyToPlatformMessage_closure, H.invoke3_closure, H._BaseAdapter_addEventListener_closure, H._WheelEventListenerMixin__addWheelEventListener_closure, H._PointerAdapter__ensureSanitizer_closure, H._PointerAdapter__addPointerEventListener_closure, H._PointerAdapter_setup_closure, H._PointerAdapter_setup_closure0, H._PointerAdapter_setup__closure, H._PointerAdapter_setup_closure1, H._PointerAdapter_setup_closure2, H._PointerAdapter_setup_closure3, H._TouchAdapter__addTouchEventListener_closure, H._TouchAdapter_setup_closure, H._TouchAdapter_setup_closure0, H._TouchAdapter_setup_closure1, H._TouchAdapter_setup_closure2, H._MouseAdapter__addMouseEventListener_closure, H._MouseAdapter_setup_closure, H._MouseAdapter_setup_closure0, H._MouseAdapter_setup_closure1, H._MouseAdapter_setup_closure2, H.PointerDataConverter__ensureStateForPointer_closure, H.AccessibilityAnnouncements$__closure, H.AccessibilityAnnouncements_handleMessage_closure, H.Incrementable_closure, H.Incrementable_closure0, H.Scrollable_update_closure, H.Scrollable_update_closure0, H.Scrollable_update_closure1, H.closure, H.closure0, H.closure1, H.closure2, H.closure3, H.closure4, H.closure5, H.closure6, H.SemanticsObject_recomputePositionAndSize__effectiveTransform_set, H.SemanticsObject_recomputePositionAndSize__effectiveTransform_get, H.EngineSemanticsOwner$__closure, H.EngineSemanticsOwner_closure, H.EngineSemanticsOwner__getGestureModeClock_closure, H.DesktopSemanticsEnabler_tryEnableSemantics_closure, H.DesktopSemanticsEnabler_prepareAccessibilityPlaceholder_closure, H.MobileSemanticsEnabler_tryEnableSemantics_closure, H.MobileSemanticsEnabler_prepareAccessibilityPlaceholder_closure, H.Tappable_update_closure, H.TextField__initializeForBlink_closure, H.TextField__initializeForWebkit_closure, H.TextField__initializeForWebkit_closure0, H.StandardMessageCodec_writeValue_closure0, H.FontManager__loadFontFace_closure, H.FontManager__loadFontFace_closure0, H._PolyfillFontManager_registerAsset___fontLoadStart_set, H._PolyfillFontManager_registerAsset___fontLoadStart_get, H._PolyfillFontManager_registerAsset__watchWidth, H._PolyfillFontManager_registerAsset_closure, H.RulerManager__scheduleRulerCacheCleanup_closure, H.RulerManager__evictAllRulers_closure, H.RulerManager_cleanUpRulerCache_closure, H.DomParagraphBuilder__buildRichText_currentElement, H.EngineAutofillForm_fromFrameworkMessage_closure, H.EngineAutofillForm_addInputEventListeners_closure, H.EngineAutofillForm_addInputEventListeners__closure, H.DefaultTextEditingStrategy_addEventHandlers_closure, H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure, H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure0, H.DefaultTextEditingStrategy_preventDefaultForMouseEvents_closure1, H.IOSTextEditingStrategy_addEventHandlers_closure, H.IOSTextEditingStrategy_addEventHandlers_closure0, H.IOSTextEditingStrategy__addTapListener_closure, H.IOSTextEditingStrategy__schedulePlacement_closure, H.AndroidTextEditingStrategy_addEventHandlers_closure, H.FirefoxTextEditingStrategy_addEventHandlers_closure, H.FirefoxTextEditingStrategy_addEventHandlers_closure0, H.TextEditingChannel_saveForms_closure, H.HybridTextEditing__startEditing_closure0, H.HybridTextEditing__startEditing_closure, H.WebExperiments$__closure, H.EngineFlutterWindow__addUrlStrategyListener_closure, H.EngineFlutterWindow__addUrlStrategyListener_closure0, H._CastListBase_sort_closure, H.CastMap_putIfAbsent_closure, H.CastMap_forEach_closure, H.ConstantMap_map_closure, H.ConstantStringMap_values_closure, H.Instantiation, H.Primitives_initTicker_closure, H.Primitives_functionNoSuchMethod_closure, H.TearOffClosure, H.JsLinkedHashMap_values_closure, H.JsLinkedHashMap_addAll_closure, H.initHooks_closure, H.initHooks_closure0, H.initHooks_closure1, P._AsyncRun__initializeScheduleImmediate_internalCallback, P._AsyncRun__initializeScheduleImmediate_closure, P._AsyncRun__scheduleImmediateJsOverride_internalCallback, P._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, P._TimerImpl_internalCallback, P._TimerImpl$periodic_closure, P._awaitOnObject_closure, P._awaitOnObject_closure0, P._wrapJsFunctionForAsync_closure, P._asyncStarHelper_closure, P._asyncStarHelper_closure0, P._AsyncStarStreamController__resumeBody, P._AsyncStarStreamController__resumeBody_closure, P._AsyncStarStreamController_closure0, P._AsyncStarStreamController_closure1, P._AsyncStarStreamController_closure, P._AsyncStarStreamController__closure, P._SyncBroadcastStreamController__sendData_closure, P.Future_Future$delayed_closure, P.Future_wait__error_set, P.Future_wait__stackTrace_set, P.Future_wait__error_get, P.Future_wait__stackTrace_get, P.Future_wait_handleError, P.Future_wait_closure, P._Future__addListener_closure, P._Future__prependListeners_closure, P._Future__chainForeignFuture_closure, P._Future__chainForeignFuture_closure0, P._Future__chainForeignFuture_closure1, P._Future__asyncCompleteWithValue_closure, P._Future__chainFuture_closure, P._Future__asyncCompleteError_closure, P._Future__propagateToListeners_handleWhenCompleteCallback, P._Future__propagateToListeners_handleWhenCompleteCallback_closure, P._Future__propagateToListeners_handleValueCallback, P._Future__propagateToListeners_handleError, P.Stream_Stream$fromIterable_closure, P.Stream_length_closure, P.Stream_length_closure0, P.Stream_first_closure, P.Stream_first_closure0, P._StreamController__subscribe_closure, P._StreamController__recordCancel_complete, P._AddStreamState_cancel_closure, P._BufferingStreamSubscription__sendError_sendError, P._BufferingStreamSubscription__sendDone_sendDone, P._PendingEvents_schedule_closure, P._cancelAndValue_closure, P._rootHandleUncaughtError_closure, P._RootZone_bindCallback_closure, P._RootZone_bindCallbackGuarded_closure, P._RootZone_bindUnaryCallbackGuarded_closure, P._HashMap_values_closure, P._LinkedCustomHashMap_closure, P.HashMap_HashMap$from_closure, P.LinkedHashMap_LinkedHashMap$from_closure, P.MapBase_mapToString_closure, P.MapMixin_entries_closure, P.SplayTreeMap_closure, P.SplayTreeSet_closure, P.SplayTreeSet__copyNode_copyChildren, P._JsonMap_values_closure, P.Utf8Decoder_closure, P.Utf8Decoder_closure0, P._JsonStringifier_writeMap_closure, P.NoSuchMethodError_toString_closure, P.Duration_toString_sixDigits, P.Duration_toString_twoDigits, P.Uri__parseIPv4Address_error, P.Uri_parseIPv6Address_error, P.Uri_parseIPv6Address_parseHex, P._createTables_closure, P._createTables_build, P._createTables_setChars, P._createTables_setRange, W.Element_Element$html_closure, W.Entry_remove_closure, W.Entry_remove_closure0, W.HttpRequest_request_closure, W.MidiInputMap_keys_closure, W.MidiInputMap_values_closure, W.MidiOutputMap_keys_closure, W.MidiOutputMap_values_closure, W.Navigator_getUserMedia_closure, W.Navigator_getUserMedia_closure0, W.RtcStatsReport_keys_closure, W.RtcStatsReport_values_closure, W.Storage_keys_closure, W.Storage_values_closure, W._EventStreamSubscription_closure, W._EventStreamSubscription_onData_closure, W.NodeValidatorBuilder_allowsElement_closure, W.NodeValidatorBuilder_allowsAttribute_closure, W._SimpleNodeValidator_closure, W._SimpleNodeValidator_closure0, W._TemplatingNodeValidator_closure, W._ValidatingTreeSanitizer_sanitizeTree_walk, P._StructuredClone_walk_closure, P._StructuredClone_walk_closure0, P._AcceptStructuredClone_walk_closure, P.convertDartToNative_Dictionary_closure, P.FilteredElementList__iterable_closure, P.FilteredElementList__iterable_closure0, P.FilteredElementList_removeRange_closure, P.JsObject__convertDataTree__convert, P._convertToJS_closure, P._convertToJS_closure0, P._wrapToDart_closure, P._wrapToDart_closure0, P._wrapToDart_closure1, P._convertDataTree__convert, P.promiseToFuture_closure, P.promiseToFuture_closure0, P.ChannelBuffers_push_closure, P.webOnlyInitializePlatform_closure, P.AudioParamMap_keys_closure, P.AudioParamMap_values_closure, M.CanonicalizedMap_addAll_closure, M.CanonicalizedMap_forEach_closure, M.CanonicalizedMap_keys_closure, M.CanonicalizedMap_map_closure, M.CanonicalizedMap_putIfAbsent_closure, M.CanonicalizedMap_values_closure, E.CupertinoDynamicColor_toString_toString, D.CupertinoRouteTransitionMixin_buildPageTransitions_closure, D.CupertinoRouteTransitionMixin_buildPageTransitions_closure0, D._CupertinoBackGestureController_dragEnd__animationStatusCallback_set, D._CupertinoBackGestureController_dragEnd__animationStatusCallback_get, D._CupertinoBackGestureController_dragEnd_closure, K.CupertinoThemeData_resolveFrom_convertColor, K.NoDefaultCupertinoThemeData_resolveFrom_convertColor, K._CupertinoThemeDefaults_resolveFrom_convertColor, U.FlutterErrorDetails_summary_formatException, U.FlutterErrorDetails_summary_closure, U.FlutterErrorDetails_summary_closure0, U.FlutterErrorDetails_debugFillProperties_closure, U.FlutterError_FlutterError_closure, U.FlutterError_closure, U.FlutterError_closure0, U.FlutterError_defaultStackFilter_closure, U.FlutterError_defaultStackFilter_closure0, U.FlutterError_toString_closure, U.debugPrintStack_closure, N.BindingBase_lockEvents_closure, N.BindingBase_registerSignalServiceExtension_closure, N.BindingBase_registerBoolServiceExtension_closure, N.BindingBase_registerNumericServiceExtension_closure, N.BindingBase_registerServiceExtension_closure, N.BindingBase_registerServiceExtension_closure__result_set, N.BindingBase_registerServiceExtension__closure, N.BindingBase_registerServiceExtension_closure__result_get, B.ChangeNotifier_notifyListeners_closure, Y._PrefixedStringBuilder__wordWrapLine__lastWordStart_set, Y._PrefixedStringBuilder__wordWrapLine__lastWordStart_get, Y._PrefixedStringBuilder__wordWrapLine_noWrap, Y.TextTreeRenderer__debugRender_visitor, Y.TextTreeRenderer__debugRender_closure, R.StackFrame_fromStackString_closure, O.SynchronousFuture_whenComplete_closure, D._GestureArena_toString_closure, D.GestureArenaManager_add_closure, D.GestureArenaManager__tryToResolveArena_closure, N.GestureBinding_dispatchEvent_closure, N.GestureBinding_dispatchEvent_closure0, K.ForcePressGestureRecognizer_handleEvent_closure, K.ForcePressGestureRecognizer_acceptGesture_closure, K.ForcePressGestureRecognizer_didStopTrackingLastPointer_closure, T.LongPressGestureRecognizer__checkLongPressStart_closure, T.LongPressGestureRecognizer__checkLongPressMoveUpdate_closure, T.LongPressGestureRecognizer__checkLongPressEnd_closure, O.DragGestureRecognizer__checkDown_closure, O.DragGestureRecognizer__checkStart_closure, O.DragGestureRecognizer__checkUpdate_closure, O.DragGestureRecognizer__checkEnd_closure, O.DragGestureRecognizer__checkEnd_closure0, O.DragGestureRecognizer__checkEnd_closure1, O.PointerRouter_addRoute_closure, O.PointerRouter__dispatchEventToRoutes_closure, S.PrimaryPointerGestureRecognizer_addAllowedPointer_closure, N.TapGestureRecognizer_handleTapDown_closure, N.TapGestureRecognizer_handleTapUp_closure, V.GestureArenaTeam_add_closure, S.MaterialApp_createMaterialHeroController_closure, S._MaterialAppState__buildWidgetApp_closure, D.MaterialPointArcTween__initialize_sweepAngle, D._maxBy__maxValue_set, D._maxBy__maxValue_get, D.MaterialRectArcTween__initialize_closure, R.BackButton_build_closure, Z._RawMaterialButtonState__handleHighlightChanged_closure, Z._RawMaterialButtonState__handleHoveredChanged_closure, Z._RawMaterialButtonState__handleFocusedChanged_closure, Z._RenderInputPadding_hitTest_closure, K.ButtonBar_build_closure, E.showDialog_closure, U._getClipCallback_closure, R._InkResponseState_highlightsExist_closure, R._InkResponseState_updateHighlight_handleInkRemoval, R._InkResponseState__createInkFeature_onRemoved, R._InkResponseState__handleFocusHighlightModeChange_closure, L._HelperErrorState__handleChange_closure, L._RenderDecoration_debugDescribeChildren_add, L._RenderDecoration_performLayout_centerLayout, L._RenderDecoration_performLayout_baselineLayout, L._RenderDecoration_paint_doPaint, L._RenderDecoration_hitTestChildren_closure, L._InputDecoratorState__handleChange_closure, Q._RenderListTile_debugDescribeChildren_add, Q._RenderListTile_paint_doPaint, Q._RenderListTile_hitTestChildren_closure, M._MaterialState_build_closure, M._MaterialInteriorState_forEachTween_closure, M._MaterialInteriorState_forEachTween_closure0, M._MaterialInteriorState_forEachTween_closure1, K.PageTransitionsTheme__all_closure, M.ScaffoldMessengerState_hideCurrentSnackBar_closure, M._ScaffoldLayout_performLayout__floatingActionButtonRect_set, M._ScaffoldLayout_performLayout__floatingActionButtonRect_get, M._FloatingActionButtonTransitionState__handlePreviousAnimationStatusChanged_closure, M.ScaffoldState_hideCurrentSnackBar_closure, M.ScaffoldState__updateSnackBar_closure, M.ScaffoldState__moveFloatingActionButton_closure, M.ScaffoldState_build_closure, Z._TextFieldState__handleSelectionChanged_closure, Z._TextFieldState__handleHover_closure, Z._TextFieldState_build_closure, Z._TextFieldState_build_closure1, Z._TextFieldState_build_closure2, Z._TextFieldState_build_closure0, Z._TextFieldState_build__closure, Z.__TextFieldState_State_RestorationMixin_dispose_closure, K._AnimatedThemeState_forEachTween_closure, X.ThemeData_localize_closure, S._TooltipState__handleMouseTrackerChange_closure, S._TooltipState__createNewEntry_closure, S._TooltipState_build_closure, S._TooltipState_build_closure0, Y._CompoundBorder_dimensions_closure, Y._CompoundBorder_scale_closure, Y._CompoundBorder_toString_closure, Z.ClipContext_clipPathAndPaint_closure, Z.ClipContext_clipRectAndPaint_closure, T._sample_closure, T._interpolateColorsAndStops_closure, T.LinearGradient_scale_closure, G.InlineSpan_getSpanForPosition_closure, G.InlineSpan_codeUnitAt_closure, Q.TextSpan_debugDescribeChildren_closure, N.RendererBinding__scheduleMouseTrackerUpdate_closure, S.BoxConstraints_toString_describe, S.RenderBox__computeIntrinsicDimension_closure, S.RenderBox_getDistanceToActualBaseline_closure, S.RenderBoxContainerDefaultsMixin_defaultHitTestChildren_closure, V.RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_set, V.RenderCustomPaint__updateSemanticsChildren__oldKeyedChildren_get, D.RenderEditable_getRectForComposingRange_closure, F.RenderFlex__getIntrinsicSize__crossSize_set, F.RenderFlex__getIntrinsicSize__mainSize_set, F.RenderFlex__getIntrinsicSize__mainSize_get, F.RenderFlex__getIntrinsicSize__crossSize_get, F.RenderFlex_computeMinIntrinsicWidth_closure, F.RenderFlex_computeMaxIntrinsicWidth_closure, F.RenderFlex_computeMinIntrinsicHeight_closure, F.RenderFlex_computeMaxIntrinsicHeight_closure, F.RenderFlex_performLayout__betweenSpace_set, F.RenderFlex_performLayout__leadingSpace_set, F.RenderFlex_performLayout__minChildExtent_set, F.RenderFlex_performLayout__minChildExtent_get, F.RenderFlex_performLayout__leadingSpace_get, F.RenderFlex_performLayout__betweenSpace_get, R.RenderListBody_computeMinIntrinsicWidth_closure, R.RenderListBody_computeMinIntrinsicWidth_closure0, R.RenderListBody_computeMaxIntrinsicWidth_closure, R.RenderListBody_computeMaxIntrinsicWidth_closure0, R.RenderListBody_computeMinIntrinsicHeight_closure, R.RenderListBody_computeMinIntrinsicHeight_closure0, R.RenderListBody_computeMaxIntrinsicHeight_closure, R.RenderListBody_computeMaxIntrinsicHeight_closure0, A.MouseTrackerCursorMixin__findFirstCursor_closure, Y.BaseMouseTracker_updateWithEvent_closure, Y.BaseMouseTracker_updateWithEvent__closure, Y.BaseMouseTracker_updateAllDevices_closure, Y._MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure, Y._MouseTrackerEventMixin__handleDeviceUpdateMouseEvents_closure0, K.PaintingContext_pushClipRect_closure, K.PaintingContext_pushClipPath_closure, K.PipelineOwner_flushLayout_closure, K.PipelineOwner_flushCompositingBits_closure, K.PipelineOwner_flushPaint_closure, K.PipelineOwner_flushSemantics_closure, K.RenderObject__debugReportException_closure, K.RenderObject_invokeLayoutCallback_closure, K.RenderObject__updateCompositingBits_closure, K.RenderObject_clearSemantics_closure, K.RenderObject__getSemanticsForParent_closure, Q.RenderParagraph__extractPlaceholderSpans_closure, Q.RenderParagraph_hitTestChildren_closure, Q.RenderParagraph_paint_closure, Q.RenderParagraph_describeSemanticsConfiguration_closure, G._factoriesTypeSet_closure, G._PlatformViewGestureRecognizer_closure, E.RenderTransform_hitTestChildren_closure, E.RenderFractionalTranslation_hitTestChildren_closure, E.RenderFollowerLayer_hitTestChildren_closure, T.RenderShiftedBox_hitTestChildren_closure, G.RenderSliverHelpers_hitTestBoxChild_closure, U.RenderSliverList_performLayout_advance, F.RenderSliverMultiBoxAdaptor__createOrObtainChild_closure, F.RenderSliverMultiBoxAdaptor_collectGarbage_closure, F.RenderSliverMultiBoxAdaptor_collectGarbage__closure, K.RenderStack_computeMinIntrinsicWidth_closure, K.RenderStack_computeMaxIntrinsicWidth_closure, K.RenderStack_computeMinIntrinsicHeight_closure, K.RenderStack_computeMaxIntrinsicHeight_closure, K.RenderStack_layoutPositionedChild__x_set, K.RenderStack_layoutPositionedChild__y_set, K.RenderStack_layoutPositionedChild__x_get, K.RenderStack_layoutPositionedChild__y_get, Q.RenderViewportBase_visitChildrenForSemantics_closure, Q.RenderViewportBase_hitTestChildren_closure, N._TaskEntry_run_closure, N.SchedulerBinding_endOfFrame_closure, N.SchedulerBinding_scheduleWarmUpFrame_closure, N.SchedulerBinding_scheduleWarmUpFrame_closure0, N.SchedulerBinding_scheduleWarmUpFrame_closure1, N.SchedulerBinding_handleBeginFrame_closure, M.TickerFuture_whenCompleteOrCancel_thunk, A.SemanticsNode_getSemanticsData_closure, A.SemanticsNode__childrenInTraversalOrder_closure, A.SemanticsNode_debugDescribeChildren_closure, A._SemanticsSortGroup_sortedWithinVerticalGroup_closure, A._SemanticsSortGroup_sortedWithinKnot_closure, A._SemanticsSortGroup_sortedWithinKnot_search, A._SemanticsSortGroup_sortedWithinKnot_closure0, A._SemanticsSortGroup_sortedWithinKnot_closure1, A._childrenInDefaultOrder_closure, A.SemanticsOwner_sendSemanticsUpdate_closure, A.SemanticsOwner_sendSemanticsUpdate_closure0, A.SemanticsOwner_sendSemanticsUpdate_closure1, A.SemanticsOwner__getSemanticsActionHandlerForId_closure, A.SemanticsConfiguration__addArgumentlessAction_closure, A.SemanticsConfiguration_onMoveCursorForwardByCharacter_closure, A.SemanticsConfiguration_onMoveCursorBackwardByCharacter_closure, A.SemanticsConfiguration_onMoveCursorForwardByWord_closure, A.SemanticsConfiguration_onMoveCursorBackwardByWord_closure, A.SemanticsConfiguration_onSetSelection_closure, N.ServicesBinding__addLicenses_closure, N.ServicesBinding__addLicenses_closure0, N._DefaultBinaryMessenger__sendPlatformMessage_closure, N._DefaultBinaryMessenger_setMessageHandler_closure, U.StandardMessageCodec_writeValue_closure, A.BasicMessageChannel_setMessageHandler_closure, A.MethodChannel_setMethodCallHandler_closure, Q.RawKeyEventDataAndroid_getModifierSide_findSide, Q.RawKeyEventDataFuchsia_getModifierSide_findSide, R.RawKeyEventDataIos_getModifierSide_findSide, B.RawKeyEventDataMacOs_getModifierSide_findSide, R.RawKeyEventDataWindows_getModifierSide_findSide, K.RestorationManager_handleRestorationUpdateFromEngine_closure, K.RestorationManager_scheduleSerializationFor_closure, K.RestorationBucket__rawChildren_closure, K.RestorationBucket__rawValues_closure, K.RestorationBucket__addChildData_closure, K.RestorationBucket__visitChildren_closure, X.SystemChrome_setSystemUIOverlayStyle_closure, B.FilteringTextInputFormatter_formatEditUpdate_closure, B.FilteringTextInputFormatter_formatEditUpdate__closure, N.TextInput__scheduleHide_closure, U._getParent__parent_set, U._getParent__parent_get, U._getParent_closure, U.Actions__findDispatcher_closure, U.Actions_maybeFind_closure, U._ActionsState__handleActionChanged_closure, S._WidgetsAppState__onGenerateRoute_closure, S._WidgetsAppState_didChangeLocales_closure, S._WidgetsAppState_build_closure, S._MediaQueryFromWindowsState_didChangeMetrics_closure, S._MediaQueryFromWindowsState_didChangePlatformBrightness_closure, L._AutomaticKeepAliveState__addClient_closure, L._AutomaticKeepAliveState__getChildElement_closure, L._AutomaticKeepAliveState__createCallback_closure, L._AutomaticKeepAliveState__createCallback__closure, L._AutomaticKeepAliveState__createCallback__closure0, L._AutomaticKeepAliveState__createCallback___closure, T.RichText__extractChildren_closure, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure0, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_initServiceExtensions_closure1, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_dispatchEvent_closure, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initInstances_closure, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_initServiceExtensions_closure0, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_initInstances_closure, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure0, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure1, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure2, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure_markElementsDirty, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure3, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_initServiceExtensions_closure4, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding_drawFrame_closure, N.WidgetsBinding_scheduleAttachRootWidget_closure, N.RenderObjectToWidgetAdapter_attachToRenderTree_closure, N.RenderObjectToWidgetAdapter_attachToRenderTree_closure0, D.EditableTextState_initState_closure, D.EditableTextState__showCaretOnScreen_closure, D.EditableTextState__formatAndSetValue_closure, D.EditableTextState__cursorTick_closure, D.EditableTextState__didChangeTextEditingValue_closure, D.EditableTextState__updateSizeAndTransform_closure, D.EditableTextState__updateComposingRectIfNeeded_closure, D.EditableTextState_showAutocorrectionPromptRect_closure, D.EditableTextState__semanticsOnCopy_closure, D.EditableTextState__semanticsOnCut_closure, D.EditableTextState__semanticsOnPaste_closure, D.EditableTextState_build_closure, D._WhitespaceDirectionalityFormatter_formatEditUpdate_addToLength, D._WhitespaceDirectionalityFormatter_formatEditUpdate_subtractFromLength, O.FocusNode_traversalDescendants_closure, O.FocusNode_debugDescribeChildren_closure, L._FocusState__handleFocusChanged_closure, L._FocusState__handleFocusChanged_closure0, L._FocusState__handleFocusChanged_closure1, U._getAncestor_closure, U.FocusTraversalPolicy__sortAllDescendants_visitGroups, U._ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin_changedScope_closure, U.DirectionalFocusTraversalPolicyMixin__sortAndFindInitial_closure, U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure, U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure0, U.DirectionalFocusTraversalPolicyMixin__sortAndFilterHorizontally_closure1, U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure, U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure0, U.DirectionalFocusTraversalPolicyMixin__sortAndFilterVertically_closure1, U.DirectionalFocusTraversalPolicyMixin__popPolicyDataIfNeeded_popOrInvalidate, U.DirectionalFocusTraversalPolicyMixin_inDirection_closure, U.DirectionalFocusTraversalPolicyMixin_inDirection_closure0, U.DirectionalFocusTraversalPolicyMixin_inDirection_closure1, U.DirectionalFocusTraversalPolicyMixin_inDirection_closure2, U.DirectionalFocusTraversalPolicyMixin_inDirection_closure3, U.DirectionalFocusTraversalPolicyMixin_inDirection_closure4, U._ReadingOrderSortData_commonDirectionalityOf_closure, U._ReadingOrderSortData_sortWithDirectionality_closure, U._ReadingOrderSortData_directionalAncestors_getDirectionalityAncestors, U._ReadingOrderDirectionalGroupData_rect_closure, U._ReadingOrderDirectionalGroupData_sortWithDirectionality_closure, U.ReadingOrderTraversalPolicy__pickNext_closure, U.ReadingOrderTraversalPolicy__pickNext_inBand, U.ReadingOrderTraversalPolicy__pickNext_inBand_closure, N._InactiveElements__unmount_closure, N.BuildOwner_buildScope_closure, N.BuildOwner_finalizeTree_closure, N.Element_renderObject_visit, N.Element_updateSlotForChild_visit, N.Element__updateDepth_closure, N.Element_detachRenderObject_closure, N.Element_attachRenderObject_closure, N.Element_debugDescribeChildren_closure, N.ComponentElement_performRebuild_closure, N.ComponentElement_performRebuild_closure0, N.ParentDataElement__applyParentData_applyParentDataToChild, N.RenderObjectElement_updateChildren_replaceWithNullIfForgotten, D.GestureDetector_build_closure, D.GestureDetector_build_closure0, D.GestureDetector_build_closure1, D.GestureDetector_build_closure2, D.GestureDetector_build_closure3, D.GestureDetector_build_closure4, D.GestureDetector_build_closure5, D.GestureDetector_build_closure6, D.GestureDetector_build_closure7, D.GestureDetector_build_closure8, D.GestureDetector_build_closure9, D.GestureDetector_build_closure10, D._DefaultSemanticsGestureDelegate__getTapHandler_closure, D._DefaultSemanticsGestureDelegate__getLongPressHandler_closure, D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure, D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure0, D._DefaultSemanticsGestureDelegate__getHorizontalDragUpdateHandler_closure1, D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure, D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure0, D._DefaultSemanticsGestureDelegate__getVerticalDragUpdateHandler_closure1, T.Hero__allHeroesFor_inviteHero, T.Hero__allHeroesFor_visitor, T._HeroState_startFlight_closure, T._HeroState_ensurePlaceholderIsHidden_closure, T._HeroFlight__buildOverlay_closure, T._HeroFlight__handleAnimationUpdate_delayedPerformAnimtationUpdate, T.HeroController_didStopUserGesture_isInvalidFlight, T.HeroController__maybeStartHeroTransition_closure, T.HeroController_closure, Y.IconTheme_merge_closure, G.ImplicitlyAnimatedWidgetState_initState_closure, G.ImplicitlyAnimatedWidgetState_didUpdateWidget_closure, G.ImplicitlyAnimatedWidgetState__constructTweens_closure, G.AnimatedWidgetBaseState__handleAnimationChanged_closure, G._AnimatedPaddingState_forEachTween_closure, G._AnimatedOpacityState_forEachTween_closure, G._AnimatedDefaultTextStyleState_forEachTween_closure, G._AnimatedPhysicalModelState_forEachTween_closure, G._AnimatedPhysicalModelState_forEachTween_closure0, G._AnimatedPhysicalModelState_forEachTween_closure1, G._AnimatedPhysicalModelState_forEachTween_closure2, M.InheritedTheme_capture__debugDidFindAncestor_set, M.InheritedTheme_capture_closure, A._LayoutBuilderElement__layout_closure, A._LayoutBuilderElement__layout__closure, A._LayoutBuilderElement__layout__closure0, L._loadAll_closure, L._loadAll_closure0, L._loadAll_closure1, L._LocalizationsState_load_closure, L._LocalizationsState_load_closure0, L._LocalizationsState_load__closure, X.ModalBarrier_build_closure, K.Route_didPush_closure, K.Route_didAdd_closure, K.Route_isCurrent_closure, K.Route_isCurrent_closure0, K.Route_isFirst_closure, K.Route_isFirst_closure0, K.Route_isActive_closure, K.Route_isActive_closure0, K.Navigator_defaultGenerateInitialRoutes_closure, K._RouteEntry_handlePush_closure, K._RouteEntry_dispose_closure, K._RouteEntry_dispose__listener_set, K._RouteEntry_dispose__listener_get, K._RouteEntry_dispose_closure0, K._RouteEntry_closure1, K._RouteEntry_closure, K._RouteEntry_closure0, K._RouteEntry_isRoutePredicate_closure, K.NavigatorState_restoreState_closure, K.NavigatorState__flushHistoryUpdates_closure, K.NavigatorState__flushHistoryUpdates_closure0, K.NavigatorState__afterNavigation_closure, K.NavigatorState_maybePop_closure, K.NavigatorState_maybePop_closure0, K.NavigatorState_maybePop_closure1, K.NavigatorState_maybePop_closure2, K.NavigatorState__cancelActivePointers_closure, K._HistoryProperty_fromPrimitives_closure, K._NavigatorState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure, X.OverlayEntry_remove_closure, X._OverlayEntryWidgetState__markNeedsBuild_closure, X.OverlayState_insert_closure, X.OverlayState_insertAll_closure, X.OverlayState_rearrange_closure, X.OverlayState__markDirty_closure, X.OverlayState__didChangeEntryOpacity_closure, X._RenderTheatre_computeMinIntrinsicWidth_closure, X._RenderTheatre_computeMaxIntrinsicWidth_closure, X._RenderTheatre_computeMinIntrinsicHeight_closure, X._RenderTheatre_computeMaxIntrinsicHeight_closure, X._RenderTheatre_hitTestChildren_closure, L._GlowController_pull_closure, S.PageStorageBucket__allKeys_closure, G.HtmlElementView_build_closure, G.HtmlElementView__createHtmlElementView_closure, G._PlatformViewLinkState__onPlatformViewCreated_closure, K._RootRestorationScopeState__loadRootBucketIfNecessary_closure, K._RootRestorationScopeState__loadRootBucketIfNecessary__closure, K.RestorationMixin_registerForRestoration_closure, K.__RestorationScopeState_State_RestorationMixin_dispose_closure, T.TransitionRoute__updateSecondaryAnimation__jumpOnAnimationEnd, T.TransitionRoute__updateSecondaryAnimation_closure, T.TransitionRoute__updateSecondaryAnimation_closure0, T.TransitionRoute__setSecondaryAnimation_closure, T._ModalScopeState__forceRebuildPage_closure, T._ModalScopeState_build_closure0, T._ModalScopeState_build_closure1, T._ModalScopeState_build__closure, T._ModalScopeState_build_closure, T.ModalRoute_offstage_closure, T.ModalRoute_changedInternalState_closure, K.ScrollBehavior_velocityTrackerBuilder_closure, K.ScrollBehavior_velocityTrackerBuilder_closure0, A.ScrollPosition_forcePixels_closure, B.ScrollView_build_closure, B.ScrollView_build_closure0, F._ScrollableState_State_TickerProviderStateMixin_RestorationMixin_dispose_closure, F.ScrollableState_setCanDrag_closure, F.ScrollableState_setCanDrag_closure0, F.ScrollableState_setCanDrag_closure1, F.ScrollableState_setCanDrag_closure2, G.SliverMultiBoxAdaptorElement_performRebuild_processElement, G.SliverMultiBoxAdaptorElement_performRebuild_closure, G.SliverMultiBoxAdaptorElement_performRebuild_closure0, G.SliverMultiBoxAdaptorElement_createChild_closure, G.SliverMultiBoxAdaptorElement_removeChild_closure, F.TextSelectionOverlay_showHandles_closure, F.TextSelectionOverlay_showHandles_closure0, F.TextSelectionOverlay__buildHandle_closure, F._TextSelectionGestureDetectorState_build_closure, F._TextSelectionGestureDetectorState_build_closure0, F._TextSelectionGestureDetectorState_build_closure1, F._TextSelectionGestureDetectorState_build_closure2, F._TextSelectionGestureDetectorState_build_closure3, F._TextSelectionGestureDetectorState_build_closure4, F._TextSelectionGestureDetectorState_build_closure5, F._TextSelectionGestureDetectorState_build_closure6, K._AnimatedState__handleChange_closure, N._describeRelevantUserCode_processElement, R.MediaStreamWeb_getAudioTracks_closure, R.MediaStreamWeb_getVideoTracks_closure, R.MediaStreamWeb_dispose_closure, Q.MediaStreamTrackWeb_closure, Q.MediaStreamTrackWeb_closure0, G.MediaDevicesWeb_getUserMedia_closure, G.MediaDevicesWeb_getUserMedia_closure0, Z.RTCDataChannelWeb_closure, Z.RTCDataChannelWeb_closure0, Z.RTCDataChannelWeb_closure1, U.RTCPeerConnectionWeb_closure, U.RTCPeerConnectionWeb__closure0, U.RTCPeerConnectionWeb__closure1, U.RTCPeerConnectionWeb___closure0, U.RTCPeerConnectionWeb__closure2, U.RTCPeerConnectionWeb___closure, U.RTCPeerConnectionWeb_closure0, U.RTCPeerConnectionWeb_closure1, U.RTCPeerConnectionWeb_closure2, U.RTCPeerConnectionWeb_closure3, U.RTCPeerConnectionWeb_closure4, U.RTCPeerConnectionWeb_closure5, U.RTCPeerConnectionWeb_closure6, U.RTCPeerConnectionWeb_closure7, U.RTCPeerConnectionWeb_closure8, U.RTCPeerConnectionWeb__closure, U.RTCPeerConnectionWeb_addCandidate_closure, U.RTCPeerConnectionWeb_addCandidate_closure0, V.RTCVideoRendererWeb_initialize_closure, V.RTCVideoRendererWeb_initialize_closure0, V.RTCVideoRendererWeb_initialize_closure1, V.RTCVideoRendererWeb_initialize_closure2, V.RTCVideoRendererWeb_initialize_closure3, V.RTCVideoRendererWeb_dispose_closure, R._RTCVideoViewState_initState_closure, R._RTCVideoViewState_initState__closure, R._RTCVideoViewState_build_closure, F._MyAppState__buildRow_closure, F._MyAppState_build_closure, F._MyAppState__initData_closure, F._MyAppState_showDemoDialog_closure, F._MyAppState_showDemoDialog_closure0, F._MyAppState_showDemoDialog__closure, F._MyAppState__showAddressDialog_closure, F._MyAppState__showAddressDialog__closure, F._MyAppState__showAddressDialog_closure0, F._MyAppState__showAddressDialog_closure1, F._MyAppState__initItems_closure, F._MyAppState__initItems_closure0, Q._CallSampleState__connect_closure, Q._CallSampleState__connect_closure0, Q._CallSampleState__connect__closure0, Q._CallSampleState__connect__closure1, Q._CallSampleState__connect_closure1, Q._CallSampleState__connect__closure, Q._CallSampleState__connect_closure2, Q._CallSampleState__connect_closure3, Q._CallSampleState__connect_closure4, Q._CallSampleState__buildRow_closure, Q._CallSampleState__buildRow_closure0, Q._CallSampleState_build_closure, Q._CallSampleState_build_closure0, T._DataChannelSampleState__connect_closure, T._DataChannelSampleState__connect__closure2, T._DataChannelSampleState__connect_closure0, T._DataChannelSampleState__connect_closure1, T._DataChannelSampleState__connect_closure2, T._DataChannelSampleState__connect__closure0, T._DataChannelSampleState__connect__closure1, T._DataChannelSampleState__connect_closure3, T._DataChannelSampleState__connect__closure, T._DataChannelSampleState__buildRow_closure, T._DataChannelSampleState_build_closure, Q.randomString_closure, L.Signaling_onMessage_closure, L.Signaling_connect_closure, L.Signaling_connect_closure0, L.Signaling_connect_closure1, L.Signaling__createSession_closure, L.Signaling__createSession_closure0, L.Signaling__createSession_closure1, L.Signaling__createSession_closure2, L.Signaling__createSession_closure3, L.Signaling__createSession__closure, L.Signaling__createSession_closure4, L.Signaling__addDataChannel_closure, L.Signaling__addDataChannel_closure0, L.Signaling__cleanSessions_closure, L.Signaling__cleanSessions_closure0, L.Signaling__closeSessionByPeerId_closure, L.Signaling__closeSession_closure, M.SimpleWebSocket_connect_closure, M.SimpleWebSocket_connect_closure0, M.SimpleWebSocket_connect_closure1, G.get_closure, G.BaseRequest_closure, G.BaseRequest_closure0, O.BrowserClient_send_closure, O.BrowserClient_send__closure, O.BrowserClient_send__closure0, O.BrowserClient_send_closure0, Z.ByteStream_toBytes_closure, Z.CaseInsensitiveMap$from_closure, Z.CaseInsensitiveMap$from_closure0, R.MediaType_MediaType$parse_closure, R.MediaType_toString_closure, R.MediaType_toString__closure, N.expectQuotedString_closure, M.Context_joinAll_closure, M.Context_split_closure, M._validateArgList_closure, F.MethodChannelSharedPreferencesStore__invokeBoolMethod_closure, U.Highlighter_closure, U.Highlighter$__closure, U.Highlighter$___closure, U.Highlighter$__closure0, U.Highlighter__collateLines_closure, U.Highlighter__collateLines_closure0, U.Highlighter__collateLines_closure1, U.Highlighter__collateLines__closure, U.Highlighter_highlight_closure, U.Highlighter__writeFileStart_closure, U.Highlighter__writeMultilineHighlights_closure, U.Highlighter__writeMultilineHighlights_closure0, U.Highlighter__writeMultilineHighlights_closure1, U.Highlighter__writeMultilineHighlights_closure2, U.Highlighter__writeMultilineHighlights__closure, U.Highlighter__writeMultilineHighlights__closure0, U.Highlighter__writeHighlightedText_closure, U.Highlighter__writeIndicator_closure, U.Highlighter__writeIndicator_closure0, U.Highlighter__writeIndicator_closure1, U.Highlighter__writeSidebar_closure, U._Highlight_closure, A.hashObjects_closure]);
+ _inheritMany(H.EngineCanvas, [H.BitmapCanvas, H._DomCanvas_EngineCanvas_SaveElementStackTracking]);
+ _inherit(H._CanvasPool, H._SaveStackTracking);
+ _inheritMany(J.Interceptor, [J.JavaScriptObject, J.JSBool, J.JSNull, J.JSArray, J.JSNumber, J.JSString, H.NativeByteBuffer, H.NativeTypedData, W.EventTarget, W.AccessibleNodeList, W.Event, W.Blob, W.CanvasRenderingContext2D, W.Credential, W.CredentialUserData, W.CssRule, W.CssTransformComponent, W._CssStyleDeclaration_Interceptor_CssStyleDeclarationBase, W.StyleSheet, W.CssStyleValue, W.DataTransferItemList, W.DomError, W.DomException, W._DomRectList_Interceptor_ListMixin, W.DomRectReadOnly, W._DomStringList_Interceptor_ListMixin, W.DomTokenList, W.Entry, W._FileList_Interceptor_ListMixin, W.FileSystem, W.FontFace, W.Gamepad, W.History, W._HtmlCollection_Interceptor_ListMixin, W.ImageData, W.Location, W.MediaList, W._MidiInputMap_Interceptor_MapMixin, W._MidiOutputMap_Interceptor_MapMixin, W.MimeType, W._MimeTypeArray_Interceptor_ListMixin, W.NavigatorConcurrentHardware, W.NavigatorUserMediaError, W._NodeList_Interceptor_ListMixin, W.OverconstrainedError, W.PerformanceEntry, W.PerformanceServerTiming, W.Plugin, W._PluginArray_Interceptor_ListMixin, W.RtcSessionDescription, W._RtcStatsReport_Interceptor_MapMixin, W.SpeechGrammar, W._SpeechGrammarList_Interceptor_ListMixin, W.SpeechRecognitionResult, W.SpeechSynthesisVoice, W._Storage_Interceptor_MapMixin, W._TextTrackCueList_Interceptor_ListMixin, W.TimeRanges, W.Touch, W._TouchList_Interceptor_ListMixin, W.TrackDefaultList, W.Url, W.VttRegion, W.__CssRuleList_Interceptor_ListMixin, W.__GamepadList_Interceptor_ListMixin, W.__NamedNodeMap_Interceptor_ListMixin, W.__SpeechRecognitionResultList_Interceptor_ListMixin, W.__StyleSheetList_Interceptor_ListMixin, P.Index, P.KeyRange, P.ObjectStore, P.Length, P._LengthList_Interceptor_ListMixin, P.Number, P._NumberList_Interceptor_ListMixin, P.PointList, P.Rect0, P._StringList_Interceptor_ListMixin, P.Transform0, P._TransformList_Interceptor_ListMixin, P.AudioBuffer, P._AudioParamMap_Interceptor_MapMixin, P.ActiveInfo, P._SqlResultSetRowList_Interceptor_ListMixin]);
+ _inheritMany(J.JavaScriptObject, [H.CanvasKit, H.CanvasKitInitOptions, H.CanvasKitInitPromise, H.SkColorSpace, H.SkWebGLContextOptions, H.SkSurface, H.SkGrContext, H.SkFontSlantEnum, H.SkFontSlant, H.SkFontWeightEnum, H.SkFontWeight, H.SkAffinityEnum, H.SkAffinity, H.SkTextDirectionEnum, H.SkTextDirection, H.SkTextAlignEnum, H.SkTextAlign, H.SkRectHeightStyleEnum, H.SkRectHeightStyle, H.SkRectWidthStyleEnum, H.SkRectWidthStyle, H.SkVertexModeEnum, H.SkVertexMode, H.SkPointModeEnum, H.SkPointMode, H.SkClipOpEnum, H.SkClipOp, H.SkFillTypeEnum, H.SkFillType, H.SkPathOpEnum, H.SkPathOp, H.SkBlurStyleEnum, H.SkBlurStyle, H.SkStrokeCapEnum, H.SkStrokeCap, H.SkPaintStyleEnum, H.SkPaintStyle, H.SkBlendModeEnum, H.SkBlendMode, H.SkStrokeJoinEnum, H.SkStrokeJoin, H.SkFilterQualityEnum, H.SkFilterQuality, H.SkTileModeEnum, H.SkTileMode, H.SkAlphaTypeEnum, H.SkAlphaType, H.SkColorTypeEnum, H.SkColorType, H.SkAnimatedImage, H.SkImage, H.SkShaderNamespace, H.SkShader, H.SkPaint, H.SkMaskFilter, H.SkColorFilterNamespace, H.SkColorFilter, H.SkImageFilterNamespace, H.SkImageFilter, H._NativeFloat32ArrayType, H.SkFloat32List, H.SkPath, H.SkContourMeasureIter, H.SkContourMeasure, H.SkPictureRecorder, H.SkCanvas, H.SkPicture, H.SkParagraphBuilderNamespace, H.SkParagraphBuilder, H.SkParagraphStyle, H.SkParagraphStyleProperties, H.SkTextStyle, H.SkTextDecorationStyleEnum, H.SkTextDecorationStyle, H.SkTextBaselineEnum, H.SkTextBaseline, H.SkPlaceholderAlignmentEnum, H.SkPlaceholderAlignment, H.SkTextStyleProperties, H.SkStrutStyleProperties, H.SkPlaceholderStyleProperties, H.SkFontStyle, H.SkTextShadow, H.SkFontFeature, H.SkFontMgr, H.SkParagraph, H.SkTextPosition, H.SkTextRange, H.SkVertices, H.SkTonalColors, H.SkFontMgrNamespace, H.TypefaceFontProviderNamespace, H.SkDeletable, H.SkObjectFinalizationRegistry, H.SkData, H.SkImageInfo, H.JsUrlStrategy, J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction, L.JsUrlStrategy0]);
+ _inherit(H.TypefaceFontProvider, H.SkFontMgr);
+ _inherit(H.DomCanvas, H._DomCanvas_EngineCanvas_SaveElementStackTracking);
+ _inheritMany(H.PersistedSurface, [H.PersistedContainerSurface, H.PersistedLeafSurface]);
+ _inheritMany(H.PersistedContainerSurface, [H._PersistedClipRect_PersistedContainerSurface__DomClip, H._PersistedPhysicalShape_PersistedContainerSurface__DomClip, H.PersistedClipPath, H.PersistedOffset, H.PersistedOpacity, H.PersistedScene, H.PersistedTransform]);
+ _inherit(H.PersistedClipRect, H._PersistedClipRect_PersistedContainerSurface__DomClip);
+ _inherit(H.PersistedPhysicalShape, H._PersistedPhysicalShape_PersistedContainerSurface__DomClip);
+ _inheritMany(H.PersistedLeafSurface, [H.PersistedPicture, H.PersistedPlatformView]);
+ _inheritMany(H.PaintCommand, [H.DrawCommand, H.PaintSave, H.PaintRestore, H.PaintTranslate, H.PaintScale, H.PaintRotate, H.PaintTransform]);
+ _inheritMany(H.DrawCommand, [H.PaintClipRect, H.PaintClipRRect, H.PaintClipPath, H.PaintDrawLine, H.PaintDrawRect, H.PaintDrawRRect, H.PaintDrawDRRect, H.PaintDrawCircle, H.PaintDrawPath, H.PaintDrawShadow, H.PaintDrawParagraph]);
+ _inherit(H.GradientLinear, H.EngineGradient);
+ _inheritMany(H.BrowserHistory, [H.MultiEntriesBrowserHistory, H.SingleEntryBrowserHistory]);
+ _inheritMany(H.UrlStrategy, [H.HashUrlStrategy, H.CustomUrlStrategy]);
+ _inherit(H.BrowserPlatformLocation, H.PlatformLocation);
+ _inherit(H.EnginePlatformDispatcher, P.PlatformDispatcher);
+ _inheritMany(H._BaseAdapter, [H.__PointerAdapter__BaseAdapter__WheelEventListenerMixin, H._TouchAdapter, H.__MouseAdapter__BaseAdapter__WheelEventListenerMixin]);
+ _inherit(H._PointerAdapter, H.__PointerAdapter__BaseAdapter__WheelEventListenerMixin);
+ _inherit(H._MouseAdapter, H.__MouseAdapter__BaseAdapter__WheelEventListenerMixin);
+ _inheritMany(H.RoleManager, [H.Checkable, H.ImageRoleManager, H.Incrementable, H.LabelAndValue, H.LiveRegion, H.Scrollable0, H.Tappable, H.TextField0]);
+ _inheritMany(H.SemanticsEnabler, [H.DesktopSemanticsEnabler, H.MobileSemanticsEnabler]);
+ _inheritMany(H.DefaultTextEditingStrategy, [H.SemanticsTextEditingStrategy, H.GloballyPositionedTextEditingStrategy, H.SafariDesktopTextEditingStrategy]);
+ _inherit(P.ListBase, P._ListBase_Object_ListMixin);
+ _inheritMany(P.ListBase, [H._TypedDataBuffer, H.UnmodifiableListBase, W._ChildrenElementList, W._FrozenElementList, W._ChildNodeListLazy, P.FilteredElementList, E.TypedDataBuffer]);
+ _inherit(H._IntBuffer, H._TypedDataBuffer);
+ _inherit(H.Uint8Buffer0, H._IntBuffer);
+ _inherit(H._PolyfillFontManager, H.FontManager);
+ _inheritMany(H.TextMeasurementService, [H.DomTextMeasurementService, H.CanvasTextMeasurementService]);
+ _inheritMany(H.EngineInputType, [H.TextInputType0, H.NumberInputType, H.DecimalInputType, H.PhoneInputType, H.EmailInputType, H.UrlInputType, H.MultilineInputType]);
+ _inheritMany(H.GloballyPositionedTextEditingStrategy, [H.IOSTextEditingStrategy, H.AndroidTextEditingStrategy, H.FirefoxTextEditingStrategy]);
+ _inherit(P.FlutterWindow, P.FlutterView);
+ _inherit(P.SingletonFlutterWindow, P.FlutterWindow);
+ _inherit(P.Window0, P.SingletonFlutterWindow);
+ _inherit(H.EngineFlutterWindow, P.Window0);
+ _inherit(H.EngineSingletonFlutterWindow, H.EngineFlutterWindow);
+ _inherit(J.JSUnmodifiableArray, J.JSArray);
+ _inheritMany(J.JSNumber, [J.JSInt, J.JSDouble]);
+ _inheritMany(P.Iterable, [H._CastIterableBase, H.EfficientLengthIterable, H.MappedIterable, H.WhereIterable, H.ExpandIterable, H.TakeIterable, H.SkipIterable, H.SkipWhileIterable, H.FollowedByIterable, H.WhereTypeIterable, H._ConstantMapKeyIterable, P.IterableBase, H._StringAllMatchesIterable, P.LinkedList, P.DoubleLinkedQueue, P.Runes, T.StringCharacters, R.ObserverList, R.HashedObserverList]);
+ _inheritMany(H._CastIterableBase, [H.CastIterable, H.__CastListBase__CastIterableBase_ListMixin]);
+ _inherit(H._EfficientLengthCastIterable, H.CastIterable);
+ _inherit(H._CastListBase, H.__CastListBase__CastIterableBase_ListMixin);
+ _inherit(H.CastList, H._CastListBase);
+ _inherit(P.MapBase, P.MapMixin);
+ _inheritMany(P.MapBase, [H.CastMap, H.JsLinkedHashMap, P._HashMap, P._JsonMap, W._AttributeMap]);
+ _inheritMany(P.Error, [H.LateError, H.ReachabilityError, P.TypeError, H.JsNoSuchMethodError, H.UnknownJsTypeError, H.RuntimeError, H._Error, P.JsonUnsupportedObjectError, P.AssertionError, P.NullThrownError, P.ArgumentError, P.NoSuchMethodError, P.UnsupportedError, P.UnimplementedError, P.StateError, P.ConcurrentModificationError, P.CyclicInitializationError, U._FlutterError_Error_DiagnosticableTreeMixin]);
+ _inherit(H.CodeUnits, H.UnmodifiableListBase);
+ _inheritMany(H.EfficientLengthIterable, [H.ListIterable, H.EmptyIterable, H.LinkedHashMapKeyIterable, P._HashMapKeyIterable, P._MapBaseValueIterable, P._SplayTreeKeyIterable, P._SplayTreeValueIterable]);
+ _inheritMany(H.ListIterable, [H.SubListIterable, H.MappedListIterable, H.ReversedListIterable, P.ListQueue, P._JsonMapKeyIterable]);
+ _inherit(H.EfficientLengthMappedIterable, H.MappedIterable);
+ _inheritMany(P.Iterator, [H.MappedIterator, H.WhereIterator, H.TakeIterator, H.SkipIterator, H.SkipWhileIterator]);
+ _inherit(H.EfficientLengthTakeIterable, H.TakeIterable);
+ _inherit(H.EfficientLengthSkipIterable, H.SkipIterable);
+ _inherit(P._UnmodifiableMapView_MapView__UnmodifiableMapMixin, P.MapView);
+ _inherit(P.UnmodifiableMapView, P._UnmodifiableMapView_MapView__UnmodifiableMapMixin);
+ _inherit(H.ConstantMapView, P.UnmodifiableMapView);
+ _inheritMany(H.ConstantMap, [H.ConstantStringMap, H.GeneralConstantMap]);
+ _inherit(H.Instantiation1, H.Instantiation);
+ _inherit(H.NullError, P.TypeError);
+ _inheritMany(H.TearOffClosure, [H.StaticClosure, H.BoundClosure]);
+ _inheritMany(P.IterableBase, [H._AllMatchesIterable, P._SyncStarIterable]);
+ _inheritMany(H.NativeTypedData, [H.NativeByteData, H.NativeTypedArray]);
+ _inheritMany(H.NativeTypedArray, [H._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, H._NativeTypedArrayOfInt_NativeTypedArray_ListMixin]);
+ _inherit(H._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, H._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin);
+ _inherit(H.NativeTypedArrayOfDouble, H._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin);
+ _inherit(H._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, H._NativeTypedArrayOfInt_NativeTypedArray_ListMixin);
+ _inherit(H.NativeTypedArrayOfInt, H._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin);
+ _inheritMany(H.NativeTypedArrayOfDouble, [H.NativeFloat32List, H.NativeFloat64List]);
+ _inheritMany(H.NativeTypedArrayOfInt, [H.NativeInt16List, H.NativeInt32List, H.NativeInt8List, H.NativeUint16List, H.NativeUint32List, H.NativeUint8ClampedList, H.NativeUint8List]);
+ _inherit(H._TypeError, H._Error);
+ _inherit(P._ControllerSubscription, P._BufferingStreamSubscription);
+ _inherit(P._BroadcastSubscription, P._ControllerSubscription);
+ _inherit(P._SyncBroadcastStreamController, P._BroadcastStreamController);
+ _inherit(P._AsyncCompleter, P._Completer);
+ _inheritMany(P.Stream, [P.StreamView, P._StreamImpl, W._EventStream]);
+ _inheritMany(P._StreamController, [P._AsyncStreamController, P._SyncStreamController]);
+ _inheritMany(P._StreamImpl, [P._ControllerStream, P._GeneratedStreamImpl]);
+ _inherit(P._StreamControllerAddStreamState, P._AddStreamState);
+ _inheritMany(P._PendingEvents, [P._IterablePendingEvents, P._StreamImplEvents]);
+ _inheritMany(P._DelayedEvent, [P._DelayedData, P._DelayedError]);
+ _inherit(P._RootZone, P._Zone);
+ _inherit(P._IdentityHashMap, P._HashMap);
+ _inheritMany(H.JsLinkedHashMap, [P._LinkedIdentityHashMap, P._LinkedCustomHashMap]);
+ _inherit(P._SetBase, P.__SetBase_Object_SetMixin);
+ _inheritMany(P._SetBase, [P._HashSet, P._LinkedHashSet, P._UnmodifiableSet]);
+ _inherit(P.DoubleLinkedQueueEntry, P._DoubleLink);
+ _inherit(P._DoubleLinkedQueueEntry, P.DoubleLinkedQueueEntry);
+ _inheritMany(P._DoubleLinkedQueueEntry, [P._DoubleLinkedQueueElement, P._DoubleLinkedQueueSentinel]);
+ _inheritMany(P._SplayTreeNode, [P._SplayTreeSetNode, P._SplayTreeMapNode]);
+ _inheritMany(P._SplayTree, [P._SplayTreeMap__SplayTree_MapMixin, P._SplayTreeSet__SplayTree_IterableMixin]);
+ _inherit(P.SplayTreeMap, P._SplayTreeMap__SplayTree_MapMixin);
+ _inheritMany(P._SplayTreeIterator, [P._SplayTreeKeyIterator, P._SplayTreeValueIterator, P._SplayTreeNodeIterator]);
+ _inherit(P._SplayTreeSet__SplayTree_IterableMixin_SetMixin, P._SplayTreeSet__SplayTree_IterableMixin);
+ _inherit(P.SplayTreeSet, P._SplayTreeSet__SplayTree_IterableMixin_SetMixin);
+ _inheritMany(P.Codec, [P.Encoding, P.Base64Codec, P.JsonCodec]);
+ _inheritMany(P.Encoding, [P.AsciiCodec, P.Latin1Codec, P.Utf8Codec]);
+ _inherit(P.Converter, P.StreamTransformerBase);
+ _inheritMany(P.Converter, [P._UnicodeSubsetEncoder, P._UnicodeSubsetDecoder, P.Base64Encoder, P.JsonEncoder, P.JsonDecoder, P.Utf8Encoder, P.Utf8Decoder]);
+ _inheritMany(P._UnicodeSubsetEncoder, [P.AsciiEncoder, P.Latin1Encoder]);
+ _inheritMany(P._UnicodeSubsetDecoder, [P.AsciiDecoder, P.Latin1Decoder]);
+ _inherit(P.ByteConversionSink, P.ChunkedConversionSink);
+ _inherit(P.ByteConversionSinkBase, P.ByteConversionSink);
+ _inherit(P._ByteCallbackSink, P.ByteConversionSinkBase);
+ _inherit(P.JsonCyclicError, P.JsonUnsupportedObjectError);
+ _inherit(P._JsonStringStringifier, P._JsonStringifier);
+ _inheritMany(P.ArgumentError, [P.RangeError, P.IndexError]);
+ _inherit(P._DataUri, P._Uri);
+ _inheritMany(W.EventTarget, [W.Node, W.BroadcastChannel, W.FileReader, W.FileWriter, W.HttpRequestEventTarget, W.MediaKeySession, W.MediaQueryList, W.MediaStream, W.MediaStreamTrack, W.MessagePort, W.MidiPort, W.OffscreenCanvas, W.RtcPeerConnection, W.ScreenOrientation, W.WorkerGlobalScope, W.SourceBuffer, W._SourceBufferList_EventTarget_ListMixin, W.TextTrack, W.TextTrackCue, W._TextTrackList_EventTarget_ListMixin, W.VideoTrackList, W.Window, P.Database, P.AudioTrackList, P.BaseAudioContext]);
+ _inheritMany(W.Node, [W.Element0, W.CharacterData, W.Document, W._Attr]);
+ _inheritMany(W.Element0, [W.HtmlElement, P.SvgElement]);
+ _inheritMany(W.HtmlElement, [W.AnchorElement, W.AreaElement, W.BaseElement, W.BodyElement, W.ButtonElement, W.CanvasElement, W.DivElement, W.EmbedElement, W.FieldSetElement, W.FormElement, W.IFrameElement, W.ImageElement, W.InputElement, W.LabelElement, W.MapElement, W.MediaElement, W.MetaElement, W.ObjectElement, W.OutputElement, W.ParagraphElement, W.ParamElement, W.SelectElement, W.SlotElement, W.SpanElement, W.StyleElement, W.TableElement, W.TableRowElement, W.TableSectionElement, W.TemplateElement, W.TextAreaElement]);
+ _inheritMany(W.Event, [W.ApplicationCacheErrorEvent, W.BlobEvent, W.CloseEvent, W.UIEvent, W.ExtendableEvent, W.MediaQueryListEvent, W.MediaStreamEvent, W.MediaStreamTrackEvent, W.MessageEvent, W.MidiMessageEvent, W.PresentationConnectionCloseEvent, W.ProgressEvent, W.PromiseRejectionEvent, W.RtcDataChannelEvent, W.RtcPeerConnectionIceEvent, W.RtcTrackEvent, W.SpeechSynthesisEvent, W.VRDisplayEvent, P.VersionChangeEvent]);
+ _inheritMany(W.UIEvent, [W.CompositionEvent, W.KeyboardEvent, W.MouseEvent, W.TextEvent, W.TouchEvent]);
+ _inherit(W.CssKeyframesRule, W.CssRule);
+ _inherit(W.CssPerspective, W.CssTransformComponent);
+ _inherit(W.CssStyleDeclaration, W._CssStyleDeclaration_Interceptor_CssStyleDeclarationBase);
+ _inherit(W.CssStyleSheet, W.StyleSheet);
+ _inheritMany(W.CssStyleValue, [W.CssTransformValue, W.CssUnparsedValue]);
+ _inherit(W._DomRectList_Interceptor_ListMixin_ImmutableListMixin, W._DomRectList_Interceptor_ListMixin);
+ _inherit(W.DomRectList, W._DomRectList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W._DomStringList_Interceptor_ListMixin_ImmutableListMixin, W._DomStringList_Interceptor_ListMixin);
+ _inherit(W.DomStringList, W._DomStringList_Interceptor_ListMixin_ImmutableListMixin);
+ _inheritMany(W.ExtendableEvent, [W.ExtendableMessageEvent, W.PushEvent]);
+ _inheritMany(W.Credential, [W.FederatedCredential, W.PasswordCredential]);
+ _inherit(W.File, W.Blob);
+ _inherit(W._FileList_Interceptor_ListMixin_ImmutableListMixin, W._FileList_Interceptor_ListMixin);
+ _inherit(W.FileList, W._FileList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W._HtmlCollection_Interceptor_ListMixin_ImmutableListMixin, W._HtmlCollection_Interceptor_ListMixin);
+ _inherit(W.HtmlCollection, W._HtmlCollection_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W.HttpRequest, W.HttpRequestEventTarget);
+ _inherit(W.MidiInputMap, W._MidiInputMap_Interceptor_MapMixin);
+ _inherit(W.MidiOutputMap, W._MidiOutputMap_Interceptor_MapMixin);
+ _inherit(W._MimeTypeArray_Interceptor_ListMixin_ImmutableListMixin, W._MimeTypeArray_Interceptor_ListMixin);
+ _inherit(W.MimeTypeArray, W._MimeTypeArray_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W.Navigator0, W.NavigatorConcurrentHardware);
+ _inherit(W._NodeList_Interceptor_ListMixin_ImmutableListMixin, W._NodeList_Interceptor_ListMixin);
+ _inherit(W.NodeList, W._NodeList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W._PluginArray_Interceptor_ListMixin_ImmutableListMixin, W._PluginArray_Interceptor_ListMixin);
+ _inherit(W.PluginArray, W._PluginArray_Interceptor_ListMixin_ImmutableListMixin);
+ _inheritMany(W.MouseEvent, [W.PointerEvent, W.WheelEvent]);
+ _inherit(W.RtcStatsReport, W._RtcStatsReport_Interceptor_MapMixin);
+ _inherit(W.SharedWorkerGlobalScope, W.WorkerGlobalScope);
+ _inherit(W._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin, W._SourceBufferList_EventTarget_ListMixin);
+ _inherit(W.SourceBufferList, W._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin);
+ _inherit(W._SpeechGrammarList_Interceptor_ListMixin_ImmutableListMixin, W._SpeechGrammarList_Interceptor_ListMixin);
+ _inherit(W.SpeechGrammarList, W._SpeechGrammarList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W.Storage, W._Storage_Interceptor_MapMixin);
+ _inherit(W._TextTrackCueList_Interceptor_ListMixin_ImmutableListMixin, W._TextTrackCueList_Interceptor_ListMixin);
+ _inherit(W.TextTrackCueList, W._TextTrackCueList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W._TextTrackList_EventTarget_ListMixin_ImmutableListMixin, W._TextTrackList_EventTarget_ListMixin);
+ _inherit(W.TextTrackList, W._TextTrackList_EventTarget_ListMixin_ImmutableListMixin);
+ _inherit(W._TouchList_Interceptor_ListMixin_ImmutableListMixin, W._TouchList_Interceptor_ListMixin);
+ _inherit(W.TouchList, W._TouchList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W.VideoElement, W.MediaElement);
+ _inherit(W.__CssRuleList_Interceptor_ListMixin_ImmutableListMixin, W.__CssRuleList_Interceptor_ListMixin);
+ _inherit(W._CssRuleList, W.__CssRuleList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W._DomRect, W.DomRectReadOnly);
+ _inherit(W.__GamepadList_Interceptor_ListMixin_ImmutableListMixin, W.__GamepadList_Interceptor_ListMixin);
+ _inherit(W._GamepadList, W.__GamepadList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W.__NamedNodeMap_Interceptor_ListMixin_ImmutableListMixin, W.__NamedNodeMap_Interceptor_ListMixin);
+ _inherit(W._NamedNodeMap, W.__NamedNodeMap_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W.__SpeechRecognitionResultList_Interceptor_ListMixin_ImmutableListMixin, W.__SpeechRecognitionResultList_Interceptor_ListMixin);
+ _inherit(W._SpeechRecognitionResultList, W.__SpeechRecognitionResultList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W.__StyleSheetList_Interceptor_ListMixin_ImmutableListMixin, W.__StyleSheetList_Interceptor_ListMixin);
+ _inherit(W._StyleSheetList, W.__StyleSheetList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(W._ElementAttributeMap, W._AttributeMap);
+ _inherit(W._ElementEventStreamImpl, W._EventStream);
+ _inherit(W._EventStreamSubscription, P.StreamSubscription);
+ _inherit(W._TemplatingNodeValidator, W._SimpleNodeValidator);
+ _inherit(P._StructuredCloneDart2Js, P._StructuredClone);
+ _inherit(P._AcceptStructuredCloneDart2Js, P._AcceptStructuredClone);
+ _inheritMany(P.JsObject, [P.JsFunction, P._JsArray_JsObject_ListMixin]);
+ _inherit(P.JsArray, P._JsArray_JsObject_ListMixin);
+ _inherit(P._LengthList_Interceptor_ListMixin_ImmutableListMixin, P._LengthList_Interceptor_ListMixin);
+ _inherit(P.LengthList, P._LengthList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(P._NumberList_Interceptor_ListMixin_ImmutableListMixin, P._NumberList_Interceptor_ListMixin);
+ _inherit(P.NumberList, P._NumberList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(P.ScriptElement0, P.SvgElement);
+ _inherit(P._StringList_Interceptor_ListMixin_ImmutableListMixin, P._StringList_Interceptor_ListMixin);
+ _inherit(P.StringList, P._StringList_Interceptor_ListMixin_ImmutableListMixin);
+ _inherit(P._TransformList_Interceptor_ListMixin_ImmutableListMixin, P._TransformList_Interceptor_ListMixin);
+ _inherit(P.TransformList, P._TransformList_Interceptor_ListMixin_ImmutableListMixin);
+ _inheritMany(P.OffsetBase, [P.Offset, P.Size]);
+ _inherit(P.AudioParamMap, P._AudioParamMap_Interceptor_MapMixin);
+ _inherit(P.OfflineAudioContext, P.BaseAudioContext);
+ _inherit(P._SqlResultSetRowList_Interceptor_ListMixin_ImmutableListMixin, P._SqlResultSetRowList_Interceptor_ListMixin);
+ _inherit(P.SqlResultSetRowList, P._SqlResultSetRowList_Interceptor_ListMixin_ImmutableListMixin);
+ _inheritMany(B.Listenable, [X.Animation0, V.CustomPainter, B._MergingListenable, N._SystemFontsNotifier, E.CustomClipper]);
+ _inheritMany(X.Animation0, [G._AnimationController_Animation_AnimationEagerListenerMixin, S._AlwaysCompleteAnimation, S._AlwaysDismissedAnimation, S._ProxyAnimation_Animation_AnimationLazyListenerMixin, S._ReverseAnimation_Animation_AnimationLazyListenerMixin, S._CurvedAnimation_Animation_AnimationWithParentMixin, S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin, S._CompoundAnimation_Animation_AnimationLazyListenerMixin, R.__AnimatedEvaluation_Animation_AnimationWithParentMixin]);
+ _inherit(G._AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin, G._AnimationController_Animation_AnimationEagerListenerMixin);
+ _inherit(G._AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin, G._AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin);
+ _inherit(G.AnimationController, G._AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin);
+ _inheritMany(T.Simulation, [G._InterpolationSimulation, D.FrictionSimulation, M.SpringSimulation, Y.BouncingScrollSimulation, Y.ClampingScrollSimulation]);
+ _inherit(S._ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin, S._ProxyAnimation_Animation_AnimationLazyListenerMixin);
+ _inherit(S._ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin, S._ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin);
+ _inherit(S.ProxyAnimation, S._ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin);
+ _inherit(S._ReverseAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalStatusListenersMixin, S._ReverseAnimation_Animation_AnimationLazyListenerMixin);
+ _inherit(S.ReverseAnimation, S._ReverseAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalStatusListenersMixin);
+ _inherit(S.CurvedAnimation, S._CurvedAnimation_Animation_AnimationWithParentMixin);
+ _inherit(S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin, S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin);
+ _inherit(S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin, S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin);
+ _inherit(S.TrainHoppingAnimation, S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin);
+ _inherit(S._CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin, S._CompoundAnimation_Animation_AnimationLazyListenerMixin);
+ _inherit(S._CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin, S._CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin);
+ _inherit(S.CompoundAnimation, S._CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin);
+ _inheritMany(S.CompoundAnimation, [S.AnimationMin, A._AnimationSwap]);
+ _inherit(Z.Curve, Z.ParametricCurve);
+ _inheritMany(Z.Curve, [Z._Linear, Z.Interval, Z.Threshold, Z.Cubic, Z.FlippedCurve, Z._DecelerateCurve]);
+ _inherit(R._AnimatedEvaluation, R.__AnimatedEvaluation_Animation_AnimationWithParentMixin);
+ _inheritMany(R.Animatable, [R._ChainedEvaluation, R.Tween, R.CurveTween]);
+ _inheritMany(R.Tween, [R.ReverseTween, R.ColorTween, R.RectTween, R.IntTween, D.MaterialPointArcTween, L._InputBorderTween, M.ShapeBorderTween, K.ThemeDataTween, G.DecorationTween, G.EdgeInsetsGeometryTween, G.BorderRadiusTween, G.TextStyleTween]);
+ _inheritMany(P.Color, [E._CupertinoDynamicColor_Color_Diagnosticable, E.ColorSwatch]);
+ _inherit(E.CupertinoDynamicColor, E._CupertinoDynamicColor_Color_Diagnosticable);
+ _inherit(T.IconThemeData, T._IconThemeData_Object_Diagnosticable);
+ _inherit(T._CupertinoIconThemeData_IconThemeData_Diagnosticable, T.IconThemeData);
+ _inherit(T.CupertinoIconThemeData, T._CupertinoIconThemeData_IconThemeData_Diagnosticable);
+ _inheritMany(L.LocalizationsDelegate, [L._CupertinoLocalizationsDelegate, U._MaterialLocalizationsDelegate, L._WidgetsLocalizationsDelegate]);
+ _inherit(Y.DiagnosticableTree, Y._DiagnosticableTree_Object_Diagnosticable);
+ _inheritMany(Y.DiagnosticableTree, [N.Widget, N.Element, G.InlineSpan, A.SemanticsProperties]);
+ _inheritMany(N.Widget, [N.StatelessWidget, N.StatefulWidget, N.ProxyWidget, N.RenderObjectWidget, N._NullWidget]);
+ _inheritMany(N.StatelessWidget, [D.CupertinoPageTransition, K.CupertinoTheme, R.BackButtonIcon, R.BackButton, K.ButtonBar, E.Dialog, E.AlertDialog, Z.Divider, B.MaterialButton, E.FloatingActionButton, B.IconButton, R.InkResponse, Q.ListTile, M._ShapeBorderPaint, K._FadeUpwardsPageTransition, M._BodyBuilder, K.Theme, S._TooltipOverlay, L._NullWidget0, T.PositionedDirectional, T.KeyedSubtree, T.Builder, M.Container, D.GestureDetector, L.Icon, M._CaptureAll, X.ModalBarrier, X._ModalBarrierGestureDetector, E.NavigationToolbar, U.NotificationListener, V.OrientationBuilder, S.PageStorage, G.HtmlElementView, Q.SafeArea, B.ScrollView, L._NullWidget1, L.Text, U.TickerMode, U.Title, L.Visibility]);
+ _inheritMany(N.StatefulWidget, [D._CupertinoBackGestureDetector, S.MaterialApp, E.AppBar, Z.RawMaterialButton, R._InkResponseStateWidget, L._BorderContainer, L._HelperError, L.InputDecorator, M.Material, G.ImplicitlyAnimatedWidget, M.ScaffoldMessenger, M._FloatingActionButtonTransition, M.Scaffold, Z.TextField, S.Tooltip, U.Actions, S.WidgetsApp, S._MediaQueryFromWindow, L.AutomaticKeepAlive, T.MouseRegion, D.EditableText, L.Focus, U.FocusTraversalGroup, D.RawGestureDetector, T.Hero, L.Localizations, K.AnimatedWidget, K.Navigator, X._OverlayEntryWidget, X.Overlay, L.GlowingOverscrollIndicator, G.PlatformViewLink, K.RestorationScope, K.RootRestorationScope, T._ModalScope, F.Scrollable, X.Shortcuts, F._TextSelectionHandleOverlay, F.TextSelectionGestureDetector, R.RTCVideoView, F.MyApp, Q.CallSample, T.DataChannelSample]);
+ _inherit(N.State, N._State_Object_Diagnosticable);
+ _inheritMany(N.State, [D._CupertinoBackGestureDetectorState, S._MaterialAppState, E._AppBarState, Z._RawMaterialButtonState, R.__InkResponseState_State_AutomaticKeepAliveClientMixin, L.__BorderContainerState_State_TickerProviderStateMixin, L.__HelperErrorState_State_SingleTickerProviderStateMixin, L.__InputDecoratorState_State_TickerProviderStateMixin, M.__MaterialState_State_TickerProviderStateMixin, G._ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin, M._ScaffoldMessengerState_State_TickerProviderStateMixin, M.__FloatingActionButtonTransitionState_State_TickerProviderStateMixin, M._ScaffoldState_State_TickerProviderStateMixin, Z.__TextFieldState_State_RestorationMixin, S.__TooltipState_State_SingleTickerProviderStateMixin, U._ActionsState, S.__WidgetsAppState_State_WidgetsBindingObserver, S.__MediaQueryFromWindowsState_State_WidgetsBindingObserver, L._AutomaticKeepAliveState, T._MouseRegionState, D._EditableTextState_State_AutomaticKeepAliveClientMixin, L._FocusState, U._FocusTraversalGroupState, D.RawGestureDetectorState, T._HeroState, L._LocalizationsState, K._NavigatorState_State_TickerProviderStateMixin, X._OverlayEntryWidgetState, X._OverlayState_State_TickerProviderStateMixin, L.__GlowingOverscrollIndicatorState_State_TickerProviderStateMixin, G._PlatformViewLinkState, K.__RestorationScopeState_State_RestorationMixin, K._RootRestorationScopeState, T._ModalScopeState, F._ScrollableState_State_TickerProviderStateMixin, X._ShortcutsState, F.__TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin, F._TextSelectionGestureDetectorState, K._AnimatedState, R._RTCVideoViewState, F._MyAppState, Q._CallSampleState, T._DataChannelSampleState]);
+ _inherit(Z.Decoration, Z._Decoration_Object_Diagnosticable);
+ _inheritMany(Z.Decoration, [D._CupertinoEdgeShadowDecoration, S.BoxDecoration]);
+ _inheritMany(Z.BoxPainter, [D._CupertinoEdgeShadowPainter, S._BoxDecorationPainter]);
+ _inheritMany(V.CustomPainter, [F._TextSelectionHandlePainter0, L._InputBorderPainter, M._ShapeBorderPainter, F._TextSelectionHandlePainter, L._GlowingOverscrollIndicatorPainter]);
+ _inheritMany(F.TextSelectionControls, [F._CupertinoTextSelectionControls, F._MaterialTextSelectionControls]);
+ _inherit(R.CupertinoTextThemeData, R._CupertinoTextThemeData_Object_Diagnosticable);
+ _inheritMany(N.ProxyWidget, [N.InheritedWidget, N.ParentDataWidget]);
+ _inheritMany(N.InheritedWidget, [K._InheritedCupertinoTheme, M.InheritedTheme, Z.FlexibleSpaceBarSettings, R._ParentInkResponseProvider, M._ScaffoldMessengerScope, M._ScaffoldScope, U._ActionsMarker, T.Directionality, S.InheritedNotifier, U._FocusTraversalGroupMarker, L._LocalizationsScope, F.MediaQuery, K.HeroControllerScope, E.PrimaryScrollController, K.UnmanagedRestorationScope, T._ModalScopeStatus, K.ScrollConfiguration, F._ScrollableScope, U._EffectiveTickerMode]);
+ _inherit(K._CupertinoThemeData_NoDefaultCupertinoThemeData_Diagnosticable, K.NoDefaultCupertinoThemeData);
+ _inherit(K.CupertinoThemeData, K._CupertinoThemeData_NoDefaultCupertinoThemeData_Diagnosticable);
+ _inherit(K._DefaultCupertinoTextThemeData, R.CupertinoTextThemeData);
+ _inheritMany(Y.DiagnosticsNode, [Y.DiagnosticsProperty, Y.DiagnosticsBlock, Y.DiagnosticableNode]);
+ _inheritMany(Y.DiagnosticsProperty, [U._ErrorDiagnostic, U.ErrorSpacer, K.DiagnosticsDebugCreator]);
+ _inheritMany(U._ErrorDiagnostic, [U.ErrorDescription, U.ErrorSummary, U.ErrorHint]);
+ _inherit(U.FlutterErrorDetails, U._FlutterErrorDetails_Object_Diagnosticable);
+ _inherit(U.FlutterError, U._FlutterError_Error_DiagnosticableTreeMixin);
+ _inherit(U.DiagnosticsStackTrace, Y.DiagnosticsBlock);
+ _inheritMany(Y.DiagnosticableNode, [U._FlutterErrorDetailsNode, Y.DiagnosticableTreeNode, A._SemanticsDiagnosticableNode]);
+ _inherit(B._ListenerEntry, P.LinkedListEntry);
+ _inheritMany(B.ChangeNotifier, [B.ValueNotifier, L._InputBorderGap, M._ScaffoldGeometryNotifier, Y.BaseMouseTracker, N.ViewportOffset, A.SemanticsOwner, K.RestorationManager, L.KeepAliveHandle, K.RestorableProperty, X.OverlayEntry, L._GlowController, F.ScrollController, X._ShortcutManager_ChangeNotifier_Diagnosticable]);
+ _inheritMany(D.Key, [D.LocalKey, N.GlobalKey]);
+ _inheritMany(D.LocalKey, [D.ValueKey, N.UniqueKey]);
+ _inherit(F.LicenseEntryWithLineBreaks, F.LicenseEntry);
+ _inherit(N.FlutterErrorDetailsForPointerEventDispatcher, U.FlutterErrorDetails);
+ _inherit(F.PointerEvent0, F._PointerEvent_Object_Diagnosticable);
+ _inherit(F.__TransformedPointerEvent__AbstractPointerEvent_Diagnosticable, F._AbstractPointerEvent);
+ _inherit(F.__TransformedPointerEvent__AbstractPointerEvent_Diagnosticable__PointerEventDescription, F.__TransformedPointerEvent__AbstractPointerEvent_Diagnosticable);
+ _inherit(F._TransformedPointerEvent, F.__TransformedPointerEvent__AbstractPointerEvent_Diagnosticable__PointerEventDescription);
+ _inheritMany(F.PointerEvent0, [F._PointerAddedEvent_PointerEvent__PointerEventDescription, F._PointerRemovedEvent_PointerEvent__PointerEventDescription, F._PointerHoverEvent_PointerEvent__PointerEventDescription, F._PointerEnterEvent_PointerEvent__PointerEventDescription, F._PointerExitEvent_PointerEvent__PointerEventDescription, F._PointerDownEvent_PointerEvent__PointerEventDescription, F._PointerMoveEvent_PointerEvent__PointerEventDescription, F._PointerUpEvent_PointerEvent__PointerEventDescription, F.PointerSignalEvent, F._PointerCancelEvent_PointerEvent__PointerEventDescription]);
+ _inherit(F._PointerAddedEvent_PointerEvent__PointerEventDescription__CopyPointerAddedEvent, F._PointerAddedEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerAddedEvent, F._PointerAddedEvent_PointerEvent__PointerEventDescription__CopyPointerAddedEvent);
+ _inheritMany(F._TransformedPointerEvent, [F.__TransformedPointerAddedEvent__TransformedPointerEvent__CopyPointerAddedEvent, F.__TransformedPointerRemovedEvent__TransformedPointerEvent__CopyPointerRemovedEvent, F.__TransformedPointerHoverEvent__TransformedPointerEvent__CopyPointerHoverEvent, F.__TransformedPointerEnterEvent__TransformedPointerEvent__CopyPointerEnterEvent, F.__TransformedPointerExitEvent__TransformedPointerEvent__CopyPointerExitEvent, F.__TransformedPointerDownEvent__TransformedPointerEvent__CopyPointerDownEvent, F.__TransformedPointerMoveEvent__TransformedPointerEvent__CopyPointerMoveEvent, F.__TransformedPointerUpEvent__TransformedPointerEvent__CopyPointerUpEvent, F.__TransformedPointerScrollEvent__TransformedPointerEvent__CopyPointerScrollEvent, F.__TransformedPointerCancelEvent__TransformedPointerEvent__CopyPointerCancelEvent]);
+ _inherit(F._TransformedPointerAddedEvent, F.__TransformedPointerAddedEvent__TransformedPointerEvent__CopyPointerAddedEvent);
+ _inherit(F._PointerRemovedEvent_PointerEvent__PointerEventDescription__CopyPointerRemovedEvent, F._PointerRemovedEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerRemovedEvent, F._PointerRemovedEvent_PointerEvent__PointerEventDescription__CopyPointerRemovedEvent);
+ _inherit(F._TransformedPointerRemovedEvent, F.__TransformedPointerRemovedEvent__TransformedPointerEvent__CopyPointerRemovedEvent);
+ _inherit(F._PointerHoverEvent_PointerEvent__PointerEventDescription__CopyPointerHoverEvent, F._PointerHoverEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerHoverEvent, F._PointerHoverEvent_PointerEvent__PointerEventDescription__CopyPointerHoverEvent);
+ _inherit(F._TransformedPointerHoverEvent, F.__TransformedPointerHoverEvent__TransformedPointerEvent__CopyPointerHoverEvent);
+ _inherit(F._PointerEnterEvent_PointerEvent__PointerEventDescription__CopyPointerEnterEvent, F._PointerEnterEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerEnterEvent, F._PointerEnterEvent_PointerEvent__PointerEventDescription__CopyPointerEnterEvent);
+ _inherit(F._TransformedPointerEnterEvent, F.__TransformedPointerEnterEvent__TransformedPointerEvent__CopyPointerEnterEvent);
+ _inherit(F._PointerExitEvent_PointerEvent__PointerEventDescription__CopyPointerExitEvent, F._PointerExitEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerExitEvent, F._PointerExitEvent_PointerEvent__PointerEventDescription__CopyPointerExitEvent);
+ _inherit(F._TransformedPointerExitEvent, F.__TransformedPointerExitEvent__TransformedPointerEvent__CopyPointerExitEvent);
+ _inherit(F._PointerDownEvent_PointerEvent__PointerEventDescription__CopyPointerDownEvent, F._PointerDownEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerDownEvent, F._PointerDownEvent_PointerEvent__PointerEventDescription__CopyPointerDownEvent);
+ _inherit(F._TransformedPointerDownEvent, F.__TransformedPointerDownEvent__TransformedPointerEvent__CopyPointerDownEvent);
+ _inherit(F._PointerMoveEvent_PointerEvent__PointerEventDescription__CopyPointerMoveEvent, F._PointerMoveEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerMoveEvent, F._PointerMoveEvent_PointerEvent__PointerEventDescription__CopyPointerMoveEvent);
+ _inherit(F._TransformedPointerMoveEvent, F.__TransformedPointerMoveEvent__TransformedPointerEvent__CopyPointerMoveEvent);
+ _inherit(F._PointerUpEvent_PointerEvent__PointerEventDescription__CopyPointerUpEvent, F._PointerUpEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerUpEvent, F._PointerUpEvent_PointerEvent__PointerEventDescription__CopyPointerUpEvent);
+ _inherit(F._TransformedPointerUpEvent, F.__TransformedPointerUpEvent__TransformedPointerEvent__CopyPointerUpEvent);
+ _inherit(F._PointerScrollEvent_PointerSignalEvent__PointerEventDescription, F.PointerSignalEvent);
+ _inherit(F._PointerScrollEvent_PointerSignalEvent__PointerEventDescription__CopyPointerScrollEvent, F._PointerScrollEvent_PointerSignalEvent__PointerEventDescription);
+ _inherit(F.PointerScrollEvent, F._PointerScrollEvent_PointerSignalEvent__PointerEventDescription__CopyPointerScrollEvent);
+ _inherit(F._TransformedPointerScrollEvent, F.__TransformedPointerScrollEvent__TransformedPointerEvent__CopyPointerScrollEvent);
+ _inherit(F._PointerCancelEvent_PointerEvent__PointerEventDescription__CopyPointerCancelEvent, F._PointerCancelEvent_PointerEvent__PointerEventDescription);
+ _inherit(F.PointerCancelEvent, F._PointerCancelEvent_PointerEvent__PointerEventDescription__CopyPointerCancelEvent);
+ _inherit(F._TransformedPointerCancelEvent, F.__TransformedPointerCancelEvent__TransformedPointerEvent__CopyPointerCancelEvent);
+ _inheritMany(D.GestureArenaMember, [S._GestureRecognizer_GestureArenaMember_DiagnosticableTreeMixin, V._CombiningGestureArenaMember]);
+ _inherit(S.GestureRecognizer, S._GestureRecognizer_GestureArenaMember_DiagnosticableTreeMixin);
+ _inheritMany(S.GestureRecognizer, [S.OneSequenceGestureRecognizer, F.DoubleTapGestureRecognizer]);
+ _inheritMany(S.OneSequenceGestureRecognizer, [K.ForcePressGestureRecognizer, S.PrimaryPointerGestureRecognizer, O.DragGestureRecognizer, G._PlatformViewGestureRecognizer]);
+ _inheritMany(O._TransformPart, [O._MatrixTransformPart, O._OffsetTransformPart]);
+ _inheritMany(S.PrimaryPointerGestureRecognizer, [T.LongPressGestureRecognizer, N.BaseTapGestureRecognizer]);
+ _inheritMany(O.DragGestureRecognizer, [O.VerticalDragGestureRecognizer, O.HorizontalDragGestureRecognizer, O.PanGestureRecognizer]);
+ _inheritMany(N.BaseTapGestureRecognizer, [N.TapGestureRecognizer, X._AnyTapGestureRecognizer]);
+ _inherit(R.IOSScrollViewFlingVelocityTracker, R.VelocityTracker);
+ _inherit(S._MaterialScrollBehavior, K.ScrollBehavior);
+ _inheritMany(T.SingleChildLayoutDelegate, [E._ToolbarContainerLayout, S._TooltipPositionDelegate]);
+ _inheritMany(N.RenderObjectWidget, [N.SingleChildRenderObjectWidget, N.MultiChildRenderObjectWidget, L._Decorator, Q._ListTile, N.RenderObjectToWidgetAdapter, N.LeafRenderObjectWidget, A.ConstrainedLayoutBuilder, G.SliverWithKeepAliveWidget]);
+ _inheritMany(N.SingleChildRenderObjectWidget, [E._AppBarTitleBox, Z._InputPadding, M._InkFeatures, X.AnnotatedRegion, T.Opacity, T.CustomPaint, T.ClipRect, T.ClipPath, T.PhysicalModel, T.PhysicalShape, T.Transform, T.CompositedTransformTarget, T.CompositedTransformFollower, T.FractionalTranslation, T.Padding, T.Align, T.CustomSingleChildLayout, T.SizedBox, T.ConstrainedBox, T.LimitedBox, T.Offstage, T.IntrinsicWidth, T.SliverPadding, T.Listener, T._RawMouseRegion, T.RepaintBoundary, T.IgnorePointer, T.AbsorbPointer, T.Semantics, T.MergeSemantics, T.BlockSemantics, T.ExcludeSemantics, T.IndexedSemantics, T.ColoredBox, M.DecoratedBox, D._GestureSemantics, F._ScrollSemantics, K.FadeTransition]);
+ _inheritMany(B.AbstractNode, [K._RenderObject_AbstractNode_DiagnosticableTreeMixin, T._Layer_AbstractNode_DiagnosticableTreeMixin, A._SemanticsNode_AbstractNode_DiagnosticableTreeMixin]);
+ _inherit(K.RenderObject, K._RenderObject_AbstractNode_DiagnosticableTreeMixin);
+ _inheritMany(K.RenderObject, [S.RenderBox, G.RenderSliver, A._RenderView_RenderObject_RenderObjectWithChildMixin]);
+ _inheritMany(S.RenderBox, [T._RenderShiftedBox_RenderBox_RenderObjectWithChildMixin, F._RenderFlex_RenderBox_ContainerRenderObjectMixin, L._RenderDecoration, Q._RenderListTile, E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin, B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin, D._RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin, V.RenderErrorBox, R._RenderListBody_RenderBox_ContainerRenderObjectMixin, Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin, L.RenderPerformanceOverlay, G._PlatformViewRenderBox_RenderBox__PlatformViewGestureMixin, K._RenderStack_RenderBox_ContainerRenderObjectMixin, Q._RenderViewportBase_RenderBox_ContainerRenderObjectMixin, A.__RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin, X.__RenderTheatre_RenderBox_ContainerRenderObjectMixin]);
+ _inherit(T.RenderShiftedBox, T._RenderShiftedBox_RenderBox_RenderObjectWithChildMixin);
+ _inheritMany(T.RenderShiftedBox, [T.RenderAligningShiftedBox, Z._RenderInputPadding, T.RenderPadding, T.RenderCustomSingleChildLayoutBox]);
+ _inheritMany(T.RenderAligningShiftedBox, [E._RenderAppBarTitleBox, T.RenderPositionedBox]);
+ _inherit(V.AppBarTheme, V._AppBarTheme_Object_Diagnosticable);
+ _inherit(D.MaterialRectArcTween, R.RectTween);
+ _inherit(Q.MaterialBannerThemeData, Q._MaterialBannerThemeData_Object_Diagnosticable);
+ _inherit(D.BottomAppBarTheme, D._BottomAppBarTheme_Object_Diagnosticable);
+ _inherit(M.BottomNavigationBarThemeData, M._BottomNavigationBarThemeData_Object_Diagnosticable);
+ _inherit(X.BottomSheetThemeData, X._BottomSheetThemeData_Object_Diagnosticable);
+ _inheritMany(N.MultiChildRenderObjectWidget, [T.Flex, T.CustomMultiChildLayout, T.ListBody, T.Stack, T.RichText, X._Theatre, Q.ShrinkWrappingViewport]);
+ _inheritMany(T.Flex, [K._ButtonBarRow, T.Row, T.Column]);
+ _inherit(F._RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, F._RenderFlex_RenderBox_ContainerRenderObjectMixin);
+ _inherit(F._RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_DebugOverflowIndicatorMixin, F._RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin);
+ _inherit(F.RenderFlex, F._RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_DebugOverflowIndicatorMixin);
+ _inherit(K._RenderButtonBarRow, F.RenderFlex);
+ _inherit(M.ButtonBarThemeData, M._ButtonBarThemeData_Object_Diagnosticable);
+ _inherit(A.ButtonStyle, A._ButtonStyle_Object_Diagnosticable);
+ _inheritMany(M.InheritedTheme, [M.ButtonTheme, Q.ListTileTheme, K._InheritedTheme, Y.IconTheme, L.DefaultTextStyle]);
+ _inherit(M.ButtonThemeData, M._ButtonThemeData_Object_Diagnosticable);
+ _inherit(A.CardTheme, A._CardTheme_Object_Diagnosticable);
+ _inherit(K.ChipThemeData, K._ChipThemeData_Object_Diagnosticable);
+ _inherit(A.ColorScheme, A._ColorScheme_Object_Diagnosticable);
+ _inherit(E.MaterialColor, E.ColorSwatch);
+ _inherit(Z.DataTableThemeData, Z._DataTableThemeData_Object_Diagnosticable);
+ _inherit(Y.DialogTheme, Y._DialogTheme_Object_Diagnosticable);
+ _inherit(G.DividerThemeData, G._DividerThemeData_Object_Diagnosticable);
+ _inherit(T.ElevatedButtonThemeData, T._ElevatedButtonThemeData_Object_Diagnosticable);
+ _inherit(N.FlatButton, B.MaterialButton);
+ _inheritMany(A.FloatingActionButtonLocation, [A.StandardFabLocation, M._TransitionSnapshotFabLocation]);
+ _inheritMany(A.StandardFabLocation, [A.__CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX, A.__EndFloatFabLocation_StandardFabLocation_FabEndOffsetX]);
+ _inherit(A.__CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX_FabFloatOffsetY, A.__CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX);
+ _inherit(A._CenterFloatFabLocation, A.__CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX_FabFloatOffsetY);
+ _inherit(A.__EndFloatFabLocation_StandardFabLocation_FabEndOffsetX_FabFloatOffsetY, A.__EndFloatFabLocation_StandardFabLocation_FabEndOffsetX);
+ _inherit(A._EndFloatFabLocation, A.__EndFloatFabLocation_StandardFabLocation_FabEndOffsetX_FabFloatOffsetY);
+ _inherit(A._ScalingFabMotionAnimator, A.FloatingActionButtonAnimator);
+ _inherit(S.FloatingActionButtonThemeData, S._FloatingActionButtonThemeData_Object_Diagnosticable);
+ _inherit(R.InteractiveInkFeature, M.InkFeature);
+ _inheritMany(R.InteractiveInkFeature, [Y.InkHighlight, U.InkSplash]);
+ _inherit(U._InkSplashFactory, R.InteractiveInkFeatureFactory);
+ _inherit(R._InkResponseState, R.__InkResponseState_State_AutomaticKeepAliveClientMixin);
+ _inherit(R.InkWell, R.InkResponse);
+ _inheritMany(Y.ShapeBorder, [F.InputBorder, Y.OutlinedBorder, Y._CompoundBorder, F.BoxBorder]);
+ _inherit(F.UnderlineInputBorder, F.InputBorder);
+ _inherit(L._BorderContainerState, L.__BorderContainerState_State_TickerProviderStateMixin);
+ _inherit(L._HelperErrorState, L.__HelperErrorState_State_SingleTickerProviderStateMixin);
+ _inheritMany(N.Element, [N.RenderObjectElement, N.ComponentElement, N._NullElement]);
+ _inheritMany(N.RenderObjectElement, [L._DecorationElement, Q._ListTileElement, N.SingleChildRenderObjectElement, N.RootRenderObjectElement, N.LeafRenderObjectElement, N.MultiChildRenderObjectElement, A._LayoutBuilderElement, G.SliverMultiBoxAdaptorElement]);
+ _inherit(L._InputDecoratorState, L.__InputDecoratorState_State_TickerProviderStateMixin);
+ _inherit(L.InputDecorationTheme, L._InputDecorationTheme_Object_Diagnosticable);
+ _inherit(M._MaterialState, M.__MaterialState_State_TickerProviderStateMixin);
+ _inherit(E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin, E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin);
+ _inherit(E.RenderProxyBox, E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin);
+ _inheritMany(E.RenderProxyBox, [M._RenderInkFeatures, V.RenderCustomPaint, E.RenderProxyBoxWithHitTestBehavior, E.RenderConstrainedBox, E.RenderLimitedBox, E.RenderIntrinsicWidth, E.RenderOpacity, E._RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin, E._RenderCustomClip, E.RenderDecoratedBox, E.RenderTransform, E.RenderFractionalTranslation, E.RenderMouseRegion, E.RenderRepaintBoundary, E.RenderIgnorePointer, E.RenderOffstage, E.RenderAbsorbPointer, E.RenderSemanticsGestureHandler, E.RenderSemanticsAnnotations, E.RenderBlockSemantics, E.RenderMergeSemantics, E.RenderExcludeSemantics, E.RenderIndexedSemantics, E.RenderLeaderLayer, E.RenderFollowerLayer, E.RenderAnnotatedRegion, F._RenderScrollSemantics]);
+ _inheritMany(G.ImplicitlyAnimatedWidget, [M._MaterialInterior, K.AnimatedTheme, G.AnimatedPadding, G.AnimatedOpacity, G.AnimatedDefaultTextStyle, G.AnimatedPhysicalModel]);
+ _inherit(G.ImplicitlyAnimatedWidgetState, G._ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin);
+ _inheritMany(G.ImplicitlyAnimatedWidgetState, [G.AnimatedWidgetBaseState, G._AnimatedOpacityState]);
+ _inheritMany(G.AnimatedWidgetBaseState, [M._MaterialInteriorState, K._AnimatedThemeState, G._AnimatedPaddingState, G._AnimatedDefaultTextStyleState, G._AnimatedPhysicalModelState]);
+ _inherit(A.MouseCursor0, A._MouseCursor_Object_Diagnosticable);
+ _inheritMany(A.MouseCursor0, [V.MaterialStateMouseCursor, A._DeferringMouseCursor, A._NoopMouseCursor, A.SystemMouseCursor]);
+ _inherit(V._EnabledAndDisabledMouseCursor, V.MaterialStateMouseCursor);
+ _inherit(E.NavigationRailThemeData, E._NavigationRailThemeData_Object_Diagnosticable);
+ _inherit(U.OutlinedButtonThemeData, U._OutlinedButtonThemeData_Object_Diagnosticable);
+ _inheritMany(K.Route, [T.OverlayRoute, K._NotAnnounced]);
+ _inherit(T.TransitionRoute, T.OverlayRoute);
+ _inherit(T._ModalRoute_TransitionRoute_LocalHistoryRoute, T.TransitionRoute);
+ _inherit(T.ModalRoute, T._ModalRoute_TransitionRoute_LocalHistoryRoute);
+ _inheritMany(T.ModalRoute, [V.PageRoute, T.PopupRoute]);
+ _inherit(V._MaterialPageRoute_PageRoute_MaterialRouteTransitionMixin, V.PageRoute);
+ _inherit(V.MaterialPageRoute, V._MaterialPageRoute_PageRoute_MaterialRouteTransitionMixin);
+ _inheritMany(K.PageTransitionsBuilder, [K.FadeUpwardsPageTransitionsBuilder, K.CupertinoPageTransitionsBuilder]);
+ _inherit(K.PageTransitionsTheme, K._PageTransitionsTheme_Object_Diagnosticable);
+ _inherit(R.PopupMenuThemeData, R._PopupMenuThemeData_Object_Diagnosticable);
+ _inherit(M.ScaffoldMessengerState, M._ScaffoldMessengerState_State_TickerProviderStateMixin);
+ _inheritMany(K.Constraints, [S.BoxConstraints, G.SliverConstraints]);
+ _inherit(M._BodyBoxConstraints, S.BoxConstraints);
+ _inheritMany(B.MultiChildLayoutDelegate, [M._ScaffoldLayout, E._ToolbarLayout]);
+ _inherit(M._FloatingActionButtonTransitionState, M.__FloatingActionButtonTransitionState_State_TickerProviderStateMixin);
+ _inherit(M.ScaffoldState, M._ScaffoldState_State_TickerProviderStateMixin);
+ _inherit(Q.SliderThemeData, Q._SliderThemeData_Object_Diagnosticable);
+ _inherit(K.SnackBarThemeData, K._SnackBarThemeData_Object_Diagnosticable);
+ _inherit(U.TabBarTheme, U._TabBarTheme_Object_Diagnosticable);
+ _inherit(T.TextButtonThemeData, T._TextButtonThemeData_Object_Diagnosticable);
+ _inherit(Z._TextFieldSelectionGestureDetectorBuilder, F.TextSelectionGestureDetectorBuilder);
+ _inherit(Z._TextFieldState, Z.__TextFieldState_State_RestorationMixin);
+ _inherit(R.TextSelectionThemeData, R._TextSelectionThemeData_Object_Diagnosticable);
+ _inherit(R.TextTheme, R._TextTheme_Object_Diagnosticable);
+ _inherit(X.ThemeData, X._ThemeData_Object_Diagnosticable);
+ _inherit(X.MaterialBasedCupertinoThemeData, K.CupertinoThemeData);
+ _inherit(X.VisualDensity, X._VisualDensity_Object_Diagnosticable);
+ _inherit(A.TimePickerThemeData, A._TimePickerThemeData_Object_Diagnosticable);
+ _inherit(S.ToggleButtonsThemeData, S._ToggleButtonsThemeData_Object_Diagnosticable);
+ _inherit(S._TooltipState, S.__TooltipState_State_SingleTickerProviderStateMixin);
+ _inherit(T.TooltipThemeData, T._TooltipThemeData_Object_Diagnosticable);
+ _inherit(U.Typography, U._Typography_Object_Diagnosticable);
+ _inheritMany(K.AlignmentGeometry, [K.Alignment, K.AlignmentDirectional, K._MixedAlignment]);
+ _inheritMany(K.BorderRadiusGeometry, [K.BorderRadius, K._MixedBorderRadius]);
+ _inheritMany(F.BoxBorder, [F.Border, F.BorderDirectional]);
+ _inherit(O.BoxShadow, P.Shadow);
+ _inheritMany(Y.OutlinedBorder, [X.CircleBorder, X.RoundedRectangleBorder, X._RoundedRectangleToCircleBorder]);
+ _inheritMany(V.EdgeInsetsGeometry, [V.EdgeInsets, V.EdgeInsetsDirectional, V._MixedEdgeInsets]);
+ _inherit(T.LinearGradient, T.Gradient);
+ _inherit(D.DefaultShaderWarmUp, D.ShaderWarmUp);
+ _inherit(M.StrutStyle, M._StrutStyle_Object_Diagnosticable);
+ _inherit(Q.TextSpan, G.InlineSpan);
+ _inherit(A.TextStyle, A._TextStyle_Object_Diagnosticable);
+ _inherit(M.ScrollSpringSimulation, M.SpringSimulation);
+ _inheritMany(O.HitTestResult, [S.BoxHitTestResult, G.SliverHitTestResult]);
+ _inheritMany(O.HitTestEntry, [S.BoxHitTestEntry, G.SliverHitTestEntry]);
+ _inheritMany(K.ParentData, [S.BoxParentData, G.SliverLogicalParentData, G.SliverPhysicalParentData]);
+ _inherit(S._ContainerBoxParentData_BoxParentData_ContainerParentDataMixin, S.BoxParentData);
+ _inherit(S.ContainerBoxParentData, S._ContainerBoxParentData_BoxParentData_ContainerParentDataMixin);
+ _inheritMany(S.ContainerBoxParentData, [B.MultiChildLayoutParentData, F.FlexParentData, R.ListBodyParentData, Q.TextParentData, K.StackParentData]);
+ _inherit(B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin);
+ _inherit(B.RenderCustomMultiChildLayoutBox, B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin);
+ _inherit(D.RenderEditable, D._RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin);
+ _inherit(T.Layer, T._Layer_AbstractNode_DiagnosticableTreeMixin);
+ _inheritMany(T.Layer, [T.PictureLayer, T.PlatformViewLayer, T.PerformanceOverlayLayer, T.ContainerLayer]);
+ _inheritMany(T.ContainerLayer, [T.OffsetLayer, T.ClipRectLayer, T.ClipPathLayer, T.OpacityLayer, T.PhysicalModelLayer, T.LeaderLayer, T.FollowerLayer, T.AnnotatedRegionLayer]);
+ _inherit(T.TransformLayer, T.OffsetLayer);
+ _inherit(R._RenderListBody_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, R._RenderListBody_RenderBox_ContainerRenderObjectMixin);
+ _inherit(R.RenderListBody, R._RenderListBody_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin);
+ _inheritMany(A.MouseCursorSession, [A._NoopMouseCursorSession, A._SystemMouseCursorSession]);
+ _inherit(Y.MouseTrackerUpdateDetails, Y._MouseTrackerUpdateDetails_Object_Diagnosticable);
+ _inherit(Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin, Y.BaseMouseTracker);
+ _inherit(Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin__MouseTrackerEventMixin, Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin);
+ _inherit(Y.MouseTracker, Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin__MouseTrackerEventMixin);
+ _inherit(K.PaintingContext, Z.ClipContext);
+ _inheritMany(K._SemanticsFragment, [K._ContainerSemanticsFragment, K._InterestingSemanticsFragment]);
+ _inheritMany(K._InterestingSemanticsFragment, [K._RootSemanticsFragment, K._SwitchableSemanticsFragment, K._AbortingSemanticsFragment]);
+ _inherit(Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin);
+ _inherit(Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_RelayoutWhenSystemFontsChangeMixin, Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin);
+ _inherit(Q.RenderParagraph, Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_RelayoutWhenSystemFontsChangeMixin);
+ _inherit(G.PlatformViewRenderBox, G._PlatformViewRenderBox_RenderBox__PlatformViewGestureMixin);
+ _inherit(E._RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin_RenderAnimatedOpacityMixin, E._RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin);
+ _inherit(E.RenderAnimatedOpacity, E._RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin_RenderAnimatedOpacityMixin);
+ _inherit(E.ShapeBorderClipper, E.CustomClipper);
+ _inheritMany(E._RenderCustomClip, [E.RenderClipRect, E.RenderClipPath, E._RenderPhysicalModelBase]);
+ _inheritMany(E._RenderPhysicalModelBase, [E.RenderPhysicalModel, E.RenderPhysicalShape]);
+ _inheritMany(E.RenderProxyBoxWithHitTestBehavior, [E.RenderPointerListener, T._RenderColoredBox]);
+ _inherit(G.SliverGeometry, G._SliverGeometry_Object_Diagnosticable);
+ _inheritMany(G.SliverLogicalParentData, [G._SliverLogicalContainerParentData_SliverLogicalParentData_ContainerParentDataMixin, F._SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin]);
+ _inherit(G.SliverLogicalContainerParentData, G._SliverLogicalContainerParentData_SliverLogicalParentData_ContainerParentDataMixin);
+ _inheritMany(G.RenderSliver, [F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin, T._RenderSliverEdgeInsetsPadding_RenderSliver_RenderObjectWithChildMixin]);
+ _inherit(F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers, F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin);
+ _inherit(F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers_RenderSliverWithKeepAliveMixin, F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers);
+ _inherit(F.RenderSliverMultiBoxAdaptor, F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers_RenderSliverWithKeepAliveMixin);
+ _inherit(U.RenderSliverList, F.RenderSliverMultiBoxAdaptor);
+ _inherit(F._SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin_KeepAliveParentDataMixin, F._SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin);
+ _inherit(F.SliverMultiBoxAdaptorParentData, F._SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin_KeepAliveParentDataMixin);
+ _inherit(T.RenderSliverEdgeInsetsPadding, T._RenderSliverEdgeInsetsPadding_RenderSliver_RenderObjectWithChildMixin);
+ _inherit(T.RenderSliverPadding, T.RenderSliverEdgeInsetsPadding);
+ _inherit(K._RenderStack_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, K._RenderStack_RenderBox_ContainerRenderObjectMixin);
+ _inherit(K.RenderStack, K._RenderStack_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin);
+ _inherit(A.RenderView, A._RenderView_RenderObject_RenderObjectWithChildMixin);
+ _inherit(Q.RenderViewportBase, Q._RenderViewportBase_RenderBox_ContainerRenderObjectMixin);
+ _inherit(Q.RenderShrinkWrappingViewport, Q.RenderViewportBase);
+ _inherit(A.SemanticsData, A._SemanticsData_Object_Diagnosticable);
+ _inherit(A.SemanticsNode, A._SemanticsNode_AbstractNode_DiagnosticableTreeMixin);
+ _inherit(A._SemanticsSortGroup, P.Comparable);
+ _inherit(A.SemanticsSortKey, A._SemanticsSortKey_Object_Diagnosticable);
+ _inherit(A.OrdinalSortKey, A.SemanticsSortKey);
+ _inheritMany(E.SemanticsEvent, [E.TooltipSemanticsEvent, E.LongPressSemanticsEvent, E.TapSemanticEvent]);
+ _inherit(Q.CachingAssetBundle, Q.AssetBundle);
+ _inherit(Q.PlatformAssetBundle, Q.CachingAssetBundle);
+ _inheritMany(Q.BinaryMessenger, [N._DefaultBinaryMessenger, D._PlatformBinaryMessenger]);
+ _inherit(G.KeyboardKey, G._KeyboardKey_Object_Diagnosticable);
+ _inheritMany(G.KeyboardKey, [G.LogicalKeyboardKey, G.PhysicalKeyboardKey]);
+ _inherit(A.OptionalMethodChannel, A.MethodChannel);
+ _inherit(B.RawKeyEvent, B._RawKeyEvent_Object_Diagnosticable);
+ _inheritMany(B.RawKeyEvent, [B.RawKeyDownEvent, B.RawKeyUpEvent]);
+ _inheritMany(B.RawKeyEventData, [Q.RawKeyEventDataAndroid, Q.RawKeyEventDataFuchsia, R.RawKeyEventDataIos, O.RawKeyEventDataLinux, B.RawKeyEventDataMacOs, A.RawKeyEventDataWeb, R.RawKeyEventDataWindows]);
+ _inherit(O.GLFWKeyHelper, O._GLFWKeyHelper_Object_KeyHelper);
+ _inherit(O.GtkKeyHelper, O._GtkKeyHelper_Object_KeyHelper);
+ _inherit(X.TextSelection, P.TextRange);
+ _inheritMany(B.TextInputFormatter, [B.FilteringTextInputFormatter, D._WhitespaceDirectionalityFormatter]);
+ _inherit(U.Intent, U._Intent_Object_Diagnosticable);
+ _inherit(U.Action, U._Action_Object_Diagnosticable);
+ _inheritMany(U.Action, [U.CallbackAction, U.DoNothingAction, U.DismissAction, U.RequestFocusAction, U.NextFocusAction, U.PreviousFocusAction, U.DirectionalFocusAction, F.ScrollAction]);
+ _inherit(U.ActionDispatcher, U._ActionDispatcher_Object_Diagnosticable);
+ _inheritMany(U.Intent, [U.ActivateIntent, U.DismissIntent, U.NextFocusIntent, U.PreviousFocusIntent, F.ScrollIntent]);
+ _inherit(S._WidgetsAppState, S.__WidgetsAppState_State_WidgetsBindingObserver);
+ _inherit(S._MediaQueryFromWindowsState, S.__MediaQueryFromWindowsState_State_WidgetsBindingObserver);
+ _inheritMany(U.Notification0, [L.KeepAliveNotification, U.LayoutChangedNotification, L._OverscrollIndicatorNotification_Notification_ViewportNotificationMixin]);
+ _inherit(T.Center, T.Align);
+ _inheritMany(N.ParentDataWidget, [T.LayoutId, T.Positioned, T.Flexible, G.KeepAlive]);
+ _inherit(T._OffstageElement, N.SingleChildRenderObjectElement);
+ _inherit(N.RenderObjectToWidgetElement, N.RootRenderObjectElement);
+ _inherit(N._WidgetsFlutterBinding_BindingBase_GestureBinding, N.BindingBase);
+ _inherit(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding, N._WidgetsFlutterBinding_BindingBase_GestureBinding);
+ _inherit(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding);
+ _inherit(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding);
+ _inherit(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding);
+ _inherit(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding);
+ _inherit(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding);
+ _inherit(N.WidgetsFlutterBinding, N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding);
+ _inheritMany(B.ValueNotifier, [D.TextEditingController, E.VideoRenderer]);
+ _inherit(D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver, D._EditableTextState_State_AutomaticKeepAliveClientMixin);
+ _inherit(D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin, D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver);
+ _inherit(D.EditableTextState, D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin);
+ _inheritMany(N.LeafRenderObjectWidget, [D._Editable, N.ErrorWidget, L.PerformanceOverlay, G.PlatformViewSurface]);
+ _inherit(O._FocusNode_Object_DiagnosticableTreeMixin_ChangeNotifier, O._FocusNode_Object_DiagnosticableTreeMixin);
+ _inherit(O.FocusNode, O._FocusNode_Object_DiagnosticableTreeMixin_ChangeNotifier);
+ _inherit(O.FocusScopeNode, O.FocusNode);
+ _inherit(O._FocusManager_Object_DiagnosticableTreeMixin_ChangeNotifier, O._FocusManager_Object_DiagnosticableTreeMixin);
+ _inherit(O.FocusManager, O._FocusManager_Object_DiagnosticableTreeMixin_ChangeNotifier);
+ _inherit(L.FocusScope, L.Focus);
+ _inherit(L._FocusScopeState, L._FocusState);
+ _inheritMany(S.InheritedNotifier, [L._FocusMarker, X._ShortcutsMarker]);
+ _inherit(U.FocusTraversalPolicy, U._FocusTraversalPolicy_Object_Diagnosticable);
+ _inherit(U._ReadingOrderSortData, U.__ReadingOrderSortData_Object_Diagnosticable);
+ _inherit(U._ReadingOrderDirectionalGroupData, U.__ReadingOrderDirectionalGroupData_Object_Diagnosticable);
+ _inherit(U._ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin, U.FocusTraversalPolicy);
+ _inherit(U.ReadingOrderTraversalPolicy, U._ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin);
+ _inheritMany(N.GlobalKey, [N.LabeledGlobalKey, N.GlobalObjectKey]);
+ _inherit(N._ElementDiagnosticableTreeNode, Y.DiagnosticableTreeNode);
+ _inheritMany(N.ComponentElement, [N.StatelessElement, N.StatefulElement, N.ProxyElement]);
+ _inheritMany(N.ProxyElement, [N.ParentDataElement, N.InheritedElement]);
+ _inheritMany(D.GestureRecognizerFactory, [D.GestureRecognizerFactoryWithHandlers, X._AnyTapGestureRecognizerFactory]);
+ _inheritMany(D.SemanticsGestureDelegate, [D._DefaultSemanticsGestureDelegate, X._ModalBarrierSemanticsDelegate]);
+ _inherit(T.HeroController, K.NavigatorObserver);
+ _inherit(S._InheritedNotifierElement, N.InheritedElement);
+ _inherit(A.LayoutBuilder, A.ConstrainedLayoutBuilder);
+ _inherit(A.__RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin_RenderConstrainedLayoutBuilder, A.__RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin);
+ _inherit(A._RenderLayoutBuilder, A.__RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin_RenderConstrainedLayoutBuilder);
+ _inheritMany(K.AnimatedWidget, [X.AnimatedModalBarrier, K.SlideTransition, K.ScaleTransition, K.RotationTransition, K.DecoratedBoxTransition, K.AnimatedBuilder]);
+ _inherit(K.DefaultTransitionDelegate, K.TransitionDelegate);
+ _inherit(K._RouteEntry, K.RouteTransitionRecord);
+ _inheritMany(K._NavigatorObservation, [K._NavigatorPushObservation, K._NavigatorPopObservation, K._NavigatorRemoveObservation, K._NavigatorReplaceObservation]);
+ _inherit(K._NavigatorState_State_TickerProviderStateMixin_RestorationMixin, K._NavigatorState_State_TickerProviderStateMixin);
+ _inherit(K.NavigatorState, K._NavigatorState_State_TickerProviderStateMixin_RestorationMixin);
+ _inheritMany(K._RestorationInformation, [K._NamedRestorationInformation, K._AnonymousRestorationInformation]);
+ _inheritMany(K.RestorableProperty, [K._HistoryProperty, U.RestorableValue, U.RestorableListenable]);
+ _inherit(X.OverlayState, X._OverlayState_State_TickerProviderStateMixin);
+ _inherit(X._TheatreElement, N.MultiChildRenderObjectElement);
+ _inherit(X._RenderTheatre, X.__RenderTheatre_RenderBox_ContainerRenderObjectMixin);
+ _inherit(L._GlowingOverscrollIndicatorState, L.__GlowingOverscrollIndicatorState_State_TickerProviderStateMixin);
+ _inherit(L.OverscrollIndicatorNotification, L._OverscrollIndicatorNotification_Notification_ViewportNotificationMixin);
+ _inherit(G._HtmlElementViewController, R.PlatformViewController);
+ _inherit(K._RestorationScopeState, K.__RestorationScopeState_State_RestorationMixin);
+ _inheritMany(U.RestorableValue, [U._RestorablePrimitiveValue, F._RestorableScrollOffset]);
+ _inherit(U.RestorableNum, U._RestorablePrimitiveValue);
+ _inherit(U.RestorableChangeNotifier, U.RestorableListenable);
+ _inherit(U.RestorableTextEditingController, U.RestorableChangeNotifier);
+ _inherit(T._DismissModalAction, U.DismissAction);
+ _inherit(T._DialogRoute, T.PopupRoute);
+ _inheritMany(M.ScrollActivity, [M.IdleScrollActivity, M.HoldScrollActivity, M.DragScrollActivity, M.BallisticScrollActivity, M.DrivenScrollActivity]);
+ _inherit(M.FixedScrollMetrics, M.ScrollMetrics);
+ _inherit(G._ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin, U.LayoutChangedNotification);
+ _inherit(G.ScrollNotification, G._ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin);
+ _inheritMany(G.ScrollNotification, [G.ScrollStartNotification, G.ScrollUpdateNotification, G.OverscrollNotification, G.ScrollEndNotification, G.UserScrollNotification]);
+ _inheritMany(L.ScrollPhysics, [L.RangeMaintainingScrollPhysics, L.BouncingScrollPhysics, L.ClampingScrollPhysics, L.AlwaysScrollableScrollPhysics]);
+ _inherit(A._ScrollPosition_ViewportOffset_ScrollMetrics, N.ViewportOffset);
+ _inherit(A.ScrollPosition, A._ScrollPosition_ViewportOffset_ScrollMetrics);
+ _inherit(R.ScrollPositionWithSingleContext, A.ScrollPosition);
+ _inherit(B.BoxScrollView, B.ScrollView);
+ _inherit(B.ListView, B.BoxScrollView);
+ _inherit(F._ScrollableState_State_TickerProviderStateMixin_RestorationMixin, F._ScrollableState_State_TickerProviderStateMixin);
+ _inherit(F.ScrollableState, F._ScrollableState_State_TickerProviderStateMixin_RestorationMixin);
+ _inherit(X._LogicalKeySet_KeySet_Diagnosticable, X.KeySet);
+ _inherit(X.LogicalKeySet, X._LogicalKeySet_KeySet_Diagnosticable);
+ _inherit(X.ShortcutManager, X._ShortcutManager_ChangeNotifier_Diagnosticable);
+ _inherit(G._SaltedValueKey, D.ValueKey);
+ _inherit(G.SliverChildBuilderDelegate, G.SliverChildDelegate);
+ _inherit(G.SliverMultiBoxAdaptorWidget, G.SliverWithKeepAliveWidget);
+ _inherit(G.SliverList, G.SliverMultiBoxAdaptorWidget);
+ _inherit(F._TextSelectionHandleOverlayState, F.__TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin);
+ _inherit(F._TransparentTapGestureRecognizer, N.TapGestureRecognizer);
+ _inherit(U._WidgetTicker, M.Ticker);
+ _inherit(F.RTCFactoryWeb, B.RTCFactory);
+ _inherit(R.MediaStreamWeb, V.MediaStream0);
+ _inherit(Q.MediaStreamTrackWeb, Z.MediaStreamTrack0);
+ _inherit(G.MediaDevicesWeb, Q.MediaDevices0);
+ _inherit(Z.RTCDataChannelWeb, X.RTCDataChannel);
+ _inherit(U.RTCPeerConnectionWeb, B.RTCPeerConnection);
+ _inherit(S.RTCRtpSenderWeb, D.RTCRtpSender);
+ _inherit(T.RTCRtpTransceiverWeb, V.RTCRtpTransceiver);
+ _inherit(V.RTCVideoRendererWeb, E.VideoRenderer);
+ _inherit(O.BrowserClient, E.BaseClient);
+ _inherit(Z.ByteStream, P.StreamView);
+ _inherit(O.Request, G.BaseRequest);
+ _inheritMany(T.BaseResponse, [U.Response, X.StreamedResponse]);
+ _inherit(Z.CaseInsensitiveMap, M.CanonicalizedMap);
+ _inherit(B.InternalStyle, O.Style);
+ _inheritMany(B.InternalStyle, [E.PosixStyle, F.UrlStyle, L.WindowsStyle]);
+ _inheritMany(E.SharedPreferencesStorePlatform, [F.MethodChannelSharedPreferencesStore, V.SharedPreferencesPlugin]);
+ _inherit(Y.FileLocation, D.SourceLocationMixin);
+ _inheritMany(Y.SourceSpanMixin, [Y._FileSpan, V.SourceSpanBase]);
+ _inherit(G.SourceSpanFormatException, G.SourceSpanException);
+ _inherit(X.SourceSpanWithContext, V.SourceSpanBase);
+ _inherit(E.StringScannerException, G.SourceSpanFormatException);
+ _inherit(E._IntBuffer0, E.TypedDataBuffer);
+ _inherit(E.Uint8Buffer, E._IntBuffer0);
+ _mixin(H._DomCanvas_EngineCanvas_SaveElementStackTracking, H.SaveElementStackTracking);
+ _mixin(H._PersistedClipRect_PersistedContainerSurface__DomClip, H._DomClip);
+ _mixin(H._PersistedPhysicalShape_PersistedContainerSurface__DomClip, H._DomClip);
+ _mixin(H.__MouseAdapter__BaseAdapter__WheelEventListenerMixin, H._WheelEventListenerMixin);
+ _mixin(H.__PointerAdapter__BaseAdapter__WheelEventListenerMixin, H._WheelEventListenerMixin);
+ _mixin(H.UnmodifiableListBase, H.UnmodifiableListMixin);
+ _mixin(H.__CastListBase__CastIterableBase_ListMixin, P.ListMixin);
+ _mixin(H._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, P.ListMixin);
+ _mixin(H._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, H.FixedLengthListMixin);
+ _mixin(H._NativeTypedArrayOfInt_NativeTypedArray_ListMixin, P.ListMixin);
+ _mixin(H._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, H.FixedLengthListMixin);
+ _mixin(P._AsyncStreamController, P._AsyncStreamControllerDispatch);
+ _mixin(P._SyncStreamController, P._SyncStreamControllerDispatch);
+ _mixin(P._ListBase_Object_ListMixin, P.ListMixin);
+ _mixin(P._SplayTreeMap__SplayTree_MapMixin, P.MapMixin);
+ _mixin(P._SplayTreeSet__SplayTree_IterableMixin, P.IterableMixin);
+ _mixin(P._SplayTreeSet__SplayTree_IterableMixin_SetMixin, P.SetMixin);
+ _mixin(P._UnmodifiableMapView_MapView__UnmodifiableMapMixin, P._UnmodifiableMapMixin);
+ _mixin(P.__SetBase_Object_SetMixin, P.SetMixin);
+ _mixin(W._CssStyleDeclaration_Interceptor_CssStyleDeclarationBase, W.CssStyleDeclarationBase);
+ _mixin(W._DomRectList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._DomRectList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._DomStringList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._DomStringList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._FileList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._FileList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._HtmlCollection_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._HtmlCollection_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._MidiInputMap_Interceptor_MapMixin, P.MapMixin);
+ _mixin(W._MidiOutputMap_Interceptor_MapMixin, P.MapMixin);
+ _mixin(W._MimeTypeArray_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._MimeTypeArray_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._NodeList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._NodeList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._PluginArray_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._PluginArray_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._RtcStatsReport_Interceptor_MapMixin, P.MapMixin);
+ _mixin(W._SourceBufferList_EventTarget_ListMixin, P.ListMixin);
+ _mixin(W._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._SpeechGrammarList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._SpeechGrammarList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._Storage_Interceptor_MapMixin, P.MapMixin);
+ _mixin(W._TextTrackCueList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._TextTrackCueList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._TextTrackList_EventTarget_ListMixin, P.ListMixin);
+ _mixin(W._TextTrackList_EventTarget_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W._TouchList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W._TouchList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W.__CssRuleList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W.__CssRuleList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W.__GamepadList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W.__GamepadList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W.__NamedNodeMap_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W.__NamedNodeMap_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W.__SpeechRecognitionResultList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W.__SpeechRecognitionResultList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(W.__StyleSheetList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(W.__StyleSheetList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(P._JsArray_JsObject_ListMixin, P.ListMixin);
+ _mixin(P._LengthList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(P._LengthList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(P._NumberList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(P._NumberList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(P._StringList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(P._StringList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(P._TransformList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(P._TransformList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(P._AudioParamMap_Interceptor_MapMixin, P.MapMixin);
+ _mixin(P._SqlResultSetRowList_Interceptor_ListMixin, P.ListMixin);
+ _mixin(P._SqlResultSetRowList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
+ _mixin(G._AnimationController_Animation_AnimationEagerListenerMixin, S.AnimationEagerListenerMixin);
+ _mixin(G._AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin, S.AnimationLocalListenersMixin);
+ _mixin(G._AnimationController_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin, S.AnimationLocalStatusListenersMixin);
+ _mixin(S._CompoundAnimation_Animation_AnimationLazyListenerMixin, S.AnimationLazyListenerMixin);
+ _mixin(S._CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin, S.AnimationLocalListenersMixin);
+ _mixin(S._CompoundAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin, S.AnimationLocalStatusListenersMixin);
+ _mixin(S._CurvedAnimation_Animation_AnimationWithParentMixin, S.AnimationWithParentMixin);
+ _mixin(S._ProxyAnimation_Animation_AnimationLazyListenerMixin, S.AnimationLazyListenerMixin);
+ _mixin(S._ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin, S.AnimationLocalListenersMixin);
+ _mixin(S._ProxyAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin, S.AnimationLocalStatusListenersMixin);
+ _mixin(S._ReverseAnimation_Animation_AnimationLazyListenerMixin, S.AnimationLazyListenerMixin);
+ _mixin(S._ReverseAnimation_Animation_AnimationLazyListenerMixin_AnimationLocalStatusListenersMixin, S.AnimationLocalStatusListenersMixin);
+ _mixin(S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin, S.AnimationEagerListenerMixin);
+ _mixin(S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin, S.AnimationLocalListenersMixin);
+ _mixin(S._TrainHoppingAnimation_Animation_AnimationEagerListenerMixin_AnimationLocalListenersMixin_AnimationLocalStatusListenersMixin, S.AnimationLocalStatusListenersMixin);
+ _mixin(R.__AnimatedEvaluation_Animation_AnimationWithParentMixin, S.AnimationWithParentMixin);
+ _mixin(E._CupertinoDynamicColor_Color_Diagnosticable, Y.Diagnosticable);
+ _mixin(T._CupertinoIconThemeData_IconThemeData_Diagnosticable, Y.Diagnosticable);
+ _mixin(R._CupertinoTextThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(K._CupertinoThemeData_NoDefaultCupertinoThemeData_Diagnosticable, Y.Diagnosticable);
+ _mixin(U._FlutterError_Error_DiagnosticableTreeMixin, Y.DiagnosticableTreeMixin);
+ _mixin(U._FlutterErrorDetails_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(Y._DiagnosticableTree_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(F._PointerAddedEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerAddedEvent_PointerEvent__PointerEventDescription__CopyPointerAddedEvent, F._CopyPointerAddedEvent);
+ _mixin(F._PointerCancelEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerCancelEvent_PointerEvent__PointerEventDescription__CopyPointerCancelEvent, F._CopyPointerCancelEvent);
+ _mixin(F._PointerDownEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerDownEvent_PointerEvent__PointerEventDescription__CopyPointerDownEvent, F._CopyPointerDownEvent);
+ _mixin(F._PointerEnterEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerEnterEvent_PointerEvent__PointerEventDescription__CopyPointerEnterEvent, F._CopyPointerEnterEvent);
+ _mixin(F._PointerEvent_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(F._PointerExitEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerExitEvent_PointerEvent__PointerEventDescription__CopyPointerExitEvent, F._CopyPointerExitEvent);
+ _mixin(F._PointerHoverEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerHoverEvent_PointerEvent__PointerEventDescription__CopyPointerHoverEvent, F._CopyPointerHoverEvent);
+ _mixin(F._PointerMoveEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerMoveEvent_PointerEvent__PointerEventDescription__CopyPointerMoveEvent, F._CopyPointerMoveEvent);
+ _mixin(F._PointerRemovedEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerRemovedEvent_PointerEvent__PointerEventDescription__CopyPointerRemovedEvent, F._CopyPointerRemovedEvent);
+ _mixin(F._PointerScrollEvent_PointerSignalEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerScrollEvent_PointerSignalEvent__PointerEventDescription__CopyPointerScrollEvent, F._CopyPointerScrollEvent);
+ _mixin(F._PointerUpEvent_PointerEvent__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F._PointerUpEvent_PointerEvent__PointerEventDescription__CopyPointerUpEvent, F._CopyPointerUpEvent);
+ _mixin(F.__TransformedPointerAddedEvent__TransformedPointerEvent__CopyPointerAddedEvent, F._CopyPointerAddedEvent);
+ _mixin(F.__TransformedPointerCancelEvent__TransformedPointerEvent__CopyPointerCancelEvent, F._CopyPointerCancelEvent);
+ _mixin(F.__TransformedPointerDownEvent__TransformedPointerEvent__CopyPointerDownEvent, F._CopyPointerDownEvent);
+ _mixin(F.__TransformedPointerEnterEvent__TransformedPointerEvent__CopyPointerEnterEvent, F._CopyPointerEnterEvent);
+ _mixin(F.__TransformedPointerEvent__AbstractPointerEvent_Diagnosticable, Y.Diagnosticable);
+ _mixin(F.__TransformedPointerEvent__AbstractPointerEvent_Diagnosticable__PointerEventDescription, F._PointerEventDescription);
+ _mixin(F.__TransformedPointerExitEvent__TransformedPointerEvent__CopyPointerExitEvent, F._CopyPointerExitEvent);
+ _mixin(F.__TransformedPointerHoverEvent__TransformedPointerEvent__CopyPointerHoverEvent, F._CopyPointerHoverEvent);
+ _mixin(F.__TransformedPointerMoveEvent__TransformedPointerEvent__CopyPointerMoveEvent, F._CopyPointerMoveEvent);
+ _mixin(F.__TransformedPointerRemovedEvent__TransformedPointerEvent__CopyPointerRemovedEvent, F._CopyPointerRemovedEvent);
+ _mixin(F.__TransformedPointerScrollEvent__TransformedPointerEvent__CopyPointerScrollEvent, F._CopyPointerScrollEvent);
+ _mixin(F.__TransformedPointerUpEvent__TransformedPointerEvent__CopyPointerUpEvent, F._CopyPointerUpEvent);
+ _mixin(S._GestureRecognizer_GestureArenaMember_DiagnosticableTreeMixin, Y.DiagnosticableTreeMixin);
+ _mixin(V._AppBarTheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(Q._MaterialBannerThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(D._BottomAppBarTheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(M._BottomNavigationBarThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(X._BottomSheetThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(M._ButtonBarThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(A._ButtonStyle_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(M._ButtonThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(A._CardTheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(K._ChipThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(A._ColorScheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(Z._DataTableThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(Y._DialogTheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(G._DividerThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(T._ElevatedButtonThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(A.__CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX, A.FabCenterOffsetX);
+ _mixin(A.__CenterFloatFabLocation_StandardFabLocation_FabCenterOffsetX_FabFloatOffsetY, A.FabFloatOffsetY);
+ _mixin(A.__EndFloatFabLocation_StandardFabLocation_FabEndOffsetX, A.FabEndOffsetX);
+ _mixin(A.__EndFloatFabLocation_StandardFabLocation_FabEndOffsetX_FabFloatOffsetY, A.FabFloatOffsetY);
+ _mixin(S._FloatingActionButtonThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(R.__InkResponseState_State_AutomaticKeepAliveClientMixin, L.AutomaticKeepAliveClientMixin);
+ _mixin(L._InputDecorationTheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(L.__BorderContainerState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(L.__HelperErrorState_State_SingleTickerProviderStateMixin, U.SingleTickerProviderStateMixin);
+ _mixin(L.__InputDecoratorState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(M.__MaterialState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(E._NavigationRailThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(U._OutlinedButtonThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(V._MaterialPageRoute_PageRoute_MaterialRouteTransitionMixin, V.MaterialRouteTransitionMixin);
+ _mixin(K._PageTransitionsTheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(R._PopupMenuThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(M._ScaffoldMessengerState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(M._ScaffoldState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(M.__FloatingActionButtonTransitionState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(Q._SliderThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(K._SnackBarThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(U._TabBarTheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(T._TextButtonThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(Z.__TextFieldState_State_RestorationMixin, K.RestorationMixin);
+ _mixin(R._TextSelectionThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(R._TextTheme_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(X._ThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(X._VisualDensity_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(A._TimePickerThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(S._ToggleButtonsThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(S.__TooltipState_State_SingleTickerProviderStateMixin, U.SingleTickerProviderStateMixin);
+ _mixin(T._TooltipThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(U._Typography_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(Z._Decoration_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(M._StrutStyle_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(A._TextStyle_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(S._ContainerBoxParentData_BoxParentData_ContainerParentDataMixin, K.ContainerParentDataMixin);
+ _mixin(B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin, K.ContainerRenderObjectMixin);
+ _mixin(B._RenderCustomMultiChildLayoutBox_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, S.RenderBoxContainerDefaultsMixin);
+ _mixin(D._RenderEditable_RenderBox_RelayoutWhenSystemFontsChangeMixin, K.RelayoutWhenSystemFontsChangeMixin);
+ _mixin(F._RenderFlex_RenderBox_ContainerRenderObjectMixin, K.ContainerRenderObjectMixin);
+ _mixin(F._RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, S.RenderBoxContainerDefaultsMixin);
+ _mixin(F._RenderFlex_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_DebugOverflowIndicatorMixin, T.DebugOverflowIndicatorMixin);
+ _mixin(T._Layer_AbstractNode_DiagnosticableTreeMixin, Y.DiagnosticableTreeMixin);
+ _mixin(R._RenderListBody_RenderBox_ContainerRenderObjectMixin, K.ContainerRenderObjectMixin);
+ _mixin(R._RenderListBody_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, S.RenderBoxContainerDefaultsMixin);
+ _mixin(A._MouseCursor_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin, A.MouseTrackerCursorMixin);
+ _mixin(Y._MouseTracker_BaseMouseTracker_MouseTrackerCursorMixin__MouseTrackerEventMixin, Y._MouseTrackerEventMixin);
+ _mixin(Y._MouseTrackerUpdateDetails_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(K._RenderObject_AbstractNode_DiagnosticableTreeMixin, Y.DiagnosticableTreeMixin);
+ _mixin(Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin, K.ContainerRenderObjectMixin);
+ _mixin(Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, S.RenderBoxContainerDefaultsMixin);
+ _mixin(Q._RenderParagraph_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin_RelayoutWhenSystemFontsChangeMixin, K.RelayoutWhenSystemFontsChangeMixin);
+ _mixin(G._PlatformViewRenderBox_RenderBox__PlatformViewGestureMixin, G._PlatformViewGestureMixin);
+ _mixin(E._RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin, E.RenderProxyBoxMixin);
+ _mixin(E._RenderAnimatedOpacity_RenderProxyBox_RenderProxyBoxMixin_RenderAnimatedOpacityMixin, E.RenderAnimatedOpacityMixin);
+ _mixin(E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin, K.RenderObjectWithChildMixin);
+ _mixin(E._RenderProxyBox_RenderBox_RenderObjectWithChildMixin_RenderProxyBoxMixin, E.RenderProxyBoxMixin);
+ _mixin(T._RenderShiftedBox_RenderBox_RenderObjectWithChildMixin, K.RenderObjectWithChildMixin);
+ _mixin(G._SliverGeometry_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(G._SliverLogicalContainerParentData_SliverLogicalParentData_ContainerParentDataMixin, K.ContainerParentDataMixin);
+ _mixin(F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin, K.ContainerRenderObjectMixin);
+ _mixin(F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers, G.RenderSliverHelpers);
+ _mixin(F._RenderSliverMultiBoxAdaptor_RenderSliver_ContainerRenderObjectMixin_RenderSliverHelpers_RenderSliverWithKeepAliveMixin, F.RenderSliverWithKeepAliveMixin);
+ _mixin(F._SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin, K.ContainerParentDataMixin);
+ _mixin(F._SliverMultiBoxAdaptorParentData_SliverLogicalParentData_ContainerParentDataMixin_KeepAliveParentDataMixin, F.KeepAliveParentDataMixin);
+ _mixin(T._RenderSliverEdgeInsetsPadding_RenderSliver_RenderObjectWithChildMixin, K.RenderObjectWithChildMixin);
+ _mixin(K._RenderStack_RenderBox_ContainerRenderObjectMixin, K.ContainerRenderObjectMixin);
+ _mixin(K._RenderStack_RenderBox_ContainerRenderObjectMixin_RenderBoxContainerDefaultsMixin, S.RenderBoxContainerDefaultsMixin);
+ _mixin(A._RenderView_RenderObject_RenderObjectWithChildMixin, K.RenderObjectWithChildMixin);
+ _mixin(Q._RenderViewportBase_RenderBox_ContainerRenderObjectMixin, K.ContainerRenderObjectMixin);
+ _mixin(A._SemanticsData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(A._SemanticsNode_AbstractNode_DiagnosticableTreeMixin, Y.DiagnosticableTreeMixin);
+ _mixin(A._SemanticsSortKey_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(G._KeyboardKey_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(B._RawKeyEvent_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(O._GLFWKeyHelper_Object_KeyHelper, O.KeyHelper);
+ _mixin(O._GtkKeyHelper_Object_KeyHelper, O.KeyHelper);
+ _mixin(U._Action_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(U._ActionDispatcher_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(U._Intent_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(S.__MediaQueryFromWindowsState_State_WidgetsBindingObserver, N.WidgetsBindingObserver);
+ _mixin(S.__WidgetsAppState_State_WidgetsBindingObserver, N.WidgetsBindingObserver);
+ _mixin(N._WidgetsFlutterBinding_BindingBase_GestureBinding, N.GestureBinding);
+ _mixin(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding, N.SchedulerBinding);
+ _mixin(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding, N.ServicesBinding);
+ _mixin(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding, N.PaintingBinding);
+ _mixin(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding, N.SemanticsBinding);
+ _mixin(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding, N.RendererBinding);
+ _mixin(N._WidgetsFlutterBinding_BindingBase_GestureBinding_SchedulerBinding_ServicesBinding_PaintingBinding_SemanticsBinding_RendererBinding_WidgetsBinding, N.WidgetsBinding);
+ _mixin(D._EditableTextState_State_AutomaticKeepAliveClientMixin, L.AutomaticKeepAliveClientMixin);
+ _mixin(D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver, N.WidgetsBindingObserver);
+ _mixin(D._EditableTextState_State_AutomaticKeepAliveClientMixin_WidgetsBindingObserver_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(O._FocusManager_Object_DiagnosticableTreeMixin, Y.DiagnosticableTreeMixin);
+ _mixin(O._FocusManager_Object_DiagnosticableTreeMixin_ChangeNotifier, B.ChangeNotifier);
+ _mixin(O._FocusNode_Object_DiagnosticableTreeMixin, Y.DiagnosticableTreeMixin);
+ _mixin(O._FocusNode_Object_DiagnosticableTreeMixin_ChangeNotifier, B.ChangeNotifier);
+ _mixin(U._FocusTraversalPolicy_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(U._ReadingOrderTraversalPolicy_FocusTraversalPolicy_DirectionalFocusTraversalPolicyMixin, U.DirectionalFocusTraversalPolicyMixin);
+ _mixin(U.__ReadingOrderDirectionalGroupData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(U.__ReadingOrderSortData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(N._State_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(T._IconThemeData_Object_Diagnosticable, Y.Diagnosticable);
+ _mixin(G._ImplicitlyAnimatedWidgetState_State_SingleTickerProviderStateMixin, U.SingleTickerProviderStateMixin);
+ _mixin(A.__RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin, K.RenderObjectWithChildMixin);
+ _mixin(A.__RenderLayoutBuilder_RenderBox_RenderObjectWithChildMixin_RenderConstrainedLayoutBuilder, A.RenderConstrainedLayoutBuilder);
+ _mixin(K._NavigatorState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(K._NavigatorState_State_TickerProviderStateMixin_RestorationMixin, K.RestorationMixin);
+ _mixin(X._OverlayState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(X.__RenderTheatre_RenderBox_ContainerRenderObjectMixin, K.ContainerRenderObjectMixin);
+ _mixin(L._OverscrollIndicatorNotification_Notification_ViewportNotificationMixin, G.ViewportNotificationMixin);
+ _mixin(L.__GlowingOverscrollIndicatorState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(K.__RestorationScopeState_State_RestorationMixin, K.RestorationMixin);
+ _mixin(T._ModalRoute_TransitionRoute_LocalHistoryRoute, T.LocalHistoryRoute);
+ _mixin(G._ScrollNotification_LayoutChangedNotification_ViewportNotificationMixin, G.ViewportNotificationMixin);
+ _mixin(A._ScrollPosition_ViewportOffset_ScrollMetrics, M.ScrollMetrics);
+ _mixin(F._ScrollableState_State_TickerProviderStateMixin, U.TickerProviderStateMixin);
+ _mixin(F._ScrollableState_State_TickerProviderStateMixin_RestorationMixin, K.RestorationMixin);
+ _mixin(X._LogicalKeySet_KeySet_Diagnosticable, Y.Diagnosticable);
+ _mixin(X._ShortcutManager_ChangeNotifier_Diagnosticable, Y.Diagnosticable);
+ _mixin(F.__TextSelectionHandleOverlayState_State_SingleTickerProviderStateMixin, U.SingleTickerProviderStateMixin);
+ _mixin(N._WidgetInspectorService, N.WidgetInspectorService);
+ })();
+ var init = {
+ typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []},
+ mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List"},
+ mangledNames: {},
+ getTypeFromName: getGlobalFromName,
+ metadata: [],
+ types: ["~()", "double(double)", "Null()", "Null(@)", "~(Duration)", "double(RenderBox)", "Null(Event)", "~(AnimationStatus)", "~(@)", "~(Element)", "~(Event)", "~(bool)", "Null(Event*)", "@()", "~(DragUpdateDetails)", "~(PointerEvent0)", "Null(~)", "Iterable()", "double()", "~(String,@)", "bool(FocusNode)", "Widget(BuildContext)", "~(PaintingContext,Offset)", "bool(BoxHitTestResult,Offset?)", "bool(Element)", "bool(Object?)", "@(double)", "double(RenderBox,double)", "~(ByteData?)", "Future<~>()", "bool(String)", "~(@,@)", "bool(_RouteEntry?)", "KeyboardSide?(int,int,int)", "@(@)", "int(FocusNode,FocusNode)", "~(int)", "~(DragStartDetails)", "String(String)", "~(TapDownDetails)", "Future