diff --git a/bricks/platform_flow_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart b/bricks/platform_flow_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart index 68ae4222..9babf5ec 100644 --- a/bricks/platform_flow_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart +++ b/bricks/platform_flow_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart @@ -9,7 +9,7 @@ import 'package:{{project_name}}_ui_{{platform}}/{{project_name}}_ui_{{platform} /// /// Use the [locale] parameter to set the language of the app. /// -/// Use the [themeMode] parameter to customize the app's appearance. +/// Use the [{{^ios}}themeMode{{/ios}}{{#ios}}brightness{{/ios}}] parameter to customize the app's appearance. /// /// The [observer] parameter allows inspection of navigation events. /// Typically, a mocked instance is used for verification purposes. diff --git a/bricks/platform_tab_flow_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart b/bricks/platform_tab_flow_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart index 6a782703..81c51fde 100644 --- a/bricks/platform_tab_flow_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart +++ b/bricks/platform_tab_flow_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart @@ -10,7 +10,7 @@ import 'package:{{project_name}}_ui_{{platform}}/{{project_name}}_ui_{{platform} /// /// Use the [locale] parameter to set the language of the app. /// -/// Use the [themeMode] parameter to customize the app's appearance. +/// Use the [{{^ios}}themeMode{{/ios}}{{#ios}}brightness{{/ios}}] parameter to customize the app's appearance. /// /// The [observer] parameter allows inspection of navigation events. /// Typically, a mocked instance is used for verification purposes. diff --git a/bricks/platform_widget_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart b/bricks/platform_widget_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart index 5c939afd..811d871a 100644 --- a/bricks/platform_widget_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart +++ b/bricks/platform_widget_feature_package/__brick__/test/src/presentation/helpers/pump_app.dart @@ -8,7 +8,7 @@ import 'package:{{project_name}}_ui_{{platform}}/{{project_name}}_ui_{{platform} /// /// Use the [locale] parameter to set the language of the app. /// -/// Use the [themeMode] parameter to customize the app's appearance. +/// Use the [{{^ios}}themeMode{{/ios}}{{#ios}}brightness{{/ios}}] parameter to customize the app's appearance. /// /// The [observer] parameter allows inspection of navigation events. /// Typically, a mocked instance is used for verification purposes. diff --git a/bricks/themed_widget/__brick__/test/src/{{name.snakeCase()}}_test.dart b/bricks/themed_widget/__brick__/test/src/{{name.snakeCase()}}_test.dart index e58b82f0..f737665b 100644 --- a/bricks/themed_widget/__brick__/test/src/{{name.snakeCase()}}_test.dart +++ b/bricks/themed_widget/__brick__/test/src/{{name.snakeCase()}}_test.dart @@ -30,7 +30,7 @@ void main() { themeMode: ThemeMode.light, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -47,7 +47,7 @@ void main() { themeMode: ThemeMode.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -95,7 +95,7 @@ void main() { themeMode: ThemeMode.light, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -112,7 +112,7 @@ void main() { themeMode: ThemeMode.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -158,7 +158,7 @@ void main() { brightness: Brightness.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -175,7 +175,7 @@ void main() { brightness: Brightness.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -223,7 +223,7 @@ void main() { themeMode: ThemeMode.light, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -240,7 +240,7 @@ void main() { themeMode: ThemeMode.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -288,7 +288,7 @@ void main() { themeMode: ThemeMode.light, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -305,7 +305,7 @@ void main() { themeMode: ThemeMode.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -353,7 +353,7 @@ void main() { themeMode: ThemeMode.light, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -370,7 +370,7 @@ void main() { themeMode: ThemeMode.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -416,7 +416,7 @@ void main() { themeMode: ThemeMode.light, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -433,7 +433,7 @@ void main() { themeMode: ThemeMode.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -479,7 +479,7 @@ void main() { themeMode: ThemeMode.light, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), @@ -496,7 +496,7 @@ void main() { themeMode: ThemeMode.dark, widget: _get{{project_name.pascalCase()}}{{name.pascalCase()}}( theme: - const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12)), + const {{project_name.pascalCase()}}{{name.pascalCase()}}Theme(backgroundColor: Color(0xFF12FF12),), ), ), ), diff --git a/packages/rapid_cli/lib/src/commands/platform.dart b/packages/rapid_cli/lib/src/commands/platform.dart index 96fae77b..d2af489a 100644 --- a/packages/rapid_cli/lib/src/commands/platform.dart +++ b/packages/rapid_cli/lib/src/commands/platform.dart @@ -564,7 +564,11 @@ mixin _PlatformMixin on _Rapid { final rootPackage = platformDirectory.rootPackage; final remainingFeaturePackages = featuresDirectory.featurePackages() - ..remove(featurePackage); + ..removeWhere( + (e) => + e.path == featurePackage.path && + e.packageName == featurePackage.packageName, + ); logger.newLine(); diff --git a/packages/rapid_cli/lib/src/project/bundles/platform_flow_feature_package_bundle.dart b/packages/rapid_cli/lib/src/project/bundles/platform_flow_feature_package_bundle.dart index 35e00068..36c5d5d0 100644 --- a/packages/rapid_cli/lib/src/project/bundles/platform_flow_feature_package_bundle.dart +++ b/packages/rapid_cli/lib/src/project/bundles/platform_flow_feature_package_bundle.dart @@ -120,7 +120,7 @@ final platformFlowFeaturePackageBundle = MasonBundle.fromJson({ { "path": "test/src/presentation/helpers/pump_app.dart", "data": - "aW1wb3J0ICdwYWNrYWdlOmF1dG9fcm91dGUvYXV0b19yb3V0ZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfYmxvYy9mbHV0dGVyX2Jsb2MuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fYXBwL3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X2FwcC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X3t7bmFtZS5zbmFrZUNhc2UoKX19L3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV91aV97e3BsYXRmb3JtfX0ve3twcm9qZWN0X25hbWV9fV91aV97e3BsYXRmb3JtfX0uZGFydCc7CgovLy8gV3JhcHMgW3dpZGdldF0gd2l0aCBhIGZ1bGx5IGZ1bmN0aW9uYWwgW0FwcF0uCi8vLwovLy8gVXNlIHRoZSBbbG9jYWxlXSBwYXJhbWV0ZXIgdG8gc2V0IHRoZSBsYW5ndWFnZSBvZiB0aGUgYXBwLgovLy8KLy8vIFVzZSB0aGUgW3RoZW1lTW9kZV0gcGFyYW1ldGVyIHRvIGN1c3RvbWl6ZSB0aGUgYXBwJ3MgYXBwZWFyYW5jZS4KLy8vCi8vLyBUaGUgW29ic2VydmVyXSBwYXJhbWV0ZXIgYWxsb3dzIGluc3BlY3Rpb24gb2YgbmF2aWdhdGlvbiBldmVudHMuCi8vLyBUeXBpY2FsbHksIGEgbW9ja2VkIGluc3RhbmNlIGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBwdXJwb3Nlcy4KLy8vCi8vLyBUaGUgW3Byb3ZpZGVyc10gcGFyYW1ldGVyIGVuYWJsZXMgaW5qZWN0aW9uIG9mIGJsb2NzIG9yIGN1Yml0cwovLy8gaW50byB0aGUgd2lkZ2V0IHRyZWUgYWJvdmUgW3dpZGdldF0uCi8vLwovLy8gU2V0IHRoZSBbd2l0aFNjYWZmb2xkXSBvcHRpb24gdG8gd3JhcCBbd2lkZ2V0XSB3aXRoIGEKLy8vIFt7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkXS4KLy8vIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIHRlc3Rpbmcgc3Vid2lkZ2V0cyB3aXRoaW4gYSBwYWdlIG9yIGZsb3cuCldpZGdldCBhcHBXcmFwcGVyKHsKICBMb2NhbGU/IGxvY2FsZSwKICB7eyNhbmRyb2lkfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319QnJpZ2h0bmVzcz8gYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICBOYXZpZ2F0b3JPYnNlcnZlcj8gb2JzZXJ2ZXIsCiAgTGlzdDxCbG9jUHJvdmlkZXI+IHByb3ZpZGVycyA9IGNvbnN0IFtdLAogIGJvb2wgd2l0aFNjYWZmb2xkID0gZmFsc2UsCiAgcmVxdWlyZWQgV2lkZ2V0IHdpZGdldCwKfSkgewogIFdpZGdldCBjaGlsZDsKICBpZiAocHJvdmlkZXJzLmlzRW1wdHkpIHsKICAgIGNoaWxkID0gd2lkZ2V0OwogIH0gZWxzZSB7CiAgICBjaGlsZCA9IE11bHRpQmxvY1Byb3ZpZGVyKAogICAgICBwcm92aWRlcnM6IHByb3ZpZGVycywKICAgICAgY2hpbGQ6IHdpZGdldCwKICAgICk7CiAgfQoKICBpZiAod2l0aFNjYWZmb2xkKSB7Cnt7Xm1hY29zfX0gICAgY2hpbGQgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkKGJvZHk6IGNoaWxkKTt7ey9tYWNvc319Cnt7I21hY29zfX0gICAgY2hpbGQgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkKGNoaWxkcmVuOiBbY2hpbGRdKTt7ey9tYWNvc319CiAgfQoKICByZXR1cm4gQXBwLnRlc3QoCiAgICBsb2NhbGU6IGxvY2FsZSwKICAgIHt7I2FuZHJvaWR9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svYW5kcm9pZH19e3sjaW9zfX1icmlnaHRuZXNzOiBicmlnaHRuZXNze3svaW9zfX17eyNsaW51eH19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9saW51eH19e3sjbWFjb3N9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbWFjb3N9fXt7I3dlYn19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey93ZWJ9fXt7I3dpbmRvd3N9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2luZG93c319e3sjbW9iaWxlfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21vYmlsZX19LAogICAgcm91dGVyOiBfVGVzdFJvdXRlcihjaGlsZCksCiAgICBuYXZpZ2F0b3JPYnNlcnZlcjogb2JzZXJ2ZXIsCiAgKTsKfQoKZXh0ZW5zaW9uIFdpZGdldFRlc3Rlclggb24gV2lkZ2V0VGVzdGVyIHsKICBGdXR1cmU8dm9pZD4gcHVtcEFwcCh7CiAgICBMb2NhbGU/IGxvY2FsZSwKICAgIHt7I2FuZHJvaWR9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svYW5kcm9pZH19e3sjaW9zfX1CcmlnaHRuZXNzPyBicmlnaHRuZXNze3svaW9zfX17eyNsaW51eH19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9saW51eH19e3sjbWFjb3N9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbWFjb3N9fXt7I3dlYn19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey93ZWJ9fXt7I3dpbmRvd3N9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2luZG93c319e3sjbW9iaWxlfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21vYmlsZX19LAogICAgTmF2aWdhdG9yT2JzZXJ2ZXI/IG9ic2VydmVyLAogICAgTGlzdDxCbG9jUHJvdmlkZXI+IHByb3ZpZGVycyA9IGNvbnN0IFtdLAogICAgYm9vbCB3aXRoU2NhZmZvbGQgPSBmYWxzZSwKICAgIHJlcXVpcmVkIFdpZGdldCB3aWRnZXQsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgcHVtcFdpZGdldCgKICAgICAgYXBwV3JhcHBlcigKICAgICAgICBsb2NhbGU6IGxvY2FsZSwKICAgICAgICB7eyNhbmRyb2lkfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319YnJpZ2h0bmVzczogYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICAgICAgICBvYnNlcnZlcjogb2JzZXJ2ZXIsCiAgICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMsCiAgICAgICAgd2l0aFNjYWZmb2xkOiB3aXRoU2NhZmZvbGQsCiAgICAgICAgd2lkZ2V0OiB3aWRnZXQsCiAgICAgICksCiAgICApOwogICAgYXdhaXQgcHVtcCgpOwogIH0KfQoKY29uc3QgbmVzdGVkUm91dGVBID0gX1Rlc3RSb3V0ZShuYW1lOiAnTmVzdGVkUm91dGVBJyk7CgpjbGFzcyBfVGVzdFJvdXRlciBleHRlbmRzIFJvb3RTdGFja1JvdXRlciB7CiAgX1Rlc3RSb3V0ZXIodGhpcy53aWRnZXQpOwoKICBmaW5hbCBXaWRnZXQgd2lkZ2V0OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBQYWdlRmFjdG9yeT4gZ2V0IHBhZ2VzTWFwID0+IHsKICAgICAgICB7e25hbWUucGFzY2FsQ2FzZSgpfX1Sb3V0ZS5uYW1lOiAocm91dGVEYXRhKSB7CiAgICAgICAgICByZXR1cm4gQXV0b1JvdXRlUGFnZTxkeW5hbWljPigKICAgICAgICAgICAgcm91dGVEYXRhOiByb3V0ZURhdGEsCiAgICAgICAgICAgIGNoaWxkOiB3aWRnZXQsCiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgbmVzdGVkUm91dGVBLm5hbWU6IChyb3V0ZURhdGEpIHsKICAgICAgICAgIHJldHVybiBBdXRvUm91dGVQYWdlPGR5bmFtaWM+KAogICAgICAgICAgICByb3V0ZURhdGE6IHJvdXRlRGF0YSwKICAgICAgICAgICAgY2hpbGQ6IF9QbGFjZWhvbGRlcihuYW1lOiBuZXN0ZWRSb3V0ZUEubmFtZSksCiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgIH07CgogIEBvdmVycmlkZQogIExpc3Q8QXV0b1JvdXRlPiBnZXQgcm91dGVzID0+IFsKICAgICAgICBBdXRvUm91dGUoCiAgICAgICAgICBpbml0aWFsOiB0cnVlLAogICAgICAgICAgcGFnZTogY29uc3QgUGFnZUluZm8oe3tuYW1lLnBhc2NhbENhc2UoKX19Um91dGUubmFtZSksCiAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICBBdXRvUm91dGUoCiAgICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSwKICAgICAgICAgICAgICBwYWdlOiBuZXN0ZWRSb3V0ZUEucGFnZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgKSwKICAgICAgXTsKfQoKY2xhc3MgX1Rlc3RSb3V0ZSBleHRlbmRzIFBhZ2VSb3V0ZUluZm88dm9pZD4gewogIGNvbnN0IF9UZXN0Um91dGUoewogICAgcmVxdWlyZWQgdGhpcy5uYW1lLAogICAgTGlzdDxQYWdlUm91dGVJbmZvPj8gY2hpbGRyZW4sCiAgfSkgOiBzdXBlcigKICAgICAgICAgIG5hbWUsCiAgICAgICAgICBpbml0aWFsQ2hpbGRyZW46IGNoaWxkcmVuLAogICAgICAgICk7CgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICBQYWdlSW5mbzx2b2lkPiBnZXQgcGFnZSA9PiBQYWdlSW5mbzx2b2lkPihuYW1lKTsKfQoKY2xhc3MgX1BsYWNlaG9sZGVyIGV4dGVuZHMgU3RhdGVsZXNzV2lkZ2V0IHsKICBjb25zdCBfUGxhY2Vob2xkZXIoe3JlcXVpcmVkIHRoaXMubmFtZX0pOwoKICBmaW5hbCBTdHJpbmcgbmFtZTsKCiAgQG92ZXJyaWRlCiAgV2lkZ2V0IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1TY2FmZm9sZCgKe3sjbWFjb3N9fSAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgQ29udGVudEFyZWEoCiAgICAgICAgICBidWlsZGVyOiAoY29udGV4dCwgXykgewogICAgICAgICAgICByZXR1cm4gU3RhY2soCiAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgIGNvbnN0IFBsYWNlaG9sZGVyKCksCiAgICAgICAgICAgICAgICBDZW50ZXIoCiAgICAgICAgICAgICAgICAgIGNoaWxkOiBDb2xvcmVkQm94KAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb25zdCBDb2xvcigweEZGRkZGRkZGKSwKICAgICAgICAgICAgICAgICAgICBjaGlsZDogVGV4dCgKICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogY29uc3QgVGV4dFN0eWxlKAogICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogQ29sb3IoMHhGRjAwMDAwMCksCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICB9LAogICAgICAgICksCiAgICAgIF0sCnt7L21hY29zfX17e15tYWNvc319ICAgICAgYm9keTogU3RhY2soCiAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgIGNvbnN0IFBsYWNlaG9sZGVyKCksCiAgICAgICAgICBDZW50ZXIoCiAgICAgICAgICAgIGNoaWxkOiBDb2xvcmVkQm94KAogICAgICAgICAgICAgIGNvbG9yOiBjb25zdCBDb2xvcigweEZGRkZGRkZGKSwKICAgICAgICAgICAgICBjaGlsZDogVGV4dCgKICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICBzdHlsZTogY29uc3QgVGV4dFN0eWxlKAogICAgICAgICAgICAgICAgICBjb2xvcjogQ29sb3IoMHhGRjAwMDAwMCksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICkse3svbWFjb3N9fQogICAgKTsKICB9Cn0K", + "aW1wb3J0ICdwYWNrYWdlOmF1dG9fcm91dGUvYXV0b19yb3V0ZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfYmxvYy9mbHV0dGVyX2Jsb2MuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fYXBwL3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X2FwcC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X3t7bmFtZS5zbmFrZUNhc2UoKX19L3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV91aV97e3BsYXRmb3JtfX0ve3twcm9qZWN0X25hbWV9fV91aV97e3BsYXRmb3JtfX0uZGFydCc7CgovLy8gV3JhcHMgW3dpZGdldF0gd2l0aCBhIGZ1bGx5IGZ1bmN0aW9uYWwgW0FwcF0uCi8vLwovLy8gVXNlIHRoZSBbbG9jYWxlXSBwYXJhbWV0ZXIgdG8gc2V0IHRoZSBsYW5ndWFnZSBvZiB0aGUgYXBwLgovLy8KLy8vIFVzZSB0aGUgW3t7Xmlvc319dGhlbWVNb2Rle3svaW9zfX17eyNpb3N9fWJyaWdodG5lc3N7ey9pb3N9fV0gcGFyYW1ldGVyIHRvIGN1c3RvbWl6ZSB0aGUgYXBwJ3MgYXBwZWFyYW5jZS4KLy8vCi8vLyBUaGUgW29ic2VydmVyXSBwYXJhbWV0ZXIgYWxsb3dzIGluc3BlY3Rpb24gb2YgbmF2aWdhdGlvbiBldmVudHMuCi8vLyBUeXBpY2FsbHksIGEgbW9ja2VkIGluc3RhbmNlIGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBwdXJwb3Nlcy4KLy8vCi8vLyBUaGUgW3Byb3ZpZGVyc10gcGFyYW1ldGVyIGVuYWJsZXMgaW5qZWN0aW9uIG9mIGJsb2NzIG9yIGN1Yml0cwovLy8gaW50byB0aGUgd2lkZ2V0IHRyZWUgYWJvdmUgW3dpZGdldF0uCi8vLwovLy8gU2V0IHRoZSBbd2l0aFNjYWZmb2xkXSBvcHRpb24gdG8gd3JhcCBbd2lkZ2V0XSB3aXRoIGEKLy8vIFt7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkXS4KLy8vIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIHRlc3Rpbmcgc3Vid2lkZ2V0cyB3aXRoaW4gYSBwYWdlIG9yIGZsb3cuCldpZGdldCBhcHBXcmFwcGVyKHsKICBMb2NhbGU/IGxvY2FsZSwKICB7eyNhbmRyb2lkfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319QnJpZ2h0bmVzcz8gYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICBOYXZpZ2F0b3JPYnNlcnZlcj8gb2JzZXJ2ZXIsCiAgTGlzdDxCbG9jUHJvdmlkZXI+IHByb3ZpZGVycyA9IGNvbnN0IFtdLAogIGJvb2wgd2l0aFNjYWZmb2xkID0gZmFsc2UsCiAgcmVxdWlyZWQgV2lkZ2V0IHdpZGdldCwKfSkgewogIFdpZGdldCBjaGlsZDsKICBpZiAocHJvdmlkZXJzLmlzRW1wdHkpIHsKICAgIGNoaWxkID0gd2lkZ2V0OwogIH0gZWxzZSB7CiAgICBjaGlsZCA9IE11bHRpQmxvY1Byb3ZpZGVyKAogICAgICBwcm92aWRlcnM6IHByb3ZpZGVycywKICAgICAgY2hpbGQ6IHdpZGdldCwKICAgICk7CiAgfQoKICBpZiAod2l0aFNjYWZmb2xkKSB7Cnt7Xm1hY29zfX0gICAgY2hpbGQgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkKGJvZHk6IGNoaWxkKTt7ey9tYWNvc319Cnt7I21hY29zfX0gICAgY2hpbGQgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkKGNoaWxkcmVuOiBbY2hpbGRdKTt7ey9tYWNvc319CiAgfQoKICByZXR1cm4gQXBwLnRlc3QoCiAgICBsb2NhbGU6IGxvY2FsZSwKICAgIHt7I2FuZHJvaWR9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svYW5kcm9pZH19e3sjaW9zfX1icmlnaHRuZXNzOiBicmlnaHRuZXNze3svaW9zfX17eyNsaW51eH19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9saW51eH19e3sjbWFjb3N9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbWFjb3N9fXt7I3dlYn19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey93ZWJ9fXt7I3dpbmRvd3N9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2luZG93c319e3sjbW9iaWxlfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21vYmlsZX19LAogICAgcm91dGVyOiBfVGVzdFJvdXRlcihjaGlsZCksCiAgICBuYXZpZ2F0b3JPYnNlcnZlcjogb2JzZXJ2ZXIsCiAgKTsKfQoKZXh0ZW5zaW9uIFdpZGdldFRlc3Rlclggb24gV2lkZ2V0VGVzdGVyIHsKICBGdXR1cmU8dm9pZD4gcHVtcEFwcCh7CiAgICBMb2NhbGU/IGxvY2FsZSwKICAgIHt7I2FuZHJvaWR9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svYW5kcm9pZH19e3sjaW9zfX1CcmlnaHRuZXNzPyBicmlnaHRuZXNze3svaW9zfX17eyNsaW51eH19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9saW51eH19e3sjbWFjb3N9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbWFjb3N9fXt7I3dlYn19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey93ZWJ9fXt7I3dpbmRvd3N9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2luZG93c319e3sjbW9iaWxlfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21vYmlsZX19LAogICAgTmF2aWdhdG9yT2JzZXJ2ZXI/IG9ic2VydmVyLAogICAgTGlzdDxCbG9jUHJvdmlkZXI+IHByb3ZpZGVycyA9IGNvbnN0IFtdLAogICAgYm9vbCB3aXRoU2NhZmZvbGQgPSBmYWxzZSwKICAgIHJlcXVpcmVkIFdpZGdldCB3aWRnZXQsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgcHVtcFdpZGdldCgKICAgICAgYXBwV3JhcHBlcigKICAgICAgICBsb2NhbGU6IGxvY2FsZSwKICAgICAgICB7eyNhbmRyb2lkfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319YnJpZ2h0bmVzczogYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICAgICAgICBvYnNlcnZlcjogb2JzZXJ2ZXIsCiAgICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMsCiAgICAgICAgd2l0aFNjYWZmb2xkOiB3aXRoU2NhZmZvbGQsCiAgICAgICAgd2lkZ2V0OiB3aWRnZXQsCiAgICAgICksCiAgICApOwogICAgYXdhaXQgcHVtcCgpOwogIH0KfQoKY29uc3QgbmVzdGVkUm91dGVBID0gX1Rlc3RSb3V0ZShuYW1lOiAnTmVzdGVkUm91dGVBJyk7CgpjbGFzcyBfVGVzdFJvdXRlciBleHRlbmRzIFJvb3RTdGFja1JvdXRlciB7CiAgX1Rlc3RSb3V0ZXIodGhpcy53aWRnZXQpOwoKICBmaW5hbCBXaWRnZXQgd2lkZ2V0OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBQYWdlRmFjdG9yeT4gZ2V0IHBhZ2VzTWFwID0+IHsKICAgICAgICB7e25hbWUucGFzY2FsQ2FzZSgpfX1Sb3V0ZS5uYW1lOiAocm91dGVEYXRhKSB7CiAgICAgICAgICByZXR1cm4gQXV0b1JvdXRlUGFnZTxkeW5hbWljPigKICAgICAgICAgICAgcm91dGVEYXRhOiByb3V0ZURhdGEsCiAgICAgICAgICAgIGNoaWxkOiB3aWRnZXQsCiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgbmVzdGVkUm91dGVBLm5hbWU6IChyb3V0ZURhdGEpIHsKICAgICAgICAgIHJldHVybiBBdXRvUm91dGVQYWdlPGR5bmFtaWM+KAogICAgICAgICAgICByb3V0ZURhdGE6IHJvdXRlRGF0YSwKICAgICAgICAgICAgY2hpbGQ6IF9QbGFjZWhvbGRlcihuYW1lOiBuZXN0ZWRSb3V0ZUEubmFtZSksCiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgIH07CgogIEBvdmVycmlkZQogIExpc3Q8QXV0b1JvdXRlPiBnZXQgcm91dGVzID0+IFsKICAgICAgICBBdXRvUm91dGUoCiAgICAgICAgICBpbml0aWFsOiB0cnVlLAogICAgICAgICAgcGFnZTogY29uc3QgUGFnZUluZm8oe3tuYW1lLnBhc2NhbENhc2UoKX19Um91dGUubmFtZSksCiAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICBBdXRvUm91dGUoCiAgICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSwKICAgICAgICAgICAgICBwYWdlOiBuZXN0ZWRSb3V0ZUEucGFnZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgKSwKICAgICAgXTsKfQoKY2xhc3MgX1Rlc3RSb3V0ZSBleHRlbmRzIFBhZ2VSb3V0ZUluZm88dm9pZD4gewogIGNvbnN0IF9UZXN0Um91dGUoewogICAgcmVxdWlyZWQgdGhpcy5uYW1lLAogICAgTGlzdDxQYWdlUm91dGVJbmZvPj8gY2hpbGRyZW4sCiAgfSkgOiBzdXBlcigKICAgICAgICAgIG5hbWUsCiAgICAgICAgICBpbml0aWFsQ2hpbGRyZW46IGNoaWxkcmVuLAogICAgICAgICk7CgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICBQYWdlSW5mbzx2b2lkPiBnZXQgcGFnZSA9PiBQYWdlSW5mbzx2b2lkPihuYW1lKTsKfQoKY2xhc3MgX1BsYWNlaG9sZGVyIGV4dGVuZHMgU3RhdGVsZXNzV2lkZ2V0IHsKICBjb25zdCBfUGxhY2Vob2xkZXIoe3JlcXVpcmVkIHRoaXMubmFtZX0pOwoKICBmaW5hbCBTdHJpbmcgbmFtZTsKCiAgQG92ZXJyaWRlCiAgV2lkZ2V0IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1TY2FmZm9sZCgKe3sjbWFjb3N9fSAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgQ29udGVudEFyZWEoCiAgICAgICAgICBidWlsZGVyOiAoY29udGV4dCwgXykgewogICAgICAgICAgICByZXR1cm4gU3RhY2soCiAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgIGNvbnN0IFBsYWNlaG9sZGVyKCksCiAgICAgICAgICAgICAgICBDZW50ZXIoCiAgICAgICAgICAgICAgICAgIGNoaWxkOiBDb2xvcmVkQm94KAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb25zdCBDb2xvcigweEZGRkZGRkZGKSwKICAgICAgICAgICAgICAgICAgICBjaGlsZDogVGV4dCgKICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogY29uc3QgVGV4dFN0eWxlKAogICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogQ29sb3IoMHhGRjAwMDAwMCksCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICB9LAogICAgICAgICksCiAgICAgIF0sCnt7L21hY29zfX17e15tYWNvc319ICAgICAgYm9keTogU3RhY2soCiAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgIGNvbnN0IFBsYWNlaG9sZGVyKCksCiAgICAgICAgICBDZW50ZXIoCiAgICAgICAgICAgIGNoaWxkOiBDb2xvcmVkQm94KAogICAgICAgICAgICAgIGNvbG9yOiBjb25zdCBDb2xvcigweEZGRkZGRkZGKSwKICAgICAgICAgICAgICBjaGlsZDogVGV4dCgKICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICBzdHlsZTogY29uc3QgVGV4dFN0eWxlKAogICAgICAgICAgICAgICAgICBjb2xvcjogQ29sb3IoMHhGRjAwMDAwMCksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICkse3svbWFjb3N9fQogICAgKTsKICB9Cn0K", "type": "text" }, { diff --git a/packages/rapid_cli/lib/src/project/bundles/platform_tab_flow_feature_package_bundle.dart b/packages/rapid_cli/lib/src/project/bundles/platform_tab_flow_feature_package_bundle.dart index 6f98c991..aa640920 100644 --- a/packages/rapid_cli/lib/src/project/bundles/platform_tab_flow_feature_package_bundle.dart +++ b/packages/rapid_cli/lib/src/project/bundles/platform_tab_flow_feature_package_bundle.dart @@ -121,7 +121,7 @@ final platformTabFlowFeaturePackageBundle = { "path": "test/src/presentation/helpers/pump_app.dart", "data": - "aW1wb3J0ICdwYWNrYWdlOmF1dG9fcm91dGUvYXV0b19yb3V0ZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfYmxvYy9mbHV0dGVyX2Jsb2MuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fYXBwL3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X2FwcC5kYXJ0JzsKe3sjc3ViUm91dGVzfX1pbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fe3tuYW1lLnNuYWtlQ2FzZSgpfX0ve3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fe3tuYW1lLnNuYWtlQ2FzZSgpfX0uZGFydCc7e3svc3ViUm91dGVzfX0KaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X3t7bmFtZS5zbmFrZUNhc2UoKX19L3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV91aV97e3BsYXRmb3JtfX0ve3twcm9qZWN0X25hbWV9fV91aV97e3BsYXRmb3JtfX0uZGFydCc7CgovLy8gV3JhcHMgW3dpZGdldF0gd2l0aCBhIGZ1bGx5IGZ1bmN0aW9uYWwgW0FwcF0uCi8vLwovLy8gVXNlIHRoZSBbbG9jYWxlXSBwYXJhbWV0ZXIgdG8gc2V0IHRoZSBsYW5ndWFnZSBvZiB0aGUgYXBwLgovLy8KLy8vIFVzZSB0aGUgW3RoZW1lTW9kZV0gcGFyYW1ldGVyIHRvIGN1c3RvbWl6ZSB0aGUgYXBwJ3MgYXBwZWFyYW5jZS4KLy8vCi8vLyBUaGUgW29ic2VydmVyXSBwYXJhbWV0ZXIgYWxsb3dzIGluc3BlY3Rpb24gb2YgbmF2aWdhdGlvbiBldmVudHMuCi8vLyBUeXBpY2FsbHksIGEgbW9ja2VkIGluc3RhbmNlIGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBwdXJwb3Nlcy4KLy8vCi8vLyBUaGUgW3Byb3ZpZGVyc10gcGFyYW1ldGVyIGVuYWJsZXMgaW5qZWN0aW9uIG9mIGJsb2NzIG9yIGN1Yml0cwovLy8gaW50byB0aGUgd2lkZ2V0IHRyZWUgYWJvdmUgW3dpZGdldF0uCi8vLwovLy8gU2V0IHRoZSBbd2l0aFNjYWZmb2xkXSBvcHRpb24gdG8gd3JhcCBbd2lkZ2V0XSB3aXRoIGEKLy8vIFt7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkXS4KLy8vIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIHRlc3Rpbmcgc3Vid2lkZ2V0cyB3aXRoaW4gYSBwYWdlIG9yIGZsb3cuCldpZGdldCBhcHBXcmFwcGVyKHsKICBMb2NhbGU/IGxvY2FsZSwKICB7eyNhbmRyb2lkfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319QnJpZ2h0bmVzcz8gYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICBOYXZpZ2F0b3JPYnNlcnZlcj8gb2JzZXJ2ZXIsCiAgTGlzdDxCbG9jUHJvdmlkZXI+IHByb3ZpZGVycyA9IGNvbnN0IFtdLAogIGJvb2wgd2l0aFNjYWZmb2xkID0gZmFsc2UsCiAgcmVxdWlyZWQgV2lkZ2V0IHdpZGdldCwKfSkgewogIFdpZGdldCBjaGlsZDsKICBpZiAocHJvdmlkZXJzLmlzRW1wdHkpIHsKICAgIGNoaWxkID0gd2lkZ2V0OwogIH0gZWxzZSB7CiAgICBjaGlsZCA9IE11bHRpQmxvY1Byb3ZpZGVyKAogICAgICBwcm92aWRlcnM6IHByb3ZpZGVycywKICAgICAgY2hpbGQ6IHdpZGdldCwKICAgICk7CiAgfQoKICBpZiAod2l0aFNjYWZmb2xkKSB7Cnt7Xm1hY29zfX0gICAgY2hpbGQgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkKGJvZHk6IGNoaWxkKTt7ey9tYWNvc319Cnt7I21hY29zfX0gICAgY2hpbGQgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkKGNoaWxkcmVuOiBbY2hpbGRdKTt7ey9tYWNvc319CiAgfQoKICByZXR1cm4gQXBwLnRlc3QoCiAgICBsb2NhbGU6IGxvY2FsZSwKICAgIHt7I2FuZHJvaWR9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svYW5kcm9pZH19e3sjaW9zfX1icmlnaHRuZXNzOiBicmlnaHRuZXNze3svaW9zfX17eyNsaW51eH19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9saW51eH19e3sjbWFjb3N9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbWFjb3N9fXt7I3dlYn19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey93ZWJ9fXt7I3dpbmRvd3N9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2luZG93c319e3sjbW9iaWxlfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21vYmlsZX19LAogICAgcm91dGVyOiBfVGVzdFJvdXRlcihjaGlsZCksCiAgICBuYXZpZ2F0b3JPYnNlcnZlcjogb2JzZXJ2ZXIsCiAgKTsKfQoKZXh0ZW5zaW9uIFdpZGdldFRlc3Rlclggb24gV2lkZ2V0VGVzdGVyIHsKICBGdXR1cmU8dm9pZD4gcHVtcEFwcCh7CiAgICBMb2NhbGU/IGxvY2FsZSwKICAgIHt7I2FuZHJvaWR9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svYW5kcm9pZH19e3sjaW9zfX1CcmlnaHRuZXNzPyBicmlnaHRuZXNze3svaW9zfX17eyNsaW51eH19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9saW51eH19e3sjbWFjb3N9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbWFjb3N9fXt7I3dlYn19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey93ZWJ9fXt7I3dpbmRvd3N9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2luZG93c319e3sjbW9iaWxlfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21vYmlsZX19LAogICAgTmF2aWdhdG9yT2JzZXJ2ZXI/IG9ic2VydmVyLAogICAgTGlzdDxCbG9jUHJvdmlkZXI+IHByb3ZpZGVycyA9IGNvbnN0IFtdLAogICAgYm9vbCB3aXRoU2NhZmZvbGQgPSBmYWxzZSwKICAgIHJlcXVpcmVkIFdpZGdldCB3aWRnZXQsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgcHVtcFdpZGdldCgKICAgICAgYXBwV3JhcHBlcigKICAgICAgICBsb2NhbGU6IGxvY2FsZSwKICAgICAgICB7eyNhbmRyb2lkfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319YnJpZ2h0bmVzczogYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICAgICAgICBvYnNlcnZlcjogb2JzZXJ2ZXIsCiAgICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMsCiAgICAgICAgd2l0aFNjYWZmb2xkOiB3aXRoU2NhZmZvbGQsCiAgICAgICAgd2lkZ2V0OiB3aWRnZXQsCiAgICAgICksCiAgICApOwogICAgYXdhaXQgcHVtcCgpOwogIH0KfQoKY2xhc3MgX1Rlc3RSb3V0ZXIgZXh0ZW5kcyBSb290U3RhY2tSb3V0ZXIgewogIF9UZXN0Um91dGVyKHRoaXMud2lkZ2V0KTsKCiAgZmluYWwgV2lkZ2V0IHdpZGdldDsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgUGFnZUZhY3Rvcnk+IGdldCBwYWdlc01hcCA9PiB7CiAgICAgICAge3tuYW1lLnBhc2NhbENhc2UoKX19Um91dGUubmFtZTogKHJvdXRlRGF0YSkgewogICAgICAgICAgcmV0dXJuIEF1dG9Sb3V0ZVBhZ2U8ZHluYW1pYz4oCiAgICAgICAgICAgIHJvdXRlRGF0YTogcm91dGVEYXRhLAogICAgICAgICAgICBjaGlsZDogd2lkZ2V0LAogICAgICAgICAgKTsKICAgICAgICB9LAp7eyNzdWJSb3V0ZXN9fSAgICAgICAgIHt7bmFtZS5wYXNjYWxDYXNlKCl9fVJvdXRlLm5hbWU6IChyb3V0ZURhdGEpIHsKICAgICAgICAgIHJldHVybiBBdXRvUm91dGVQYWdlPGR5bmFtaWM+KAogICAgICAgICAgICByb3V0ZURhdGE6IHJvdXRlRGF0YSwKICAgICAgICAgICAgY2hpbGQ6IGNvbnN0IF9QbGFjZWhvbGRlcihuYW1lOiB7e25hbWUucGFzY2FsQ2FzZSgpfX1Sb3V0ZS5uYW1lKSwKICAgICAgICAgICk7CiAgICAgICAgfSx7ey9zdWJSb3V0ZXN9fQogICAgICB9OwoKICBAb3ZlcnJpZGUKICBMaXN0PEF1dG9Sb3V0ZT4gZ2V0IHJvdXRlcyA9PiBbCiAgICAgICAgQXV0b1JvdXRlKAogICAgICAgICAgaW5pdGlhbDogdHJ1ZSwKICAgICAgICAgIHBhZ2U6IGNvbnN0IFBhZ2VJbmZvKHt7bmFtZS5wYXNjYWxDYXNlKCl9fVJvdXRlLm5hbWUpLAogICAgICAgICAgY2hpbGRyZW46IFt7eyNzdWJSb3V0ZXN9fQogICAgICAgICAgICBBdXRvUm91dGUoCnt7I2lzRmlyc3R9fSAgICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSx7ey9pc0ZpcnN0fX0KICAgICAgICAgICAgICBwYWdlOiB7e25hbWUucGFzY2FsQ2FzZSgpfX1Sb3V0ZS5wYWdlLAogICAgICAgICAgICApLHt7L3N1YlJvdXRlc319CiAgICAgICAgICBdLAogICAgICAgICksCiAgICAgIF07Cn0KCmNsYXNzIF9QbGFjZWhvbGRlciBleHRlbmRzIFN0YXRlbGVzc1dpZGdldCB7CiAgY29uc3QgX1BsYWNlaG9sZGVyKHtyZXF1aXJlZCB0aGlzLm5hbWV9KTsKCiAgZmluYWwgU3RyaW5nIG5hbWU7CgogIEBvdmVycmlkZQogIFdpZGdldCBidWlsZChCdWlsZENvbnRleHQgY29udGV4dCkgewogICAgcmV0dXJuIHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19U2NhZmZvbGQoCnt7I21hY29zfX0gICAgICBjaGlsZHJlbjogWwogICAgICAgIENvbnRlbnRBcmVhKAogICAgICAgICAgYnVpbGRlcjogKGNvbnRleHQsIF8pIHsKICAgICAgICAgICAgcmV0dXJuIFN0YWNrKAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICBjb25zdCBQbGFjZWhvbGRlcigpLAogICAgICAgICAgICAgICAgQ2VudGVyKAogICAgICAgICAgICAgICAgICBjaGlsZDogQ29sb3JlZEJveCgKICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29uc3QgQ29sb3IoMHhGRkZGRkZGRiksCiAgICAgICAgICAgICAgICAgICAgY2hpbGQ6IFRleHQoCiAgICAgICAgICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGNvbnN0IFRleHRTdHlsZSgKICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IENvbG9yKDB4RkYwMDAwMDApLAogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICApOwogICAgICAgICAgfSwKICAgICAgICApLAogICAgICBdLAp7ey9tYWNvc319e3tebWFjb3N9fSAgICAgIGJvZHk6IFN0YWNrKAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBjb25zdCBQbGFjZWhvbGRlcigpLAogICAgICAgICAgQ2VudGVyKAogICAgICAgICAgICBjaGlsZDogQ29sb3JlZEJveCgKICAgICAgICAgICAgICBjb2xvcjogY29uc3QgQ29sb3IoMHhGRkZGRkZGRiksCiAgICAgICAgICAgICAgY2hpbGQ6IFRleHQoCiAgICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgICAgc3R5bGU6IGNvbnN0IFRleHRTdHlsZSgKICAgICAgICAgICAgICAgICAgY29sb3I6IENvbG9yKDB4RkYwMDAwMDApLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICApLHt7L21hY29zfX0KICAgICk7CiAgfQp9", + "aW1wb3J0ICdwYWNrYWdlOmF1dG9fcm91dGUvYXV0b19yb3V0ZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfYmxvYy9mbHV0dGVyX2Jsb2MuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fYXBwL3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X2FwcC5kYXJ0JzsKe3sjc3ViUm91dGVzfX1pbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fe3tuYW1lLnNuYWtlQ2FzZSgpfX0ve3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fe3tuYW1lLnNuYWtlQ2FzZSgpfX0uZGFydCc7e3svc3ViUm91dGVzfX0KaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X3t7bmFtZS5zbmFrZUNhc2UoKX19L3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV91aV97e3BsYXRmb3JtfX0ve3twcm9qZWN0X25hbWV9fV91aV97e3BsYXRmb3JtfX0uZGFydCc7CgovLy8gV3JhcHMgW3dpZGdldF0gd2l0aCBhIGZ1bGx5IGZ1bmN0aW9uYWwgW0FwcF0uCi8vLwovLy8gVXNlIHRoZSBbbG9jYWxlXSBwYXJhbWV0ZXIgdG8gc2V0IHRoZSBsYW5ndWFnZSBvZiB0aGUgYXBwLgovLy8KLy8vIFVzZSB0aGUgW3t7Xmlvc319dGhlbWVNb2Rle3svaW9zfX17eyNpb3N9fWJyaWdodG5lc3N7ey9pb3N9fV0gcGFyYW1ldGVyIHRvIGN1c3RvbWl6ZSB0aGUgYXBwJ3MgYXBwZWFyYW5jZS4KLy8vCi8vLyBUaGUgW29ic2VydmVyXSBwYXJhbWV0ZXIgYWxsb3dzIGluc3BlY3Rpb24gb2YgbmF2aWdhdGlvbiBldmVudHMuCi8vLyBUeXBpY2FsbHksIGEgbW9ja2VkIGluc3RhbmNlIGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBwdXJwb3Nlcy4KLy8vCi8vLyBUaGUgW3Byb3ZpZGVyc10gcGFyYW1ldGVyIGVuYWJsZXMgaW5qZWN0aW9uIG9mIGJsb2NzIG9yIGN1Yml0cwovLy8gaW50byB0aGUgd2lkZ2V0IHRyZWUgYWJvdmUgW3dpZGdldF0uCi8vLwovLy8gU2V0IHRoZSBbd2l0aFNjYWZmb2xkXSBvcHRpb24gdG8gd3JhcCBbd2lkZ2V0XSB3aXRoIGEKLy8vIFt7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkXS4KLy8vIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIHRlc3Rpbmcgc3Vid2lkZ2V0cyB3aXRoaW4gYSBwYWdlIG9yIGZsb3cuCldpZGdldCBhcHBXcmFwcGVyKHsKICBMb2NhbGU/IGxvY2FsZSwKICB7eyNhbmRyb2lkfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319QnJpZ2h0bmVzcz8gYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICBOYXZpZ2F0b3JPYnNlcnZlcj8gb2JzZXJ2ZXIsCiAgTGlzdDxCbG9jUHJvdmlkZXI+IHByb3ZpZGVycyA9IGNvbnN0IFtdLAogIGJvb2wgd2l0aFNjYWZmb2xkID0gZmFsc2UsCiAgcmVxdWlyZWQgV2lkZ2V0IHdpZGdldCwKfSkgewogIFdpZGdldCBjaGlsZDsKICBpZiAocHJvdmlkZXJzLmlzRW1wdHkpIHsKICAgIGNoaWxkID0gd2lkZ2V0OwogIH0gZWxzZSB7CiAgICBjaGlsZCA9IE11bHRpQmxvY1Byb3ZpZGVyKAogICAgICBwcm92aWRlcnM6IHByb3ZpZGVycywKICAgICAgY2hpbGQ6IHdpZGdldCwKICAgICk7CiAgfQoKICBpZiAod2l0aFNjYWZmb2xkKSB7Cnt7Xm1hY29zfX0gICAgY2hpbGQgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkKGJvZHk6IGNoaWxkKTt7ey9tYWNvc319Cnt7I21hY29zfX0gICAgY2hpbGQgPSB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fVNjYWZmb2xkKGNoaWxkcmVuOiBbY2hpbGRdKTt7ey9tYWNvc319CiAgfQoKICByZXR1cm4gQXBwLnRlc3QoCiAgICBsb2NhbGU6IGxvY2FsZSwKICAgIHt7I2FuZHJvaWR9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svYW5kcm9pZH19e3sjaW9zfX1icmlnaHRuZXNzOiBicmlnaHRuZXNze3svaW9zfX17eyNsaW51eH19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9saW51eH19e3sjbWFjb3N9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbWFjb3N9fXt7I3dlYn19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey93ZWJ9fXt7I3dpbmRvd3N9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2luZG93c319e3sjbW9iaWxlfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21vYmlsZX19LAogICAgcm91dGVyOiBfVGVzdFJvdXRlcihjaGlsZCksCiAgICBuYXZpZ2F0b3JPYnNlcnZlcjogb2JzZXJ2ZXIsCiAgKTsKfQoKZXh0ZW5zaW9uIFdpZGdldFRlc3Rlclggb24gV2lkZ2V0VGVzdGVyIHsKICBGdXR1cmU8dm9pZD4gcHVtcEFwcCh7CiAgICBMb2NhbGU/IGxvY2FsZSwKICAgIHt7I2FuZHJvaWR9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svYW5kcm9pZH19e3sjaW9zfX1CcmlnaHRuZXNzPyBicmlnaHRuZXNze3svaW9zfX17eyNsaW51eH19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9saW51eH19e3sjbWFjb3N9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbWFjb3N9fXt7I3dlYn19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey93ZWJ9fXt7I3dpbmRvd3N9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2luZG93c319e3sjbW9iaWxlfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21vYmlsZX19LAogICAgTmF2aWdhdG9yT2JzZXJ2ZXI/IG9ic2VydmVyLAogICAgTGlzdDxCbG9jUHJvdmlkZXI+IHByb3ZpZGVycyA9IGNvbnN0IFtdLAogICAgYm9vbCB3aXRoU2NhZmZvbGQgPSBmYWxzZSwKICAgIHJlcXVpcmVkIFdpZGdldCB3aWRnZXQsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgcHVtcFdpZGdldCgKICAgICAgYXBwV3JhcHBlcigKICAgICAgICBsb2NhbGU6IGxvY2FsZSwKICAgICAgICB7eyNhbmRyb2lkfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319YnJpZ2h0bmVzczogYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICAgICAgICBvYnNlcnZlcjogb2JzZXJ2ZXIsCiAgICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMsCiAgICAgICAgd2l0aFNjYWZmb2xkOiB3aXRoU2NhZmZvbGQsCiAgICAgICAgd2lkZ2V0OiB3aWRnZXQsCiAgICAgICksCiAgICApOwogICAgYXdhaXQgcHVtcCgpOwogIH0KfQoKY2xhc3MgX1Rlc3RSb3V0ZXIgZXh0ZW5kcyBSb290U3RhY2tSb3V0ZXIgewogIF9UZXN0Um91dGVyKHRoaXMud2lkZ2V0KTsKCiAgZmluYWwgV2lkZ2V0IHdpZGdldDsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgUGFnZUZhY3Rvcnk+IGdldCBwYWdlc01hcCA9PiB7CiAgICAgICAge3tuYW1lLnBhc2NhbENhc2UoKX19Um91dGUubmFtZTogKHJvdXRlRGF0YSkgewogICAgICAgICAgcmV0dXJuIEF1dG9Sb3V0ZVBhZ2U8ZHluYW1pYz4oCiAgICAgICAgICAgIHJvdXRlRGF0YTogcm91dGVEYXRhLAogICAgICAgICAgICBjaGlsZDogd2lkZ2V0LAogICAgICAgICAgKTsKICAgICAgICB9LAp7eyNzdWJSb3V0ZXN9fSAgICAgICAgIHt7bmFtZS5wYXNjYWxDYXNlKCl9fVJvdXRlLm5hbWU6IChyb3V0ZURhdGEpIHsKICAgICAgICAgIHJldHVybiBBdXRvUm91dGVQYWdlPGR5bmFtaWM+KAogICAgICAgICAgICByb3V0ZURhdGE6IHJvdXRlRGF0YSwKICAgICAgICAgICAgY2hpbGQ6IGNvbnN0IF9QbGFjZWhvbGRlcihuYW1lOiB7e25hbWUucGFzY2FsQ2FzZSgpfX1Sb3V0ZS5uYW1lKSwKICAgICAgICAgICk7CiAgICAgICAgfSx7ey9zdWJSb3V0ZXN9fQogICAgICB9OwoKICBAb3ZlcnJpZGUKICBMaXN0PEF1dG9Sb3V0ZT4gZ2V0IHJvdXRlcyA9PiBbCiAgICAgICAgQXV0b1JvdXRlKAogICAgICAgICAgaW5pdGlhbDogdHJ1ZSwKICAgICAgICAgIHBhZ2U6IGNvbnN0IFBhZ2VJbmZvKHt7bmFtZS5wYXNjYWxDYXNlKCl9fVJvdXRlLm5hbWUpLAogICAgICAgICAgY2hpbGRyZW46IFt7eyNzdWJSb3V0ZXN9fQogICAgICAgICAgICBBdXRvUm91dGUoCnt7I2lzRmlyc3R9fSAgICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSx7ey9pc0ZpcnN0fX0KICAgICAgICAgICAgICBwYWdlOiB7e25hbWUucGFzY2FsQ2FzZSgpfX1Sb3V0ZS5wYWdlLAogICAgICAgICAgICApLHt7L3N1YlJvdXRlc319CiAgICAgICAgICBdLAogICAgICAgICksCiAgICAgIF07Cn0KCmNsYXNzIF9QbGFjZWhvbGRlciBleHRlbmRzIFN0YXRlbGVzc1dpZGdldCB7CiAgY29uc3QgX1BsYWNlaG9sZGVyKHtyZXF1aXJlZCB0aGlzLm5hbWV9KTsKCiAgZmluYWwgU3RyaW5nIG5hbWU7CgogIEBvdmVycmlkZQogIFdpZGdldCBidWlsZChCdWlsZENvbnRleHQgY29udGV4dCkgewogICAgcmV0dXJuIHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19U2NhZmZvbGQoCnt7I21hY29zfX0gICAgICBjaGlsZHJlbjogWwogICAgICAgIENvbnRlbnRBcmVhKAogICAgICAgICAgYnVpbGRlcjogKGNvbnRleHQsIF8pIHsKICAgICAgICAgICAgcmV0dXJuIFN0YWNrKAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICBjb25zdCBQbGFjZWhvbGRlcigpLAogICAgICAgICAgICAgICAgQ2VudGVyKAogICAgICAgICAgICAgICAgICBjaGlsZDogQ29sb3JlZEJveCgKICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29uc3QgQ29sb3IoMHhGRkZGRkZGRiksCiAgICAgICAgICAgICAgICAgICAgY2hpbGQ6IFRleHQoCiAgICAgICAgICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGNvbnN0IFRleHRTdHlsZSgKICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IENvbG9yKDB4RkYwMDAwMDApLAogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICApOwogICAgICAgICAgfSwKICAgICAgICApLAogICAgICBdLAp7ey9tYWNvc319e3tebWFjb3N9fSAgICAgIGJvZHk6IFN0YWNrKAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBjb25zdCBQbGFjZWhvbGRlcigpLAogICAgICAgICAgQ2VudGVyKAogICAgICAgICAgICBjaGlsZDogQ29sb3JlZEJveCgKICAgICAgICAgICAgICBjb2xvcjogY29uc3QgQ29sb3IoMHhGRkZGRkZGRiksCiAgICAgICAgICAgICAgY2hpbGQ6IFRleHQoCiAgICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgICAgc3R5bGU6IGNvbnN0IFRleHRTdHlsZSgKICAgICAgICAgICAgICAgICAgY29sb3I6IENvbG9yKDB4RkYwMDAwMDApLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICApLHt7L21hY29zfX0KICAgICk7CiAgfQp9", "type": "text" }, { diff --git a/packages/rapid_cli/lib/src/project/bundles/platform_widget_feature_package_bundle.dart b/packages/rapid_cli/lib/src/project/bundles/platform_widget_feature_package_bundle.dart index 14e37814..59330129 100644 --- a/packages/rapid_cli/lib/src/project/bundles/platform_widget_feature_package_bundle.dart +++ b/packages/rapid_cli/lib/src/project/bundles/platform_widget_feature_package_bundle.dart @@ -108,7 +108,7 @@ final platformWidgetFeaturePackageBundle = { "path": "test/src/presentation/helpers/pump_app.dart", "data": - "aW1wb3J0ICdwYWNrYWdlOmF1dG9fcm91dGUvYXV0b19yb3V0ZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfYmxvYy9mbHV0dGVyX2Jsb2MuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fYXBwL3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X2FwcC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lfX1fdWlfe3twbGF0Zm9ybX19L3t7cHJvamVjdF9uYW1lfX1fdWlfe3twbGF0Zm9ybX19LmRhcnQnOwoKLy8vIFdyYXBzIFt3aWRnZXRdIHdpdGggYSBmdWxseSBmdW5jdGlvbmFsIFtBcHBdLgovLy8KLy8vIFVzZSB0aGUgW2xvY2FsZV0gcGFyYW1ldGVyIHRvIHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGFwcC4KLy8vCi8vLyBVc2UgdGhlIFt0aGVtZU1vZGVdIHBhcmFtZXRlciB0byBjdXN0b21pemUgdGhlIGFwcCdzIGFwcGVhcmFuY2UuCi8vLwovLy8gVGhlIFtvYnNlcnZlcl0gcGFyYW1ldGVyIGFsbG93cyBpbnNwZWN0aW9uIG9mIG5hdmlnYXRpb24gZXZlbnRzLgovLy8gVHlwaWNhbGx5LCBhIG1vY2tlZCBpbnN0YW5jZSBpcyB1c2VkIGZvciB2ZXJpZmljYXRpb24gcHVycG9zZXMuCi8vLwovLy8gVGhlIFtwcm92aWRlcnNdIHBhcmFtZXRlciBlbmFibGVzIGluamVjdGlvbiBvZiBibG9jcyBvciBjdWJpdHMKLy8vIGludG8gdGhlIHdpZGdldCB0cmVlIGFib3ZlIFt3aWRnZXRdLgovLy8KLy8vIFNldCB0aGUgW3dpdGhTY2FmZm9sZF0gb3B0aW9uIHRvIHdyYXAgW3dpZGdldF0gd2l0aCBhCi8vLyBbe3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1TY2FmZm9sZF0uCi8vLyBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiB0ZXN0aW5nIHN1YndpZGdldHMgd2l0aGluIGEgcGFnZSBvciBmbG93LgpXaWRnZXQgYXBwV3JhcHBlcih7CiAgTG9jYWxlPyBsb2NhbGUsCiAge3sjYW5kcm9pZH19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9hbmRyb2lkfX17eyNpb3N9fUJyaWdodG5lc3M/IGJyaWdodG5lc3N7ey9pb3N9fXt7I2xpbnV4fX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L2xpbnV4fX17eyNtYWNvc319VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9tYWNvc319e3sjd2VifX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L3dlYn19e3sjd2luZG93c319VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey93aW5kb3dzfX17eyNtb2JpbGV9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbW9iaWxlfX0sCiAgTmF2aWdhdG9yT2JzZXJ2ZXI/IG9ic2VydmVyLAogIExpc3Q8QmxvY1Byb3ZpZGVyPiBwcm92aWRlcnMgPSBjb25zdCBbXSwKICBib29sIHdpdGhTY2FmZm9sZCA9IGZhbHNlLAogIHJlcXVpcmVkIFdpZGdldCB3aWRnZXQsCn0pIHsKICBXaWRnZXQgY2hpbGQ7CiAgaWYgKHByb3ZpZGVycy5pc0VtcHR5KSB7CiAgICBjaGlsZCA9IHdpZGdldDsKICB9IGVsc2UgewogICAgY2hpbGQgPSBNdWx0aUJsb2NQcm92aWRlcigKICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMsCiAgICAgIGNoaWxkOiB3aWRnZXQsCiAgICApOwogIH0KCiAgaWYgKHdpdGhTY2FmZm9sZCkgewp7e15tYWNvc319ICAgIGNoaWxkID0ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1TY2FmZm9sZChib2R5OiBjaGlsZCk7e3svbWFjb3N9fQp7eyNtYWNvc319ICAgIGNoaWxkID0ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1TY2FmZm9sZChjaGlsZHJlbjogW2NoaWxkXSk7e3svbWFjb3N9fQogIH0KCiAgcmV0dXJuIEFwcC50ZXN0KAogICAgbG9jYWxlOiBsb2NhbGUsCiAgICB7eyNhbmRyb2lkfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319YnJpZ2h0bmVzczogYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICAgIHJvdXRlcjogX1Rlc3RSb3V0ZXIoY2hpbGQpLAogICAgbmF2aWdhdG9yT2JzZXJ2ZXI6IG9ic2VydmVyLAogICk7Cn0KCmV4dGVuc2lvbiBXaWRnZXRUZXN0ZXJYIG9uIFdpZGdldFRlc3RlciB7CiAgRnV0dXJlPHZvaWQ+IHB1bXBBcHAoewogICAgTG9jYWxlPyBsb2NhbGUsCiAgICB7eyNhbmRyb2lkfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319QnJpZ2h0bmVzcz8gYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICAgIE5hdmlnYXRvck9ic2VydmVyPyBvYnNlcnZlciwKICAgIExpc3Q8QmxvY1Byb3ZpZGVyPiBwcm92aWRlcnMgPSBjb25zdCBbXSwKICAgIGJvb2wgd2l0aFNjYWZmb2xkID0gZmFsc2UsCiAgICByZXF1aXJlZCBXaWRnZXQgd2lkZ2V0LAogIH0pIGFzeW5jIHsKICAgIGF3YWl0IHB1bXBXaWRnZXQoCiAgICAgIGFwcFdyYXBwZXIoCiAgICAgICAgbG9jYWxlOiBsb2NhbGUsCiAgICAgICAge3sjYW5kcm9pZH19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9hbmRyb2lkfX17eyNpb3N9fWJyaWdodG5lc3M6IGJyaWdodG5lc3N7ey9pb3N9fXt7I2xpbnV4fX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L2xpbnV4fX17eyNtYWNvc319dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9tYWNvc319e3sjd2VifX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L3dlYn19e3sjd2luZG93c319dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey93aW5kb3dzfX17eyNtb2JpbGV9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbW9iaWxlfX0sCiAgICAgICAgb2JzZXJ2ZXI6IG9ic2VydmVyLAogICAgICAgIHByb3ZpZGVyczogcHJvdmlkZXJzLAogICAgICAgIHdpdGhTY2FmZm9sZDogd2l0aFNjYWZmb2xkLAogICAgICAgIHdpZGdldDogd2lkZ2V0LAogICAgICApLAogICAgKTsKICAgIGF3YWl0IHB1bXAoKTsKICB9Cn0KCmNsYXNzIF9UZXN0Um91dGVyIGV4dGVuZHMgUm9vdFN0YWNrUm91dGVyIHsKICBfVGVzdFJvdXRlcih0aGlzLndpZGdldCk7CgogIGZpbmFsIFdpZGdldCB3aWRnZXQ7CgogIEBvdmVycmlkZQogIE1hcDxTdHJpbmcsIFBhZ2VGYWN0b3J5PiBnZXQgcGFnZXNNYXAgPT4gewogICAgICAgICdfX3JvdXRlX18nOiAocm91dGVEYXRhKSB7CiAgICAgICAgICByZXR1cm4gQXV0b1JvdXRlUGFnZTxkeW5hbWljPigKICAgICAgICAgICAgcm91dGVEYXRhOiByb3V0ZURhdGEsCiAgICAgICAgICAgIGNoaWxkOiB3aWRnZXQsCiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgIH07CgogIEBvdmVycmlkZQogIExpc3Q8QXV0b1JvdXRlPiBnZXQgcm91dGVzID0+IFsKICAgICAgICBBdXRvUm91dGUoCiAgICAgICAgICBpbml0aWFsOiB0cnVlLAogICAgICAgICAgcGFnZTogY29uc3QgUGFnZUluZm8oJ19fcm91dGVfXycpLAogICAgICAgICksCiAgICAgIF07Cn0K", + "aW1wb3J0ICdwYWNrYWdlOmF1dG9fcm91dGUvYXV0b19yb3V0ZS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfYmxvYy9mbHV0dGVyX2Jsb2MuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWV9fV97e3BsYXRmb3JtfX1fYXBwL3t7cHJvamVjdF9uYW1lfX1fe3twbGF0Zm9ybX19X2FwcC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lfX1fdWlfe3twbGF0Zm9ybX19L3t7cHJvamVjdF9uYW1lfX1fdWlfe3twbGF0Zm9ybX19LmRhcnQnOwoKLy8vIFdyYXBzIFt3aWRnZXRdIHdpdGggYSBmdWxseSBmdW5jdGlvbmFsIFtBcHBdLgovLy8KLy8vIFVzZSB0aGUgW2xvY2FsZV0gcGFyYW1ldGVyIHRvIHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGFwcC4KLy8vCi8vLyBVc2UgdGhlIFt7e15pb3N9fXRoZW1lTW9kZXt7L2lvc319e3sjaW9zfX1icmlnaHRuZXNze3svaW9zfX1dIHBhcmFtZXRlciB0byBjdXN0b21pemUgdGhlIGFwcCdzIGFwcGVhcmFuY2UuCi8vLwovLy8gVGhlIFtvYnNlcnZlcl0gcGFyYW1ldGVyIGFsbG93cyBpbnNwZWN0aW9uIG9mIG5hdmlnYXRpb24gZXZlbnRzLgovLy8gVHlwaWNhbGx5LCBhIG1vY2tlZCBpbnN0YW5jZSBpcyB1c2VkIGZvciB2ZXJpZmljYXRpb24gcHVycG9zZXMuCi8vLwovLy8gVGhlIFtwcm92aWRlcnNdIHBhcmFtZXRlciBlbmFibGVzIGluamVjdGlvbiBvZiBibG9jcyBvciBjdWJpdHMKLy8vIGludG8gdGhlIHdpZGdldCB0cmVlIGFib3ZlIFt3aWRnZXRdLgovLy8KLy8vIFNldCB0aGUgW3dpdGhTY2FmZm9sZF0gb3B0aW9uIHRvIHdyYXAgW3dpZGdldF0gd2l0aCBhCi8vLyBbe3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1TY2FmZm9sZF0uCi8vLyBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiB0ZXN0aW5nIHN1YndpZGdldHMgd2l0aGluIGEgcGFnZSBvciBmbG93LgpXaWRnZXQgYXBwV3JhcHBlcih7CiAgTG9jYWxlPyBsb2NhbGUsCiAge3sjYW5kcm9pZH19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9hbmRyb2lkfX17eyNpb3N9fUJyaWdodG5lc3M/IGJyaWdodG5lc3N7ey9pb3N9fXt7I2xpbnV4fX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L2xpbnV4fX17eyNtYWNvc319VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9tYWNvc319e3sjd2VifX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L3dlYn19e3sjd2luZG93c319VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey93aW5kb3dzfX17eyNtb2JpbGV9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbW9iaWxlfX0sCiAgTmF2aWdhdG9yT2JzZXJ2ZXI/IG9ic2VydmVyLAogIExpc3Q8QmxvY1Byb3ZpZGVyPiBwcm92aWRlcnMgPSBjb25zdCBbXSwKICBib29sIHdpdGhTY2FmZm9sZCA9IGZhbHNlLAogIHJlcXVpcmVkIFdpZGdldCB3aWRnZXQsCn0pIHsKICBXaWRnZXQgY2hpbGQ7CiAgaWYgKHByb3ZpZGVycy5pc0VtcHR5KSB7CiAgICBjaGlsZCA9IHdpZGdldDsKICB9IGVsc2UgewogICAgY2hpbGQgPSBNdWx0aUJsb2NQcm92aWRlcigKICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMsCiAgICAgIGNoaWxkOiB3aWRnZXQsCiAgICApOwogIH0KCiAgaWYgKHdpdGhTY2FmZm9sZCkgewp7e15tYWNvc319ICAgIGNoaWxkID0ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1TY2FmZm9sZChib2R5OiBjaGlsZCk7e3svbWFjb3N9fQp7eyNtYWNvc319ICAgIGNoaWxkID0ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX1TY2FmZm9sZChjaGlsZHJlbjogW2NoaWxkXSk7e3svbWFjb3N9fQogIH0KCiAgcmV0dXJuIEFwcC50ZXN0KAogICAgbG9jYWxlOiBsb2NhbGUsCiAgICB7eyNhbmRyb2lkfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319YnJpZ2h0bmVzczogYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICAgIHJvdXRlcjogX1Rlc3RSb3V0ZXIoY2hpbGQpLAogICAgbmF2aWdhdG9yT2JzZXJ2ZXI6IG9ic2VydmVyLAogICk7Cn0KCmV4dGVuc2lvbiBXaWRnZXRUZXN0ZXJYIG9uIFdpZGdldFRlc3RlciB7CiAgRnV0dXJlPHZvaWQ+IHB1bXBBcHAoewogICAgTG9jYWxlPyBsb2NhbGUsCiAgICB7eyNhbmRyb2lkfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L2FuZHJvaWR9fXt7I2lvc319QnJpZ2h0bmVzcz8gYnJpZ2h0bmVzc3t7L2lvc319e3sjbGludXh9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svbGludXh9fXt7I21hY29zfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L21hY29zfX17eyN3ZWJ9fVRoZW1lTW9kZT8gdGhlbWVNb2Rle3svd2VifX17eyN3aW5kb3dzfX1UaGVtZU1vZGU/IHRoZW1lTW9kZXt7L3dpbmRvd3N9fXt7I21vYmlsZX19VGhlbWVNb2RlPyB0aGVtZU1vZGV7ey9tb2JpbGV9fSwKICAgIE5hdmlnYXRvck9ic2VydmVyPyBvYnNlcnZlciwKICAgIExpc3Q8QmxvY1Byb3ZpZGVyPiBwcm92aWRlcnMgPSBjb25zdCBbXSwKICAgIGJvb2wgd2l0aFNjYWZmb2xkID0gZmFsc2UsCiAgICByZXF1aXJlZCBXaWRnZXQgd2lkZ2V0LAogIH0pIGFzeW5jIHsKICAgIGF3YWl0IHB1bXBXaWRnZXQoCiAgICAgIGFwcFdyYXBwZXIoCiAgICAgICAgbG9jYWxlOiBsb2NhbGUsCiAgICAgICAge3sjYW5kcm9pZH19dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9hbmRyb2lkfX17eyNpb3N9fWJyaWdodG5lc3M6IGJyaWdodG5lc3N7ey9pb3N9fXt7I2xpbnV4fX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L2xpbnV4fX17eyNtYWNvc319dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey9tYWNvc319e3sjd2VifX10aGVtZU1vZGU6IHRoZW1lTW9kZXt7L3dlYn19e3sjd2luZG93c319dGhlbWVNb2RlOiB0aGVtZU1vZGV7ey93aW5kb3dzfX17eyNtb2JpbGV9fXRoZW1lTW9kZTogdGhlbWVNb2Rle3svbW9iaWxlfX0sCiAgICAgICAgb2JzZXJ2ZXI6IG9ic2VydmVyLAogICAgICAgIHByb3ZpZGVyczogcHJvdmlkZXJzLAogICAgICAgIHdpdGhTY2FmZm9sZDogd2l0aFNjYWZmb2xkLAogICAgICAgIHdpZGdldDogd2lkZ2V0LAogICAgICApLAogICAgKTsKICAgIGF3YWl0IHB1bXAoKTsKICB9Cn0KCmNsYXNzIF9UZXN0Um91dGVyIGV4dGVuZHMgUm9vdFN0YWNrUm91dGVyIHsKICBfVGVzdFJvdXRlcih0aGlzLndpZGdldCk7CgogIGZpbmFsIFdpZGdldCB3aWRnZXQ7CgogIEBvdmVycmlkZQogIE1hcDxTdHJpbmcsIFBhZ2VGYWN0b3J5PiBnZXQgcGFnZXNNYXAgPT4gewogICAgICAgICdfX3JvdXRlX18nOiAocm91dGVEYXRhKSB7CiAgICAgICAgICByZXR1cm4gQXV0b1JvdXRlUGFnZTxkeW5hbWljPigKICAgICAgICAgICAgcm91dGVEYXRhOiByb3V0ZURhdGEsCiAgICAgICAgICAgIGNoaWxkOiB3aWRnZXQsCiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgIH07CgogIEBvdmVycmlkZQogIExpc3Q8QXV0b1JvdXRlPiBnZXQgcm91dGVzID0+IFsKICAgICAgICBBdXRvUm91dGUoCiAgICAgICAgICBpbml0aWFsOiB0cnVlLAogICAgICAgICAgcGFnZTogY29uc3QgUGFnZUluZm8oJ19fcm91dGVfXycpLAogICAgICAgICksCiAgICAgIF07Cn0K", "type": "text" }, { diff --git a/packages/rapid_cli/lib/src/project/bundles/themed_widget_bundle.dart b/packages/rapid_cli/lib/src/project/bundles/themed_widget_bundle.dart index 51f3d902..92118753 100644 --- a/packages/rapid_cli/lib/src/project/bundles/themed_widget_bundle.dart +++ b/packages/rapid_cli/lib/src/project/bundles/themed_widget_bundle.dart @@ -26,7 +26,7 @@ final themedWidgetBundle = MasonBundle.fromJson({ { "path": "test/src/{{name.snakeCase()}}_test.dart", "data": - "e3teYW5kcm9pZH19e3teaW9zfX17e15saW51eH19e3tebWFjb3N9fXt7XndlYn19e3ted2luZG93c319e3tebW9iaWxlfX1pbXBvcnQgJ3BhY2thZ2U6YWxjaGVtaXN0L2FsY2hlbWlzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCcgc2hvdyBUaGVtZU1vZGU7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL3dpZGdldHMuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aS9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX0uZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fV90aGVtZS5kYXJ0JzsKCmltcG9ydCAnaGVscGVycy9oZWxwZXJzLmRhcnQnOwoKe3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0gX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KHsKICB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lPyB0aGVtZSwKfSkgewogIHJldHVybiB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgIHRoZW1lOiB0aGVtZSwKICApOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3t7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19JywgKCkgewogICAgZ29sZGVuVGVzdCgKICAgICAgJ3JlbmRlcnMgY29ycmVjdGx5JywKICAgICAgZmlsZU5hbWU6ICd7e25hbWUuc25ha2VDYXNlKCl9fScsCiAgICAgIGJ1aWxkZXI6ICgpID0+IEdvbGRlblRlc3RHcm91cCgKICAgICAgICBzY2VuYXJpb0NvbnN0cmFpbnRzOgogICAgICAgICAgICBjb25zdCBCb3hDb25zdHJhaW50cyhtaW5XaWR0aDogMjUwLCBtYXhIZWlnaHQ6IDUwMCksCiAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2xpZ2h0IC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmxpZ2h0LAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgICAgICAgICAgICAgdGhlbWU6CiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZShiYWNrZ3JvdW5kQ29sb3I6IENvbG9yKDB4RkYxMkZGMTIpKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2xpZ2h0IC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmxpZ2h0LAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KCksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnZGFyayAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5kYXJrLAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgICAgICAgICAgICAgdGhlbWU6CiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZShiYWNrZ3JvdW5kQ29sb3I6IENvbG9yKDB4RkYxMkZGMTIpKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRob3V0IHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIC8vIFRPRE86IGFkZCBtb3JlIHNjZW5hcmlvcwogICAgICAgIF0sCiAgICAgICksCiAgICApOwogIH0pOwp9e3svbW9iaWxlfX17ey93aW5kb3dzfX17ey93ZWJ9fXt7L21hY29zfX17ey9saW51eH19e3svaW9zfX17ey9hbmRyb2lkfX17eyNhbmRyb2lkfX1pbXBvcnQgJ3BhY2thZ2U6YWxjaGVtaXN0L2FsY2hlbWlzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCcgc2hvdyBUaGVtZU1vZGU7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL3dpZGdldHMuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV9hbmRyb2lkL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX1fdWlfYW5kcm9pZC9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICAvLyBUT0RPOiBhZGQgbW9yZSBzY2VuYXJpb3MKICAgICAgICBdLAogICAgICApLAogICAgKTsKICB9KTsKfXt7L2FuZHJvaWR9fXt7I2lvc319aW1wb3J0ICdwYWNrYWdlOmFsY2hlbWlzdC9hbGNoZW1pc3QuZGFydCc7aW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvY3VwZXJ0aW5vLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlcl90ZXN0L2ZsdXR0ZXJfdGVzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX1fdWlfaW9zL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX1fdWlfaW9zL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fV90aGVtZS5kYXJ0JzsKCmltcG9ydCAnaGVscGVycy9oZWxwZXJzLmRhcnQnOwoKe3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0gX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KHsKICB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lPyB0aGVtZSwKfSkgewogIHJldHVybiB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgIHRoZW1lOiB0aGVtZSwKICApOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3t7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19JywgKCkgewogICAgZ29sZGVuVGVzdCgKICAgICAgJ3JlbmRlcnMgY29ycmVjdGx5JywKICAgICAgZmlsZU5hbWU6ICd7e25hbWUuc25ha2VDYXNlKCl9fScsCiAgICAgIGJ1aWxkZXI6ICgpID0+IEdvbGRlblRlc3RHcm91cCgKICAgICAgICBzY2VuYXJpb0NvbnN0cmFpbnRzOgogICAgICAgICAgICBjb25zdCBCb3hDb25zdHJhaW50cyhtaW5XaWR0aDogMjUwLCBtYXhIZWlnaHQ6IDUwMCksCiAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2xpZ2h0IC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIGJyaWdodG5lc3M6IEJyaWdodG5lc3MuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICBicmlnaHRuZXNzOiBCcmlnaHRuZXNzLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIGJyaWdodG5lc3M6IEJyaWdodG5lc3MuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIGJyaWdodG5lc3M6IEJyaWdodG5lc3MuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIC8vIFRPRE86IGFkZCBtb3JlIHNjZW5hcmlvcwogICAgICAgIF0sCiAgICAgICksCiAgICApOwogIH0pOwp9e3svaW9zfX17eyNsaW51eH19aW1wb3J0ICdwYWNrYWdlOmFsY2hlbWlzdC9hbGNoZW1pc3QuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL21hdGVyaWFsLmRhcnQnIHNob3cgVGhlbWVNb2RlOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci93aWRnZXRzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlcl90ZXN0L2ZsdXR0ZXJfdGVzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX1fdWlfbGludXgvc3JjL3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV9saW51eC9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICAvLyBUT0RPOiBhZGQgbW9yZSBzY2VuYXJpb3MKICAgICAgICBdLAogICAgICApLAogICAgKTsKICB9KTsKfXt7L2xpbnV4fX17eyNtYWNvc319aW1wb3J0ICdwYWNrYWdlOmFsY2hlbWlzdC9hbGNoZW1pc3QuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL21hdGVyaWFsLmRhcnQnIHNob3cgVGhlbWVNb2RlOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci93aWRnZXRzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlcl90ZXN0L2ZsdXR0ZXJfdGVzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX1fdWlfbWFjb3Mvc3JjL3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV9tYWNvcy9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICAvLyBUT0RPOiBhZGQgbW9yZSBzY2VuYXJpb3MKICAgICAgICBdLAogICAgICApLAogICAgKTsKICB9KTsKfXt7L21hY29zfX17eyN3ZWJ9fWltcG9ydCAncGFja2FnZTphbGNoZW1pc3QvYWxjaGVtaXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci9tYXRlcmlhbC5kYXJ0JyBzaG93IFRoZW1lTW9kZTsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvd2lkZ2V0cy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfdGVzdC9mbHV0dGVyX3Rlc3QuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpX3dlYi9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX0uZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpX3dlYi9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICAvLyBUT0RPOiBhZGQgbW9yZSBzY2VuYXJpb3MKICAgICAgICBdLAogICAgICApLAogICAgKTsKICB9KTsKfXt7L3dlYn19e3sjd2luZG93c319aW1wb3J0ICdwYWNrYWdlOmFsY2hlbWlzdC9hbGNoZW1pc3QuZGFydCc7aW1wb3J0ICdwYWNrYWdlOmZsdWVudF91aS9mbHVlbnRfdWkuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV93aW5kb3dzL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX1fdWlfd2luZG93cy9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICAvLyBUT0RPOiBhZGQgbW9yZSBzY2VuYXJpb3MKICAgICAgICBdLAogICAgICApLAogICAgKTsKICB9KTsKfXt7L3dpbmRvd3N9fXt7I21vYmlsZX19aW1wb3J0ICdwYWNrYWdlOmFsY2hlbWlzdC9hbGNoZW1pc3QuZGFydCc7aW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV9tb2JpbGUvc3JjL3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV9tb2JpbGUvc3JjL3t7bmFtZS5zbmFrZUNhc2UoKX19X3RoZW1lLmRhcnQnOwoKaW1wb3J0ICdoZWxwZXJzL2hlbHBlcnMuZGFydCc7Cgp7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oewogIHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWU/IHRoZW1lLAp9KSB7CiAgcmV0dXJuIHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgdGhlbWU6IHRoZW1lLAogICk7Cn0KCnZvaWQgbWFpbigpIHsKICBncm91cCgne3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0nLCAoKSB7CiAgICBnb2xkZW5UZXN0KAogICAgICAncmVuZGVycyBjb3JyZWN0bHknLAogICAgICBmaWxlTmFtZTogJ3t7bmFtZS5zbmFrZUNhc2UoKX19JywKICAgICAgYnVpbGRlcjogKCkgPT4gR29sZGVuVGVzdEdyb3VwKAogICAgICAgIHNjZW5hcmlvQ29uc3RyYWludHM6CiAgICAgICAgICAgIGNvbnN0IEJveENvbnN0cmFpbnRzKG1pbldpZHRoOiAyNTAsIG1heEhlaWdodDogNTAwKSwKICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnbGlnaHQgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUubGlnaHQsCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICAgICAgICAgICAgICB0aGVtZToKICAgICAgICAgICAgICAgICAgICBjb25zdCB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lKGJhY2tncm91bmRDb2xvcjogQ29sb3IoMHhGRjEyRkYxMikpLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnbGlnaHQgLSB3aXRob3V0IHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUubGlnaHQsCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICAgICAgICAgICAgICB0aGVtZToKICAgICAgICAgICAgICAgICAgICBjb25zdCB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lKGJhY2tncm91bmRDb2xvcjogQ29sb3IoMHhGRjEyRkYxMikpLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnZGFyayAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5kYXJrLAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KCksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgLy8gVE9ETzogYWRkIG1vcmUgc2NlbmFyaW9zCiAgICAgICAgXSwKICAgICAgKSwKICAgICk7CiAgfSk7Cn17ey9tb2JpbGV9fQo=", + "e3teYW5kcm9pZH19e3teaW9zfX17e15saW51eH19e3tebWFjb3N9fXt7XndlYn19e3ted2luZG93c319e3tebW9iaWxlfX1pbXBvcnQgJ3BhY2thZ2U6YWxjaGVtaXN0L2FsY2hlbWlzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCcgc2hvdyBUaGVtZU1vZGU7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL3dpZGdldHMuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aS9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX0uZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fV90aGVtZS5kYXJ0JzsKCmltcG9ydCAnaGVscGVycy9oZWxwZXJzLmRhcnQnOwoKe3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0gX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KHsKICB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lPyB0aGVtZSwKfSkgewogIHJldHVybiB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgIHRoZW1lOiB0aGVtZSwKICApOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3t7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19JywgKCkgewogICAgZ29sZGVuVGVzdCgKICAgICAgJ3JlbmRlcnMgY29ycmVjdGx5JywKICAgICAgZmlsZU5hbWU6ICd7e25hbWUuc25ha2VDYXNlKCl9fScsCiAgICAgIGJ1aWxkZXI6ICgpID0+IEdvbGRlblRlc3RHcm91cCgKICAgICAgICBzY2VuYXJpb0NvbnN0cmFpbnRzOgogICAgICAgICAgICBjb25zdCBCb3hDb25zdHJhaW50cyhtaW5XaWR0aDogMjUwLCBtYXhIZWlnaHQ6IDUwMCksCiAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2xpZ2h0IC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmxpZ2h0LAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgICAgICAgICAgICAgdGhlbWU6CiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZShiYWNrZ3JvdW5kQ29sb3I6IENvbG9yKDB4RkYxMkZGMTIpLCksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSwpLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnZGFyayAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5kYXJrLAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KCksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgLy8gVE9ETzogYWRkIG1vcmUgc2NlbmFyaW9zCiAgICAgICAgXSwKICAgICAgKSwKICAgICk7CiAgfSk7Cn17ey9tb2JpbGV9fXt7L3dpbmRvd3N9fXt7L3dlYn19e3svbWFjb3N9fXt7L2xpbnV4fX17ey9pb3N9fXt7L2FuZHJvaWR9fXt7I2FuZHJvaWR9fWltcG9ydCAncGFja2FnZTphbGNoZW1pc3QvYWxjaGVtaXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci9tYXRlcmlhbC5kYXJ0JyBzaG93IFRoZW1lTW9kZTsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvd2lkZ2V0cy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfdGVzdC9mbHV0dGVyX3Rlc3QuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpX2FuZHJvaWQvc3JjL3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV9hbmRyb2lkL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fV90aGVtZS5kYXJ0JzsKCmltcG9ydCAnaGVscGVycy9oZWxwZXJzLmRhcnQnOwoKe3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0gX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KHsKICB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lPyB0aGVtZSwKfSkgewogIHJldHVybiB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgIHRoZW1lOiB0aGVtZSwKICApOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3t7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19JywgKCkgewogICAgZ29sZGVuVGVzdCgKICAgICAgJ3JlbmRlcnMgY29ycmVjdGx5JywKICAgICAgZmlsZU5hbWU6ICd7e25hbWUuc25ha2VDYXNlKCl9fScsCiAgICAgIGJ1aWxkZXI6ICgpID0+IEdvbGRlblRlc3RHcm91cCgKICAgICAgICBzY2VuYXJpb0NvbnN0cmFpbnRzOgogICAgICAgICAgICBjb25zdCBCb3hDb25zdHJhaW50cyhtaW5XaWR0aDogMjUwLCBtYXhIZWlnaHQ6IDUwMCksCiAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2xpZ2h0IC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmxpZ2h0LAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgICAgICAgICAgICAgdGhlbWU6CiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZShiYWNrZ3JvdW5kQ29sb3I6IENvbG9yKDB4RkYxMkZGMTIpLCksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSwpLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnZGFyayAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5kYXJrLAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KCksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgLy8gVE9ETzogYWRkIG1vcmUgc2NlbmFyaW9zCiAgICAgICAgXSwKICAgICAgKSwKICAgICk7CiAgfSk7Cn17ey9hbmRyb2lkfX17eyNpb3N9fWltcG9ydCAncGFja2FnZTphbGNoZW1pc3QvYWxjaGVtaXN0LmRhcnQnO2ltcG9ydCAncGFja2FnZTpmbHV0dGVyL2N1cGVydGluby5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfdGVzdC9mbHV0dGVyX3Rlc3QuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpX2lvcy9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX0uZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpX2lvcy9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICBicmlnaHRuZXNzOiBCcmlnaHRuZXNzLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICAgICAgICAgICAgICB0aGVtZToKICAgICAgICAgICAgICAgICAgICBjb25zdCB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lKGJhY2tncm91bmRDb2xvcjogQ29sb3IoMHhGRjEyRkYxMiksKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2xpZ2h0IC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIGJyaWdodG5lc3M6IEJyaWdodG5lc3MuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgYnJpZ2h0bmVzczogQnJpZ2h0bmVzcy5kYXJrLAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgICAgICAgICAgICAgdGhlbWU6CiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZShiYWNrZ3JvdW5kQ29sb3I6IENvbG9yKDB4RkYxMkZGMTIpLCksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIGJyaWdodG5lc3M6IEJyaWdodG5lc3MuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIC8vIFRPRE86IGFkZCBtb3JlIHNjZW5hcmlvcwogICAgICAgIF0sCiAgICAgICksCiAgICApOwogIH0pOwp9e3svaW9zfX17eyNsaW51eH19aW1wb3J0ICdwYWNrYWdlOmFsY2hlbWlzdC9hbGNoZW1pc3QuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL21hdGVyaWFsLmRhcnQnIHNob3cgVGhlbWVNb2RlOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci93aWRnZXRzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlcl90ZXN0L2ZsdXR0ZXJfdGVzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX1fdWlfbGludXgvc3JjL3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV9saW51eC9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSwpLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnbGlnaHQgLSB3aXRob3V0IHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUubGlnaHQsCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICAgICAgICAgICAgICB0aGVtZToKICAgICAgICAgICAgICAgICAgICBjb25zdCB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lKGJhY2tncm91bmRDb2xvcjogQ29sb3IoMHhGRjEyRkYxMiksKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRob3V0IHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIC8vIFRPRE86IGFkZCBtb3JlIHNjZW5hcmlvcwogICAgICAgIF0sCiAgICAgICksCiAgICApOwogIH0pOwp9e3svbGludXh9fXt7I21hY29zfX1pbXBvcnQgJ3BhY2thZ2U6YWxjaGVtaXN0L2FsY2hlbWlzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCcgc2hvdyBUaGVtZU1vZGU7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL3dpZGdldHMuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV9tYWNvcy9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX0uZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpX21hY29zL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fV90aGVtZS5kYXJ0JzsKCmltcG9ydCAnaGVscGVycy9oZWxwZXJzLmRhcnQnOwoKe3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0gX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KHsKICB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lPyB0aGVtZSwKfSkgewogIHJldHVybiB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgIHRoZW1lOiB0aGVtZSwKICApOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3t7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19JywgKCkgewogICAgZ29sZGVuVGVzdCgKICAgICAgJ3JlbmRlcnMgY29ycmVjdGx5JywKICAgICAgZmlsZU5hbWU6ICd7e25hbWUuc25ha2VDYXNlKCl9fScsCiAgICAgIGJ1aWxkZXI6ICgpID0+IEdvbGRlblRlc3RHcm91cCgKICAgICAgICBzY2VuYXJpb0NvbnN0cmFpbnRzOgogICAgICAgICAgICBjb25zdCBCb3hDb25zdHJhaW50cyhtaW5XaWR0aDogMjUwLCBtYXhIZWlnaHQ6IDUwMCksCiAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2xpZ2h0IC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmxpZ2h0LAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgICAgICAgICAgICAgdGhlbWU6CiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZShiYWNrZ3JvdW5kQ29sb3I6IENvbG9yKDB4RkYxMkZGMTIpLCksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSwpLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnZGFyayAtIHdpdGhvdXQgdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5kYXJrLAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KCksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgLy8gVE9ETzogYWRkIG1vcmUgc2NlbmFyaW9zCiAgICAgICAgXSwKICAgICAgKSwKICAgICk7CiAgfSk7Cn17ey9tYWNvc319e3sjd2VifX1pbXBvcnQgJ3BhY2thZ2U6YWxjaGVtaXN0L2FsY2hlbWlzdC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXIvbWF0ZXJpYWwuZGFydCcgc2hvdyBUaGVtZU1vZGU7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyL3dpZGdldHMuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV93ZWIvc3JjL3t7bmFtZS5zbmFrZUNhc2UoKX19LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV93ZWIvc3JjL3t7bmFtZS5zbmFrZUNhc2UoKX19X3RoZW1lLmRhcnQnOwoKaW1wb3J0ICdoZWxwZXJzL2hlbHBlcnMuZGFydCc7Cgp7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oewogIHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWU/IHRoZW1lLAp9KSB7CiAgcmV0dXJuIHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgdGhlbWU6IHRoZW1lLAogICk7Cn0KCnZvaWQgbWFpbigpIHsKICBncm91cCgne3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0nLCAoKSB7CiAgICBnb2xkZW5UZXN0KAogICAgICAncmVuZGVycyBjb3JyZWN0bHknLAogICAgICBmaWxlTmFtZTogJ3t7bmFtZS5zbmFrZUNhc2UoKX19JywKICAgICAgYnVpbGRlcjogKCkgPT4gR29sZGVuVGVzdEdyb3VwKAogICAgICAgIHNjZW5hcmlvQ29uc3RyYWludHM6CiAgICAgICAgICAgIGNvbnN0IEJveENvbnN0cmFpbnRzKG1pbldpZHRoOiAyNTAsIG1heEhlaWdodDogNTAwKSwKICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnbGlnaHQgLSB3aXRoIHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUubGlnaHQsCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICAgICAgICAgICAgICB0aGVtZToKICAgICAgICAgICAgICAgICAgICBjb25zdCB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lKGJhY2tncm91bmRDb2xvcjogQ29sb3IoMHhGRjEyRkYxMiksKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2xpZ2h0IC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmxpZ2h0LAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KCksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnZGFyayAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5kYXJrLAogICAgICAgICAgICAgIHdpZGdldDogX2dldHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19KAogICAgICAgICAgICAgICAgdGhlbWU6CiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZShiYWNrZ3JvdW5kQ29sb3I6IENvbG9yKDB4RkYxMkZGMTIpLCksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aG91dCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICAvLyBUT0RPOiBhZGQgbW9yZSBzY2VuYXJpb3MKICAgICAgICBdLAogICAgICApLAogICAgKTsKICB9KTsKfXt7L3dlYn19e3sjd2luZG93c319aW1wb3J0ICdwYWNrYWdlOmFsY2hlbWlzdC9hbGNoZW1pc3QuZGFydCc7aW1wb3J0ICdwYWNrYWdlOmZsdWVudF91aS9mbHVlbnRfdWkuZGFydCc7CmltcG9ydCAncGFja2FnZTpmbHV0dGVyX3Rlc3QvZmx1dHRlcl90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6e3twcm9qZWN0X25hbWUuc25ha2VDYXNlKCl9fV91aV93aW5kb3dzL3NyYy97e25hbWUuc25ha2VDYXNlKCl9fS5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnt7cHJvamVjdF9uYW1lLnNuYWtlQ2FzZSgpfX1fdWlfd2luZG93cy9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSwpLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnbGlnaHQgLSB3aXRob3V0IHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUubGlnaHQsCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICAgICAgICAgICAgICB0aGVtZToKICAgICAgICAgICAgICAgICAgICBjb25zdCB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lKGJhY2tncm91bmRDb2xvcjogQ29sb3IoMHhGRjEyRkYxMiksKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRob3V0IHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIC8vIFRPRE86IGFkZCBtb3JlIHNjZW5hcmlvcwogICAgICAgIF0sCiAgICAgICksCiAgICApOwogIH0pOwp9e3svd2luZG93c319e3sjbW9iaWxlfX1pbXBvcnQgJ3BhY2thZ2U6YWxjaGVtaXN0L2FsY2hlbWlzdC5kYXJ0JztpbXBvcnQgJ3BhY2thZ2U6Zmx1dHRlci9tYXRlcmlhbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOmZsdXR0ZXJfdGVzdC9mbHV0dGVyX3Rlc3QuZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpX21vYmlsZS9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX0uZGFydCc7CmltcG9ydCAncGFja2FnZTp7e3Byb2plY3RfbmFtZS5zbmFrZUNhc2UoKX19X3VpX21vYmlsZS9zcmMve3tuYW1lLnNuYWtlQ2FzZSgpfX1fdGhlbWUuZGFydCc7CgppbXBvcnQgJ2hlbHBlcnMvaGVscGVycy5kYXJ0JzsKCnt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSh7CiAge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX1UaGVtZT8gdGhlbWUsCn0pIHsKICByZXR1cm4ge3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICB0aGVtZTogdGhlbWUsCiAgKTsKfQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCd7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fScsICgpIHsKICAgIGdvbGRlblRlc3QoCiAgICAgICdyZW5kZXJzIGNvcnJlY3RseScsCiAgICAgIGZpbGVOYW1lOiAne3tuYW1lLnNuYWtlQ2FzZSgpfX0nLAogICAgICBidWlsZGVyOiAoKSA9PiBHb2xkZW5UZXN0R3JvdXAoCiAgICAgICAgc2NlbmFyaW9Db25zdHJhaW50czoKICAgICAgICAgICAgY29uc3QgQm94Q29uc3RyYWludHMobWluV2lkdGg6IDI1MCwgbWF4SGVpZ2h0OiA1MDApLAogICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdsaWdodCAtIHdpdGggdGhlbWUnLAogICAgICAgICAgICBjaGlsZDogYXBwV3JhcHBlcigKICAgICAgICAgICAgICB0aGVtZU1vZGU6IFRoZW1lTW9kZS5saWdodCwKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgKICAgICAgICAgICAgICAgIHRoZW1lOgogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt7cHJvamVjdF9uYW1lLnBhc2NhbENhc2UoKX19e3tuYW1lLnBhc2NhbENhc2UoKX19VGhlbWUoYmFja2dyb3VuZENvbG9yOiBDb2xvcigweEZGMTJGRjEyKSwpLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICAgR29sZGVuVGVzdFNjZW5hcmlvKAogICAgICAgICAgICBuYW1lOiAnbGlnaHQgLSB3aXRob3V0IHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUubGlnaHQsCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oKSwKICAgICAgICAgICAgKSwKICAgICAgICAgICksCiAgICAgICAgICBHb2xkZW5UZXN0U2NlbmFyaW8oCiAgICAgICAgICAgIG5hbWU6ICdkYXJrIC0gd2l0aCB0aGVtZScsCiAgICAgICAgICAgIGNoaWxkOiBhcHBXcmFwcGVyKAogICAgICAgICAgICAgIHRoZW1lTW9kZTogVGhlbWVNb2RlLmRhcmssCiAgICAgICAgICAgICAgd2lkZ2V0OiBfZ2V0e3twcm9qZWN0X25hbWUucGFzY2FsQ2FzZSgpfX17e25hbWUucGFzY2FsQ2FzZSgpfX0oCiAgICAgICAgICAgICAgICB0aGVtZToKICAgICAgICAgICAgICAgICAgICBjb25zdCB7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fVRoZW1lKGJhY2tncm91bmRDb2xvcjogQ29sb3IoMHhGRjEyRkYxMiksKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIEdvbGRlblRlc3RTY2VuYXJpbygKICAgICAgICAgICAgbmFtZTogJ2RhcmsgLSB3aXRob3V0IHRoZW1lJywKICAgICAgICAgICAgY2hpbGQ6IGFwcFdyYXBwZXIoCiAgICAgICAgICAgICAgdGhlbWVNb2RlOiBUaGVtZU1vZGUuZGFyaywKICAgICAgICAgICAgICB3aWRnZXQ6IF9nZXR7e3Byb2plY3RfbmFtZS5wYXNjYWxDYXNlKCl9fXt7bmFtZS5wYXNjYWxDYXNlKCl9fSgpLAogICAgICAgICAgICApLAogICAgICAgICAgKSwKICAgICAgICAgIC8vIFRPRE86IGFkZCBtb3JlIHNjZW5hcmlvcwogICAgICAgIF0sCiAgICAgICksCiAgICApOwogIH0pOwp9e3svbW9iaWxlfX0K", "type": "text" }, { diff --git a/packages/rapid_cli/test/e2e/android_feature_add_bloc_test.dart b/packages/rapid_cli/test/e2e/android_feature_add_bloc_test.dart index 224285c0..2cb85a04 100644 --- a/packages/rapid_cli/test/e2e/android_feature_add_bloc_test.dart +++ b/packages/rapid_cli/test/e2e/android_feature_add_bloc_test.dart @@ -14,7 +14,7 @@ void main() { 'android add bloc', performTest( platform: Platform.android, - expectedCoverage: 72.73, + expectedCoverage: 80, ), timeout: const Timeout(Duration(minutes: 8)), ); diff --git a/packages/rapid_cli/test/e2e/domain_sub_domain_add_service_interface_test.dart b/packages/rapid_cli/test/e2e/domain_sub_domain_add_service_interface_test.dart index 3f4b35db..66f288eb 100644 --- a/packages/rapid_cli/test/e2e/domain_sub_domain_add_service_interface_test.dart +++ b/packages/rapid_cli/test/e2e/domain_sub_domain_add_service_interface_test.dart @@ -34,6 +34,8 @@ dynamic Function() performTest({ ]); // Assert + // TODO(jtdLab): service interface has one_member_abstract lint + // await verifyNoAnalyzerIssues(); await verifyNoFormattingIssues(); verifyDoExist({ ...tester.serviceInterfaceFiles( diff --git a/packages/rapid_cli/test/e2e/infrastructure_sub_infrastructure_remove_service_implementation_test.dart b/packages/rapid_cli/test/e2e/infrastructure_sub_infrastructure_remove_service_implementation_test.dart index f29c40da..2cdcd690 100644 --- a/packages/rapid_cli/test/e2e/infrastructure_sub_infrastructure_remove_service_implementation_test.dart +++ b/packages/rapid_cli/test/e2e/infrastructure_sub_infrastructure_remove_service_implementation_test.dart @@ -58,7 +58,8 @@ dynamic Function() performTest({ ]); // Assert - await verifyNoAnalyzerIssues(); + // TODO(jtdLab): service interface has one_member_abstract lint + // await verifyNoAnalyzerIssues(); await verifyNoFormattingIssues(); verifyDoNotExist({ ...tester.serviceImplementationFiles( diff --git a/packages/rapid_cli/test/e2e/ios_feature_add_bloc_test.dart b/packages/rapid_cli/test/e2e/ios_feature_add_bloc_test.dart index 520b0500..01bd33ce 100644 --- a/packages/rapid_cli/test/e2e/ios_feature_add_bloc_test.dart +++ b/packages/rapid_cli/test/e2e/ios_feature_add_bloc_test.dart @@ -14,7 +14,7 @@ void main() { 'ios add bloc', performTest( platform: Platform.ios, - expectedCoverage: 72.73, + expectedCoverage: 80, ), timeout: const Timeout(Duration(minutes: 8)), ); diff --git a/packages/rapid_cli/test/e2e/linux_feature_add_bloc_test.dart b/packages/rapid_cli/test/e2e/linux_feature_add_bloc_test.dart index 75d096d8..818adfb8 100644 --- a/packages/rapid_cli/test/e2e/linux_feature_add_bloc_test.dart +++ b/packages/rapid_cli/test/e2e/linux_feature_add_bloc_test.dart @@ -14,7 +14,7 @@ void main() { 'linux add bloc', performTest( platform: Platform.linux, - expectedCoverage: 72.73, + expectedCoverage: 80, ), timeout: const Timeout(Duration(minutes: 8)), ); diff --git a/packages/rapid_cli/test/e2e/macos_feature_add_bloc_test.dart b/packages/rapid_cli/test/e2e/macos_feature_add_bloc_test.dart index 3dedc81c..7369bd94 100644 --- a/packages/rapid_cli/test/e2e/macos_feature_add_bloc_test.dart +++ b/packages/rapid_cli/test/e2e/macos_feature_add_bloc_test.dart @@ -14,7 +14,7 @@ void main() { 'macos add bloc', performTest( platform: Platform.macos, - expectedCoverage: 78.57, + expectedCoverage: 84.62, ), timeout: const Timeout(Duration(minutes: 8)), ); diff --git a/packages/rapid_cli/test/e2e/mobile_feature_add_bloc_test.dart b/packages/rapid_cli/test/e2e/mobile_feature_add_bloc_test.dart index 83c0a7b3..670e5258 100644 --- a/packages/rapid_cli/test/e2e/mobile_feature_add_bloc_test.dart +++ b/packages/rapid_cli/test/e2e/mobile_feature_add_bloc_test.dart @@ -14,7 +14,7 @@ void main() { 'mobile add bloc', performTest( platform: Platform.mobile, - expectedCoverage: 72.73, + expectedCoverage: 80, ), timeout: const Timeout(Duration(minutes: 8)), ); diff --git a/packages/rapid_cli/test/e2e/web_feature_add_bloc_test.dart b/packages/rapid_cli/test/e2e/web_feature_add_bloc_test.dart index c7d4afad..424421ff 100644 --- a/packages/rapid_cli/test/e2e/web_feature_add_bloc_test.dart +++ b/packages/rapid_cli/test/e2e/web_feature_add_bloc_test.dart @@ -14,7 +14,7 @@ void main() { 'web add bloc', performTest( platform: Platform.web, - expectedCoverage: 72.73, + expectedCoverage: 80, ), timeout: const Timeout(Duration(minutes: 8)), ); diff --git a/packages/rapid_cli/test/e2e/windows_feature_add_bloc_test.dart b/packages/rapid_cli/test/e2e/windows_feature_add_bloc_test.dart index 3f185136..d075a0bc 100644 --- a/packages/rapid_cli/test/e2e/windows_feature_add_bloc_test.dart +++ b/packages/rapid_cli/test/e2e/windows_feature_add_bloc_test.dart @@ -14,7 +14,7 @@ void main() { 'windows add bloc', performTest( platform: Platform.windows, - expectedCoverage: 72.73, + expectedCoverage: 80, ), timeout: const Timeout(Duration(minutes: 8)), );