From c72bfacc7833b4575e409b2319e8cccab612ac50 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Mon, 15 Sep 2025 23:24:26 -0500 Subject: [PATCH 01/10] fix(dart_frog_cli): workspace package version resolution --- .../lib/dart_frog_prod_server_hooks.dart | 2 + .../lib/src/copy_workspace_pubspec_lock.dart | 55 +-- .../lib/src/disable_workspace_resolution.dart | 38 +- .../hooks/lib/src/get_package_config.dart | 22 + .../hooks/lib/src/get_workspace_root.dart | 46 +++ .../dart_frog_prod_server/hooks/pre_gen.dart | 29 +- .../dart_frog_prod_server/hooks/pubspec.yaml | 2 + .../dart_frog_prod_server_bundle.dart | 379 +----------------- 8 files changed, 140 insertions(+), 433 deletions(-) create mode 100644 bricks/dart_frog_prod_server/hooks/lib/src/get_package_config.dart create mode 100644 bricks/dart_frog_prod_server/hooks/lib/src/get_workspace_root.dart diff --git a/bricks/dart_frog_prod_server/hooks/lib/dart_frog_prod_server_hooks.dart b/bricks/dart_frog_prod_server/hooks/lib/dart_frog_prod_server_hooks.dart index 2f1eab3df..d7f44cf26 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/dart_frog_prod_server_hooks.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/dart_frog_prod_server_hooks.dart @@ -5,7 +5,9 @@ export 'src/dart_pub_get.dart'; export 'src/disable_workspace_resolution.dart'; export 'src/exit_overrides.dart'; export 'src/get_internal_path_dependencies.dart'; +export 'src/get_package_config.dart'; export 'src/get_pubspec_lock.dart'; +export 'src/get_workspace_root.dart'; export 'src/uses_workspace_resolution.dart'; /// A void callback function (e.g. `void Function()`). diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/copy_workspace_pubspec_lock.dart b/bricks/dart_frog_prod_server/hooks/lib/src/copy_workspace_pubspec_lock.dart index 05cb61719..bf2dd1e64 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/copy_workspace_pubspec_lock.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/copy_workspace_pubspec_lock.dart @@ -2,7 +2,6 @@ import 'dart:io'; import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart'; import 'package:mason/mason.dart'; import 'package:path/path.dart' as path; -import 'package:yaml/yaml.dart'; /// Copies the pubspec.lock from the workspace root into the project directory /// in order to ensure the production build uses the exact same versions of all @@ -10,18 +9,10 @@ import 'package:yaml/yaml.dart'; VoidCallback copyWorkspacePubspecLock( HookContext context, { required String projectDirectory, + required String workspaceRoot, required void Function(int exitCode) exit, }) { - final workspaceRoot = _getWorkspaceRoot(projectDirectory); - if (workspaceRoot == null) { - context.logger.err( - 'Unable to determine workspace root for $projectDirectory', - ); - exit(1); - return () {}; - } - - final pubspecLockFile = File(path.join(workspaceRoot.path, 'pubspec.lock')); + final pubspecLockFile = File(path.join(workspaceRoot, 'pubspec.lock')); if (!pubspecLockFile.existsSync()) return () {}; try { @@ -35,45 +26,3 @@ VoidCallback copyWorkspacePubspecLock( return () {}; } } - -/// Returns the root directory of the nearest Dart workspace. -Directory? _getWorkspaceRoot(String workingDirectory) { - final file = _findNearestAncestor( - where: (path) => _getWorkspaceRootPubspecYaml(cwd: Directory(path)), - cwd: Directory(workingDirectory), - ); - if (file == null || !file.existsSync()) return null; - return Directory(path.dirname(file.path)); -} - -/// The workspace root `pubspec.yaml` file for this project. -File? _getWorkspaceRootPubspecYaml({required Directory cwd}) { - try { - final pubspecYamlFile = File(path.join(cwd.path, 'pubspec.yaml')); - if (!pubspecYamlFile.existsSync()) return null; - final pubspec = loadYaml(pubspecYamlFile.readAsStringSync()); - if (pubspec is! YamlMap) return null; - final workspace = pubspec['workspace'] as List?; - if (workspace?.isEmpty ?? true) return null; - return pubspecYamlFile; - } on Exception { - return null; - } -} - -/// Finds nearest ancestor file -/// relative to the [cwd] that satisfies [where]. -File? _findNearestAncestor({ - required File? Function(String path) where, - required Directory cwd, -}) { - Directory? prev; - var dir = cwd; - while (prev?.path != dir.path) { - final file = where(dir.path); - if (file?.existsSync() ?? false) return file; - prev = dir; - dir = dir.parent; - } - return null; -} diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart index 8ae665165..0b606c949 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart @@ -1,7 +1,9 @@ import 'dart:io'; import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart'; import 'package:mason/mason.dart'; +import 'package:package_config/package_config_types.dart'; import 'package:path/path.dart' as path; +import 'package:pubspec_parse/pubspec_parse.dart'; import 'package:yaml/yaml.dart'; import 'package:yaml_edit/yaml_edit.dart'; @@ -9,16 +11,50 @@ import 'package:yaml_edit/yaml_edit.dart'; /// https://github.com/dart-lang/pub/issues/4594 VoidCallback disableWorkspaceResolution( HookContext context, { + required PackageConfig packageConfig, required String projectDirectory, + required String workspaceRoot, required void Function(int exitCode) exit, }) { + final VoidCallback restoreWorkspaceResolution; try { - return overrideResolutionInPubspecOverrides(projectDirectory); + restoreWorkspaceResolution = overrideResolutionInPubspecOverrides( + projectDirectory, + ); } on Exception catch (e) { context.logger.err('$e'); exit(1); return () {}; // no-op } + + // Get all package dependencies. + final pubspecFile = File(path.join(projectDirectory, 'pubspec.yaml')); + final pubspec = Pubspec.parse(pubspecFile.readAsStringSync()); + final allDependencies = [ + ...pubspec.dependencies.keys, + ...pubspec.devDependencies.keys, + ]; + + // Find path dependencies based on the package_config.json. + final pathDependencies = packageConfig.packages.where( + (package) => package.relativeRoot && allDependencies.contains(package.name), + ); + + // Add dependency_overrides to the pubspec_overrides.yaml. + final pubspecOverridesFile = File( + path.join(projectDirectory, 'pubspec_overrides.yaml'), + ); + final contents = pubspecOverridesFile.readAsStringSync(); + final editor = YamlEditor(contents)..update(['dependency_overrides'], {}); + for (final package in pathDependencies) { + editor.update( + ['dependency_overrides', package.name], + {'path': path.relative(package.root.path, from: projectDirectory)}, + ); + } + pubspecOverridesFile.writeAsStringSync(editor.toString()); + + return restoreWorkspaceResolution; } VoidCallback overrideResolutionInPubspecOverrides(String projectDirectory) { diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/get_package_config.dart b/bricks/dart_frog_prod_server/hooks/lib/src/get_package_config.dart new file mode 100644 index 000000000..0a9a9c52c --- /dev/null +++ b/bricks/dart_frog_prod_server/hooks/lib/src/get_package_config.dart @@ -0,0 +1,22 @@ +import 'dart:io'; + +import 'package:package_config/package_config_types.dart'; +import 'package:path/path.dart' as path; + +PackageConfig? getPackageConfig( + String workspaceRoot, { + path.Context? pathContext, +}) { + final pathResolver = pathContext ?? path.context; + final packageConfigFile = File( + pathResolver.join(workspaceRoot, '.dart_tool/package_config.json'), + ); + if (!packageConfigFile.existsSync()) return null; + + try { + final content = packageConfigFile.readAsStringSync(); + return PackageConfig.parseString(content, packageConfigFile.uri); + } on Exception { + return null; + } +} diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/get_workspace_root.dart b/bricks/dart_frog_prod_server/hooks/lib/src/get_workspace_root.dart new file mode 100644 index 000000000..59b713054 --- /dev/null +++ b/bricks/dart_frog_prod_server/hooks/lib/src/get_workspace_root.dart @@ -0,0 +1,46 @@ +import 'dart:io'; + +import 'package:path/path.dart' as path; +import 'package:yaml/yaml.dart'; + +/// Returns the root directory of the nearest Dart workspace. +Directory? getWorkspaceRoot(String workingDirectory) { + final file = _findNearestAncestor( + where: (path) => _getWorkspaceRootPubspecYaml(cwd: Directory(path)), + cwd: Directory(workingDirectory), + ); + if (file == null || !file.existsSync()) return null; + return Directory(path.dirname(file.path)); +} + +/// The workspace root `pubspec.yaml` file for this project. +File? _getWorkspaceRootPubspecYaml({required Directory cwd}) { + try { + final pubspecYamlFile = File(path.join(cwd.path, 'pubspec.yaml')); + if (!pubspecYamlFile.existsSync()) return null; + final pubspec = loadYaml(pubspecYamlFile.readAsStringSync()); + if (pubspec is! YamlMap) return null; + final workspace = pubspec['workspace'] as List?; + if (workspace?.isEmpty ?? true) return null; + return pubspecYamlFile; + } on Exception { + return null; + } +} + +/// Finds nearest ancestor file +/// relative to the [cwd] that satisfies [where]. +File? _findNearestAncestor({ + required File? Function(String path) where, + required Directory cwd, +}) { + Directory? prev; + var dir = cwd; + while (prev?.path != dir.path) { + final file = where(dir.path); + if (file?.existsSync() ?? false) return file; + prev = dir; + dir = dir.parent; + } + return null; +} diff --git a/bricks/dart_frog_prod_server/hooks/pre_gen.dart b/bricks/dart_frog_prod_server/hooks/pre_gen.dart index 42eb969a8..e9f85bbb0 100644 --- a/bricks/dart_frog_prod_server/hooks/pre_gen.dart +++ b/bricks/dart_frog_prod_server/hooks/pre_gen.dart @@ -33,11 +33,37 @@ Future preGen( VoidCallback? revertPubspecLock; if (usesWorkspaces) { + final workspaceRoot = getWorkspaceRoot(projectDirectory.path); + if (workspaceRoot == null) { + context.logger.err( + 'Unable to determine workspace root for $projectDirectory', + ); + return exit(1); + } + + // We need to make sure the package_config.json is up to date. + await dartPubGet( + context, + workingDirectory: projectDirectory.path, + runProcess: runProcess, + exit: exit, + ); + + final packageConfig = getPackageConfig(workspaceRoot.path); + if (packageConfig == null) { + context.logger.err( + 'Unable to find package_config.json for ${workspaceRoot.path}', + ); + return exit(1); + } + // Disable workspace resolution until we can generate per-package lockfiles. // https://github.com/dart-lang/pub/issues/4594 restoreWorkspaceResolution = disableWorkspaceResolution( context, + packageConfig: packageConfig, projectDirectory: projectDirectory.path, + workspaceRoot: workspaceRoot.path, exit: exit, ); // Copy the pubspec.lock from the workspace root to ensure the same versions @@ -45,11 +71,12 @@ Future preGen( revertPubspecLock = copyWorkspacePubspecLock( context, projectDirectory: projectDirectory.path, + workspaceRoot: workspaceRoot.path, exit: exit, ); } - // We need to make sure that the pubspec.lock file is up to date + // We need to make sure that the pubspec.lock file is up to date. await dartPubGet( context, workingDirectory: projectDirectory.path, diff --git a/bricks/dart_frog_prod_server/hooks/pubspec.yaml b/bricks/dart_frog_prod_server/hooks/pubspec.yaml index a3aeeacc1..02e2307fe 100644 --- a/bricks/dart_frog_prod_server/hooks/pubspec.yaml +++ b/bricks/dart_frog_prod_server/hooks/pubspec.yaml @@ -9,7 +9,9 @@ dependencies: equatable: ^2.0.5 io: ^1.0.3 mason: ^0.1.0 + package_config: ^2.2.0 path: ^1.8.1 + pubspec_parse: ^1.5.0 yaml: ^3.1.2 yaml_edit: ^2.2.2 diff --git a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart index 6d262e181..e9441c649 100644 --- a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart +++ b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart @@ -3,381 +3,4 @@ import 'package:mason/mason.dart'; -final dartFrogProdServerBundle = MasonBundle.fromJson({ - "files": [ - { - "path": "build/.dockerignore", - "data": - "LmRvY2tlcmlnbm9yZQpEb2NrZXJmaWxlCmJ1aWxkLwouZGFydF90b29sLwouZ2l0LwouZ2l0aHViLwouZ2l0aWdub3JlCi5pZGVhLwoucGFja2FnZXM=", - "type": "text" - }, - { - "path": "build/bin/server.dart", - "data": - "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKLy8gaWdub3JlX2Zvcl9maWxlOiB0eXBlPWxpbnQsIGltcGxpY2l0X2R5bmFtaWNfbGlzdF9saXRlcmFsCgppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZy9kYXJ0X2Zyb2cuZGFydCc7Cgp7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1pbXBvcnQgJy4uL21haW4uZGFydCcgYXMgZW50cnlwb2ludDt7ey9pbnZva2VDdXN0b21FbnRyeXBvaW50fX0Ke3sjcm91dGVzfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9yb3V0ZXN9fQp7eyNtaWRkbGV3YXJlfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9taWRkbGV3YXJlfX0Kdm9pZCBtYWluKCkgYXN5bmMgewogIGZpbmFsIGFkZHJlc3MgPSBJbnRlcm5ldEFkZHJlc3MuYW55SVB2NjsKICBmaW5hbCBwb3J0ID0gaW50LnRyeVBhcnNlKFBsYXRmb3JtLmVudmlyb25tZW50WydQT1JUJ10gPz8gJzgwODAnKSA/PyA4MDgwO3t7I2ludm9rZUN1c3RvbUluaXR9fQogIGF3YWl0IGVudHJ5cG9pbnQuaW5pdChhZGRyZXNzLCBwb3J0KTt7ey9pbnZva2VDdXN0b21Jbml0fX0KICBjcmVhdGVTZXJ2ZXIoYWRkcmVzcywgcG9ydCk7Cn0KCkZ1dHVyZTxIdHRwU2VydmVyPiBjcmVhdGVTZXJ2ZXIoSW50ZXJuZXRBZGRyZXNzIGFkZHJlc3MsIGludCBwb3J0KSBhc3luYyB7CiAgZmluYWwgaGFuZGxlciA9IENhc2NhZGUoKXt7I3NlcnZlU3RhdGljRmlsZXN9fS5hZGQoY3JlYXRlU3RhdGljRmlsZUhhbmRsZXIoKSl7ey9zZXJ2ZVN0YXRpY0ZpbGVzfX0uYWRkKGJ1aWxkUm9vdEhhbmRsZXIoKSkuaGFuZGxlcjsKICBmaW5hbCBzZXJ2ZXIgPSBhd2FpdCB7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1lbnRyeXBvaW50LnJ1bihoYW5kbGVyLCBhZGRyZXNzLCBwb3J0KXt7L2ludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXt7Xmludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXNlcnZlKGhhbmRsZXIsIGFkZHJlc3MsIHBvcnQpe3svaW52b2tlQ3VzdG9tRW50cnlwb2ludH19OwogIHByaW50KCdceDFCWzkybeKck1x4MUJbMG0gUnVubmluZyBvbiBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIHJldHVybiBzZXJ2ZXI7Cn0KCkhhbmRsZXIgYnVpbGRSb290SGFuZGxlcigpIHsKICBmaW5hbCBwaXBlbGluZSA9IGNvbnN0IFBpcGVsaW5lKCl7eyNnbG9iYWxNaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L2dsb2JhbE1pZGRsZXdhcmV9fTsKICBmaW5hbCByb3V0ZXIgPSBSb3V0ZXIoKXt7I2RpcmVjdG9yaWVzfX0KICAgIC4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHR7eyNkaXJlY3RvcnlfcGFyYW1zLjB9fSx7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX17ey9kaXJlY3RvcnlfcGFyYW1zLjB9fSkgPT4gYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX0pKGNvbnRleHQpKXt7L2RpcmVjdG9yaWVzfX07CiAgcmV0dXJuIHBpcGVsaW5lLmFkZEhhbmRsZXIocm91dGVyKTsKfQp7eyNkaXJlY3Rvcmllc319CkhhbmRsZXIgYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX1TdHJpbmcge3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319KSB7CiAgZmluYWwgcGlwZWxpbmUgPSBjb25zdCBQaXBlbGluZSgpe3sjbWlkZGxld2FyZS4wfX17eyNtaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L21pZGRsZXdhcmV9fXt7L21pZGRsZXdhcmUuMH19OwogIGZpbmFsIHJvdXRlciA9IFJvdXRlcigpCiAgICB7eyNmaWxlc319e3sjd2lsZGNhcmR9fS4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHQpID0+IHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Lm9uUmVxdWVzdChjb250ZXh0LGNvbnRleHQucmVxdWVzdC51cmwucGF0aCkpe3svd2lsZGNhcmR9fXt7XndpbGRjYXJkfX0uLmFsbCgne3t7cm91dGV9fX0nLCAoY29udGV4dHt7I2ZpbGVfcGFyYW1zLjB9fSx7eyNmaWxlX3BhcmFtc319e3sufX0se3svZmlsZV9wYXJhbXN9fXt7L2ZpbGVfcGFyYW1zLjB9fSkgPT4ge3sjc25ha2VDYXNlfX17e3tuYW1lfX19e3svc25ha2VDYXNlfX0ub25SZXF1ZXN0KGNvbnRleHQse3sjZGlyZWN0b3J5X3BhcmFtc319e3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319e3sjZmlsZV9wYXJhbXN9fXt7Ln19LHt7L2ZpbGVfcGFyYW1zfX0pKXt7L3dpbGRjYXJkfX17ey9maWxlc319OwogIHJldHVybiBwaXBlbGluZS5hZGRIYW5kbGVyKHJvdXRlcik7Cn0Ke3svZGlyZWN0b3JpZXN9fQo=", - "type": "text" - }, - { - "path": "build/{{#addDockerfile}}Dockerfile{{/addDockerfile}}", - "data": - "IyBPZmZpY2lhbCBEYXJ0IGltYWdlOiBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vZGFydAojIFNwZWNpZnkgdGhlIERhcnQgU0RLIGJhc2UgaW1hZ2UgdmVyc2lvbiB1c2luZyBkYXJ0Ojx2ZXJzaW9uPiAoZXg6IGRhcnQ6Mi4xNykKRlJPTSBkYXJ0Ont7ZGFydFZlcnNpb259fSBBUyBidWlsZAoKV09SS0RJUiAvYXBwCnt7I2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KCiMgQ29weSBleHRlcm5hbCBkZXBlbmRlbmNpZXMKQ09QWSAuLy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMgIC4vLmRhcnRfZnJvZ19wYXRoX2RlcGVuZGVuY2llcwpDT1BZIC4vcHVic3BlY19vdmVycmlkZXMueWFtbCAuL3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwKe3svaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXN9fQojIENvcHkgRGVwZW5kZW5jaWVzCnt7I3BhdGhEZXBlbmRlbmNpZXN9fUNPUFkge3t7Ln19fSAuL3t7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7Xmhhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBJbnN0YWxsIERlcGVuZGVuY2llcwp7eyNwYXRoRGVwZW5kZW5jaWVzfX1SVU4gZGFydCBwdWIgZ2V0IC1DIHt7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7L2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBSZXNvbHZlIGFwcCBkZXBlbmRlbmNpZXMuCkNPUFkgcHVic3BlYy4qIC4vCkNPUFkgcHVic3BlY19vdmVycmlkZXMueWFtbCogLi8KUlVOIGRhcnQgcHViIGdldAoKIyBDb3B5IGFwcCBzb3VyY2UgY29kZSBhbmQgQU9UIGNvbXBpbGUgaXQuCkNPUFkgLiAuCiMgRW5zdXJlIHBhY2thZ2VzIGFyZSBzdGlsbCB1cC10by1kYXRlIGlmIGFueXRoaW5nIGhhcyBjaGFuZ2VkClJVTiBkYXJ0IHB1YiBnZXQgLS1vZmZsaW5lClJVTiBkYXJ0IGNvbXBpbGUgZXhlIGJpbi9zZXJ2ZXIuZGFydCAtbyBiaW4vc2VydmVyCgojIEJ1aWxkIG1pbmltYWwgc2VydmluZyBpbWFnZSBmcm9tIEFPVC1jb21waWxlZCBgL3NlcnZlcmAgYW5kIHJlcXVpcmVkIHN5c3RlbQojIGxpYnJhcmllcyBhbmQgY29uZmlndXJhdGlvbiBmaWxlcyBzdG9yZWQgaW4gYC9ydW50aW1lL2AgZnJvbSB0aGUgYnVpbGQgc3RhZ2UuCkZST00gc2NyYXRjaApDT1BZIC0tZnJvbT1idWlsZCAvcnVudGltZS8gLwpDT1BZIC0tZnJvbT1idWlsZCAvYXBwL2Jpbi9zZXJ2ZXIgL2FwcC9iaW4vCnt7I3NlcnZlU3RhdGljRmlsZXN9fUNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvcHVibGljIC9wdWJsaWMve3svc2VydmVTdGF0aWNGaWxlc319CgojIFN0YXJ0IHNlcnZlci4KQ01EIFsiL2FwcC9iaW4vc2VydmVyIl0K", - "type": "text" - } - ], - "hooks": [ - { - "path": "build/lib/dart_frog_prod_server_hooks.dart", - "data": - "ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL3VzZXNfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7Cg==", - "type": "text" - }, - { - "path": "build/lib/src/copy_workspace_pubspec_lock.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gQ29waWVzIHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkKLy8vIGluIG9yZGVyIHRvIGVuc3VyZSB0aGUgcHJvZHVjdGlvbiBidWlsZCB1c2VzIHRoZSBleGFjdCBzYW1lIHZlcnNpb25zIG9mIGFsbAovLy8gZGVwZW5kZW5jaWVzLgp2b2lkIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gX2dldFdvcmtzcGFjZVJvb3QocHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHByb2plY3REaXJlY3RvcnknLAogICAgKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgZmluYWwgcHVic3BlY0xvY2tGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya3NwYWNlUm9vdC5wYXRoLCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuOwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KfQoKLy8vIFJldHVybnMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBuZWFyZXN0IERhcnQgd29ya3NwYWNlLgpEaXJlY3Rvcnk/IF9nZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==", - "type": "text" - }, - { - "path": "build/lib/src/create_bundle.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=", - "type": "text" - }, - { - "path": "build/lib/src/create_external_packages_folder.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K", - "type": "text" - }, - { - "path": "build/lib/src/dart_pub_get.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==", - "type": "text" - }, - { - "path": "build/lib/src/disable_workspace_resolution.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIHRyeSB7CiAgICByZXR1cm4gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KfQoKVm9pZENhbGxiYWNrIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhTdHJpbmcgcHJvamVjdERpcmVjdG9yeSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CgogIGlmICghcHVic3BlY092ZXJyaWRlc0ZpbGUuZXhpc3RzU3luYygpKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuIHB1YnNwZWNPdmVycmlkZXNGaWxlLmRlbGV0ZVN5bmM7CiAgfQoKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA/OwoKICBpZiAocHVic3BlY092ZXJyaWRlcyA9PSBudWxsKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKICB9CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzWydyZXNvbHV0aW9uJ10gPT0gJ251bGwnKSByZXR1cm4gKCkge307IC8vIG5vLW9wCgogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpLi51cGRhdGUoWydyZXNvbHV0aW9uJ10sIG51bGwpOwogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKCiAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKfQo=", - "type": "text" - }, - { - "path": "build/lib/src/exit_overrides.dart", - "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==", - "type": "text" - }, - { - "path": "build/lib/src/get_internal_path_dependencies.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=", - "type": "text" - }, - { - "path": "build/lib/src/get_pubspec_lock.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=", - "type": "text" - }, - { - "path": "build/lib/src/pubspec_lock/pubspec_lock.dart", - "data": - "aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K", - "type": "text" - }, - { - "path": "build/lib/src/uses_workspace_resolution.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==", - "type": "text" - }, - { - "path": "build/post_gen.dart", - "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K", - "type": "text" - }, - { - "path": "build/pre_gen.dart", - "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CgogIGlmICh1c2VzV29ya3NwYWNlcykgewogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K", - "type": "text" - }, - { - "path": "build/pubspec.yaml", - "data": - "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=", - "type": "text" - }, - { - "path": "build/test/post_gen_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "build/test/pre_gen_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "build/test/pubspec_locks.dart", - "data": - "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=", - "type": "text" - }, - { - "path": "build/test/pubspecs.dart", - "data": - "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK", - "type": "text" - }, - { - "path": "build/test/src/copy_workspace_pubspec_lock_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==", - "type": "text" - }, - { - "path": "build/test/src/create_bundle_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=", - "type": "text" - }, - { - "path": "build/test/src/create_external_packages_folder_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==", - "type": "text" - }, - { - "path": "build/test/src/dart_pub_get_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "build/test/src/disable_workspace_resolution_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "build/test/src/exit_overrides_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=", - "type": "text" - }, - { - "path": "build/test/src/get_internal_path_dependencies_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=", - "type": "text" - }, - { - "path": "build/test/src/pubspec_lock/pubspec_lock_test.dart", - "data": - "Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==", - "type": "text" - }, - { - "path": "build/test/src/uses_workspace_resolution_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "lib/dart_frog_prod_server_hooks.dart", - "data": - "ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL3VzZXNfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CgovLy8gQSB2b2lkIGNhbGxiYWNrIGZ1bmN0aW9uIChlLmcuIGB2b2lkIEZ1bmN0aW9uKClgKS4KdHlwZWRlZiBWb2lkQ2FsbGJhY2sgPSB2b2lkIEZ1bmN0aW9uKCk7Cg==", - "type": "text" - }, - { - "path": "lib/src/copy_workspace_pubspec_lock.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKLy8vIENvcGllcyB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IGludG8gdGhlIHByb2plY3QgZGlyZWN0b3J5Ci8vLyBpbiBvcmRlciB0byBlbnN1cmUgdGhlIHByb2R1Y3Rpb24gYnVpbGQgdXNlcyB0aGUgZXhhY3Qgc2FtZSB2ZXJzaW9ucyBvZiBhbGwKLy8vIGRlcGVuZGVuY2llcy4KVm9pZENhbGxiYWNrIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gX2dldFdvcmtzcGFjZVJvb3QocHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHByb2plY3REaXJlY3RvcnknLAogICAgKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gKCkge307CiAgfQoKICBmaW5hbCBwdWJzcGVjTG9ja0ZpbGUgPSBGaWxlKHBhdGguam9pbih3b3Jrc3BhY2VSb290LnBhdGgsICdwdWJzcGVjLmxvY2snKSk7CiAgaWYgKCFwdWJzcGVjTG9ja0ZpbGUuZXhpc3RzU3luYygpKSByZXR1cm4gKCkge307CgogIHRyeSB7CiAgICBwdWJzcGVjTG9ja0ZpbGUuY29weVN5bmMocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjLmxvY2snKSk7CiAgICByZXR1cm4gKCkgewogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpLmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgfTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OwogIH0KfQoKLy8vIFJldHVybnMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBuZWFyZXN0IERhcnQgd29ya3NwYWNlLgpEaXJlY3Rvcnk/IF9nZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==", - "type": "text" - }, - { - "path": "lib/src/create_bundle.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=", - "type": "text" - }, - { - "path": "lib/src/create_external_packages_folder.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K", - "type": "text" - }, - { - "path": "lib/src/dart_pub_get.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==", - "type": "text" - }, - { - "path": "lib/src/disable_workspace_resolution.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbF9lZGl0L3lhbWxfZWRpdC5kYXJ0JzsKCi8vLyBPcHRzIG91dCBvZiBkYXJ0IHdvcmtzcGFjZXMgdW50aWwgd2UgY2FuIGdlbmVyYXRlIHBlciBwYWNrYWdlIGxvY2tmaWxlcy4KLy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy80NTk0ClZvaWRDYWxsYmFjayBkaXNhYmxlV29ya3NwYWNlUmVzb2x1dGlvbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICB0cnkgewogICAgcmV0dXJuIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZSkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZScpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKICB9Cn0KClZvaWRDYWxsYmFjayBvdmVycmlkZVJlc29sdXRpb25JblB1YnNwZWNPdmVycmlkZXMoU3RyaW5nIHByb2plY3REaXJlY3RvcnkpIHsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzRmlsZSA9IEZpbGUoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnKSwKICApOwoKICBpZiAoIXB1YnNwZWNPdmVycmlkZXNGaWxlLmV4aXN0c1N5bmMoKSkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5kZWxldGVTeW5jOwogIH0KCiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGxvYWRZYW1sKGNvbnRlbnRzKSBhcyBZYW1sTWFwPzsKCiAgaWYgKHB1YnNwZWNPdmVycmlkZXMgPT0gbnVsbCkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7CiAgfQoKICBpZiAocHVic3BlY092ZXJyaWRlc1sncmVzb2x1dGlvbiddID09ICdudWxsJykgcmV0dXJuICgpIHt9OyAvLyBuby1vcAoKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsncmVzb2x1dGlvbiddLCBudWxsKTsKICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhlZGl0b3IudG9TdHJpbmcoKSk7CgogIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7Cn0K", - "type": "text" - }, - { - "path": "lib/src/exit_overrides.dart", - "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==", - "type": "text" - }, - { - "path": "lib/src/get_internal_path_dependencies.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=", - "type": "text" - }, - { - "path": "lib/src/get_pubspec_lock.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=", - "type": "text" - }, - { - "path": "lib/src/pubspec_lock/pubspec_lock.dart", - "data": - "aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K", - "type": "text" - }, - { - "path": "lib/src/uses_workspace_resolution.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==", - "type": "text" - }, - { - "path": "post_gen.dart", - "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K", - "type": "text" - }, - { - "path": "pre_gen.dart", - "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICAvLyBEaXNhYmxlIHdvcmtzcGFjZSByZXNvbHV0aW9uIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXItcGFja2FnZSBsb2NrZmlsZXMuCiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NAogICAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24gPSBkaXNhYmxlV29ya3NwYWNlUmVzb2x1dGlvbigKICAgICAgY29udGV4dCwKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICAgIC8vIENvcHkgdGhlIHB1YnNwZWMubG9jayBmcm9tIHRoZSB3b3Jrc3BhY2Ugcm9vdCB0byBlbnN1cmUgdGhlIHNhbWUgdmVyc2lvbnMKICAgIC8vIG9mIGRlcGVuZGVuY2llcyBhcmUgdXNlZCBpbiB0aGUgcHJvZHVjdGlvbiBidWlsZC4KICAgIHJldmVydFB1YnNwZWNMb2NrID0gY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICBjb250ZXh0LAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogIH0KCiAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcHVic3BlYy5sb2NrIGZpbGUgaXMgdXAgdG8gZGF0ZQogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgYnVpbGREaXJlY3RvcnkgPSBpby5EaXJlY3RvcnkoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSwKICApOwoKICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICBjb250ZXh0OiBjb250ZXh0LAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24/LmNhbGwoKTsKCiAgZmluYWwgUm91dGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CiAgdHJ5IHsKICAgIGNvbmZpZ3VyYXRpb24gPSBidWlsZENvbmZpZ3VyYXRpb24ocHJvamVjdERpcmVjdG9yeSk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgcmV0dXJuIGV4aXQoMSk7CiAgfQoKICByZXBvcnRSb3V0ZUNvbmZsaWN0cygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvdXRlQ29uZmxpY3Q6ICgKICAgICAgb3JpZ2luYWxGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdFbmRwb2ludCwKICAgICkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm91dGUgY29uZmxpY3QgZGV0ZWN0ZWQuICR7bGlnaHRDeWFuLndyYXAob3JpZ2luYWxGaWxlUGF0aCl9IGFuZCAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRmlsZVBhdGgpfSBib3RoIHJlc29sdmUgdG8gJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0VuZHBvaW50KX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIHJlcG9ydFJvZ3VlUm91dGVzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm9ndWVSb3V0ZTogKGZpbGVQYXRoLCBpZGVhbFBhdGgpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKGZpbGVQYXRoKX0gdG8gJHtsaWdodEN5YW4ud3JhcChpZGVhbFBhdGgpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIHJldmVydFB1YnNwZWNMb2NrPy5jYWxsKCk7CgogIGZpbmFsIGN1c3RvbURvY2tlckZpbGUgPSBpby5GaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ0RvY2tlcmZpbGUnKSwKICApOwogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K", - "type": "text" - }, - { - "path": "pubspec.yaml", - "data": - "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=", - "type": "text" - }, - { - "path": "test/post_gen_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "test/pre_gen_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "test/pubspec_locks.dart", - "data": - "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=", - "type": "text" - }, - { - "path": "test/pubspecs.dart", - "data": - "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK", - "type": "text" - }, - { - "path": "test/src/copy_workspace_pubspec_lock_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==", - "type": "text" - }, - { - "path": "test/src/create_bundle_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=", - "type": "text" - }, - { - "path": "test/src/create_external_packages_folder_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==", - "type": "text" - }, - { - "path": "test/src/dart_pub_get_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "test/src/disable_workspace_resolution_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", - "type": "text" - }, - { - "path": "test/src/exit_overrides_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=", - "type": "text" - }, - { - "path": "test/src/get_internal_path_dependencies_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=", - "type": "text" - }, - { - "path": "test/src/pubspec_lock/pubspec_lock_test.dart", - "data": - "Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==", - "type": "text" - }, - { - "path": "test/src/uses_workspace_resolution_test.dart", - "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", - "type": "text" - } - ], - "name": "dart_frog_prod_server", - "description": "A dart_frog prod server", - "version": "0.1.0+1", - "environment": {"mason": "^0.1.0"}, - "readme": { - "path": "README.md", - "data": - "IyBkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXIKClshW1Bvd2VyZWQgYnkgTWFzb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzJTNBJTJGJTJGdGlueXVybC5jb20lMkZtYXNvbi1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxhbmdlbC9tYXNvbikKCkEgYGRhcnRfZnJvZ2AgcHJvZHVjdGlvbiBzZXJ2ZXIuCgpfR2VuZXJhdGVkIGJ5IFttYXNvbl1bMV0g8J+nsV8KClsxXTogaHR0cHM6Ly9naXRodWIuY29tL2ZlbGFuZ2VsL21hc29uCg==", - "type": "text" - }, - "changelog": { - "path": "CHANGELOG.md", - "data": - "IyAwLjEuMCsxCgotIGZlYXQ6IGJhc2ljIGltcGxlbWVudGF0aW9uIGZvciB0aGUgZGFydCBmcm9nIHByb2R1Y3Rpb24gc2VydmVyCg==", - "type": "text" - }, - "license": { - "path": "LICENSE", - "data": - "TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAyMiBWZXJ5IEdvb2QgVmVudHVyZXMKQ29weXJpZ2h0IChjKSAyMDI1IERhcnQgRnJvZyBEZXYKClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCg==", - "type": "text" - }, - "vars": { - "dartVersion": { - "type": "string", - "description": "Dart version to be used in the generated Dockerfile.", - "default": "stable", - "prompt": "Dart version?" - } - } -}); +final dartFrogProdServerBundle = MasonBundle.fromJson({"files":[{"path":"build/.dockerignore","data":"LmRvY2tlcmlnbm9yZQpEb2NrZXJmaWxlCmJ1aWxkLwouZGFydF90b29sLwouZ2l0LwouZ2l0aHViLwouZ2l0aWdub3JlCi5pZGVhLwoucGFja2FnZXM=","type":"text"},{"path":"build/bin/server.dart","data":"Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKLy8gaWdub3JlX2Zvcl9maWxlOiB0eXBlPWxpbnQsIGltcGxpY2l0X2R5bmFtaWNfbGlzdF9saXRlcmFsCgppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZy9kYXJ0X2Zyb2cuZGFydCc7Cgp7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1pbXBvcnQgJy4uL21haW4uZGFydCcgYXMgZW50cnlwb2ludDt7ey9pbnZva2VDdXN0b21FbnRyeXBvaW50fX0Ke3sjcm91dGVzfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9yb3V0ZXN9fQp7eyNtaWRkbGV3YXJlfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9taWRkbGV3YXJlfX0Kdm9pZCBtYWluKCkgYXN5bmMgewogIGZpbmFsIGFkZHJlc3MgPSBJbnRlcm5ldEFkZHJlc3MuYW55SVB2NjsKICBmaW5hbCBwb3J0ID0gaW50LnRyeVBhcnNlKFBsYXRmb3JtLmVudmlyb25tZW50WydQT1JUJ10gPz8gJzgwODAnKSA/PyA4MDgwO3t7I2ludm9rZUN1c3RvbUluaXR9fQogIGF3YWl0IGVudHJ5cG9pbnQuaW5pdChhZGRyZXNzLCBwb3J0KTt7ey9pbnZva2VDdXN0b21Jbml0fX0KICBjcmVhdGVTZXJ2ZXIoYWRkcmVzcywgcG9ydCk7Cn0KCkZ1dHVyZTxIdHRwU2VydmVyPiBjcmVhdGVTZXJ2ZXIoSW50ZXJuZXRBZGRyZXNzIGFkZHJlc3MsIGludCBwb3J0KSBhc3luYyB7CiAgZmluYWwgaGFuZGxlciA9IENhc2NhZGUoKXt7I3NlcnZlU3RhdGljRmlsZXN9fS5hZGQoY3JlYXRlU3RhdGljRmlsZUhhbmRsZXIoKSl7ey9zZXJ2ZVN0YXRpY0ZpbGVzfX0uYWRkKGJ1aWxkUm9vdEhhbmRsZXIoKSkuaGFuZGxlcjsKICBmaW5hbCBzZXJ2ZXIgPSBhd2FpdCB7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1lbnRyeXBvaW50LnJ1bihoYW5kbGVyLCBhZGRyZXNzLCBwb3J0KXt7L2ludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXt7Xmludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXNlcnZlKGhhbmRsZXIsIGFkZHJlc3MsIHBvcnQpe3svaW52b2tlQ3VzdG9tRW50cnlwb2ludH19OwogIHByaW50KCdceDFCWzkybeKck1x4MUJbMG0gUnVubmluZyBvbiBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIHJldHVybiBzZXJ2ZXI7Cn0KCkhhbmRsZXIgYnVpbGRSb290SGFuZGxlcigpIHsKICBmaW5hbCBwaXBlbGluZSA9IGNvbnN0IFBpcGVsaW5lKCl7eyNnbG9iYWxNaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L2dsb2JhbE1pZGRsZXdhcmV9fTsKICBmaW5hbCByb3V0ZXIgPSBSb3V0ZXIoKXt7I2RpcmVjdG9yaWVzfX0KICAgIC4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHR7eyNkaXJlY3RvcnlfcGFyYW1zLjB9fSx7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX17ey9kaXJlY3RvcnlfcGFyYW1zLjB9fSkgPT4gYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX0pKGNvbnRleHQpKXt7L2RpcmVjdG9yaWVzfX07CiAgcmV0dXJuIHBpcGVsaW5lLmFkZEhhbmRsZXIocm91dGVyKTsKfQp7eyNkaXJlY3Rvcmllc319CkhhbmRsZXIgYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX1TdHJpbmcge3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319KSB7CiAgZmluYWwgcGlwZWxpbmUgPSBjb25zdCBQaXBlbGluZSgpe3sjbWlkZGxld2FyZS4wfX17eyNtaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L21pZGRsZXdhcmV9fXt7L21pZGRsZXdhcmUuMH19OwogIGZpbmFsIHJvdXRlciA9IFJvdXRlcigpCiAgICB7eyNmaWxlc319e3sjd2lsZGNhcmR9fS4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHQpID0+IHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Lm9uUmVxdWVzdChjb250ZXh0LGNvbnRleHQucmVxdWVzdC51cmwucGF0aCkpe3svd2lsZGNhcmR9fXt7XndpbGRjYXJkfX0uLmFsbCgne3t7cm91dGV9fX0nLCAoY29udGV4dHt7I2ZpbGVfcGFyYW1zLjB9fSx7eyNmaWxlX3BhcmFtc319e3sufX0se3svZmlsZV9wYXJhbXN9fXt7L2ZpbGVfcGFyYW1zLjB9fSkgPT4ge3sjc25ha2VDYXNlfX17e3tuYW1lfX19e3svc25ha2VDYXNlfX0ub25SZXF1ZXN0KGNvbnRleHQse3sjZGlyZWN0b3J5X3BhcmFtc319e3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319e3sjZmlsZV9wYXJhbXN9fXt7Ln19LHt7L2ZpbGVfcGFyYW1zfX0pKXt7L3dpbGRjYXJkfX17ey9maWxlc319OwogIHJldHVybiBwaXBlbGluZS5hZGRIYW5kbGVyKHJvdXRlcik7Cn0Ke3svZGlyZWN0b3JpZXN9fQo=","type":"text"},{"path":"build/{{#addDockerfile}}Dockerfile{{/addDockerfile}}","data":"IyBPZmZpY2lhbCBEYXJ0IGltYWdlOiBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vZGFydAojIFNwZWNpZnkgdGhlIERhcnQgU0RLIGJhc2UgaW1hZ2UgdmVyc2lvbiB1c2luZyBkYXJ0Ojx2ZXJzaW9uPiAoZXg6IGRhcnQ6Mi4xNykKRlJPTSBkYXJ0Ont7ZGFydFZlcnNpb259fSBBUyBidWlsZAoKV09SS0RJUiAvYXBwCnt7I2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KCiMgQ29weSBleHRlcm5hbCBkZXBlbmRlbmNpZXMKQ09QWSAuLy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMgIC4vLmRhcnRfZnJvZ19wYXRoX2RlcGVuZGVuY2llcwpDT1BZIC4vcHVic3BlY19vdmVycmlkZXMueWFtbCAuL3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwKe3svaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXN9fQojIENvcHkgRGVwZW5kZW5jaWVzCnt7I3BhdGhEZXBlbmRlbmNpZXN9fUNPUFkge3t7Ln19fSAuL3t7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7Xmhhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBJbnN0YWxsIERlcGVuZGVuY2llcwp7eyNwYXRoRGVwZW5kZW5jaWVzfX1SVU4gZGFydCBwdWIgZ2V0IC1DIHt7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7L2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBSZXNvbHZlIGFwcCBkZXBlbmRlbmNpZXMuCkNPUFkgcHVic3BlYy4qIC4vCkNPUFkgcHVic3BlY19vdmVycmlkZXMueWFtbCogLi8KUlVOIGRhcnQgcHViIGdldAoKIyBDb3B5IGFwcCBzb3VyY2UgY29kZSBhbmQgQU9UIGNvbXBpbGUgaXQuCkNPUFkgLiAuCiMgRW5zdXJlIHBhY2thZ2VzIGFyZSBzdGlsbCB1cC10by1kYXRlIGlmIGFueXRoaW5nIGhhcyBjaGFuZ2VkClJVTiBkYXJ0IHB1YiBnZXQgLS1vZmZsaW5lClJVTiBkYXJ0IGNvbXBpbGUgZXhlIGJpbi9zZXJ2ZXIuZGFydCAtbyBiaW4vc2VydmVyCgojIEJ1aWxkIG1pbmltYWwgc2VydmluZyBpbWFnZSBmcm9tIEFPVC1jb21waWxlZCBgL3NlcnZlcmAgYW5kIHJlcXVpcmVkIHN5c3RlbQojIGxpYnJhcmllcyBhbmQgY29uZmlndXJhdGlvbiBmaWxlcyBzdG9yZWQgaW4gYC9ydW50aW1lL2AgZnJvbSB0aGUgYnVpbGQgc3RhZ2UuCkZST00gc2NyYXRjaApDT1BZIC0tZnJvbT1idWlsZCAvcnVudGltZS8gLwpDT1BZIC0tZnJvbT1idWlsZCAvYXBwL2Jpbi9zZXJ2ZXIgL2FwcC9iaW4vCnt7I3NlcnZlU3RhdGljRmlsZXN9fUNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvcHVibGljIC9wdWJsaWMve3svc2VydmVTdGF0aWNGaWxlc319CgojIFN0YXJ0IHNlcnZlci4KQ01EIFsiL2FwcC9iaW4vc2VydmVyIl0K","type":"text"}],"hooks":[{"path":"build/lib/dart_frog_prod_server_hooks.dart","data":"ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL3VzZXNfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7Cg==","type":"text"},{"path":"build/lib/src/copy_workspace_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gQ29waWVzIHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkKLy8vIGluIG9yZGVyIHRvIGVuc3VyZSB0aGUgcHJvZHVjdGlvbiBidWlsZCB1c2VzIHRoZSBleGFjdCBzYW1lIHZlcnNpb25zIG9mIGFsbAovLy8gZGVwZW5kZW5jaWVzLgp2b2lkIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gX2dldFdvcmtzcGFjZVJvb3QocHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHByb2plY3REaXJlY3RvcnknLAogICAgKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgZmluYWwgcHVic3BlY0xvY2tGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya3NwYWNlUm9vdC5wYXRoLCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuOwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KfQoKLy8vIFJldHVybnMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBuZWFyZXN0IERhcnQgd29ya3NwYWNlLgpEaXJlY3Rvcnk/IF9nZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==","type":"text"},{"path":"build/lib/src/create_bundle.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=","type":"text"},{"path":"build/lib/src/create_external_packages_folder.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K","type":"text"},{"path":"build/lib/src/dart_pub_get.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==","type":"text"},{"path":"build/lib/src/disable_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIHRyeSB7CiAgICByZXR1cm4gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KfQoKVm9pZENhbGxiYWNrIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhTdHJpbmcgcHJvamVjdERpcmVjdG9yeSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CgogIGlmICghcHVic3BlY092ZXJyaWRlc0ZpbGUuZXhpc3RzU3luYygpKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuIHB1YnNwZWNPdmVycmlkZXNGaWxlLmRlbGV0ZVN5bmM7CiAgfQoKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA/OwoKICBpZiAocHVic3BlY092ZXJyaWRlcyA9PSBudWxsKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKICB9CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzWydyZXNvbHV0aW9uJ10gPT0gJ251bGwnKSByZXR1cm4gKCkge307IC8vIG5vLW9wCgogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpLi51cGRhdGUoWydyZXNvbHV0aW9uJ10sIG51bGwpOwogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKCiAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKfQo=","type":"text"},{"path":"build/lib/src/exit_overrides.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==","type":"text"},{"path":"build/lib/src/get_internal_path_dependencies.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=","type":"text"},{"path":"build/lib/src/get_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=","type":"text"},{"path":"build/lib/src/pubspec_lock/pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K","type":"text"},{"path":"build/lib/src/uses_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==","type":"text"},{"path":"build/post_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K","type":"text"},{"path":"build/pre_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CgogIGlmICh1c2VzV29ya3NwYWNlcykgewogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K","type":"text"},{"path":"build/pubspec.yaml","data":"bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=","type":"text"},{"path":"build/test/post_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/pre_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/pubspec_locks.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=","type":"text"},{"path":"build/test/pubspecs.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK","type":"text"},{"path":"build/test/src/copy_workspace_pubspec_lock_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"build/test/src/create_bundle_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/create_external_packages_folder_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"build/test/src/dart_pub_get_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/src/disable_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/src/exit_overrides_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/get_internal_path_dependencies_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/pubspec_lock/pubspec_lock_test.dart","data":"Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==","type":"text"},{"path":"build/test/src/uses_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"lib/dart_frog_prod_server_hooks.dart","data":"ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wYWNrYWdlX2NvbmZpZy5kYXJ0JzsKZXhwb3J0ICdzcmMvZ2V0X3B1YnNwZWNfbG9jay5kYXJ0JzsKZXhwb3J0ICdzcmMvZ2V0X3dvcmtzcGFjZV9yb290LmRhcnQnOwpleHBvcnQgJ3NyYy91c2VzX3dvcmtzcGFjZV9yZXNvbHV0aW9uLmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwo=","type":"text"},{"path":"lib/src/copy_workspace_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKLy8vIENvcGllcyB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IGludG8gdGhlIHByb2plY3QgZGlyZWN0b3J5Ci8vLyBpbiBvcmRlciB0byBlbnN1cmUgdGhlIHByb2R1Y3Rpb24gYnVpbGQgdXNlcyB0aGUgZXhhY3Qgc2FtZSB2ZXJzaW9ucyBvZiBhbGwKLy8vIGRlcGVuZGVuY2llcy4KVm9pZENhbGxiYWNrIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgU3RyaW5nIHdvcmtzcGFjZVJvb3QsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCBwdWJzcGVjTG9ja0ZpbGUgPSBGaWxlKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuICgpIHt9OwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogICAgcmV0dXJuICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMubG9jaycpKS5kZWxldGUoKS5pZ25vcmUoKTsKICAgIH07CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsKICB9Cn0K","type":"text"},{"path":"lib/src/create_bundle.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=","type":"text"},{"path":"lib/src/create_external_packages_folder.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K","type":"text"},{"path":"lib/src/dart_pub_get.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/disable_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnX3R5cGVzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTpwdWJzcGVjX3BhcnNlL3B1YnNwZWNfcGFyc2UuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBQYWNrYWdlQ29uZmlnIHBhY2thZ2VDb25maWcsCiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgU3RyaW5nIHdvcmtzcGFjZVJvb3QsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCBWb2lkQ2FsbGJhY2sgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgdHJ5IHsKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKAogICAgICBwcm9qZWN0RGlyZWN0b3J5LAogICAgKTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZSkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZScpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKICB9CgogIC8vIEdldCBhbGwgcGFja2FnZSBkZXBlbmRlbmNpZXMuCiAgZmluYWwgcHVic3BlY0ZpbGUgPSBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy55YW1sJykpOwogIGZpbmFsIHB1YnNwZWMgPSBQdWJzcGVjLnBhcnNlKHB1YnNwZWNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKSk7CiAgZmluYWwgYWxsRGVwZW5kZW5jaWVzID0gWwogICAgLi4ucHVic3BlYy5kZXBlbmRlbmNpZXMua2V5cywKICAgIC4uLnB1YnNwZWMuZGV2RGVwZW5kZW5jaWVzLmtleXMsCiAgXTsKCiAgLy8gRmluZCBwYXRoIGRlcGVuZGVuY2llcyBiYXNlZCBvbiB0aGUgcGFja2FnZV9jb25maWcuanNvbi4KICBmaW5hbCBwYXRoRGVwZW5kZW5jaWVzID0gcGFja2FnZUNvbmZpZy5wYWNrYWdlcy53aGVyZSgKICAgIChwYWNrYWdlKSA9PiBwYWNrYWdlLnJlbGF0aXZlUm9vdCAmJiBhbGxEZXBlbmRlbmNpZXMuY29udGFpbnMocGFja2FnZS5uYW1lKSwKICApOwoKICAvLyBBZGQgZGVwZW5kZW5jeV9vdmVycmlkZXMgdG8gdGhlIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwuCiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsnZGVwZW5kZW5jeV9vdmVycmlkZXMnXSwge30pOwogIGZvciAoZmluYWwgcGFja2FnZSBpbiBwYXRoRGVwZW5kZW5jaWVzKSB7CiAgICBlZGl0b3IudXBkYXRlKAogICAgICBbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJywgcGFja2FnZS5uYW1lXSwKICAgICAgeydwYXRoJzogcGF0aC5yZWxhdGl2ZShwYWNrYWdlLnJvb3QucGF0aCwgZnJvbTogcHJvamVjdERpcmVjdG9yeSl9LAogICAgKTsKICB9CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247Cn0KClZvaWRDYWxsYmFjayBvdmVycmlkZVJlc29sdXRpb25JblB1YnNwZWNPdmVycmlkZXMoU3RyaW5nIHByb2plY3REaXJlY3RvcnkpIHsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzRmlsZSA9IEZpbGUoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnKSwKICApOwoKICBpZiAoIXB1YnNwZWNPdmVycmlkZXNGaWxlLmV4aXN0c1N5bmMoKSkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5kZWxldGVTeW5jOwogIH0KCiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGxvYWRZYW1sKGNvbnRlbnRzKSBhcyBZYW1sTWFwPzsKCiAgaWYgKHB1YnNwZWNPdmVycmlkZXMgPT0gbnVsbCkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7CiAgfQoKICBpZiAocHVic3BlY092ZXJyaWRlc1sncmVzb2x1dGlvbiddID09ICdudWxsJykgcmV0dXJuICgpIHt9OyAvLyBuby1vcAoKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsncmVzb2x1dGlvbiddLCBudWxsKTsKICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhlZGl0b3IudG9TdHJpbmcoKSk7CgogIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7Cn0K","type":"text"},{"path":"lib/src/exit_overrides.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_internal_path_dependencies.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=","type":"text"},{"path":"lib/src/get_package_config.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYWNrYWdlX2NvbmZpZy9wYWNrYWdlX2NvbmZpZ190eXBlcy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKUGFja2FnZUNvbmZpZz8gZ2V0UGFja2FnZUNvbmZpZygKICBTdHJpbmcgd29ya3NwYWNlUm9vdCwgewogIHBhdGguQ29udGV4dD8gcGF0aENvbnRleHQsCn0pIHsKICBmaW5hbCBwYXRoUmVzb2x2ZXIgPSBwYXRoQ29udGV4dCA/PyBwYXRoLmNvbnRleHQ7CiAgZmluYWwgcGFja2FnZUNvbmZpZ0ZpbGUgPSBGaWxlKAogICAgcGF0aFJlc29sdmVyLmpvaW4od29ya3NwYWNlUm9vdCwgJy5kYXJ0X3Rvb2wvcGFja2FnZV9jb25maWcuanNvbicpLAogICk7CiAgaWYgKCFwYWNrYWdlQ29uZmlnRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwoKICB0cnkgewogICAgZmluYWwgY29udGVudCA9IHBhY2thZ2VDb25maWdGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICAgIHJldHVybiBQYWNrYWdlQ29uZmlnLnBhcnNlU3RyaW5nKGNvbnRlbnQsIHBhY2thZ2VDb25maWdGaWxlLnVyaSk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=","type":"text"},{"path":"lib/src/get_workspace_root.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKCi8vLyBSZXR1cm5zIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgbmVhcmVzdCBEYXJ0IHdvcmtzcGFjZS4KRGlyZWN0b3J5PyBnZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==","type":"text"},{"path":"lib/src/pubspec_lock/pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K","type":"text"},{"path":"lib/src/uses_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==","type":"text"},{"path":"post_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K","type":"text"},{"path":"pre_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICRwcm9qZWN0RGlyZWN0b3J5JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHBhY2thZ2VfY29uZmlnLmpzb24gaXMgdXAgdG8gZGF0ZS4KICAgIGF3YWl0IGRhcnRQdWJHZXQoCiAgICAgIGNvbnRleHQsCiAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgICAgZXhpdDogZXhpdCwKICAgICk7CgogICAgZmluYWwgcGFja2FnZUNvbmZpZyA9IGdldFBhY2thZ2VDb25maWcod29ya3NwYWNlUm9vdC5wYXRoKTsKICAgIGlmIChwYWNrYWdlQ29uZmlnID09IG51bGwpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICdVbmFibGUgdG8gZmluZCBwYWNrYWdlX2NvbmZpZy5qc29uIGZvciAke3dvcmtzcGFjZVJvb3QucGF0aH0nLAogICAgICApOwogICAgICByZXR1cm4gZXhpdCgxKTsKICAgIH0KCiAgICAvLyBEaXNhYmxlIHdvcmtzcGFjZSByZXNvbHV0aW9uIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXItcGFja2FnZSBsb2NrZmlsZXMuCiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NAogICAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24gPSBkaXNhYmxlV29ya3NwYWNlUmVzb2x1dGlvbigKICAgICAgY29udGV4dCwKICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICB3b3Jrc3BhY2VSb290OiB3b3Jrc3BhY2VSb290LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogICAgLy8gQ29weSB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IHRvIGVuc3VyZSB0aGUgc2FtZSB2ZXJzaW9ucwogICAgLy8gb2YgZGVwZW5kZW5jaWVzIGFyZSB1c2VkIGluIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLgogICAgcmV2ZXJ0UHVic3BlY0xvY2sgPSBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgd29ya3NwYWNlUm9vdDogd29ya3NwYWNlUm9vdC5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICB9CgogIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHB1YnNwZWMubG9jayBmaWxlIGlzIHVwIHRvIGRhdGUuCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBhd2FpdCBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoCiAgICBwcm9qZWN0RGlyZWN0b3J5LAogICk7CgogIGZpbmFsIGV4dGVybmFsRGVwZW5kZW5jaWVzID0gYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBidWlsZERpcmVjdG9yeTogYnVpbGREaXJlY3RvcnksCiAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgKTsKCiAgcmV2ZXJ0UHVic3BlY0xvY2s/LmNhbGwoKTsKCiAgZmluYWwgY3VzdG9tRG9ja2VyRmlsZSA9IGlvLkZpbGUoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnRG9ja2VyZmlsZScpLAogICk7CiAgZmluYWwgYWRkRG9ja2VyZmlsZSA9ICFjdXN0b21Eb2NrZXJGaWxlLmV4aXN0c1N5bmMoKTsKCiAgY29udGV4dC52YXJzID0gewogICAgJ2RpcmVjdG9yaWVzJzogY29uZmlndXJhdGlvbi5kaXJlY3RvcmllcwogICAgICAgIC5tYXAoKGMpID0+IGMudG9Kc29uKCkpCiAgICAgICAgLnRvTGlzdCgpCiAgICAgICAgLnJldmVyc2VkCiAgICAgICAgLnRvTGlzdCgpLAogICAgJ3JvdXRlcyc6IGNvbmZpZ3VyYXRpb24ucm91dGVzLm1hcCgocikgPT4gci50b0pzb24oKSkudG9MaXN0KCksCiAgICAnbWlkZGxld2FyZSc6IGNvbmZpZ3VyYXRpb24ubWlkZGxld2FyZS5tYXAoKG0pID0+IG0udG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLmdsb2JhbE1pZGRsZXdhcmUgIT0gbnVsbAogICAgICAgID8gY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlIS50b0pzb24oKQogICAgICAgIDogZmFsc2UsCiAgICAnc2VydmVTdGF0aWNGaWxlcyc6IGNvbmZpZ3VyYXRpb24uc2VydmVTdGF0aWNGaWxlcywKICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21FbnRyeXBvaW50LAogICAgJ2ludm9rZUN1c3RvbUluaXQnOiBjb25maWd1cmF0aW9uLmludm9rZUN1c3RvbUluaXQsCiAgICAncGF0aERlcGVuZGVuY2llcyc6IGludGVybmFsUGF0aERlcGVuZGVuY2llcywKICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGV4dGVybmFsRGVwZW5kZW5jaWVzLmlzTm90RW1wdHksCiAgICAnZGFydFZlcnNpb24nOiBjb250ZXh0LnZhcnNbJ2RhcnRWZXJzaW9uJ10sCiAgICAnYWRkRG9ja2VyZmlsZSc6IGFkZERvY2tlcmZpbGUsCiAgfTsKfQo=","type":"text"},{"path":"pubspec.yaml","data":"bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYWNrYWdlX2NvbmZpZzogXjIuMi4wCiAgcGF0aDogXjEuOC4xCiAgcHVic3BlY19wYXJzZTogXjEuNS4wCiAgeWFtbDogXjMuMS4yCiAgeWFtbF9lZGl0OiBeMi4yLjIKCmRldl9kZXBlbmRlbmNpZXM6CiAgbW9ja3RhaWw6IF4xLjAuMAogIHRlc3Q6IF4xLjI1LjAK","type":"text"},{"path":"test/post_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/pre_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K","type":"text"},{"path":"test/pubspec_locks.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=","type":"text"},{"path":"test/pubspecs.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK","type":"text"},{"path":"test/src/copy_workspace_pubspec_lock_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHtwcm9qZWN0RGlyZWN0b3J5LnBhdGh9JywKICAgICAgICApLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBwYXJzZSBwdWJzcGVjLnlhbWwnLCAoKSB7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKCdpbnZhbGlkIHB1YnNwZWMueWFtbCcpOwogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHtwcm9qZWN0RGlyZWN0b3J5LnBhdGh9JywKICAgICAgICApLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnZG9lcyBub3RoaW5nIHdoZW4gcHVic3BlYy5sb2NrIGRvZXMgbm90IGV4aXN0IGluIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KdmVyc2lvbjogMC4wLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy44LjAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvaGVsbG9fd29ybGQKJycnKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIHdvcmtzcGFjZVJvb3Q6IHJvb3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIHdvcmtzcGFjZVJvb3Q6IHJvb3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKGFueSh0aGF0OiBjb250YWlucygnUGVybWlzc2lvbiBkZW5pZWQnKSkpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnY29waWVzIHB1YnNwZWMubG9jayB0byBwcm9qZWN0IGRpcmVjdG9yeSB3aGVuIGZvdW5kJywgKCkgewogICAgICBjb25zdCBwdWJzcGVjTG9ja0NvbnRlbnRzID0gJycnCiMgR2VuZXJhdGVkIGJ5IHB1YgojIFNlZSBodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9nbG9zc2FyeSNsb2NrZmlsZQpwYWNrYWdlczoKJycnOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KdmVyc2lvbjogMC4wLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy44LjAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvaGVsbG9fd29ybGQKJycnKTsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMocHVic3BlY0xvY2tDb250ZW50cyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICB3b3Jrc3BhY2VSb290OiByb290RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeUNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeUNvbnRlbnRzLCBoYXNMZW5ndGgoMSkpOwogICAgICBleHBlY3QoCiAgICAgICAgcHJvamVjdERpcmVjdG9yeUNvbnRlbnRzLmZpcnN0LAogICAgICAgIGlzQTxGaWxlPigpLmhhdmluZygKICAgICAgICAgIChmKSA9PiBwYXRoLmJhc2VuYW1lKGYucGF0aCksCiAgICAgICAgICAnbmFtZScsCiAgICAgICAgICAncHVic3BlYy5sb2NrJywKICAgICAgICApLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgKHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCBhcyBGaWxlKS5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgZXF1YWxzKHB1YnNwZWNMb2NrQ29udGVudHMpLAogICAgICApOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/create_bundle_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/create_external_packages_folder_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"test/src/dart_pub_get_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/disable_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/exit_overrides_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/get_internal_path_dependencies_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/pubspec_lock/pubspec_lock_test.dart","data":"Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==","type":"text"},{"path":"test/src/uses_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"}],"name":"dart_frog_prod_server","description":"A dart_frog prod server","version":"0.1.0+1","environment":{"mason":"^0.1.0"},"readme":{"path":"README.md","data":"IyBkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXIKClshW1Bvd2VyZWQgYnkgTWFzb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzJTNBJTJGJTJGdGlueXVybC5jb20lMkZtYXNvbi1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxhbmdlbC9tYXNvbikKCkEgYGRhcnRfZnJvZ2AgcHJvZHVjdGlvbiBzZXJ2ZXIuCgpfR2VuZXJhdGVkIGJ5IFttYXNvbl1bMV0g8J+nsV8KClsxXTogaHR0cHM6Ly9naXRodWIuY29tL2ZlbGFuZ2VsL21hc29uCg==","type":"text"},"changelog":{"path":"CHANGELOG.md","data":"IyAwLjEuMCsxCgotIGZlYXQ6IGJhc2ljIGltcGxlbWVudGF0aW9uIGZvciB0aGUgZGFydCBmcm9nIHByb2R1Y3Rpb24gc2VydmVyCg==","type":"text"},"license":{"path":"LICENSE","data":"TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAyMiBWZXJ5IEdvb2QgVmVudHVyZXMKQ29weXJpZ2h0IChjKSAyMDI1IERhcnQgRnJvZyBEZXYKClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCg==","type":"text"},"vars":{"dartVersion":{"type":"string","description":"Dart version to be used in the generated Dockerfile.","default":"stable","prompt":"Dart version?"}}}); \ No newline at end of file From 1fa76b27dd1be3c6f6450945d0ca4512220b9db9 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 19:22:27 -0500 Subject: [PATCH 02/10] fix: support for transitive dependencies --- bricks/dart_frog_prod_server/hooks/build.yaml | 11 ++++ .../lib/dart_frog_prod_server_hooks.dart | 2 + .../lib/src/disable_workspace_resolution.dart | 35 +++++++++--- .../hooks/lib/src/get_package_graph.dart | 9 ++++ .../lib/src/package_graph/package_graph.dart | 53 +++++++++++++++++++ .../src/package_graph/package_graph.g.dart | 47 ++++++++++++++++ .../dart_frog_prod_server/hooks/pre_gen.dart | 9 ++++ .../dart_frog_prod_server/hooks/pubspec.yaml | 3 ++ .../dart_frog_prod_server_bundle.dart | 2 +- 9 files changed, 164 insertions(+), 7 deletions(-) create mode 100644 bricks/dart_frog_prod_server/hooks/build.yaml create mode 100644 bricks/dart_frog_prod_server/hooks/lib/src/get_package_graph.dart create mode 100644 bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.dart create mode 100644 bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart diff --git a/bricks/dart_frog_prod_server/hooks/build.yaml b/bricks/dart_frog_prod_server/hooks/build.yaml new file mode 100644 index 000000000..75f89dc8a --- /dev/null +++ b/bricks/dart_frog_prod_server/hooks/build.yaml @@ -0,0 +1,11 @@ +targets: + $default: + builders: + source_gen|combining_builder: + options: + ignore_for_file: + - implicit_dynamic_parameter + json_serializable: + options: + create_to_json: false + checked: true diff --git a/bricks/dart_frog_prod_server/hooks/lib/dart_frog_prod_server_hooks.dart b/bricks/dart_frog_prod_server/hooks/lib/dart_frog_prod_server_hooks.dart index d7f44cf26..f16808f88 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/dart_frog_prod_server_hooks.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/dart_frog_prod_server_hooks.dart @@ -6,8 +6,10 @@ export 'src/disable_workspace_resolution.dart'; export 'src/exit_overrides.dart'; export 'src/get_internal_path_dependencies.dart'; export 'src/get_package_config.dart'; +export 'src/get_package_graph.dart'; export 'src/get_pubspec_lock.dart'; export 'src/get_workspace_root.dart'; +export 'src/package_graph/package_graph.dart'; export 'src/uses_workspace_resolution.dart'; /// A void callback function (e.g. `void Function()`). diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart index 0b606c949..5d9a6d3c6 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart @@ -12,6 +12,7 @@ import 'package:yaml_edit/yaml_edit.dart'; VoidCallback disableWorkspaceResolution( HookContext context, { required PackageConfig packageConfig, + required PackageGraph packageGraph, required String projectDirectory, required String workspaceRoot, required void Function(int exitCode) exit, @@ -30,14 +31,36 @@ VoidCallback disableWorkspaceResolution( // Get all package dependencies. final pubspecFile = File(path.join(projectDirectory, 'pubspec.yaml')); final pubspec = Pubspec.parse(pubspecFile.readAsStringSync()); - final allDependencies = [ - ...pubspec.dependencies.keys, - ...pubspec.devDependencies.keys, - ]; - // Find path dependencies based on the package_config.json. + final dependencies = []; + final root = packageGraph.roots.firstWhere((root) => root == pubspec.name); + final rootPackage = packageGraph.packages.firstWhere((p) => p.name == root); + final dependenciesToVisit = [...rootPackage.dependencies]; + final uniqueDependencies = {}; + + // Build complete list of dependencies (direct and transitive). + do { + final newDependenciesToVisit = []; + for (final dependencyToVisit in dependenciesToVisit) { + final package = packageGraph.packages.firstWhere( + (p) => p.name == dependencyToVisit, + ); + dependencies.add(package.name); + for (final packageDependency in package.dependencies) { + // Avoid infinite loops from dependency cycles (circular dependencies). + if (uniqueDependencies.contains(packageDependency)) continue; + uniqueDependencies.add(packageDependency); + newDependenciesToVisit.add(packageDependency); + } + } + dependenciesToVisit + ..clear() + ..addAll(newDependenciesToVisit); + } while (dependenciesToVisit.isNotEmpty); + + // Find path dependencies using the package_config.json. final pathDependencies = packageConfig.packages.where( - (package) => package.relativeRoot && allDependencies.contains(package.name), + (package) => package.relativeRoot && dependencies.contains(package.name), ); // Add dependency_overrides to the pubspec_overrides.yaml. diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/get_package_graph.dart b/bricks/dart_frog_prod_server/hooks/lib/src/get_package_graph.dart new file mode 100644 index 000000000..fc310f940 --- /dev/null +++ b/bricks/dart_frog_prod_server/hooks/lib/src/get_package_graph.dart @@ -0,0 +1,9 @@ +import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart'; + +PackageGraph? getPackageGraph(String workspaceRoot) { + try { + return PackageGraph.load(workspaceRoot); + } on Exception { + return null; + } +} diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.dart b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.dart new file mode 100644 index 000000000..075fcdaab --- /dev/null +++ b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.dart @@ -0,0 +1,53 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:json_annotation/json_annotation.dart'; +import 'package:path/path.dart' as path; + +part 'package_graph.g.dart'; + +@JsonSerializable() +class PackageGraph { + const PackageGraph({ + required this.roots, + required this.packages, + required this.configVersion, + }); + + factory PackageGraph.load(String project) { + final file = File(path.join(project, '.dart_tool', 'package_graph.json')); + if (!file.existsSync()) throw Exception('${file.path} not found'); + return PackageGraph.fromJson( + jsonDecode(file.readAsStringSync()) as Map, + ); + } + + factory PackageGraph.fromJson(Map json) => + _$PackageGraphFromJson(json); + + final List roots; + final List packages; + final int configVersion; +} + +@JsonSerializable() +class Package { + const Package({ + required this.name, + required this.version, + required this.dependencies, + required this.devDependencies, + }); + + factory Package.fromJson(Map json) => + _$PackageFromJson(json); + + final String name; + final String version; + + @JsonKey(defaultValue: []) + final List dependencies; + + @JsonKey(defaultValue: []) + final List devDependencies; +} diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart new file mode 100644 index 000000000..3a95db63f --- /dev/null +++ b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart @@ -0,0 +1,47 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ignore_for_file: implicit_dynamic_parameter + +part of 'package_graph.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +PackageGraph _$PackageGraphFromJson(Map json) => + $checkedCreate('PackageGraph', json, ($checkedConvert) { + final val = PackageGraph( + roots: $checkedConvert( + 'roots', + (v) => (v as List).map((e) => e as String).toList(), + ), + packages: $checkedConvert( + 'packages', + (v) => (v as List) + .map((e) => Package.fromJson(e as Map)) + .toList(), + ), + configVersion: $checkedConvert( + 'configVersion', + (v) => (v as num).toInt(), + ), + ); + return val; + }); + +Package _$PackageFromJson(Map json) => + $checkedCreate('Package', json, ($checkedConvert) { + final val = Package( + name: $checkedConvert('name', (v) => v as String), + version: $checkedConvert('version', (v) => v as String), + dependencies: $checkedConvert( + 'dependencies', + (v) => (v as List?)?.map((e) => e as String).toList() ?? [], + ), + devDependencies: $checkedConvert( + 'devDependencies', + (v) => (v as List?)?.map((e) => e as String).toList() ?? [], + ), + ); + return val; + }); diff --git a/bricks/dart_frog_prod_server/hooks/pre_gen.dart b/bricks/dart_frog_prod_server/hooks/pre_gen.dart index e9f85bbb0..39da3d52b 100644 --- a/bricks/dart_frog_prod_server/hooks/pre_gen.dart +++ b/bricks/dart_frog_prod_server/hooks/pre_gen.dart @@ -57,11 +57,20 @@ Future preGen( return exit(1); } + final packageGraph = getPackageGraph(workspaceRoot.path); + if (packageGraph == null) { + context.logger.err( + 'Unable to find package_graph.json for ${workspaceRoot.path}', + ); + return exit(1); + } + // Disable workspace resolution until we can generate per-package lockfiles. // https://github.com/dart-lang/pub/issues/4594 restoreWorkspaceResolution = disableWorkspaceResolution( context, packageConfig: packageConfig, + packageGraph: packageGraph, projectDirectory: projectDirectory.path, workspaceRoot: workspaceRoot.path, exit: exit, diff --git a/bricks/dart_frog_prod_server/hooks/pubspec.yaml b/bricks/dart_frog_prod_server/hooks/pubspec.yaml index 02e2307fe..3b60c9e93 100644 --- a/bricks/dart_frog_prod_server/hooks/pubspec.yaml +++ b/bricks/dart_frog_prod_server/hooks/pubspec.yaml @@ -8,6 +8,7 @@ dependencies: dart_frog_gen: ^2.0.0 equatable: ^2.0.5 io: ^1.0.3 + json_annotation: ^4.9.0 mason: ^0.1.0 package_config: ^2.2.0 path: ^1.8.1 @@ -16,5 +17,7 @@ dependencies: yaml_edit: ^2.2.2 dev_dependencies: + build_runner: ^2.8.0 + json_serializable: ^6.11.1 mocktail: ^1.0.0 test: ^1.25.0 diff --git a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart index e9441c649..dc0ccb6d5 100644 --- a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart +++ b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart @@ -3,4 +3,4 @@ import 'package:mason/mason.dart'; -final dartFrogProdServerBundle = MasonBundle.fromJson({"files":[{"path":"build/.dockerignore","data":"LmRvY2tlcmlnbm9yZQpEb2NrZXJmaWxlCmJ1aWxkLwouZGFydF90b29sLwouZ2l0LwouZ2l0aHViLwouZ2l0aWdub3JlCi5pZGVhLwoucGFja2FnZXM=","type":"text"},{"path":"build/bin/server.dart","data":"Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKLy8gaWdub3JlX2Zvcl9maWxlOiB0eXBlPWxpbnQsIGltcGxpY2l0X2R5bmFtaWNfbGlzdF9saXRlcmFsCgppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZy9kYXJ0X2Zyb2cuZGFydCc7Cgp7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1pbXBvcnQgJy4uL21haW4uZGFydCcgYXMgZW50cnlwb2ludDt7ey9pbnZva2VDdXN0b21FbnRyeXBvaW50fX0Ke3sjcm91dGVzfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9yb3V0ZXN9fQp7eyNtaWRkbGV3YXJlfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9taWRkbGV3YXJlfX0Kdm9pZCBtYWluKCkgYXN5bmMgewogIGZpbmFsIGFkZHJlc3MgPSBJbnRlcm5ldEFkZHJlc3MuYW55SVB2NjsKICBmaW5hbCBwb3J0ID0gaW50LnRyeVBhcnNlKFBsYXRmb3JtLmVudmlyb25tZW50WydQT1JUJ10gPz8gJzgwODAnKSA/PyA4MDgwO3t7I2ludm9rZUN1c3RvbUluaXR9fQogIGF3YWl0IGVudHJ5cG9pbnQuaW5pdChhZGRyZXNzLCBwb3J0KTt7ey9pbnZva2VDdXN0b21Jbml0fX0KICBjcmVhdGVTZXJ2ZXIoYWRkcmVzcywgcG9ydCk7Cn0KCkZ1dHVyZTxIdHRwU2VydmVyPiBjcmVhdGVTZXJ2ZXIoSW50ZXJuZXRBZGRyZXNzIGFkZHJlc3MsIGludCBwb3J0KSBhc3luYyB7CiAgZmluYWwgaGFuZGxlciA9IENhc2NhZGUoKXt7I3NlcnZlU3RhdGljRmlsZXN9fS5hZGQoY3JlYXRlU3RhdGljRmlsZUhhbmRsZXIoKSl7ey9zZXJ2ZVN0YXRpY0ZpbGVzfX0uYWRkKGJ1aWxkUm9vdEhhbmRsZXIoKSkuaGFuZGxlcjsKICBmaW5hbCBzZXJ2ZXIgPSBhd2FpdCB7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1lbnRyeXBvaW50LnJ1bihoYW5kbGVyLCBhZGRyZXNzLCBwb3J0KXt7L2ludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXt7Xmludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXNlcnZlKGhhbmRsZXIsIGFkZHJlc3MsIHBvcnQpe3svaW52b2tlQ3VzdG9tRW50cnlwb2ludH19OwogIHByaW50KCdceDFCWzkybeKck1x4MUJbMG0gUnVubmluZyBvbiBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIHJldHVybiBzZXJ2ZXI7Cn0KCkhhbmRsZXIgYnVpbGRSb290SGFuZGxlcigpIHsKICBmaW5hbCBwaXBlbGluZSA9IGNvbnN0IFBpcGVsaW5lKCl7eyNnbG9iYWxNaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L2dsb2JhbE1pZGRsZXdhcmV9fTsKICBmaW5hbCByb3V0ZXIgPSBSb3V0ZXIoKXt7I2RpcmVjdG9yaWVzfX0KICAgIC4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHR7eyNkaXJlY3RvcnlfcGFyYW1zLjB9fSx7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX17ey9kaXJlY3RvcnlfcGFyYW1zLjB9fSkgPT4gYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX0pKGNvbnRleHQpKXt7L2RpcmVjdG9yaWVzfX07CiAgcmV0dXJuIHBpcGVsaW5lLmFkZEhhbmRsZXIocm91dGVyKTsKfQp7eyNkaXJlY3Rvcmllc319CkhhbmRsZXIgYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX1TdHJpbmcge3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319KSB7CiAgZmluYWwgcGlwZWxpbmUgPSBjb25zdCBQaXBlbGluZSgpe3sjbWlkZGxld2FyZS4wfX17eyNtaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L21pZGRsZXdhcmV9fXt7L21pZGRsZXdhcmUuMH19OwogIGZpbmFsIHJvdXRlciA9IFJvdXRlcigpCiAgICB7eyNmaWxlc319e3sjd2lsZGNhcmR9fS4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHQpID0+IHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Lm9uUmVxdWVzdChjb250ZXh0LGNvbnRleHQucmVxdWVzdC51cmwucGF0aCkpe3svd2lsZGNhcmR9fXt7XndpbGRjYXJkfX0uLmFsbCgne3t7cm91dGV9fX0nLCAoY29udGV4dHt7I2ZpbGVfcGFyYW1zLjB9fSx7eyNmaWxlX3BhcmFtc319e3sufX0se3svZmlsZV9wYXJhbXN9fXt7L2ZpbGVfcGFyYW1zLjB9fSkgPT4ge3sjc25ha2VDYXNlfX17e3tuYW1lfX19e3svc25ha2VDYXNlfX0ub25SZXF1ZXN0KGNvbnRleHQse3sjZGlyZWN0b3J5X3BhcmFtc319e3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319e3sjZmlsZV9wYXJhbXN9fXt7Ln19LHt7L2ZpbGVfcGFyYW1zfX0pKXt7L3dpbGRjYXJkfX17ey9maWxlc319OwogIHJldHVybiBwaXBlbGluZS5hZGRIYW5kbGVyKHJvdXRlcik7Cn0Ke3svZGlyZWN0b3JpZXN9fQo=","type":"text"},{"path":"build/{{#addDockerfile}}Dockerfile{{/addDockerfile}}","data":"IyBPZmZpY2lhbCBEYXJ0IGltYWdlOiBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vZGFydAojIFNwZWNpZnkgdGhlIERhcnQgU0RLIGJhc2UgaW1hZ2UgdmVyc2lvbiB1c2luZyBkYXJ0Ojx2ZXJzaW9uPiAoZXg6IGRhcnQ6Mi4xNykKRlJPTSBkYXJ0Ont7ZGFydFZlcnNpb259fSBBUyBidWlsZAoKV09SS0RJUiAvYXBwCnt7I2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KCiMgQ29weSBleHRlcm5hbCBkZXBlbmRlbmNpZXMKQ09QWSAuLy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMgIC4vLmRhcnRfZnJvZ19wYXRoX2RlcGVuZGVuY2llcwpDT1BZIC4vcHVic3BlY19vdmVycmlkZXMueWFtbCAuL3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwKe3svaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXN9fQojIENvcHkgRGVwZW5kZW5jaWVzCnt7I3BhdGhEZXBlbmRlbmNpZXN9fUNPUFkge3t7Ln19fSAuL3t7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7Xmhhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBJbnN0YWxsIERlcGVuZGVuY2llcwp7eyNwYXRoRGVwZW5kZW5jaWVzfX1SVU4gZGFydCBwdWIgZ2V0IC1DIHt7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7L2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBSZXNvbHZlIGFwcCBkZXBlbmRlbmNpZXMuCkNPUFkgcHVic3BlYy4qIC4vCkNPUFkgcHVic3BlY19vdmVycmlkZXMueWFtbCogLi8KUlVOIGRhcnQgcHViIGdldAoKIyBDb3B5IGFwcCBzb3VyY2UgY29kZSBhbmQgQU9UIGNvbXBpbGUgaXQuCkNPUFkgLiAuCiMgRW5zdXJlIHBhY2thZ2VzIGFyZSBzdGlsbCB1cC10by1kYXRlIGlmIGFueXRoaW5nIGhhcyBjaGFuZ2VkClJVTiBkYXJ0IHB1YiBnZXQgLS1vZmZsaW5lClJVTiBkYXJ0IGNvbXBpbGUgZXhlIGJpbi9zZXJ2ZXIuZGFydCAtbyBiaW4vc2VydmVyCgojIEJ1aWxkIG1pbmltYWwgc2VydmluZyBpbWFnZSBmcm9tIEFPVC1jb21waWxlZCBgL3NlcnZlcmAgYW5kIHJlcXVpcmVkIHN5c3RlbQojIGxpYnJhcmllcyBhbmQgY29uZmlndXJhdGlvbiBmaWxlcyBzdG9yZWQgaW4gYC9ydW50aW1lL2AgZnJvbSB0aGUgYnVpbGQgc3RhZ2UuCkZST00gc2NyYXRjaApDT1BZIC0tZnJvbT1idWlsZCAvcnVudGltZS8gLwpDT1BZIC0tZnJvbT1idWlsZCAvYXBwL2Jpbi9zZXJ2ZXIgL2FwcC9iaW4vCnt7I3NlcnZlU3RhdGljRmlsZXN9fUNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvcHVibGljIC9wdWJsaWMve3svc2VydmVTdGF0aWNGaWxlc319CgojIFN0YXJ0IHNlcnZlci4KQ01EIFsiL2FwcC9iaW4vc2VydmVyIl0K","type":"text"}],"hooks":[{"path":"build/lib/dart_frog_prod_server_hooks.dart","data":"ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL3VzZXNfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7Cg==","type":"text"},{"path":"build/lib/src/copy_workspace_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gQ29waWVzIHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkKLy8vIGluIG9yZGVyIHRvIGVuc3VyZSB0aGUgcHJvZHVjdGlvbiBidWlsZCB1c2VzIHRoZSBleGFjdCBzYW1lIHZlcnNpb25zIG9mIGFsbAovLy8gZGVwZW5kZW5jaWVzLgp2b2lkIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gX2dldFdvcmtzcGFjZVJvb3QocHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHByb2plY3REaXJlY3RvcnknLAogICAgKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgZmluYWwgcHVic3BlY0xvY2tGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya3NwYWNlUm9vdC5wYXRoLCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuOwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KfQoKLy8vIFJldHVybnMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBuZWFyZXN0IERhcnQgd29ya3NwYWNlLgpEaXJlY3Rvcnk/IF9nZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==","type":"text"},{"path":"build/lib/src/create_bundle.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=","type":"text"},{"path":"build/lib/src/create_external_packages_folder.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K","type":"text"},{"path":"build/lib/src/dart_pub_get.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==","type":"text"},{"path":"build/lib/src/disable_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIHRyeSB7CiAgICByZXR1cm4gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KfQoKVm9pZENhbGxiYWNrIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhTdHJpbmcgcHJvamVjdERpcmVjdG9yeSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CgogIGlmICghcHVic3BlY092ZXJyaWRlc0ZpbGUuZXhpc3RzU3luYygpKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuIHB1YnNwZWNPdmVycmlkZXNGaWxlLmRlbGV0ZVN5bmM7CiAgfQoKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA/OwoKICBpZiAocHVic3BlY092ZXJyaWRlcyA9PSBudWxsKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKICB9CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzWydyZXNvbHV0aW9uJ10gPT0gJ251bGwnKSByZXR1cm4gKCkge307IC8vIG5vLW9wCgogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpLi51cGRhdGUoWydyZXNvbHV0aW9uJ10sIG51bGwpOwogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKCiAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKfQo=","type":"text"},{"path":"build/lib/src/exit_overrides.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==","type":"text"},{"path":"build/lib/src/get_internal_path_dependencies.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=","type":"text"},{"path":"build/lib/src/get_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=","type":"text"},{"path":"build/lib/src/pubspec_lock/pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K","type":"text"},{"path":"build/lib/src/uses_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==","type":"text"},{"path":"build/post_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K","type":"text"},{"path":"build/pre_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CgogIGlmICh1c2VzV29ya3NwYWNlcykgewogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K","type":"text"},{"path":"build/pubspec.yaml","data":"bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=","type":"text"},{"path":"build/test/post_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/pre_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/pubspec_locks.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=","type":"text"},{"path":"build/test/pubspecs.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK","type":"text"},{"path":"build/test/src/copy_workspace_pubspec_lock_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"build/test/src/create_bundle_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/create_external_packages_folder_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"build/test/src/dart_pub_get_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/src/disable_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/src/exit_overrides_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/get_internal_path_dependencies_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/pubspec_lock/pubspec_lock_test.dart","data":"Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==","type":"text"},{"path":"build/test/src/uses_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"lib/dart_frog_prod_server_hooks.dart","data":"ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wYWNrYWdlX2NvbmZpZy5kYXJ0JzsKZXhwb3J0ICdzcmMvZ2V0X3B1YnNwZWNfbG9jay5kYXJ0JzsKZXhwb3J0ICdzcmMvZ2V0X3dvcmtzcGFjZV9yb290LmRhcnQnOwpleHBvcnQgJ3NyYy91c2VzX3dvcmtzcGFjZV9yZXNvbHV0aW9uLmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwo=","type":"text"},{"path":"lib/src/copy_workspace_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKLy8vIENvcGllcyB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IGludG8gdGhlIHByb2plY3QgZGlyZWN0b3J5Ci8vLyBpbiBvcmRlciB0byBlbnN1cmUgdGhlIHByb2R1Y3Rpb24gYnVpbGQgdXNlcyB0aGUgZXhhY3Qgc2FtZSB2ZXJzaW9ucyBvZiBhbGwKLy8vIGRlcGVuZGVuY2llcy4KVm9pZENhbGxiYWNrIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgU3RyaW5nIHdvcmtzcGFjZVJvb3QsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCBwdWJzcGVjTG9ja0ZpbGUgPSBGaWxlKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuICgpIHt9OwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogICAgcmV0dXJuICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMubG9jaycpKS5kZWxldGUoKS5pZ25vcmUoKTsKICAgIH07CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsKICB9Cn0K","type":"text"},{"path":"lib/src/create_bundle.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=","type":"text"},{"path":"lib/src/create_external_packages_folder.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K","type":"text"},{"path":"lib/src/dart_pub_get.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/disable_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnX3R5cGVzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTpwdWJzcGVjX3BhcnNlL3B1YnNwZWNfcGFyc2UuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBQYWNrYWdlQ29uZmlnIHBhY2thZ2VDb25maWcsCiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgU3RyaW5nIHdvcmtzcGFjZVJvb3QsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCBWb2lkQ2FsbGJhY2sgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgdHJ5IHsKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKAogICAgICBwcm9qZWN0RGlyZWN0b3J5LAogICAgKTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZSkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZScpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKICB9CgogIC8vIEdldCBhbGwgcGFja2FnZSBkZXBlbmRlbmNpZXMuCiAgZmluYWwgcHVic3BlY0ZpbGUgPSBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy55YW1sJykpOwogIGZpbmFsIHB1YnNwZWMgPSBQdWJzcGVjLnBhcnNlKHB1YnNwZWNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKSk7CiAgZmluYWwgYWxsRGVwZW5kZW5jaWVzID0gWwogICAgLi4ucHVic3BlYy5kZXBlbmRlbmNpZXMua2V5cywKICAgIC4uLnB1YnNwZWMuZGV2RGVwZW5kZW5jaWVzLmtleXMsCiAgXTsKCiAgLy8gRmluZCBwYXRoIGRlcGVuZGVuY2llcyBiYXNlZCBvbiB0aGUgcGFja2FnZV9jb25maWcuanNvbi4KICBmaW5hbCBwYXRoRGVwZW5kZW5jaWVzID0gcGFja2FnZUNvbmZpZy5wYWNrYWdlcy53aGVyZSgKICAgIChwYWNrYWdlKSA9PiBwYWNrYWdlLnJlbGF0aXZlUm9vdCAmJiBhbGxEZXBlbmRlbmNpZXMuY29udGFpbnMocGFja2FnZS5uYW1lKSwKICApOwoKICAvLyBBZGQgZGVwZW5kZW5jeV9vdmVycmlkZXMgdG8gdGhlIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwuCiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsnZGVwZW5kZW5jeV9vdmVycmlkZXMnXSwge30pOwogIGZvciAoZmluYWwgcGFja2FnZSBpbiBwYXRoRGVwZW5kZW5jaWVzKSB7CiAgICBlZGl0b3IudXBkYXRlKAogICAgICBbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJywgcGFja2FnZS5uYW1lXSwKICAgICAgeydwYXRoJzogcGF0aC5yZWxhdGl2ZShwYWNrYWdlLnJvb3QucGF0aCwgZnJvbTogcHJvamVjdERpcmVjdG9yeSl9LAogICAgKTsKICB9CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247Cn0KClZvaWRDYWxsYmFjayBvdmVycmlkZVJlc29sdXRpb25JblB1YnNwZWNPdmVycmlkZXMoU3RyaW5nIHByb2plY3REaXJlY3RvcnkpIHsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzRmlsZSA9IEZpbGUoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnKSwKICApOwoKICBpZiAoIXB1YnNwZWNPdmVycmlkZXNGaWxlLmV4aXN0c1N5bmMoKSkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5kZWxldGVTeW5jOwogIH0KCiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGxvYWRZYW1sKGNvbnRlbnRzKSBhcyBZYW1sTWFwPzsKCiAgaWYgKHB1YnNwZWNPdmVycmlkZXMgPT0gbnVsbCkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7CiAgfQoKICBpZiAocHVic3BlY092ZXJyaWRlc1sncmVzb2x1dGlvbiddID09ICdudWxsJykgcmV0dXJuICgpIHt9OyAvLyBuby1vcAoKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsncmVzb2x1dGlvbiddLCBudWxsKTsKICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhlZGl0b3IudG9TdHJpbmcoKSk7CgogIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7Cn0K","type":"text"},{"path":"lib/src/exit_overrides.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_internal_path_dependencies.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=","type":"text"},{"path":"lib/src/get_package_config.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYWNrYWdlX2NvbmZpZy9wYWNrYWdlX2NvbmZpZ190eXBlcy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKUGFja2FnZUNvbmZpZz8gZ2V0UGFja2FnZUNvbmZpZygKICBTdHJpbmcgd29ya3NwYWNlUm9vdCwgewogIHBhdGguQ29udGV4dD8gcGF0aENvbnRleHQsCn0pIHsKICBmaW5hbCBwYXRoUmVzb2x2ZXIgPSBwYXRoQ29udGV4dCA/PyBwYXRoLmNvbnRleHQ7CiAgZmluYWwgcGFja2FnZUNvbmZpZ0ZpbGUgPSBGaWxlKAogICAgcGF0aFJlc29sdmVyLmpvaW4od29ya3NwYWNlUm9vdCwgJy5kYXJ0X3Rvb2wvcGFja2FnZV9jb25maWcuanNvbicpLAogICk7CiAgaWYgKCFwYWNrYWdlQ29uZmlnRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwoKICB0cnkgewogICAgZmluYWwgY29udGVudCA9IHBhY2thZ2VDb25maWdGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICAgIHJldHVybiBQYWNrYWdlQ29uZmlnLnBhcnNlU3RyaW5nKGNvbnRlbnQsIHBhY2thZ2VDb25maWdGaWxlLnVyaSk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=","type":"text"},{"path":"lib/src/get_workspace_root.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKCi8vLyBSZXR1cm5zIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgbmVhcmVzdCBEYXJ0IHdvcmtzcGFjZS4KRGlyZWN0b3J5PyBnZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==","type":"text"},{"path":"lib/src/pubspec_lock/pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K","type":"text"},{"path":"lib/src/uses_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==","type":"text"},{"path":"post_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K","type":"text"},{"path":"pre_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICRwcm9qZWN0RGlyZWN0b3J5JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHBhY2thZ2VfY29uZmlnLmpzb24gaXMgdXAgdG8gZGF0ZS4KICAgIGF3YWl0IGRhcnRQdWJHZXQoCiAgICAgIGNvbnRleHQsCiAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgICAgZXhpdDogZXhpdCwKICAgICk7CgogICAgZmluYWwgcGFja2FnZUNvbmZpZyA9IGdldFBhY2thZ2VDb25maWcod29ya3NwYWNlUm9vdC5wYXRoKTsKICAgIGlmIChwYWNrYWdlQ29uZmlnID09IG51bGwpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICdVbmFibGUgdG8gZmluZCBwYWNrYWdlX2NvbmZpZy5qc29uIGZvciAke3dvcmtzcGFjZVJvb3QucGF0aH0nLAogICAgICApOwogICAgICByZXR1cm4gZXhpdCgxKTsKICAgIH0KCiAgICAvLyBEaXNhYmxlIHdvcmtzcGFjZSByZXNvbHV0aW9uIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXItcGFja2FnZSBsb2NrZmlsZXMuCiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NAogICAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24gPSBkaXNhYmxlV29ya3NwYWNlUmVzb2x1dGlvbigKICAgICAgY29udGV4dCwKICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICB3b3Jrc3BhY2VSb290OiB3b3Jrc3BhY2VSb290LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogICAgLy8gQ29weSB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IHRvIGVuc3VyZSB0aGUgc2FtZSB2ZXJzaW9ucwogICAgLy8gb2YgZGVwZW5kZW5jaWVzIGFyZSB1c2VkIGluIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLgogICAgcmV2ZXJ0UHVic3BlY0xvY2sgPSBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgd29ya3NwYWNlUm9vdDogd29ya3NwYWNlUm9vdC5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICB9CgogIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHB1YnNwZWMubG9jayBmaWxlIGlzIHVwIHRvIGRhdGUuCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBhd2FpdCBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoCiAgICBwcm9qZWN0RGlyZWN0b3J5LAogICk7CgogIGZpbmFsIGV4dGVybmFsRGVwZW5kZW5jaWVzID0gYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBidWlsZERpcmVjdG9yeTogYnVpbGREaXJlY3RvcnksCiAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgKTsKCiAgcmV2ZXJ0UHVic3BlY0xvY2s/LmNhbGwoKTsKCiAgZmluYWwgY3VzdG9tRG9ja2VyRmlsZSA9IGlvLkZpbGUoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnRG9ja2VyZmlsZScpLAogICk7CiAgZmluYWwgYWRkRG9ja2VyZmlsZSA9ICFjdXN0b21Eb2NrZXJGaWxlLmV4aXN0c1N5bmMoKTsKCiAgY29udGV4dC52YXJzID0gewogICAgJ2RpcmVjdG9yaWVzJzogY29uZmlndXJhdGlvbi5kaXJlY3RvcmllcwogICAgICAgIC5tYXAoKGMpID0+IGMudG9Kc29uKCkpCiAgICAgICAgLnRvTGlzdCgpCiAgICAgICAgLnJldmVyc2VkCiAgICAgICAgLnRvTGlzdCgpLAogICAgJ3JvdXRlcyc6IGNvbmZpZ3VyYXRpb24ucm91dGVzLm1hcCgocikgPT4gci50b0pzb24oKSkudG9MaXN0KCksCiAgICAnbWlkZGxld2FyZSc6IGNvbmZpZ3VyYXRpb24ubWlkZGxld2FyZS5tYXAoKG0pID0+IG0udG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLmdsb2JhbE1pZGRsZXdhcmUgIT0gbnVsbAogICAgICAgID8gY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlIS50b0pzb24oKQogICAgICAgIDogZmFsc2UsCiAgICAnc2VydmVTdGF0aWNGaWxlcyc6IGNvbmZpZ3VyYXRpb24uc2VydmVTdGF0aWNGaWxlcywKICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21FbnRyeXBvaW50LAogICAgJ2ludm9rZUN1c3RvbUluaXQnOiBjb25maWd1cmF0aW9uLmludm9rZUN1c3RvbUluaXQsCiAgICAncGF0aERlcGVuZGVuY2llcyc6IGludGVybmFsUGF0aERlcGVuZGVuY2llcywKICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGV4dGVybmFsRGVwZW5kZW5jaWVzLmlzTm90RW1wdHksCiAgICAnZGFydFZlcnNpb24nOiBjb250ZXh0LnZhcnNbJ2RhcnRWZXJzaW9uJ10sCiAgICAnYWRkRG9ja2VyZmlsZSc6IGFkZERvY2tlcmZpbGUsCiAgfTsKfQo=","type":"text"},{"path":"pubspec.yaml","data":"bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYWNrYWdlX2NvbmZpZzogXjIuMi4wCiAgcGF0aDogXjEuOC4xCiAgcHVic3BlY19wYXJzZTogXjEuNS4wCiAgeWFtbDogXjMuMS4yCiAgeWFtbF9lZGl0OiBeMi4yLjIKCmRldl9kZXBlbmRlbmNpZXM6CiAgbW9ja3RhaWw6IF4xLjAuMAogIHRlc3Q6IF4xLjI1LjAK","type":"text"},{"path":"test/post_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/pre_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K","type":"text"},{"path":"test/pubspec_locks.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=","type":"text"},{"path":"test/pubspecs.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK","type":"text"},{"path":"test/src/copy_workspace_pubspec_lock_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHtwcm9qZWN0RGlyZWN0b3J5LnBhdGh9JywKICAgICAgICApLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBwYXJzZSBwdWJzcGVjLnlhbWwnLCAoKSB7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKCdpbnZhbGlkIHB1YnNwZWMueWFtbCcpOwogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHtwcm9qZWN0RGlyZWN0b3J5LnBhdGh9JywKICAgICAgICApLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnZG9lcyBub3RoaW5nIHdoZW4gcHVic3BlYy5sb2NrIGRvZXMgbm90IGV4aXN0IGluIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KdmVyc2lvbjogMC4wLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy44LjAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvaGVsbG9fd29ybGQKJycnKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIHdvcmtzcGFjZVJvb3Q6IHJvb3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIHdvcmtzcGFjZVJvb3Q6IHJvb3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKGFueSh0aGF0OiBjb250YWlucygnUGVybWlzc2lvbiBkZW5pZWQnKSkpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnY29waWVzIHB1YnNwZWMubG9jayB0byBwcm9qZWN0IGRpcmVjdG9yeSB3aGVuIGZvdW5kJywgKCkgewogICAgICBjb25zdCBwdWJzcGVjTG9ja0NvbnRlbnRzID0gJycnCiMgR2VuZXJhdGVkIGJ5IHB1YgojIFNlZSBodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9nbG9zc2FyeSNsb2NrZmlsZQpwYWNrYWdlczoKJycnOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KdmVyc2lvbjogMC4wLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy44LjAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvaGVsbG9fd29ybGQKJycnKTsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMocHVic3BlY0xvY2tDb250ZW50cyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICB3b3Jrc3BhY2VSb290OiByb290RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeUNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeUNvbnRlbnRzLCBoYXNMZW5ndGgoMSkpOwogICAgICBleHBlY3QoCiAgICAgICAgcHJvamVjdERpcmVjdG9yeUNvbnRlbnRzLmZpcnN0LAogICAgICAgIGlzQTxGaWxlPigpLmhhdmluZygKICAgICAgICAgIChmKSA9PiBwYXRoLmJhc2VuYW1lKGYucGF0aCksCiAgICAgICAgICAnbmFtZScsCiAgICAgICAgICAncHVic3BlYy5sb2NrJywKICAgICAgICApLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgKHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCBhcyBGaWxlKS5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgZXF1YWxzKHB1YnNwZWNMb2NrQ29udGVudHMpLAogICAgICApOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/create_bundle_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/create_external_packages_folder_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"test/src/dart_pub_get_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/disable_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/exit_overrides_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/get_internal_path_dependencies_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/pubspec_lock/pubspec_lock_test.dart","data":"Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==","type":"text"},{"path":"test/src/uses_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"}],"name":"dart_frog_prod_server","description":"A dart_frog prod server","version":"0.1.0+1","environment":{"mason":"^0.1.0"},"readme":{"path":"README.md","data":"IyBkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXIKClshW1Bvd2VyZWQgYnkgTWFzb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzJTNBJTJGJTJGdGlueXVybC5jb20lMkZtYXNvbi1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxhbmdlbC9tYXNvbikKCkEgYGRhcnRfZnJvZ2AgcHJvZHVjdGlvbiBzZXJ2ZXIuCgpfR2VuZXJhdGVkIGJ5IFttYXNvbl1bMV0g8J+nsV8KClsxXTogaHR0cHM6Ly9naXRodWIuY29tL2ZlbGFuZ2VsL21hc29uCg==","type":"text"},"changelog":{"path":"CHANGELOG.md","data":"IyAwLjEuMCsxCgotIGZlYXQ6IGJhc2ljIGltcGxlbWVudGF0aW9uIGZvciB0aGUgZGFydCBmcm9nIHByb2R1Y3Rpb24gc2VydmVyCg==","type":"text"},"license":{"path":"LICENSE","data":"TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAyMiBWZXJ5IEdvb2QgVmVudHVyZXMKQ29weXJpZ2h0IChjKSAyMDI1IERhcnQgRnJvZyBEZXYKClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCg==","type":"text"},"vars":{"dartVersion":{"type":"string","description":"Dart version to be used in the generated Dockerfile.","default":"stable","prompt":"Dart version?"}}}); \ No newline at end of file +final dartFrogProdServerBundle = MasonBundle.fromJson({"files":[{"path":"build/.dockerignore","data":"LmRvY2tlcmlnbm9yZQpEb2NrZXJmaWxlCmJ1aWxkLwouZGFydF90b29sLwouZ2l0LwouZ2l0aHViLwouZ2l0aWdub3JlCi5pZGVhLwoucGFja2FnZXM=","type":"text"},{"path":"build/bin/server.dart","data":"Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKLy8gaWdub3JlX2Zvcl9maWxlOiB0eXBlPWxpbnQsIGltcGxpY2l0X2R5bmFtaWNfbGlzdF9saXRlcmFsCgppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZy9kYXJ0X2Zyb2cuZGFydCc7Cgp7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1pbXBvcnQgJy4uL21haW4uZGFydCcgYXMgZW50cnlwb2ludDt7ey9pbnZva2VDdXN0b21FbnRyeXBvaW50fX0Ke3sjcm91dGVzfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9yb3V0ZXN9fQp7eyNtaWRkbGV3YXJlfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9taWRkbGV3YXJlfX0Kdm9pZCBtYWluKCkgYXN5bmMgewogIGZpbmFsIGFkZHJlc3MgPSBJbnRlcm5ldEFkZHJlc3MuYW55SVB2NjsKICBmaW5hbCBwb3J0ID0gaW50LnRyeVBhcnNlKFBsYXRmb3JtLmVudmlyb25tZW50WydQT1JUJ10gPz8gJzgwODAnKSA/PyA4MDgwO3t7I2ludm9rZUN1c3RvbUluaXR9fQogIGF3YWl0IGVudHJ5cG9pbnQuaW5pdChhZGRyZXNzLCBwb3J0KTt7ey9pbnZva2VDdXN0b21Jbml0fX0KICBjcmVhdGVTZXJ2ZXIoYWRkcmVzcywgcG9ydCk7Cn0KCkZ1dHVyZTxIdHRwU2VydmVyPiBjcmVhdGVTZXJ2ZXIoSW50ZXJuZXRBZGRyZXNzIGFkZHJlc3MsIGludCBwb3J0KSBhc3luYyB7CiAgZmluYWwgaGFuZGxlciA9IENhc2NhZGUoKXt7I3NlcnZlU3RhdGljRmlsZXN9fS5hZGQoY3JlYXRlU3RhdGljRmlsZUhhbmRsZXIoKSl7ey9zZXJ2ZVN0YXRpY0ZpbGVzfX0uYWRkKGJ1aWxkUm9vdEhhbmRsZXIoKSkuaGFuZGxlcjsKICBmaW5hbCBzZXJ2ZXIgPSBhd2FpdCB7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1lbnRyeXBvaW50LnJ1bihoYW5kbGVyLCBhZGRyZXNzLCBwb3J0KXt7L2ludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXt7Xmludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXNlcnZlKGhhbmRsZXIsIGFkZHJlc3MsIHBvcnQpe3svaW52b2tlQ3VzdG9tRW50cnlwb2ludH19OwogIHByaW50KCdceDFCWzkybeKck1x4MUJbMG0gUnVubmluZyBvbiBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIHJldHVybiBzZXJ2ZXI7Cn0KCkhhbmRsZXIgYnVpbGRSb290SGFuZGxlcigpIHsKICBmaW5hbCBwaXBlbGluZSA9IGNvbnN0IFBpcGVsaW5lKCl7eyNnbG9iYWxNaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L2dsb2JhbE1pZGRsZXdhcmV9fTsKICBmaW5hbCByb3V0ZXIgPSBSb3V0ZXIoKXt7I2RpcmVjdG9yaWVzfX0KICAgIC4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHR7eyNkaXJlY3RvcnlfcGFyYW1zLjB9fSx7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX17ey9kaXJlY3RvcnlfcGFyYW1zLjB9fSkgPT4gYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX0pKGNvbnRleHQpKXt7L2RpcmVjdG9yaWVzfX07CiAgcmV0dXJuIHBpcGVsaW5lLmFkZEhhbmRsZXIocm91dGVyKTsKfQp7eyNkaXJlY3Rvcmllc319CkhhbmRsZXIgYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX1TdHJpbmcge3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319KSB7CiAgZmluYWwgcGlwZWxpbmUgPSBjb25zdCBQaXBlbGluZSgpe3sjbWlkZGxld2FyZS4wfX17eyNtaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L21pZGRsZXdhcmV9fXt7L21pZGRsZXdhcmUuMH19OwogIGZpbmFsIHJvdXRlciA9IFJvdXRlcigpCiAgICB7eyNmaWxlc319e3sjd2lsZGNhcmR9fS4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHQpID0+IHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Lm9uUmVxdWVzdChjb250ZXh0LGNvbnRleHQucmVxdWVzdC51cmwucGF0aCkpe3svd2lsZGNhcmR9fXt7XndpbGRjYXJkfX0uLmFsbCgne3t7cm91dGV9fX0nLCAoY29udGV4dHt7I2ZpbGVfcGFyYW1zLjB9fSx7eyNmaWxlX3BhcmFtc319e3sufX0se3svZmlsZV9wYXJhbXN9fXt7L2ZpbGVfcGFyYW1zLjB9fSkgPT4ge3sjc25ha2VDYXNlfX17e3tuYW1lfX19e3svc25ha2VDYXNlfX0ub25SZXF1ZXN0KGNvbnRleHQse3sjZGlyZWN0b3J5X3BhcmFtc319e3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319e3sjZmlsZV9wYXJhbXN9fXt7Ln19LHt7L2ZpbGVfcGFyYW1zfX0pKXt7L3dpbGRjYXJkfX17ey9maWxlc319OwogIHJldHVybiBwaXBlbGluZS5hZGRIYW5kbGVyKHJvdXRlcik7Cn0Ke3svZGlyZWN0b3JpZXN9fQo=","type":"text"},{"path":"build/{{#addDockerfile}}Dockerfile{{/addDockerfile}}","data":"IyBPZmZpY2lhbCBEYXJ0IGltYWdlOiBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vZGFydAojIFNwZWNpZnkgdGhlIERhcnQgU0RLIGJhc2UgaW1hZ2UgdmVyc2lvbiB1c2luZyBkYXJ0Ojx2ZXJzaW9uPiAoZXg6IGRhcnQ6Mi4xNykKRlJPTSBkYXJ0Ont7ZGFydFZlcnNpb259fSBBUyBidWlsZAoKV09SS0RJUiAvYXBwCnt7I2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KCiMgQ29weSBleHRlcm5hbCBkZXBlbmRlbmNpZXMKQ09QWSAuLy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMgIC4vLmRhcnRfZnJvZ19wYXRoX2RlcGVuZGVuY2llcwpDT1BZIC4vcHVic3BlY19vdmVycmlkZXMueWFtbCAuL3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwKe3svaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXN9fQojIENvcHkgRGVwZW5kZW5jaWVzCnt7I3BhdGhEZXBlbmRlbmNpZXN9fUNPUFkge3t7Ln19fSAuL3t7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7Xmhhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBJbnN0YWxsIERlcGVuZGVuY2llcwp7eyNwYXRoRGVwZW5kZW5jaWVzfX1SVU4gZGFydCBwdWIgZ2V0IC1DIHt7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7L2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBSZXNvbHZlIGFwcCBkZXBlbmRlbmNpZXMuCkNPUFkgcHVic3BlYy4qIC4vCkNPUFkgcHVic3BlY19vdmVycmlkZXMueWFtbCogLi8KUlVOIGRhcnQgcHViIGdldAoKIyBDb3B5IGFwcCBzb3VyY2UgY29kZSBhbmQgQU9UIGNvbXBpbGUgaXQuCkNPUFkgLiAuCiMgRW5zdXJlIHBhY2thZ2VzIGFyZSBzdGlsbCB1cC10by1kYXRlIGlmIGFueXRoaW5nIGhhcyBjaGFuZ2VkClJVTiBkYXJ0IHB1YiBnZXQgLS1vZmZsaW5lClJVTiBkYXJ0IGNvbXBpbGUgZXhlIGJpbi9zZXJ2ZXIuZGFydCAtbyBiaW4vc2VydmVyCgojIEJ1aWxkIG1pbmltYWwgc2VydmluZyBpbWFnZSBmcm9tIEFPVC1jb21waWxlZCBgL3NlcnZlcmAgYW5kIHJlcXVpcmVkIHN5c3RlbQojIGxpYnJhcmllcyBhbmQgY29uZmlndXJhdGlvbiBmaWxlcyBzdG9yZWQgaW4gYC9ydW50aW1lL2AgZnJvbSB0aGUgYnVpbGQgc3RhZ2UuCkZST00gc2NyYXRjaApDT1BZIC0tZnJvbT1idWlsZCAvcnVudGltZS8gLwpDT1BZIC0tZnJvbT1idWlsZCAvYXBwL2Jpbi9zZXJ2ZXIgL2FwcC9iaW4vCnt7I3NlcnZlU3RhdGljRmlsZXN9fUNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvcHVibGljIC9wdWJsaWMve3svc2VydmVTdGF0aWNGaWxlc319CgojIFN0YXJ0IHNlcnZlci4KQ01EIFsiL2FwcC9iaW4vc2VydmVyIl0K","type":"text"}],"hooks":[{"path":"build/lib/dart_frog_prod_server_hooks.dart","data":"ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL3VzZXNfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7Cg==","type":"text"},{"path":"build/lib/src/copy_workspace_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gQ29waWVzIHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkKLy8vIGluIG9yZGVyIHRvIGVuc3VyZSB0aGUgcHJvZHVjdGlvbiBidWlsZCB1c2VzIHRoZSBleGFjdCBzYW1lIHZlcnNpb25zIG9mIGFsbAovLy8gZGVwZW5kZW5jaWVzLgp2b2lkIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gX2dldFdvcmtzcGFjZVJvb3QocHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHByb2plY3REaXJlY3RvcnknLAogICAgKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgZmluYWwgcHVic3BlY0xvY2tGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya3NwYWNlUm9vdC5wYXRoLCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuOwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KfQoKLy8vIFJldHVybnMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBuZWFyZXN0IERhcnQgd29ya3NwYWNlLgpEaXJlY3Rvcnk/IF9nZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==","type":"text"},{"path":"build/lib/src/create_bundle.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=","type":"text"},{"path":"build/lib/src/create_external_packages_folder.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K","type":"text"},{"path":"build/lib/src/dart_pub_get.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==","type":"text"},{"path":"build/lib/src/disable_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIHRyeSB7CiAgICByZXR1cm4gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KfQoKVm9pZENhbGxiYWNrIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhTdHJpbmcgcHJvamVjdERpcmVjdG9yeSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CgogIGlmICghcHVic3BlY092ZXJyaWRlc0ZpbGUuZXhpc3RzU3luYygpKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuIHB1YnNwZWNPdmVycmlkZXNGaWxlLmRlbGV0ZVN5bmM7CiAgfQoKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA/OwoKICBpZiAocHVic3BlY092ZXJyaWRlcyA9PSBudWxsKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKICB9CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzWydyZXNvbHV0aW9uJ10gPT0gJ251bGwnKSByZXR1cm4gKCkge307IC8vIG5vLW9wCgogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpLi51cGRhdGUoWydyZXNvbHV0aW9uJ10sIG51bGwpOwogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKCiAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKfQo=","type":"text"},{"path":"build/lib/src/exit_overrides.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==","type":"text"},{"path":"build/lib/src/get_internal_path_dependencies.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=","type":"text"},{"path":"build/lib/src/get_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=","type":"text"},{"path":"build/lib/src/pubspec_lock/pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K","type":"text"},{"path":"build/lib/src/uses_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==","type":"text"},{"path":"build/post_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K","type":"text"},{"path":"build/pre_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CgogIGlmICh1c2VzV29ya3NwYWNlcykgewogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K","type":"text"},{"path":"build/pubspec.yaml","data":"bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=","type":"text"},{"path":"build/test/post_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/pre_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/pubspec_locks.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=","type":"text"},{"path":"build/test/pubspecs.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK","type":"text"},{"path":"build/test/src/copy_workspace_pubspec_lock_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"build/test/src/create_bundle_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/create_external_packages_folder_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"build/test/src/dart_pub_get_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/src/disable_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/src/exit_overrides_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/get_internal_path_dependencies_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/pubspec_lock/pubspec_lock_test.dart","data":"Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==","type":"text"},{"path":"build/test/src/uses_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"lib/dart_frog_prod_server_hooks.dart","data":"ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wYWNrYWdlX2NvbmZpZy5kYXJ0JzsKZXhwb3J0ICdzcmMvZ2V0X3BhY2thZ2VfZ3JhcGguZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL2dldF93b3Jrc3BhY2Vfcm9vdC5kYXJ0JzsKZXhwb3J0ICdzcmMvcGFja2FnZV9ncmFwaC9wYWNrYWdlX2dyYXBoLmRhcnQnOwpleHBvcnQgJ3NyYy91c2VzX3dvcmtzcGFjZV9yZXNvbHV0aW9uLmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwo=","type":"text"},{"path":"lib/src/copy_workspace_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKLy8vIENvcGllcyB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IGludG8gdGhlIHByb2plY3QgZGlyZWN0b3J5Ci8vLyBpbiBvcmRlciB0byBlbnN1cmUgdGhlIHByb2R1Y3Rpb24gYnVpbGQgdXNlcyB0aGUgZXhhY3Qgc2FtZSB2ZXJzaW9ucyBvZiBhbGwKLy8vIGRlcGVuZGVuY2llcy4KVm9pZENhbGxiYWNrIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgU3RyaW5nIHdvcmtzcGFjZVJvb3QsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCBwdWJzcGVjTG9ja0ZpbGUgPSBGaWxlKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuICgpIHt9OwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogICAgcmV0dXJuICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMubG9jaycpKS5kZWxldGUoKS5pZ25vcmUoKTsKICAgIH07CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsKICB9Cn0K","type":"text"},{"path":"lib/src/create_bundle.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=","type":"text"},{"path":"lib/src/create_external_packages_folder.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K","type":"text"},{"path":"lib/src/dart_pub_get.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/disable_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnX3R5cGVzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTpwdWJzcGVjX3BhcnNlL3B1YnNwZWNfcGFyc2UuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBQYWNrYWdlQ29uZmlnIHBhY2thZ2VDb25maWcsCiAgcmVxdWlyZWQgUGFja2FnZUdyYXBoIHBhY2thZ2VHcmFwaCwKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCBTdHJpbmcgd29ya3NwYWNlUm9vdCwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIFZvaWRDYWxsYmFjayByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbjsKICB0cnkgewogICAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24gPSBvdmVycmlkZVJlc29sdXRpb25JblB1YnNwZWNPdmVycmlkZXMoCiAgICAgIHByb2plY3REaXJlY3RvcnksCiAgICApOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KCiAgLy8gR2V0IGFsbCBwYWNrYWdlIGRlcGVuZGVuY2llcy4KICBmaW5hbCBwdWJzcGVjRmlsZSA9IEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjLnlhbWwnKSk7CiAgZmluYWwgcHVic3BlYyA9IFB1YnNwZWMucGFyc2UocHVic3BlY0ZpbGUucmVhZEFzU3RyaW5nU3luYygpKTsKCiAgZmluYWwgZGVwZW5kZW5jaWVzID0gPFN0cmluZz5bXTsKICBmaW5hbCByb290ID0gcGFja2FnZUdyYXBoLnJvb3RzLmZpcnN0V2hlcmUoKHJvb3QpID0+IHJvb3QgPT0gcHVic3BlYy5uYW1lKTsKICBmaW5hbCByb290UGFja2FnZSA9IHBhY2thZ2VHcmFwaC5wYWNrYWdlcy5maXJzdFdoZXJlKChwKSA9PiBwLm5hbWUgPT0gcm9vdCk7CiAgZmluYWwgZGVwZW5kZW5jaWVzVG9WaXNpdCA9IDxTdHJpbmc+Wy4uLnJvb3RQYWNrYWdlLmRlcGVuZGVuY2llc107CiAgZmluYWwgdW5pcXVlRGVwZW5kZW5jaWVzID0gPFN0cmluZz57fTsKCiAgLy8gQnVpbGQgY29tcGxldGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgKGRpcmVjdCBhbmQgdHJhbnNpdGl2ZSkuCiAgZG8gewogICAgZmluYWwgbmV3RGVwZW5kZW5jaWVzVG9WaXNpdCA9IDxTdHJpbmc+W107CiAgICBmb3IgKGZpbmFsIGRlcGVuZGVuY3lUb1Zpc2l0IGluIGRlcGVuZGVuY2llc1RvVmlzaXQpIHsKICAgICAgZmluYWwgcGFja2FnZSA9IHBhY2thZ2VHcmFwaC5wYWNrYWdlcy5maXJzdFdoZXJlKAogICAgICAgIChwKSA9PiBwLm5hbWUgPT0gZGVwZW5kZW5jeVRvVmlzaXQsCiAgICAgICk7CiAgICAgIGRlcGVuZGVuY2llcy5hZGQocGFja2FnZS5uYW1lKTsKICAgICAgZm9yIChmaW5hbCBwYWNrYWdlRGVwZW5kZW5jeSBpbiBwYWNrYWdlLmRlcGVuZGVuY2llcykgewogICAgICAgIC8vIEF2b2lkIGluZmluaXRlIGxvb3BzIGZyb20gZGVwZW5kZW5jeSBjeWNsZXMgKGNpcmN1bGFyIGRlcGVuZGVuY2llcykuCiAgICAgICAgaWYgKHVuaXF1ZURlcGVuZGVuY2llcy5jb250YWlucyhwYWNrYWdlRGVwZW5kZW5jeSkpIGNvbnRpbnVlOwogICAgICAgIHVuaXF1ZURlcGVuZGVuY2llcy5hZGQocGFja2FnZURlcGVuZGVuY3kpOwogICAgICAgIG5ld0RlcGVuZGVuY2llc1RvVmlzaXQuYWRkKHBhY2thZ2VEZXBlbmRlbmN5KTsKICAgICAgfQogICAgfQogICAgZGVwZW5kZW5jaWVzVG9WaXNpdAogICAgICAuLmNsZWFyKCkKICAgICAgLi5hZGRBbGwobmV3RGVwZW5kZW5jaWVzVG9WaXNpdCk7CiAgfSB3aGlsZSAoZGVwZW5kZW5jaWVzVG9WaXNpdC5pc05vdEVtcHR5KTsKCiAgLy8gRmluZCBwYXRoIGRlcGVuZGVuY2llcyB1c2luZyB0aGUgcGFja2FnZV9jb25maWcuanNvbi4KICBmaW5hbCBwYXRoRGVwZW5kZW5jaWVzID0gcGFja2FnZUNvbmZpZy5wYWNrYWdlcy53aGVyZSgKICAgIChwYWNrYWdlKSA9PiBwYWNrYWdlLnJlbGF0aXZlUm9vdCAmJiBkZXBlbmRlbmNpZXMuY29udGFpbnMocGFja2FnZS5uYW1lKSwKICApOwoKICAvLyBBZGQgZGVwZW5kZW5jeV9vdmVycmlkZXMgdG8gdGhlIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwuCiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsnZGVwZW5kZW5jeV9vdmVycmlkZXMnXSwge30pOwogIGZvciAoZmluYWwgcGFja2FnZSBpbiBwYXRoRGVwZW5kZW5jaWVzKSB7CiAgICBlZGl0b3IudXBkYXRlKAogICAgICBbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJywgcGFja2FnZS5uYW1lXSwKICAgICAgeydwYXRoJzogcGF0aC5yZWxhdGl2ZShwYWNrYWdlLnJvb3QucGF0aCwgZnJvbTogcHJvamVjdERpcmVjdG9yeSl9LAogICAgKTsKICB9CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247Cn0KClZvaWRDYWxsYmFjayBvdmVycmlkZVJlc29sdXRpb25JblB1YnNwZWNPdmVycmlkZXMoU3RyaW5nIHByb2plY3REaXJlY3RvcnkpIHsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzRmlsZSA9IEZpbGUoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnKSwKICApOwoKICBpZiAoIXB1YnNwZWNPdmVycmlkZXNGaWxlLmV4aXN0c1N5bmMoKSkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5kZWxldGVTeW5jOwogIH0KCiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGxvYWRZYW1sKGNvbnRlbnRzKSBhcyBZYW1sTWFwPzsKCiAgaWYgKHB1YnNwZWNPdmVycmlkZXMgPT0gbnVsbCkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7CiAgfQoKICBpZiAocHVic3BlY092ZXJyaWRlc1sncmVzb2x1dGlvbiddID09ICdudWxsJykgcmV0dXJuICgpIHt9OyAvLyBuby1vcAoKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsncmVzb2x1dGlvbiddLCBudWxsKTsKICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhlZGl0b3IudG9TdHJpbmcoKSk7CgogIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7Cn0K","type":"text"},{"path":"lib/src/exit_overrides.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_internal_path_dependencies.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=","type":"text"},{"path":"lib/src/get_package_config.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYWNrYWdlX2NvbmZpZy9wYWNrYWdlX2NvbmZpZ190eXBlcy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKUGFja2FnZUNvbmZpZz8gZ2V0UGFja2FnZUNvbmZpZygKICBTdHJpbmcgd29ya3NwYWNlUm9vdCwgewogIHBhdGguQ29udGV4dD8gcGF0aENvbnRleHQsCn0pIHsKICBmaW5hbCBwYXRoUmVzb2x2ZXIgPSBwYXRoQ29udGV4dCA/PyBwYXRoLmNvbnRleHQ7CiAgZmluYWwgcGFja2FnZUNvbmZpZ0ZpbGUgPSBGaWxlKAogICAgcGF0aFJlc29sdmVyLmpvaW4od29ya3NwYWNlUm9vdCwgJy5kYXJ0X3Rvb2wvcGFja2FnZV9jb25maWcuanNvbicpLAogICk7CiAgaWYgKCFwYWNrYWdlQ29uZmlnRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwoKICB0cnkgewogICAgZmluYWwgY29udGVudCA9IHBhY2thZ2VDb25maWdGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICAgIHJldHVybiBQYWNrYWdlQ29uZmlnLnBhcnNlU3RyaW5nKGNvbnRlbnQsIHBhY2thZ2VDb25maWdGaWxlLnVyaSk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_package_graph.dart","data":"aW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CgpQYWNrYWdlR3JhcGg/IGdldFBhY2thZ2VHcmFwaChTdHJpbmcgd29ya3NwYWNlUm9vdCkgewogIHRyeSB7CiAgICByZXR1cm4gUGFja2FnZUdyYXBoLmxvYWQod29ya3NwYWNlUm9vdCk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=","type":"text"},{"path":"lib/src/get_workspace_root.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKCi8vLyBSZXR1cm5zIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgbmVhcmVzdCBEYXJ0IHdvcmtzcGFjZS4KRGlyZWN0b3J5PyBnZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==","type":"text"},{"path":"lib/src/package_graph/package_graph.dart","data":"aW1wb3J0ICdkYXJ0OmNvbnZlcnQnOwppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmpzb25fYW5ub3RhdGlvbi9qc29uX2Fubm90YXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCnBhcnQgJ3BhY2thZ2VfZ3JhcGguZy5kYXJ0JzsKCkBKc29uU2VyaWFsaXphYmxlKCkKY2xhc3MgUGFja2FnZUdyYXBoIHsKICBjb25zdCBQYWNrYWdlR3JhcGgoewogICAgcmVxdWlyZWQgdGhpcy5yb290cywKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgICByZXF1aXJlZCB0aGlzLmNvbmZpZ1ZlcnNpb24sCiAgfSk7CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmxvYWQoU3RyaW5nIHByb2plY3QpIHsKICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihwcm9qZWN0LCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2dyYXBoLmpzb24nKSk7CiAgICBpZiAoIWZpbGUuZXhpc3RzU3luYygpKSB0aHJvdyBFeGNlcHRpb24oJyR7ZmlsZS5wYXRofSBub3QgZm91bmQnKTsKICAgIHJldHVybiBQYWNrYWdlR3JhcGguZnJvbUpzb24oCiAgICAgIGpzb25EZWNvZGUoZmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpIGFzIE1hcDxTdHJpbmcsIGR5bmFtaWM+LAogICAgKTsKICB9CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oanNvbik7CgogIGZpbmFsIExpc3Q8U3RyaW5nPiByb290czsKICBmaW5hbCBMaXN0PFBhY2thZ2U+IHBhY2thZ2VzOwogIGZpbmFsIGludCBjb25maWdWZXJzaW9uOwp9CgpASnNvblNlcmlhbGl6YWJsZSgpCmNsYXNzIFBhY2thZ2UgewogIGNvbnN0IFBhY2thZ2UoewogICAgcmVxdWlyZWQgdGhpcy5uYW1lLAogICAgcmVxdWlyZWQgdGhpcy52ZXJzaW9uLAogICAgcmVxdWlyZWQgdGhpcy5kZXBlbmRlbmNpZXMsCiAgICByZXF1aXJlZCB0aGlzLmRldkRlcGVuZGVuY2llcywKICB9KTsKCiAgZmFjdG9yeSBQYWNrYWdlLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUZyb21Kc29uKGpzb24pOwoKICBmaW5hbCBTdHJpbmcgbmFtZTsKICBmaW5hbCBTdHJpbmcgdmVyc2lvbjsKCiAgQEpzb25LZXkoZGVmYXVsdFZhbHVlOiA8U3RyaW5nPltdKQogIGZpbmFsIExpc3Q8U3RyaW5nPiBkZXBlbmRlbmNpZXM7CgogIEBKc29uS2V5KGRlZmF1bHRWYWx1ZTogPFN0cmluZz5bXSkKICBmaW5hbCBMaXN0PFN0cmluZz4gZGV2RGVwZW5kZW5jaWVzOwp9Cg==","type":"text"},{"path":"lib/src/package_graph/package_graph.g.dart","data":"Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogaW1wbGljaXRfZHluYW1pY19wYXJhbWV0ZXIKCnBhcnQgb2YgJ3BhY2thZ2VfZ3JhcGguZGFydCc7CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBKc29uU2VyaWFsaXphYmxlR2VuZXJhdG9yCi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpQYWNrYWdlR3JhcGggXyRQYWNrYWdlR3JhcGhGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2VHcmFwaCcsIGpzb24sICgkY2hlY2tlZENvbnZlcnQpIHsKICAgICAgZmluYWwgdmFsID0gUGFja2FnZUdyYXBoKAogICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAncm9vdHMnLAogICAgICAgICAgKHYpID0+ICh2IGFzIExpc3Q8ZHluYW1pYz4pLm1hcCgoZSkgPT4gZSBhcyBTdHJpbmcpLnRvTGlzdCgpLAogICAgICAgICksCiAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdwYWNrYWdlcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikKICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgIC50b0xpc3QoKSwKICAgICAgICApLAogICAgICAgIGNvbmZpZ1ZlcnNpb246ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdjb25maWdWZXJzaW9uJywKICAgICAgICAgICh2KSA9PiAodiBhcyBudW0pLnRvSW50KCksCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgcmV0dXJuIHZhbDsKICAgIH0pOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2UnLCBqc29uLCAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2UoCiAgICAgICAgbmFtZTogJGNoZWNrZWRDb252ZXJ0KCduYW1lJywgKHYpID0+IHYgYXMgU3RyaW5nKSwKICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgIGRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICAgIGRldkRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICApOwogICAgICByZXR1cm4gdmFsOwogICAgfSk7Cg==","type":"text"},{"path":"lib/src/pubspec_lock/pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K","type":"text"},{"path":"lib/src/uses_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==","type":"text"},{"path":"post_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K","type":"text"},{"path":"pre_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICRwcm9qZWN0RGlyZWN0b3J5JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHBhY2thZ2VfY29uZmlnLmpzb24gaXMgdXAgdG8gZGF0ZS4KICAgIGF3YWl0IGRhcnRQdWJHZXQoCiAgICAgIGNvbnRleHQsCiAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgICAgZXhpdDogZXhpdCwKICAgICk7CgogICAgZmluYWwgcGFja2FnZUNvbmZpZyA9IGdldFBhY2thZ2VDb25maWcod29ya3NwYWNlUm9vdC5wYXRoKTsKICAgIGlmIChwYWNrYWdlQ29uZmlnID09IG51bGwpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICdVbmFibGUgdG8gZmluZCBwYWNrYWdlX2NvbmZpZy5qc29uIGZvciAke3dvcmtzcGFjZVJvb3QucGF0aH0nLAogICAgICApOwogICAgICByZXR1cm4gZXhpdCgxKTsKICAgIH0KCiAgICBmaW5hbCBwYWNrYWdlR3JhcGggPSBnZXRQYWNrYWdlR3JhcGgod29ya3NwYWNlUm9vdC5wYXRoKTsKICAgIGlmIChwYWNrYWdlR3JhcGggPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBmaW5kIHBhY2thZ2VfZ3JhcGguanNvbiBmb3IgJHt3b3Jrc3BhY2VSb290LnBhdGh9JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHBhY2thZ2VDb25maWc6IHBhY2thZ2VDb25maWcsCiAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIHdvcmtzcGFjZVJvb3Q6IHdvcmtzcGFjZVJvb3QucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICByZXZlcnRQdWJzcGVjTG9jayA9IGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgY29udGV4dCwKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICB3b3Jrc3BhY2VSb290OiB3b3Jrc3BhY2VSb290LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogIH0KCiAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcHVic3BlYy5sb2NrIGZpbGUgaXMgdXAgdG8gZGF0ZS4KICBhd2FpdCBkYXJ0UHViR2V0KAogICAgY29udGV4dCwKICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgIHJ1blByb2Nlc3M6IHJ1blByb2Nlc3MsCiAgICBleGl0OiBleGl0LAogICk7CgogIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0gaW8uRGlyZWN0b3J5KAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyksCiAgKTsKCiAgYXdhaXQgY3JlYXRlQnVuZGxlKAogICAgY29udGV4dDogY29udGV4dCwKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBidWlsZERpcmVjdG9yeTogYnVpbGREaXJlY3RvcnksCiAgICBleGl0OiBleGl0LAogICk7CgogIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uPy5jYWxsKCk7CgogIGZpbmFsIFJvdXRlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uOwogIHRyeSB7CiAgICBjb25maWd1cmF0aW9uID0gYnVpbGRDb25maWd1cmF0aW9uKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgcmVwb3J0Um91dGVDb25mbGljdHMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb3V0ZUNvbmZsaWN0OiAoCiAgICAgIG9yaWdpbmFsRmlsZVBhdGgsCiAgICAgIGNvbmZsaWN0aW5nRmlsZVBhdGgsCiAgICAgIGNvbmZsaWN0aW5nRW5kcG9pbnQsCiAgICApIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKG9yaWdpbmFsRmlsZVBhdGgpfSBhbmQgJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0ZpbGVQYXRoKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdFbmRwb2ludCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICByZXBvcnRSb2d1ZVJvdXRlcygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvZ3VlUm91dGU6IChmaWxlUGF0aCwgaWRlYWxQYXRoKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb2d1ZSByb3V0ZSBkZXRlY3RlZC4ke2RlZmF1bHRGb3JlZ3JvdW5kLndyYXAoJyAnKX1SZW5hbWUgJHtsaWdodEN5YW4ud3JhcChmaWxlUGF0aCl9IHRvICR7bGlnaHRDeWFuLndyYXAoaWRlYWxQYXRoKX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIGZpbmFsIGludGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IGdldEludGVybmFsUGF0aERlcGVuZGVuY2llcygKICAgIHByb2plY3REaXJlY3RvcnksCiAgKTsKCiAgZmluYWwgZXh0ZXJuYWxEZXBlbmRlbmNpZXMgPSBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGNvcHlQYXRoOiBjb3B5UGF0aCwKICApOwoKICByZXZlcnRQdWJzcGVjTG9jaz8uY2FsbCgpOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKICBmaW5hbCBhZGREb2NrZXJmaWxlID0gIWN1c3RvbURvY2tlckZpbGUuZXhpc3RzU3luYygpOwoKICBjb250ZXh0LnZhcnMgPSB7CiAgICAnZGlyZWN0b3JpZXMnOiBjb25maWd1cmF0aW9uLmRpcmVjdG9yaWVzCiAgICAgICAgLm1hcCgoYykgPT4gYy50b0pzb24oKSkKICAgICAgICAudG9MaXN0KCkKICAgICAgICAucmV2ZXJzZWQKICAgICAgICAudG9MaXN0KCksCiAgICAncm91dGVzJzogY29uZmlndXJhdGlvbi5yb3V0ZXMubWFwKChyKSA9PiByLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdtaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5taWRkbGV3YXJlLm1hcCgobSkgPT4gbS50b0pzb24oKSkudG9MaXN0KCksCiAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSAhPSBudWxsCiAgICAgICAgPyBjb25maWd1cmF0aW9uLmdsb2JhbE1pZGRsZXdhcmUhLnRvSnNvbigpCiAgICAgICAgOiBmYWxzZSwKICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogY29uZmlndXJhdGlvbi5zZXJ2ZVN0YXRpY0ZpbGVzLAogICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBjb25maWd1cmF0aW9uLmludm9rZUN1c3RvbUVudHJ5cG9pbnQsCiAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tSW5pdCwKICAgICdwYXRoRGVwZW5kZW5jaWVzJzogaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLAogICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZXh0ZXJuYWxEZXBlbmRlbmNpZXMuaXNOb3RFbXB0eSwKICAgICdkYXJ0VmVyc2lvbic6IGNvbnRleHQudmFyc1snZGFydFZlcnNpb24nXSwKICAgICdhZGREb2NrZXJmaWxlJzogYWRkRG9ja2VyZmlsZSwKICB9Owp9Cg==","type":"text"},{"path":"pubspec.yaml","data":"bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIGpzb25fYW5ub3RhdGlvbjogXjQuOS4wCiAgbWFzb246IF4wLjEuMAogIHBhY2thZ2VfY29uZmlnOiBeMi4yLjAKICBwYXRoOiBeMS44LjEKICBwdWJzcGVjX3BhcnNlOiBeMS41LjAKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBidWlsZF9ydW5uZXI6IF4yLjguMAogIGpzb25fc2VyaWFsaXphYmxlOiBeNi4xMS4xCiAgbW9ja3RhaWw6IF4xLjAuMAogIHRlc3Q6IF4xLjI1LjAK","type":"text"},{"path":"test/post_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/pre_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K","type":"text"},{"path":"test/pubspec_locks.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=","type":"text"},{"path":"test/pubspecs.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK","type":"text"},{"path":"test/src/copy_workspace_pubspec_lock_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"test/src/create_bundle_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/create_external_packages_folder_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"test/src/dart_pub_get_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/disable_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/exit_overrides_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/get_internal_path_dependencies_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/pubspec_lock/pubspec_lock_test.dart","data":"Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==","type":"text"},{"path":"test/src/uses_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"}],"name":"dart_frog_prod_server","description":"A dart_frog prod server","version":"0.1.0+1","environment":{"mason":"^0.1.0"},"readme":{"path":"README.md","data":"IyBkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXIKClshW1Bvd2VyZWQgYnkgTWFzb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzJTNBJTJGJTJGdGlueXVybC5jb20lMkZtYXNvbi1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxhbmdlbC9tYXNvbikKCkEgYGRhcnRfZnJvZ2AgcHJvZHVjdGlvbiBzZXJ2ZXIuCgpfR2VuZXJhdGVkIGJ5IFttYXNvbl1bMV0g8J+nsV8KClsxXTogaHR0cHM6Ly9naXRodWIuY29tL2ZlbGFuZ2VsL21hc29uCg==","type":"text"},"changelog":{"path":"CHANGELOG.md","data":"IyAwLjEuMCsxCgotIGZlYXQ6IGJhc2ljIGltcGxlbWVudGF0aW9uIGZvciB0aGUgZGFydCBmcm9nIHByb2R1Y3Rpb24gc2VydmVyCg==","type":"text"},"license":{"path":"LICENSE","data":"TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAyMiBWZXJ5IEdvb2QgVmVudHVyZXMKQ29weXJpZ2h0IChjKSAyMDI1IERhcnQgRnJvZyBEZXYKClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCg==","type":"text"},"vars":{"dartVersion":{"type":"string","description":"Dart version to be used in the generated Dockerfile.","default":"stable","prompt":"Dart version?"}}}); \ No newline at end of file From 3cfc659ec668fff7a7afd0e8181e027f62c63200 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 20:07:08 -0500 Subject: [PATCH 03/10] refactor: various cleanup + improvements --- .../hooks/lib/src/dart_pub_get.dart | 3 +- .../lib/src/disable_workspace_resolution.dart | 147 +++++-- .../dart_frog_prod_server/hooks/pre_gen.dart | 2 + .../dart_frog_prod_server/hooks/pubspec.yaml | 1 - .../dart_frog_prod_server_bundle.dart | 409 +++++++++++++++++- 5 files changed, 511 insertions(+), 51 deletions(-) diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/dart_pub_get.dart b/bricks/dart_frog_prod_server/hooks/lib/src/dart_pub_get.dart index 3a9c977eb..e89a494df 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/dart_pub_get.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/dart_pub_get.dart @@ -14,8 +14,9 @@ Future dartPubGet( required String workingDirectory, required ProcessRunner runProcess, required void Function(int exitCode) exit, + String message = 'Installing dependencies', }) async { - final progress = context.logger.progress('Installing dependencies'); + final progress = context.logger.progress(message); try { final result = await runProcess( 'dart', diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart index 5d9a6d3c6..ac6aab460 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart @@ -1,9 +1,9 @@ import 'dart:io'; -import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart'; +import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart' + hide Package; import 'package:mason/mason.dart'; import 'package:package_config/package_config_types.dart'; import 'package:path/path.dart' as path; -import 'package:pubspec_parse/pubspec_parse.dart'; import 'package:yaml/yaml.dart'; import 'package:yaml_edit/yaml_edit.dart'; @@ -28,58 +28,23 @@ VoidCallback disableWorkspaceResolution( return () {}; // no-op } - // Get all package dependencies. - final pubspecFile = File(path.join(projectDirectory, 'pubspec.yaml')); - final pubspec = Pubspec.parse(pubspecFile.readAsStringSync()); - - final dependencies = []; - final root = packageGraph.roots.firstWhere((root) => root == pubspec.name); - final rootPackage = packageGraph.packages.firstWhere((p) => p.name == root); - final dependenciesToVisit = [...rootPackage.dependencies]; - final uniqueDependencies = {}; - - // Build complete list of dependencies (direct and transitive). - do { - final newDependenciesToVisit = []; - for (final dependencyToVisit in dependenciesToVisit) { - final package = packageGraph.packages.firstWhere( - (p) => p.name == dependencyToVisit, - ); - dependencies.add(package.name); - for (final packageDependency in package.dependencies) { - // Avoid infinite loops from dependency cycles (circular dependencies). - if (uniqueDependencies.contains(packageDependency)) continue; - uniqueDependencies.add(packageDependency); - newDependenciesToVisit.add(packageDependency); - } - } - dependenciesToVisit - ..clear() - ..addAll(newDependenciesToVisit); - } while (dependenciesToVisit.isNotEmpty); - - // Find path dependencies using the package_config.json. - final pathDependencies = packageConfig.packages.where( - (package) => package.relativeRoot && dependencies.contains(package.name), - ); - - // Add dependency_overrides to the pubspec_overrides.yaml. - final pubspecOverridesFile = File( - path.join(projectDirectory, 'pubspec_overrides.yaml'), - ); - final contents = pubspecOverridesFile.readAsStringSync(); - final editor = YamlEditor(contents)..update(['dependency_overrides'], {}); - for (final package in pathDependencies) { - editor.update( - ['dependency_overrides', package.name], - {'path': path.relative(package.root.path, from: projectDirectory)}, + try { + overridePathDependenciesInPubspecOverrides( + projectDirectory: projectDirectory, + packageConfig: packageConfig, + packageGraph: packageGraph, ); + } on Exception catch (e) { + restoreWorkspaceResolution(); + context.logger.err('$e'); + exit(1); + return () {}; // no-op } - pubspecOverridesFile.writeAsStringSync(editor.toString()); return restoreWorkspaceResolution; } +/// Add resolution:null to pubspec_overrides.yaml. VoidCallback overrideResolutionInPubspecOverrides(String projectDirectory) { final pubspecOverridesFile = File( path.join(projectDirectory, 'pubspec_overrides.yaml'), @@ -105,3 +70,89 @@ VoidCallback overrideResolutionInPubspecOverrides(String projectDirectory) { return () => pubspecOverridesFile.writeAsStringSync(contents); } + +/// Add overrides for all path dependencies to `pubspec_overrides.yaml` +void overridePathDependenciesInPubspecOverrides({ + required String projectDirectory, + required PackageConfig packageConfig, + required PackageGraph packageGraph, +}) { + final name = getPackageName(projectDirectory: projectDirectory); + if (name == null) { + throw Exception('Failed to parse "name" from pubspec.yaml'); + } + + final productionDeps = getProductionDependencies( + packageName: name, + packageGraph: packageGraph, + ); + + final pathDependencies = packageConfig.packages.where( + (package) => package.relativeRoot && productionDeps.contains(package.name), + ); + + writePathDependencyOverrides( + projectDirectory: projectDirectory, + pathDependencies: pathDependencies, + ); +} + +void writePathDependencyOverrides({ + required String projectDirectory, + required Iterable pathDependencies, +}) { + final pubspecOverridesFile = File( + path.join(projectDirectory, 'pubspec_overrides.yaml'), + ); + final contents = pubspecOverridesFile.readAsStringSync(); + final editor = YamlEditor(contents)..update(['dependency_overrides'], {}); + for (final package in pathDependencies) { + editor.update( + ['dependency_overrides', package.name], + {'path': path.relative(package.root.path, from: projectDirectory)}, + ); + } + pubspecOverridesFile.writeAsStringSync(editor.toString()); +} + +/// Extract the package name from the pubspec.yaml in [projectDirectory]. +String? getPackageName({required String projectDirectory}) { + final pubspecFile = File(path.join(projectDirectory, 'pubspec.yaml')); + final pubspec = loadYaml(pubspecFile.readAsStringSync()); + if (pubspec is! YamlMap) return null; + + final name = pubspec['name']; + if (name is! String) return null; + + return name; +} + +/// Build a complete list of dependencies (direct and transitive). +Set getProductionDependencies({ + required String packageName, + required PackageGraph packageGraph, +}) { + final dependencies = {}; + final root = packageGraph.roots.firstWhere((root) => root == packageName); + final rootPackage = packageGraph.packages.firstWhere((p) => p.name == root); + final dependenciesToVisit = [...rootPackage.dependencies]; + + do { + final discoveredDependencies = []; + for (final dependencyToVisit in dependenciesToVisit) { + final package = packageGraph.packages.firstWhere( + (p) => p.name == dependencyToVisit, + ); + dependencies.add(package.name); + for (final packageDependency in package.dependencies) { + // Avoid infinite loops from dependency cycles (circular dependencies). + if (dependencies.contains(packageDependency)) continue; + discoveredDependencies.add(packageDependency); + } + } + dependenciesToVisit + ..clear() + ..addAll(discoveredDependencies); + } while (dependenciesToVisit.isNotEmpty); + return dependencies; +} diff --git a/bricks/dart_frog_prod_server/hooks/pre_gen.dart b/bricks/dart_frog_prod_server/hooks/pre_gen.dart index 39da3d52b..64d3f68e0 100644 --- a/bricks/dart_frog_prod_server/hooks/pre_gen.dart +++ b/bricks/dart_frog_prod_server/hooks/pre_gen.dart @@ -44,6 +44,7 @@ Future preGen( // We need to make sure the package_config.json is up to date. await dartPubGet( context, + message: 'Generating package graph', workingDirectory: projectDirectory.path, runProcess: runProcess, exit: exit, @@ -88,6 +89,7 @@ Future preGen( // We need to make sure that the pubspec.lock file is up to date. await dartPubGet( context, + message: 'Updating lockfile', workingDirectory: projectDirectory.path, runProcess: runProcess, exit: exit, diff --git a/bricks/dart_frog_prod_server/hooks/pubspec.yaml b/bricks/dart_frog_prod_server/hooks/pubspec.yaml index 3b60c9e93..bf178618d 100644 --- a/bricks/dart_frog_prod_server/hooks/pubspec.yaml +++ b/bricks/dart_frog_prod_server/hooks/pubspec.yaml @@ -12,7 +12,6 @@ dependencies: mason: ^0.1.0 package_config: ^2.2.0 path: ^1.8.1 - pubspec_parse: ^1.5.0 yaml: ^3.1.2 yaml_edit: ^2.2.2 diff --git a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart index dc0ccb6d5..3d115b995 100644 --- a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart +++ b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart @@ -3,4 +3,411 @@ import 'package:mason/mason.dart'; -final dartFrogProdServerBundle = MasonBundle.fromJson({"files":[{"path":"build/.dockerignore","data":"LmRvY2tlcmlnbm9yZQpEb2NrZXJmaWxlCmJ1aWxkLwouZGFydF90b29sLwouZ2l0LwouZ2l0aHViLwouZ2l0aWdub3JlCi5pZGVhLwoucGFja2FnZXM=","type":"text"},{"path":"build/bin/server.dart","data":"Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKLy8gaWdub3JlX2Zvcl9maWxlOiB0eXBlPWxpbnQsIGltcGxpY2l0X2R5bmFtaWNfbGlzdF9saXRlcmFsCgppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZy9kYXJ0X2Zyb2cuZGFydCc7Cgp7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1pbXBvcnQgJy4uL21haW4uZGFydCcgYXMgZW50cnlwb2ludDt7ey9pbnZva2VDdXN0b21FbnRyeXBvaW50fX0Ke3sjcm91dGVzfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9yb3V0ZXN9fQp7eyNtaWRkbGV3YXJlfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9taWRkbGV3YXJlfX0Kdm9pZCBtYWluKCkgYXN5bmMgewogIGZpbmFsIGFkZHJlc3MgPSBJbnRlcm5ldEFkZHJlc3MuYW55SVB2NjsKICBmaW5hbCBwb3J0ID0gaW50LnRyeVBhcnNlKFBsYXRmb3JtLmVudmlyb25tZW50WydQT1JUJ10gPz8gJzgwODAnKSA/PyA4MDgwO3t7I2ludm9rZUN1c3RvbUluaXR9fQogIGF3YWl0IGVudHJ5cG9pbnQuaW5pdChhZGRyZXNzLCBwb3J0KTt7ey9pbnZva2VDdXN0b21Jbml0fX0KICBjcmVhdGVTZXJ2ZXIoYWRkcmVzcywgcG9ydCk7Cn0KCkZ1dHVyZTxIdHRwU2VydmVyPiBjcmVhdGVTZXJ2ZXIoSW50ZXJuZXRBZGRyZXNzIGFkZHJlc3MsIGludCBwb3J0KSBhc3luYyB7CiAgZmluYWwgaGFuZGxlciA9IENhc2NhZGUoKXt7I3NlcnZlU3RhdGljRmlsZXN9fS5hZGQoY3JlYXRlU3RhdGljRmlsZUhhbmRsZXIoKSl7ey9zZXJ2ZVN0YXRpY0ZpbGVzfX0uYWRkKGJ1aWxkUm9vdEhhbmRsZXIoKSkuaGFuZGxlcjsKICBmaW5hbCBzZXJ2ZXIgPSBhd2FpdCB7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1lbnRyeXBvaW50LnJ1bihoYW5kbGVyLCBhZGRyZXNzLCBwb3J0KXt7L2ludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXt7Xmludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXNlcnZlKGhhbmRsZXIsIGFkZHJlc3MsIHBvcnQpe3svaW52b2tlQ3VzdG9tRW50cnlwb2ludH19OwogIHByaW50KCdceDFCWzkybeKck1x4MUJbMG0gUnVubmluZyBvbiBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIHJldHVybiBzZXJ2ZXI7Cn0KCkhhbmRsZXIgYnVpbGRSb290SGFuZGxlcigpIHsKICBmaW5hbCBwaXBlbGluZSA9IGNvbnN0IFBpcGVsaW5lKCl7eyNnbG9iYWxNaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L2dsb2JhbE1pZGRsZXdhcmV9fTsKICBmaW5hbCByb3V0ZXIgPSBSb3V0ZXIoKXt7I2RpcmVjdG9yaWVzfX0KICAgIC4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHR7eyNkaXJlY3RvcnlfcGFyYW1zLjB9fSx7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX17ey9kaXJlY3RvcnlfcGFyYW1zLjB9fSkgPT4gYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX0pKGNvbnRleHQpKXt7L2RpcmVjdG9yaWVzfX07CiAgcmV0dXJuIHBpcGVsaW5lLmFkZEhhbmRsZXIocm91dGVyKTsKfQp7eyNkaXJlY3Rvcmllc319CkhhbmRsZXIgYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX1TdHJpbmcge3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319KSB7CiAgZmluYWwgcGlwZWxpbmUgPSBjb25zdCBQaXBlbGluZSgpe3sjbWlkZGxld2FyZS4wfX17eyNtaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L21pZGRsZXdhcmV9fXt7L21pZGRsZXdhcmUuMH19OwogIGZpbmFsIHJvdXRlciA9IFJvdXRlcigpCiAgICB7eyNmaWxlc319e3sjd2lsZGNhcmR9fS4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHQpID0+IHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Lm9uUmVxdWVzdChjb250ZXh0LGNvbnRleHQucmVxdWVzdC51cmwucGF0aCkpe3svd2lsZGNhcmR9fXt7XndpbGRjYXJkfX0uLmFsbCgne3t7cm91dGV9fX0nLCAoY29udGV4dHt7I2ZpbGVfcGFyYW1zLjB9fSx7eyNmaWxlX3BhcmFtc319e3sufX0se3svZmlsZV9wYXJhbXN9fXt7L2ZpbGVfcGFyYW1zLjB9fSkgPT4ge3sjc25ha2VDYXNlfX17e3tuYW1lfX19e3svc25ha2VDYXNlfX0ub25SZXF1ZXN0KGNvbnRleHQse3sjZGlyZWN0b3J5X3BhcmFtc319e3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319e3sjZmlsZV9wYXJhbXN9fXt7Ln19LHt7L2ZpbGVfcGFyYW1zfX0pKXt7L3dpbGRjYXJkfX17ey9maWxlc319OwogIHJldHVybiBwaXBlbGluZS5hZGRIYW5kbGVyKHJvdXRlcik7Cn0Ke3svZGlyZWN0b3JpZXN9fQo=","type":"text"},{"path":"build/{{#addDockerfile}}Dockerfile{{/addDockerfile}}","data":"IyBPZmZpY2lhbCBEYXJ0IGltYWdlOiBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vZGFydAojIFNwZWNpZnkgdGhlIERhcnQgU0RLIGJhc2UgaW1hZ2UgdmVyc2lvbiB1c2luZyBkYXJ0Ojx2ZXJzaW9uPiAoZXg6IGRhcnQ6Mi4xNykKRlJPTSBkYXJ0Ont7ZGFydFZlcnNpb259fSBBUyBidWlsZAoKV09SS0RJUiAvYXBwCnt7I2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KCiMgQ29weSBleHRlcm5hbCBkZXBlbmRlbmNpZXMKQ09QWSAuLy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMgIC4vLmRhcnRfZnJvZ19wYXRoX2RlcGVuZGVuY2llcwpDT1BZIC4vcHVic3BlY19vdmVycmlkZXMueWFtbCAuL3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwKe3svaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXN9fQojIENvcHkgRGVwZW5kZW5jaWVzCnt7I3BhdGhEZXBlbmRlbmNpZXN9fUNPUFkge3t7Ln19fSAuL3t7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7Xmhhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBJbnN0YWxsIERlcGVuZGVuY2llcwp7eyNwYXRoRGVwZW5kZW5jaWVzfX1SVU4gZGFydCBwdWIgZ2V0IC1DIHt7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7L2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBSZXNvbHZlIGFwcCBkZXBlbmRlbmNpZXMuCkNPUFkgcHVic3BlYy4qIC4vCkNPUFkgcHVic3BlY19vdmVycmlkZXMueWFtbCogLi8KUlVOIGRhcnQgcHViIGdldAoKIyBDb3B5IGFwcCBzb3VyY2UgY29kZSBhbmQgQU9UIGNvbXBpbGUgaXQuCkNPUFkgLiAuCiMgRW5zdXJlIHBhY2thZ2VzIGFyZSBzdGlsbCB1cC10by1kYXRlIGlmIGFueXRoaW5nIGhhcyBjaGFuZ2VkClJVTiBkYXJ0IHB1YiBnZXQgLS1vZmZsaW5lClJVTiBkYXJ0IGNvbXBpbGUgZXhlIGJpbi9zZXJ2ZXIuZGFydCAtbyBiaW4vc2VydmVyCgojIEJ1aWxkIG1pbmltYWwgc2VydmluZyBpbWFnZSBmcm9tIEFPVC1jb21waWxlZCBgL3NlcnZlcmAgYW5kIHJlcXVpcmVkIHN5c3RlbQojIGxpYnJhcmllcyBhbmQgY29uZmlndXJhdGlvbiBmaWxlcyBzdG9yZWQgaW4gYC9ydW50aW1lL2AgZnJvbSB0aGUgYnVpbGQgc3RhZ2UuCkZST00gc2NyYXRjaApDT1BZIC0tZnJvbT1idWlsZCAvcnVudGltZS8gLwpDT1BZIC0tZnJvbT1idWlsZCAvYXBwL2Jpbi9zZXJ2ZXIgL2FwcC9iaW4vCnt7I3NlcnZlU3RhdGljRmlsZXN9fUNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvcHVibGljIC9wdWJsaWMve3svc2VydmVTdGF0aWNGaWxlc319CgojIFN0YXJ0IHNlcnZlci4KQ01EIFsiL2FwcC9iaW4vc2VydmVyIl0K","type":"text"}],"hooks":[{"path":"build/lib/dart_frog_prod_server_hooks.dart","data":"ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL3VzZXNfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7Cg==","type":"text"},{"path":"build/lib/src/copy_workspace_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gQ29waWVzIHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkKLy8vIGluIG9yZGVyIHRvIGVuc3VyZSB0aGUgcHJvZHVjdGlvbiBidWlsZCB1c2VzIHRoZSBleGFjdCBzYW1lIHZlcnNpb25zIG9mIGFsbAovLy8gZGVwZW5kZW5jaWVzLgp2b2lkIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gX2dldFdvcmtzcGFjZVJvb3QocHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHByb2plY3REaXJlY3RvcnknLAogICAgKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgZmluYWwgcHVic3BlY0xvY2tGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya3NwYWNlUm9vdC5wYXRoLCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuOwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KfQoKLy8vIFJldHVybnMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBuZWFyZXN0IERhcnQgd29ya3NwYWNlLgpEaXJlY3Rvcnk/IF9nZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==","type":"text"},{"path":"build/lib/src/create_bundle.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=","type":"text"},{"path":"build/lib/src/create_external_packages_folder.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K","type":"text"},{"path":"build/lib/src/dart_pub_get.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==","type":"text"},{"path":"build/lib/src/disable_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIHRyeSB7CiAgICByZXR1cm4gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KfQoKVm9pZENhbGxiYWNrIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhTdHJpbmcgcHJvamVjdERpcmVjdG9yeSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CgogIGlmICghcHVic3BlY092ZXJyaWRlc0ZpbGUuZXhpc3RzU3luYygpKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuIHB1YnNwZWNPdmVycmlkZXNGaWxlLmRlbGV0ZVN5bmM7CiAgfQoKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA/OwoKICBpZiAocHVic3BlY092ZXJyaWRlcyA9PSBudWxsKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKICB9CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzWydyZXNvbHV0aW9uJ10gPT0gJ251bGwnKSByZXR1cm4gKCkge307IC8vIG5vLW9wCgogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpLi51cGRhdGUoWydyZXNvbHV0aW9uJ10sIG51bGwpOwogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKCiAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKfQo=","type":"text"},{"path":"build/lib/src/exit_overrides.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==","type":"text"},{"path":"build/lib/src/get_internal_path_dependencies.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=","type":"text"},{"path":"build/lib/src/get_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=","type":"text"},{"path":"build/lib/src/pubspec_lock/pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K","type":"text"},{"path":"build/lib/src/uses_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==","type":"text"},{"path":"build/post_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K","type":"text"},{"path":"build/pre_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CgogIGlmICh1c2VzV29ya3NwYWNlcykgewogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K","type":"text"},{"path":"build/pubspec.yaml","data":"bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=","type":"text"},{"path":"build/test/post_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/pre_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/pubspec_locks.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=","type":"text"},{"path":"build/test/pubspecs.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK","type":"text"},{"path":"build/test/src/copy_workspace_pubspec_lock_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"build/test/src/create_bundle_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/create_external_packages_folder_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"build/test/src/dart_pub_get_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/src/disable_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"build/test/src/exit_overrides_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/get_internal_path_dependencies_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"build/test/src/pubspec_lock/pubspec_lock_test.dart","data":"Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==","type":"text"},{"path":"build/test/src/uses_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"lib/dart_frog_prod_server_hooks.dart","data":"ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wYWNrYWdlX2NvbmZpZy5kYXJ0JzsKZXhwb3J0ICdzcmMvZ2V0X3BhY2thZ2VfZ3JhcGguZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL2dldF93b3Jrc3BhY2Vfcm9vdC5kYXJ0JzsKZXhwb3J0ICdzcmMvcGFja2FnZV9ncmFwaC9wYWNrYWdlX2dyYXBoLmRhcnQnOwpleHBvcnQgJ3NyYy91c2VzX3dvcmtzcGFjZV9yZXNvbHV0aW9uLmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwo=","type":"text"},{"path":"lib/src/copy_workspace_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKLy8vIENvcGllcyB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IGludG8gdGhlIHByb2plY3QgZGlyZWN0b3J5Ci8vLyBpbiBvcmRlciB0byBlbnN1cmUgdGhlIHByb2R1Y3Rpb24gYnVpbGQgdXNlcyB0aGUgZXhhY3Qgc2FtZSB2ZXJzaW9ucyBvZiBhbGwKLy8vIGRlcGVuZGVuY2llcy4KVm9pZENhbGxiYWNrIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgU3RyaW5nIHdvcmtzcGFjZVJvb3QsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCBwdWJzcGVjTG9ja0ZpbGUgPSBGaWxlKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuICgpIHt9OwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogICAgcmV0dXJuICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMubG9jaycpKS5kZWxldGUoKS5pZ25vcmUoKTsKICAgIH07CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsKICB9Cn0K","type":"text"},{"path":"lib/src/create_bundle.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=","type":"text"},{"path":"lib/src/create_external_packages_folder.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K","type":"text"},{"path":"lib/src/dart_pub_get.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/disable_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnX3R5cGVzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTpwdWJzcGVjX3BhcnNlL3B1YnNwZWNfcGFyc2UuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBQYWNrYWdlQ29uZmlnIHBhY2thZ2VDb25maWcsCiAgcmVxdWlyZWQgUGFja2FnZUdyYXBoIHBhY2thZ2VHcmFwaCwKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCBTdHJpbmcgd29ya3NwYWNlUm9vdCwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIFZvaWRDYWxsYmFjayByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbjsKICB0cnkgewogICAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24gPSBvdmVycmlkZVJlc29sdXRpb25JblB1YnNwZWNPdmVycmlkZXMoCiAgICAgIHByb2plY3REaXJlY3RvcnksCiAgICApOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KCiAgLy8gR2V0IGFsbCBwYWNrYWdlIGRlcGVuZGVuY2llcy4KICBmaW5hbCBwdWJzcGVjRmlsZSA9IEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjLnlhbWwnKSk7CiAgZmluYWwgcHVic3BlYyA9IFB1YnNwZWMucGFyc2UocHVic3BlY0ZpbGUucmVhZEFzU3RyaW5nU3luYygpKTsKCiAgZmluYWwgZGVwZW5kZW5jaWVzID0gPFN0cmluZz5bXTsKICBmaW5hbCByb290ID0gcGFja2FnZUdyYXBoLnJvb3RzLmZpcnN0V2hlcmUoKHJvb3QpID0+IHJvb3QgPT0gcHVic3BlYy5uYW1lKTsKICBmaW5hbCByb290UGFja2FnZSA9IHBhY2thZ2VHcmFwaC5wYWNrYWdlcy5maXJzdFdoZXJlKChwKSA9PiBwLm5hbWUgPT0gcm9vdCk7CiAgZmluYWwgZGVwZW5kZW5jaWVzVG9WaXNpdCA9IDxTdHJpbmc+Wy4uLnJvb3RQYWNrYWdlLmRlcGVuZGVuY2llc107CiAgZmluYWwgdW5pcXVlRGVwZW5kZW5jaWVzID0gPFN0cmluZz57fTsKCiAgLy8gQnVpbGQgY29tcGxldGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgKGRpcmVjdCBhbmQgdHJhbnNpdGl2ZSkuCiAgZG8gewogICAgZmluYWwgbmV3RGVwZW5kZW5jaWVzVG9WaXNpdCA9IDxTdHJpbmc+W107CiAgICBmb3IgKGZpbmFsIGRlcGVuZGVuY3lUb1Zpc2l0IGluIGRlcGVuZGVuY2llc1RvVmlzaXQpIHsKICAgICAgZmluYWwgcGFja2FnZSA9IHBhY2thZ2VHcmFwaC5wYWNrYWdlcy5maXJzdFdoZXJlKAogICAgICAgIChwKSA9PiBwLm5hbWUgPT0gZGVwZW5kZW5jeVRvVmlzaXQsCiAgICAgICk7CiAgICAgIGRlcGVuZGVuY2llcy5hZGQocGFja2FnZS5uYW1lKTsKICAgICAgZm9yIChmaW5hbCBwYWNrYWdlRGVwZW5kZW5jeSBpbiBwYWNrYWdlLmRlcGVuZGVuY2llcykgewogICAgICAgIC8vIEF2b2lkIGluZmluaXRlIGxvb3BzIGZyb20gZGVwZW5kZW5jeSBjeWNsZXMgKGNpcmN1bGFyIGRlcGVuZGVuY2llcykuCiAgICAgICAgaWYgKHVuaXF1ZURlcGVuZGVuY2llcy5jb250YWlucyhwYWNrYWdlRGVwZW5kZW5jeSkpIGNvbnRpbnVlOwogICAgICAgIHVuaXF1ZURlcGVuZGVuY2llcy5hZGQocGFja2FnZURlcGVuZGVuY3kpOwogICAgICAgIG5ld0RlcGVuZGVuY2llc1RvVmlzaXQuYWRkKHBhY2thZ2VEZXBlbmRlbmN5KTsKICAgICAgfQogICAgfQogICAgZGVwZW5kZW5jaWVzVG9WaXNpdAogICAgICAuLmNsZWFyKCkKICAgICAgLi5hZGRBbGwobmV3RGVwZW5kZW5jaWVzVG9WaXNpdCk7CiAgfSB3aGlsZSAoZGVwZW5kZW5jaWVzVG9WaXNpdC5pc05vdEVtcHR5KTsKCiAgLy8gRmluZCBwYXRoIGRlcGVuZGVuY2llcyB1c2luZyB0aGUgcGFja2FnZV9jb25maWcuanNvbi4KICBmaW5hbCBwYXRoRGVwZW5kZW5jaWVzID0gcGFja2FnZUNvbmZpZy5wYWNrYWdlcy53aGVyZSgKICAgIChwYWNrYWdlKSA9PiBwYWNrYWdlLnJlbGF0aXZlUm9vdCAmJiBkZXBlbmRlbmNpZXMuY29udGFpbnMocGFja2FnZS5uYW1lKSwKICApOwoKICAvLyBBZGQgZGVwZW5kZW5jeV9vdmVycmlkZXMgdG8gdGhlIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwuCiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsnZGVwZW5kZW5jeV9vdmVycmlkZXMnXSwge30pOwogIGZvciAoZmluYWwgcGFja2FnZSBpbiBwYXRoRGVwZW5kZW5jaWVzKSB7CiAgICBlZGl0b3IudXBkYXRlKAogICAgICBbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJywgcGFja2FnZS5uYW1lXSwKICAgICAgeydwYXRoJzogcGF0aC5yZWxhdGl2ZShwYWNrYWdlLnJvb3QucGF0aCwgZnJvbTogcHJvamVjdERpcmVjdG9yeSl9LAogICAgKTsKICB9CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247Cn0KClZvaWRDYWxsYmFjayBvdmVycmlkZVJlc29sdXRpb25JblB1YnNwZWNPdmVycmlkZXMoU3RyaW5nIHByb2plY3REaXJlY3RvcnkpIHsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzRmlsZSA9IEZpbGUoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnKSwKICApOwoKICBpZiAoIXB1YnNwZWNPdmVycmlkZXNGaWxlLmV4aXN0c1N5bmMoKSkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5kZWxldGVTeW5jOwogIH0KCiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGxvYWRZYW1sKGNvbnRlbnRzKSBhcyBZYW1sTWFwPzsKCiAgaWYgKHB1YnNwZWNPdmVycmlkZXMgPT0gbnVsbCkgewogICAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoJ3Jlc29sdXRpb246IG51bGwnKTsKICAgIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7CiAgfQoKICBpZiAocHVic3BlY092ZXJyaWRlc1sncmVzb2x1dGlvbiddID09ICdudWxsJykgcmV0dXJuICgpIHt9OyAvLyBuby1vcAoKICBmaW5hbCBlZGl0b3IgPSBZYW1sRWRpdG9yKGNvbnRlbnRzKS4udXBkYXRlKFsncmVzb2x1dGlvbiddLCBudWxsKTsKICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhlZGl0b3IudG9TdHJpbmcoKSk7CgogIHJldHVybiAoKSA9PiBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYyhjb250ZW50cyk7Cn0K","type":"text"},{"path":"lib/src/exit_overrides.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_internal_path_dependencies.dart","data":"aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=","type":"text"},{"path":"lib/src/get_package_config.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYWNrYWdlX2NvbmZpZy9wYWNrYWdlX2NvbmZpZ190eXBlcy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKUGFja2FnZUNvbmZpZz8gZ2V0UGFja2FnZUNvbmZpZygKICBTdHJpbmcgd29ya3NwYWNlUm9vdCwgewogIHBhdGguQ29udGV4dD8gcGF0aENvbnRleHQsCn0pIHsKICBmaW5hbCBwYXRoUmVzb2x2ZXIgPSBwYXRoQ29udGV4dCA/PyBwYXRoLmNvbnRleHQ7CiAgZmluYWwgcGFja2FnZUNvbmZpZ0ZpbGUgPSBGaWxlKAogICAgcGF0aFJlc29sdmVyLmpvaW4od29ya3NwYWNlUm9vdCwgJy5kYXJ0X3Rvb2wvcGFja2FnZV9jb25maWcuanNvbicpLAogICk7CiAgaWYgKCFwYWNrYWdlQ29uZmlnRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwoKICB0cnkgewogICAgZmluYWwgY29udGVudCA9IHBhY2thZ2VDb25maWdGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICAgIHJldHVybiBQYWNrYWdlQ29uZmlnLnBhcnNlU3RyaW5nKGNvbnRlbnQsIHBhY2thZ2VDb25maWdGaWxlLnVyaSk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_package_graph.dart","data":"aW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CgpQYWNrYWdlR3JhcGg/IGdldFBhY2thZ2VHcmFwaChTdHJpbmcgd29ya3NwYWNlUm9vdCkgewogIHRyeSB7CiAgICByZXR1cm4gUGFja2FnZUdyYXBoLmxvYWQod29ya3NwYWNlUm9vdCk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==","type":"text"},{"path":"lib/src/get_pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=","type":"text"},{"path":"lib/src/get_workspace_root.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKCi8vLyBSZXR1cm5zIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgbmVhcmVzdCBEYXJ0IHdvcmtzcGFjZS4KRGlyZWN0b3J5PyBnZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==","type":"text"},{"path":"lib/src/package_graph/package_graph.dart","data":"aW1wb3J0ICdkYXJ0OmNvbnZlcnQnOwppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmpzb25fYW5ub3RhdGlvbi9qc29uX2Fubm90YXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCnBhcnQgJ3BhY2thZ2VfZ3JhcGguZy5kYXJ0JzsKCkBKc29uU2VyaWFsaXphYmxlKCkKY2xhc3MgUGFja2FnZUdyYXBoIHsKICBjb25zdCBQYWNrYWdlR3JhcGgoewogICAgcmVxdWlyZWQgdGhpcy5yb290cywKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgICByZXF1aXJlZCB0aGlzLmNvbmZpZ1ZlcnNpb24sCiAgfSk7CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmxvYWQoU3RyaW5nIHByb2plY3QpIHsKICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihwcm9qZWN0LCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2dyYXBoLmpzb24nKSk7CiAgICBpZiAoIWZpbGUuZXhpc3RzU3luYygpKSB0aHJvdyBFeGNlcHRpb24oJyR7ZmlsZS5wYXRofSBub3QgZm91bmQnKTsKICAgIHJldHVybiBQYWNrYWdlR3JhcGguZnJvbUpzb24oCiAgICAgIGpzb25EZWNvZGUoZmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpIGFzIE1hcDxTdHJpbmcsIGR5bmFtaWM+LAogICAgKTsKICB9CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oanNvbik7CgogIGZpbmFsIExpc3Q8U3RyaW5nPiByb290czsKICBmaW5hbCBMaXN0PFBhY2thZ2U+IHBhY2thZ2VzOwogIGZpbmFsIGludCBjb25maWdWZXJzaW9uOwp9CgpASnNvblNlcmlhbGl6YWJsZSgpCmNsYXNzIFBhY2thZ2UgewogIGNvbnN0IFBhY2thZ2UoewogICAgcmVxdWlyZWQgdGhpcy5uYW1lLAogICAgcmVxdWlyZWQgdGhpcy52ZXJzaW9uLAogICAgcmVxdWlyZWQgdGhpcy5kZXBlbmRlbmNpZXMsCiAgICByZXF1aXJlZCB0aGlzLmRldkRlcGVuZGVuY2llcywKICB9KTsKCiAgZmFjdG9yeSBQYWNrYWdlLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUZyb21Kc29uKGpzb24pOwoKICBmaW5hbCBTdHJpbmcgbmFtZTsKICBmaW5hbCBTdHJpbmcgdmVyc2lvbjsKCiAgQEpzb25LZXkoZGVmYXVsdFZhbHVlOiA8U3RyaW5nPltdKQogIGZpbmFsIExpc3Q8U3RyaW5nPiBkZXBlbmRlbmNpZXM7CgogIEBKc29uS2V5KGRlZmF1bHRWYWx1ZTogPFN0cmluZz5bXSkKICBmaW5hbCBMaXN0PFN0cmluZz4gZGV2RGVwZW5kZW5jaWVzOwp9Cg==","type":"text"},{"path":"lib/src/package_graph/package_graph.g.dart","data":"Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogaW1wbGljaXRfZHluYW1pY19wYXJhbWV0ZXIKCnBhcnQgb2YgJ3BhY2thZ2VfZ3JhcGguZGFydCc7CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBKc29uU2VyaWFsaXphYmxlR2VuZXJhdG9yCi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpQYWNrYWdlR3JhcGggXyRQYWNrYWdlR3JhcGhGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2VHcmFwaCcsIGpzb24sICgkY2hlY2tlZENvbnZlcnQpIHsKICAgICAgZmluYWwgdmFsID0gUGFja2FnZUdyYXBoKAogICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAncm9vdHMnLAogICAgICAgICAgKHYpID0+ICh2IGFzIExpc3Q8ZHluYW1pYz4pLm1hcCgoZSkgPT4gZSBhcyBTdHJpbmcpLnRvTGlzdCgpLAogICAgICAgICksCiAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdwYWNrYWdlcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikKICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgIC50b0xpc3QoKSwKICAgICAgICApLAogICAgICAgIGNvbmZpZ1ZlcnNpb246ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdjb25maWdWZXJzaW9uJywKICAgICAgICAgICh2KSA9PiAodiBhcyBudW0pLnRvSW50KCksCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgcmV0dXJuIHZhbDsKICAgIH0pOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2UnLCBqc29uLCAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2UoCiAgICAgICAgbmFtZTogJGNoZWNrZWRDb252ZXJ0KCduYW1lJywgKHYpID0+IHYgYXMgU3RyaW5nKSwKICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgIGRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICAgIGRldkRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICApOwogICAgICByZXR1cm4gdmFsOwogICAgfSk7Cg==","type":"text"},{"path":"lib/src/pubspec_lock/pubspec_lock.dart","data":"aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K","type":"text"},{"path":"lib/src/uses_workspace_resolution.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==","type":"text"},{"path":"post_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K","type":"text"},{"path":"pre_gen.dart","data":"aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICRwcm9qZWN0RGlyZWN0b3J5JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHBhY2thZ2VfY29uZmlnLmpzb24gaXMgdXAgdG8gZGF0ZS4KICAgIGF3YWl0IGRhcnRQdWJHZXQoCiAgICAgIGNvbnRleHQsCiAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgICAgZXhpdDogZXhpdCwKICAgICk7CgogICAgZmluYWwgcGFja2FnZUNvbmZpZyA9IGdldFBhY2thZ2VDb25maWcod29ya3NwYWNlUm9vdC5wYXRoKTsKICAgIGlmIChwYWNrYWdlQ29uZmlnID09IG51bGwpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICdVbmFibGUgdG8gZmluZCBwYWNrYWdlX2NvbmZpZy5qc29uIGZvciAke3dvcmtzcGFjZVJvb3QucGF0aH0nLAogICAgICApOwogICAgICByZXR1cm4gZXhpdCgxKTsKICAgIH0KCiAgICBmaW5hbCBwYWNrYWdlR3JhcGggPSBnZXRQYWNrYWdlR3JhcGgod29ya3NwYWNlUm9vdC5wYXRoKTsKICAgIGlmIChwYWNrYWdlR3JhcGggPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBmaW5kIHBhY2thZ2VfZ3JhcGguanNvbiBmb3IgJHt3b3Jrc3BhY2VSb290LnBhdGh9JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHBhY2thZ2VDb25maWc6IHBhY2thZ2VDb25maWcsCiAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIHdvcmtzcGFjZVJvb3Q6IHdvcmtzcGFjZVJvb3QucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICByZXZlcnRQdWJzcGVjTG9jayA9IGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgY29udGV4dCwKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICB3b3Jrc3BhY2VSb290OiB3b3Jrc3BhY2VSb290LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogIH0KCiAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcHVic3BlYy5sb2NrIGZpbGUgaXMgdXAgdG8gZGF0ZS4KICBhd2FpdCBkYXJ0UHViR2V0KAogICAgY29udGV4dCwKICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgIHJ1blByb2Nlc3M6IHJ1blByb2Nlc3MsCiAgICBleGl0OiBleGl0LAogICk7CgogIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0gaW8uRGlyZWN0b3J5KAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyksCiAgKTsKCiAgYXdhaXQgY3JlYXRlQnVuZGxlKAogICAgY29udGV4dDogY29udGV4dCwKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBidWlsZERpcmVjdG9yeTogYnVpbGREaXJlY3RvcnksCiAgICBleGl0OiBleGl0LAogICk7CgogIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uPy5jYWxsKCk7CgogIGZpbmFsIFJvdXRlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uOwogIHRyeSB7CiAgICBjb25maWd1cmF0aW9uID0gYnVpbGRDb25maWd1cmF0aW9uKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgcmVwb3J0Um91dGVDb25mbGljdHMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb3V0ZUNvbmZsaWN0OiAoCiAgICAgIG9yaWdpbmFsRmlsZVBhdGgsCiAgICAgIGNvbmZsaWN0aW5nRmlsZVBhdGgsCiAgICAgIGNvbmZsaWN0aW5nRW5kcG9pbnQsCiAgICApIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKG9yaWdpbmFsRmlsZVBhdGgpfSBhbmQgJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0ZpbGVQYXRoKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdFbmRwb2ludCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICByZXBvcnRSb2d1ZVJvdXRlcygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvZ3VlUm91dGU6IChmaWxlUGF0aCwgaWRlYWxQYXRoKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb2d1ZSByb3V0ZSBkZXRlY3RlZC4ke2RlZmF1bHRGb3JlZ3JvdW5kLndyYXAoJyAnKX1SZW5hbWUgJHtsaWdodEN5YW4ud3JhcChmaWxlUGF0aCl9IHRvICR7bGlnaHRDeWFuLndyYXAoaWRlYWxQYXRoKX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIGZpbmFsIGludGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IGdldEludGVybmFsUGF0aERlcGVuZGVuY2llcygKICAgIHByb2plY3REaXJlY3RvcnksCiAgKTsKCiAgZmluYWwgZXh0ZXJuYWxEZXBlbmRlbmNpZXMgPSBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGNvcHlQYXRoOiBjb3B5UGF0aCwKICApOwoKICByZXZlcnRQdWJzcGVjTG9jaz8uY2FsbCgpOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKICBmaW5hbCBhZGREb2NrZXJmaWxlID0gIWN1c3RvbURvY2tlckZpbGUuZXhpc3RzU3luYygpOwoKICBjb250ZXh0LnZhcnMgPSB7CiAgICAnZGlyZWN0b3JpZXMnOiBjb25maWd1cmF0aW9uLmRpcmVjdG9yaWVzCiAgICAgICAgLm1hcCgoYykgPT4gYy50b0pzb24oKSkKICAgICAgICAudG9MaXN0KCkKICAgICAgICAucmV2ZXJzZWQKICAgICAgICAudG9MaXN0KCksCiAgICAncm91dGVzJzogY29uZmlndXJhdGlvbi5yb3V0ZXMubWFwKChyKSA9PiByLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdtaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5taWRkbGV3YXJlLm1hcCgobSkgPT4gbS50b0pzb24oKSkudG9MaXN0KCksCiAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSAhPSBudWxsCiAgICAgICAgPyBjb25maWd1cmF0aW9uLmdsb2JhbE1pZGRsZXdhcmUhLnRvSnNvbigpCiAgICAgICAgOiBmYWxzZSwKICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogY29uZmlndXJhdGlvbi5zZXJ2ZVN0YXRpY0ZpbGVzLAogICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBjb25maWd1cmF0aW9uLmludm9rZUN1c3RvbUVudHJ5cG9pbnQsCiAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tSW5pdCwKICAgICdwYXRoRGVwZW5kZW5jaWVzJzogaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLAogICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZXh0ZXJuYWxEZXBlbmRlbmNpZXMuaXNOb3RFbXB0eSwKICAgICdkYXJ0VmVyc2lvbic6IGNvbnRleHQudmFyc1snZGFydFZlcnNpb24nXSwKICAgICdhZGREb2NrZXJmaWxlJzogYWRkRG9ja2VyZmlsZSwKICB9Owp9Cg==","type":"text"},{"path":"pubspec.yaml","data":"bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIGpzb25fYW5ub3RhdGlvbjogXjQuOS4wCiAgbWFzb246IF4wLjEuMAogIHBhY2thZ2VfY29uZmlnOiBeMi4yLjAKICBwYXRoOiBeMS44LjEKICBwdWJzcGVjX3BhcnNlOiBeMS41LjAKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBidWlsZF9ydW5uZXI6IF4yLjguMAogIGpzb25fc2VyaWFsaXphYmxlOiBeNi4xMS4xCiAgbW9ja3RhaWw6IF4xLjAuMAogIHRlc3Q6IF4xLjI1LjAK","type":"text"},{"path":"test/post_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/pre_gen_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K","type":"text"},{"path":"test/pubspec_locks.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=","type":"text"},{"path":"test/pubspecs.dart","data":"Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK","type":"text"},{"path":"test/src/copy_workspace_pubspec_lock_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"test/src/create_bundle_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/create_external_packages_folder_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==","type":"text"},{"path":"test/src/dart_pub_get_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/disable_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"},{"path":"test/src/exit_overrides_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/get_internal_path_dependencies_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=","type":"text"},{"path":"test/src/pubspec_lock/pubspec_lock_test.dart","data":"Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==","type":"text"},{"path":"test/src/uses_workspace_resolution_test.dart","data":"aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K","type":"text"}],"name":"dart_frog_prod_server","description":"A dart_frog prod server","version":"0.1.0+1","environment":{"mason":"^0.1.0"},"readme":{"path":"README.md","data":"IyBkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXIKClshW1Bvd2VyZWQgYnkgTWFzb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzJTNBJTJGJTJGdGlueXVybC5jb20lMkZtYXNvbi1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxhbmdlbC9tYXNvbikKCkEgYGRhcnRfZnJvZ2AgcHJvZHVjdGlvbiBzZXJ2ZXIuCgpfR2VuZXJhdGVkIGJ5IFttYXNvbl1bMV0g8J+nsV8KClsxXTogaHR0cHM6Ly9naXRodWIuY29tL2ZlbGFuZ2VsL21hc29uCg==","type":"text"},"changelog":{"path":"CHANGELOG.md","data":"IyAwLjEuMCsxCgotIGZlYXQ6IGJhc2ljIGltcGxlbWVudGF0aW9uIGZvciB0aGUgZGFydCBmcm9nIHByb2R1Y3Rpb24gc2VydmVyCg==","type":"text"},"license":{"path":"LICENSE","data":"TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAyMiBWZXJ5IEdvb2QgVmVudHVyZXMKQ29weXJpZ2h0IChjKSAyMDI1IERhcnQgRnJvZyBEZXYKClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCg==","type":"text"},"vars":{"dartVersion":{"type":"string","description":"Dart version to be used in the generated Dockerfile.","default":"stable","prompt":"Dart version?"}}}); \ No newline at end of file +final dartFrogProdServerBundle = MasonBundle.fromJson({ + "files": [ + { + "path": "build/.dockerignore", + "data": + "LmRvY2tlcmlnbm9yZQpEb2NrZXJmaWxlCmJ1aWxkLwouZGFydF90b29sLwouZ2l0LwouZ2l0aHViLwouZ2l0aWdub3JlCi5pZGVhLwoucGFja2FnZXM=", + "type": "text" + }, + { + "path": "build/bin/server.dart", + "data": + "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKLy8gaWdub3JlX2Zvcl9maWxlOiB0eXBlPWxpbnQsIGltcGxpY2l0X2R5bmFtaWNfbGlzdF9saXRlcmFsCgppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZy9kYXJ0X2Zyb2cuZGFydCc7Cgp7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1pbXBvcnQgJy4uL21haW4uZGFydCcgYXMgZW50cnlwb2ludDt7ey9pbnZva2VDdXN0b21FbnRyeXBvaW50fX0Ke3sjcm91dGVzfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9yb3V0ZXN9fQp7eyNtaWRkbGV3YXJlfX1pbXBvcnQgJ3t7e3BhdGh9fX0nIGFzIHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Owp7ey9taWRkbGV3YXJlfX0Kdm9pZCBtYWluKCkgYXN5bmMgewogIGZpbmFsIGFkZHJlc3MgPSBJbnRlcm5ldEFkZHJlc3MuYW55SVB2NjsKICBmaW5hbCBwb3J0ID0gaW50LnRyeVBhcnNlKFBsYXRmb3JtLmVudmlyb25tZW50WydQT1JUJ10gPz8gJzgwODAnKSA/PyA4MDgwO3t7I2ludm9rZUN1c3RvbUluaXR9fQogIGF3YWl0IGVudHJ5cG9pbnQuaW5pdChhZGRyZXNzLCBwb3J0KTt7ey9pbnZva2VDdXN0b21Jbml0fX0KICBjcmVhdGVTZXJ2ZXIoYWRkcmVzcywgcG9ydCk7Cn0KCkZ1dHVyZTxIdHRwU2VydmVyPiBjcmVhdGVTZXJ2ZXIoSW50ZXJuZXRBZGRyZXNzIGFkZHJlc3MsIGludCBwb3J0KSBhc3luYyB7CiAgZmluYWwgaGFuZGxlciA9IENhc2NhZGUoKXt7I3NlcnZlU3RhdGljRmlsZXN9fS5hZGQoY3JlYXRlU3RhdGljRmlsZUhhbmRsZXIoKSl7ey9zZXJ2ZVN0YXRpY0ZpbGVzfX0uYWRkKGJ1aWxkUm9vdEhhbmRsZXIoKSkuaGFuZGxlcjsKICBmaW5hbCBzZXJ2ZXIgPSBhd2FpdCB7eyNpbnZva2VDdXN0b21FbnRyeXBvaW50fX1lbnRyeXBvaW50LnJ1bihoYW5kbGVyLCBhZGRyZXNzLCBwb3J0KXt7L2ludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXt7Xmludm9rZUN1c3RvbUVudHJ5cG9pbnR9fXNlcnZlKGhhbmRsZXIsIGFkZHJlc3MsIHBvcnQpe3svaW52b2tlQ3VzdG9tRW50cnlwb2ludH19OwogIHByaW50KCdceDFCWzkybeKck1x4MUJbMG0gUnVubmluZyBvbiBodHRwOi8vJHtzZXJ2ZXIuYWRkcmVzcy5ob3N0fToke3NlcnZlci5wb3J0fScpOwogIHJldHVybiBzZXJ2ZXI7Cn0KCkhhbmRsZXIgYnVpbGRSb290SGFuZGxlcigpIHsKICBmaW5hbCBwaXBlbGluZSA9IGNvbnN0IFBpcGVsaW5lKCl7eyNnbG9iYWxNaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L2dsb2JhbE1pZGRsZXdhcmV9fTsKICBmaW5hbCByb3V0ZXIgPSBSb3V0ZXIoKXt7I2RpcmVjdG9yaWVzfX0KICAgIC4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHR7eyNkaXJlY3RvcnlfcGFyYW1zLjB9fSx7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX17ey9kaXJlY3RvcnlfcGFyYW1zLjB9fSkgPT4gYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX17ey59fSx7ey9kaXJlY3RvcnlfcGFyYW1zfX0pKGNvbnRleHQpKXt7L2RpcmVjdG9yaWVzfX07CiAgcmV0dXJuIHBpcGVsaW5lLmFkZEhhbmRsZXIocm91dGVyKTsKfQp7eyNkaXJlY3Rvcmllc319CkhhbmRsZXIgYnVpbGR7eyNwYXNjYWxDYXNlfX17e3tuYW1lfX19e3svcGFzY2FsQ2FzZX19SGFuZGxlcih7eyNkaXJlY3RvcnlfcGFyYW1zfX1TdHJpbmcge3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319KSB7CiAgZmluYWwgcGlwZWxpbmUgPSBjb25zdCBQaXBlbGluZSgpe3sjbWlkZGxld2FyZS4wfX17eyNtaWRkbGV3YXJlfX0uYWRkTWlkZGxld2FyZSh7eyNzbmFrZUNhc2V9fXt7e25hbWV9fX17ey9zbmFrZUNhc2V9fS5taWRkbGV3YXJlKXt7L21pZGRsZXdhcmV9fXt7L21pZGRsZXdhcmUuMH19OwogIGZpbmFsIHJvdXRlciA9IFJvdXRlcigpCiAgICB7eyNmaWxlc319e3sjd2lsZGNhcmR9fS4ubW91bnQoJ3t7e3JvdXRlfX19JywgKGNvbnRleHQpID0+IHt7I3NuYWtlQ2FzZX19e3t7bmFtZX19fXt7L3NuYWtlQ2FzZX19Lm9uUmVxdWVzdChjb250ZXh0LGNvbnRleHQucmVxdWVzdC51cmwucGF0aCkpe3svd2lsZGNhcmR9fXt7XndpbGRjYXJkfX0uLmFsbCgne3t7cm91dGV9fX0nLCAoY29udGV4dHt7I2ZpbGVfcGFyYW1zLjB9fSx7eyNmaWxlX3BhcmFtc319e3sufX0se3svZmlsZV9wYXJhbXN9fXt7L2ZpbGVfcGFyYW1zLjB9fSkgPT4ge3sjc25ha2VDYXNlfX17e3tuYW1lfX19e3svc25ha2VDYXNlfX0ub25SZXF1ZXN0KGNvbnRleHQse3sjZGlyZWN0b3J5X3BhcmFtc319e3sufX0se3svZGlyZWN0b3J5X3BhcmFtc319e3sjZmlsZV9wYXJhbXN9fXt7Ln19LHt7L2ZpbGVfcGFyYW1zfX0pKXt7L3dpbGRjYXJkfX17ey9maWxlc319OwogIHJldHVybiBwaXBlbGluZS5hZGRIYW5kbGVyKHJvdXRlcik7Cn0Ke3svZGlyZWN0b3JpZXN9fQo=", + "type": "text" + }, + { + "path": "build/{{#addDockerfile}}Dockerfile{{/addDockerfile}}", + "data": + "IyBPZmZpY2lhbCBEYXJ0IGltYWdlOiBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vZGFydAojIFNwZWNpZnkgdGhlIERhcnQgU0RLIGJhc2UgaW1hZ2UgdmVyc2lvbiB1c2luZyBkYXJ0Ojx2ZXJzaW9uPiAoZXg6IGRhcnQ6Mi4xNykKRlJPTSBkYXJ0Ont7ZGFydFZlcnNpb259fSBBUyBidWlsZAoKV09SS0RJUiAvYXBwCnt7I2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KCiMgQ29weSBleHRlcm5hbCBkZXBlbmRlbmNpZXMKQ09QWSAuLy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMgIC4vLmRhcnRfZnJvZ19wYXRoX2RlcGVuZGVuY2llcwpDT1BZIC4vcHVic3BlY19vdmVycmlkZXMueWFtbCAuL3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwKe3svaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXN9fQojIENvcHkgRGVwZW5kZW5jaWVzCnt7I3BhdGhEZXBlbmRlbmNpZXN9fUNPUFkge3t7Ln19fSAuL3t7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7Xmhhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBJbnN0YWxsIERlcGVuZGVuY2llcwp7eyNwYXRoRGVwZW5kZW5jaWVzfX1SVU4gZGFydCBwdWIgZ2V0IC1DIHt7ey59fX0Ke3svcGF0aERlcGVuZGVuY2llc319Cnt7L2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzfX0KIyBSZXNvbHZlIGFwcCBkZXBlbmRlbmNpZXMuCkNPUFkgcHVic3BlYy4qIC4vCkNPUFkgcHVic3BlY19vdmVycmlkZXMueWFtbCogLi8KUlVOIGRhcnQgcHViIGdldAoKIyBDb3B5IGFwcCBzb3VyY2UgY29kZSBhbmQgQU9UIGNvbXBpbGUgaXQuCkNPUFkgLiAuCiMgRW5zdXJlIHBhY2thZ2VzIGFyZSBzdGlsbCB1cC10by1kYXRlIGlmIGFueXRoaW5nIGhhcyBjaGFuZ2VkClJVTiBkYXJ0IHB1YiBnZXQgLS1vZmZsaW5lClJVTiBkYXJ0IGNvbXBpbGUgZXhlIGJpbi9zZXJ2ZXIuZGFydCAtbyBiaW4vc2VydmVyCgojIEJ1aWxkIG1pbmltYWwgc2VydmluZyBpbWFnZSBmcm9tIEFPVC1jb21waWxlZCBgL3NlcnZlcmAgYW5kIHJlcXVpcmVkIHN5c3RlbQojIGxpYnJhcmllcyBhbmQgY29uZmlndXJhdGlvbiBmaWxlcyBzdG9yZWQgaW4gYC9ydW50aW1lL2AgZnJvbSB0aGUgYnVpbGQgc3RhZ2UuCkZST00gc2NyYXRjaApDT1BZIC0tZnJvbT1idWlsZCAvcnVudGltZS8gLwpDT1BZIC0tZnJvbT1idWlsZCAvYXBwL2Jpbi9zZXJ2ZXIgL2FwcC9iaW4vCnt7I3NlcnZlU3RhdGljRmlsZXN9fUNPUFkgLS1mcm9tPWJ1aWxkIC9hcHAvcHVibGljIC9wdWJsaWMve3svc2VydmVTdGF0aWNGaWxlc319CgojIFN0YXJ0IHNlcnZlci4KQ01EIFsiL2FwcC9iaW4vc2VydmVyIl0K", + "type": "text" + } + ], + "hooks": [ + { + "path": "build/lib/dart_frog_prod_server_hooks.dart", + "data": + "ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL3VzZXNfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7Cg==", + "type": "text" + }, + { + "path": "build/lib/src/copy_workspace_pubspec_lock.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gQ29waWVzIHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkKLy8vIGluIG9yZGVyIHRvIGVuc3VyZSB0aGUgcHJvZHVjdGlvbiBidWlsZCB1c2VzIHRoZSBleGFjdCBzYW1lIHZlcnNpb25zIG9mIGFsbAovLy8gZGVwZW5kZW5jaWVzLgp2b2lkIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gX2dldFdvcmtzcGFjZVJvb3QocHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHByb2plY3REaXJlY3RvcnknLAogICAgKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgZmluYWwgcHVic3BlY0xvY2tGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya3NwYWNlUm9vdC5wYXRoLCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuOwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KfQoKLy8vIFJldHVybnMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBuZWFyZXN0IERhcnQgd29ya3NwYWNlLgpEaXJlY3Rvcnk/IF9nZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==", + "type": "text" + }, + { + "path": "build/lib/src/create_bundle.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=", + "type": "text" + }, + { + "path": "build/lib/src/create_external_packages_folder.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K", + "type": "text" + }, + { + "path": "build/lib/src/dart_pub_get.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==", + "type": "text" + }, + { + "path": "build/lib/src/disable_workspace_resolution.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIHRyeSB7CiAgICByZXR1cm4gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KfQoKVm9pZENhbGxiYWNrIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhTdHJpbmcgcHJvamVjdERpcmVjdG9yeSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CgogIGlmICghcHVic3BlY092ZXJyaWRlc0ZpbGUuZXhpc3RzU3luYygpKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuIHB1YnNwZWNPdmVycmlkZXNGaWxlLmRlbGV0ZVN5bmM7CiAgfQoKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA/OwoKICBpZiAocHVic3BlY092ZXJyaWRlcyA9PSBudWxsKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKICB9CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzWydyZXNvbHV0aW9uJ10gPT0gJ251bGwnKSByZXR1cm4gKCkge307IC8vIG5vLW9wCgogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpLi51cGRhdGUoWydyZXNvbHV0aW9uJ10sIG51bGwpOwogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKCiAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKfQo=", + "type": "text" + }, + { + "path": "build/lib/src/exit_overrides.dart", + "data": + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==", + "type": "text" + }, + { + "path": "build/lib/src/get_internal_path_dependencies.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=", + "type": "text" + }, + { + "path": "build/lib/src/get_pubspec_lock.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=", + "type": "text" + }, + { + "path": "build/lib/src/pubspec_lock/pubspec_lock.dart", + "data": + "aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K", + "type": "text" + }, + { + "path": "build/lib/src/uses_workspace_resolution.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==", + "type": "text" + }, + { + "path": "build/post_gen.dart", + "data": + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K", + "type": "text" + }, + { + "path": "build/pre_gen.dart", + "data": + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CgogIGlmICh1c2VzV29ya3NwYWNlcykgewogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K", + "type": "text" + }, + { + "path": "build/pubspec.yaml", + "data": + "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=", + "type": "text" + }, + { + "path": "build/test/post_gen_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "build/test/pre_gen_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "build/test/pubspec_locks.dart", + "data": + "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=", + "type": "text" + }, + { + "path": "build/test/pubspecs.dart", + "data": + "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK", + "type": "text" + }, + { + "path": "build/test/src/copy_workspace_pubspec_lock_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==", + "type": "text" + }, + { + "path": "build/test/src/create_bundle_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=", + "type": "text" + }, + { + "path": "build/test/src/create_external_packages_folder_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==", + "type": "text" + }, + { + "path": "build/test/src/dart_pub_get_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "build/test/src/disable_workspace_resolution_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "build/test/src/exit_overrides_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=", + "type": "text" + }, + { + "path": "build/test/src/get_internal_path_dependencies_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=", + "type": "text" + }, + { + "path": "build/test/src/pubspec_lock/pubspec_lock_test.dart", + "data": + "Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==", + "type": "text" + }, + { + "path": "build/test/src/uses_workspace_resolution_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "lib/dart_frog_prod_server_hooks.dart", + "data": + "ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wYWNrYWdlX2NvbmZpZy5kYXJ0JzsKZXhwb3J0ICdzcmMvZ2V0X3BhY2thZ2VfZ3JhcGguZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL2dldF93b3Jrc3BhY2Vfcm9vdC5kYXJ0JzsKZXhwb3J0ICdzcmMvcGFja2FnZV9ncmFwaC9wYWNrYWdlX2dyYXBoLmRhcnQnOwpleHBvcnQgJ3NyYy91c2VzX3dvcmtzcGFjZV9yZXNvbHV0aW9uLmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwo=", + "type": "text" + }, + { + "path": "lib/src/copy_workspace_pubspec_lock.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKLy8vIENvcGllcyB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IGludG8gdGhlIHByb2plY3QgZGlyZWN0b3J5Ci8vLyBpbiBvcmRlciB0byBlbnN1cmUgdGhlIHByb2R1Y3Rpb24gYnVpbGQgdXNlcyB0aGUgZXhhY3Qgc2FtZSB2ZXJzaW9ucyBvZiBhbGwKLy8vIGRlcGVuZGVuY2llcy4KVm9pZENhbGxiYWNrIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgU3RyaW5nIHdvcmtzcGFjZVJvb3QsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCBwdWJzcGVjTG9ja0ZpbGUgPSBGaWxlKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuICgpIHt9OwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogICAgcmV0dXJuICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMubG9jaycpKS5kZWxldGUoKS5pZ25vcmUoKTsKICAgIH07CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsKICB9Cn0K", + "type": "text" + }, + { + "path": "lib/src/create_bundle.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTppby9pby5kYXJ0JyBzaG93IGNvcHlQYXRoOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTx2b2lkPiBjcmVhdGVCdW5kbGUoewogIHJlcXVpcmVkIEhvb2tDb250ZXh0IGNvbnRleHQsCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgaW8uRGlyZWN0b3J5IGJ1aWxkRGlyZWN0b3J5LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSBhc3luYyB7CiAgZmluYWwgZGFydEZyb2dEaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKTsKICBmaW5hbCBkYXJ0RnJvZ0RpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeShkYXJ0RnJvZ0RpcmVjdG9yeVBhdGgpOwogIGZpbmFsIGJ1bmRsaW5nUHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcygnQnVuZGxpbmcgc291cmNlcycpOwogIGZpbmFsIHRlbXBEaXJlY3RvcnkgPSBhd2FpdCBpby5EaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wKCk7CgogIGlmIChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCkpIHsKICAgIGF3YWl0IGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpOwogIH0KCiAgaWYgKGRhcnRGcm9nRGlyZWN0b3J5LmV4aXN0c1N5bmMoKSkgewogICAgYXdhaXQgZGFydEZyb2dEaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgfQoKICB0cnkgewogICAgYXdhaXQgY29weVBhdGgoCiAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgJyR7dGVtcERpcmVjdG9yeS5wYXRofSR7cGF0aC5zZXBhcmF0b3J9JywKICAgICk7CiAgICBidW5kbGluZ1Byb2dyZXNzLmNvbXBsZXRlKCk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBidW5kbGluZ1Byb2dyZXNzLmZhaWwoKTsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CiAgYXdhaXQgY29weVBhdGgodGVtcERpcmVjdG9yeS5wYXRoLCBidWlsZERpcmVjdG9yeS5wYXRoKTsKfQo=", + "type": "text" + }, + { + "path": "lib/src/create_external_packages_folder.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW87CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCi8vLyBTaWduYXR1cmUgb2YgW2lvLmNvcHlQYXRoXS4KdHlwZWRlZiBDb3B5UGF0aCA9IEZ1dHVyZTx2b2lkPiBGdW5jdGlvbihTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKTsKCkZ1dHVyZTxMaXN0PFN0cmluZz4+IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoewogIHJlcXVpcmVkIERpcmVjdG9yeSBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIERpcmVjdG9yeSBidWlsZERpcmVjdG9yeSwKICBDb3B5UGF0aCBjb3B5UGF0aCA9IGlvLmNvcHlQYXRoLAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soCiAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBwYXRoQ29udGV4dDogcGF0aC5jb250ZXh0LAogICk7CgogIGZpbmFsIGV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IHB1YnNwZWNMb2NrLnBhY2thZ2VzCiAgICAgIC5tYXAoCiAgICAgICAgKGRlcGVuZGVuY3kpIHsKICAgICAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICAgICAgaWYgKHBhdGhEZXNjcmlwdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICBmaW5hbCBpc0V4dGVybmFsID0gIXBhdGhSZXNvbHZlci5pc1dpdGhpbignJywgcGF0aERlc2NyaXB0aW9uLnBhdGgpOwogICAgICAgICAgaWYgKCFpc0V4dGVybmFsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgICByZXR1cm4gX0V4dGVybmFsUGF0aERlcGVuZGVuY3koCiAgICAgICAgICAgIG5hbWU6IGRlcGVuZGVuY3kubmFtZSwKICAgICAgICAgICAgcGF0aDogcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgcGF0aERlc2NyaXB0aW9uLnBhdGgpLAogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICApCiAgICAgIC53aGVyZVR5cGU8X0V4dGVybmFsUGF0aERlcGVuZGVuY3k+KCkKICAgICAgLnRvTGlzdCgpOwoKICBpZiAoZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLmlzRW1wdHkpIHJldHVybiBbXTsKCiAgZmluYWwgcGFja2FnZXNEaXJlY3RvcnkgPSBEaXJlY3RvcnkoCiAgICBwYXRoUmVzb2x2ZXIuam9pbigKICAgICAgYnVpbGREaXJlY3RvcnkucGF0aCwKICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgKSwKICApLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CgogIGZpbmFsIGNvcGllZEV4dGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IEZ1dHVyZS53YWl0KAogICAgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLm1hcCgKICAgICAgKGV4dGVybmFsUGF0aERlcGVuZGVuY3kpIGFzeW5jIHsKICAgICAgICBmaW5hbCBjb3B5ID0gYXdhaXQgZXh0ZXJuYWxQYXRoRGVwZW5kZW5jeS5jb3B5VG8oCiAgICAgICAgICBjb3B5UGF0aDogY29weVBhdGgsCiAgICAgICAgICB0YXJnZXREaXJlY3Rvcnk6IERpcmVjdG9yeSgKICAgICAgICAgICAgcGF0aFJlc29sdmVyLmpvaW4oCiAgICAgICAgICAgICAgcGFja2FnZXNEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgICBleHRlcm5hbFBhdGhEZXBlbmRlbmN5Lm5hbWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgICAgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKGNvcHkucGF0aCk7CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0sCiAgICApLAogICk7CgogIEZpbGUoCiAgICBwYXRoUmVzb2x2ZXIuam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoKJHtjb3BpZWRFeHRlcm5hbFBhdGhEZXBlbmRlbmNpZXMubWFwKAogICAgICAoZGVwZW5kZW5jeSkgewogICAgICAgIGZpbmFsIG5hbWUgPSBkZXBlbmRlbmN5Lm5hbWU7CiAgICAgICAgZmluYWwgcGF0aCA9CiAgICAgICAgICAgIHBhdGhSZXNvbHZlci5yZWxhdGl2ZShkZXBlbmRlbmN5LnBhdGgsIGZyb206IGJ1aWxkRGlyZWN0b3J5LnBhdGgpOwogICAgICAgIHJldHVybiAnICAkbmFtZTpcbiAgICBwYXRoOiAkcGF0aCc7CiAgICAgIH0sCiAgICApLmpvaW4oJ1xuJyl9CicnJywKICApOwoKICByZXR1cm4gY29waWVkRXh0ZXJuYWxQYXRoRGVwZW5kZW5jaWVzCiAgICAgIC5tYXAoKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kucGF0aCkKICAgICAgLnRvTGlzdCgpOwp9CgovLy8ge0B0ZW1wbGF0ZSBleHRlcm5hbF9wYXRoX2RlcGVuZGVuY3l9Ci8vLyBBIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCB3aXRoaW4gdGhlIGJ1bmRsZWQgRGFydCBGcm9nIHByb2plY3QKLy8vIGRpcmVjdG9yeS4KLy8vCi8vLyBGb3IgZXhhbXBsZToKLy8vIGBgYHlhbWwKLy8vIG5hbWU6IG15X2RhcnRfZnJvZ19wcm9qZWN0Ci8vLyBkZXBlbmRlbmNpZXM6Ci8vLyAgIG15X3BhY2thZ2U6Ci8vLyAgICAgcGF0aDogLi4vbXlfcGFja2FnZQovLy8gYGBgCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeSB7CiAgLy8vIHtAbWFjcm8gZXh0ZXJuYWxfcGF0aF9kZXBlbmRlbmN5fQogIGNvbnN0IF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KHsKICAgIHJlcXVpcmVkIHRoaXMubmFtZSwKICAgIHJlcXVpcmVkIHRoaXMucGF0aCwKICB9KTsKCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHBhY2thZ2UuCiAgZmluYWwgU3RyaW5nIHBhdGg7CgogIC8vLyBDb3BpZXMgdGhlIFtfRXh0ZXJuYWxQYXRoRGVwZW5kZW5jeV0gdG8gW3RhcmdldERpcmVjdG9yeV0uCiAgRnV0dXJlPF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5PiBjb3B5VG8oewogICAgcmVxdWlyZWQgRGlyZWN0b3J5IHRhcmdldERpcmVjdG9yeSwKICAgIENvcHlQYXRoIGNvcHlQYXRoID0gaW8uY29weVBhdGgsCiAgfSkgYXN5bmMgewogICAgYXdhaXQgY29weVBhdGgocGF0aCwgdGFyZ2V0RGlyZWN0b3J5LnBhdGgpOwogICAgcmV0dXJuIF9FeHRlcm5hbFBhdGhEZXBlbmRlbmN5KG5hbWU6IG5hbWUsIHBhdGg6IHRhcmdldERpcmVjdG9yeS5wYXRoKTsKICB9Cn0K", + "type": "text" + }, + { + "path": "lib/src/dart_pub_get.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCiAgU3RyaW5nIG1lc3NhZ2UgPSAnSW5zdGFsbGluZyBkZXBlbmRlbmNpZXMnLAp9KSBhc3luYyB7CiAgZmluYWwgcHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcyhtZXNzYWdlKTsKICB0cnkgewogICAgZmluYWwgcmVzdWx0ID0gYXdhaXQgcnVuUHJvY2VzcygKICAgICAgJ2RhcnQnLAogICAgICBbJ3B1YicsICdnZXQnXSwKICAgICAgd29ya2luZ0RpcmVjdG9yeTogd29ya2luZ0RpcmVjdG9yeSwKICAgICAgcnVuSW5TaGVsbDogdHJ1ZSwKICAgICk7CiAgICBwcm9ncmVzcy5jb21wbGV0ZSgpOwoKICAgIGlmIChyZXN1bHQuZXhpdENvZGUgIT0gMCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyR7cmVzdWx0LnN0ZGVycn0nKTsKICAgICAgcmV0dXJuIGV4aXQocmVzdWx0LmV4aXRDb2RlKTsKICAgIH0KICB9IG9uIGlvLlByb2Nlc3NFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoZXJyb3IubWVzc2FnZSk7CiAgICByZXR1cm4gZXhpdChlcnJvci5lcnJvckNvZGUpOwogIH0KfQo=", + "type": "text" + }, + { + "path": "lib/src/disable_workspace_resolution.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCcKICAgIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGFja2FnZV9jb25maWcvcGFja2FnZV9jb25maWdfdHlwZXMuZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnlhbWxfZWRpdC95YW1sX2VkaXQuZGFydCc7CgovLy8gT3B0cyBvdXQgb2YgZGFydCB3b3Jrc3BhY2VzIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXIgcGFja2FnZSBsb2NrZmlsZXMuCi8vLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NApWb2lkQ2FsbGJhY2sgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIHJlcXVpcmVkIFBhY2thZ2VDb25maWcgcGFja2FnZUNvbmZpZywKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAogIHJlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIFN0cmluZyB3b3Jrc3BhY2VSb290LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSB7CiAgZmluYWwgVm9pZENhbGxiYWNrIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwogIHRyeSB7CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcygKICAgICAgcHJvamVjdERpcmVjdG9yeSwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gKCkge307IC8vIG5vLW9wCiAgfQoKICB0cnkgewogICAgb3ZlcnJpZGVQYXRoRGVwZW5kZW5jaWVzSW5QdWJzcGVjT3ZlcnJpZGVzKAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uKCk7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KCiAgcmV0dXJuIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwp9CgovLy8gQWRkIHJlc29sdXRpb246bnVsbCB0byBwdWJzcGVjX292ZXJyaWRlcy55YW1sLgpWb2lkQ2FsbGJhY2sgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5KSB7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKCiAgaWYgKCFwdWJzcGVjT3ZlcnJpZGVzRmlsZS5leGlzdHNTeW5jKCkpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gcHVic3BlY092ZXJyaWRlc0ZpbGUuZGVsZXRlU3luYzsKICB9CgogIGZpbmFsIGNvbnRlbnRzID0gcHVic3BlY092ZXJyaWRlc0ZpbGUucmVhZEFzU3RyaW5nU3luYygpOwogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXMgPSBsb2FkWWFtbChjb250ZW50cykgYXMgWWFtbE1hcD87CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzID09IG51bGwpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwogIH0KCiAgaWYgKHB1YnNwZWNPdmVycmlkZXNbJ3Jlc29sdXRpb24nXSA9PSAnbnVsbCcpIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKCiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cykuLnVwZGF0ZShbJ3Jlc29sdXRpb24nXSwgbnVsbCk7CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwp9CgovLy8gQWRkIG92ZXJyaWRlcyBmb3IgYWxsIHBhdGggZGVwZW5kZW5jaWVzIHRvIGBwdWJzcGVjX292ZXJyaWRlcy55YW1sYAp2b2lkIG92ZXJyaWRlUGF0aERlcGVuZGVuY2llc0luUHVic3BlY092ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnLAogIHJlcXVpcmVkIFBhY2thZ2VHcmFwaCBwYWNrYWdlR3JhcGgsCn0pIHsKICBmaW5hbCBuYW1lID0gZ2V0UGFja2FnZU5hbWUocHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKG5hbWUgPT0gbnVsbCkgewogICAgdGhyb3cgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcGFyc2UgIm5hbWUiIGZyb20gcHVic3BlYy55YW1sJyk7CiAgfQoKICBmaW5hbCBwcm9kdWN0aW9uRGVwcyA9IGdldFByb2R1Y3Rpb25EZXBlbmRlbmNpZXMoCiAgICBwYWNrYWdlTmFtZTogbmFtZSwKICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICk7CgogIGZpbmFsIHBhdGhEZXBlbmRlbmNpZXMgPSBwYWNrYWdlQ29uZmlnLnBhY2thZ2VzLndoZXJlKAogICAgKHBhY2thZ2UpID0+IHBhY2thZ2UucmVsYXRpdmVSb290ICYmIHByb2R1Y3Rpb25EZXBzLmNvbnRhaW5zKHBhY2thZ2UubmFtZSksCiAgKTsKCiAgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcygKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBwYXRoRGVwZW5kZW5jaWVzOiBwYXRoRGVwZW5kZW5jaWVzLAogICk7Cn0KCnZvaWQgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgSXRlcmFibGU8UGFja2FnZT4gcGF0aERlcGVuZGVuY2llcywKfSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cykuLnVwZGF0ZShbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJ10sIHt9KTsKICBmb3IgKGZpbmFsIHBhY2thZ2UgaW4gcGF0aERlcGVuZGVuY2llcykgewogICAgZWRpdG9yLnVwZGF0ZSgKICAgICAgWydkZXBlbmRlbmN5X292ZXJyaWRlcycsIHBhY2thZ2UubmFtZV0sCiAgICAgIHsncGF0aCc6IHBhdGgucmVsYXRpdmUocGFja2FnZS5yb290LnBhdGgsIGZyb206IHByb2plY3REaXJlY3RvcnkpfSwKICAgICk7CiAgfQogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKfQoKLy8vIEV4dHJhY3QgdGhlIHBhY2thZ2UgbmFtZSBmcm9tIHRoZSBwdWJzcGVjLnlhbWwgaW4gW3Byb2plY3REaXJlY3RvcnldLgpTdHJpbmc/IGdldFBhY2thZ2VOYW1lKHtyZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeX0pIHsKICBmaW5hbCBwdWJzcGVjRmlsZSA9IEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjLnlhbWwnKSk7CiAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKSk7CiAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwoKICBmaW5hbCBuYW1lID0gcHVic3BlY1snbmFtZSddOwogIGlmIChuYW1lIGlzISBTdHJpbmcpIHJldHVybiBudWxsOwoKICByZXR1cm4gbmFtZTsKfQoKLy8vIEJ1aWxkIGEgY29tcGxldGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgKGRpcmVjdCBhbmQgdHJhbnNpdGl2ZSkuClNldDxTdHJpbmc+IGdldFByb2R1Y3Rpb25EZXBlbmRlbmNpZXMoewogIHJlcXVpcmVkIFN0cmluZyBwYWNrYWdlTmFtZSwKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAp9KSB7CiAgZmluYWwgZGVwZW5kZW5jaWVzID0gPFN0cmluZz57fTsKICBmaW5hbCByb290ID0gcGFja2FnZUdyYXBoLnJvb3RzLmZpcnN0V2hlcmUoKHJvb3QpID0+IHJvb3QgPT0gcGFja2FnZU5hbWUpOwogIGZpbmFsIHJvb3RQYWNrYWdlID0gcGFja2FnZUdyYXBoLnBhY2thZ2VzLmZpcnN0V2hlcmUoKHApID0+IHAubmFtZSA9PSByb290KTsKICBmaW5hbCBkZXBlbmRlbmNpZXNUb1Zpc2l0ID0gPFN0cmluZz5bLi4ucm9vdFBhY2thZ2UuZGVwZW5kZW5jaWVzXTsKCiAgZG8gewogICAgZmluYWwgZGlzY292ZXJlZERlcGVuZGVuY2llcyA9IDxTdHJpbmc+W107CiAgICBmb3IgKGZpbmFsIGRlcGVuZGVuY3lUb1Zpc2l0IGluIGRlcGVuZGVuY2llc1RvVmlzaXQpIHsKICAgICAgZmluYWwgcGFja2FnZSA9IHBhY2thZ2VHcmFwaC5wYWNrYWdlcy5maXJzdFdoZXJlKAogICAgICAgIChwKSA9PiBwLm5hbWUgPT0gZGVwZW5kZW5jeVRvVmlzaXQsCiAgICAgICk7CiAgICAgIGRlcGVuZGVuY2llcy5hZGQocGFja2FnZS5uYW1lKTsKICAgICAgZm9yIChmaW5hbCBwYWNrYWdlRGVwZW5kZW5jeSBpbiBwYWNrYWdlLmRlcGVuZGVuY2llcykgewogICAgICAgIC8vIEF2b2lkIGluZmluaXRlIGxvb3BzIGZyb20gZGVwZW5kZW5jeSBjeWNsZXMgKGNpcmN1bGFyIGRlcGVuZGVuY2llcykuCiAgICAgICAgaWYgKGRlcGVuZGVuY2llcy5jb250YWlucyhwYWNrYWdlRGVwZW5kZW5jeSkpIGNvbnRpbnVlOwogICAgICAgIGRpc2NvdmVyZWREZXBlbmRlbmNpZXMuYWRkKHBhY2thZ2VEZXBlbmRlbmN5KTsKICAgICAgfQogICAgfQogICAgZGVwZW5kZW5jaWVzVG9WaXNpdAogICAgICAuLmNsZWFyKCkKICAgICAgLi5hZGRBbGwoZGlzY292ZXJlZERlcGVuZGVuY2llcyk7CiAgfSB3aGlsZSAoZGVwZW5kZW5jaWVzVG9WaXNpdC5pc05vdEVtcHR5KTsKICByZXR1cm4gZGVwZW5kZW5jaWVzOwp9Cg==", + "type": "text" + }, + { + "path": "lib/src/exit_overrides.dart", + "data": + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmNvbnN0IF9hc3luY1J1blpvbmVkID0gcnVuWm9uZWQ7Cgp2b2lkIGRlZmF1bHRFeGl0KGludCBjb2RlKSA9PiBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ/LmV4aXQgPz8gaW8uZXhpdDsKCmFic3RyYWN0IGNsYXNzIEV4aXRPdmVycmlkZXMgewogIHN0YXRpYyBmaW5hbCBfdG9rZW4gPSBPYmplY3QoKTsKCiAgc3RhdGljIEV4aXRPdmVycmlkZXM/IGdldCBjdXJyZW50IHsKICAgIHJldHVybiBab25lLmN1cnJlbnRbX3Rva2VuXSBhcyBFeGl0T3ZlcnJpZGVzPzsKICB9CgogIHN0YXRpYyBSIHJ1blpvbmVkPFI+KFIgRnVuY3Rpb24oKSBib2R5LCB7dm9pZCBGdW5jdGlvbihpbnQpPyBleGl0fSkgewogICAgZmluYWwgb3ZlcnJpZGVzID0gX0V4aXRPdmVycmlkZXNTY29wZShleGl0KTsKICAgIHJldHVybiBfYXN5bmNSdW5ab25lZChib2R5LCB6b25lVmFsdWVzOiB7X3Rva2VuOiBvdmVycmlkZXN9KTsKICB9CgogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCA9PiBpby5leGl0Owp9CgpjbGFzcyBfRXhpdE92ZXJyaWRlc1Njb3BlIGV4dGVuZHMgRXhpdE92ZXJyaWRlcyB7CiAgX0V4aXRPdmVycmlkZXNTY29wZSh0aGlzLl9leGl0KTsKCiAgZmluYWwgRXhpdE92ZXJyaWRlcz8gX3ByZXZpb3VzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogIGZpbmFsIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKT8gX2V4aXQ7CgogIEBvdmVycmlkZQogIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBnZXQgZXhpdCB7CiAgICByZXR1cm4gX2V4aXQgPz8gX3ByZXZpb3VzPy5leGl0ID8/IHN1cGVyLmV4aXQ7CiAgfQp9Cg==", + "type": "text" + }, + { + "path": "lib/src/get_internal_path_dependencies.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=", + "type": "text" + }, + { + "path": "lib/src/get_package_config.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYWNrYWdlX2NvbmZpZy9wYWNrYWdlX2NvbmZpZ190eXBlcy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKUGFja2FnZUNvbmZpZz8gZ2V0UGFja2FnZUNvbmZpZygKICBTdHJpbmcgd29ya3NwYWNlUm9vdCwgewogIHBhdGguQ29udGV4dD8gcGF0aENvbnRleHQsCn0pIHsKICBmaW5hbCBwYXRoUmVzb2x2ZXIgPSBwYXRoQ29udGV4dCA/PyBwYXRoLmNvbnRleHQ7CiAgZmluYWwgcGFja2FnZUNvbmZpZ0ZpbGUgPSBGaWxlKAogICAgcGF0aFJlc29sdmVyLmpvaW4od29ya3NwYWNlUm9vdCwgJy5kYXJ0X3Rvb2wvcGFja2FnZV9jb25maWcuanNvbicpLAogICk7CiAgaWYgKCFwYWNrYWdlQ29uZmlnRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwoKICB0cnkgewogICAgZmluYWwgY29udGVudCA9IHBhY2thZ2VDb25maWdGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICAgIHJldHVybiBQYWNrYWdlQ29uZmlnLnBhcnNlU3RyaW5nKGNvbnRlbnQsIHBhY2thZ2VDb25maWdGaWxlLnVyaSk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==", + "type": "text" + }, + { + "path": "lib/src/get_package_graph.dart", + "data": + "aW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CgpQYWNrYWdlR3JhcGg/IGdldFBhY2thZ2VHcmFwaChTdHJpbmcgd29ya3NwYWNlUm9vdCkgewogIHRyeSB7CiAgICByZXR1cm4gUGFja2FnZUdyYXBoLmxvYWQod29ya3NwYWNlUm9vdCk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==", + "type": "text" + }, + { + "path": "lib/src/get_pubspec_lock.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=", + "type": "text" + }, + { + "path": "lib/src/get_workspace_root.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKCi8vLyBSZXR1cm5zIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgbmVhcmVzdCBEYXJ0IHdvcmtzcGFjZS4KRGlyZWN0b3J5PyBnZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==", + "type": "text" + }, + { + "path": "lib/src/package_graph/package_graph.dart", + "data": + "aW1wb3J0ICdkYXJ0OmNvbnZlcnQnOwppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmpzb25fYW5ub3RhdGlvbi9qc29uX2Fubm90YXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCnBhcnQgJ3BhY2thZ2VfZ3JhcGguZy5kYXJ0JzsKCkBKc29uU2VyaWFsaXphYmxlKCkKY2xhc3MgUGFja2FnZUdyYXBoIHsKICBjb25zdCBQYWNrYWdlR3JhcGgoewogICAgcmVxdWlyZWQgdGhpcy5yb290cywKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgICByZXF1aXJlZCB0aGlzLmNvbmZpZ1ZlcnNpb24sCiAgfSk7CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmxvYWQoU3RyaW5nIHByb2plY3QpIHsKICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihwcm9qZWN0LCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2dyYXBoLmpzb24nKSk7CiAgICBpZiAoIWZpbGUuZXhpc3RzU3luYygpKSB0aHJvdyBFeGNlcHRpb24oJyR7ZmlsZS5wYXRofSBub3QgZm91bmQnKTsKICAgIHJldHVybiBQYWNrYWdlR3JhcGguZnJvbUpzb24oCiAgICAgIGpzb25EZWNvZGUoZmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpIGFzIE1hcDxTdHJpbmcsIGR5bmFtaWM+LAogICAgKTsKICB9CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oanNvbik7CgogIGZpbmFsIExpc3Q8U3RyaW5nPiByb290czsKICBmaW5hbCBMaXN0PFBhY2thZ2U+IHBhY2thZ2VzOwogIGZpbmFsIGludCBjb25maWdWZXJzaW9uOwp9CgpASnNvblNlcmlhbGl6YWJsZSgpCmNsYXNzIFBhY2thZ2UgewogIGNvbnN0IFBhY2thZ2UoewogICAgcmVxdWlyZWQgdGhpcy5uYW1lLAogICAgcmVxdWlyZWQgdGhpcy52ZXJzaW9uLAogICAgcmVxdWlyZWQgdGhpcy5kZXBlbmRlbmNpZXMsCiAgICByZXF1aXJlZCB0aGlzLmRldkRlcGVuZGVuY2llcywKICB9KTsKCiAgZmFjdG9yeSBQYWNrYWdlLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUZyb21Kc29uKGpzb24pOwoKICBmaW5hbCBTdHJpbmcgbmFtZTsKICBmaW5hbCBTdHJpbmcgdmVyc2lvbjsKCiAgQEpzb25LZXkoZGVmYXVsdFZhbHVlOiA8U3RyaW5nPltdKQogIGZpbmFsIExpc3Q8U3RyaW5nPiBkZXBlbmRlbmNpZXM7CgogIEBKc29uS2V5KGRlZmF1bHRWYWx1ZTogPFN0cmluZz5bXSkKICBmaW5hbCBMaXN0PFN0cmluZz4gZGV2RGVwZW5kZW5jaWVzOwp9Cg==", + "type": "text" + }, + { + "path": "lib/src/package_graph/package_graph.g.dart", + "data": + "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogaW1wbGljaXRfZHluYW1pY19wYXJhbWV0ZXIKCnBhcnQgb2YgJ3BhY2thZ2VfZ3JhcGguZGFydCc7CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBKc29uU2VyaWFsaXphYmxlR2VuZXJhdG9yCi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpQYWNrYWdlR3JhcGggXyRQYWNrYWdlR3JhcGhGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2VHcmFwaCcsIGpzb24sICgkY2hlY2tlZENvbnZlcnQpIHsKICAgICAgZmluYWwgdmFsID0gUGFja2FnZUdyYXBoKAogICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAncm9vdHMnLAogICAgICAgICAgKHYpID0+ICh2IGFzIExpc3Q8ZHluYW1pYz4pLm1hcCgoZSkgPT4gZSBhcyBTdHJpbmcpLnRvTGlzdCgpLAogICAgICAgICksCiAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdwYWNrYWdlcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikKICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgIC50b0xpc3QoKSwKICAgICAgICApLAogICAgICAgIGNvbmZpZ1ZlcnNpb246ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdjb25maWdWZXJzaW9uJywKICAgICAgICAgICh2KSA9PiAodiBhcyBudW0pLnRvSW50KCksCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgcmV0dXJuIHZhbDsKICAgIH0pOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2UnLCBqc29uLCAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2UoCiAgICAgICAgbmFtZTogJGNoZWNrZWRDb252ZXJ0KCduYW1lJywgKHYpID0+IHYgYXMgU3RyaW5nKSwKICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgIGRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICAgIGRldkRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICApOwogICAgICByZXR1cm4gdmFsOwogICAgfSk7Cg==", + "type": "text" + }, + { + "path": "lib/src/pubspec_lock/pubspec_lock.dart", + "data": + "aW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nOwoKaW1wb3J0ICdwYWNrYWdlOmVxdWF0YWJsZS9lcXVhdGFibGUuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfcGFyc2VfZXhjZXB0aW9ufQovLy8gVGhyb3duIHdoZW4gYSBbUHVic3BlY0xvY2tdIGZhaWxzIHRvIHBhcnNlLgovLy8ge0BlbmR0ZW1wbGF0ZX0KY2xhc3MgUHVic3BlY0xvY2tQYXJzZUV4Y2VwdGlvbiBpbXBsZW1lbnRzIEV4Y2VwdGlvbiB7CiAgLy8vIHtAbWFjcm8gcHVic3BlY19sb2NrX3BhcnNlX2V4Y2VwdGlvbn0KICBjb25zdCBQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uKCk7Cn0KCi8vLyBBIHJlcHJlc2VudGF0aW9uIG9mIGEgcHVic3BlYy5sb2NrIGZpbGUuCmNsYXNzIFB1YnNwZWNMb2NrIHsKICBjb25zdCBQdWJzcGVjTG9jay5fKHsKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgfSk7CgogIC8vLyBQYXJzZXMgYSBbUHVic3BlY0xvY2tdIGZyb20gYSBzdHJpbmcuCiAgLy8vCiAgLy8vIElmIG5vIHBhY2thZ2VzIGFyZSBmb3VuZCwgYW4gZW1wdHkgW1B1YnNwZWNMb2NrXSBpcyByZXR1cm5lZC4gVGhvc2UKICAvLy8gcGFja2FnZXMgZW50cmllcyB0aGF0IGNhbm5vdCBiZSBwYXJzZWQgYXJlIGlnbm9yZWQuCiAgLy8vCiAgLy8vIEl0IHRocm93cyBhIFtQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uXSBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQKICAvLy8gYXMgYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKFN0cmluZyBjb250ZW50KSB7CiAgICBsYXRlIGZpbmFsIFlhbWxNYXAgeWFtbDsKICAgIHRyeSB7CiAgICAgIHlhbWwgPSBsb2FkWWFtbChjb250ZW50KSBhcyBZYW1sTWFwOwogICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAvLyBpZ25vcmU6IGF2b2lkX2NhdGNoZXNfd2l0aG91dF9vbl9jbGF1c2VzCiAgICB9IGNhdGNoIChfKSB7CiAgICAgIHRocm93IGNvbnN0IFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24oKTsKICAgIH0KCiAgICBpZiAoIXlhbWwuY29udGFpbnNLZXkoJ3BhY2thZ2VzJykpIHsKICAgICAgcmV0dXJuIFB1YnNwZWNMb2NrLmVtcHR5OwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VzID0geWFtbFsncGFja2FnZXMnXSBhcyBZYW1sTWFwOwoKICAgIGZpbmFsIHBhcnNlZFBhY2thZ2VzID0gPFB1YnNwZWNMb2NrUGFja2FnZT5bXTsKICAgIGZvciAoZmluYWwgZW50cnkgaW4gcGFja2FnZXMuZW50cmllcykgewogICAgICB0cnkgewogICAgICAgIGZpbmFsIHBhY2thZ2UgPSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoCiAgICAgICAgICBuYW1lOiBlbnRyeS5rZXkgYXMgU3RyaW5nLAogICAgICAgICAgZGF0YTogZW50cnkudmFsdWUgYXMgWWFtbE1hcCwKICAgICAgICApOwogICAgICAgIHBhcnNlZFBhY2thZ2VzLmFkZChwYWNrYWdlKTsKICAgICAgICAvLyBpZ25vcmluZyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIC8vIGlnbm9yZTogYXZvaWRfY2F0Y2hlc193aXRob3V0X29uX2NsYXVzZXMKICAgICAgfSBjYXRjaCAoXykgewogICAgICAgIC8vIElnbm9yZSB0aG9zZSBwYWNrYWdlcyB0aGF0IGZvciBzb21lIHJlYXNvbiBjYW5ub3QgYmUgcGFyc2VkLgogICAgICB9CiAgICB9CgogICAgcmV0dXJuIFB1YnNwZWNMb2NrLl8oCiAgICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhwYXJzZWRQYWNrYWdlcyksCiAgICApOwogIH0KCiAgLy8vIEFuIGVtcHR5IFtQdWJzcGVjTG9ja10uCiAgc3RhdGljIFB1YnNwZWNMb2NrIGVtcHR5ID0gUHVic3BlY0xvY2suXygKICAgIHBhY2thZ2VzOiBVbm1vZGlmaWFibGVMaXN0VmlldyhbXSksCiAgKTsKCiAgLy8vIEFsbCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBVbm1vZGlmaWFibGVMaXN0VmlldzxQdWJzcGVjTG9ja1BhY2thZ2U+IHBhY2thZ2VzOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeX0KLy8vIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjTG9ja1BhY2thZ2UgZXh0ZW5kcyBFcXVhdGFibGUgewogIC8vLyB7QG1hY3JvIHB1YnNwZWNfbG9ja19kZXBlbmRlbmN5fQogIGNvbnN0IFB1YnNwZWNMb2NrUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnR5cGUsCiAgICB0aGlzLnBhdGhEZXNjcmlwdGlvbiwKICB9KTsKCiAgLy8vIFBhcnNlcyBhIFtQdWJzcGVjTG9ja1BhY2thZ2VdIGZyb20gYSBbWWFtbE1hcF0uCiAgZmFjdG9yeSBQdWJzcGVjTG9ja1BhY2thZ2UuZnJvbVlhbWxNYXAoewogICAgcmVxdWlyZWQgU3RyaW5nIG5hbWUsCiAgICByZXF1aXJlZCBZYW1sTWFwIGRhdGEsCiAgfSkgewogICAgZmluYWwgZGVwZW5kZW5jeSA9IGRhdGFbJ2RlcGVuZGVuY3knXSBhcyBTdHJpbmc7CiAgICBmaW5hbCBkZXBlbmRlbmN5VHlwZSA9IFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnBhcnNlKGRlcGVuZGVuY3kpOwoKICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gZGF0YVsnZGVzY3JpcHRpb24nXSBhcyBZYW1sTWFwPzsKICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICE9IG51bGwKICAgICAgICA/IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRlc2NyaXB0aW9uKQogICAgICAgIDogbnVsbDsKCiAgICByZXR1cm4gUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICBuYW1lOiBuYW1lLAogICAgICB0eXBlOiBkZXBlbmRlbmN5VHlwZSwKICAgICAgcGF0aERlc2NyaXB0aW9uOiBwYXRoRGVzY3JpcHRpb24sCiAgICApOwogIH0KCiAgLy8vIFRoZSBuYW1lIG9mIHRoZSBkZXBlbmRlbmN5LgogIGZpbmFsIFN0cmluZyBuYW1lOwoKICAvLy8ge0BtYWNybyBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQogIGZpbmFsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHR5cGU7CgogIC8vLyB7QG1hY3JvIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQogIGZpbmFsIFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPyBwYXRoRGVzY3JpcHRpb247CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtuYW1lLCB0eXBlLCBwYXRoRGVzY3JpcHRpb25dOwp9CgovLy8ge0B0ZW1wbGF0ZSBwdWJzcGVjX2xvY2tfZGVwZW5kZW5jeV90eXBlfQovLy8gVGhlIHR5cGUgb2YgYSBbUHVic3BlY0xvY2tQYWNrYWdlXS4KLy8vIHtAZW5kdGVtcGxhdGV9CmVudW0gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUgewogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgdG8gd29yay4KICAvLy8KICAvLy8gU2VlIGFsc286CiAgLy8vCiAgLy8vICogW0RhcnQncyBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcykKICBkaXJlY3RNYWluLl8oJ2RpcmVjdCBtYWluJyksCgogIC8vLyBBbm90aGVyIHBhY2thZ2UgdGhhdCB5b3VyIHBhY2thZ2UgbmVlZHMgZHVyaW5nIGRldmVsb3BtZW50LgogIC8vLwogIC8vLyBTZWUgYWxzbzoKICAvLy8KICAvLy8gKiBbRGFydCdzIGRldmVsb3BlciBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2RlcGVuZGVuY2llcyNkZXYtZGVwZW5kZW5jaWVzKQogIGRpcmVjdERldi5fKCdkaXJlY3QgZGV2JyksCgogIC8vLyBBIGRlcGVuZGVuY3kgdGhhdCB5b3VyIHBhY2thZ2UgaW5kaXJlY3RseSB1c2VzIGJlY2F1c2Ugb25lIG9mIGl0cwogIC8vLyBkZXBlbmRlbmNpZXMgcmVxdWlyZXMgaXQuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I3RyYW5zaXRpdmUtKQogIHRyYW5zaXRpdmUuXygndHJhbnNpdGl2ZScpLAoKICAvLy8gIEEgZGVwZW5kZW5jeSB0aGF0IHlvdXIgcGFja2FnZSBvdmVycmlkZXMgdGhhdCBpcyBub3QgYWxyZWFkeSBhCiAgLy8vIGBkaXJlY3QgbWFpbmAgb3IgYGRpcmVjdCBkZXZgIGRlcGVuZGVuY3kuCiAgLy8vCiAgLy8vIFNlZSBhbHNvOgogIC8vLwogIC8vLyAqIFtEYXJ0J3MgZGVwZW5kZW5jeSBvdmVycmlkZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9kZXBlbmRlbmNpZXMjZGVwZW5kZW5jeS1vdmVycmlkZXMpCiAgZGlyZWN0T3ZlcnJpZGRlbi5fKCdkaXJlY3Qgb3ZlcnJpZGRlbicpOwoKICBjb25zdCBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5fKHRoaXMudmFsdWUpOwoKICAvLy8gUGFyc2VzIGEgW1B1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlXSBmcm9tIGEgc3RyaW5nLgogIC8vLwogIC8vLyBUaHJvd3MgYW4gW0FyZ3VtZW50RXJyb3JdIGlmIHRoZSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgZGVwZW5kZW5jeSB0eXBlLgogIGZhY3RvcnkgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoU3RyaW5nIHZhbHVlKSB7CiAgICBpZiAoX3ZhbHVlTWFwLmNvbnRhaW5zS2V5KHZhbHVlKSkgewogICAgICByZXR1cm4gX3ZhbHVlTWFwW3ZhbHVlXSE7CiAgICB9CgogICAgdGhyb3cgQXJndW1lbnRFcnJvci52YWx1ZSgKICAgICAgdmFsdWUsCiAgICAgICd2YWx1ZScsCiAgICAgICdJbnZhbGlkIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlIHZhbHVlLicsCiAgICApOwogIH0KCiAgc3RhdGljIE1hcDxTdHJpbmcsIFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlPiBfdmFsdWVNYXAgPSB7CiAgICBmb3IgKGZpbmFsIHR5cGUgaW4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudmFsdWVzKQogICAgICB0eXBlLnZhbHVlOiB0eXBlLAogIH07CgogIC8vLyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBbUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGVdCiAgLy8vIGFzIGl0IGFwcGVhcnMgaW4gYSBwdWJzcGVjLmxvY2sgZmlsZS4KICBmaW5hbCBTdHJpbmcgdmFsdWU7Cn0KCi8vLyB7QHRlbXBsYXRlIHB1YnNwZWNfcGFja2FnZV9wYXRoX2Rlc2NyaXB0aW9ufQovLy8gVGhlIGRlc2NyaXB0aW9uIG9mIGEgcGF0aCBkZXBlbmRlbmN5IGluIGEgcHVic3BlYy5sb2NrIGZpbGUuCi8vLwovLy8gRm9yIGV4YW1wbGUsIGluOgovLy8gYGBgeWFtbAovLy8gbXlfcGFja2FnZToKLy8vICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgovLy8gICBkZXNjcmlwdGlvbjoKLy8vICAgICBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vICAgICByZWxhdGl2ZTogdHJ1ZQovLy8gICBzb3VyY2U6IHBhdGgKLy8vICAgdmVyc2lvbjogIjEuMC4wKzEiCi8vLyBgYGAKLy8vCi8vLyBUaGUgZGVzY3JpcHRpb24gaXM6Ci8vLyBgYGB5YW1sCi8vLyBwYXRoOiAicGFja2FnZXMvbXlfcGFja2FnZSIKLy8vIHJlbGF0aXZlOiB0cnVlCi8vLyBgYGAKLy8vCi8vLyBTZWUgYWxzbzoKLy8vCi8vLyAqIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZV0sIHdoaWNoIGF0dGVtcHRzIHRvIHBhcnNlcyBhCi8vLyBbWWFtbE1hcF0gaW50byBhIFtQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbl0uCi8vLyB7QGVuZHRlbXBsYXRlfQpjbGFzcyBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbiBleHRlbmRzIEVxdWF0YWJsZSB7CiAgY29uc3QgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oewogICAgcmVxdWlyZWQgdGhpcy5wYXRoLAogICAgcmVxdWlyZWQgdGhpcy5yZWxhdGl2ZSwKICB9KTsKCiAgLy8vIEF0dGVtcHRzIHRvIHBhcnNlIGEgW1lhbWxNYXBdIGludG8gYSBbUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb25dLgogIC8vLwogIC8vLyBSZXR1cm5zIGBudWxsYCBpZiB0aGUgW1lhbWxNYXBdIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEKICAvLy8gdG8gY3JlYXRlIGEgW1B1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uXS4KICBzdGF0aWMgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24/IHRyeVBhcnNlKFlhbWxNYXAgZGF0YSkgewogICAgaWYgKCghZGF0YS5jb250YWluc0tleSgncGF0aCcpIHx8IGRhdGFbJ3BhdGgnXSBpcyEgU3RyaW5nKSB8fAogICAgICAgICghZGF0YS5jb250YWluc0tleSgncmVsYXRpdmUnKSB8fCBkYXRhWydyZWxhdGl2ZSddIGlzISBib29sKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmaW5hbCBwYXRoID0gZGF0YVsncGF0aCddIGFzIFN0cmluZzsKICAgIGZpbmFsIHJlbGF0aXZlID0gZGF0YVsncmVsYXRpdmUnXSBhcyBib29sOwoKICAgIHJldHVybiBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgcGF0aDogcGF0aCwKICAgICAgcmVsYXRpdmU6IHJlbGF0aXZlLAogICAgKTsKICB9CgogIGZpbmFsIFN0cmluZyBwYXRoOwogIGZpbmFsIGJvb2wgcmVsYXRpdmU7CgogIEBvdmVycmlkZQogIExpc3Q8T2JqZWN0Pz4gZ2V0IHByb3BzID0+IFtwYXRoLCByZWxhdGl2ZV07Cn0K", + "type": "text" + }, + { + "path": "lib/src/uses_workspace_resolution.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9qZWN0IGluIHRoZSBwcm92aWRlZCBbd29ya2luZ0RpcmVjdG9yeV0KLy8vIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGByZXNvbHV0aW9uOiB3b3Jrc3BhY2VgLgpib29sIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBpZiAoIXB1YnNwZWNGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuIGZhbHNlOwoKICBmaW5hbCBZYW1sTWFwIHB1YnNwZWM7CiAgdHJ5IHsKICAgIGZpbmFsIHlhbWwgPSBsb2FkWWFtbChwdWJzcGVjRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKICAgICAgdGhyb3cgRXhjZXB0aW9uKCdVbmFibGUgdG8gcGFyc2UgJHtwdWJzcGVjRmlsZS5wYXRofScpOwogICAgfQogICAgcHVic3BlYyA9IHlhbWw7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gcHVic3BlY1sncmVzb2x1dGlvbiddID09ICd3b3Jrc3BhY2UnOwp9Cg==", + "type": "text" + }, + { + "path": "post_gen.dart", + "data": + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgc2hvdyBIb29rQ29udGV4dCwgbGlnaHRDeWFuOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHBvc3RHZW4oY29udGV4dCk7CgpGdXR1cmU8dm9pZD4gcG9zdEdlbigKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgaW8uRGlyZWN0b3J5PyBkaXJlY3RvcnksCiAgUHJvY2Vzc1J1bm5lciBydW5Qcm9jZXNzID0gaW8uUHJvY2Vzcy5ydW4sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgYnVpbGREaXJlY3RvcnlQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyk7CgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgd29ya2luZ0RpcmVjdG9yeTogYnVpbGREaXJlY3RvcnlQYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgcmVsYXRpdmVCdWlsZFBhdGggPSBwYXRoLnJlbGF0aXZlKGJ1aWxkRGlyZWN0b3J5UGF0aCk7CiAgY29udGV4dC5sb2dnZXIKICAgIC4uaW5mbygnJykKICAgIC4uc3VjY2VzcygnQ3JlYXRlZCBhIHByb2R1Y3Rpb24gYnVpbGQhJykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygnU3RhcnQgdGhlIHByb2R1Y3Rpb24gc2VydmVyIGJ5IHJ1bm5pbmc6JykKICAgIC4uaW5mbygnJykKICAgIC4uaW5mbygKICAgICAgJycnJHtsaWdodEN5YW4ud3JhcCgnZGFydCAke3BhdGguam9pbihyZWxhdGl2ZUJ1aWxkUGF0aCwgJ2JpbicsICdzZXJ2ZXIuZGFydCcpfScpfScnJywKICAgICk7Cn0K", + "type": "text" + }, + { + "path": "pre_gen.dart", + "data": + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICRwcm9qZWN0RGlyZWN0b3J5JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHBhY2thZ2VfY29uZmlnLmpzb24gaXMgdXAgdG8gZGF0ZS4KICAgIGF3YWl0IGRhcnRQdWJHZXQoCiAgICAgIGNvbnRleHQsCiAgICAgIG1lc3NhZ2U6ICdHZW5lcmF0aW5nIHBhY2thZ2UgZ3JhcGgnLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIHJ1blByb2Nlc3M6IHJ1blByb2Nlc3MsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwoKICAgIGZpbmFsIHBhY2thZ2VDb25maWcgPSBnZXRQYWNrYWdlQ29uZmlnKHdvcmtzcGFjZVJvb3QucGF0aCk7CiAgICBpZiAocGFja2FnZUNvbmZpZyA9PSBudWxsKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnVW5hYmxlIHRvIGZpbmQgcGFja2FnZV9jb25maWcuanNvbiBmb3IgJHt3b3Jrc3BhY2VSb290LnBhdGh9JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgZmluYWwgcGFja2FnZUdyYXBoID0gZ2V0UGFja2FnZUdyYXBoKHdvcmtzcGFjZVJvb3QucGF0aCk7CiAgICBpZiAocGFja2FnZUdyYXBoID09IG51bGwpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICdVbmFibGUgdG8gZmluZCBwYWNrYWdlX2dyYXBoLmpzb24gZm9yICR7d29ya3NwYWNlUm9vdC5wYXRofScsCiAgICAgICk7CiAgICAgIHJldHVybiBleGl0KDEpOwogICAgfQoKICAgIC8vIERpc2FibGUgd29ya3NwYWNlIHJlc29sdXRpb24gdW50aWwgd2UgY2FuIGdlbmVyYXRlIHBlci1wYWNrYWdlIGxvY2tmaWxlcy4KICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy80NTk0CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICBjb250ZXh0LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICB3b3Jrc3BhY2VSb290OiB3b3Jrc3BhY2VSb290LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogICAgLy8gQ29weSB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IHRvIGVuc3VyZSB0aGUgc2FtZSB2ZXJzaW9ucwogICAgLy8gb2YgZGVwZW5kZW5jaWVzIGFyZSB1c2VkIGluIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLgogICAgcmV2ZXJ0UHVic3BlY0xvY2sgPSBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgd29ya3NwYWNlUm9vdDogd29ya3NwYWNlUm9vdC5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICB9CgogIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHB1YnNwZWMubG9jayBmaWxlIGlzIHVwIHRvIGRhdGUuCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICBtZXNzYWdlOiAnVXBkYXRpbmcgbG9ja2ZpbGUnLAogICAgd29ya2luZ0RpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgYnVpbGREaXJlY3RvcnkgPSBpby5EaXJlY3RvcnkoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSwKICApOwoKICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICBjb250ZXh0OiBjb250ZXh0LAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24/LmNhbGwoKTsKCiAgZmluYWwgUm91dGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CiAgdHJ5IHsKICAgIGNvbmZpZ3VyYXRpb24gPSBidWlsZENvbmZpZ3VyYXRpb24ocHJvamVjdERpcmVjdG9yeSk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgcmV0dXJuIGV4aXQoMSk7CiAgfQoKICByZXBvcnRSb3V0ZUNvbmZsaWN0cygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvdXRlQ29uZmxpY3Q6ICgKICAgICAgb3JpZ2luYWxGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdFbmRwb2ludCwKICAgICkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm91dGUgY29uZmxpY3QgZGV0ZWN0ZWQuICR7bGlnaHRDeWFuLndyYXAob3JpZ2luYWxGaWxlUGF0aCl9IGFuZCAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRmlsZVBhdGgpfSBib3RoIHJlc29sdmUgdG8gJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0VuZHBvaW50KX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIHJlcG9ydFJvZ3VlUm91dGVzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm9ndWVSb3V0ZTogKGZpbGVQYXRoLCBpZGVhbFBhdGgpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKGZpbGVQYXRoKX0gdG8gJHtsaWdodEN5YW4ud3JhcChpZGVhbFBhdGgpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIHJldmVydFB1YnNwZWNMb2NrPy5jYWxsKCk7CgogIGZpbmFsIGN1c3RvbURvY2tlckZpbGUgPSBpby5GaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ0RvY2tlcmZpbGUnKSwKICApOwogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K", + "type": "text" + }, + { + "path": "pubspec.yaml", + "data": + "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIGpzb25fYW5ub3RhdGlvbjogXjQuOS4wCiAgbWFzb246IF4wLjEuMAogIHBhY2thZ2VfY29uZmlnOiBeMi4yLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBidWlsZF9ydW5uZXI6IF4yLjguMAogIGpzb25fc2VyaWFsaXphYmxlOiBeNi4xMS4xCiAgbW9ja3RhaWw6IF4xLjAuMAogIHRlc3Q6IF4xLjI1LjAK", + "type": "text" + }, + { + "path": "test/post_gen_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgRXhpdENvZGUsIEhvb2tDb250ZXh0LCBMb2dnZXIsIFByb2dyZXNzLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wb3N0X2dlbi5kYXJ0JyBhcyBwb3N0X2dlbjsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwb3N0R2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW4gY29tcGxldGVzJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpID0+IHBvc3RfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdydW5zIGRhcnQgcHViIGdldCBhbmQgb3V0cHV0cyBuZXh0IHN0ZXBzJywgKCkgYXN5bmMgewogICAgICB2YXIgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCA9IDA7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CgogICAgICBhd2FpdCBwb3N0X2dlbi5wb3N0R2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcnVuUHJvY2VzczogKAogICAgICAgICAgZXhlY3V0YWJsZSwKICAgICAgICAgIGFyZ3MsIHsKICAgICAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICAgICAgfSkgYXN5bmMgewogICAgICAgICAgcHJvY2Vzc1J1bm5lckNhbGxDb3VudCsrOwogICAgICAgICAgZXhwZWN0KGV4ZWN1dGFibGUsIGVxdWFscygnZGFydCcpKTsKICAgICAgICAgIGV4cGVjdChhcmdzLCBlcXVhbHMoWydwdWInLCAnZ2V0J10pKTsKICAgICAgICAgIGV4cGVjdCgKICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgICAgZXF1YWxzKHBhdGguam9pbihEaXJlY3RvcnkuY3VycmVudC5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgICApOwogICAgICAgICAgZXhwZWN0KHJ1bkluU2hlbGwsIGlzVHJ1ZSk7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChwcm9jZXNzUnVubmVyQ2FsbENvdW50LCBlcXVhbHMoMSkpOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIGEgcHJvZHVjdGlvbiBidWlsZCEnKSkuY2FsbGVkKDEpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmluZm8oJ1N0YXJ0IHRoZSBwcm9kdWN0aW9uIHNlcnZlciBieSBydW5uaW5nOicpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5pbmZvKCcke2xpZ2h0Q3lhbi53cmFwKCdkYXJ0IGJ1aWxkL2Jpbi9zZXJ2ZXIuZGFydCcpfScpLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "test/pre_gen_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "test/pubspec_locks.dart", + "data": + "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=", + "type": "text" + }, + { + "path": "test/pubspecs.dart", + "data": + "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK", + "type": "text" + }, + { + "path": "test/src/copy_workspace_pubspec_lock_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==", + "type": "text" + }, + { + "path": "test/src/create_bundle_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcgaGlkZSBjcmVhdGVCdW5kbGU7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1Byb2dyZXNzIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIFByb2dyZXNzIHt9CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUJ1bmRsZScsICgpIHsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGNvbnRleHQgPSBfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKTsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidW5kbGluZyB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgICAgICBjb250ZXh0OiBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyJyksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeSgnL2ludmFsaWQvZGlyL2J1aWxkJyksCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpLmNhbGxlZCgxKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90IHRocm93IHdoZW4gYnVuZGxpbmcgc3VjY2VlZHMnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBmaW5hbCBkb3REYXJ0RnJvZ0RpciA9CiAgICAgICAgICBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJy5kYXJ0X2Zyb2cnKSkKICAgICAgICAgICAgLi5jcmVhdGVTeW5jKCk7CiAgICAgIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0KICAgICAgICAgIERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSkuLmNyZWF0ZVN5bmMoKTsKICAgICAgZmluYWwgb2xkQnVpbGRBcnRpZmFjdCA9CiAgICAgICAgICBGaWxlKHBhdGguam9pbihidWlsZERpcmVjdG9yeS5wYXRoLCAnYXJ0aWZhY3QudHh0JykpLi5jcmVhdGVTeW5jKCk7CgogICAgICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICAgICAgY29udGV4dDogY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwoKICAgICAgZXhwZWN0KGRvdERhcnRGcm9nRGlyLmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChidWlsZERpcmVjdG9yeS5leGlzdHNTeW5jKCksIGlzVHJ1ZSk7CiAgICAgIGV4cGVjdChvbGRCdWlsZEFydGlmYWN0LmV4aXN0c1N5bmMoKSwgaXNGYWxzZSk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICB9KTsKICB9KTsKfQo=", + "type": "text" + }, + { + "path": "test/src/create_external_packages_folder_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7CgppbXBvcnQgJy4uL3B1YnNwZWNfbG9ja3MuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXInLCAoKSB7CiAgICB0ZXN0KCdidW5kbGVzIGV4dGVybmFsIGRlcGVuZGVuY2llcyB3aXRoIGV4dGVybmFsIGRlcGVuZGVuY2llcycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKQogICAgICAgICAgLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBjb3B5Q2FsbHMgPSA8U3RyaW5nPltdOwoKICAgICAgYXdhaXQgY3JlYXRlRXh0ZXJuYWxQYWNrYWdlc0ZvbGRlcigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICAgIGJ1aWxkRGlyZWN0b3J5OiBEaXJlY3RvcnkocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJykpLAogICAgICAgIGNvcHlQYXRoOiAoZnJvbSwgdG8pIGFzeW5jIHsKICAgICAgICAgIGNvcHlDYWxscy5hZGQoJyRmcm9tIC0+ICR0bycpOwogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnkgPSBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnLi4vLi4vZm9vJyk7CiAgICAgIGZpbmFsIGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQgPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwoKICAgICAgZmluYWwgc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSA9IHBhdGguam9pbigKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgJy4uLy4uL2ZvbzInLAogICAgICApOwogICAgICBmaW5hbCBzZWNvbmRGb29QYWNrYWdlRGlyZWN0b3J5VGFyZ2V0ID0gcGF0aC5qb2luKAogICAgICAgIHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAnYnVpbGQnLAogICAgICAgICcuZGFydF9mcm9nX3BhdGhfZGVwZW5kZW5jaWVzJywKICAgICAgICAnc2Vjb25kX2ZvbycsCiAgICAgICk7CiAgICAgIGV4cGVjdChjb3B5Q2FsbHMsIFsKICAgICAgICAnJGZvb1BhY2thZ2VEaXJlY3RvcnkgLT4gJGZvb1BhY2thZ2VEaXJlY3RvcnlUYXJnZXQnLAogICAgICAgICckc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeSAtPiAkc2Vjb25kRm9vUGFja2FnZURpcmVjdG9yeVRhcmdldCcsCiAgICAgIF0pOwogICAgfSk7CgogICAgdGVzdCgiZG9lc24ndCBidW5kbGUgaW50ZXJuYWwgcGF0aCBkZXBlbmRlbmNpZXMiLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoV2l0aEludGVybmFsRGVwZW5kZW5jeSk7CiAgICAgIGZpbmFsIGNvcHlDYWxscyA9IDxTdHJpbmc+W107CgogICAgICBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICAgICAgYnVpbGREaXJlY3Rvcnk6IERpcmVjdG9yeShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSksCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgY29weUNhbGxzLmFkZCgnJGZyb20gLT4gJHRvJyk7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZnJvbSA9IHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICcuLi8uLi9mb28nKTsKICAgICAgZmluYWwgdG8gPSBwYXRoLmpvaW4oCiAgICAgICAgcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICdidWlsZCcsCiAgICAgICAgJy5kYXJ0X2Zyb2dfcGF0aF9kZXBlbmRlbmNpZXMnLAogICAgICAgICdmb28nLAogICAgICApOwogICAgICBleHBlY3QoY29weUNhbGxzLCBbJyRmcm9tIC0+ICR0byddKTsKICAgIH0pOwogIH0pOwp9Cg==", + "type": "text" + }, + { + "path": "test/src/dart_pub_get_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnRlc3QvdGVzdC5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdkYXJ0UHViR2V0JywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIGNvbnN0IHByb2Nlc3NJZCA9IDQyOwogICAgZmluYWwgcHJvY2Vzc1Jlc3VsdCA9IFByb2Nlc3NSZXN1bHQoCiAgICAgIHByb2Nlc3NJZCwKICAgICAgRXhpdENvZGUuc3VjY2Vzcy5jb2RlLAogICAgICAnJywKICAgICAgJycsCiAgICApOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpOwoKICAgICAgd2hlbigoKSA9PiBsb2dnZXIucHJvZ3Jlc3MoYW55KCkpKS50aGVuUmV0dXJuKF9Nb2NrUHJvZ3Jlc3MoKSk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb21wbGV0ZXMgd2hlbiBwcm9jZXNzIHN1Y2NlZWRzJywgKCkgYXN5bmMgewogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICBleHBlY3QoZXhlY3V0YWJsZSwgZXF1YWxzKCdkYXJ0JykpOwogICAgICAgICAgZXhwZWN0KGFyZ3MsIGVxdWFscyhbJ3B1YicsICdnZXQnXSkpOwogICAgICAgICAgZXhwZWN0KHdvcmtpbmdEaXJlY3RvcnksIGVxdWFscygnLicpKTsKICAgICAgICAgIGV4cGVjdChydW5JblNoZWxsLCBpc1RydWUpOwogICAgICAgICAgcmV0dXJuIHByb2Nlc3NSZXN1bHQ7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2hlbiBwcm9jZXNzIGZhaWxzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKCiAgICAgIGZpbmFsIHByb2Nlc3NSZXN1bHQgPSBQcm9jZXNzUmVzdWx0KAogICAgICAgIHByb2Nlc3NJZCwKICAgICAgICBFeGl0Q29kZS5zb2Z0d2FyZS5jb2RlLAogICAgICAgICcnLAogICAgICAgIGVycm9yLAogICAgICApOwoKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Jlc3VsdDsKICAgICAgICB9LAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbRXhpdENvZGUuc29mdHdhcmUuY29kZV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXJyb3IpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aGVuIFByb2Nlc3NFeGNlcHRpb24gb2NjdXJzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBlcnJvciA9ICdvb3BzIHNvbWV0aGluZyB3ZW50IHdyb25nJzsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgZGFydFB1YkdldCgKICAgICAgICBjb250ZXh0LAogICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6ICcuJywKICAgICAgICBydW5Qcm9jZXNzOiAoCiAgICAgICAgICBleGVjdXRhYmxlLAogICAgICAgICAgYXJncywgewogICAgICAgICAgU3RyaW5nPyB3b3JraW5nRGlyZWN0b3J5LAogICAgICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgICAgICB9KSBhc3luYyB7CiAgICAgICAgICB0aHJvdyBQcm9jZXNzRXhjZXB0aW9uKAogICAgICAgICAgICAnZGFydCcsCiAgICAgICAgICAgIFsncHViJywgJ2dldCddLAogICAgICAgICAgICBlcnJvciwKICAgICAgICAgICAgRXhpdENvZGUuc29mdHdhcmUuY29kZSwKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoW0V4aXRDb2RlLnNvZnR3YXJlLmNvZGVdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGVycm9yKSkuY2FsbGVkKDEpOwogICAgfSk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "test/src/disable_workspace_resolution_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", + "type": "text" + }, + { + "path": "test/src/exit_overrides_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdFeGl0T3ZlcnJpZGVzJywgKCkgewogICAgZ3JvdXAoJ3J1blpvbmVkJywgKCkgewogICAgICB0ZXN0KCd1c2VzIGRlZmF1bHQgZXhpdCB3aGVuIG5vdCBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgoKSB7CiAgICAgICAgICBmaW5hbCBvdmVycmlkZXMgPSBFeGl0T3ZlcnJpZGVzLmN1cnJlbnQ7CiAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBlcXVhbHMoZXhpdCkpOwogICAgICAgIH0pOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3VzZXMgY3VzdG9tIGV4aXQgd2hlbiBzcGVjaWZpZWQnLCAoKSB7CiAgICAgICAgRXhpdE92ZXJyaWRlcy5ydW5ab25lZCgKICAgICAgICAgICgpIHsKICAgICAgICAgICAgZmluYWwgb3ZlcnJpZGVzID0gRXhpdE92ZXJyaWRlcy5jdXJyZW50OwogICAgICAgICAgICBleHBlY3Qob3ZlcnJpZGVzIS5leGl0LCBpc05vdChlcXVhbHMoZXhpdCkpKTsKICAgICAgICAgIH0sCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKTsKICAgICAgfSk7CiAgICB9KTsKICB9KTsKfQo=", + "type": "text" + }, + { + "path": "test/src/get_internal_path_dependencies_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp0ZXN0L3Rlc3QuZGFydCc7Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2dldFBhdGhEZXBlbmRlbmNpZXMnLCAoKSB7CiAgICB0ZXN0KCdyZXR1cm5zIG5vdGhpbmcgd2hlbiB0aGVyZSBhcmUgbm8gcGF0aCBkZXBlbmRlbmNpZXMnLCAoKSB7CiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpwYWNrYWdlczoKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgogIG1hc29uOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFuYWx5emVyCiAgICAgIHNoYTI1NjogZjg1NTY2ZWM3YjNkMjVjYmVhNjBmN2RkNGYxNTdjNTAyNWYyZjE5MjMzY2E0ZmVlZWQzM2I2MTZjNzhhMjZhMwogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjYuMS4wIgonJycsCiAgICAgICk7CiAgICAgIGV4cGVjdChnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoZGlyZWN0b3J5KSwgY29tcGxldGlvbihpc0VtcHR5KSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldHVybnMgY29ycmVjdCBwYXRoIGRlcGVuZGVuY2llcycsICgpIHsKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCnBhY2thZ2VzOgogIGRhcnRfZnJvZzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGF0aC90by9kYXJ0X2Zyb2ciCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKICBkYXJ0X2Zyb2dfZ2VuOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIHBhdGg6ICJwYXRoL3RvL2RhcnRfZnJvZ19nZW4iCiAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICBzb3VyY2U6IHBhdGgKICAgIHZlcnNpb246ICIwLjAuMCIKJycnLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKGRpcmVjdG9yeSksCiAgICAgICAgY29tcGxldGlvbigKICAgICAgICAgIGVxdWFscyhbJ3BhdGgvdG8vZGFydF9mcm9nJywgJ3BhdGgvdG8vZGFydF9mcm9nX2dlbiddKSwKICAgICAgICApLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKICB9KTsKfQo=", + "type": "text" + }, + { + "path": "test/src/pubspec_lock/pubspec_lock_test.dart", + "data": + "Ly8gaWdub3JpbmcgZm9yIHRlc3RpbmcgcHVycG9zZXMKLy8gaWdub3JlX2Zvcl9maWxlOiBwcmVmZXJfY29uc3RfY29uc3RydWN0b3JzCgppbXBvcnQgJ3BhY2thZ2U6ZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzL3NyYy9wdWJzcGVjX2xvY2svcHVic3BlY19sb2NrLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6eWFtbC95YW1sLmRhcnQnOwoKdm9pZCBtYWluKCkgewogIGdyb3VwKCckUHVic3BlY0xvY2snLCAoKSB7CiAgICBncm91cCgnZnJvbVN0cmluZycsICgpIHsKICAgICAgdGVzdCgncGFyc2VzIGNvcnJlY3RseScsICgpIHsKICAgICAgICBmaW5hbCBwdWJzcGVjTG9jayA9IFB1YnNwZWNMb2NrLmZyb21TdHJpbmcoX3B1YnNwZWNMb2NrQ29udGVudCk7CgogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHB1YnNwZWNMb2NrLnBhY2thZ2VzLAogICAgICAgICAgZXF1YWxzKAogICAgICAgICAgICBjb25zdCBbCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF90ZXN0X3J1bm5lcicsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3RNYWluLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3ZlcnlfZ29vZF9hbmFseXNpcycsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5kaXJlY3REZXYsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbCcsCiAgICAgICAgICAgICAgICB0eXBlOiBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS50cmFuc2l0aXZlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlKAogICAgICAgICAgICAgICAgbmFtZTogJ3BhdGgnLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiwKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICAgICAgICAgIHBhdGhEZXNjcmlwdGlvbjogUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgICAgICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgICAgICAgICBuYW1lOiAneWFtbDInLAogICAgICAgICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKCiAgICAgIHRlc3QoJ3Rocm93cyBhICRQdWJzcGVjTG9ja1BhcnNlRXhjZXB0aW9uIHdoZW4gY29udGVudCBpcyBlbXB0eScsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICAoKSA9PiBQdWJzcGVjTG9jay5mcm9tU3RyaW5nKCcnKSwKICAgICAgICAgIHRocm93c0EoaXNBPFB1YnNwZWNMb2NrUGFyc2VFeGNlcHRpb24+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgncmV0dXJucyBlbXB0eSBQdWJzcGVjTG9jayB3aGVuIGNvbnRlbnQgaGFzIG5vIHBhY2thZ2VzIGVudHJ5JywgKCkgewogICAgICAgIGZpbmFsIHB1YnNwZWNMb2NrID0gUHVic3BlY0xvY2suZnJvbVN0cmluZyhfZW1wdHlQdWJzcGVjTG9ja0NvbnRlbnQpOwogICAgICAgIGV4cGVjdChwdWJzcGVjTG9jay5wYWNrYWdlcywgaXNFbXB0eSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY0xvY2tQYWNrYWdlJywgKCkgewogICAgdGVzdCgnY2FuIGJlIGluc3RhbnRpYXRlZCcsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIFB1YnNwZWNMb2NrUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICdmb28nLAogICAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgICApLAogICAgICAgIGlzQTxQdWJzcGVjTG9ja1BhY2thZ2U+KCksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdzdXBwb3J0cyB2YWx1ZSBlcXVhbGl0eScsICgpIHsKICAgICAgZmluYWwgcGFja2FnZTEgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTIgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2ZvbycsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiwKICAgICAgKTsKICAgICAgZmluYWwgcGFja2FnZTMgPSBQdWJzcGVjTG9ja1BhY2thZ2UoCiAgICAgICAgbmFtZTogJ2JhcicsCiAgICAgICAgdHlwZTogUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUudHJhbnNpdGl2ZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChwYWNrYWdlMSwgZXF1YWxzKHBhY2thZ2UyKSk7CiAgICAgIGV4cGVjdChwYWNrYWdlMSwgaXNOb3QoZXF1YWxzKHBhY2thZ2UzKSkpOwogICAgICBleHBlY3QocGFja2FnZTIsIGlzTm90KGVxdWFscyhwYWNrYWdlMykpKTsKICAgIH0pOwogIH0pOwoKICBncm91cCgnJFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlJywgKCkgewogICAgZ3JvdXAoJ3BhcnNlJywgKCkgewogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgbWFpbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBtYWluJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0TWFpbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3QgZGV2YCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgnZGlyZWN0IGRldicpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLmRpcmVjdERldiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGBkaXJlY3Qgb3ZlcnJpZGRlbmAnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2RpcmVjdCBvdmVycmlkZGVuJyksCiAgICAgICAgICBlcXVhbHMoUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUuZGlyZWN0T3ZlcnJpZGRlbiksCiAgICAgICAgKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdwYXJzZXMgc3VjY2Vzc2Z1bGx5IGB0cmFuc2l0aXZlYCcsICgpIHsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBQdWJzcGVjTG9ja1BhY2thZ2VEZXBlbmRlbmN5VHlwZS5wYXJzZSgndHJhbnNpdGl2ZScpLAogICAgICAgICAgZXF1YWxzKFB1YnNwZWNMb2NrUGFja2FnZURlcGVuZGVuY3lUeXBlLnRyYW5zaXRpdmUpLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgdGVzdCgndGhyb3dzIGEgJEFyZ3VtZW50RXJyb3Igd2hlbiB0eXBlIGlzIGludmFsaWQnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgKCkgPT4gUHVic3BlY0xvY2tQYWNrYWdlRGVwZW5kZW5jeVR5cGUucGFyc2UoJ2ludmFsaWQnKSwKICAgICAgICAgIHRocm93c0EoaXNBPEFyZ3VtZW50RXJyb3I+KCkpLAogICAgICAgICk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CgogIGdyb3VwKCckUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24nLCAoKSB7CiAgICB0ZXN0KCdjYW4gYmUgaW5zdGFudGlhdGVkJywgKCkgewogICAgICBleHBlY3QoCiAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgICksCiAgICAgICAgaXNBPFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uPigpLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnc3VwcG9ydHMgdmFsdWUgZXF1YWxpdHknLCAoKSB7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uMSA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBkZXNjcmlwdGlvbjIgPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbigKICAgICAgICBwYXRoOiAncGFja2FnZXMvZm9vJywKICAgICAgICByZWxhdGl2ZTogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZGVzY3JpcHRpb24zID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2JhcicsCiAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGRlc2NyaXB0aW9uNCA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uKAogICAgICAgIHBhdGg6ICdwYWNrYWdlcy9mb28nLAogICAgICAgIHJlbGF0aXZlOiBmYWxzZSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChkZXNjcmlwdGlvbjEsIGVxdWFscyhkZXNjcmlwdGlvbjIpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uMykpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMSwgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uMywgaXNOb3QoZXF1YWxzKGRlc2NyaXB0aW9uNCkpKTsKICAgIH0pOwoKICAgIGdyb3VwKCd0cnlQYXJzZScsICgpIHsKICAgICAgdGVzdCgncGFyc2VzJywgKCkgewogICAgICAgIGZpbmFsIGRhdGEgPSBsb2FkWWFtbCgKICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgpyZWxhdGl2ZTogdHJ1ZQogICAgICAgICAgICAnJycsCiAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICBleHBlY3QoCiAgICAgICAgICBkZXNjcmlwdGlvbiwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24oCiAgICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzL2ZvbycsCiAgICAgICAgICAgICAgcmVsYXRpdmU6IHRydWUsCiAgICAgICAgICAgICksCiAgICAgICAgICApLAogICAgICAgICk7CiAgICAgIH0pOwoKICAgICAgZ3JvdXAoJ3JldHVybnMgbnVsbCcsICgpIHsKICAgICAgICB0ZXN0KCd3aGVuIG1pc3NpbmcgInBhdGgiJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcmVsYXRpdmU6IHRydWUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwoKICAgICAgICB0ZXN0KCd3aGVuICJwYXRoIiBpcyBub3QgYSBTdHJpbmcnLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAxCnJlbGF0aXZlOiB0cnVlCiAgICAgICAgICAgICcnJywKICAgICAgICAgICkgYXMgWWFtbE1hcDsKCiAgICAgICAgICBmaW5hbCBkZXNjcmlwdGlvbiA9IFB1YnNwZWNQYWNrYWdlUGF0aERlc2NyaXB0aW9uLnRyeVBhcnNlKGRhdGEpOwoKICAgICAgICAgIGV4cGVjdChkZXNjcmlwdGlvbiwgaXNOdWxsKTsKICAgICAgICB9KTsKCiAgICAgICAgdGVzdCgnd2hlbiBtaXNzaW5nICJyZWxhdGl2ZSInLCAoKSB7CiAgICAgICAgICBmaW5hbCBkYXRhID0gbG9hZFlhbWwoCiAgICAgICAgICAgICcnJwpwYXRoOiAicGFja2FnZXMvZm9vIgogICAgICAgICAgICAnJycsCiAgICAgICAgICApIGFzIFlhbWxNYXA7CgogICAgICAgICAgZmluYWwgZGVzY3JpcHRpb24gPSBQdWJzcGVjUGFja2FnZVBhdGhEZXNjcmlwdGlvbi50cnlQYXJzZShkYXRhKTsKCiAgICAgICAgICBleHBlY3QoZGVzY3JpcHRpb24sIGlzTnVsbCk7CiAgICAgICAgfSk7CgogICAgICAgIHRlc3QoJ3doZW4gInJlbGF0aXZlIiBpcyBub3QgYSBib29sJywgKCkgewogICAgICAgICAgZmluYWwgZGF0YSA9IGxvYWRZYW1sKAogICAgICAgICAgICAnJycKcGF0aDogInBhY2thZ2VzL2ZvbyIKcmVsYXRpdmU6IDUKICAgICAgICAgICAgJycnLAogICAgICAgICAgKSBhcyBZYW1sTWFwOwoKICAgICAgICAgIGZpbmFsIGRlc2NyaXB0aW9uID0gUHVic3BlY1BhY2thZ2VQYXRoRGVzY3JpcHRpb24udHJ5UGFyc2UoZGF0YSk7CgogICAgICAgICAgZXhwZWN0KGRlc2NyaXB0aW9uLCBpc051bGwpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogIH0pOwp9CgovLy8gQW4gZXhhbXBsZSBwdWJzcGVjLmxvY2sgY29udGVudCB1c2VkIHRvIHRlc3QgdGhlIFtQdWJzcGVjTG9ja10gY2xhc3MuCi8vLwovLy8gSXQgaGFzIGJlZW4gYXJ0aWZpY2lhbGx5IGNyYWZ0ZWQgdG8gaW5jbHVkZToKLy8vIC0gb25lIHB1YiBob3N0ZWQgZGlyZWN0IG1haW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcHViIGhvc3RlZCBkaXJlY3QgZGV2IHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIHB1YiBob3N0ZWQgdHJhbnNpdGl2ZSBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBwdWIgaG9zdGVkIG92ZXJyaWRkZW4gcGFja2FnZSBlbnRyeQovLy8gLSBvbmUgcGF0aCBkaXJlY3QgbWFpbiBwYWNrYWdlIGVudHJ5Ci8vLyAtIG9uZSBub3QgcHViIGhvc3RlZCB0cmFuc2l0aXZlIHBhY2thZ2UgZW50cnkKLy8vIC0gb25lIGludmFsaWQgcGFja2FnZSBlbnRyeQpjb25zdCBfcHVic3BlY0xvY2tDb250ZW50ID0gJycnCnBhY2thZ2VzOgogIHZlcnlfZ29vZF90ZXN0X3J1bm5lcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfdGVzdF9ydW5uZXIKICAgICAgc2hhMjU2OiAiNGQ0MWU1ZDc2NzdkMjU5YjlhMTU5OWM3ODY0NWFjMmQzNmJjMmJkNmZmNzc3MzUwN2JjYjBiYWI0MTQxN2ZlMiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIwLjEuMiIKICB2ZXJ5X2dvb2RfYW5hbHlzaXM6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB2ZXJ5X2dvb2RfYW5hbHlzaXMKICAgICAgc2hhMjU2OiAiOWFlN2YzYTNiZDU3NjRmYjAyMWIzMzVjYTI4YTM0ZjA0MGNkMGFiNmVlYzAwYTFiMjEzYjQ0NWRhZTU4YTRiOCIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICI1LjEuMCIKICB5YW1sOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHlhbWwKICAgICAgc2hhMjU2OiAiNzU3Njk1MDFlYTM0ODlmY2E1NjYwMWZmMzM0NTRmZTQ1NTA3ZWEzYmZiMDE0MTYxYWJjM2I0M2FlMjU5ODlkNSIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBwYXRoOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBvdmVycmlkZGVuIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IHBhdGgKICAgICAgc2hhMjU2OiAiMDg3Y2U0OWMzZjBkYzM5MTgwYmVmZWZjNjBmZGI0YWNkOGY4NjIwZTU2ODJmZTI0NzZhZmQwYjM2ODhiYjRhZiIKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIxLjkuMCIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogInBhY2thZ2VzL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjEuMC4wKzEiCiAgeWFtbDI6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogeWFtbAogICAgICBzaGEyNTY6ICI3NTc2OTUwMWVhMzQ4OWZjYTU2NjAxZmYzMzQ1NGZlNDU1MDdlYTNiZmIwMTQxNjFhYmMzYjQzYWUyNTk4OWQ1IgogICAgICB1cmw6ICJodHRwczovL25vdC1wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIzLjEuMiIKICBiYWRfcGFja2FnZToKICAgIG5vdF9kZXBlbmRlbmN5OiAiYmFkIgpzZGtzOgogIGRhcnQ6ICI+PTMuMS4wIDw0LjAuMCIKJycnOwoKLy8vIEEgdmFsaWQgcHVic3BlYyBsb2NrIGZpbGUgd2l0aCBubyBwYWNrYWdlcy4KY29uc3QgX2VtcHR5UHVic3BlY0xvY2tDb250ZW50ID0gJycnCnNka3M6CiAgZGFydDogIj49My4xLjAgPDQuMC4wIgonJyc7Cg==", + "type": "text" + }, + { + "path": "test/src/uses_workspace_resolution_test.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ3VzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgYnVpbGREaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSB3b3JraW5nRGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIGJ1aWxkRGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ2J1aWxkJyk7CiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygnd29ya2luZycpOwoKICAgICAgd2hlbigoKSA9PiBjb250ZXh0LmxvZ2dlcikudGhlblJldHVybihsb2dnZXIpOwoKICAgICAgYWRkVGVhckRvd24oKCkgewogICAgICAgIGJ1aWxkRGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHdvcmtpbmdEaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlYy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyBtYWxmb3JtZWQnLCAoKSB7CiAgICAgIGxhdGUgRmlsZSBwdWJzcGVjRmlsZTsKICAgICAgc2V0VXAoKCkgewogICAgICAgIHB1YnNwZWNGaWxlID0gRmlsZSgKICAgICAgICAgIHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgICApLi53cml0ZUFzU3RyaW5nU3luYygnaW52YWxpZCBwdWJzcGVjLnlhbWwnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgICB2ZXJpZnkoCiAgICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgICBhbnkodGhhdDogY29udGFpbnMoJ1VuYWJsZSB0byBwYXJzZSAke3B1YnNwZWNGaWxlLnBhdGh9JykpLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWMueWFtbCBpcyB2YWxpZCB3aXRoIG5vIHJlc29sdXRpb24nLCAoKSB7CiAgICAgIHNldFVwKCgpIHsKICAgICAgICBGaWxlKAogICAgICAgICAgcGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIGZhbHNlJywgKCkgewogICAgICAgIGV4cGVjdCgKICAgICAgICAgIHVzZXNXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LnBhdGgsCiAgICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICApLAogICAgICAgICAgaXNGYWxzZSwKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjLnlhbWwgaXMgdmFsaWQgd2l0aCByZXNvbHV0aW9uIHdvcmtzcGFjZScsICgpIHsKICAgICAgc2V0VXAoKCkgewogICAgICAgIEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKJycnKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdyZXR1cm5zIHRydWUnLCAoKSB7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgdXNlc1dvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtpbmdEaXJlY3RvcnkucGF0aCwKICAgICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICAgICksCiAgICAgICAgICBpc1RydWUsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", + "type": "text" + } + ], + "name": "dart_frog_prod_server", + "description": "A dart_frog prod server", + "version": "0.1.0+1", + "environment": {"mason": "^0.1.0"}, + "readme": { + "path": "README.md", + "data": + "IyBkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXIKClshW1Bvd2VyZWQgYnkgTWFzb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZW5kcG9pbnQ/dXJsPWh0dHBzJTNBJTJGJTJGdGlueXVybC5jb20lMkZtYXNvbi1iYWRnZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxhbmdlbC9tYXNvbikKCkEgYGRhcnRfZnJvZ2AgcHJvZHVjdGlvbiBzZXJ2ZXIuCgpfR2VuZXJhdGVkIGJ5IFttYXNvbl1bMV0g8J+nsV8KClsxXTogaHR0cHM6Ly9naXRodWIuY29tL2ZlbGFuZ2VsL21hc29uCg==", + "type": "text" + }, + "changelog": { + "path": "CHANGELOG.md", + "data": + "IyAwLjEuMCsxCgotIGZlYXQ6IGJhc2ljIGltcGxlbWVudGF0aW9uIGZvciB0aGUgZGFydCBmcm9nIHByb2R1Y3Rpb24gc2VydmVyCg==", + "type": "text" + }, + "license": { + "path": "LICENSE", + "data": + "TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAyMiBWZXJ5IEdvb2QgVmVudHVyZXMKQ29weXJpZ2h0IChjKSAyMDI1IERhcnQgRnJvZyBEZXYKClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCg==", + "type": "text" + }, + "vars": { + "dartVersion": { + "type": "string", + "description": "Dart version to be used in the generated Dockerfile.", + "default": "stable", + "prompt": "Dart version?" + } + } +}); From 2be2f2e489f6e32b82e2a3ceffa5ecea206f5173 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 20:17:54 -0500 Subject: [PATCH 04/10] fix some tests --- .../src/copy_workspace_pubspec_lock_test.dart | 57 +------------------ 1 file changed, 3 insertions(+), 54 deletions(-) diff --git a/bricks/dart_frog_prod_server/hooks/test/src/copy_workspace_pubspec_lock_test.dart b/bricks/dart_frog_prod_server/hooks/test/src/copy_workspace_pubspec_lock_test.dart index 74c13de7d..1b5b76e12 100644 --- a/bricks/dart_frog_prod_server/hooks/test/src/copy_workspace_pubspec_lock_test.dart +++ b/bricks/dart_frog_prod_server/hooks/test/src/copy_workspace_pubspec_lock_test.dart @@ -35,48 +35,11 @@ void main() { }); }); - test('exits with error when unable to determine the workspace root', () { - copyWorkspacePubspecLock( - context, - projectDirectory: projectDirectory.path, - exit: exitCalls.add, - ); - expect(exitCalls, equals([1])); - verify( - () => logger.err( - 'Unable to determine workspace root for ${projectDirectory.path}', - ), - ); - }); - - test('exits with error when unable to parse pubspec.yaml', () { - File(path.join(rootDirectory.path, 'pubspec.yaml')) - .writeAsStringSync('invalid pubspec.yaml'); - copyWorkspacePubspecLock( - context, - projectDirectory: projectDirectory.path, - exit: exitCalls.add, - ); - expect(exitCalls, equals([1])); - verify( - () => logger.err( - 'Unable to determine workspace root for ${projectDirectory.path}', - ), - ); - }); - test('does nothing when pubspec.lock does not exist in workspace root', () { - File(path.join(rootDirectory.path, 'pubspec.yaml')).writeAsStringSync(''' -name: _ -version: 0.0.0 -environment: - sdk: ^3.8.0 -workspace: - - packages/hello_world -'''); copyWorkspacePubspecLock( context, projectDirectory: projectDirectory.path, + workspaceRoot: rootDirectory.path, exit: exitCalls.add, ); expect(exitCalls, isEmpty); @@ -90,20 +53,13 @@ workspace: # See https://dart.dev/tools/pub/glossary#lockfile packages: '''; - File(path.join(rootDirectory.path, 'pubspec.yaml')).writeAsStringSync(''' -name: _ -version: 0.0.0 -environment: - sdk: ^3.8.0 -workspace: - - packages/hello_world -'''); final file = File(path.join(rootDirectory.path, 'pubspec.lock')) ..writeAsStringSync(pubspecLockContents); Process.runSync('chmod', ['000', file.path]); copyWorkspacePubspecLock( context, projectDirectory: projectDirectory.path, + workspaceRoot: rootDirectory.path, exit: exitCalls.add, ); expect(exitCalls, equals([1])); @@ -118,19 +74,12 @@ workspace: # See https://dart.dev/tools/pub/glossary#lockfile packages: '''; - File(path.join(rootDirectory.path, 'pubspec.yaml')).writeAsStringSync(''' -name: _ -version: 0.0.0 -environment: - sdk: ^3.8.0 -workspace: - - packages/hello_world -'''); File(path.join(rootDirectory.path, 'pubspec.lock')) .writeAsStringSync(pubspecLockContents); copyWorkspacePubspecLock( context, projectDirectory: projectDirectory.path, + workspaceRoot: rootDirectory.path, exit: exitCalls.add, ); expect(exitCalls, isEmpty); From abd28792f7382d7b8e5b39a5cd7a3be41bca1ac2 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 20:49:02 -0500 Subject: [PATCH 05/10] fix tests --- bricks/dart_frog_prod_server/hooks/build.yaml | 2 +- .../lib/src/disable_workspace_resolution.dart | 6 +- .../src/package_graph/package_graph.g.dart | 76 +- .../dart_frog_prod_server/hooks/pubspec.yaml | 4 +- .../hooks/test/fixtures/package_configs.dart | 456 ++++++++++++ .../hooks/test/fixtures/package_graphs.dart | 666 ++++++++++++++++++ .../hooks/test/pre_gen_test.dart | 42 +- .../hooks/test/pubspecs.dart | 20 - .../disable_workspace_resolution_test.dart | 59 +- 9 files changed, 1261 insertions(+), 70 deletions(-) create mode 100644 bricks/dart_frog_prod_server/hooks/test/fixtures/package_configs.dart create mode 100644 bricks/dart_frog_prod_server/hooks/test/fixtures/package_graphs.dart delete mode 100644 bricks/dart_frog_prod_server/hooks/test/pubspecs.dart diff --git a/bricks/dart_frog_prod_server/hooks/build.yaml b/bricks/dart_frog_prod_server/hooks/build.yaml index 75f89dc8a..07006b317 100644 --- a/bricks/dart_frog_prod_server/hooks/build.yaml +++ b/bricks/dart_frog_prod_server/hooks/build.yaml @@ -4,7 +4,7 @@ targets: source_gen|combining_builder: options: ignore_for_file: - - implicit_dynamic_parameter + - type=lint json_serializable: options: create_to_json: false diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart index ac6aab460..d3991a4c9 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart @@ -105,7 +105,11 @@ void writePathDependencyOverrides({ path.join(projectDirectory, 'pubspec_overrides.yaml'), ); final contents = pubspecOverridesFile.readAsStringSync(); - final editor = YamlEditor(contents)..update(['dependency_overrides'], {}); + final overrides = loadYaml(contents) as YamlMap; + final editor = YamlEditor(contents); + if (!overrides.containsKey('dependency_overrides')) { + editor.update(['dependency_overrides'], {}); + } for (final package in pathDependencies) { editor.update( ['dependency_overrides', package.name], diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart index 3a95db63f..9996fda6d 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart @@ -1,6 +1,6 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: implicit_dynamic_parameter +// ignore_for_file: type=lint part of 'package_graph.dart'; @@ -9,39 +9,43 @@ part of 'package_graph.dart'; // ************************************************************************** PackageGraph _$PackageGraphFromJson(Map json) => - $checkedCreate('PackageGraph', json, ($checkedConvert) { - final val = PackageGraph( - roots: $checkedConvert( - 'roots', - (v) => (v as List).map((e) => e as String).toList(), - ), - packages: $checkedConvert( - 'packages', - (v) => (v as List) - .map((e) => Package.fromJson(e as Map)) - .toList(), - ), - configVersion: $checkedConvert( - 'configVersion', - (v) => (v as num).toInt(), - ), - ); - return val; - }); + $checkedCreate( + 'PackageGraph', + json, + ($checkedConvert) { + final val = PackageGraph( + roots: $checkedConvert('roots', + (v) => (v as List).map((e) => e as String).toList()), + packages: $checkedConvert( + 'packages', + (v) => (v as List) + .map((e) => Package.fromJson(e as Map)) + .toList()), + configVersion: + $checkedConvert('configVersion', (v) => (v as num).toInt()), + ); + return val; + }, + ); -Package _$PackageFromJson(Map json) => - $checkedCreate('Package', json, ($checkedConvert) { - final val = Package( - name: $checkedConvert('name', (v) => v as String), - version: $checkedConvert('version', (v) => v as String), - dependencies: $checkedConvert( - 'dependencies', - (v) => (v as List?)?.map((e) => e as String).toList() ?? [], - ), - devDependencies: $checkedConvert( - 'devDependencies', - (v) => (v as List?)?.map((e) => e as String).toList() ?? [], - ), - ); - return val; - }); +Package _$PackageFromJson(Map json) => $checkedCreate( + 'Package', + json, + ($checkedConvert) { + final val = Package( + name: $checkedConvert('name', (v) => v as String), + version: $checkedConvert('version', (v) => v as String), + dependencies: $checkedConvert( + 'dependencies', + (v) => + (v as List?)?.map((e) => e as String).toList() ?? + []), + devDependencies: $checkedConvert( + 'devDependencies', + (v) => + (v as List?)?.map((e) => e as String).toList() ?? + []), + ); + return val; + }, + ); diff --git a/bricks/dart_frog_prod_server/hooks/pubspec.yaml b/bricks/dart_frog_prod_server/hooks/pubspec.yaml index bf178618d..26c08f9bb 100644 --- a/bricks/dart_frog_prod_server/hooks/pubspec.yaml +++ b/bricks/dart_frog_prod_server/hooks/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: yaml_edit: ^2.2.2 dev_dependencies: - build_runner: ^2.8.0 - json_serializable: ^6.11.1 + build_runner: ^2.0.0 + json_serializable: ^6.7.0 mocktail: ^1.0.0 test: ^1.25.0 diff --git a/bricks/dart_frog_prod_server/hooks/test/fixtures/package_configs.dart b/bricks/dart_frog_prod_server/hooks/test/fixtures/package_configs.dart new file mode 100644 index 000000000..41eca66a6 --- /dev/null +++ b/bricks/dart_frog_prod_server/hooks/test/fixtures/package_configs.dart @@ -0,0 +1,456 @@ +const packageConfigWithDirectAndTransitiveDependencies = ''' +{ + "configVersion": 2, + "packages": [ + { + "name": "_fe_analyzer_shared", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-85.0.0", + "packageUri": "lib/", + "languageVersion": "3.5" + }, + { + "name": "analyzer", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/analyzer-7.7.1", + "packageUri": "lib/", + "languageVersion": "3.5" + }, + { + "name": "args", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/args-2.7.0", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "async", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/async-2.13.0", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "boolean_selector", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2", + "packageUri": "lib/", + "languageVersion": "3.1" + }, + { + "name": "characters", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/characters-1.4.0", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "cli_config", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/cli_config-0.2.0", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "clock", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/clock-1.1.2", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "collection", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/collection-1.19.1", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "convert", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/convert-3.1.2", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "coverage", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/coverage-1.15.0", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "crypto", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/crypto-3.0.6", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "cupertino_icons", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8", + "packageUri": "lib/", + "languageVersion": "3.1" + }, + { + "name": "dart_frog", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/dart_frog-1.2.3", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "fake_async", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/fake_async-1.3.3", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "file", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/file-7.0.1", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "flutter", + "rootUri": "file:///Users/felix/Development/github.com/flutter/flutter/packages/flutter", + "packageUri": "lib/", + "languageVersion": "3.8" + }, + { + "name": "flutter_lints", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0", + "packageUri": "lib/", + "languageVersion": "3.5" + }, + { + "name": "flutter_test", + "rootUri": "file:///Users/felix/Development/github.com/flutter/flutter/packages/flutter_test", + "packageUri": "lib/", + "languageVersion": "3.8" + }, + { + "name": "frontend_server_client", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "glob", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/glob-2.1.3", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "hotreloader", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/hotreloader-4.3.0", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "http_methods", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/http_methods-1.1.1", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "http_multi_server", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2", + "packageUri": "lib/", + "languageVersion": "3.2" + }, + { + "name": "http_parser", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/http_parser-4.1.2", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "io", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/io-1.0.5", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "js", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/js-0.7.2", + "packageUri": "lib/", + "languageVersion": "3.7" + }, + { + "name": "leak_tracker", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/leak_tracker-11.0.1", + "packageUri": "lib/", + "languageVersion": "3.2" + }, + { + "name": "leak_tracker_flutter_testing", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.10", + "packageUri": "lib/", + "languageVersion": "3.2" + }, + { + "name": "leak_tracker_testing", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.2", + "packageUri": "lib/", + "languageVersion": "3.2" + }, + { + "name": "lints", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/lints-5.1.1", + "packageUri": "lib/", + "languageVersion": "3.6" + }, + { + "name": "logging", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/logging-1.3.0", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "matcher", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/matcher-0.12.17", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "material_color_utilities", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1", + "packageUri": "lib/", + "languageVersion": "2.17" + }, + { + "name": "meta", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/meta-1.16.0", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "mime", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/mime-2.0.0", + "packageUri": "lib/", + "languageVersion": "3.2" + }, + { + "name": "mocktail", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/mocktail-1.0.4", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "node_preamble", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/node_preamble-2.0.2", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "package_config", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/package_config-2.2.0", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "path", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/path-1.9.1", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "pool", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/pool-1.5.1", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "pub_semver", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/pub_semver-2.2.0", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "shelf", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/shelf-1.4.2", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "shelf_hotreload", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/shelf_hotreload-1.5.0", + "packageUri": "lib/", + "languageVersion": "2.17" + }, + { + "name": "shelf_packages_handler", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2", + "packageUri": "lib/", + "languageVersion": "2.17" + }, + { + "name": "shelf_static", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/shelf_static-1.1.3", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "shelf_web_socket", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0", + "packageUri": "lib/", + "languageVersion": "3.5" + }, + { + "name": "sky_engine", + "rootUri": "file:///Users/felix/Development/github.com/flutter/flutter/bin/cache/pkg/sky_engine", + "packageUri": "lib/", + "languageVersion": "3.8" + }, + { + "name": "source_map_stack_trace", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "source_maps", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/source_maps-0.10.13", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "source_span", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/source_span-1.10.1", + "packageUri": "lib/", + "languageVersion": "3.1" + }, + { + "name": "stack_trace", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/stack_trace-1.12.1", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "stream_channel", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/stream_channel-2.1.4", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "stream_transform", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/stream_transform-2.1.1", + "packageUri": "lib/", + "languageVersion": "3.1" + }, + { + "name": "string_scanner", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/string_scanner-1.4.1", + "packageUri": "lib/", + "languageVersion": "3.1" + }, + { + "name": "term_glyph", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/term_glyph-1.2.2", + "packageUri": "lib/", + "languageVersion": "3.1" + }, + { + "name": "test", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/test-1.26.2", + "packageUri": "lib/", + "languageVersion": "3.5" + }, + { + "name": "test_api", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/test_api-0.7.6", + "packageUri": "lib/", + "languageVersion": "3.5" + }, + { + "name": "test_core", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/test_core-0.6.11", + "packageUri": "lib/", + "languageVersion": "3.5" + }, + { + "name": "typed_data", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/typed_data-1.4.0", + "packageUri": "lib/", + "languageVersion": "3.5" + }, + { + "name": "vector_math", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/vector_math-2.2.0", + "packageUri": "lib/", + "languageVersion": "3.1" + }, + { + "name": "very_good_analysis", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/very_good_analysis-5.1.0", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "vm_service", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/vm_service-15.0.0", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "watcher", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/watcher-1.1.2", + "packageUri": "lib/", + "languageVersion": "3.1" + }, + { + "name": "web", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/web-1.1.1", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "web_socket", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/web_socket-1.0.1", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "web_socket_channel", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3", + "packageUri": "lib/", + "languageVersion": "3.3" + }, + { + "name": "webkit_inspection_protocol", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "yaml", + "rootUri": "file:///Users/felix/.pub-cache/hosted/pub.dev/yaml-3.1.3", + "packageUri": "lib/", + "languageVersion": "3.4" + }, + { + "name": "_", + "rootUri": "../", + "packageUri": "lib/", + "languageVersion": "3.6" + }, + { + "name": "client", + "rootUri": "../packages/client", + "packageUri": "lib/", + "languageVersion": "3.8" + }, + { + "name": "protocol", + "rootUri": "../packages/protocol", + "packageUri": "lib/", + "languageVersion": "3.8" + }, + { + "name": "models", + "rootUri": "../packages/models", + "packageUri": "lib/", + "languageVersion": "3.8" + }, + { + "name": "server", + "rootUri": "../packages/server", + "packageUri": "lib/", + "languageVersion": "3.6" + } + ], + "generator": "pub", + "generatorVersion": "3.9.2", + "flutterRoot": "file:///Users/felix/Development/github.com/flutter/flutter", + "flutterVersion": "3.35.3", + "pubCache": "file:///Users/felix/.pub-cache" +} +'''; diff --git a/bricks/dart_frog_prod_server/hooks/test/fixtures/package_graphs.dart b/bricks/dart_frog_prod_server/hooks/test/fixtures/package_graphs.dart new file mode 100644 index 000000000..f231026a6 --- /dev/null +++ b/bricks/dart_frog_prod_server/hooks/test/fixtures/package_graphs.dart @@ -0,0 +1,666 @@ +const packageGraphWithDirectAndTransitiveDeps = ''' +{ + "roots": [ + "_", + "client", + "models", + "protocol", + "server" + ], + "packages": [ + { + "name": "_", + "version": "0.0.0", + "dependencies": [], + "devDependencies": [] + }, + { + "name": "client", + "version": "1.0.0+1", + "dependencies": [ + "cupertino_icons", + "flutter" + ], + "devDependencies": [ + "flutter_lints", + "flutter_test" + ] + }, + { + "name": "protocol", + "version": "1.0.0", + "dependencies": [ + "models" + ], + "devDependencies": [ + "lints", + "test" + ] + }, + { + "name": "models", + "version": "1.0.0", + "dependencies": [], + "devDependencies": [ + "lints", + "test" + ] + }, + { + "name": "server", + "version": "1.0.0+1", + "dependencies": [ + "dart_frog", + "protocol" + ], + "devDependencies": [ + "mocktail", + "test", + "very_good_analysis" + ] + }, + { + "name": "very_good_analysis", + "version": "5.1.0", + "dependencies": [] + }, + { + "name": "test", + "version": "1.26.2", + "dependencies": [ + "analyzer", + "async", + "boolean_selector", + "collection", + "coverage", + "http_multi_server", + "io", + "js", + "matcher", + "node_preamble", + "package_config", + "path", + "pool", + "shelf", + "shelf_packages_handler", + "shelf_static", + "shelf_web_socket", + "source_span", + "stack_trace", + "stream_channel", + "test_api", + "test_core", + "typed_data", + "web_socket_channel", + "webkit_inspection_protocol", + "yaml" + ] + }, + { + "name": "mocktail", + "version": "1.0.4", + "dependencies": [ + "collection", + "matcher", + "test_api" + ] + }, + { + "name": "dart_frog", + "version": "1.2.3", + "dependencies": [ + "http_methods", + "http_parser", + "meta", + "mime", + "shelf", + "shelf_hotreload", + "shelf_static" + ] + }, + { + "name": "lints", + "version": "5.1.1", + "dependencies": [] + }, + { + "name": "flutter_lints", + "version": "5.0.0", + "dependencies": [ + "lints" + ] + }, + { + "name": "flutter_test", + "version": "0.0.0", + "dependencies": [ + "clock", + "collection", + "fake_async", + "flutter", + "leak_tracker_flutter_testing", + "matcher", + "meta", + "path", + "stack_trace", + "stream_channel", + "test_api", + "vector_math" + ] + }, + { + "name": "cupertino_icons", + "version": "1.0.8", + "dependencies": [] + }, + { + "name": "flutter", + "version": "0.0.0", + "dependencies": [ + "characters", + "collection", + "material_color_utilities", + "meta", + "sky_engine", + "vector_math" + ] + }, + { + "name": "yaml", + "version": "3.1.3", + "dependencies": [ + "collection", + "source_span", + "string_scanner" + ] + }, + { + "name": "webkit_inspection_protocol", + "version": "1.2.1", + "dependencies": [ + "logging" + ] + }, + { + "name": "web_socket_channel", + "version": "3.0.3", + "dependencies": [ + "async", + "crypto", + "stream_channel", + "web", + "web_socket" + ] + }, + { + "name": "typed_data", + "version": "1.4.0", + "dependencies": [ + "collection" + ] + }, + { + "name": "test_core", + "version": "0.6.11", + "dependencies": [ + "analyzer", + "args", + "async", + "boolean_selector", + "collection", + "coverage", + "frontend_server_client", + "glob", + "io", + "meta", + "package_config", + "path", + "pool", + "source_map_stack_trace", + "source_maps", + "source_span", + "stack_trace", + "stream_channel", + "test_api", + "vm_service", + "yaml" + ] + }, + { + "name": "test_api", + "version": "0.7.6", + "dependencies": [ + "async", + "boolean_selector", + "collection", + "meta", + "source_span", + "stack_trace", + "stream_channel", + "string_scanner", + "term_glyph" + ] + }, + { + "name": "stream_channel", + "version": "2.1.4", + "dependencies": [ + "async" + ] + }, + { + "name": "stack_trace", + "version": "1.12.1", + "dependencies": [ + "path" + ] + }, + { + "name": "source_span", + "version": "1.10.1", + "dependencies": [ + "collection", + "path", + "term_glyph" + ] + }, + { + "name": "shelf_web_socket", + "version": "3.0.0", + "dependencies": [ + "shelf", + "stream_channel", + "web_socket_channel" + ] + }, + { + "name": "shelf_static", + "version": "1.1.3", + "dependencies": [ + "convert", + "http_parser", + "mime", + "path", + "shelf" + ] + }, + { + "name": "shelf_packages_handler", + "version": "3.0.2", + "dependencies": [ + "path", + "shelf", + "shelf_static" + ] + }, + { + "name": "shelf", + "version": "1.4.2", + "dependencies": [ + "async", + "collection", + "http_parser", + "path", + "stack_trace", + "stream_channel" + ] + }, + { + "name": "pool", + "version": "1.5.1", + "dependencies": [ + "async", + "stack_trace" + ] + }, + { + "name": "path", + "version": "1.9.1", + "dependencies": [] + }, + { + "name": "package_config", + "version": "2.2.0", + "dependencies": [ + "path" + ] + }, + { + "name": "node_preamble", + "version": "2.0.2", + "dependencies": [] + }, + { + "name": "matcher", + "version": "0.12.17", + "dependencies": [ + "async", + "meta", + "stack_trace", + "term_glyph", + "test_api" + ] + }, + { + "name": "js", + "version": "0.7.2", + "dependencies": [] + }, + { + "name": "io", + "version": "1.0.5", + "dependencies": [ + "meta", + "path", + "string_scanner" + ] + }, + { + "name": "http_multi_server", + "version": "3.2.2", + "dependencies": [ + "async" + ] + }, + { + "name": "coverage", + "version": "1.15.0", + "dependencies": [ + "args", + "cli_config", + "glob", + "logging", + "meta", + "package_config", + "path", + "source_maps", + "stack_trace", + "vm_service", + "yaml" + ] + }, + { + "name": "collection", + "version": "1.19.1", + "dependencies": [] + }, + { + "name": "boolean_selector", + "version": "2.1.2", + "dependencies": [ + "source_span", + "string_scanner" + ] + }, + { + "name": "async", + "version": "2.13.0", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "analyzer", + "version": "7.7.1", + "dependencies": [ + "_fe_analyzer_shared", + "collection", + "convert", + "crypto", + "glob", + "meta", + "package_config", + "path", + "pub_semver", + "source_span", + "watcher", + "yaml" + ] + }, + { + "name": "shelf_hotreload", + "version": "1.5.0", + "dependencies": [ + "hotreloader", + "logging" + ] + }, + { + "name": "mime", + "version": "2.0.0", + "dependencies": [] + }, + { + "name": "meta", + "version": "1.16.0", + "dependencies": [] + }, + { + "name": "http_parser", + "version": "4.1.2", + "dependencies": [ + "collection", + "source_span", + "string_scanner", + "typed_data" + ] + }, + { + "name": "http_methods", + "version": "1.1.1", + "dependencies": [] + }, + { + "name": "leak_tracker_flutter_testing", + "version": "3.0.10", + "dependencies": [ + "flutter", + "leak_tracker", + "leak_tracker_testing", + "matcher", + "meta" + ] + }, + { + "name": "vector_math", + "version": "2.2.0", + "dependencies": [] + }, + { + "name": "clock", + "version": "1.1.2", + "dependencies": [] + }, + { + "name": "fake_async", + "version": "1.3.3", + "dependencies": [ + "clock", + "collection" + ] + }, + { + "name": "sky_engine", + "version": "0.0.0", + "dependencies": [] + }, + { + "name": "material_color_utilities", + "version": "0.11.1", + "dependencies": [ + "collection" + ] + }, + { + "name": "characters", + "version": "1.4.0", + "dependencies": [] + }, + { + "name": "string_scanner", + "version": "1.4.1", + "dependencies": [ + "source_span" + ] + }, + { + "name": "logging", + "version": "1.3.0", + "dependencies": [] + }, + { + "name": "web_socket", + "version": "1.0.1", + "dependencies": [ + "web" + ] + }, + { + "name": "web", + "version": "1.1.1", + "dependencies": [] + }, + { + "name": "crypto", + "version": "3.0.6", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "vm_service", + "version": "15.0.0", + "dependencies": [] + }, + { + "name": "source_maps", + "version": "0.10.13", + "dependencies": [ + "source_span" + ] + }, + { + "name": "source_map_stack_trace", + "version": "2.1.2", + "dependencies": [ + "path", + "source_maps", + "stack_trace" + ] + }, + { + "name": "glob", + "version": "2.1.3", + "dependencies": [ + "async", + "collection", + "file", + "path", + "string_scanner" + ] + }, + { + "name": "frontend_server_client", + "version": "4.0.0", + "dependencies": [ + "async", + "path" + ] + }, + { + "name": "args", + "version": "2.7.0", + "dependencies": [] + }, + { + "name": "term_glyph", + "version": "1.2.2", + "dependencies": [] + }, + { + "name": "convert", + "version": "3.1.2", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "cli_config", + "version": "0.2.0", + "dependencies": [ + "args", + "yaml" + ] + }, + { + "name": "watcher", + "version": "1.1.2", + "dependencies": [ + "async", + "path" + ] + }, + { + "name": "pub_semver", + "version": "2.2.0", + "dependencies": [ + "collection" + ] + }, + { + "name": "_fe_analyzer_shared", + "version": "85.0.0", + "dependencies": [ + "meta" + ] + }, + { + "name": "hotreloader", + "version": "4.3.0", + "dependencies": [ + "collection", + "logging", + "path", + "stream_transform", + "vm_service", + "watcher" + ] + }, + { + "name": "leak_tracker_testing", + "version": "3.0.2", + "dependencies": [ + "leak_tracker", + "matcher", + "meta" + ] + }, + { + "name": "leak_tracker", + "version": "11.0.1", + "dependencies": [ + "clock", + "collection", + "meta", + "path", + "vm_service" + ] + }, + { + "name": "file", + "version": "7.0.1", + "dependencies": [ + "meta", + "path" + ] + }, + { + "name": "stream_transform", + "version": "2.1.1", + "dependencies": [] + } + ], + "configVersion": 1 +} +'''; diff --git a/bricks/dart_frog_prod_server/hooks/test/pre_gen_test.dart b/bricks/dart_frog_prod_server/hooks/test/pre_gen_test.dart index 5ae6e8dee..bb2caf02f 100644 --- a/bricks/dart_frog_prod_server/hooks/test/pre_gen_test.dart +++ b/bricks/dart_frog_prod_server/hooks/test/pre_gen_test.dart @@ -9,8 +9,9 @@ import 'package:path/path.dart' as path; import 'package:test/test.dart'; import '../pre_gen.dart' as pre_gen; +import 'fixtures/package_configs.dart'; +import 'fixtures/package_graphs.dart'; import 'pubspec_locks.dart'; -import 'pubspecs.dart'; class _FakeHookContext extends Fake implements HookContext { _FakeHookContext({Logger? logger}) : _logger = logger ?? _MockLogger(); @@ -172,15 +173,50 @@ void main() { ); final directory = Directory.systemTemp.createTempSync(); + File( + path.join(directory.path, '.dart_tool', 'package_config.json'), + ) + ..createSync(recursive: true) + ..writeAsStringSync(packageConfigWithDirectAndTransitiveDependencies); + File( + path.join(directory.path, '.dart_tool', 'package_graph.json'), + ) + ..createSync(recursive: true) + ..writeAsStringSync(packageGraphWithDirectAndTransitiveDeps); File( path.join(directory.path, 'pubspec.yaml'), - ).writeAsStringSync(workspaceRoot); + ).writeAsStringSync(''' +name: _ +publish_to: none + +environment: + sdk: ^3.6.0 + +workspace: + - packages/client + - packages/protocol + - packages/models + - packages/server +'''); final server = Directory( path.join(directory.path, 'server'), )..createSync(); File( path.join(server.path, 'pubspec.yaml'), - ).writeAsStringSync(workspaceChild); + ).writeAsStringSync(''' +name: server +description: A new Dart Frog application +version: 1.0.0+1 +publish_to: none +resolution: workspace + +environment: + sdk: ^3.6.0 + +dependencies: + dart_frog: ^1.1.0 + protocol: ^1.0.0 +'''); File( path.join(server.path, 'pubspec.lock'), ).writeAsStringSync(''' diff --git a/bricks/dart_frog_prod_server/hooks/test/pubspecs.dart b/bricks/dart_frog_prod_server/hooks/test/pubspecs.dart deleted file mode 100644 index 5dca910f7..000000000 --- a/bricks/dart_frog_prod_server/hooks/test/pubspecs.dart +++ /dev/null @@ -1,20 +0,0 @@ -/// An artificially crafted `pubspec.yaml` file with: -/// -/// * A direct main path dependency that is a child of the project directory. -/// * Dart workspaces enabled -const workspaceRoot = ''' -name: _ -dependencies: - server: - path: packages/server -workspace: - - packages/server -'''; - -/// An artificially crafted `pubspec.yaml` file with: -/// -/// * Dart workspaces enabled -const workspaceChild = ''' -name: server -resolution: workspace -'''; diff --git a/bricks/dart_frog_prod_server/hooks/test/src/disable_workspace_resolution_test.dart b/bricks/dart_frog_prod_server/hooks/test/src/disable_workspace_resolution_test.dart index de811941c..53c750f75 100644 --- a/bricks/dart_frog_prod_server/hooks/test/src/disable_workspace_resolution_test.dart +++ b/bricks/dart_frog_prod_server/hooks/test/src/disable_workspace_resolution_test.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart'; import 'package:mason/mason.dart'; import 'package:mocktail/mocktail.dart'; +import 'package:package_config/package_config.dart' hide Package; import 'package:path/path.dart' as path; import 'package:test/test.dart'; @@ -10,20 +11,48 @@ class _MockHookContext extends Mock implements HookContext {} class _MockLogger extends Mock implements Logger {} +class _MockPackageConfig extends Mock implements PackageConfig {} + +class _MockPackageGraph extends Mock implements PackageGraph {} + void main() { group('disableWorkspaceResolution', () { + const packageName = 'server'; + late List exitCalls; late HookContext context; late Logger logger; + late Directory rootDirectory; late Directory projectDirectory; + late PackageConfig packageConfig; + late PackageGraph packageGraph; setUp(() { exitCalls = []; context = _MockHookContext(); logger = _MockLogger(); - projectDirectory = Directory.systemTemp.createTempSync('project'); + rootDirectory = Directory.systemTemp.createTempSync('root'); + projectDirectory = Directory( + path.join(rootDirectory.path, 'packages', 'project'), + )..createSync(recursive: true); + File(path.join(projectDirectory.path, 'pubspec.yaml')) + .writeAsStringSync('name: "$packageName"'); + packageConfig = _MockPackageConfig(); + packageGraph = _MockPackageGraph(); when(() => context.logger).thenReturn(logger); + when(() => packageGraph.roots).thenReturn([packageName]); + when(() => packageGraph.packages).thenReturn( + [ + const Package( + name: packageName, + dependencies: [], + devDependencies: [], + version: '1.0.0', + ), + ], + ); + when(() => packageConfig.packages).thenReturn([]); addTearDown(() => projectDirectory.delete().ignore()); }); @@ -32,15 +61,23 @@ void main() { test('adds resolution: null', () { disableWorkspaceResolution( context, + packageConfig: packageConfig, + packageGraph: packageGraph, projectDirectory: projectDirectory.path, + workspaceRoot: rootDirectory.path, exit: exitCalls.add, ); final contents = projectDirectory.listSync(); - expect(contents, hasLength(1)); - final pubspecOverrides = contents.first as File; + expect(contents, hasLength(2)); + final pubspecOverrides = contents.firstWhere( + (p) => path.basename(p.path) == 'pubspec_overrides.yaml', + ) as File; expect( pubspecOverrides.readAsStringSync(), - equals('resolution: null'), + equals(''' +resolution: null +dependency_overrides: {} +'''), ); }); }); @@ -60,12 +97,17 @@ dependency_overrides: test('adds resolution: null', () { disableWorkspaceResolution( context, + packageConfig: packageConfig, + packageGraph: packageGraph, projectDirectory: projectDirectory.path, + workspaceRoot: rootDirectory.path, exit: exitCalls.add, ); final contents = projectDirectory.listSync(); - expect(contents, hasLength(1)); - final pubspecOverrides = contents.first as File; + expect(contents, hasLength(2)); + final pubspecOverrides = contents.firstWhere( + (p) => path.basename(p.path) == 'pubspec_overrides.yaml', + ) as File; expect( pubspecOverrides.readAsStringSync(), equals( @@ -89,11 +131,14 @@ resolution: null test('exits with error', () { disableWorkspaceResolution( context, + packageConfig: packageConfig, + packageGraph: packageGraph, projectDirectory: projectDirectory.path, + workspaceRoot: rootDirectory.path, exit: exitCalls.add, ); final contents = projectDirectory.listSync(); - expect(contents, hasLength(1)); + expect(contents, hasLength(2)); expect(exitCalls, equals([1])); verify( () => logger.err(any(that: contains('Permission denied'))), From 0cd0ee84013d6bff6ccec6a11796f92d26d590b2 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 20:49:25 -0500 Subject: [PATCH 06/10] regen bundle --- .../dart_frog_prod_server_bundle.dart | 102 +++++++++++++----- 1 file changed, 75 insertions(+), 27 deletions(-) diff --git a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart index 3d115b995..3cf2cc7e5 100644 --- a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart +++ b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart @@ -25,16 +25,22 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ } ], "hooks": [ + { + "path": ".dart_tool/build/entrypoint/build.dart", + "data": + "Ly8gQGRhcnQ9My42Ci8vIGlnbm9yZV9mb3JfZmlsZTogZGlyZWN0aXZlc19vcmRlcmluZwovLyBidWlsZF9ydW5uZXIgPj0yLjQuMTYKLy8gaWdub3JlX2Zvcl9maWxlOiBub19sZWFkaW5nX3VuZGVyc2NvcmVzX2Zvcl9saWJyYXJ5X3ByZWZpeGVzCmltcG9ydCAncGFja2FnZTpidWlsZF9ydW5uZXIvc3JjL3BhY2thZ2VfZ3JhcGgvYXBwbHlfYnVpbGRlcnMuZGFydCcgYXMgX2kxOwppbXBvcnQgJ3BhY2thZ2U6anNvbl9zZXJpYWxpemFibGUvYnVpbGRlci5kYXJ0JyBhcyBfaTI7CmltcG9ydCAncGFja2FnZTpzb3VyY2VfZ2VuL2J1aWxkZXIuZGFydCcgYXMgX2kzOwppbXBvcnQgJ2RhcnQ6aXNvbGF0ZScgYXMgX2k0OwppbXBvcnQgJ3BhY2thZ2U6YnVpbGRfcnVubmVyL3NyYy9idWlsZF9zY3JpcHRfZ2VuZXJhdGUvYnVpbGRfcHJvY2Vzc19zdGF0ZS5kYXJ0JwogICAgYXMgX2k1OwppbXBvcnQgJ3BhY2thZ2U6YnVpbGRfcnVubmVyL2J1aWxkX3J1bm5lci5kYXJ0JyBhcyBfaTY7CmltcG9ydCAnZGFydDppbycgYXMgX2k3OwoKZmluYWwgX2J1aWxkZXJzID0gPF9pMS5CdWlsZGVyQXBwbGljYXRpb24+WwogIF9pMS5hcHBseSgKICAgIHInanNvbl9zZXJpYWxpemFibGU6anNvbl9zZXJpYWxpemFibGUnLAogICAgW19pMi5qc29uU2VyaWFsaXphYmxlXSwKICAgIF9pMS50b0RlcGVuZGVudHNPZihyJ2pzb25fc2VyaWFsaXphYmxlJyksCiAgICBoaWRlT3V0cHV0OiB0cnVlLAogICAgYXBwbGllc0J1aWxkZXJzOiBjb25zdCBbcidzb3VyY2VfZ2VuOmNvbWJpbmluZ19idWlsZGVyJ10sCiAgKSwKICBfaTEuYXBwbHkoCiAgICByJ3NvdXJjZV9nZW46Y29tYmluaW5nX2J1aWxkZXInLAogICAgW19pMy5jb21iaW5pbmdCdWlsZGVyXSwKICAgIF9pMS50b05vbmVCeURlZmF1bHQoKSwKICAgIGhpZGVPdXRwdXQ6IGZhbHNlLAogICAgYXBwbGllc0J1aWxkZXJzOiBjb25zdCBbcidzb3VyY2VfZ2VuOnBhcnRfY2xlYW51cCddLAogICksCiAgX2kxLmFwcGx5UG9zdFByb2Nlc3MoCiAgICByJ3NvdXJjZV9nZW46cGFydF9jbGVhbnVwJywKICAgIF9pMy5wYXJ0Q2xlYW51cCwKICApLApdOwp2b2lkIG1haW4oCiAgTGlzdDxTdHJpbmc+IGFyZ3MsIFsKICBfaTQuU2VuZFBvcnQ/IHNlbmRQb3J0LApdKSBhc3luYyB7CiAgYXdhaXQgX2k1LmJ1aWxkUHJvY2Vzc1N0YXRlLnJlY2VpdmUoc2VuZFBvcnQpOwogIF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5pc29sYXRlRXhpdENvZGUgPSBhd2FpdCBfaTYucnVuKAogICAgYXJncywKICAgIF9idWlsZGVycywKICApOwogIF9pNy5leGl0Q29kZSA9IF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5pc29sYXRlRXhpdENvZGUhOwogIGF3YWl0IF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5zZW5kKHNlbmRQb3J0KTsKfQo=", + "type": "text" + }, { "path": "build/lib/dart_frog_prod_server_hooks.dart", "data": - "ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL3VzZXNfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7Cg==", + "ZXhwb3J0ICdzcmMvY29weV93b3Jrc3BhY2VfcHVic3BlY19sb2NrLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfYnVuZGxlLmRhcnQnOwpleHBvcnQgJ3NyYy9jcmVhdGVfZXh0ZXJuYWxfcGFja2FnZXNfZm9sZGVyLmRhcnQnOwpleHBvcnQgJ3NyYy9kYXJ0X3B1Yl9nZXQuZGFydCc7CmV4cG9ydCAnc3JjL2Rpc2FibGVfd29ya3NwYWNlX3Jlc29sdXRpb24uZGFydCc7CmV4cG9ydCAnc3JjL2V4aXRfb3ZlcnJpZGVzLmRhcnQnOwpleHBvcnQgJ3NyYy9nZXRfaW50ZXJuYWxfcGF0aF9kZXBlbmRlbmNpZXMuZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wYWNrYWdlX2NvbmZpZy5kYXJ0JzsKZXhwb3J0ICdzcmMvZ2V0X3BhY2thZ2VfZ3JhcGguZGFydCc7CmV4cG9ydCAnc3JjL2dldF9wdWJzcGVjX2xvY2suZGFydCc7CmV4cG9ydCAnc3JjL2dldF93b3Jrc3BhY2Vfcm9vdC5kYXJ0JzsKZXhwb3J0ICdzcmMvcGFja2FnZV9ncmFwaC9wYWNrYWdlX2dyYXBoLmRhcnQnOwpleHBvcnQgJ3NyYy91c2VzX3dvcmtzcGFjZV9yZXNvbHV0aW9uLmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwo=", "type": "text" }, { "path": "build/lib/src/copy_workspace_pubspec_lock.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CgovLy8gQ29waWVzIHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkKLy8vIGluIG9yZGVyIHRvIGVuc3VyZSB0aGUgcHJvZHVjdGlvbiBidWlsZCB1c2VzIHRoZSBleGFjdCBzYW1lIHZlcnNpb25zIG9mIGFsbAovLy8gZGVwZW5kZW5jaWVzLgp2b2lkIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gX2dldFdvcmtzcGFjZVJvb3QocHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHByb2plY3REaXJlY3RvcnknLAogICAgKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgZmluYWwgcHVic3BlY0xvY2tGaWxlID0gRmlsZShwYXRoLmpvaW4od29ya3NwYWNlUm9vdC5wYXRoLCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuOwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KfQoKLy8vIFJldHVybnMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBuZWFyZXN0IERhcnQgd29ya3NwYWNlLgpEaXJlY3Rvcnk/IF9nZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==", + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKLy8vIENvcGllcyB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IGludG8gdGhlIHByb2plY3QgZGlyZWN0b3J5Ci8vLyBpbiBvcmRlciB0byBlbnN1cmUgdGhlIHByb2R1Y3Rpb24gYnVpbGQgdXNlcyB0aGUgZXhhY3Qgc2FtZSB2ZXJzaW9ucyBvZiBhbGwKLy8vIGRlcGVuZGVuY2llcy4KVm9pZENhbGxiYWNrIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICBIb29rQ29udGV4dCBjb250ZXh0LCB7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgU3RyaW5nIHdvcmtzcGFjZVJvb3QsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIHsKICBmaW5hbCBwdWJzcGVjTG9ja0ZpbGUgPSBGaWxlKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAncHVic3BlYy5sb2NrJykpOwogIGlmICghcHVic3BlY0xvY2tGaWxlLmV4aXN0c1N5bmMoKSkgcmV0dXJuICgpIHt9OwoKICB0cnkgewogICAgcHVic3BlY0xvY2tGaWxlLmNvcHlTeW5jKHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJykpOwogICAgcmV0dXJuICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMubG9jaycpKS5kZWxldGUoKS5pZ25vcmUoKTsKICAgIH07CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsKICB9Cn0K", "type": "text" }, { @@ -52,13 +58,13 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "build/lib/src/dart_pub_get.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCn0pIGFzeW5jIHsKICBmaW5hbCBwcm9ncmVzcyA9IGNvbnRleHQubG9nZ2VyLnByb2dyZXNzKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcycpOwogIHRyeSB7CiAgICBmaW5hbCByZXN1bHQgPSBhd2FpdCBydW5Qcm9jZXNzKAogICAgICAnZGFydCcsCiAgICAgIFsncHViJywgJ2dldCddLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LAogICAgICBydW5JblNoZWxsOiB0cnVlLAogICAgKTsKICAgIHByb2dyZXNzLmNvbXBsZXRlKCk7CgogICAgaWYgKHJlc3VsdC5leGl0Q29kZSAhPSAwKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycignJHtyZXN1bHQuc3RkZXJyfScpOwogICAgICByZXR1cm4gZXhpdChyZXN1bHQuZXhpdENvZGUpOwogICAgfQogIH0gb24gaW8uUHJvY2Vzc0V4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycihlcnJvci5tZXNzYWdlKTsKICAgIHJldHVybiBleGl0KGVycm9yLmVycm9yQ29kZSk7CiAgfQp9Cg==", + "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKCnR5cGVkZWYgUHJvY2Vzc1J1bm5lciA9IEZ1dHVyZTxpby5Qcm9jZXNzUmVzdWx0PiBGdW5jdGlvbigKICBTdHJpbmcgZXhlY3V0YWJsZSwKICBMaXN0PFN0cmluZz4gYXJndW1lbnRzLCB7CiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksCiAgYm9vbCBydW5JblNoZWxsLAp9KTsKCkZ1dHVyZTx2b2lkPiBkYXJ0UHViR2V0KAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgd29ya2luZ0RpcmVjdG9yeSwKICByZXF1aXJlZCBQcm9jZXNzUnVubmVyIHJ1blByb2Nlc3MsCiAgcmVxdWlyZWQgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQsCiAgU3RyaW5nIG1lc3NhZ2UgPSAnSW5zdGFsbGluZyBkZXBlbmRlbmNpZXMnLAp9KSBhc3luYyB7CiAgZmluYWwgcHJvZ3Jlc3MgPSBjb250ZXh0LmxvZ2dlci5wcm9ncmVzcyhtZXNzYWdlKTsKICB0cnkgewogICAgZmluYWwgcmVzdWx0ID0gYXdhaXQgcnVuUHJvY2VzcygKICAgICAgJ2RhcnQnLAogICAgICBbJ3B1YicsICdnZXQnXSwKICAgICAgd29ya2luZ0RpcmVjdG9yeTogd29ya2luZ0RpcmVjdG9yeSwKICAgICAgcnVuSW5TaGVsbDogdHJ1ZSwKICAgICk7CiAgICBwcm9ncmVzcy5jb21wbGV0ZSgpOwoKICAgIGlmIChyZXN1bHQuZXhpdENvZGUgIT0gMCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyR7cmVzdWx0LnN0ZGVycn0nKTsKICAgICAgcmV0dXJuIGV4aXQocmVzdWx0LmV4aXRDb2RlKTsKICAgIH0KICB9IG9uIGlvLlByb2Nlc3NFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoZXJyb3IubWVzc2FnZSk7CiAgICByZXR1cm4gZXhpdChlcnJvci5lcnJvckNvZGUpOwogIH0KfQo=", "type": "text" }, { "path": "build/lib/src/disable_workspace_resolution.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIEEgdm9pZCBjYWxsYmFjayBmdW5jdGlvbiAoZS5nLiBgdm9pZCBGdW5jdGlvbigpYCkuCnR5cGVkZWYgVm9pZENhbGxiYWNrID0gdm9pZCBGdW5jdGlvbigpOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIHRyeSB7CiAgICByZXR1cm4gb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KfQoKVm9pZENhbGxiYWNrIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhTdHJpbmcgcHJvamVjdERpcmVjdG9yeSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CgogIGlmICghcHVic3BlY092ZXJyaWRlc0ZpbGUuZXhpc3RzU3luYygpKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuIHB1YnNwZWNPdmVycmlkZXNGaWxlLmRlbGV0ZVN5bmM7CiAgfQoKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA/OwoKICBpZiAocHVic3BlY092ZXJyaWRlcyA9PSBudWxsKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKICB9CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzWydyZXNvbHV0aW9uJ10gPT0gJ251bGwnKSByZXR1cm4gKCkge307IC8vIG5vLW9wCgogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpLi51cGRhdGUoWydyZXNvbHV0aW9uJ10sIG51bGwpOwogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKCiAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKfQo=", + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCcKICAgIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGFja2FnZV9jb25maWcvcGFja2FnZV9jb25maWdfdHlwZXMuZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnlhbWxfZWRpdC95YW1sX2VkaXQuZGFydCc7CgovLy8gT3B0cyBvdXQgb2YgZGFydCB3b3Jrc3BhY2VzIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXIgcGFja2FnZSBsb2NrZmlsZXMuCi8vLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NApWb2lkQ2FsbGJhY2sgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIHJlcXVpcmVkIFBhY2thZ2VDb25maWcgcGFja2FnZUNvbmZpZywKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAogIHJlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIFN0cmluZyB3b3Jrc3BhY2VSb290LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSB7CiAgZmluYWwgVm9pZENhbGxiYWNrIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwogIHRyeSB7CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcygKICAgICAgcHJvamVjdERpcmVjdG9yeSwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gKCkge307IC8vIG5vLW9wCiAgfQoKICB0cnkgewogICAgb3ZlcnJpZGVQYXRoRGVwZW5kZW5jaWVzSW5QdWJzcGVjT3ZlcnJpZGVzKAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uKCk7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KCiAgcmV0dXJuIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwp9CgovLy8gQWRkIHJlc29sdXRpb246bnVsbCB0byBwdWJzcGVjX292ZXJyaWRlcy55YW1sLgpWb2lkQ2FsbGJhY2sgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5KSB7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKCiAgaWYgKCFwdWJzcGVjT3ZlcnJpZGVzRmlsZS5leGlzdHNTeW5jKCkpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gcHVic3BlY092ZXJyaWRlc0ZpbGUuZGVsZXRlU3luYzsKICB9CgogIGZpbmFsIGNvbnRlbnRzID0gcHVic3BlY092ZXJyaWRlc0ZpbGUucmVhZEFzU3RyaW5nU3luYygpOwogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXMgPSBsb2FkWWFtbChjb250ZW50cykgYXMgWWFtbE1hcD87CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzID09IG51bGwpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwogIH0KCiAgaWYgKHB1YnNwZWNPdmVycmlkZXNbJ3Jlc29sdXRpb24nXSA9PSAnbnVsbCcpIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKCiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cykuLnVwZGF0ZShbJ3Jlc29sdXRpb24nXSwgbnVsbCk7CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwp9CgovLy8gQWRkIG92ZXJyaWRlcyBmb3IgYWxsIHBhdGggZGVwZW5kZW5jaWVzIHRvIGBwdWJzcGVjX292ZXJyaWRlcy55YW1sYAp2b2lkIG92ZXJyaWRlUGF0aERlcGVuZGVuY2llc0luUHVic3BlY092ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnLAogIHJlcXVpcmVkIFBhY2thZ2VHcmFwaCBwYWNrYWdlR3JhcGgsCn0pIHsKICBmaW5hbCBuYW1lID0gZ2V0UGFja2FnZU5hbWUocHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKG5hbWUgPT0gbnVsbCkgewogICAgdGhyb3cgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcGFyc2UgIm5hbWUiIGZyb20gcHVic3BlYy55YW1sJyk7CiAgfQoKICBmaW5hbCBwcm9kdWN0aW9uRGVwcyA9IGdldFByb2R1Y3Rpb25EZXBlbmRlbmNpZXMoCiAgICBwYWNrYWdlTmFtZTogbmFtZSwKICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICk7CgogIGZpbmFsIHBhdGhEZXBlbmRlbmNpZXMgPSBwYWNrYWdlQ29uZmlnLnBhY2thZ2VzLndoZXJlKAogICAgKHBhY2thZ2UpID0+IHBhY2thZ2UucmVsYXRpdmVSb290ICYmIHByb2R1Y3Rpb25EZXBzLmNvbnRhaW5zKHBhY2thZ2UubmFtZSksCiAgKTsKCiAgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcygKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBwYXRoRGVwZW5kZW5jaWVzOiBwYXRoRGVwZW5kZW5jaWVzLAogICk7Cn0KCnZvaWQgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgSXRlcmFibGU8UGFja2FnZT4gcGF0aERlcGVuZGVuY2llcywKfSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgb3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA7CiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cyk7CiAgaWYgKCFvdmVycmlkZXMuY29udGFpbnNLZXkoJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJykpIHsKICAgIGVkaXRvci51cGRhdGUoWydkZXBlbmRlbmN5X292ZXJyaWRlcyddLCB7fSk7CiAgfQogIGZvciAoZmluYWwgcGFja2FnZSBpbiBwYXRoRGVwZW5kZW5jaWVzKSB7CiAgICBlZGl0b3IudXBkYXRlKAogICAgICBbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJywgcGFja2FnZS5uYW1lXSwKICAgICAgeydwYXRoJzogcGF0aC5yZWxhdGl2ZShwYWNrYWdlLnJvb3QucGF0aCwgZnJvbTogcHJvamVjdERpcmVjdG9yeSl9LAogICAgKTsKICB9CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwp9CgovLy8gRXh0cmFjdCB0aGUgcGFja2FnZSBuYW1lIGZyb20gdGhlIHB1YnNwZWMueWFtbCBpbiBbcHJvamVjdERpcmVjdG9yeV0uClN0cmluZz8gZ2V0UGFja2FnZU5hbWUoe3JlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5fSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBmaW5hbCBwdWJzcGVjID0gbG9hZFlhbWwocHVic3BlY0ZpbGUucmVhZEFzU3RyaW5nU3luYygpKTsKICBpZiAocHVic3BlYyBpcyEgWWFtbE1hcCkgcmV0dXJuIG51bGw7CgogIGZpbmFsIG5hbWUgPSBwdWJzcGVjWyduYW1lJ107CiAgaWYgKG5hbWUgaXMhIFN0cmluZykgcmV0dXJuIG51bGw7CgogIHJldHVybiBuYW1lOwp9CgovLy8gQnVpbGQgYSBjb21wbGV0ZSBsaXN0IG9mIGRlcGVuZGVuY2llcyAoZGlyZWN0IGFuZCB0cmFuc2l0aXZlKS4KU2V0PFN0cmluZz4gZ2V0UHJvZHVjdGlvbkRlcGVuZGVuY2llcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHBhY2thZ2VOYW1lLAogIHJlcXVpcmVkIFBhY2thZ2VHcmFwaCBwYWNrYWdlR3JhcGgsCn0pIHsKICBmaW5hbCBkZXBlbmRlbmNpZXMgPSA8U3RyaW5nPnt9OwogIGZpbmFsIHJvb3QgPSBwYWNrYWdlR3JhcGgucm9vdHMuZmlyc3RXaGVyZSgocm9vdCkgPT4gcm9vdCA9PSBwYWNrYWdlTmFtZSk7CiAgZmluYWwgcm9vdFBhY2thZ2UgPSBwYWNrYWdlR3JhcGgucGFja2FnZXMuZmlyc3RXaGVyZSgocCkgPT4gcC5uYW1lID09IHJvb3QpOwogIGZpbmFsIGRlcGVuZGVuY2llc1RvVmlzaXQgPSA8U3RyaW5nPlsuLi5yb290UGFja2FnZS5kZXBlbmRlbmNpZXNdOwoKICBkbyB7CiAgICBmaW5hbCBkaXNjb3ZlcmVkRGVwZW5kZW5jaWVzID0gPFN0cmluZz5bXTsKICAgIGZvciAoZmluYWwgZGVwZW5kZW5jeVRvVmlzaXQgaW4gZGVwZW5kZW5jaWVzVG9WaXNpdCkgewogICAgICBmaW5hbCBwYWNrYWdlID0gcGFja2FnZUdyYXBoLnBhY2thZ2VzLmZpcnN0V2hlcmUoCiAgICAgICAgKHApID0+IHAubmFtZSA9PSBkZXBlbmRlbmN5VG9WaXNpdCwKICAgICAgKTsKICAgICAgZGVwZW5kZW5jaWVzLmFkZChwYWNrYWdlLm5hbWUpOwogICAgICBmb3IgKGZpbmFsIHBhY2thZ2VEZXBlbmRlbmN5IGluIHBhY2thZ2UuZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgLy8gQXZvaWQgaW5maW5pdGUgbG9vcHMgZnJvbSBkZXBlbmRlbmN5IGN5Y2xlcyAoY2lyY3VsYXIgZGVwZW5kZW5jaWVzKS4KICAgICAgICBpZiAoZGVwZW5kZW5jaWVzLmNvbnRhaW5zKHBhY2thZ2VEZXBlbmRlbmN5KSkgY29udGludWU7CiAgICAgICAgZGlzY292ZXJlZERlcGVuZGVuY2llcy5hZGQocGFja2FnZURlcGVuZGVuY3kpOwogICAgICB9CiAgICB9CiAgICBkZXBlbmRlbmNpZXNUb1Zpc2l0CiAgICAgIC4uY2xlYXIoKQogICAgICAuLmFkZEFsbChkaXNjb3ZlcmVkRGVwZW5kZW5jaWVzKTsKICB9IHdoaWxlIChkZXBlbmRlbmNpZXNUb1Zpc2l0LmlzTm90RW1wdHkpOwogIHJldHVybiBkZXBlbmRlbmNpZXM7Cn0K", "type": "text" }, { @@ -73,12 +79,42 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ "aW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CgpGdXR1cmU8TGlzdDxTdHJpbmc+PiBnZXRJbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMoaW8uRGlyZWN0b3J5IGRpcmVjdG9yeSkgYXN5bmMgewogIGZpbmFsIHB1YnNwZWNMb2NrID0gYXdhaXQgZ2V0UHVic3BlY0xvY2soZGlyZWN0b3J5LnBhdGgpOwoKICBmaW5hbCBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMgPSBwdWJzcGVjTG9jay5wYWNrYWdlcy53aGVyZSgKICAgIChkZXBlbmRlbmN5KSB7CiAgICAgIGZpbmFsIHBhdGhEZXNjcmlwdGlvbiA9IGRlcGVuZGVuY3kucGF0aERlc2NyaXB0aW9uOwogICAgICBpZiAocGF0aERlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBwYXRoLmlzV2l0aGluKCcnLCBwYXRoRGVzY3JpcHRpb24ucGF0aCk7CiAgICB9LAogICk7CgogIHJldHVybiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMKICAgICAgLm1hcCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5wYXRoRGVzY3JpcHRpb24hLnBhdGgpCiAgICAgIC50b0xpc3QoKTsKfQo=", "type": "text" }, + { + "path": "build/lib/src/get_package_config.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYWNrYWdlX2NvbmZpZy9wYWNrYWdlX2NvbmZpZ190eXBlcy5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKUGFja2FnZUNvbmZpZz8gZ2V0UGFja2FnZUNvbmZpZygKICBTdHJpbmcgd29ya3NwYWNlUm9vdCwgewogIHBhdGguQ29udGV4dD8gcGF0aENvbnRleHQsCn0pIHsKICBmaW5hbCBwYXRoUmVzb2x2ZXIgPSBwYXRoQ29udGV4dCA/PyBwYXRoLmNvbnRleHQ7CiAgZmluYWwgcGFja2FnZUNvbmZpZ0ZpbGUgPSBGaWxlKAogICAgcGF0aFJlc29sdmVyLmpvaW4od29ya3NwYWNlUm9vdCwgJy5kYXJ0X3Rvb2wvcGFja2FnZV9jb25maWcuanNvbicpLAogICk7CiAgaWYgKCFwYWNrYWdlQ29uZmlnRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwoKICB0cnkgewogICAgZmluYWwgY29udGVudCA9IHBhY2thZ2VDb25maWdGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICAgIHJldHVybiBQYWNrYWdlQ29uZmlnLnBhcnNlU3RyaW5nKGNvbnRlbnQsIHBhY2thZ2VDb25maWdGaWxlLnVyaSk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==", + "type": "text" + }, + { + "path": "build/lib/src/get_package_graph.dart", + "data": + "aW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CgpQYWNrYWdlR3JhcGg/IGdldFBhY2thZ2VHcmFwaChTdHJpbmcgd29ya3NwYWNlUm9vdCkgewogIHRyeSB7CiAgICByZXR1cm4gUGFja2FnZUdyYXBoLmxvYWQod29ya3NwYWNlUm9vdCk7CiAgfSBvbiBFeGNlcHRpb24gewogICAgcmV0dXJuIG51bGw7CiAgfQp9Cg==", + "type": "text" + }, { "path": "build/lib/src/get_pubspec_lock.dart", "data": "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3Mvc3JjL3B1YnNwZWNfbG9jay9wdWJzcGVjX2xvY2suZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCkZ1dHVyZTxQdWJzcGVjTG9jaz4gZ2V0UHVic3BlY0xvY2soCiAgU3RyaW5nIHdvcmtpbmdEaXJlY3RvcnksIHsKICBwYXRoLkNvbnRleHQ/IHBhdGhDb250ZXh0LAp9KSBhc3luYyB7CiAgZmluYWwgcGF0aFJlc29sdmVyID0gcGF0aENvbnRleHQgPz8gcGF0aC5jb250ZXh0OwogIGZpbmFsIHB1YnNwZWNMb2NrRmlsZSA9IEZpbGUoCiAgICB3b3JraW5nRGlyZWN0b3J5LmlzRW1wdHkKICAgICAgICA/ICdwdWJzcGVjLmxvY2snCiAgICAgICAgOiBwYXRoUmVzb2x2ZXIuam9pbih3b3JraW5nRGlyZWN0b3J5LCAncHVic3BlYy5sb2NrJyksCiAgKTsKCiAgZmluYWwgY29udGVudCA9IGF3YWl0IHB1YnNwZWNMb2NrRmlsZS5yZWFkQXNTdHJpbmcoKTsKICByZXR1cm4gUHVic3BlY0xvY2suZnJvbVN0cmluZyhjb250ZW50KTsKfQo=", "type": "text" }, + { + "path": "build/lib/src/get_workspace_root.dart", + "data": + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKCi8vLyBSZXR1cm5zIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgbmVhcmVzdCBEYXJ0IHdvcmtzcGFjZS4KRGlyZWN0b3J5PyBnZXRXb3Jrc3BhY2VSb290KFN0cmluZyB3b3JraW5nRGlyZWN0b3J5KSB7CiAgZmluYWwgZmlsZSA9IF9maW5kTmVhcmVzdEFuY2VzdG9yKAogICAgd2hlcmU6IChwYXRoKSA9PiBfZ2V0V29ya3NwYWNlUm9vdFB1YnNwZWNZYW1sKGN3ZDogRGlyZWN0b3J5KHBhdGgpKSwKICAgIGN3ZDogRGlyZWN0b3J5KHdvcmtpbmdEaXJlY3RvcnkpLAogICk7CiAgaWYgKGZpbGUgPT0gbnVsbCB8fCAhZmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogIHJldHVybiBEaXJlY3RvcnkocGF0aC5kaXJuYW1lKGZpbGUucGF0aCkpOwp9CgovLy8gVGhlIHdvcmtzcGFjZSByb290IGBwdWJzcGVjLnlhbWxgIGZpbGUgZm9yIHRoaXMgcHJvamVjdC4KRmlsZT8gX2dldFdvcmtzcGFjZVJvb3RQdWJzcGVjWWFtbCh7cmVxdWlyZWQgRGlyZWN0b3J5IGN3ZH0pIHsKICB0cnkgewogICAgZmluYWwgcHVic3BlY1lhbWxGaWxlID0gRmlsZShwYXRoLmpvaW4oY3dkLnBhdGgsICdwdWJzcGVjLnlhbWwnKSk7CiAgICBpZiAoIXB1YnNwZWNZYW1sRmlsZS5leGlzdHNTeW5jKCkpIHJldHVybiBudWxsOwogICAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNZYW1sRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpOwogICAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwogICAgZmluYWwgd29ya3NwYWNlID0gcHVic3BlY1snd29ya3NwYWNlJ10gYXMgTGlzdD87CiAgICBpZiAod29ya3NwYWNlPy5pc0VtcHR5ID8/IHRydWUpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHB1YnNwZWNZYW1sRmlsZTsKICB9IG9uIEV4Y2VwdGlvbiB7CiAgICByZXR1cm4gbnVsbDsKICB9Cn0KCi8vLyBGaW5kcyBuZWFyZXN0IGFuY2VzdG9yIGZpbGUKLy8vIHJlbGF0aXZlIHRvIHRoZSBbY3dkXSB0aGF0IHNhdGlzZmllcyBbd2hlcmVdLgpGaWxlPyBfZmluZE5lYXJlc3RBbmNlc3Rvcih7CiAgcmVxdWlyZWQgRmlsZT8gRnVuY3Rpb24oU3RyaW5nIHBhdGgpIHdoZXJlLAogIHJlcXVpcmVkIERpcmVjdG9yeSBjd2QsCn0pIHsKICBEaXJlY3Rvcnk/IHByZXY7CiAgdmFyIGRpciA9IGN3ZDsKICB3aGlsZSAocHJldj8ucGF0aCAhPSBkaXIucGF0aCkgewogICAgZmluYWwgZmlsZSA9IHdoZXJlKGRpci5wYXRoKTsKICAgIGlmIChmaWxlPy5leGlzdHNTeW5jKCkgPz8gZmFsc2UpIHJldHVybiBmaWxlOwogICAgcHJldiA9IGRpcjsKICAgIGRpciA9IGRpci5wYXJlbnQ7CiAgfQogIHJldHVybiBudWxsOwp9Cg==", + "type": "text" + }, + { + "path": "build/lib/src/package_graph/package_graph.dart", + "data": + "aW1wb3J0ICdkYXJ0OmNvbnZlcnQnOwppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmpzb25fYW5ub3RhdGlvbi9qc29uX2Fubm90YXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCnBhcnQgJ3BhY2thZ2VfZ3JhcGguZy5kYXJ0JzsKCkBKc29uU2VyaWFsaXphYmxlKCkKY2xhc3MgUGFja2FnZUdyYXBoIHsKICBjb25zdCBQYWNrYWdlR3JhcGgoewogICAgcmVxdWlyZWQgdGhpcy5yb290cywKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgICByZXF1aXJlZCB0aGlzLmNvbmZpZ1ZlcnNpb24sCiAgfSk7CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmxvYWQoU3RyaW5nIHByb2plY3QpIHsKICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihwcm9qZWN0LCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2dyYXBoLmpzb24nKSk7CiAgICBpZiAoIWZpbGUuZXhpc3RzU3luYygpKSB0aHJvdyBFeGNlcHRpb24oJyR7ZmlsZS5wYXRofSBub3QgZm91bmQnKTsKICAgIHJldHVybiBQYWNrYWdlR3JhcGguZnJvbUpzb24oCiAgICAgIGpzb25EZWNvZGUoZmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpIGFzIE1hcDxTdHJpbmcsIGR5bmFtaWM+LAogICAgKTsKICB9CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oanNvbik7CgogIGZpbmFsIExpc3Q8U3RyaW5nPiByb290czsKICBmaW5hbCBMaXN0PFBhY2thZ2U+IHBhY2thZ2VzOwogIGZpbmFsIGludCBjb25maWdWZXJzaW9uOwp9CgpASnNvblNlcmlhbGl6YWJsZSgpCmNsYXNzIFBhY2thZ2UgewogIGNvbnN0IFBhY2thZ2UoewogICAgcmVxdWlyZWQgdGhpcy5uYW1lLAogICAgcmVxdWlyZWQgdGhpcy52ZXJzaW9uLAogICAgcmVxdWlyZWQgdGhpcy5kZXBlbmRlbmNpZXMsCiAgICByZXF1aXJlZCB0aGlzLmRldkRlcGVuZGVuY2llcywKICB9KTsKCiAgZmFjdG9yeSBQYWNrYWdlLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUZyb21Kc29uKGpzb24pOwoKICBmaW5hbCBTdHJpbmcgbmFtZTsKICBmaW5hbCBTdHJpbmcgdmVyc2lvbjsKCiAgQEpzb25LZXkoZGVmYXVsdFZhbHVlOiA8U3RyaW5nPltdKQogIGZpbmFsIExpc3Q8U3RyaW5nPiBkZXBlbmRlbmNpZXM7CgogIEBKc29uS2V5KGRlZmF1bHRWYWx1ZTogPFN0cmluZz5bXSkKICBmaW5hbCBMaXN0PFN0cmluZz4gZGV2RGVwZW5kZW5jaWVzOwp9Cg==", + "type": "text" + }, + { + "path": "build/lib/src/package_graph/package_graph.g.dart", + "data": + "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogaW1wbGljaXRfZHluYW1pY19wYXJhbWV0ZXIKCnBhcnQgb2YgJ3BhY2thZ2VfZ3JhcGguZGFydCc7CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBKc29uU2VyaWFsaXphYmxlR2VuZXJhdG9yCi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpQYWNrYWdlR3JhcGggXyRQYWNrYWdlR3JhcGhGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2VHcmFwaCcsIGpzb24sICgkY2hlY2tlZENvbnZlcnQpIHsKICAgICAgZmluYWwgdmFsID0gUGFja2FnZUdyYXBoKAogICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAncm9vdHMnLAogICAgICAgICAgKHYpID0+ICh2IGFzIExpc3Q8ZHluYW1pYz4pLm1hcCgoZSkgPT4gZSBhcyBTdHJpbmcpLnRvTGlzdCgpLAogICAgICAgICksCiAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdwYWNrYWdlcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikKICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgIC50b0xpc3QoKSwKICAgICAgICApLAogICAgICAgIGNvbmZpZ1ZlcnNpb246ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdjb25maWdWZXJzaW9uJywKICAgICAgICAgICh2KSA9PiAodiBhcyBudW0pLnRvSW50KCksCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgcmV0dXJuIHZhbDsKICAgIH0pOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2UnLCBqc29uLCAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2UoCiAgICAgICAgbmFtZTogJGNoZWNrZWRDb252ZXJ0KCduYW1lJywgKHYpID0+IHYgYXMgU3RyaW5nKSwKICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgIGRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICAgIGRldkRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICApOwogICAgICByZXR1cm4gdmFsOwogICAgfSk7Cg==", + "type": "text" + }, { "path": "build/lib/src/pubspec_lock/pubspec_lock.dart", "data": @@ -100,13 +136,25 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "build/pre_gen.dart", "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CgogIGlmICh1c2VzV29ya3NwYWNlcykgewogICAgLy8gRGlzYWJsZSB3b3Jrc3BhY2UgcmVzb2x1dGlvbiB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyLXBhY2thZ2UgbG9ja2ZpbGVzLgogICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uID0gZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgICAvLyBDb3B5IHRoZSBwdWJzcGVjLmxvY2sgZnJvbSB0aGUgd29ya3NwYWNlIHJvb3QgdG8gZW5zdXJlIHRoZSBzYW1lIHZlcnNpb25zCiAgICAvLyBvZiBkZXBlbmRlbmNpZXMgYXJlIHVzZWQgaW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQuCiAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgZXhpdDogZXhpdCwKICApOwoKICBmaW5hbCBidWlsZERpcmVjdG9yeSA9IGlvLkRpcmVjdG9yeSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdidWlsZCcpLAogICk7CgogIGF3YWl0IGNyZWF0ZUJ1bmRsZSgKICAgIGNvbnRleHQ6IGNvbnRleHQsCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgZXhpdDogZXhpdCwKICApOwoKICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbj8uY2FsbCgpOwoKICBmaW5hbCBSb3V0ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKICB0cnkgewogICAgY29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbihwcm9qZWN0RGlyZWN0b3J5KTsKICB9IG9uIEV4Y2VwdGlvbiBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGVycm9yJyk7CiAgICByZXR1cm4gZXhpdCgxKTsKICB9CgogIHJlcG9ydFJvdXRlQ29uZmxpY3RzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm91dGVDb25mbGljdDogKAogICAgICBvcmlnaW5hbEZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0ZpbGVQYXRoLAogICAgICBjb25mbGljdGluZ0VuZHBvaW50LAogICAgKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcChvcmlnaW5hbEZpbGVQYXRoKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdGaWxlUGF0aCl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRW5kcG9pbnQpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgcmVwb3J0Um9ndWVSb3V0ZXMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb2d1ZVJvdXRlOiAoZmlsZVBhdGgsIGlkZWFsUGF0aCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm9ndWUgcm91dGUgZGV0ZWN0ZWQuJHtkZWZhdWx0Rm9yZWdyb3VuZC53cmFwKCcgJyl9UmVuYW1lICR7bGlnaHRDeWFuLndyYXAoZmlsZVBhdGgpfSB0byAke2xpZ2h0Q3lhbi53cmFwKGlkZWFsUGF0aCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K", + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICRwcm9qZWN0RGlyZWN0b3J5JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHBhY2thZ2VfY29uZmlnLmpzb24gaXMgdXAgdG8gZGF0ZS4KICAgIGF3YWl0IGRhcnRQdWJHZXQoCiAgICAgIGNvbnRleHQsCiAgICAgIG1lc3NhZ2U6ICdHZW5lcmF0aW5nIHBhY2thZ2UgZ3JhcGgnLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIHJ1blByb2Nlc3M6IHJ1blByb2Nlc3MsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwoKICAgIGZpbmFsIHBhY2thZ2VDb25maWcgPSBnZXRQYWNrYWdlQ29uZmlnKHdvcmtzcGFjZVJvb3QucGF0aCk7CiAgICBpZiAocGFja2FnZUNvbmZpZyA9PSBudWxsKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnVW5hYmxlIHRvIGZpbmQgcGFja2FnZV9jb25maWcuanNvbiBmb3IgJHt3b3Jrc3BhY2VSb290LnBhdGh9JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgZmluYWwgcGFja2FnZUdyYXBoID0gZ2V0UGFja2FnZUdyYXBoKHdvcmtzcGFjZVJvb3QucGF0aCk7CiAgICBpZiAocGFja2FnZUdyYXBoID09IG51bGwpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICdVbmFibGUgdG8gZmluZCBwYWNrYWdlX2dyYXBoLmpzb24gZm9yICR7d29ya3NwYWNlUm9vdC5wYXRofScsCiAgICAgICk7CiAgICAgIHJldHVybiBleGl0KDEpOwogICAgfQoKICAgIC8vIERpc2FibGUgd29ya3NwYWNlIHJlc29sdXRpb24gdW50aWwgd2UgY2FuIGdlbmVyYXRlIHBlci1wYWNrYWdlIGxvY2tmaWxlcy4KICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy80NTk0CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICBjb250ZXh0LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICB3b3Jrc3BhY2VSb290OiB3b3Jrc3BhY2VSb290LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogICAgLy8gQ29weSB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IHRvIGVuc3VyZSB0aGUgc2FtZSB2ZXJzaW9ucwogICAgLy8gb2YgZGVwZW5kZW5jaWVzIGFyZSB1c2VkIGluIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLgogICAgcmV2ZXJ0UHVic3BlY0xvY2sgPSBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgd29ya3NwYWNlUm9vdDogd29ya3NwYWNlUm9vdC5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICB9CgogIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHB1YnNwZWMubG9jayBmaWxlIGlzIHVwIHRvIGRhdGUuCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICBtZXNzYWdlOiAnVXBkYXRpbmcgbG9ja2ZpbGUnLAogICAgd29ya2luZ0RpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgYnVpbGREaXJlY3RvcnkgPSBpby5EaXJlY3RvcnkoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSwKICApOwoKICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICBjb250ZXh0OiBjb250ZXh0LAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24/LmNhbGwoKTsKCiAgZmluYWwgUm91dGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CiAgdHJ5IHsKICAgIGNvbmZpZ3VyYXRpb24gPSBidWlsZENvbmZpZ3VyYXRpb24ocHJvamVjdERpcmVjdG9yeSk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgcmV0dXJuIGV4aXQoMSk7CiAgfQoKICByZXBvcnRSb3V0ZUNvbmZsaWN0cygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvdXRlQ29uZmxpY3Q6ICgKICAgICAgb3JpZ2luYWxGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdFbmRwb2ludCwKICAgICkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm91dGUgY29uZmxpY3QgZGV0ZWN0ZWQuICR7bGlnaHRDeWFuLndyYXAob3JpZ2luYWxGaWxlUGF0aCl9IGFuZCAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRmlsZVBhdGgpfSBib3RoIHJlc29sdmUgdG8gJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0VuZHBvaW50KX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIHJlcG9ydFJvZ3VlUm91dGVzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm9ndWVSb3V0ZTogKGZpbGVQYXRoLCBpZGVhbFBhdGgpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKGZpbGVQYXRoKX0gdG8gJHtsaWdodEN5YW4ud3JhcChpZGVhbFBhdGgpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIHJldmVydFB1YnNwZWNMb2NrPy5jYWxsKCk7CgogIGZpbmFsIGN1c3RvbURvY2tlckZpbGUgPSBpby5GaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ0RvY2tlcmZpbGUnKSwKICApOwogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K", "type": "text" }, { "path": "build/pubspec.yaml", "data": - "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIG1hc29uOiBeMC4xLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=", + "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIGpzb25fYW5ub3RhdGlvbjogXjQuOS4wCiAgbWFzb246IF4wLjEuMAogIHBhY2thZ2VfY29uZmlnOiBeMi4yLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBidWlsZF9ydW5uZXI6IF4yLjguMAogIGpzb25fc2VyaWFsaXphYmxlOiBeNi4xMS4xCiAgbW9ja3RhaWw6IF4xLjAuMAogIHRlc3Q6IF4xLjI1LjAK", + "type": "text" + }, + { + "path": "build/test/fixtures/package_configs.dart", + "data": + "Y29uc3QgcGFja2FnZUNvbmZpZ1dpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwZW5kZW5jaWVzID0gJycnCnsKICAiY29uZmlnVmVyc2lvbiI6IDIsCiAgInBhY2thZ2VzIjogWwogICAgewogICAgICAibmFtZSI6ICJfZmVfYW5hbHl6ZXJfc2hhcmVkIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L19mZV9hbmFseXplcl9zaGFyZWQtODUuMC4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy41IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiYW5hbHl6ZXIiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvYW5hbHl6ZXItNy43LjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjUiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJhcmdzIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2FyZ3MtMi43LjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJhc3luYyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9hc3luYy0yLjEzLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJib29sZWFuX3NlbGVjdG9yIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2Jvb2xlYW5fc2VsZWN0b3ItMi4xLjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjEiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjaGFyYWN0ZXJzIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2NoYXJhY3RlcnMtMS40LjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjbGlfY29uZmlnIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2NsaV9jb25maWctMC4yLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjbG9jayIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9jbG9jay0xLjEuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNvbGxlY3Rpb24iLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvY29sbGVjdGlvbi0xLjE5LjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb252ZXJ0IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2NvbnZlcnQtMy4xLjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb3ZlcmFnZSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9jb3ZlcmFnZS0xLjE1LjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjcnlwdG8iLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvY3J5cHRvLTMuMC42IiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy40IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY3VwZXJ0aW5vX2ljb25zIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2N1cGVydGlub19pY29ucy0xLjAuOCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImRhcnRfZnJvZyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9kYXJ0X2Zyb2ctMS4yLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmYWtlX2FzeW5jIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2Zha2VfYXN5bmMtMS4zLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmaWxlIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2ZpbGUtNy4wLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmbHV0dGVyIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC9EZXZlbG9wbWVudC9naXRodWIuY29tL2ZsdXR0ZXIvZmx1dHRlci9wYWNrYWdlcy9mbHV0dGVyIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy44IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiZmx1dHRlcl9saW50cyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9mbHV0dGVyX2xpbnRzLTUuMC4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy41IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiZmx1dHRlcl90ZXN0IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC9EZXZlbG9wbWVudC9naXRodWIuY29tL2ZsdXR0ZXIvZmx1dHRlci9wYWNrYWdlcy9mbHV0dGVyX3Rlc3QiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjgiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmcm9udGVuZF9zZXJ2ZXJfY2xpZW50IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2Zyb250ZW5kX3NlcnZlcl9jbGllbnQtNC4wLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJnbG9iIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2dsb2ItMi4xLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJob3RyZWxvYWRlciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9ob3RyZWxvYWRlci00LjMuMCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImh0dHBfbWV0aG9kcyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9odHRwX21ldGhvZHMtMS4xLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIyLjEyIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaHR0cF9tdWx0aV9zZXJ2ZXIiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvaHR0cF9tdWx0aV9zZXJ2ZXItMy4yLjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjIiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJodHRwX3BhcnNlciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9odHRwX3BhcnNlci00LjEuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImlvIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2lvLTEuMC41IiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy40IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAianMiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvanMtMC43LjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjciCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJsZWFrX3RyYWNrZXIiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbGVha190cmFja2VyLTExLjAuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImxlYWtfdHJhY2tlcl9mbHV0dGVyX3Rlc3RpbmciLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbGVha190cmFja2VyX2ZsdXR0ZXJfdGVzdGluZy0zLjAuMTAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjIiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJsZWFrX3RyYWNrZXJfdGVzdGluZyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9sZWFrX3RyYWNrZXJfdGVzdGluZy0zLjAuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImxpbnRzIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2xpbnRzLTUuMS4xIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy42IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibG9nZ2luZyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9sb2dnaW5nLTEuMy4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy40IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibWF0Y2hlciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9tYXRjaGVyLTAuMTIuMTciLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJtYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVzLTAuMTEuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjIuMTciCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJtZXRhIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L21ldGEtMS4xNi4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMi4xMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1pbWUiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbWltZS0yLjAuMCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1vY2t0YWlsIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L21vY2t0YWlsLTEuMC40IiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMi4xMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm5vZGVfcHJlYW1ibGUiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbm9kZV9wcmVhbWJsZS0yLjAuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjIuMTIiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJwYWNrYWdlX2NvbmZpZyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9wYWNrYWdlX2NvbmZpZy0yLjIuMCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInBhdGgiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvcGF0aC0xLjkuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInBvb2wiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvcG9vbC0xLjUuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjIuMTIiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJwdWJfc2VtdmVyIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3B1Yl9zZW12ZXItMi4yLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzaGVsZiIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zaGVsZi0xLjQuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNoZWxmX2hvdHJlbG9hZCIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zaGVsZl9ob3RyZWxvYWQtMS41LjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIyLjE3IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic2hlbGZfcGFja2FnZXNfaGFuZGxlciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zaGVsZl9wYWNrYWdlc19oYW5kbGVyLTMuMC4yIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMi4xNyIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNoZWxmX3N0YXRpYyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zaGVsZl9zdGF0aWMtMS4xLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzaGVsZl93ZWJfc29ja2V0IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3NoZWxmX3dlYl9zb2NrZXQtMy4wLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjUiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJza3lfZW5naW5lIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC9EZXZlbG9wbWVudC9naXRodWIuY29tL2ZsdXR0ZXIvZmx1dHRlci9iaW4vY2FjaGUvcGtnL3NreV9lbmdpbmUiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjgiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzb3VyY2VfbWFwX3N0YWNrX3RyYWNlIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3NvdXJjZV9tYXBfc3RhY2tfdHJhY2UtMi4xLjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzb3VyY2VfbWFwcyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zb3VyY2VfbWFwcy0wLjEwLjEzIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy4zIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic291cmNlX3NwYW4iLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvc291cmNlX3NwYW4tMS4xMC4xIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy4xIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic3RhY2tfdHJhY2UiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvc3RhY2tfdHJhY2UtMS4xMi4xIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy40IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic3RyZWFtX2NoYW5uZWwiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvc3RyZWFtX2NoYW5uZWwtMi4xLjQiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzdHJlYW1fdHJhbnNmb3JtIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3N0cmVhbV90cmFuc2Zvcm0tMi4xLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjEiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzdHJpbmdfc2Nhbm5lciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zdHJpbmdfc2Nhbm5lci0xLjQuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInRlcm1fZ2x5cGgiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvdGVybV9nbHlwaC0xLjIuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInRlc3QiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvdGVzdC0xLjI2LjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjUiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ0ZXN0X2FwaSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi90ZXN0X2FwaS0wLjcuNiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInRlc3RfY29yZSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi90ZXN0X2NvcmUtMC42LjExIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy41IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidHlwZWRfZGF0YSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi90eXBlZF9kYXRhLTEuNC4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy41IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidmVjdG9yX21hdGgiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvdmVjdG9yX21hdGgtMi4yLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjEiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ2ZXJ5X2dvb2RfYW5hbHlzaXMiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvdmVyeV9nb29kX2FuYWx5c2lzLTUuMS4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy4wIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidm1fc2VydmljZSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi92bV9zZXJ2aWNlLTE1LjAuMCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMyIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIndhdGNoZXIiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvd2F0Y2hlci0xLjEuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIndlYiIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi93ZWItMS4xLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ3ZWJfc29ja2V0IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3dlYl9zb2NrZXQtMS4wLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ3ZWJfc29ja2V0X2NoYW5uZWwiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvd2ViX3NvY2tldF9jaGFubmVsLTMuMC4zIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy4zIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAid2Via2l0X2luc3BlY3Rpb25fcHJvdG9jb2wiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvd2Via2l0X2luc3BlY3Rpb25fcHJvdG9jb2wtMS4yLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ5YW1sIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3lhbWwtMy4xLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJfIiwKICAgICAgInJvb3RVcmkiOiAiLi4vIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy42IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY2xpZW50IiwKICAgICAgInJvb3RVcmkiOiAiLi4vcGFja2FnZXMvY2xpZW50IiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy44IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAicHJvdG9jb2wiLAogICAgICAicm9vdFVyaSI6ICIuLi9wYWNrYWdlcy9wcm90b2NvbCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuOCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1vZGVscyIsCiAgICAgICJyb290VXJpIjogIi4uL3BhY2thZ2VzL21vZGVscyIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuOCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNlcnZlciIsCiAgICAgICJyb290VXJpIjogIi4uL3BhY2thZ2VzL3NlcnZlciIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNiIKICAgIH0KICBdLAogICJnZW5lcmF0b3IiOiAicHViIiwKICAiZ2VuZXJhdG9yVmVyc2lvbiI6ICIzLjkuMiIsCiAgImZsdXR0ZXJSb290IjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvRGV2ZWxvcG1lbnQvZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIiLAogICJmbHV0dGVyVmVyc2lvbiI6ICIzLjM1LjMiLAogICJwdWJDYWNoZSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUiCn0KJycnOwo=", + "type": "text" + }, + { + "path": "build/test/fixtures/package_graphs.dart", + "data": + "Y29uc3QgcGFja2FnZUdyYXBoV2l0aERpcmVjdEFuZFRyYW5zaXRpdmVEZXBzID0gJycnCnsKICAicm9vdHMiOiBbCiAgICAiXyIsCiAgICAiY2xpZW50IiwKICAgICJtb2RlbHMiLAogICAgInByb3RvY29sIiwKICAgICJzZXJ2ZXIiCiAgXSwKICAicGFja2FnZXMiOiBbCiAgICB7CiAgICAgICJuYW1lIjogIl8iLAogICAgICAidmVyc2lvbiI6ICIwLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXSwKICAgICAgImRldkRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjbGllbnQiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCsxIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY3VwZXJ0aW5vX2ljb25zIiwKICAgICAgICAiZmx1dHRlciIKICAgICAgXSwKICAgICAgImRldkRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiZmx1dHRlcl9saW50cyIsCiAgICAgICAgImZsdXR0ZXJfdGVzdCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAicHJvdG9jb2wiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgIm1vZGVscyIKICAgICAgXSwKICAgICAgImRldkRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibGludHMiLAogICAgICAgICJ0ZXN0IgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJtb2RlbHMiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXSwKICAgICAgImRldkRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibGludHMiLAogICAgICAgICJ0ZXN0IgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzZXJ2ZXIiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCsxIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiZGFydF9mcm9nIiwKICAgICAgICAicHJvdG9jb2wiCiAgICAgIF0sCiAgICAgICJkZXZEZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgIm1vY2t0YWlsIiwKICAgICAgICAidGVzdCIsCiAgICAgICAgInZlcnlfZ29vZF9hbmFseXNpcyIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidmVyeV9nb29kX2FuYWx5c2lzIiwKICAgICAgInZlcnNpb24iOiAiNS4xLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInRlc3QiLAogICAgICAidmVyc2lvbiI6ICIxLjI2LjIiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhbmFseXplciIsCiAgICAgICAgImFzeW5jIiwKICAgICAgICAiYm9vbGVhbl9zZWxlY3RvciIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJjb3ZlcmFnZSIsCiAgICAgICAgImh0dHBfbXVsdGlfc2VydmVyIiwKICAgICAgICAiaW8iLAogICAgICAgICJqcyIsCiAgICAgICAgIm1hdGNoZXIiLAogICAgICAgICJub2RlX3ByZWFtYmxlIiwKICAgICAgICAicGFja2FnZV9jb25maWciLAogICAgICAgICJwYXRoIiwKICAgICAgICAicG9vbCIsCiAgICAgICAgInNoZWxmIiwKICAgICAgICAic2hlbGZfcGFja2FnZXNfaGFuZGxlciIsCiAgICAgICAgInNoZWxmX3N0YXRpYyIsCiAgICAgICAgInNoZWxmX3dlYl9zb2NrZXQiLAogICAgICAgICJzb3VyY2Vfc3BhbiIsCiAgICAgICAgInN0YWNrX3RyYWNlIiwKICAgICAgICAic3RyZWFtX2NoYW5uZWwiLAogICAgICAgICJ0ZXN0X2FwaSIsCiAgICAgICAgInRlc3RfY29yZSIsCiAgICAgICAgInR5cGVkX2RhdGEiLAogICAgICAgICJ3ZWJfc29ja2V0X2NoYW5uZWwiLAogICAgICAgICJ3ZWJraXRfaW5zcGVjdGlvbl9wcm90b2NvbCIsCiAgICAgICAgInlhbWwiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1vY2t0YWlsIiwKICAgICAgInZlcnNpb24iOiAiMS4wLjQiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjb2xsZWN0aW9uIiwKICAgICAgICAibWF0Y2hlciIsCiAgICAgICAgInRlc3RfYXBpIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJkYXJ0X2Zyb2ciLAogICAgICAidmVyc2lvbiI6ICIxLjIuMyIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImh0dHBfbWV0aG9kcyIsCiAgICAgICAgImh0dHBfcGFyc2VyIiwKICAgICAgICAibWV0YSIsCiAgICAgICAgIm1pbWUiLAogICAgICAgICJzaGVsZiIsCiAgICAgICAgInNoZWxmX2hvdHJlbG9hZCIsCiAgICAgICAgInNoZWxmX3N0YXRpYyIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibGludHMiLAogICAgICAidmVyc2lvbiI6ICI1LjEuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiZmx1dHRlcl9saW50cyIsCiAgICAgICJ2ZXJzaW9uIjogIjUuMC4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibGludHMiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImZsdXR0ZXJfdGVzdCIsCiAgICAgICJ2ZXJzaW9uIjogIjAuMC4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY2xvY2siLAogICAgICAgICJjb2xsZWN0aW9uIiwKICAgICAgICAiZmFrZV9hc3luYyIsCiAgICAgICAgImZsdXR0ZXIiLAogICAgICAgICJsZWFrX3RyYWNrZXJfZmx1dHRlcl90ZXN0aW5nIiwKICAgICAgICAibWF0Y2hlciIsCiAgICAgICAgIm1ldGEiLAogICAgICAgICJwYXRoIiwKICAgICAgICAic3RhY2tfdHJhY2UiLAogICAgICAgICJzdHJlYW1fY2hhbm5lbCIsCiAgICAgICAgInRlc3RfYXBpIiwKICAgICAgICAidmVjdG9yX21hdGgiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImN1cGVydGlub19pY29ucyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMC44IiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmbHV0dGVyIiwKICAgICAgInZlcnNpb24iOiAiMC4wLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjaGFyYWN0ZXJzIiwKICAgICAgICAiY29sbGVjdGlvbiIsCiAgICAgICAgIm1hdGVyaWFsX2NvbG9yX3V0aWxpdGllcyIsCiAgICAgICAgIm1ldGEiLAogICAgICAgICJza3lfZW5naW5lIiwKICAgICAgICAidmVjdG9yX21hdGgiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInlhbWwiLAogICAgICAidmVyc2lvbiI6ICIzLjEuMyIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJzb3VyY2Vfc3BhbiIsCiAgICAgICAgInN0cmluZ19zY2FubmVyIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ3ZWJraXRfaW5zcGVjdGlvbl9wcm90b2NvbCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMi4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibG9nZ2luZyIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAid2ViX3NvY2tldF9jaGFubmVsIiwKICAgICAgInZlcnNpb24iOiAiMy4wLjMiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhc3luYyIsCiAgICAgICAgImNyeXB0byIsCiAgICAgICAgInN0cmVhbV9jaGFubmVsIiwKICAgICAgICAid2ViIiwKICAgICAgICAid2ViX3NvY2tldCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidHlwZWRfZGF0YSIsCiAgICAgICJ2ZXJzaW9uIjogIjEuNC4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY29sbGVjdGlvbiIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidGVzdF9jb3JlIiwKICAgICAgInZlcnNpb24iOiAiMC42LjExIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYW5hbHl6ZXIiLAogICAgICAgICJhcmdzIiwKICAgICAgICAiYXN5bmMiLAogICAgICAgICJib29sZWFuX3NlbGVjdG9yIiwKICAgICAgICAiY29sbGVjdGlvbiIsCiAgICAgICAgImNvdmVyYWdlIiwKICAgICAgICAiZnJvbnRlbmRfc2VydmVyX2NsaWVudCIsCiAgICAgICAgImdsb2IiLAogICAgICAgICJpbyIsCiAgICAgICAgIm1ldGEiLAogICAgICAgICJwYWNrYWdlX2NvbmZpZyIsCiAgICAgICAgInBhdGgiLAogICAgICAgICJwb29sIiwKICAgICAgICAic291cmNlX21hcF9zdGFja190cmFjZSIsCiAgICAgICAgInNvdXJjZV9tYXBzIiwKICAgICAgICAic291cmNlX3NwYW4iLAogICAgICAgICJzdGFja190cmFjZSIsCiAgICAgICAgInN0cmVhbV9jaGFubmVsIiwKICAgICAgICAidGVzdF9hcGkiLAogICAgICAgICJ2bV9zZXJ2aWNlIiwKICAgICAgICAieWFtbCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidGVzdF9hcGkiLAogICAgICAidmVyc2lvbiI6ICIwLjcuNiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImFzeW5jIiwKICAgICAgICAiYm9vbGVhbl9zZWxlY3RvciIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJtZXRhIiwKICAgICAgICAic291cmNlX3NwYW4iLAogICAgICAgICJzdGFja190cmFjZSIsCiAgICAgICAgInN0cmVhbV9jaGFubmVsIiwKICAgICAgICAic3RyaW5nX3NjYW5uZXIiLAogICAgICAgICJ0ZXJtX2dseXBoIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzdHJlYW1fY2hhbm5lbCIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMS40IiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYXN5bmMiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInN0YWNrX3RyYWNlIiwKICAgICAgInZlcnNpb24iOiAiMS4xMi4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAicGF0aCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic291cmNlX3NwYW4iLAogICAgICAidmVyc2lvbiI6ICIxLjEwLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjb2xsZWN0aW9uIiwKICAgICAgICAicGF0aCIsCiAgICAgICAgInRlcm1fZ2x5cGgiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNoZWxmX3dlYl9zb2NrZXQiLAogICAgICAidmVyc2lvbiI6ICIzLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgInNoZWxmIiwKICAgICAgICAic3RyZWFtX2NoYW5uZWwiLAogICAgICAgICJ3ZWJfc29ja2V0X2NoYW5uZWwiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNoZWxmX3N0YXRpYyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMS4zIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY29udmVydCIsCiAgICAgICAgImh0dHBfcGFyc2VyIiwKICAgICAgICAibWltZSIsCiAgICAgICAgInBhdGgiLAogICAgICAgICJzaGVsZiIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic2hlbGZfcGFja2FnZXNfaGFuZGxlciIsCiAgICAgICJ2ZXJzaW9uIjogIjMuMC4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAicGF0aCIsCiAgICAgICAgInNoZWxmIiwKICAgICAgICAic2hlbGZfc3RhdGljIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzaGVsZiIsCiAgICAgICJ2ZXJzaW9uIjogIjEuNC4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYXN5bmMiLAogICAgICAgICJjb2xsZWN0aW9uIiwKICAgICAgICAiaHR0cF9wYXJzZXIiLAogICAgICAgICJwYXRoIiwKICAgICAgICAic3RhY2tfdHJhY2UiLAogICAgICAgICJzdHJlYW1fY2hhbm5lbCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAicG9vbCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuNS4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYXN5bmMiLAogICAgICAgICJzdGFja190cmFjZSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAicGF0aCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuOS4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJwYWNrYWdlX2NvbmZpZyIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMi4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAicGF0aCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibm9kZV9wcmVhbWJsZSIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMC4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJtYXRjaGVyIiwKICAgICAgInZlcnNpb24iOiAiMC4xMi4xNyIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImFzeW5jIiwKICAgICAgICAibWV0YSIsCiAgICAgICAgInN0YWNrX3RyYWNlIiwKICAgICAgICAidGVybV9nbHlwaCIsCiAgICAgICAgInRlc3RfYXBpIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJqcyIsCiAgICAgICJ2ZXJzaW9uIjogIjAuNy4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJpbyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMC41IiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibWV0YSIsCiAgICAgICAgInBhdGgiLAogICAgICAgICJzdHJpbmdfc2Nhbm5lciIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaHR0cF9tdWx0aV9zZXJ2ZXIiLAogICAgICAidmVyc2lvbiI6ICIzLjIuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImFzeW5jIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb3ZlcmFnZSIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMTUuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImFyZ3MiLAogICAgICAgICJjbGlfY29uZmlnIiwKICAgICAgICAiZ2xvYiIsCiAgICAgICAgImxvZ2dpbmciLAogICAgICAgICJtZXRhIiwKICAgICAgICAicGFja2FnZV9jb25maWciLAogICAgICAgICJwYXRoIiwKICAgICAgICAic291cmNlX21hcHMiLAogICAgICAgICJzdGFja190cmFjZSIsCiAgICAgICAgInZtX3NlcnZpY2UiLAogICAgICAgICJ5YW1sIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb2xsZWN0aW9uIiwKICAgICAgInZlcnNpb24iOiAiMS4xOS4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJib29sZWFuX3NlbGVjdG9yIiwKICAgICAgInZlcnNpb24iOiAiMi4xLjIiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJzb3VyY2Vfc3BhbiIsCiAgICAgICAgInN0cmluZ19zY2FubmVyIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJhc3luYyIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMTMuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJtZXRhIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJhbmFseXplciIsCiAgICAgICJ2ZXJzaW9uIjogIjcuNy4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiX2ZlX2FuYWx5emVyX3NoYXJlZCIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJjb252ZXJ0IiwKICAgICAgICAiY3J5cHRvIiwKICAgICAgICAiZ2xvYiIsCiAgICAgICAgIm1ldGEiLAogICAgICAgICJwYWNrYWdlX2NvbmZpZyIsCiAgICAgICAgInBhdGgiLAogICAgICAgICJwdWJfc2VtdmVyIiwKICAgICAgICAic291cmNlX3NwYW4iLAogICAgICAgICJ3YXRjaGVyIiwKICAgICAgICAieWFtbCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic2hlbGZfaG90cmVsb2FkIiwKICAgICAgInZlcnNpb24iOiAiMS41LjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJob3RyZWxvYWRlciIsCiAgICAgICAgImxvZ2dpbmciCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1pbWUiLAogICAgICAidmVyc2lvbiI6ICIyLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibWV0YSIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMTYuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaHR0cF9wYXJzZXIiLAogICAgICAidmVyc2lvbiI6ICI0LjEuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJzb3VyY2Vfc3BhbiIsCiAgICAgICAgInN0cmluZ19zY2FubmVyIiwKICAgICAgICAidHlwZWRfZGF0YSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaHR0cF9tZXRob2RzIiwKICAgICAgInZlcnNpb24iOiAiMS4xLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImxlYWtfdHJhY2tlcl9mbHV0dGVyX3Rlc3RpbmciLAogICAgICAidmVyc2lvbiI6ICIzLjAuMTAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJmbHV0dGVyIiwKICAgICAgICAibGVha190cmFja2VyIiwKICAgICAgICAibGVha190cmFja2VyX3Rlc3RpbmciLAogICAgICAgICJtYXRjaGVyIiwKICAgICAgICAibWV0YSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidmVjdG9yX21hdGgiLAogICAgICAidmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY2xvY2siLAogICAgICAidmVyc2lvbiI6ICIxLjEuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiZmFrZV9hc3luYyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMy4zIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY2xvY2siLAogICAgICAgICJjb2xsZWN0aW9uIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJza3lfZW5naW5lIiwKICAgICAgInZlcnNpb24iOiAiMC4wLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1hdGVyaWFsX2NvbG9yX3V0aWxpdGllcyIsCiAgICAgICJ2ZXJzaW9uIjogIjAuMTEuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNoYXJhY3RlcnMiLAogICAgICAidmVyc2lvbiI6ICIxLjQuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic3RyaW5nX3NjYW5uZXIiLAogICAgICAidmVyc2lvbiI6ICIxLjQuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgInNvdXJjZV9zcGFuIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJsb2dnaW5nIiwKICAgICAgInZlcnNpb24iOiAiMS4zLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIndlYl9zb2NrZXQiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgIndlYiIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAid2ViIiwKICAgICAgInZlcnNpb24iOiAiMS4xLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNyeXB0byIsCiAgICAgICJ2ZXJzaW9uIjogIjMuMC42IiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAidHlwZWRfZGF0YSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidm1fc2VydmljZSIsCiAgICAgICJ2ZXJzaW9uIjogIjE1LjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic291cmNlX21hcHMiLAogICAgICAidmVyc2lvbiI6ICIwLjEwLjEzIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAic291cmNlX3NwYW4iCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNvdXJjZV9tYXBfc3RhY2tfdHJhY2UiLAogICAgICAidmVyc2lvbiI6ICIyLjEuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgInBhdGgiLAogICAgICAgICJzb3VyY2VfbWFwcyIsCiAgICAgICAgInN0YWNrX3RyYWNlIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJnbG9iIiwKICAgICAgInZlcnNpb24iOiAiMi4xLjMiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhc3luYyIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJmaWxlIiwKICAgICAgICAicGF0aCIsCiAgICAgICAgInN0cmluZ19zY2FubmVyIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmcm9udGVuZF9zZXJ2ZXJfY2xpZW50IiwKICAgICAgInZlcnNpb24iOiAiNC4wLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhc3luYyIsCiAgICAgICAgInBhdGgiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImFyZ3MiLAogICAgICAidmVyc2lvbiI6ICIyLjcuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidGVybV9nbHlwaCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMi4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb252ZXJ0IiwKICAgICAgInZlcnNpb24iOiAiMy4xLjIiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJ0eXBlZF9kYXRhIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjbGlfY29uZmlnIiwKICAgICAgInZlcnNpb24iOiAiMC4yLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhcmdzIiwKICAgICAgICAieWFtbCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAid2F0Y2hlciIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMS4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYXN5bmMiLAogICAgICAgICJwYXRoIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJwdWJfc2VtdmVyIiwKICAgICAgInZlcnNpb24iOiAiMi4yLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjb2xsZWN0aW9uIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJfZmVfYW5hbHl6ZXJfc2hhcmVkIiwKICAgICAgInZlcnNpb24iOiAiODUuMC4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibWV0YSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaG90cmVsb2FkZXIiLAogICAgICAidmVyc2lvbiI6ICI0LjMuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJsb2dnaW5nIiwKICAgICAgICAicGF0aCIsCiAgICAgICAgInN0cmVhbV90cmFuc2Zvcm0iLAogICAgICAgICJ2bV9zZXJ2aWNlIiwKICAgICAgICAid2F0Y2hlciIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibGVha190cmFja2VyX3Rlc3RpbmciLAogICAgICAidmVyc2lvbiI6ICIzLjAuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImxlYWtfdHJhY2tlciIsCiAgICAgICAgIm1hdGNoZXIiLAogICAgICAgICJtZXRhIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJsZWFrX3RyYWNrZXIiLAogICAgICAidmVyc2lvbiI6ICIxMS4wLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjbG9jayIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJtZXRhIiwKICAgICAgICAicGF0aCIsCiAgICAgICAgInZtX3NlcnZpY2UiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImZpbGUiLAogICAgICAidmVyc2lvbiI6ICI3LjAuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgIm1ldGEiLAogICAgICAgICJwYXRoIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzdHJlYW1fdHJhbnNmb3JtIiwKICAgICAgInZlcnNpb24iOiAiMi4xLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0KICBdLAogICJjb25maWdWZXJzaW9uIjogMQp9CicnJzsK", "type": "text" }, { @@ -118,7 +166,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "build/test/pre_gen_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAnZml4dHVyZXMvcGFja2FnZV9jb25maWdzLmRhcnQnOwppbXBvcnQgJ2ZpeHR1cmVzL3BhY2thZ2VfZ3JhcGhzLmRhcnQnOwppbXBvcnQgJ3B1YnNwZWNfbG9ja3MuZGFydCc7CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9CgpjbGFzcyBfTW9ja0xvZ2dlciBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBMb2dnZXIge30KCmNsYXNzIF9Nb2NrUHJvZ3Jlc3MgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUHJvZ3Jlc3Mge30KCnZvaWQgbWFpbigpIHsKICBncm91cCgncHJlR2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIEZ1dHVyZTxQcm9jZXNzUmVzdWx0PiBzdWNjZXNzUnVuUHJvY2VzcygKICAgICAgZXhlY3V0YWJsZSwKICAgICAgYXJncywgewogICAgICBTdHJpbmc/IHdvcmtpbmdEaXJlY3RvcnksCiAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICB9KSA9PgogICAgICAgIEZ1dHVyZS52YWx1ZShQcm9jZXNzUmVzdWx0KDAsIDAsICcnLCAnJykpOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBMb2dnZXIoKSkKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICcuZGFydF90b29sJywgJ3BhY2thZ2VfY29uZmlnLmpzb24nKSwKICAgICAgKQogICAgICAgIC4uY3JlYXRlU3luYyhyZWN1cnNpdmU6IHRydWUpCiAgICAgICAgLi53cml0ZUFzU3RyaW5nU3luYyhwYWNrYWdlQ29uZmlnV2l0aERpcmVjdEFuZFRyYW5zaXRpdmVEZXBlbmRlbmNpZXMpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJy5kYXJ0X3Rvb2wnLCAncGFja2FnZV9ncmFwaC5qc29uJyksCiAgICAgICkKICAgICAgICAuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKQogICAgICAgIC4ud3JpdGVBc1N0cmluZ1N5bmMocGFja2FnZUdyYXBoV2l0aERpcmVjdEFuZFRyYW5zaXRpdmVEZXBzKTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IHNlcnZlcgpkZXNjcmlwdGlvbjogQSBuZXcgRGFydCBGcm9nIGFwcGxpY2F0aW9uCnZlcnNpb246IDEuMC4wKzEKcHVibGlzaF90bzogbm9uZQpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKCmVudmlyb25tZW50OgogIHNkazogXjMuNi4wCgpkZXBlbmRlbmNpZXM6CiAgZGFydF9mcm9nOiBeMS4xLjAKICBwcm90b2NvbDogXjEuMC4wCicnJyk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIGRpcmVjdG9yeTogc2VydmVyLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICAgIGNvcHlQYXRoOiAoXywgX18pIGFzeW5jIHt9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3dvcmtzIHdpdGggZXh0ZXJuYWwgZGVwZW5kZW5jaWVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUVudHJ5cG9pbnQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUVudHJ5cG9pbnQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IHRydWUsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoImRvbid0IGNyZWF0ZSB0aGUgZG9ja2VyZmlsZSBpZiBvbmUgYWxyZWFkeSBleGlzdHMgb24gdGhlIGZvbGRlci4iLAogICAgICAgICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpuYW1lOiBleGFtcGxlCnZlcnNpb246IDAuMS4wCmVudmlyb25tZW50OgogIHNkazogXjIuMTcuMApkZXBlbmRlbmNpZXM6CiAgbWFzb246IGFueQogIHRlc3Q6IGFueQonJycsCiAgICAgICk7CgogICAgICBGaWxlKHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKS53cml0ZUFzU3RyaW5nU3luYygKICAgICAgICBub1BhdGhEZXBlbmRlbmNpZXMsCiAgICAgICk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAnRG9ja2VyZmlsZScpKS53cml0ZUFzU3RyaW5nU3luYygKICAgICAgICAnJywKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIGRpcmVjdG9yeTogZGlyZWN0b3J5LAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgZXhwZWN0KAogICAgICAgIGNvbnRleHQudmFycywKICAgICAgICBlcXVhbHMoewogICAgICAgICAgJ2RpcmVjdG9yaWVzJzogPFJvdXRlRGlyZWN0b3J5PltdLAogICAgICAgICAgJ3JvdXRlcyc6IDxSb3V0ZUZpbGU+W10sCiAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNaWRkbGV3YXJlRmlsZT5bXSwKICAgICAgICAgICdnbG9iYWxNaWRkbGV3YXJlJzogZmFsc2UsCiAgICAgICAgICAnc2VydmVTdGF0aWNGaWxlcyc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdwYXRoRGVwZW5kZW5jaWVzJzogPFN0cmluZz5bXSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiBmYWxzZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgncmV0YWlucyBpbnZva2VDdXN0b21Jbml0ICh0cnVlKScsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21Jbml0OiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgZXhwZWN0KAogICAgICAgIGNvbnRleHQudmFycywKICAgICAgICBlcXVhbHMoewogICAgICAgICAgJ2RpcmVjdG9yaWVzJzogPFJvdXRlRGlyZWN0b3J5PltdLAogICAgICAgICAgJ3JvdXRlcyc6IDxSb3V0ZUZpbGU+W10sCiAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNaWRkbGV3YXJlRmlsZT5bXSwKICAgICAgICAgICdnbG9iYWxNaWRkbGV3YXJlJzogZmFsc2UsCiAgICAgICAgICAnc2VydmVTdGF0aWNGaWxlcyc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogdHJ1ZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IHRydWUsCiAgICAgICAgfSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KAogICAgICAndXBkYXRlcyBjb250ZXh0LnZhcnMgd2hlbiBidWlsZFJvdXRlQ29uZmlndXJhdGlvbiBzdWNjZWVkcycsCiAgICAgICgpIGFzeW5jIHsKICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgICAgZ2xvYmFsTWlkZGxld2FyZTogTWlkZGxld2FyZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdtaWRkbGV3YXJlJywKICAgICAgICAgICAgcGF0aDogJ21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICApLAogICAgICAgICAgbWlkZGxld2FyZTogWwogICAgICAgICAgICBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9fbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgcGF0aDogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgZGlyZWN0b3JpZXM6IFsKICAgICAgICAgICAgUm91dGVEaXJlY3RvcnkoCiAgICAgICAgICAgICAgbmFtZTogJ18nLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgICAgICAgZmlsZXM6IFsKICAgICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgICAgbmFtZTogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm91dGVzOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgICAnLyc6IFsKICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJy9oZWxsbyc6IFsKICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgICAgcGF0aDogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgfSwKICAgICAgICAgIHNlcnZlU3RhdGljRmlsZXM6IHRydWUsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICAgJ2RpcmVjdG9yaWVzJzogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ18nLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy8nLAogICAgICAgICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWFwPFN0cmluZywgZHluYW1pYz4+W10sCiAgICAgICAgICAgICAgICAnZmlsZXMnOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAgICAgJ3BhdGgnOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgICAgJ3JvdXRlJzogJy8nLAogICAgICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgICAgJ3BhdGgnOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICdkaXJlY3RvcnlfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICdyb3V0ZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgJ3BhdGgnOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ21pZGRsZXdhcmUnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnaGVsbG9fbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby9taWRkbGV3YXJlLmRhcnQnLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICdnbG9iYWxNaWRkbGV3YXJlJzogewogICAgICAgICAgICAgICduYW1lJzogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICAgICdwYXRoJzogJ21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogdHJ1ZSwKICAgICAgICAgICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBmYWxzZSwKICAgICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAgICdwYXRoRGVwZW5kZW5jaWVzJzogPFN0cmluZz5bXSwKICAgICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICAgIH0pLAogICAgICAgICk7CiAgICAgIH0sCiAgICApOwogIH0pOwp9Cg==", "type": "text" }, { @@ -127,16 +175,10 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=", "type": "text" }, - { - "path": "build/test/pubspecs.dart", - "data": - "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK", - "type": "text" - }, { "path": "build/test/src/copy_workspace_pubspec_lock_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZG9lcyBub3RoaW5nIHdoZW4gcHVic3BlYy5sb2NrIGRvZXMgbm90IGV4aXN0IGluIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdChwcm9qZWN0RGlyZWN0b3J5Lmxpc3RTeW5jKCksIGlzRW1wdHkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBjb3B5IGxvY2tmaWxlJywgKCkgewogICAgICBjb25zdCBwdWJzcGVjTG9ja0NvbnRlbnRzID0gJycnCiMgR2VuZXJhdGVkIGJ5IHB1YgojIFNlZSBodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9nbG9zc2FyeSNsb2NrZmlsZQpwYWNrYWdlczoKJycnOwogICAgICBmaW5hbCBmaWxlID0gRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpCiAgICAgICAgLi53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgUHJvY2Vzcy5ydW5TeW5jKCdjaG1vZCcsIFsnMDAwJywgZmlsZS5wYXRoXSk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICB3b3Jrc3BhY2VSb290OiByb290RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycihhbnkodGhhdDogY29udGFpbnMoJ1Blcm1pc3Npb24gZGVuaWVkJykpKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2NvcGllcyBwdWJzcGVjLmxvY2sgdG8gcHJvamVjdCBkaXJlY3Rvcnkgd2hlbiBmb3VuZCcsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMocHVic3BlY0xvY2tDb250ZW50cyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICB3b3Jrc3BhY2VSb290OiByb290RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeUNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeUNvbnRlbnRzLCBoYXNMZW5ndGgoMSkpOwogICAgICBleHBlY3QoCiAgICAgICAgcHJvamVjdERpcmVjdG9yeUNvbnRlbnRzLmZpcnN0LAogICAgICAgIGlzQTxGaWxlPigpLmhhdmluZygKICAgICAgICAgIChmKSA9PiBwYXRoLmJhc2VuYW1lKGYucGF0aCksCiAgICAgICAgICAnbmFtZScsCiAgICAgICAgICAncHVic3BlYy5sb2NrJywKICAgICAgICApLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgKHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCBhcyBGaWxlKS5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgZXF1YWxzKHB1YnNwZWNMb2NrQ29udGVudHMpLAogICAgICApOwogICAgfSk7CiAgfSk7Cn0K", "type": "text" }, { @@ -160,7 +202,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "build/test/src/disable_workspace_resolution_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnLmRhcnQnIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1BhY2thZ2VDb25maWcgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUGFja2FnZUNvbmZpZyB7fQoKY2xhc3MgX01vY2tQYWNrYWdlR3JhcGggZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUGFja2FnZUdyYXBoIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgY29uc3QgcGFja2FnZU5hbWUgPSAnc2VydmVyJzsKCiAgICBsYXRlIExpc3Q8aW50PiBleGl0Q2FsbHM7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKICAgIGxhdGUgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnOwogICAgbGF0ZSBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoOwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ25hbWU6ICIkcGFja2FnZU5hbWUiJyk7CiAgICAgIHBhY2thZ2VDb25maWcgPSBfTW9ja1BhY2thZ2VDb25maWcoKTsKICAgICAgcGFja2FnZUdyYXBoID0gX01vY2tQYWNrYWdlR3JhcGgoKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKICAgICAgd2hlbigoKSA9PiBwYWNrYWdlR3JhcGgucm9vdHMpLnRoZW5SZXR1cm4oW3BhY2thZ2VOYW1lXSk7CiAgICAgIHdoZW4oKCkgPT4gcGFja2FnZUdyYXBoLnBhY2thZ2VzKS50aGVuUmV0dXJuKAogICAgICAgIFsKICAgICAgICAgIGNvbnN0IFBhY2thZ2UoCiAgICAgICAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLAogICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFtdLAogICAgICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IFtdLAogICAgICAgICAgICB2ZXJzaW9uOiAnMS4wLjAnLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICApOwogICAgICB3aGVuKCgpID0+IHBhY2thZ2VDb25maWcucGFja2FnZXMpLnRoZW5SZXR1cm4oW10pOwoKICAgICAgYWRkVGVhckRvd24oKCkgPT4gcHJvamVjdERpcmVjdG9yeS5kZWxldGUoKS5pZ25vcmUoKSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjX292ZXJyaWRlcy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDIpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3RXaGVyZSgKICAgICAgICAgIChwKSA9PiBwYXRoLmJhc2VuYW1lKHAucGF0aCkgPT0gJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnLAogICAgICAgICkgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoge30KJycnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDIpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3RXaGVyZSgKICAgICAgICAgIChwKSA9PiBwYXRoLmJhc2VuYW1lKHAucGF0aCkgPT0gJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnLAogICAgICAgICkgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHBhY2thZ2VDb25maWc6IHBhY2thZ2VDb25maWcsCiAgICAgICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIHdvcmtzcGFjZVJvb3Q6IHJvb3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgyKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", "type": "text" }, { @@ -220,7 +262,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "lib/src/disable_workspace_resolution.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCcKICAgIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGFja2FnZV9jb25maWcvcGFja2FnZV9jb25maWdfdHlwZXMuZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnlhbWxfZWRpdC95YW1sX2VkaXQuZGFydCc7CgovLy8gT3B0cyBvdXQgb2YgZGFydCB3b3Jrc3BhY2VzIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXIgcGFja2FnZSBsb2NrZmlsZXMuCi8vLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NApWb2lkQ2FsbGJhY2sgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIHJlcXVpcmVkIFBhY2thZ2VDb25maWcgcGFja2FnZUNvbmZpZywKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAogIHJlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIFN0cmluZyB3b3Jrc3BhY2VSb290LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSB7CiAgZmluYWwgVm9pZENhbGxiYWNrIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwogIHRyeSB7CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcygKICAgICAgcHJvamVjdERpcmVjdG9yeSwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gKCkge307IC8vIG5vLW9wCiAgfQoKICB0cnkgewogICAgb3ZlcnJpZGVQYXRoRGVwZW5kZW5jaWVzSW5QdWJzcGVjT3ZlcnJpZGVzKAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uKCk7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KCiAgcmV0dXJuIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwp9CgovLy8gQWRkIHJlc29sdXRpb246bnVsbCB0byBwdWJzcGVjX292ZXJyaWRlcy55YW1sLgpWb2lkQ2FsbGJhY2sgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5KSB7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKCiAgaWYgKCFwdWJzcGVjT3ZlcnJpZGVzRmlsZS5leGlzdHNTeW5jKCkpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gcHVic3BlY092ZXJyaWRlc0ZpbGUuZGVsZXRlU3luYzsKICB9CgogIGZpbmFsIGNvbnRlbnRzID0gcHVic3BlY092ZXJyaWRlc0ZpbGUucmVhZEFzU3RyaW5nU3luYygpOwogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXMgPSBsb2FkWWFtbChjb250ZW50cykgYXMgWWFtbE1hcD87CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzID09IG51bGwpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwogIH0KCiAgaWYgKHB1YnNwZWNPdmVycmlkZXNbJ3Jlc29sdXRpb24nXSA9PSAnbnVsbCcpIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKCiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cykuLnVwZGF0ZShbJ3Jlc29sdXRpb24nXSwgbnVsbCk7CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwp9CgovLy8gQWRkIG92ZXJyaWRlcyBmb3IgYWxsIHBhdGggZGVwZW5kZW5jaWVzIHRvIGBwdWJzcGVjX292ZXJyaWRlcy55YW1sYAp2b2lkIG92ZXJyaWRlUGF0aERlcGVuZGVuY2llc0luUHVic3BlY092ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnLAogIHJlcXVpcmVkIFBhY2thZ2VHcmFwaCBwYWNrYWdlR3JhcGgsCn0pIHsKICBmaW5hbCBuYW1lID0gZ2V0UGFja2FnZU5hbWUocHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKG5hbWUgPT0gbnVsbCkgewogICAgdGhyb3cgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcGFyc2UgIm5hbWUiIGZyb20gcHVic3BlYy55YW1sJyk7CiAgfQoKICBmaW5hbCBwcm9kdWN0aW9uRGVwcyA9IGdldFByb2R1Y3Rpb25EZXBlbmRlbmNpZXMoCiAgICBwYWNrYWdlTmFtZTogbmFtZSwKICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICk7CgogIGZpbmFsIHBhdGhEZXBlbmRlbmNpZXMgPSBwYWNrYWdlQ29uZmlnLnBhY2thZ2VzLndoZXJlKAogICAgKHBhY2thZ2UpID0+IHBhY2thZ2UucmVsYXRpdmVSb290ICYmIHByb2R1Y3Rpb25EZXBzLmNvbnRhaW5zKHBhY2thZ2UubmFtZSksCiAgKTsKCiAgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcygKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBwYXRoRGVwZW5kZW5jaWVzOiBwYXRoRGVwZW5kZW5jaWVzLAogICk7Cn0KCnZvaWQgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgSXRlcmFibGU8UGFja2FnZT4gcGF0aERlcGVuZGVuY2llcywKfSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cykuLnVwZGF0ZShbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJ10sIHt9KTsKICBmb3IgKGZpbmFsIHBhY2thZ2UgaW4gcGF0aERlcGVuZGVuY2llcykgewogICAgZWRpdG9yLnVwZGF0ZSgKICAgICAgWydkZXBlbmRlbmN5X292ZXJyaWRlcycsIHBhY2thZ2UubmFtZV0sCiAgICAgIHsncGF0aCc6IHBhdGgucmVsYXRpdmUocGFja2FnZS5yb290LnBhdGgsIGZyb206IHByb2plY3REaXJlY3RvcnkpfSwKICAgICk7CiAgfQogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKfQoKLy8vIEV4dHJhY3QgdGhlIHBhY2thZ2UgbmFtZSBmcm9tIHRoZSBwdWJzcGVjLnlhbWwgaW4gW3Byb2plY3REaXJlY3RvcnldLgpTdHJpbmc/IGdldFBhY2thZ2VOYW1lKHtyZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeX0pIHsKICBmaW5hbCBwdWJzcGVjRmlsZSA9IEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjLnlhbWwnKSk7CiAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKSk7CiAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwoKICBmaW5hbCBuYW1lID0gcHVic3BlY1snbmFtZSddOwogIGlmIChuYW1lIGlzISBTdHJpbmcpIHJldHVybiBudWxsOwoKICByZXR1cm4gbmFtZTsKfQoKLy8vIEJ1aWxkIGEgY29tcGxldGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgKGRpcmVjdCBhbmQgdHJhbnNpdGl2ZSkuClNldDxTdHJpbmc+IGdldFByb2R1Y3Rpb25EZXBlbmRlbmNpZXMoewogIHJlcXVpcmVkIFN0cmluZyBwYWNrYWdlTmFtZSwKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAp9KSB7CiAgZmluYWwgZGVwZW5kZW5jaWVzID0gPFN0cmluZz57fTsKICBmaW5hbCByb290ID0gcGFja2FnZUdyYXBoLnJvb3RzLmZpcnN0V2hlcmUoKHJvb3QpID0+IHJvb3QgPT0gcGFja2FnZU5hbWUpOwogIGZpbmFsIHJvb3RQYWNrYWdlID0gcGFja2FnZUdyYXBoLnBhY2thZ2VzLmZpcnN0V2hlcmUoKHApID0+IHAubmFtZSA9PSByb290KTsKICBmaW5hbCBkZXBlbmRlbmNpZXNUb1Zpc2l0ID0gPFN0cmluZz5bLi4ucm9vdFBhY2thZ2UuZGVwZW5kZW5jaWVzXTsKCiAgZG8gewogICAgZmluYWwgZGlzY292ZXJlZERlcGVuZGVuY2llcyA9IDxTdHJpbmc+W107CiAgICBmb3IgKGZpbmFsIGRlcGVuZGVuY3lUb1Zpc2l0IGluIGRlcGVuZGVuY2llc1RvVmlzaXQpIHsKICAgICAgZmluYWwgcGFja2FnZSA9IHBhY2thZ2VHcmFwaC5wYWNrYWdlcy5maXJzdFdoZXJlKAogICAgICAgIChwKSA9PiBwLm5hbWUgPT0gZGVwZW5kZW5jeVRvVmlzaXQsCiAgICAgICk7CiAgICAgIGRlcGVuZGVuY2llcy5hZGQocGFja2FnZS5uYW1lKTsKICAgICAgZm9yIChmaW5hbCBwYWNrYWdlRGVwZW5kZW5jeSBpbiBwYWNrYWdlLmRlcGVuZGVuY2llcykgewogICAgICAgIC8vIEF2b2lkIGluZmluaXRlIGxvb3BzIGZyb20gZGVwZW5kZW5jeSBjeWNsZXMgKGNpcmN1bGFyIGRlcGVuZGVuY2llcykuCiAgICAgICAgaWYgKGRlcGVuZGVuY2llcy5jb250YWlucyhwYWNrYWdlRGVwZW5kZW5jeSkpIGNvbnRpbnVlOwogICAgICAgIGRpc2NvdmVyZWREZXBlbmRlbmNpZXMuYWRkKHBhY2thZ2VEZXBlbmRlbmN5KTsKICAgICAgfQogICAgfQogICAgZGVwZW5kZW5jaWVzVG9WaXNpdAogICAgICAuLmNsZWFyKCkKICAgICAgLi5hZGRBbGwoZGlzY292ZXJlZERlcGVuZGVuY2llcyk7CiAgfSB3aGlsZSAoZGVwZW5kZW5jaWVzVG9WaXNpdC5pc05vdEVtcHR5KTsKICByZXR1cm4gZGVwZW5kZW5jaWVzOwp9Cg==", + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCcKICAgIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGFja2FnZV9jb25maWcvcGFja2FnZV9jb25maWdfdHlwZXMuZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnlhbWxfZWRpdC95YW1sX2VkaXQuZGFydCc7CgovLy8gT3B0cyBvdXQgb2YgZGFydCB3b3Jrc3BhY2VzIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXIgcGFja2FnZSBsb2NrZmlsZXMuCi8vLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NApWb2lkQ2FsbGJhY2sgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIHJlcXVpcmVkIFBhY2thZ2VDb25maWcgcGFja2FnZUNvbmZpZywKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAogIHJlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIFN0cmluZyB3b3Jrc3BhY2VSb290LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSB7CiAgZmluYWwgVm9pZENhbGxiYWNrIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwogIHRyeSB7CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcygKICAgICAgcHJvamVjdERpcmVjdG9yeSwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gKCkge307IC8vIG5vLW9wCiAgfQoKICB0cnkgewogICAgb3ZlcnJpZGVQYXRoRGVwZW5kZW5jaWVzSW5QdWJzcGVjT3ZlcnJpZGVzKAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uKCk7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KCiAgcmV0dXJuIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwp9CgovLy8gQWRkIHJlc29sdXRpb246bnVsbCB0byBwdWJzcGVjX292ZXJyaWRlcy55YW1sLgpWb2lkQ2FsbGJhY2sgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5KSB7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKCiAgaWYgKCFwdWJzcGVjT3ZlcnJpZGVzRmlsZS5leGlzdHNTeW5jKCkpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gcHVic3BlY092ZXJyaWRlc0ZpbGUuZGVsZXRlU3luYzsKICB9CgogIGZpbmFsIGNvbnRlbnRzID0gcHVic3BlY092ZXJyaWRlc0ZpbGUucmVhZEFzU3RyaW5nU3luYygpOwogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXMgPSBsb2FkWWFtbChjb250ZW50cykgYXMgWWFtbE1hcD87CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzID09IG51bGwpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwogIH0KCiAgaWYgKHB1YnNwZWNPdmVycmlkZXNbJ3Jlc29sdXRpb24nXSA9PSAnbnVsbCcpIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKCiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cykuLnVwZGF0ZShbJ3Jlc29sdXRpb24nXSwgbnVsbCk7CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwp9CgovLy8gQWRkIG92ZXJyaWRlcyBmb3IgYWxsIHBhdGggZGVwZW5kZW5jaWVzIHRvIGBwdWJzcGVjX292ZXJyaWRlcy55YW1sYAp2b2lkIG92ZXJyaWRlUGF0aERlcGVuZGVuY2llc0luUHVic3BlY092ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnLAogIHJlcXVpcmVkIFBhY2thZ2VHcmFwaCBwYWNrYWdlR3JhcGgsCn0pIHsKICBmaW5hbCBuYW1lID0gZ2V0UGFja2FnZU5hbWUocHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKG5hbWUgPT0gbnVsbCkgewogICAgdGhyb3cgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcGFyc2UgIm5hbWUiIGZyb20gcHVic3BlYy55YW1sJyk7CiAgfQoKICBmaW5hbCBwcm9kdWN0aW9uRGVwcyA9IGdldFByb2R1Y3Rpb25EZXBlbmRlbmNpZXMoCiAgICBwYWNrYWdlTmFtZTogbmFtZSwKICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICk7CgogIGZpbmFsIHBhdGhEZXBlbmRlbmNpZXMgPSBwYWNrYWdlQ29uZmlnLnBhY2thZ2VzLndoZXJlKAogICAgKHBhY2thZ2UpID0+IHBhY2thZ2UucmVsYXRpdmVSb290ICYmIHByb2R1Y3Rpb25EZXBzLmNvbnRhaW5zKHBhY2thZ2UubmFtZSksCiAgKTsKCiAgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcygKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBwYXRoRGVwZW5kZW5jaWVzOiBwYXRoRGVwZW5kZW5jaWVzLAogICk7Cn0KCnZvaWQgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgSXRlcmFibGU8UGFja2FnZT4gcGF0aERlcGVuZGVuY2llcywKfSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgb3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA7CiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cyk7CiAgaWYgKCFvdmVycmlkZXMuY29udGFpbnNLZXkoJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJykpIHsKICAgIGVkaXRvci51cGRhdGUoWydkZXBlbmRlbmN5X292ZXJyaWRlcyddLCB7fSk7CiAgfQogIGZvciAoZmluYWwgcGFja2FnZSBpbiBwYXRoRGVwZW5kZW5jaWVzKSB7CiAgICBlZGl0b3IudXBkYXRlKAogICAgICBbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJywgcGFja2FnZS5uYW1lXSwKICAgICAgeydwYXRoJzogcGF0aC5yZWxhdGl2ZShwYWNrYWdlLnJvb3QucGF0aCwgZnJvbTogcHJvamVjdERpcmVjdG9yeSl9LAogICAgKTsKICB9CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwp9CgovLy8gRXh0cmFjdCB0aGUgcGFja2FnZSBuYW1lIGZyb20gdGhlIHB1YnNwZWMueWFtbCBpbiBbcHJvamVjdERpcmVjdG9yeV0uClN0cmluZz8gZ2V0UGFja2FnZU5hbWUoe3JlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5fSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBmaW5hbCBwdWJzcGVjID0gbG9hZFlhbWwocHVic3BlY0ZpbGUucmVhZEFzU3RyaW5nU3luYygpKTsKICBpZiAocHVic3BlYyBpcyEgWWFtbE1hcCkgcmV0dXJuIG51bGw7CgogIGZpbmFsIG5hbWUgPSBwdWJzcGVjWyduYW1lJ107CiAgaWYgKG5hbWUgaXMhIFN0cmluZykgcmV0dXJuIG51bGw7CgogIHJldHVybiBuYW1lOwp9CgovLy8gQnVpbGQgYSBjb21wbGV0ZSBsaXN0IG9mIGRlcGVuZGVuY2llcyAoZGlyZWN0IGFuZCB0cmFuc2l0aXZlKS4KU2V0PFN0cmluZz4gZ2V0UHJvZHVjdGlvbkRlcGVuZGVuY2llcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHBhY2thZ2VOYW1lLAogIHJlcXVpcmVkIFBhY2thZ2VHcmFwaCBwYWNrYWdlR3JhcGgsCn0pIHsKICBmaW5hbCBkZXBlbmRlbmNpZXMgPSA8U3RyaW5nPnt9OwogIGZpbmFsIHJvb3QgPSBwYWNrYWdlR3JhcGgucm9vdHMuZmlyc3RXaGVyZSgocm9vdCkgPT4gcm9vdCA9PSBwYWNrYWdlTmFtZSk7CiAgZmluYWwgcm9vdFBhY2thZ2UgPSBwYWNrYWdlR3JhcGgucGFja2FnZXMuZmlyc3RXaGVyZSgocCkgPT4gcC5uYW1lID09IHJvb3QpOwogIGZpbmFsIGRlcGVuZGVuY2llc1RvVmlzaXQgPSA8U3RyaW5nPlsuLi5yb290UGFja2FnZS5kZXBlbmRlbmNpZXNdOwoKICBkbyB7CiAgICBmaW5hbCBkaXNjb3ZlcmVkRGVwZW5kZW5jaWVzID0gPFN0cmluZz5bXTsKICAgIGZvciAoZmluYWwgZGVwZW5kZW5jeVRvVmlzaXQgaW4gZGVwZW5kZW5jaWVzVG9WaXNpdCkgewogICAgICBmaW5hbCBwYWNrYWdlID0gcGFja2FnZUdyYXBoLnBhY2thZ2VzLmZpcnN0V2hlcmUoCiAgICAgICAgKHApID0+IHAubmFtZSA9PSBkZXBlbmRlbmN5VG9WaXNpdCwKICAgICAgKTsKICAgICAgZGVwZW5kZW5jaWVzLmFkZChwYWNrYWdlLm5hbWUpOwogICAgICBmb3IgKGZpbmFsIHBhY2thZ2VEZXBlbmRlbmN5IGluIHBhY2thZ2UuZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgLy8gQXZvaWQgaW5maW5pdGUgbG9vcHMgZnJvbSBkZXBlbmRlbmN5IGN5Y2xlcyAoY2lyY3VsYXIgZGVwZW5kZW5jaWVzKS4KICAgICAgICBpZiAoZGVwZW5kZW5jaWVzLmNvbnRhaW5zKHBhY2thZ2VEZXBlbmRlbmN5KSkgY29udGludWU7CiAgICAgICAgZGlzY292ZXJlZERlcGVuZGVuY2llcy5hZGQocGFja2FnZURlcGVuZGVuY3kpOwogICAgICB9CiAgICB9CiAgICBkZXBlbmRlbmNpZXNUb1Zpc2l0CiAgICAgIC4uY2xlYXIoKQogICAgICAuLmFkZEFsbChkaXNjb3ZlcmVkRGVwZW5kZW5jaWVzKTsKICB9IHdoaWxlIChkZXBlbmRlbmNpZXNUb1Zpc2l0LmlzTm90RW1wdHkpOwogIHJldHVybiBkZXBlbmRlbmNpZXM7Cn0K", "type": "text" }, { @@ -268,7 +310,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "lib/src/package_graph/package_graph.g.dart", "data": - "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogaW1wbGljaXRfZHluYW1pY19wYXJhbWV0ZXIKCnBhcnQgb2YgJ3BhY2thZ2VfZ3JhcGguZGFydCc7CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBKc29uU2VyaWFsaXphYmxlR2VuZXJhdG9yCi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpQYWNrYWdlR3JhcGggXyRQYWNrYWdlR3JhcGhGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2VHcmFwaCcsIGpzb24sICgkY2hlY2tlZENvbnZlcnQpIHsKICAgICAgZmluYWwgdmFsID0gUGFja2FnZUdyYXBoKAogICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAncm9vdHMnLAogICAgICAgICAgKHYpID0+ICh2IGFzIExpc3Q8ZHluYW1pYz4pLm1hcCgoZSkgPT4gZSBhcyBTdHJpbmcpLnRvTGlzdCgpLAogICAgICAgICksCiAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdwYWNrYWdlcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikKICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgIC50b0xpc3QoKSwKICAgICAgICApLAogICAgICAgIGNvbmZpZ1ZlcnNpb246ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdjb25maWdWZXJzaW9uJywKICAgICAgICAgICh2KSA9PiAodiBhcyBudW0pLnRvSW50KCksCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgcmV0dXJuIHZhbDsKICAgIH0pOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2UnLCBqc29uLCAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2UoCiAgICAgICAgbmFtZTogJGNoZWNrZWRDb252ZXJ0KCduYW1lJywgKHYpID0+IHYgYXMgU3RyaW5nKSwKICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgIGRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICAgIGRldkRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICApOwogICAgICByZXR1cm4gdmFsOwogICAgfSk7Cg==", + "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogdHlwZT1saW50CgpwYXJ0IG9mICdwYWNrYWdlX2dyYXBoLmRhcnQnOwoKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8gSnNvblNlcmlhbGl6YWJsZUdlbmVyYXRvcgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKUGFja2FnZUdyYXBoIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oTWFwPFN0cmluZywgZHluYW1pYz4ganNvbikgPT4KICAgICRjaGVja2VkQ3JlYXRlKAogICAgICAnUGFja2FnZUdyYXBoJywKICAgICAganNvbiwKICAgICAgKCRjaGVja2VkQ29udmVydCkgewogICAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2VHcmFwaCgKICAgICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoJ3Jvb3RzJywKICAgICAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkpLAogICAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICAgICAncGFja2FnZXMnLAogICAgICAgICAgICAgICh2KSA9PiAodiBhcyBMaXN0PGR5bmFtaWM+KQogICAgICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgICAgICAudG9MaXN0KCkpLAogICAgICAgICAgY29uZmlnVmVyc2lvbjoKICAgICAgICAgICAgICAkY2hlY2tlZENvbnZlcnQoJ2NvbmZpZ1ZlcnNpb24nLCAodikgPT4gKHYgYXMgbnVtKS50b0ludCgpKSwKICAgICAgICApOwogICAgICAgIHJldHVybiB2YWw7CiAgICAgIH0sCiAgICApOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PiAkY2hlY2tlZENyZWF0ZSgKICAgICAgJ1BhY2thZ2UnLAogICAgICBqc29uLAogICAgICAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgICAgZmluYWwgdmFsID0gUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICRjaGVja2VkQ29udmVydCgnbmFtZScsICh2KSA9PiB2IGFzIFN0cmluZyksCiAgICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgICAgZGVwZW5kZW5jaWVzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAgICAgKHYpID0+CiAgICAgICAgICAgICAgICAgICh2IGFzIExpc3Q8ZHluYW1pYz4/KT8ubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkgPz8KICAgICAgICAgICAgICAgICAgW10pLAogICAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAgICAgKHYpID0+CiAgICAgICAgICAgICAgICAgICh2IGFzIExpc3Q8ZHluYW1pYz4/KT8ubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkgPz8KICAgICAgICAgICAgICAgICAgW10pLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIHZhbDsKICAgICAgfSwKICAgICk7Cg==", "type": "text" }, { @@ -298,7 +340,19 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "pubspec.yaml", "data": - "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIGpzb25fYW5ub3RhdGlvbjogXjQuOS4wCiAgbWFzb246IF4wLjEuMAogIHBhY2thZ2VfY29uZmlnOiBeMi4yLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBidWlsZF9ydW5uZXI6IF4yLjguMAogIGpzb25fc2VyaWFsaXphYmxlOiBeNi4xMS4xCiAgbW9ja3RhaWw6IF4xLjAuMAogIHRlc3Q6IF4xLjI1LjAK", + "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIGpzb25fYW5ub3RhdGlvbjogXjQuOS4wCiAgbWFzb246IF4wLjEuMAogIHBhY2thZ2VfY29uZmlnOiBeMi4yLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBidWlsZF9ydW5uZXI6IF4yLjAuMAogIGpzb25fc2VyaWFsaXphYmxlOiBeNi43LjAKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=", + "type": "text" + }, + { + "path": "test/fixtures/package_configs.dart", + "data": + "Y29uc3QgcGFja2FnZUNvbmZpZ1dpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwZW5kZW5jaWVzID0gJycnCnsKICAiY29uZmlnVmVyc2lvbiI6IDIsCiAgInBhY2thZ2VzIjogWwogICAgewogICAgICAibmFtZSI6ICJfZmVfYW5hbHl6ZXJfc2hhcmVkIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L19mZV9hbmFseXplcl9zaGFyZWQtODUuMC4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy41IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiYW5hbHl6ZXIiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvYW5hbHl6ZXItNy43LjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjUiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJhcmdzIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2FyZ3MtMi43LjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJhc3luYyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9hc3luYy0yLjEzLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJib29sZWFuX3NlbGVjdG9yIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2Jvb2xlYW5fc2VsZWN0b3ItMi4xLjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjEiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjaGFyYWN0ZXJzIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2NoYXJhY3RlcnMtMS40LjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjbGlfY29uZmlnIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2NsaV9jb25maWctMC4yLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjbG9jayIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9jbG9jay0xLjEuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNvbGxlY3Rpb24iLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvY29sbGVjdGlvbi0xLjE5LjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb252ZXJ0IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2NvbnZlcnQtMy4xLjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb3ZlcmFnZSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9jb3ZlcmFnZS0xLjE1LjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjcnlwdG8iLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvY3J5cHRvLTMuMC42IiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy40IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY3VwZXJ0aW5vX2ljb25zIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2N1cGVydGlub19pY29ucy0xLjAuOCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImRhcnRfZnJvZyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9kYXJ0X2Zyb2ctMS4yLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmYWtlX2FzeW5jIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2Zha2VfYXN5bmMtMS4zLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmaWxlIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2ZpbGUtNy4wLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmbHV0dGVyIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC9EZXZlbG9wbWVudC9naXRodWIuY29tL2ZsdXR0ZXIvZmx1dHRlci9wYWNrYWdlcy9mbHV0dGVyIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy44IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiZmx1dHRlcl9saW50cyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9mbHV0dGVyX2xpbnRzLTUuMC4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy41IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiZmx1dHRlcl90ZXN0IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC9EZXZlbG9wbWVudC9naXRodWIuY29tL2ZsdXR0ZXIvZmx1dHRlci9wYWNrYWdlcy9mbHV0dGVyX3Rlc3QiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjgiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmcm9udGVuZF9zZXJ2ZXJfY2xpZW50IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2Zyb250ZW5kX3NlcnZlcl9jbGllbnQtNC4wLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJnbG9iIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2dsb2ItMi4xLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJob3RyZWxvYWRlciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9ob3RyZWxvYWRlci00LjMuMCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImh0dHBfbWV0aG9kcyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9odHRwX21ldGhvZHMtMS4xLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIyLjEyIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaHR0cF9tdWx0aV9zZXJ2ZXIiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvaHR0cF9tdWx0aV9zZXJ2ZXItMy4yLjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjIiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJodHRwX3BhcnNlciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9odHRwX3BhcnNlci00LjEuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImlvIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2lvLTEuMC41IiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy40IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAianMiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvanMtMC43LjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjciCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJsZWFrX3RyYWNrZXIiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbGVha190cmFja2VyLTExLjAuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImxlYWtfdHJhY2tlcl9mbHV0dGVyX3Rlc3RpbmciLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbGVha190cmFja2VyX2ZsdXR0ZXJfdGVzdGluZy0zLjAuMTAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjIiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJsZWFrX3RyYWNrZXJfdGVzdGluZyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9sZWFrX3RyYWNrZXJfdGVzdGluZy0zLjAuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImxpbnRzIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L2xpbnRzLTUuMS4xIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy42IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibG9nZ2luZyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9sb2dnaW5nLTEuMy4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy40IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibWF0Y2hlciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9tYXRjaGVyLTAuMTIuMTciLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJtYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVzLTAuMTEuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjIuMTciCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJtZXRhIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L21ldGEtMS4xNi4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMi4xMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1pbWUiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbWltZS0yLjAuMCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1vY2t0YWlsIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L21vY2t0YWlsLTEuMC40IiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMi4xMiIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm5vZGVfcHJlYW1ibGUiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvbm9kZV9wcmVhbWJsZS0yLjAuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjIuMTIiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJwYWNrYWdlX2NvbmZpZyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9wYWNrYWdlX2NvbmZpZy0yLjIuMCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInBhdGgiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvcGF0aC0xLjkuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInBvb2wiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvcG9vbC0xLjUuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjIuMTIiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJwdWJfc2VtdmVyIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3B1Yl9zZW12ZXItMi4yLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzaGVsZiIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zaGVsZi0xLjQuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNoZWxmX2hvdHJlbG9hZCIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zaGVsZl9ob3RyZWxvYWQtMS41LjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIyLjE3IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic2hlbGZfcGFja2FnZXNfaGFuZGxlciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zaGVsZl9wYWNrYWdlc19oYW5kbGVyLTMuMC4yIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMi4xNyIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNoZWxmX3N0YXRpYyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zaGVsZl9zdGF0aWMtMS4xLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzaGVsZl93ZWJfc29ja2V0IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3NoZWxmX3dlYl9zb2NrZXQtMy4wLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjUiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJza3lfZW5naW5lIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC9EZXZlbG9wbWVudC9naXRodWIuY29tL2ZsdXR0ZXIvZmx1dHRlci9iaW4vY2FjaGUvcGtnL3NreV9lbmdpbmUiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjgiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzb3VyY2VfbWFwX3N0YWNrX3RyYWNlIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3NvdXJjZV9tYXBfc3RhY2tfdHJhY2UtMi4xLjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzb3VyY2VfbWFwcyIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zb3VyY2VfbWFwcy0wLjEwLjEzIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy4zIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic291cmNlX3NwYW4iLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvc291cmNlX3NwYW4tMS4xMC4xIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy4xIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic3RhY2tfdHJhY2UiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvc3RhY2tfdHJhY2UtMS4xMi4xIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy40IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic3RyZWFtX2NoYW5uZWwiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvc3RyZWFtX2NoYW5uZWwtMi4xLjQiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjMiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzdHJlYW1fdHJhbnNmb3JtIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3N0cmVhbV90cmFuc2Zvcm0tMi4xLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjEiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzdHJpbmdfc2Nhbm5lciIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi9zdHJpbmdfc2Nhbm5lci0xLjQuMSIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInRlcm1fZ2x5cGgiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvdGVybV9nbHlwaC0xLjIuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInRlc3QiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvdGVzdC0xLjI2LjIiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjUiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ0ZXN0X2FwaSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi90ZXN0X2FwaS0wLjcuNiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInRlc3RfY29yZSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi90ZXN0X2NvcmUtMC42LjExIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy41IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidHlwZWRfZGF0YSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi90eXBlZF9kYXRhLTEuNC4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy41IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidmVjdG9yX21hdGgiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvdmVjdG9yX21hdGgtMi4yLjAiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjEiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ2ZXJ5X2dvb2RfYW5hbHlzaXMiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvdmVyeV9nb29kX2FuYWx5c2lzLTUuMS4wIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy4wIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidm1fc2VydmljZSIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi92bV9zZXJ2aWNlLTE1LjAuMCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMyIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIndhdGNoZXIiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvd2F0Y2hlci0xLjEuMiIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuMSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIndlYiIsCiAgICAgICJyb290VXJpIjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvLnB1Yi1jYWNoZS9ob3N0ZWQvcHViLmRldi93ZWItMS4xLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ3ZWJfc29ja2V0IiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3dlYl9zb2NrZXQtMS4wLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ3ZWJfc29ja2V0X2NoYW5uZWwiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvd2ViX3NvY2tldF9jaGFubmVsLTMuMC4zIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy4zIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAid2Via2l0X2luc3BlY3Rpb25fcHJvdG9jb2wiLAogICAgICAicm9vdFVyaSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUvaG9zdGVkL3B1Yi5kZXYvd2Via2l0X2luc3BlY3Rpb25fcHJvdG9jb2wtMS4yLjEiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjAiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ5YW1sIiwKICAgICAgInJvb3RVcmkiOiAiZmlsZTovLy9Vc2Vycy9mZWxpeC8ucHViLWNhY2hlL2hvc3RlZC9wdWIuZGV2L3lhbWwtMy4xLjMiLAogICAgICAicGFja2FnZVVyaSI6ICJsaWIvIiwKICAgICAgImxhbmd1YWdlVmVyc2lvbiI6ICIzLjQiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJfIiwKICAgICAgInJvb3RVcmkiOiAiLi4vIiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy42IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY2xpZW50IiwKICAgICAgInJvb3RVcmkiOiAiLi4vcGFja2FnZXMvY2xpZW50IiwKICAgICAgInBhY2thZ2VVcmkiOiAibGliLyIsCiAgICAgICJsYW5ndWFnZVZlcnNpb24iOiAiMy44IgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAicHJvdG9jb2wiLAogICAgICAicm9vdFVyaSI6ICIuLi9wYWNrYWdlcy9wcm90b2NvbCIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuOCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1vZGVscyIsCiAgICAgICJyb290VXJpIjogIi4uL3BhY2thZ2VzL21vZGVscyIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuOCIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNlcnZlciIsCiAgICAgICJyb290VXJpIjogIi4uL3BhY2thZ2VzL3NlcnZlciIsCiAgICAgICJwYWNrYWdlVXJpIjogImxpYi8iLAogICAgICAibGFuZ3VhZ2VWZXJzaW9uIjogIjMuNiIKICAgIH0KICBdLAogICJnZW5lcmF0b3IiOiAicHViIiwKICAiZ2VuZXJhdG9yVmVyc2lvbiI6ICIzLjkuMiIsCiAgImZsdXR0ZXJSb290IjogImZpbGU6Ly8vVXNlcnMvZmVsaXgvRGV2ZWxvcG1lbnQvZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIiLAogICJmbHV0dGVyVmVyc2lvbiI6ICIzLjM1LjMiLAogICJwdWJDYWNoZSI6ICJmaWxlOi8vL1VzZXJzL2ZlbGl4Ly5wdWItY2FjaGUiCn0KJycnOwo=", + "type": "text" + }, + { + "path": "test/fixtures/package_graphs.dart", + "data": + "Y29uc3QgcGFja2FnZUdyYXBoV2l0aERpcmVjdEFuZFRyYW5zaXRpdmVEZXBzID0gJycnCnsKICAicm9vdHMiOiBbCiAgICAiXyIsCiAgICAiY2xpZW50IiwKICAgICJtb2RlbHMiLAogICAgInByb3RvY29sIiwKICAgICJzZXJ2ZXIiCiAgXSwKICAicGFja2FnZXMiOiBbCiAgICB7CiAgICAgICJuYW1lIjogIl8iLAogICAgICAidmVyc2lvbiI6ICIwLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXSwKICAgICAgImRldkRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjbGllbnQiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCsxIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY3VwZXJ0aW5vX2ljb25zIiwKICAgICAgICAiZmx1dHRlciIKICAgICAgXSwKICAgICAgImRldkRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiZmx1dHRlcl9saW50cyIsCiAgICAgICAgImZsdXR0ZXJfdGVzdCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAicHJvdG9jb2wiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgIm1vZGVscyIKICAgICAgXSwKICAgICAgImRldkRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibGludHMiLAogICAgICAgICJ0ZXN0IgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJtb2RlbHMiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXSwKICAgICAgImRldkRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibGludHMiLAogICAgICAgICJ0ZXN0IgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzZXJ2ZXIiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCsxIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiZGFydF9mcm9nIiwKICAgICAgICAicHJvdG9jb2wiCiAgICAgIF0sCiAgICAgICJkZXZEZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgIm1vY2t0YWlsIiwKICAgICAgICAidGVzdCIsCiAgICAgICAgInZlcnlfZ29vZF9hbmFseXNpcyIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidmVyeV9nb29kX2FuYWx5c2lzIiwKICAgICAgInZlcnNpb24iOiAiNS4xLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInRlc3QiLAogICAgICAidmVyc2lvbiI6ICIxLjI2LjIiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhbmFseXplciIsCiAgICAgICAgImFzeW5jIiwKICAgICAgICAiYm9vbGVhbl9zZWxlY3RvciIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJjb3ZlcmFnZSIsCiAgICAgICAgImh0dHBfbXVsdGlfc2VydmVyIiwKICAgICAgICAiaW8iLAogICAgICAgICJqcyIsCiAgICAgICAgIm1hdGNoZXIiLAogICAgICAgICJub2RlX3ByZWFtYmxlIiwKICAgICAgICAicGFja2FnZV9jb25maWciLAogICAgICAgICJwYXRoIiwKICAgICAgICAicG9vbCIsCiAgICAgICAgInNoZWxmIiwKICAgICAgICAic2hlbGZfcGFja2FnZXNfaGFuZGxlciIsCiAgICAgICAgInNoZWxmX3N0YXRpYyIsCiAgICAgICAgInNoZWxmX3dlYl9zb2NrZXQiLAogICAgICAgICJzb3VyY2Vfc3BhbiIsCiAgICAgICAgInN0YWNrX3RyYWNlIiwKICAgICAgICAic3RyZWFtX2NoYW5uZWwiLAogICAgICAgICJ0ZXN0X2FwaSIsCiAgICAgICAgInRlc3RfY29yZSIsCiAgICAgICAgInR5cGVkX2RhdGEiLAogICAgICAgICJ3ZWJfc29ja2V0X2NoYW5uZWwiLAogICAgICAgICJ3ZWJraXRfaW5zcGVjdGlvbl9wcm90b2NvbCIsCiAgICAgICAgInlhbWwiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1vY2t0YWlsIiwKICAgICAgInZlcnNpb24iOiAiMS4wLjQiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjb2xsZWN0aW9uIiwKICAgICAgICAibWF0Y2hlciIsCiAgICAgICAgInRlc3RfYXBpIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJkYXJ0X2Zyb2ciLAogICAgICAidmVyc2lvbiI6ICIxLjIuMyIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImh0dHBfbWV0aG9kcyIsCiAgICAgICAgImh0dHBfcGFyc2VyIiwKICAgICAgICAibWV0YSIsCiAgICAgICAgIm1pbWUiLAogICAgICAgICJzaGVsZiIsCiAgICAgICAgInNoZWxmX2hvdHJlbG9hZCIsCiAgICAgICAgInNoZWxmX3N0YXRpYyIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibGludHMiLAogICAgICAidmVyc2lvbiI6ICI1LjEuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiZmx1dHRlcl9saW50cyIsCiAgICAgICJ2ZXJzaW9uIjogIjUuMC4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibGludHMiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImZsdXR0ZXJfdGVzdCIsCiAgICAgICJ2ZXJzaW9uIjogIjAuMC4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY2xvY2siLAogICAgICAgICJjb2xsZWN0aW9uIiwKICAgICAgICAiZmFrZV9hc3luYyIsCiAgICAgICAgImZsdXR0ZXIiLAogICAgICAgICJsZWFrX3RyYWNrZXJfZmx1dHRlcl90ZXN0aW5nIiwKICAgICAgICAibWF0Y2hlciIsCiAgICAgICAgIm1ldGEiLAogICAgICAgICJwYXRoIiwKICAgICAgICAic3RhY2tfdHJhY2UiLAogICAgICAgICJzdHJlYW1fY2hhbm5lbCIsCiAgICAgICAgInRlc3RfYXBpIiwKICAgICAgICAidmVjdG9yX21hdGgiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImN1cGVydGlub19pY29ucyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMC44IiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmbHV0dGVyIiwKICAgICAgInZlcnNpb24iOiAiMC4wLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjaGFyYWN0ZXJzIiwKICAgICAgICAiY29sbGVjdGlvbiIsCiAgICAgICAgIm1hdGVyaWFsX2NvbG9yX3V0aWxpdGllcyIsCiAgICAgICAgIm1ldGEiLAogICAgICAgICJza3lfZW5naW5lIiwKICAgICAgICAidmVjdG9yX21hdGgiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInlhbWwiLAogICAgICAidmVyc2lvbiI6ICIzLjEuMyIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJzb3VyY2Vfc3BhbiIsCiAgICAgICAgInN0cmluZ19zY2FubmVyIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJ3ZWJraXRfaW5zcGVjdGlvbl9wcm90b2NvbCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMi4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibG9nZ2luZyIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAid2ViX3NvY2tldF9jaGFubmVsIiwKICAgICAgInZlcnNpb24iOiAiMy4wLjMiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhc3luYyIsCiAgICAgICAgImNyeXB0byIsCiAgICAgICAgInN0cmVhbV9jaGFubmVsIiwKICAgICAgICAid2ViIiwKICAgICAgICAid2ViX3NvY2tldCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidHlwZWRfZGF0YSIsCiAgICAgICJ2ZXJzaW9uIjogIjEuNC4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY29sbGVjdGlvbiIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidGVzdF9jb3JlIiwKICAgICAgInZlcnNpb24iOiAiMC42LjExIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYW5hbHl6ZXIiLAogICAgICAgICJhcmdzIiwKICAgICAgICAiYXN5bmMiLAogICAgICAgICJib29sZWFuX3NlbGVjdG9yIiwKICAgICAgICAiY29sbGVjdGlvbiIsCiAgICAgICAgImNvdmVyYWdlIiwKICAgICAgICAiZnJvbnRlbmRfc2VydmVyX2NsaWVudCIsCiAgICAgICAgImdsb2IiLAogICAgICAgICJpbyIsCiAgICAgICAgIm1ldGEiLAogICAgICAgICJwYWNrYWdlX2NvbmZpZyIsCiAgICAgICAgInBhdGgiLAogICAgICAgICJwb29sIiwKICAgICAgICAic291cmNlX21hcF9zdGFja190cmFjZSIsCiAgICAgICAgInNvdXJjZV9tYXBzIiwKICAgICAgICAic291cmNlX3NwYW4iLAogICAgICAgICJzdGFja190cmFjZSIsCiAgICAgICAgInN0cmVhbV9jaGFubmVsIiwKICAgICAgICAidGVzdF9hcGkiLAogICAgICAgICJ2bV9zZXJ2aWNlIiwKICAgICAgICAieWFtbCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidGVzdF9hcGkiLAogICAgICAidmVyc2lvbiI6ICIwLjcuNiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImFzeW5jIiwKICAgICAgICAiYm9vbGVhbl9zZWxlY3RvciIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJtZXRhIiwKICAgICAgICAic291cmNlX3NwYW4iLAogICAgICAgICJzdGFja190cmFjZSIsCiAgICAgICAgInN0cmVhbV9jaGFubmVsIiwKICAgICAgICAic3RyaW5nX3NjYW5uZXIiLAogICAgICAgICJ0ZXJtX2dseXBoIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzdHJlYW1fY2hhbm5lbCIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMS40IiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYXN5bmMiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInN0YWNrX3RyYWNlIiwKICAgICAgInZlcnNpb24iOiAiMS4xMi4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAicGF0aCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic291cmNlX3NwYW4iLAogICAgICAidmVyc2lvbiI6ICIxLjEwLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjb2xsZWN0aW9uIiwKICAgICAgICAicGF0aCIsCiAgICAgICAgInRlcm1fZ2x5cGgiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNoZWxmX3dlYl9zb2NrZXQiLAogICAgICAidmVyc2lvbiI6ICIzLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgInNoZWxmIiwKICAgICAgICAic3RyZWFtX2NoYW5uZWwiLAogICAgICAgICJ3ZWJfc29ja2V0X2NoYW5uZWwiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNoZWxmX3N0YXRpYyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMS4zIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY29udmVydCIsCiAgICAgICAgImh0dHBfcGFyc2VyIiwKICAgICAgICAibWltZSIsCiAgICAgICAgInBhdGgiLAogICAgICAgICJzaGVsZiIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic2hlbGZfcGFja2FnZXNfaGFuZGxlciIsCiAgICAgICJ2ZXJzaW9uIjogIjMuMC4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAicGF0aCIsCiAgICAgICAgInNoZWxmIiwKICAgICAgICAic2hlbGZfc3RhdGljIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzaGVsZiIsCiAgICAgICJ2ZXJzaW9uIjogIjEuNC4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYXN5bmMiLAogICAgICAgICJjb2xsZWN0aW9uIiwKICAgICAgICAiaHR0cF9wYXJzZXIiLAogICAgICAgICJwYXRoIiwKICAgICAgICAic3RhY2tfdHJhY2UiLAogICAgICAgICJzdHJlYW1fY2hhbm5lbCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAicG9vbCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuNS4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYXN5bmMiLAogICAgICAgICJzdGFja190cmFjZSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAicGF0aCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuOS4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJwYWNrYWdlX2NvbmZpZyIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMi4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAicGF0aCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibm9kZV9wcmVhbWJsZSIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMC4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJtYXRjaGVyIiwKICAgICAgInZlcnNpb24iOiAiMC4xMi4xNyIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImFzeW5jIiwKICAgICAgICAibWV0YSIsCiAgICAgICAgInN0YWNrX3RyYWNlIiwKICAgICAgICAidGVybV9nbHlwaCIsCiAgICAgICAgInRlc3RfYXBpIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJqcyIsCiAgICAgICJ2ZXJzaW9uIjogIjAuNy4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJpbyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMC41IiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibWV0YSIsCiAgICAgICAgInBhdGgiLAogICAgICAgICJzdHJpbmdfc2Nhbm5lciIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaHR0cF9tdWx0aV9zZXJ2ZXIiLAogICAgICAidmVyc2lvbiI6ICIzLjIuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImFzeW5jIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb3ZlcmFnZSIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMTUuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImFyZ3MiLAogICAgICAgICJjbGlfY29uZmlnIiwKICAgICAgICAiZ2xvYiIsCiAgICAgICAgImxvZ2dpbmciLAogICAgICAgICJtZXRhIiwKICAgICAgICAicGFja2FnZV9jb25maWciLAogICAgICAgICJwYXRoIiwKICAgICAgICAic291cmNlX21hcHMiLAogICAgICAgICJzdGFja190cmFjZSIsCiAgICAgICAgInZtX3NlcnZpY2UiLAogICAgICAgICJ5YW1sIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb2xsZWN0aW9uIiwKICAgICAgInZlcnNpb24iOiAiMS4xOS4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJib29sZWFuX3NlbGVjdG9yIiwKICAgICAgInZlcnNpb24iOiAiMi4xLjIiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJzb3VyY2Vfc3BhbiIsCiAgICAgICAgInN0cmluZ19zY2FubmVyIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJhc3luYyIsCiAgICAgICJ2ZXJzaW9uIjogIjIuMTMuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJtZXRhIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJhbmFseXplciIsCiAgICAgICJ2ZXJzaW9uIjogIjcuNy4xIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiX2ZlX2FuYWx5emVyX3NoYXJlZCIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJjb252ZXJ0IiwKICAgICAgICAiY3J5cHRvIiwKICAgICAgICAiZ2xvYiIsCiAgICAgICAgIm1ldGEiLAogICAgICAgICJwYWNrYWdlX2NvbmZpZyIsCiAgICAgICAgInBhdGgiLAogICAgICAgICJwdWJfc2VtdmVyIiwKICAgICAgICAic291cmNlX3NwYW4iLAogICAgICAgICJ3YXRjaGVyIiwKICAgICAgICAieWFtbCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic2hlbGZfaG90cmVsb2FkIiwKICAgICAgInZlcnNpb24iOiAiMS41LjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJob3RyZWxvYWRlciIsCiAgICAgICAgImxvZ2dpbmciCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1pbWUiLAogICAgICAidmVyc2lvbiI6ICIyLjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibWV0YSIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMTYuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaHR0cF9wYXJzZXIiLAogICAgICAidmVyc2lvbiI6ICI0LjEuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJzb3VyY2Vfc3BhbiIsCiAgICAgICAgInN0cmluZ19zY2FubmVyIiwKICAgICAgICAidHlwZWRfZGF0YSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaHR0cF9tZXRob2RzIiwKICAgICAgInZlcnNpb24iOiAiMS4xLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImxlYWtfdHJhY2tlcl9mbHV0dGVyX3Rlc3RpbmciLAogICAgICAidmVyc2lvbiI6ICIzLjAuMTAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJmbHV0dGVyIiwKICAgICAgICAibGVha190cmFja2VyIiwKICAgICAgICAibGVha190cmFja2VyX3Rlc3RpbmciLAogICAgICAgICJtYXRjaGVyIiwKICAgICAgICAibWV0YSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidmVjdG9yX21hdGgiLAogICAgICAidmVyc2lvbiI6ICIyLjIuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY2xvY2siLAogICAgICAidmVyc2lvbiI6ICIxLjEuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiZmFrZV9hc3luYyIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMy4zIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiY2xvY2siLAogICAgICAgICJjb2xsZWN0aW9uIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJza3lfZW5naW5lIiwKICAgICAgInZlcnNpb24iOiAiMC4wLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIm1hdGVyaWFsX2NvbG9yX3V0aWxpdGllcyIsCiAgICAgICJ2ZXJzaW9uIjogIjAuMTEuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNoYXJhY3RlcnMiLAogICAgICAidmVyc2lvbiI6ICIxLjQuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic3RyaW5nX3NjYW5uZXIiLAogICAgICAidmVyc2lvbiI6ICIxLjQuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgInNvdXJjZV9zcGFuIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJsb2dnaW5nIiwKICAgICAgInZlcnNpb24iOiAiMS4zLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIndlYl9zb2NrZXQiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgIndlYiIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAid2ViIiwKICAgICAgInZlcnNpb24iOiAiMS4xLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNyeXB0byIsCiAgICAgICJ2ZXJzaW9uIjogIjMuMC42IiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAidHlwZWRfZGF0YSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidm1fc2VydmljZSIsCiAgICAgICJ2ZXJzaW9uIjogIjE1LjAuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAic291cmNlX21hcHMiLAogICAgICAidmVyc2lvbiI6ICIwLjEwLjEzIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAic291cmNlX3NwYW4iCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogInNvdXJjZV9tYXBfc3RhY2tfdHJhY2UiLAogICAgICAidmVyc2lvbiI6ICIyLjEuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgInBhdGgiLAogICAgICAgICJzb3VyY2VfbWFwcyIsCiAgICAgICAgInN0YWNrX3RyYWNlIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJnbG9iIiwKICAgICAgInZlcnNpb24iOiAiMi4xLjMiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhc3luYyIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJmaWxlIiwKICAgICAgICAicGF0aCIsCiAgICAgICAgInN0cmluZ19zY2FubmVyIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJmcm9udGVuZF9zZXJ2ZXJfY2xpZW50IiwKICAgICAgInZlcnNpb24iOiAiNC4wLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhc3luYyIsCiAgICAgICAgInBhdGgiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImFyZ3MiLAogICAgICAidmVyc2lvbiI6ICIyLjcuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAidGVybV9nbHlwaCIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMi4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFtdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb252ZXJ0IiwKICAgICAgInZlcnNpb24iOiAiMy4xLjIiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJ0eXBlZF9kYXRhIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjbGlfY29uZmlnIiwKICAgICAgInZlcnNpb24iOiAiMC4yLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJhcmdzIiwKICAgICAgICAieWFtbCIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAid2F0Y2hlciIsCiAgICAgICJ2ZXJzaW9uIjogIjEuMS4yIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAiYXN5bmMiLAogICAgICAgICJwYXRoIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJwdWJfc2VtdmVyIiwKICAgICAgInZlcnNpb24iOiAiMi4yLjAiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjb2xsZWN0aW9uIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJfZmVfYW5hbHl6ZXJfc2hhcmVkIiwKICAgICAgInZlcnNpb24iOiAiODUuMC4wIiwKICAgICAgImRlcGVuZGVuY2llcyI6IFsKICAgICAgICAibWV0YSIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiaG90cmVsb2FkZXIiLAogICAgICAidmVyc2lvbiI6ICI0LjMuMCIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJsb2dnaW5nIiwKICAgICAgICAicGF0aCIsCiAgICAgICAgInN0cmVhbV90cmFuc2Zvcm0iLAogICAgICAgICJ2bV9zZXJ2aWNlIiwKICAgICAgICAid2F0Y2hlciIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAibGVha190cmFja2VyX3Rlc3RpbmciLAogICAgICAidmVyc2lvbiI6ICIzLjAuMiIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgImxlYWtfdHJhY2tlciIsCiAgICAgICAgIm1hdGNoZXIiLAogICAgICAgICJtZXRhIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJsZWFrX3RyYWNrZXIiLAogICAgICAidmVyc2lvbiI6ICIxMS4wLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogWwogICAgICAgICJjbG9jayIsCiAgICAgICAgImNvbGxlY3Rpb24iLAogICAgICAgICJtZXRhIiwKICAgICAgICAicGF0aCIsCiAgICAgICAgInZtX3NlcnZpY2UiCiAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImZpbGUiLAogICAgICAidmVyc2lvbiI6ICI3LjAuMSIsCiAgICAgICJkZXBlbmRlbmNpZXMiOiBbCiAgICAgICAgIm1ldGEiLAogICAgICAgICJwYXRoIgogICAgICBdCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJzdHJlYW1fdHJhbnNmb3JtIiwKICAgICAgInZlcnNpb24iOiAiMi4xLjEiLAogICAgICAiZGVwZW5kZW5jaWVzIjogW10KICAgIH0KICBdLAogICJjb25maWdWZXJzaW9uIjogMQp9CicnJzsK", "type": "text" }, { @@ -310,7 +364,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "test/pre_gen_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAncHVic3BlY19sb2Nrcy5kYXJ0JzsKaW1wb3J0ICdwdWJzcGVjcy5kYXJ0JzsKCmNsYXNzIF9GYWtlSG9va0NvbnRleHQgZXh0ZW5kcyBGYWtlIGltcGxlbWVudHMgSG9va0NvbnRleHQgewogIF9GYWtlSG9va0NvbnRleHQoe0xvZ2dlcj8gbG9nZ2VyfSkgOiBfbG9nZ2VyID0gbG9nZ2VyID8/IF9Nb2NrTG9nZ2VyKCk7CgogIGZpbmFsIExvZ2dlciBfbG9nZ2VyOwoKICB2YXIgX3ZhcnMgPSA8U3RyaW5nLCBkeW5hbWljPnt9OwoKICBAb3ZlcnJpZGUKICBNYXA8U3RyaW5nLCBkeW5hbWljPiBnZXQgdmFycyA9PiBfdmFyczsKCiAgQG92ZXJyaWRlCiAgc2V0IHZhcnMoTWFwPFN0cmluZywgZHluYW1pYz4gdmFsdWUpID0+IF92YXJzID0gdmFsdWU7CgogIEBvdmVycmlkZQogIExvZ2dlciBnZXQgbG9nZ2VyID0+IF9sb2dnZXI7Cn0KCmNsYXNzIF9Nb2NrTG9nZ2VyIGV4dGVuZHMgTW9jayBpbXBsZW1lbnRzIExvZ2dlciB7fQoKY2xhc3MgX01vY2tQcm9ncmVzcyBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBQcm9ncmVzcyB7fQoKdm9pZCBtYWluKCkgewogIGdyb3VwKCdwcmVHZW4nLCAoKSB7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CgogICAgRnV0dXJlPFByb2Nlc3NSZXN1bHQ+IHN1Y2Nlc3NSdW5Qcm9jZXNzKAogICAgICBleGVjdXRhYmxlLAogICAgICBhcmdzLCB7CiAgICAgIFN0cmluZz8gd29ya2luZ0RpcmVjdG9yeSwKICAgICAgYm9vbD8gcnVuSW5TaGVsbCwKICAgIH0pID0+CiAgICAgICAgRnV0dXJlLnZhbHVlKFByb2Nlc3NSZXN1bHQoMCwgMCwgJycsICcnKSk7CgogICAgc2V0VXAoKCkgewogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBjb250ZXh0ID0gX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyh3b3Jrc3BhY2VSb290KTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMod29ya3NwYWNlQ2hpbGQpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAnZml4dHVyZXMvcGFja2FnZV9jb25maWdzLmRhcnQnOwppbXBvcnQgJ2ZpeHR1cmVzL3BhY2thZ2VfZ3JhcGhzLmRhcnQnOwppbXBvcnQgJ3B1YnNwZWNfbG9ja3MuZGFydCc7CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9CgpjbGFzcyBfTW9ja0xvZ2dlciBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBMb2dnZXIge30KCmNsYXNzIF9Nb2NrUHJvZ3Jlc3MgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUHJvZ3Jlc3Mge30KCnZvaWQgbWFpbigpIHsKICBncm91cCgncHJlR2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIEZ1dHVyZTxQcm9jZXNzUmVzdWx0PiBzdWNjZXNzUnVuUHJvY2VzcygKICAgICAgZXhlY3V0YWJsZSwKICAgICAgYXJncywgewogICAgICBTdHJpbmc/IHdvcmtpbmdEaXJlY3RvcnksCiAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICB9KSA9PgogICAgICAgIEZ1dHVyZS52YWx1ZShQcm9jZXNzUmVzdWx0KDAsIDAsICcnLCAnJykpOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpCiAgICAgICAgLi52YXJzWydkYXJ0VmVyc2lvbiddID0gJ3N0YWJsZSc7CgogICAgICB3aGVuKCgpID0+IGxvZ2dlci5wcm9ncmVzcyhhbnkoKSkpLnRoZW5SZXR1cm4oX01vY2tQcm9ncmVzcygpKTsKICAgIH0pOwoKICAgIHRlc3QoJ3J1biBjb21wbGV0ZXMnLCAoKSB7CiAgICAgIGV4cGVjdCgKICAgICAgICBFeGl0T3ZlcnJpZGVzLnJ1blpvbmVkKAogICAgICAgICAgKCkgPT4gcHJlX2dlbi5ydW4oX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikpLAogICAgICAgICAgZXhpdDogKF8pIHt9LAogICAgICAgICksCiAgICAgICAgY29tcGxldGVzLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidWlsZFJvdXRlQ29uZmlndXJhdGlvbiB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbignb29wcycpOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IHRocm93IGV4Y2VwdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGV4Y2VwdGlvbi50b1N0cmluZygpKSkuY2FsbGVkKDEpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm91dGUgY29uZmxpY3RzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHsKICAgICAgICAgICcvJzogWwogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2luZGV4JywKICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvX2luZGV4JywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvLmRhcnQnKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoJ3JvdXRlcy9oZWxsby9pbmRleC5kYXJ0Jyl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKCcvaGVsbG8nKX0uJycnLAogICAgICAgICksCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXQoMSkgZm9yIHJvZ3VlIHJvdXRlcycsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogWwogICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgIHJvdXRlOiAnL2hlbGxvJywKICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnJydSb2d1ZSByb3V0ZSBkZXRlY3RlZC4ke2RlZmF1bHRGb3JlZ3JvdW5kLndyYXAoJyAnKX1SZW5hbWUgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvLmRhcnQnKX0gdG8gJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0uJycnLAogICAgICAgICksCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgIH0pOwoKICAgIHRlc3QoJ3dvcmtzIHdpdGggd29ya3NwYWNlcycsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2NvbmZpZy5qc29uJyksCiAgICAgICkKICAgICAgICAuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKQogICAgICAgIC4ud3JpdGVBc1N0cmluZ1N5bmMocGFja2FnZUNvbmZpZ1dpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwZW5kZW5jaWVzKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICcuZGFydF90b29sJywgJ3BhY2thZ2VfZ3JhcGguanNvbicpLAogICAgICApCiAgICAgICAgLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHBhY2thZ2VHcmFwaFdpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwcyk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KcHVibGlzaF90bzogbm9uZQoKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy42LjAKCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2NsaWVudAogIC0gcGFja2FnZXMvcHJvdG9jb2wKICAtIHBhY2thZ2VzL21vZGVscwogIC0gcGFja2FnZXMvc2VydmVyCicnJyk7CiAgICAgIGZpbmFsIHNlcnZlciA9IERpcmVjdG9yeSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdzZXJ2ZXInKSwKICAgICAgKS4uY3JlYXRlU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBzZXJ2ZXIKZGVzY3JpcHRpb246IEEgbmV3IERhcnQgRnJvZyBhcHBsaWNhdGlvbgp2ZXJzaW9uOiAxLjAuMCsxCnB1Ymxpc2hfdG86IG5vbmUKcmVzb2x1dGlvbjogd29ya3NwYWNlCgplbnZpcm9ubWVudDoKICBzZGs6IF4zLjYuMAoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZzogXjEuMS4wCiAgcHJvdG9jb2w6IF4xLjAuMAonJycpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", "type": "text" }, { @@ -319,16 +373,10 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBhIGNoaWxkIG9mIHRoZSBwcm9qZWN0Ci8vLyBkaXJlY3RvcnkuCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgbm90IGEgY2hpbGQgb2YgdGhlIHByb2plY3QKLy8vIGRpcmVjdG9yeSBhbmQgaGFzIGEgZGlmZmVyZW50IHBhY2thZ2UgbmFtZSB0aGFuIHRoZSBkaXJlY3RvcnkgbmFtZS4KLy8vICogQSBkaXJlY3QgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBkZXYgbWFpbiBkZXBlbmRlbmN5IHRoYXQgaXMgaG9zdGVkLgovLy8gKiBBIGRpcmVjdCBvdmVycmlkZGVuIGRlcGVuZGVuY3kgZnJvbSBnaXQuCmNvbnN0IGZvb1BhdGggPSAnJycKcGFja2FnZXM6CiAgYXJnczoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBhcmdzCiAgICAgIHNoYTI1NjogZWVmNmM0NmI2MjJlMDQ5NGEzNmM1YTEyZDEwZDc3ZmI0ZTg1NTUwMWE5MWMxYjllZjkzMzkzMjZlNThmMDU5NgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjIuNC4yIgogIGZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgc2Vjb25kX2ZvbzoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAiLi4vLi4vZm9vMiIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGRpcmVjdF9tYWluOgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBtYWluIgogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGRpcmVjdF9tYWluCiAgICAgIHNoYTI1NjogZmRjOWVhOTA1ZTdjNjkwZmUzOWQyZjk5NDZiN2FlYWQ4NmZkOTc2ZjhlZGY5N2QyNTIxYTY1ZDI2MGJiZjUwOQogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MCIKICB0ZXN0OgogICAgZGVwZW5kZW5jeTogImRpcmVjdCBkZXYiCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogdGVzdAogICAgICBzaGEyNTY6ICI5YjBkZDhlMzZhZjRhNWIxNTY5MDI5OTQ5ZDUwYTUyY2IyYTJhMmZkYWEyMGNlYmI5NmU2NjAzYjlhZTI0MWY5IgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjEuMjQuNiIKICBkaXJlY3Rfb3ZlcnJpZGRlbjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3Qgb3ZlcnJpZGRlbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvbWFzb24iCiAgICAgIHJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHJlc29sdmVkLXJlZjogIjcyYzMwNmE4ZDhhYmYzMDZiNWQwMjRmOTVhYWMyOWJhNWZkOTY1NzciCiAgICAgIHVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzdGlhZ28vbWFzb24iCiAgICBzb3VyY2U6IGdpdAogICAgdmVyc2lvbjogIjAuMS4wLWRldi41MiIKc2RrczoKICBkYXJ0OiAiPj0zLjAuMCA8NC4wLjAiCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy5sb2NrYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBBIHRyYW5zaXRpdmUgZGVwZW5kZW5jeS4KLy8vICogQSBkaXJlY3QgbWFpbiBwYXRoIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgYSBjaGlsZCBvZiB0aGUgcHJvamVjdAovLy8gZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIHBhdGggZGVwZW5kZW5jeSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhlIHByb2plY3QgZGlyZWN0b3J5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IGZvb1BhdGhXaXRoSW50ZXJuYWxEZXBlbmRlbmN5ID0gJycnCnBhY2thZ2VzOgogIGFyZ3M6CiAgICBkZXBlbmRlbmN5OiB0cmFuc2l0aXZlCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogYXJncwogICAgICBzaGEyNTY6IGVlZjZjNDZiNjIyZTA0OTRhMzZjNWExMmQxMGQ3N2ZiNGU4NTU1MDFhOTFjMWI5ZWY5MzM5MzI2ZTU4ZjA1OTYKICAgICAgdXJsOiAiaHR0cHM6Ly9wdWIuZGV2IgogICAgc291cmNlOiBob3N0ZWQKICAgIHZlcnNpb246ICIyLjQuMiIKICBmb286CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgcGF0aDogIi4uLy4uL2ZvbyIKICAgICAgcmVsYXRpdmU6IHRydWUKICAgIHNvdXJjZTogcGF0aAogICAgdmVyc2lvbjogIjAuMC4wIgogIGJhcjoKICAgIGRlcGVuZGVuY3k6ICJkaXJlY3QgbWFpbiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBwYXRoOiAicGFja2FnZXMvYmFyIgogICAgICByZWxhdGl2ZTogdHJ1ZQogICAgc291cmNlOiBwYXRoCiAgICB2ZXJzaW9uOiAiMC4wLjAiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwoKLy8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLmxvY2tgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5LgovLy8gKiBBIGRpcmVjdCBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCi8vLyAqIEEgZGlyZWN0IGRldiBtYWluIGRlcGVuZGVuY3kgdGhhdCBpcyBob3N0ZWQuCmNvbnN0IG5vUGF0aERlcGVuZGVuY2llcyA9ICcnJwpwYWNrYWdlczoKICBhcmdzOgogICAgZGVwZW5kZW5jeTogdHJhbnNpdGl2ZQogICAgZGVzY3JpcHRpb246CiAgICAgIG5hbWU6IGFyZ3MKICAgICAgc2hhMjU2OiBlZWY2YzQ2YjYyMmUwNDk0YTM2YzVhMTJkMTBkNzdmYjRlODU1NTAxYTkxYzFiOWVmOTMzOTMyNmU1OGYwNTk2CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMi40LjIiCiAgbWFzb246CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IG1haW4iCiAgICBkZXNjcmlwdGlvbjoKICAgICAgbmFtZTogbWFzb24KICAgICAgc2hhMjU2OiBmZGM5ZWE5MDVlN2M2OTBmZTM5ZDJmOTk0NmI3YWVhZDg2ZmQ5NzZmOGVkZjk3ZDI1MjFhNjVkMjYwYmJmNTA5CiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMC4xLjAtZGV2LjUwIgogIHRlc3Q6CiAgICBkZXBlbmRlbmN5OiAiZGlyZWN0IGRldiIKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiB0ZXN0CiAgICAgIHNoYTI1NjogIjliMGRkOGUzNmFmNGE1YjE1NjkwMjk5NDlkNTBhNTJjYjJhMmEyZmRhYTIwY2ViYjk2ZTY2MDNiOWFlMjQxZjkiCiAgICAgIHVybDogImh0dHBzOi8vcHViLmRldiIKICAgIHNvdXJjZTogaG9zdGVkCiAgICB2ZXJzaW9uOiAiMS4yNC42IgpzZGtzOgogIGRhcnQ6ICI+PTMuMC4wIDw0LjAuMCIKJycnOwo=", "type": "text" }, - { - "path": "test/pubspecs.dart", - "data": - "Ly8vIEFuIGFydGlmaWNpYWxseSBjcmFmdGVkIGBwdWJzcGVjLnlhbWxgIGZpbGUgd2l0aDoKLy8vCi8vLyAqIEEgZGlyZWN0IG1haW4gcGF0aCBkZXBlbmRlbmN5IHRoYXQgaXMgYSBjaGlsZCBvZiB0aGUgcHJvamVjdCBkaXJlY3RvcnkuCi8vLyAqIERhcnQgd29ya3NwYWNlcyBlbmFibGVkCmNvbnN0IHdvcmtzcGFjZVJvb3QgPSAnJycKbmFtZTogXwpkZXBlbmRlbmNpZXM6CiAgc2VydmVyOgogICAgcGF0aDogcGFja2FnZXMvc2VydmVyICAKd29ya3NwYWNlOgogIC0gcGFja2FnZXMvc2VydmVyCicnJzsKCi8vLyBBbiBhcnRpZmljaWFsbHkgY3JhZnRlZCBgcHVic3BlYy55YW1sYCBmaWxlIHdpdGg6Ci8vLwovLy8gKiBEYXJ0IHdvcmtzcGFjZXMgZW5hYmxlZApjb25zdCB3b3Jrc3BhY2VDaGlsZCA9ICcnJwpuYW1lOiBzZXJ2ZXIKcmVzb2x1dGlvbjogd29ya3NwYWNlCicnJzsK", - "type": "text" - }, { "path": "test/src/copy_workspace_pubspec_lock_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICdVbmFibGUgdG8gZGV0ZXJtaW5lIHdvcmtzcGFjZSByb290IGZvciAke3Byb2plY3REaXJlY3RvcnkucGF0aH0nLAogICAgICAgICksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yIHdoZW4gdW5hYmxlIHRvIHBhcnNlIHB1YnNwZWMueWFtbCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ2ludmFsaWQgcHVic3BlYy55YW1sJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2RvZXMgbm90aGluZyB3aGVuIHB1YnNwZWMubG9jayBkb2VzIG5vdCBleGlzdCBpbiB3b3Jrc3BhY2Ugcm9vdCcsICgpIHsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpLCBpc0VtcHR5KTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzIHdpdGggZXJyb3Igd2hlbiB1bmFibGUgdG8gY29weSBsb2NrZmlsZScsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnZlcnNpb246IDAuMC4wCmVudmlyb25tZW50OgogIHNkazogXjMuOC4wCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2hlbGxvX3dvcmxkCicnJyk7CiAgICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHB1YnNwZWNMb2NrQ29udGVudHMpOwogICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBmaWxlLnBhdGhdKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdjb3BpZXMgcHVic3BlYy5sb2NrIHRvIHByb2plY3QgZGlyZWN0b3J5IHdoZW4gZm91bmQnLCAoKSB7CiAgICAgIGNvbnN0IHB1YnNwZWNMb2NrQ29udGVudHMgPSAnJycKIyBHZW5lcmF0ZWQgYnkgcHViCiMgU2VlIGh0dHBzOi8vZGFydC5kZXYvdG9vbHMvcHViL2dsb3NzYXJ5I2xvY2tmaWxlCnBhY2thZ2VzOgonJyc7CiAgICAgIEZpbGUocGF0aC5qb2luKHJvb3REaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogXwp2ZXJzaW9uOiAwLjAuMAplbnZpcm9ubWVudDoKICBzZGs6IF4zLjguMAp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9oZWxsb193b3JsZAonJycpOwogICAgICBGaWxlKHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSkKICAgICAgICAgIC53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGZpbmFsIHByb2plY3REaXJlY3RvcnlDb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgZXhwZWN0KHByb2plY3REaXJlY3RvcnlDb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgZXhwZWN0KAogICAgICAgIHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCwKICAgICAgICBpc0E8RmlsZT4oKS5oYXZpbmcoCiAgICAgICAgICAoZikgPT4gcGF0aC5iYXNlbmFtZShmLnBhdGgpLAogICAgICAgICAgJ25hbWUnLAogICAgICAgICAgJ3B1YnNwZWMubG9jaycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KAogICAgICAgIChwcm9qZWN0RGlyZWN0b3J5Q29udGVudHMuZmlyc3QgYXMgRmlsZSkucmVhZEFzU3RyaW5nU3luYygpLAogICAgICAgIGVxdWFscyhwdWJzcGVjTG9ja0NvbnRlbnRzKSwKICAgICAgKTsKICAgIH0pOwogIH0pOwp9Cg==", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2NvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaycsICgpIHsKICAgIGxhdGUgTGlzdDxpbnQ+IGV4aXRDYWxsczsKICAgIGxhdGUgSG9va0NvbnRleHQgY29udGV4dDsKICAgIGxhdGUgTG9nZ2VyIGxvZ2dlcjsKICAgIGxhdGUgRGlyZWN0b3J5IHByb2plY3REaXJlY3Rvcnk7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpIHsKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5LmRlbGV0ZSgpLmlnbm9yZSgpOwogICAgICAgIHJvb3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCk7CiAgICAgIH0pOwogICAgfSk7CgogICAgdGVzdCgnZG9lcyBub3RoaW5nIHdoZW4gcHVic3BlYy5sb2NrIGRvZXMgbm90IGV4aXN0IGluIHdvcmtzcGFjZSByb290JywgKCkgewogICAgICBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgICAgY29udGV4dCwKICAgICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdChwcm9qZWN0RGlyZWN0b3J5Lmxpc3RTeW5jKCksIGlzRW1wdHkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMgd2l0aCBlcnJvciB3aGVuIHVuYWJsZSB0byBjb3B5IGxvY2tmaWxlJywgKCkgewogICAgICBjb25zdCBwdWJzcGVjTG9ja0NvbnRlbnRzID0gJycnCiMgR2VuZXJhdGVkIGJ5IHB1YgojIFNlZSBodHRwczovL2RhcnQuZGV2L3Rvb2xzL3B1Yi9nbG9zc2FyeSNsb2NrZmlsZQpwYWNrYWdlczoKJycnOwogICAgICBmaW5hbCBmaWxlID0gRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpCiAgICAgICAgLi53cml0ZUFzU3RyaW5nU3luYyhwdWJzcGVjTG9ja0NvbnRlbnRzKTsKICAgICAgUHJvY2Vzcy5ydW5TeW5jKCdjaG1vZCcsIFsnMDAwJywgZmlsZS5wYXRoXSk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICB3b3Jrc3BhY2VSb290OiByb290RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycihhbnkodGhhdDogY29udGFpbnMoJ1Blcm1pc3Npb24gZGVuaWVkJykpKSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoJ2NvcGllcyBwdWJzcGVjLmxvY2sgdG8gcHJvamVjdCBkaXJlY3Rvcnkgd2hlbiBmb3VuZCcsICgpIHsKICAgICAgY29uc3QgcHVic3BlY0xvY2tDb250ZW50cyA9ICcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CicnJzsKICAgICAgRmlsZShwYXRoLmpvaW4ocm9vdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMocHVic3BlY0xvY2tDb250ZW50cyk7CiAgICAgIGNvcHlXb3Jrc3BhY2VQdWJzcGVjTG9jaygKICAgICAgICBjb250ZXh0LAogICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICB3b3Jrc3BhY2VSb290OiByb290RGlyZWN0b3J5LnBhdGgsCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgZmluYWwgcHJvamVjdERpcmVjdG9yeUNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICBleHBlY3QocHJvamVjdERpcmVjdG9yeUNvbnRlbnRzLCBoYXNMZW5ndGgoMSkpOwogICAgICBleHBlY3QoCiAgICAgICAgcHJvamVjdERpcmVjdG9yeUNvbnRlbnRzLmZpcnN0LAogICAgICAgIGlzQTxGaWxlPigpLmhhdmluZygKICAgICAgICAgIChmKSA9PiBwYXRoLmJhc2VuYW1lKGYucGF0aCksCiAgICAgICAgICAnbmFtZScsCiAgICAgICAgICAncHVic3BlYy5sb2NrJywKICAgICAgICApLAogICAgICApOwogICAgICBleHBlY3QoCiAgICAgICAgKHByb2plY3REaXJlY3RvcnlDb250ZW50cy5maXJzdCBhcyBGaWxlKS5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgZXF1YWxzKHB1YnNwZWNMb2NrQ29udGVudHMpLAogICAgICApOwogICAgfSk7CiAgfSk7Cn0K", "type": "text" }, { @@ -352,7 +400,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "test/src/disable_workspace_resolution_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgbGF0ZSBMaXN0PGludD4gZXhpdENhbGxzOwogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKCiAgICBzZXRVcCgoKSB7CiAgICAgIGV4aXRDYWxscyA9IFtdOwogICAgICBjb250ZXh0ID0gX01vY2tIb29rQ29udGV4dCgpOwogICAgICBsb2dnZXIgPSBfTW9ja0xvZ2dlcigpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoJ3Byb2plY3QnKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKCiAgICAgIGFkZFRlYXJEb3duKCgpID0+IHByb2plY3REaXJlY3RvcnkuZGVsZXRlKCkuaWdub3JlKCkpOwogICAgfSk7CgogICAgZ3JvdXAoJ3doZW4gcHVic3BlY19vdmVycmlkZXMueWFtbCBkb2VzIG5vdCBleGlzdCcsICgpIHsKICAgICAgdGVzdCgnYWRkcyByZXNvbHV0aW9uOiBudWxsJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IGNvbnRlbnRzLmZpcnN0IGFzIEZpbGU7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgcHVic3BlY092ZXJyaWRlcy5yZWFkQXNTdHJpbmdTeW5jKCksCiAgICAgICAgICBlcXVhbHMoJ3Jlc29sdXRpb246IG51bGwnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDEpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3QgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgxKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnLmRhcnQnIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1BhY2thZ2VDb25maWcgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUGFja2FnZUNvbmZpZyB7fQoKY2xhc3MgX01vY2tQYWNrYWdlR3JhcGggZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUGFja2FnZUdyYXBoIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgY29uc3QgcGFja2FnZU5hbWUgPSAnc2VydmVyJzsKCiAgICBsYXRlIExpc3Q8aW50PiBleGl0Q2FsbHM7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKICAgIGxhdGUgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnOwogICAgbGF0ZSBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoOwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ25hbWU6ICIkcGFja2FnZU5hbWUiJyk7CiAgICAgIHBhY2thZ2VDb25maWcgPSBfTW9ja1BhY2thZ2VDb25maWcoKTsKICAgICAgcGFja2FnZUdyYXBoID0gX01vY2tQYWNrYWdlR3JhcGgoKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKICAgICAgd2hlbigoKSA9PiBwYWNrYWdlR3JhcGgucm9vdHMpLnRoZW5SZXR1cm4oW3BhY2thZ2VOYW1lXSk7CiAgICAgIHdoZW4oKCkgPT4gcGFja2FnZUdyYXBoLnBhY2thZ2VzKS50aGVuUmV0dXJuKAogICAgICAgIFsKICAgICAgICAgIGNvbnN0IFBhY2thZ2UoCiAgICAgICAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLAogICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFtdLAogICAgICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IFtdLAogICAgICAgICAgICB2ZXJzaW9uOiAnMS4wLjAnLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICApOwogICAgICB3aGVuKCgpID0+IHBhY2thZ2VDb25maWcucGFja2FnZXMpLnRoZW5SZXR1cm4oW10pOwoKICAgICAgYWRkVGVhckRvd24oKCkgPT4gcHJvamVjdERpcmVjdG9yeS5kZWxldGUoKS5pZ25vcmUoKSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjX292ZXJyaWRlcy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDIpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3RXaGVyZSgKICAgICAgICAgIChwKSA9PiBwYXRoLmJhc2VuYW1lKHAucGF0aCkgPT0gJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnLAogICAgICAgICkgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoge30KJycnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDIpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3RXaGVyZSgKICAgICAgICAgIChwKSA9PiBwYXRoLmJhc2VuYW1lKHAucGF0aCkgPT0gJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnLAogICAgICAgICkgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHBhY2thZ2VDb25maWc6IHBhY2thZ2VDb25maWcsCiAgICAgICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIHdvcmtzcGFjZVJvb3Q6IHJvb3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgyKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", "type": "text" }, { From 03156228feb7a53b2c5df5efe5981e16c38a24af Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 20:56:04 -0500 Subject: [PATCH 07/10] coverage --- .../dart_frog_prod_server/hooks/pre_gen.dart | 2 +- .../hooks/test/pre_gen_test.dart | 179 ++++++++++++++++++ 2 files changed, 180 insertions(+), 1 deletion(-) diff --git a/bricks/dart_frog_prod_server/hooks/pre_gen.dart b/bricks/dart_frog_prod_server/hooks/pre_gen.dart index 64d3f68e0..09bc72dc2 100644 --- a/bricks/dart_frog_prod_server/hooks/pre_gen.dart +++ b/bricks/dart_frog_prod_server/hooks/pre_gen.dart @@ -36,7 +36,7 @@ Future preGen( final workspaceRoot = getWorkspaceRoot(projectDirectory.path); if (workspaceRoot == null) { context.logger.err( - 'Unable to determine workspace root for $projectDirectory', + 'Unable to determine workspace root for ${projectDirectory.path}', ); return exit(1); } diff --git a/bricks/dart_frog_prod_server/hooks/test/pre_gen_test.dart b/bricks/dart_frog_prod_server/hooks/test/pre_gen_test.dart index bb2caf02f..a6e57589a 100644 --- a/bricks/dart_frog_prod_server/hooks/test/pre_gen_test.dart +++ b/bricks/dart_frog_prod_server/hooks/test/pre_gen_test.dart @@ -163,6 +163,185 @@ void main() { expect(exitCalls, equals([1])); }); + test('exits(1) when unable to determine workspace root', () async { + const configuration = RouteConfiguration( + middleware: [], + directories: [], + routes: [], + rogueRoutes: [], + endpoints: {}, + ); + + final directory = Directory.systemTemp.createTempSync(); + final server = Directory( + path.join(directory.path, 'server'), + )..createSync(); + File( + path.join(server.path, 'pubspec.yaml'), + ).writeAsStringSync(''' +name: server +description: A new Dart Frog application +version: 1.0.0+1 +publish_to: none +resolution: workspace + +environment: + sdk: ^3.6.0 + +dependencies: + dart_frog: ^1.1.0 + protocol: ^1.0.0 +'''); + final exitCalls = []; + await pre_gen.preGen( + context, + buildConfiguration: (_) => configuration, + exit: exitCalls.add, + directory: server, + runProcess: successRunProcess, + copyPath: (_, __) async {}, + ); + + expect(exitCalls, equals([1])); + verify( + () => logger.err( + 'Unable to determine workspace root for ${server.path}', + ), + ).called(1); + directory.delete(recursive: true).ignore(); + }); + + test('exits(1) when unable to find package_config.json', () async { + const configuration = RouteConfiguration( + middleware: [], + directories: [], + routes: [], + rogueRoutes: [], + endpoints: {}, + ); + + final directory = Directory.systemTemp.createTempSync(); + File( + path.join(directory.path, 'pubspec.yaml'), + ).writeAsStringSync(''' +name: _ +publish_to: none + +environment: + sdk: ^3.6.0 + +workspace: + - packages/client + - packages/protocol + - packages/models + - packages/server +'''); + final server = Directory( + path.join(directory.path, 'server'), + )..createSync(); + File( + path.join(server.path, 'pubspec.yaml'), + ).writeAsStringSync(''' +name: server +description: A new Dart Frog application +version: 1.0.0+1 +publish_to: none +resolution: workspace + +environment: + sdk: ^3.6.0 + +dependencies: + dart_frog: ^1.1.0 + protocol: ^1.0.0 +'''); + final exitCalls = []; + await pre_gen.preGen( + context, + buildConfiguration: (_) => configuration, + exit: exitCalls.add, + directory: server, + runProcess: successRunProcess, + copyPath: (_, __) async {}, + ); + + expect(exitCalls, equals([1])); + verify( + () => logger.err( + 'Unable to find package_config.json for ${directory.path}', + ), + ).called(1); + directory.delete(recursive: true).ignore(); + }); + + test('exits(1) when unable to find package_graph.json', () async { + const configuration = RouteConfiguration( + middleware: [], + directories: [], + routes: [], + rogueRoutes: [], + endpoints: {}, + ); + + final directory = Directory.systemTemp.createTempSync(); + File( + path.join(directory.path, '.dart_tool', 'package_config.json'), + ) + ..createSync(recursive: true) + ..writeAsStringSync(packageConfigWithDirectAndTransitiveDependencies); + File( + path.join(directory.path, 'pubspec.yaml'), + ).writeAsStringSync(''' +name: _ +publish_to: none + +environment: + sdk: ^3.6.0 + +workspace: + - packages/client + - packages/protocol + - packages/models + - packages/server +'''); + final server = Directory( + path.join(directory.path, 'server'), + )..createSync(); + File( + path.join(server.path, 'pubspec.yaml'), + ).writeAsStringSync(''' +name: server +description: A new Dart Frog application +version: 1.0.0+1 +publish_to: none +resolution: workspace + +environment: + sdk: ^3.6.0 + +dependencies: + dart_frog: ^1.1.0 + protocol: ^1.0.0 +'''); + final exitCalls = []; + await pre_gen.preGen( + context, + buildConfiguration: (_) => configuration, + exit: exitCalls.add, + directory: server, + runProcess: successRunProcess, + copyPath: (_, __) async {}, + ); + + expect(exitCalls, equals([1])); + verify( + () => logger.err( + 'Unable to find package_graph.json for ${directory.path}', + ), + ).called(1); + directory.delete(recursive: true).ignore(); + }); + test('works with workspaces', () async { const configuration = RouteConfiguration( middleware: [], From 4d77eb41b34be7b54432c463d7cb225c47221043 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 20:57:58 -0500 Subject: [PATCH 08/10] tweak --- .../hooks/lib/src/disable_workspace_resolution.dart | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart index d3991a4c9..b2c985fa0 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart @@ -1,8 +1,7 @@ import 'dart:io'; -import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart' - hide Package; +import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart'; import 'package:mason/mason.dart'; -import 'package:package_config/package_config_types.dart'; +import 'package:package_config/package_config.dart' as package_config; import 'package:path/path.dart' as path; import 'package:yaml/yaml.dart'; import 'package:yaml_edit/yaml_edit.dart'; @@ -11,7 +10,7 @@ import 'package:yaml_edit/yaml_edit.dart'; /// https://github.com/dart-lang/pub/issues/4594 VoidCallback disableWorkspaceResolution( HookContext context, { - required PackageConfig packageConfig, + required package_config.PackageConfig packageConfig, required PackageGraph packageGraph, required String projectDirectory, required String workspaceRoot, @@ -74,7 +73,7 @@ VoidCallback overrideResolutionInPubspecOverrides(String projectDirectory) { /// Add overrides for all path dependencies to `pubspec_overrides.yaml` void overridePathDependenciesInPubspecOverrides({ required String projectDirectory, - required PackageConfig packageConfig, + required package_config.PackageConfig packageConfig, required PackageGraph packageGraph, }) { final name = getPackageName(projectDirectory: projectDirectory); @@ -99,7 +98,7 @@ void overridePathDependenciesInPubspecOverrides({ void writePathDependencyOverrides({ required String projectDirectory, - required Iterable pathDependencies, + required Iterable pathDependencies, }) { final pubspecOverridesFile = File( path.join(projectDirectory, 'pubspec_overrides.yaml'), From 75cc01739e2c4a494d334e2880c6834c0bc19453 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 21:03:32 -0500 Subject: [PATCH 09/10] improve naming --- .../lib/src/disable_workspace_resolution.dart | 8 ++--- .../lib/src/package_graph/package_graph.dart | 31 ++++++++++++++++--- .../src/package_graph/package_graph.g.dart | 10 +++--- .../disable_workspace_resolution_test.dart | 2 +- 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart index b2c985fa0..4e3376b60 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/disable_workspace_resolution.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:dart_frog_prod_server_hooks/dart_frog_prod_server_hooks.dart'; import 'package:mason/mason.dart'; -import 'package:package_config/package_config.dart' as package_config; +import 'package:package_config/package_config.dart'; import 'package:path/path.dart' as path; import 'package:yaml/yaml.dart'; import 'package:yaml_edit/yaml_edit.dart'; @@ -10,7 +10,7 @@ import 'package:yaml_edit/yaml_edit.dart'; /// https://github.com/dart-lang/pub/issues/4594 VoidCallback disableWorkspaceResolution( HookContext context, { - required package_config.PackageConfig packageConfig, + required PackageConfig packageConfig, required PackageGraph packageGraph, required String projectDirectory, required String workspaceRoot, @@ -73,7 +73,7 @@ VoidCallback overrideResolutionInPubspecOverrides(String projectDirectory) { /// Add overrides for all path dependencies to `pubspec_overrides.yaml` void overridePathDependenciesInPubspecOverrides({ required String projectDirectory, - required package_config.PackageConfig packageConfig, + required PackageConfig packageConfig, required PackageGraph packageGraph, }) { final name = getPackageName(projectDirectory: projectDirectory); @@ -98,7 +98,7 @@ void overridePathDependenciesInPubspecOverrides({ void writePathDependencyOverrides({ required String projectDirectory, - required Iterable pathDependencies, + required Iterable pathDependencies, }) { final pubspecOverridesFile = File( path.join(projectDirectory, 'pubspec_overrides.yaml'), diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.dart b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.dart index 075fcdaab..137ce85c3 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.dart @@ -6,14 +6,19 @@ import 'package:path/path.dart' as path; part 'package_graph.g.dart'; +/// {@template package_graph} +/// A Dart object containing the deserialized contents of the package_graph.json +/// {@endtemplate} @JsonSerializable() class PackageGraph { + /// {@macro package_graph} const PackageGraph({ required this.roots, required this.packages, required this.configVersion, }); + /// Load a [PackageGraph] from the provided [project] root. factory PackageGraph.load(String project) { final file = File(path.join(project, '.dart_tool', 'package_graph.json')); if (!file.existsSync()) throw Exception('${file.path} not found'); @@ -22,32 +27,48 @@ class PackageGraph { ); } + /// Create a [PackageGraph] from a [Map]. factory PackageGraph.fromJson(Map json) => _$PackageGraphFromJson(json); + /// The root nodes of the package graph. final List roots; - final List packages; + + /// A list of packages for the given package graph. + final List packages; + + /// The config version of the package graph. final int configVersion; } +/// {@template package_graph_package} +/// An individual package in a package graph. +/// {@endtemplate} @JsonSerializable() -class Package { - const Package({ +class PackageGraphPackage { + /// {@macro package_graph_package} + const PackageGraphPackage({ required this.name, required this.version, required this.dependencies, required this.devDependencies, }); - factory Package.fromJson(Map json) => - _$PackageFromJson(json); + /// Create a [PackageGraphPackage] from a [Map]. + factory PackageGraphPackage.fromJson(Map json) => + _$PackageGraphPackageFromJson(json); + /// The name of the package. final String name; + + /// The version of the package. final String version; + /// The list of package names that this package depends on in production. @JsonKey(defaultValue: []) final List dependencies; + /// The list of package names that this package depends on in development. @JsonKey(defaultValue: []) final List devDependencies; } diff --git a/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart index 9996fda6d..1c3f0b3b8 100644 --- a/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart +++ b/bricks/dart_frog_prod_server/hooks/lib/src/package_graph/package_graph.g.dart @@ -19,7 +19,8 @@ PackageGraph _$PackageGraphFromJson(Map json) => packages: $checkedConvert( 'packages', (v) => (v as List) - .map((e) => Package.fromJson(e as Map)) + .map((e) => + PackageGraphPackage.fromJson(e as Map)) .toList()), configVersion: $checkedConvert('configVersion', (v) => (v as num).toInt()), @@ -28,11 +29,12 @@ PackageGraph _$PackageGraphFromJson(Map json) => }, ); -Package _$PackageFromJson(Map json) => $checkedCreate( - 'Package', +PackageGraphPackage _$PackageGraphPackageFromJson(Map json) => + $checkedCreate( + 'PackageGraphPackage', json, ($checkedConvert) { - final val = Package( + final val = PackageGraphPackage( name: $checkedConvert('name', (v) => v as String), version: $checkedConvert('version', (v) => v as String), dependencies: $checkedConvert( diff --git a/bricks/dart_frog_prod_server/hooks/test/src/disable_workspace_resolution_test.dart b/bricks/dart_frog_prod_server/hooks/test/src/disable_workspace_resolution_test.dart index 53c750f75..1877768c1 100644 --- a/bricks/dart_frog_prod_server/hooks/test/src/disable_workspace_resolution_test.dart +++ b/bricks/dart_frog_prod_server/hooks/test/src/disable_workspace_resolution_test.dart @@ -44,7 +44,7 @@ void main() { when(() => packageGraph.roots).thenReturn([packageName]); when(() => packageGraph.packages).thenReturn( [ - const Package( + const PackageGraphPackage( name: packageName, dependencies: [], devDependencies: [], From c37fbd64b741d86871df060880940e3b91eb2b1f Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Tue, 16 Sep 2025 21:04:38 -0500 Subject: [PATCH 10/10] chore: regen bundle --- .../dart_frog_prod_server_bundle.dart | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart index 3cf2cc7e5..1ab1cd11a 100644 --- a/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart +++ b/packages/dart_frog_cli/lib/src/commands/build/templates/dart_frog_prod_server_bundle.dart @@ -31,6 +31,12 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ "Ly8gQGRhcnQ9My42Ci8vIGlnbm9yZV9mb3JfZmlsZTogZGlyZWN0aXZlc19vcmRlcmluZwovLyBidWlsZF9ydW5uZXIgPj0yLjQuMTYKLy8gaWdub3JlX2Zvcl9maWxlOiBub19sZWFkaW5nX3VuZGVyc2NvcmVzX2Zvcl9saWJyYXJ5X3ByZWZpeGVzCmltcG9ydCAncGFja2FnZTpidWlsZF9ydW5uZXIvc3JjL3BhY2thZ2VfZ3JhcGgvYXBwbHlfYnVpbGRlcnMuZGFydCcgYXMgX2kxOwppbXBvcnQgJ3BhY2thZ2U6anNvbl9zZXJpYWxpemFibGUvYnVpbGRlci5kYXJ0JyBhcyBfaTI7CmltcG9ydCAncGFja2FnZTpzb3VyY2VfZ2VuL2J1aWxkZXIuZGFydCcgYXMgX2kzOwppbXBvcnQgJ2RhcnQ6aXNvbGF0ZScgYXMgX2k0OwppbXBvcnQgJ3BhY2thZ2U6YnVpbGRfcnVubmVyL3NyYy9idWlsZF9zY3JpcHRfZ2VuZXJhdGUvYnVpbGRfcHJvY2Vzc19zdGF0ZS5kYXJ0JwogICAgYXMgX2k1OwppbXBvcnQgJ3BhY2thZ2U6YnVpbGRfcnVubmVyL2J1aWxkX3J1bm5lci5kYXJ0JyBhcyBfaTY7CmltcG9ydCAnZGFydDppbycgYXMgX2k3OwoKZmluYWwgX2J1aWxkZXJzID0gPF9pMS5CdWlsZGVyQXBwbGljYXRpb24+WwogIF9pMS5hcHBseSgKICAgIHInanNvbl9zZXJpYWxpemFibGU6anNvbl9zZXJpYWxpemFibGUnLAogICAgW19pMi5qc29uU2VyaWFsaXphYmxlXSwKICAgIF9pMS50b0RlcGVuZGVudHNPZihyJ2pzb25fc2VyaWFsaXphYmxlJyksCiAgICBoaWRlT3V0cHV0OiB0cnVlLAogICAgYXBwbGllc0J1aWxkZXJzOiBjb25zdCBbcidzb3VyY2VfZ2VuOmNvbWJpbmluZ19idWlsZGVyJ10sCiAgKSwKICBfaTEuYXBwbHkoCiAgICByJ3NvdXJjZV9nZW46Y29tYmluaW5nX2J1aWxkZXInLAogICAgW19pMy5jb21iaW5pbmdCdWlsZGVyXSwKICAgIF9pMS50b05vbmVCeURlZmF1bHQoKSwKICAgIGhpZGVPdXRwdXQ6IGZhbHNlLAogICAgYXBwbGllc0J1aWxkZXJzOiBjb25zdCBbcidzb3VyY2VfZ2VuOnBhcnRfY2xlYW51cCddLAogICksCiAgX2kxLmFwcGx5UG9zdFByb2Nlc3MoCiAgICByJ3NvdXJjZV9nZW46cGFydF9jbGVhbnVwJywKICAgIF9pMy5wYXJ0Q2xlYW51cCwKICApLApdOwp2b2lkIG1haW4oCiAgTGlzdDxTdHJpbmc+IGFyZ3MsIFsKICBfaTQuU2VuZFBvcnQ/IHNlbmRQb3J0LApdKSBhc3luYyB7CiAgYXdhaXQgX2k1LmJ1aWxkUHJvY2Vzc1N0YXRlLnJlY2VpdmUoc2VuZFBvcnQpOwogIF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5pc29sYXRlRXhpdENvZGUgPSBhd2FpdCBfaTYucnVuKAogICAgYXJncywKICAgIF9idWlsZGVycywKICApOwogIF9pNy5leGl0Q29kZSA9IF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5pc29sYXRlRXhpdENvZGUhOwogIGF3YWl0IF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5zZW5kKHNlbmRQb3J0KTsKfQo=", "type": "text" }, + { + "path": "build/.dart_tool/build/entrypoint/build.dart", + "data": + "Ly8gQGRhcnQ9My42Ci8vIGlnbm9yZV9mb3JfZmlsZTogZGlyZWN0aXZlc19vcmRlcmluZwovLyBidWlsZF9ydW5uZXIgPj0yLjQuMTYKLy8gaWdub3JlX2Zvcl9maWxlOiBub19sZWFkaW5nX3VuZGVyc2NvcmVzX2Zvcl9saWJyYXJ5X3ByZWZpeGVzCmltcG9ydCAncGFja2FnZTpidWlsZF9ydW5uZXIvc3JjL3BhY2thZ2VfZ3JhcGgvYXBwbHlfYnVpbGRlcnMuZGFydCcgYXMgX2kxOwppbXBvcnQgJ3BhY2thZ2U6anNvbl9zZXJpYWxpemFibGUvYnVpbGRlci5kYXJ0JyBhcyBfaTI7CmltcG9ydCAncGFja2FnZTpzb3VyY2VfZ2VuL2J1aWxkZXIuZGFydCcgYXMgX2kzOwppbXBvcnQgJ2RhcnQ6aXNvbGF0ZScgYXMgX2k0OwppbXBvcnQgJ3BhY2thZ2U6YnVpbGRfcnVubmVyL3NyYy9idWlsZF9zY3JpcHRfZ2VuZXJhdGUvYnVpbGRfcHJvY2Vzc19zdGF0ZS5kYXJ0JwogICAgYXMgX2k1OwppbXBvcnQgJ3BhY2thZ2U6YnVpbGRfcnVubmVyL2J1aWxkX3J1bm5lci5kYXJ0JyBhcyBfaTY7CmltcG9ydCAnZGFydDppbycgYXMgX2k3OwoKZmluYWwgX2J1aWxkZXJzID0gPF9pMS5CdWlsZGVyQXBwbGljYXRpb24+WwogIF9pMS5hcHBseSgKICAgIHInanNvbl9zZXJpYWxpemFibGU6anNvbl9zZXJpYWxpemFibGUnLAogICAgW19pMi5qc29uU2VyaWFsaXphYmxlXSwKICAgIF9pMS50b0RlcGVuZGVudHNPZihyJ2pzb25fc2VyaWFsaXphYmxlJyksCiAgICBoaWRlT3V0cHV0OiB0cnVlLAogICAgYXBwbGllc0J1aWxkZXJzOiBjb25zdCBbcidzb3VyY2VfZ2VuOmNvbWJpbmluZ19idWlsZGVyJ10sCiAgKSwKICBfaTEuYXBwbHkoCiAgICByJ3NvdXJjZV9nZW46Y29tYmluaW5nX2J1aWxkZXInLAogICAgW19pMy5jb21iaW5pbmdCdWlsZGVyXSwKICAgIF9pMS50b05vbmVCeURlZmF1bHQoKSwKICAgIGhpZGVPdXRwdXQ6IGZhbHNlLAogICAgYXBwbGllc0J1aWxkZXJzOiBjb25zdCBbcidzb3VyY2VfZ2VuOnBhcnRfY2xlYW51cCddLAogICksCiAgX2kxLmFwcGx5UG9zdFByb2Nlc3MoCiAgICByJ3NvdXJjZV9nZW46cGFydF9jbGVhbnVwJywKICAgIF9pMy5wYXJ0Q2xlYW51cCwKICApLApdOwp2b2lkIG1haW4oCiAgTGlzdDxTdHJpbmc+IGFyZ3MsIFsKICBfaTQuU2VuZFBvcnQ/IHNlbmRQb3J0LApdKSBhc3luYyB7CiAgYXdhaXQgX2k1LmJ1aWxkUHJvY2Vzc1N0YXRlLnJlY2VpdmUoc2VuZFBvcnQpOwogIF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5pc29sYXRlRXhpdENvZGUgPSBhd2FpdCBfaTYucnVuKAogICAgYXJncywKICAgIF9idWlsZGVycywKICApOwogIF9pNy5leGl0Q29kZSA9IF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5pc29sYXRlRXhpdENvZGUhOwogIGF3YWl0IF9pNS5idWlsZFByb2Nlc3NTdGF0ZS5zZW5kKHNlbmRQb3J0KTsKfQo=", + "type": "text" + }, { "path": "build/lib/dart_frog_prod_server_hooks.dart", "data": @@ -112,7 +118,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "build/lib/src/package_graph/package_graph.g.dart", "data": - "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogaW1wbGljaXRfZHluYW1pY19wYXJhbWV0ZXIKCnBhcnQgb2YgJ3BhY2thZ2VfZ3JhcGguZGFydCc7CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBKc29uU2VyaWFsaXphYmxlR2VuZXJhdG9yCi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpQYWNrYWdlR3JhcGggXyRQYWNrYWdlR3JhcGhGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2VHcmFwaCcsIGpzb24sICgkY2hlY2tlZENvbnZlcnQpIHsKICAgICAgZmluYWwgdmFsID0gUGFja2FnZUdyYXBoKAogICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAncm9vdHMnLAogICAgICAgICAgKHYpID0+ICh2IGFzIExpc3Q8ZHluYW1pYz4pLm1hcCgoZSkgPT4gZSBhcyBTdHJpbmcpLnRvTGlzdCgpLAogICAgICAgICksCiAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdwYWNrYWdlcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikKICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgIC50b0xpc3QoKSwKICAgICAgICApLAogICAgICAgIGNvbmZpZ1ZlcnNpb246ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICdjb25maWdWZXJzaW9uJywKICAgICAgICAgICh2KSA9PiAodiBhcyBudW0pLnRvSW50KCksCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgcmV0dXJuIHZhbDsKICAgIH0pOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgJGNoZWNrZWRDcmVhdGUoJ1BhY2thZ2UnLCBqc29uLCAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2UoCiAgICAgICAgbmFtZTogJGNoZWNrZWRDb252ZXJ0KCduYW1lJywgKHYpID0+IHYgYXMgU3RyaW5nKSwKICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgIGRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICAgIGRldkRlcGVuZGVuY2llczogJGNoZWNrZWRDb252ZXJ0KAogICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PyBbXSwKICAgICAgICApLAogICAgICApOwogICAgICByZXR1cm4gdmFsOwogICAgfSk7Cg==", + "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogdHlwZT1saW50CgpwYXJ0IG9mICdwYWNrYWdlX2dyYXBoLmRhcnQnOwoKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8gSnNvblNlcmlhbGl6YWJsZUdlbmVyYXRvcgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKUGFja2FnZUdyYXBoIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oTWFwPFN0cmluZywgZHluYW1pYz4ganNvbikgPT4KICAgICRjaGVja2VkQ3JlYXRlKAogICAgICAnUGFja2FnZUdyYXBoJywKICAgICAganNvbiwKICAgICAgKCRjaGVja2VkQ29udmVydCkgewogICAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2VHcmFwaCgKICAgICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoJ3Jvb3RzJywKICAgICAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkpLAogICAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICAgICAncGFja2FnZXMnLAogICAgICAgICAgICAgICh2KSA9PiAodiBhcyBMaXN0PGR5bmFtaWM+KQogICAgICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgICAgICAudG9MaXN0KCkpLAogICAgICAgICAgY29uZmlnVmVyc2lvbjoKICAgICAgICAgICAgICAkY2hlY2tlZENvbnZlcnQoJ2NvbmZpZ1ZlcnNpb24nLCAodikgPT4gKHYgYXMgbnVtKS50b0ludCgpKSwKICAgICAgICApOwogICAgICAgIHJldHVybiB2YWw7CiAgICAgIH0sCiAgICApOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PiAkY2hlY2tlZENyZWF0ZSgKICAgICAgJ1BhY2thZ2UnLAogICAgICBqc29uLAogICAgICAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgICAgZmluYWwgdmFsID0gUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICRjaGVja2VkQ29udmVydCgnbmFtZScsICh2KSA9PiB2IGFzIFN0cmluZyksCiAgICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgICAgZGVwZW5kZW5jaWVzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAgICAgKHYpID0+CiAgICAgICAgICAgICAgICAgICh2IGFzIExpc3Q8ZHluYW1pYz4/KT8ubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkgPz8KICAgICAgICAgICAgICAgICAgW10pLAogICAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAgICAgKHYpID0+CiAgICAgICAgICAgICAgICAgICh2IGFzIExpc3Q8ZHluYW1pYz4/KT8ubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkgPz8KICAgICAgICAgICAgICAgICAgW10pLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIHZhbDsKICAgICAgfSwKICAgICk7Cg==", "type": "text" }, { @@ -136,13 +142,13 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "build/pre_gen.dart", "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICRwcm9qZWN0RGlyZWN0b3J5JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHBhY2thZ2VfY29uZmlnLmpzb24gaXMgdXAgdG8gZGF0ZS4KICAgIGF3YWl0IGRhcnRQdWJHZXQoCiAgICAgIGNvbnRleHQsCiAgICAgIG1lc3NhZ2U6ICdHZW5lcmF0aW5nIHBhY2thZ2UgZ3JhcGgnLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIHJ1blByb2Nlc3M6IHJ1blByb2Nlc3MsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwoKICAgIGZpbmFsIHBhY2thZ2VDb25maWcgPSBnZXRQYWNrYWdlQ29uZmlnKHdvcmtzcGFjZVJvb3QucGF0aCk7CiAgICBpZiAocGFja2FnZUNvbmZpZyA9PSBudWxsKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnVW5hYmxlIHRvIGZpbmQgcGFja2FnZV9jb25maWcuanNvbiBmb3IgJHt3b3Jrc3BhY2VSb290LnBhdGh9JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgZmluYWwgcGFja2FnZUdyYXBoID0gZ2V0UGFja2FnZUdyYXBoKHdvcmtzcGFjZVJvb3QucGF0aCk7CiAgICBpZiAocGFja2FnZUdyYXBoID09IG51bGwpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICdVbmFibGUgdG8gZmluZCBwYWNrYWdlX2dyYXBoLmpzb24gZm9yICR7d29ya3NwYWNlUm9vdC5wYXRofScsCiAgICAgICk7CiAgICAgIHJldHVybiBleGl0KDEpOwogICAgfQoKICAgIC8vIERpc2FibGUgd29ya3NwYWNlIHJlc29sdXRpb24gdW50aWwgd2UgY2FuIGdlbmVyYXRlIHBlci1wYWNrYWdlIGxvY2tmaWxlcy4KICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy80NTk0CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICBjb250ZXh0LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICB3b3Jrc3BhY2VSb290OiB3b3Jrc3BhY2VSb290LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogICAgLy8gQ29weSB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IHRvIGVuc3VyZSB0aGUgc2FtZSB2ZXJzaW9ucwogICAgLy8gb2YgZGVwZW5kZW5jaWVzIGFyZSB1c2VkIGluIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLgogICAgcmV2ZXJ0UHVic3BlY0xvY2sgPSBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgd29ya3NwYWNlUm9vdDogd29ya3NwYWNlUm9vdC5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICB9CgogIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHB1YnNwZWMubG9jayBmaWxlIGlzIHVwIHRvIGRhdGUuCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICBtZXNzYWdlOiAnVXBkYXRpbmcgbG9ja2ZpbGUnLAogICAgd29ya2luZ0RpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgYnVpbGREaXJlY3RvcnkgPSBpby5EaXJlY3RvcnkoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSwKICApOwoKICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICBjb250ZXh0OiBjb250ZXh0LAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24/LmNhbGwoKTsKCiAgZmluYWwgUm91dGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CiAgdHJ5IHsKICAgIGNvbmZpZ3VyYXRpb24gPSBidWlsZENvbmZpZ3VyYXRpb24ocHJvamVjdERpcmVjdG9yeSk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgcmV0dXJuIGV4aXQoMSk7CiAgfQoKICByZXBvcnRSb3V0ZUNvbmZsaWN0cygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvdXRlQ29uZmxpY3Q6ICgKICAgICAgb3JpZ2luYWxGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdFbmRwb2ludCwKICAgICkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm91dGUgY29uZmxpY3QgZGV0ZWN0ZWQuICR7bGlnaHRDeWFuLndyYXAob3JpZ2luYWxGaWxlUGF0aCl9IGFuZCAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRmlsZVBhdGgpfSBib3RoIHJlc29sdmUgdG8gJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0VuZHBvaW50KX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIHJlcG9ydFJvZ3VlUm91dGVzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm9ndWVSb3V0ZTogKGZpbGVQYXRoLCBpZGVhbFBhdGgpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKGZpbGVQYXRoKX0gdG8gJHtsaWdodEN5YW4ud3JhcChpZGVhbFBhdGgpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIHJldmVydFB1YnNwZWNMb2NrPy5jYWxsKCk7CgogIGZpbmFsIGN1c3RvbURvY2tlckZpbGUgPSBpby5GaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ0RvY2tlcmZpbGUnKSwKICApOwogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K", + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICk7CiAgICAgIHJldHVybiBleGl0KDEpOwogICAgfQoKICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBwYWNrYWdlX2NvbmZpZy5qc29uIGlzIHVwIHRvIGRhdGUuCiAgICBhd2FpdCBkYXJ0UHViR2V0KAogICAgICBjb250ZXh0LAogICAgICBtZXNzYWdlOiAnR2VuZXJhdGluZyBwYWNrYWdlIGdyYXBoJywKICAgICAgd29ya2luZ0RpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgICBleGl0OiBleGl0LAogICAgKTsKCiAgICBmaW5hbCBwYWNrYWdlQ29uZmlnID0gZ2V0UGFja2FnZUNvbmZpZyh3b3Jrc3BhY2VSb290LnBhdGgpOwogICAgaWYgKHBhY2thZ2VDb25maWcgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBmaW5kIHBhY2thZ2VfY29uZmlnLmpzb24gZm9yICR7d29ya3NwYWNlUm9vdC5wYXRofScsCiAgICAgICk7CiAgICAgIHJldHVybiBleGl0KDEpOwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VHcmFwaCA9IGdldFBhY2thZ2VHcmFwaCh3b3Jrc3BhY2VSb290LnBhdGgpOwogICAgaWYgKHBhY2thZ2VHcmFwaCA9PSBudWxsKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnVW5hYmxlIHRvIGZpbmQgcGFja2FnZV9ncmFwaC5qc29uIGZvciAke3dvcmtzcGFjZVJvb3QucGF0aH0nLAogICAgICApOwogICAgICByZXR1cm4gZXhpdCgxKTsKICAgIH0KCiAgICAvLyBEaXNhYmxlIHdvcmtzcGFjZSByZXNvbHV0aW9uIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXItcGFja2FnZSBsb2NrZmlsZXMuCiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NAogICAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24gPSBkaXNhYmxlV29ya3NwYWNlUmVzb2x1dGlvbigKICAgICAgY29udGV4dCwKICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgcGFja2FnZUdyYXBoOiBwYWNrYWdlR3JhcGgsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgd29ya3NwYWNlUm9vdDogd29ya3NwYWNlUm9vdC5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICAgIC8vIENvcHkgdGhlIHB1YnNwZWMubG9jayBmcm9tIHRoZSB3b3Jrc3BhY2Ugcm9vdCB0byBlbnN1cmUgdGhlIHNhbWUgdmVyc2lvbnMKICAgIC8vIG9mIGRlcGVuZGVuY2llcyBhcmUgdXNlZCBpbiB0aGUgcHJvZHVjdGlvbiBidWlsZC4KICAgIHJldmVydFB1YnNwZWNMb2NrID0gY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICBjb250ZXh0LAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIHdvcmtzcGFjZVJvb3Q6IHdvcmtzcGFjZVJvb3QucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlLgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgbWVzc2FnZTogJ1VwZGF0aW5nIGxvY2tmaWxlJywKICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgIHJ1blByb2Nlc3M6IHJ1blByb2Nlc3MsCiAgICBleGl0OiBleGl0LAogICk7CgogIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0gaW8uRGlyZWN0b3J5KAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyksCiAgKTsKCiAgYXdhaXQgY3JlYXRlQnVuZGxlKAogICAgY29udGV4dDogY29udGV4dCwKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBidWlsZERpcmVjdG9yeTogYnVpbGREaXJlY3RvcnksCiAgICBleGl0OiBleGl0LAogICk7CgogIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uPy5jYWxsKCk7CgogIGZpbmFsIFJvdXRlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uOwogIHRyeSB7CiAgICBjb25maWd1cmF0aW9uID0gYnVpbGRDb25maWd1cmF0aW9uKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgcmVwb3J0Um91dGVDb25mbGljdHMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb3V0ZUNvbmZsaWN0OiAoCiAgICAgIG9yaWdpbmFsRmlsZVBhdGgsCiAgICAgIGNvbmZsaWN0aW5nRmlsZVBhdGgsCiAgICAgIGNvbmZsaWN0aW5nRW5kcG9pbnQsCiAgICApIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKG9yaWdpbmFsRmlsZVBhdGgpfSBhbmQgJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0ZpbGVQYXRoKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdFbmRwb2ludCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICByZXBvcnRSb2d1ZVJvdXRlcygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvZ3VlUm91dGU6IChmaWxlUGF0aCwgaWRlYWxQYXRoKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb2d1ZSByb3V0ZSBkZXRlY3RlZC4ke2RlZmF1bHRGb3JlZ3JvdW5kLndyYXAoJyAnKX1SZW5hbWUgJHtsaWdodEN5YW4ud3JhcChmaWxlUGF0aCl9IHRvICR7bGlnaHRDeWFuLndyYXAoaWRlYWxQYXRoKX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIGZpbmFsIGludGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IGdldEludGVybmFsUGF0aERlcGVuZGVuY2llcygKICAgIHByb2plY3REaXJlY3RvcnksCiAgKTsKCiAgZmluYWwgZXh0ZXJuYWxEZXBlbmRlbmNpZXMgPSBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGNvcHlQYXRoOiBjb3B5UGF0aCwKICApOwoKICByZXZlcnRQdWJzcGVjTG9jaz8uY2FsbCgpOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKICBmaW5hbCBhZGREb2NrZXJmaWxlID0gIWN1c3RvbURvY2tlckZpbGUuZXhpc3RzU3luYygpOwoKICBjb250ZXh0LnZhcnMgPSB7CiAgICAnZGlyZWN0b3JpZXMnOiBjb25maWd1cmF0aW9uLmRpcmVjdG9yaWVzCiAgICAgICAgLm1hcCgoYykgPT4gYy50b0pzb24oKSkKICAgICAgICAudG9MaXN0KCkKICAgICAgICAucmV2ZXJzZWQKICAgICAgICAudG9MaXN0KCksCiAgICAncm91dGVzJzogY29uZmlndXJhdGlvbi5yb3V0ZXMubWFwKChyKSA9PiByLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdtaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5taWRkbGV3YXJlLm1hcCgobSkgPT4gbS50b0pzb24oKSkudG9MaXN0KCksCiAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSAhPSBudWxsCiAgICAgICAgPyBjb25maWd1cmF0aW9uLmdsb2JhbE1pZGRsZXdhcmUhLnRvSnNvbigpCiAgICAgICAgOiBmYWxzZSwKICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogY29uZmlndXJhdGlvbi5zZXJ2ZVN0YXRpY0ZpbGVzLAogICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBjb25maWd1cmF0aW9uLmludm9rZUN1c3RvbUVudHJ5cG9pbnQsCiAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tSW5pdCwKICAgICdwYXRoRGVwZW5kZW5jaWVzJzogaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLAogICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZXh0ZXJuYWxEZXBlbmRlbmNpZXMuaXNOb3RFbXB0eSwKICAgICdkYXJ0VmVyc2lvbic6IGNvbnRleHQudmFyc1snZGFydFZlcnNpb24nXSwKICAgICdhZGREb2NrZXJmaWxlJzogYWRkRG9ja2VyZmlsZSwKICB9Owp9Cg==", "type": "text" }, { "path": "build/pubspec.yaml", "data": - "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIGpzb25fYW5ub3RhdGlvbjogXjQuOS4wCiAgbWFzb246IF4wLjEuMAogIHBhY2thZ2VfY29uZmlnOiBeMi4yLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBidWlsZF9ydW5uZXI6IF4yLjguMAogIGpzb25fc2VyaWFsaXphYmxlOiBeNi4xMS4xCiAgbW9ja3RhaWw6IF4xLjAuMAogIHRlc3Q6IF4xLjI1LjAK", + "bmFtZTogZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogIj49My4wLjAgPDQuMC4wIgoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZ19nZW46IF4yLjAuMAogIGVxdWF0YWJsZTogXjIuMC41CiAgaW86IF4xLjAuMwogIGpzb25fYW5ub3RhdGlvbjogXjQuOS4wCiAgbWFzb246IF4wLjEuMAogIHBhY2thZ2VfY29uZmlnOiBeMi4yLjAKICBwYXRoOiBeMS44LjEKICB5YW1sOiBeMy4xLjIKICB5YW1sX2VkaXQ6IF4yLjIuMgoKZGV2X2RlcGVuZGVuY2llczoKICBidWlsZF9ydW5uZXI6IF4yLjAuMAogIGpzb25fc2VyaWFsaXphYmxlOiBeNi43LjAKICBtb2NrdGFpbDogXjEuMC4wCiAgdGVzdDogXjEuMjUuMAo=", "type": "text" }, { @@ -166,7 +172,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "build/test/pre_gen_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAnZml4dHVyZXMvcGFja2FnZV9jb25maWdzLmRhcnQnOwppbXBvcnQgJ2ZpeHR1cmVzL3BhY2thZ2VfZ3JhcGhzLmRhcnQnOwppbXBvcnQgJ3B1YnNwZWNfbG9ja3MuZGFydCc7CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9CgpjbGFzcyBfTW9ja0xvZ2dlciBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBMb2dnZXIge30KCmNsYXNzIF9Nb2NrUHJvZ3Jlc3MgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUHJvZ3Jlc3Mge30KCnZvaWQgbWFpbigpIHsKICBncm91cCgncHJlR2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIEZ1dHVyZTxQcm9jZXNzUmVzdWx0PiBzdWNjZXNzUnVuUHJvY2VzcygKICAgICAgZXhlY3V0YWJsZSwKICAgICAgYXJncywgewogICAgICBTdHJpbmc/IHdvcmtpbmdEaXJlY3RvcnksCiAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICB9KSA9PgogICAgICAgIEZ1dHVyZS52YWx1ZShQcm9jZXNzUmVzdWx0KDAsIDAsICcnLCAnJykpOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBMb2dnZXIoKSkKICAgICAgICAuLnZhcnNbJ2RhcnRWZXJzaW9uJ10gPSAnc3RhYmxlJzsKCiAgICAgIHdoZW4oKCkgPT4gbG9nZ2VyLnByb2dyZXNzKGFueSgpKSkudGhlblJldHVybihfTW9ja1Byb2dyZXNzKCkpOwogICAgfSk7CgogICAgdGVzdCgncnVuIGNvbXBsZXRlcycsICgpIHsKICAgICAgZXhwZWN0KAogICAgICAgIEV4aXRPdmVycmlkZXMucnVuWm9uZWQoCiAgICAgICAgICAoKSA9PiBwcmVfZ2VuLnJ1bihfRmFrZUhvb2tDb250ZXh0KGxvZ2dlcjogbG9nZ2VyKSksCiAgICAgICAgICBleGl0OiAoXykge30sCiAgICAgICAgKSwKICAgICAgICBjb21wbGV0ZXMsCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGlmIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHRocm93cycsICgpIGFzeW5jIHsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgZmluYWwgZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdvb3BzJyk7CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gdGhyb3cgZXhjZXB0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KCgpID0+IGxvZ2dlci5lcnIoZXhjZXB0aW9uLnRvU3RyaW5nKCkpKS5jYWxsZWQoMSk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0KDEpIGZvciByb3V0ZSBjb25mbGljdHMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgJy8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgICcvaGVsbG8nOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9faW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby9pbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICB9LAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSBhbmQgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoJy9oZWxsbycpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm9ndWUgcm91dGVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbCiAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICApLAogICAgICAgIF0sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21FbnRyeXBvaW50OiB0cnVlLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICB2ZXJpZnkoCiAgICAgICAgKCkgPT4gbG9nZ2VyLmVycigKICAgICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8uZGFydCcpfSB0byAke2xpZ2h0Q3lhbi53cmFwKCdyb3V0ZXMvaGVsbG8vaW5kZXguZGFydCcpfS4nJycsCiAgICAgICAgKSwKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCB3b3Jrc3BhY2VzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICcuZGFydF90b29sJywgJ3BhY2thZ2VfY29uZmlnLmpzb24nKSwKICAgICAgKQogICAgICAgIC4uY3JlYXRlU3luYyhyZWN1cnNpdmU6IHRydWUpCiAgICAgICAgLi53cml0ZUFzU3RyaW5nU3luYyhwYWNrYWdlQ29uZmlnV2l0aERpcmVjdEFuZFRyYW5zaXRpdmVEZXBlbmRlbmNpZXMpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJy5kYXJ0X3Rvb2wnLCAncGFja2FnZV9ncmFwaC5qc29uJyksCiAgICAgICkKICAgICAgICAuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKQogICAgICAgIC4ud3JpdGVBc1N0cmluZ1N5bmMocGFja2FnZUdyYXBoV2l0aERpcmVjdEFuZFRyYW5zaXRpdmVEZXBzKTsKICAgICAgZmluYWwgc2VydmVyID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3NlcnZlcicpLAogICAgICApLi5jcmVhdGVTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKHNlcnZlci5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IHNlcnZlcgpkZXNjcmlwdGlvbjogQSBuZXcgRGFydCBGcm9nIGFwcGxpY2F0aW9uCnZlcnNpb246IDEuMC4wKzEKcHVibGlzaF90bzogbm9uZQpyZXNvbHV0aW9uOiB3b3Jrc3BhY2UKCmVudmlyb25tZW50OgogIHNkazogXjMuNi4wCgpkZXBlbmRlbmNpZXM6CiAgZGFydF9mcm9nOiBeMS4xLjAKICBwcm90b2NvbDogXjEuMC4wCicnJyk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIGRpcmVjdG9yeTogc2VydmVyLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICAgIGNvcHlQYXRoOiAoXywgX18pIGFzeW5jIHt9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3dvcmtzIHdpdGggZXh0ZXJuYWwgZGVwZW5kZW5jaWVzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLmxvY2snKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhmb29QYXRoKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChmcm9tLCB0bykgYXN5bmMgewogICAgICAgICAgRmlsZSgKICAgICAgICAgICAgcGF0aC5qb2luKHRvLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICAgKS5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSk7CiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUVudHJ5cG9pbnQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUVudHJ5cG9pbnQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IHRydWUsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoImRvbid0IGNyZWF0ZSB0aGUgZG9ja2VyZmlsZSBpZiBvbmUgYWxyZWFkeSBleGlzdHMgb24gdGhlIGZvbGRlci4iLAogICAgICAgICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnJwpuYW1lOiBleGFtcGxlCnZlcnNpb246IDAuMS4wCmVudmlyb25tZW50OgogIHNkazogXjIuMTcuMApkZXBlbmRlbmNpZXM6CiAgbWFzb246IGFueQogIHRlc3Q6IGFueQonJycsCiAgICAgICk7CgogICAgICBGaWxlKHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpKS53cml0ZUFzU3RyaW5nU3luYygKICAgICAgICBub1BhdGhEZXBlbmRlbmNpZXMsCiAgICAgICk7CiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAnRG9ja2VyZmlsZScpKS53cml0ZUFzU3RyaW5nU3luYygKICAgICAgICAnJywKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIGRpcmVjdG9yeTogZGlyZWN0b3J5LAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgZXhwZWN0KAogICAgICAgIGNvbnRleHQudmFycywKICAgICAgICBlcXVhbHMoewogICAgICAgICAgJ2RpcmVjdG9yaWVzJzogPFJvdXRlRGlyZWN0b3J5PltdLAogICAgICAgICAgJ3JvdXRlcyc6IDxSb3V0ZUZpbGU+W10sCiAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNaWRkbGV3YXJlRmlsZT5bXSwKICAgICAgICAgICdnbG9iYWxNaWRkbGV3YXJlJzogZmFsc2UsCiAgICAgICAgICAnc2VydmVTdGF0aWNGaWxlcyc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdwYXRoRGVwZW5kZW5jaWVzJzogPFN0cmluZz5bXSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiBmYWxzZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgncmV0YWlucyBpbnZva2VDdXN0b21Jbml0ICh0cnVlKScsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgICBpbnZva2VDdXN0b21Jbml0OiB0cnVlLAogICAgICApOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgKTsKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgZXhwZWN0KAogICAgICAgIGNvbnRleHQudmFycywKICAgICAgICBlcXVhbHMoewogICAgICAgICAgJ2RpcmVjdG9yaWVzJzogPFJvdXRlRGlyZWN0b3J5PltdLAogICAgICAgICAgJ3JvdXRlcyc6IDxSb3V0ZUZpbGU+W10sCiAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNaWRkbGV3YXJlRmlsZT5bXSwKICAgICAgICAgICdnbG9iYWxNaWRkbGV3YXJlJzogZmFsc2UsCiAgICAgICAgICAnc2VydmVTdGF0aWNGaWxlcyc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogdHJ1ZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IHRydWUsCiAgICAgICAgfSksCiAgICAgICk7CiAgICB9KTsKCiAgICB0ZXN0KAogICAgICAndXBkYXRlcyBjb250ZXh0LnZhcnMgd2hlbiBidWlsZFJvdXRlQ29uZmlndXJhdGlvbiBzdWNjZWVkcycsCiAgICAgICgpIGFzeW5jIHsKICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgICAgZ2xvYmFsTWlkZGxld2FyZTogTWlkZGxld2FyZUZpbGUoCiAgICAgICAgICAgIG5hbWU6ICdtaWRkbGV3YXJlJywKICAgICAgICAgICAgcGF0aDogJ21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICApLAogICAgICAgICAgbWlkZGxld2FyZTogWwogICAgICAgICAgICBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG9fbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgcGF0aDogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgZGlyZWN0b3JpZXM6IFsKICAgICAgICAgICAgUm91dGVEaXJlY3RvcnkoCiAgICAgICAgICAgICAgbmFtZTogJ18nLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgICAgICAgZmlsZXM6IFsKICAgICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgICAgbmFtZTogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm91dGVzOiBbCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgIHBhdGg6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgXSwKICAgICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICAgIGVuZHBvaW50czogewogICAgICAgICAgICAnLyc6IFsKICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJy9oZWxsbyc6IFsKICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgICAgcGF0aDogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgfSwKICAgICAgICAgIHNlcnZlU3RhdGljRmlsZXM6IHRydWUsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgKTsKICAgICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgICAgZXhwZWN0KAogICAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICAgJ2RpcmVjdG9yaWVzJzogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ18nLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy8nLAogICAgICAgICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWFwPFN0cmluZywgZHluYW1pYz4+W10sCiAgICAgICAgICAgICAgICAnZmlsZXMnOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAgICAgJ3BhdGgnOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgICAgJ3JvdXRlJzogJy8nLAogICAgICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgICAgJ3BhdGgnOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICdkaXJlY3RvcnlfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICdyb3V0ZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgJ3BhdGgnOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ21pZGRsZXdhcmUnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnaGVsbG9fbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby9taWRkbGV3YXJlLmRhcnQnLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICdnbG9iYWxNaWRkbGV3YXJlJzogewogICAgICAgICAgICAgICduYW1lJzogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICAgICdwYXRoJzogJ21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogdHJ1ZSwKICAgICAgICAgICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBmYWxzZSwKICAgICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAgICdwYXRoRGVwZW5kZW5jaWVzJzogPFN0cmluZz5bXSwKICAgICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICAgIH0pLAogICAgICAgICk7CiAgICAgIH0sCiAgICApOwogIH0pOwp9Cg==", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAnZml4dHVyZXMvcGFja2FnZV9jb25maWdzLmRhcnQnOwppbXBvcnQgJ2ZpeHR1cmVzL3BhY2thZ2VfZ3JhcGhzLmRhcnQnOwppbXBvcnQgJ3B1YnNwZWNfbG9ja3MuZGFydCc7CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9CgpjbGFzcyBfTW9ja0xvZ2dlciBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBMb2dnZXIge30KCmNsYXNzIF9Nb2NrUHJvZ3Jlc3MgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUHJvZ3Jlc3Mge30KCnZvaWQgbWFpbigpIHsKICBncm91cCgncHJlR2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIEZ1dHVyZTxQcm9jZXNzUmVzdWx0PiBzdWNjZXNzUnVuUHJvY2VzcygKICAgICAgZXhlY3V0YWJsZSwKICAgICAgYXJncywgewogICAgICBTdHJpbmc/IHdvcmtpbmdEaXJlY3RvcnksCiAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICB9KSA9PgogICAgICAgIEZ1dHVyZS52YWx1ZShQcm9jZXNzUmVzdWx0KDAsIDAsICcnLCAnJykpOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpCiAgICAgICAgLi52YXJzWydkYXJ0VmVyc2lvbiddID0gJ3N0YWJsZSc7CgogICAgICB3aGVuKCgpID0+IGxvZ2dlci5wcm9ncmVzcyhhbnkoKSkpLnRoZW5SZXR1cm4oX01vY2tQcm9ncmVzcygpKTsKICAgIH0pOwoKICAgIHRlc3QoJ3J1biBjb21wbGV0ZXMnLCAoKSB7CiAgICAgIGV4cGVjdCgKICAgICAgICBFeGl0T3ZlcnJpZGVzLnJ1blpvbmVkKAogICAgICAgICAgKCkgPT4gcHJlX2dlbi5ydW4oX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikpLAogICAgICAgICAgZXhpdDogKF8pIHt9LAogICAgICAgICksCiAgICAgICAgY29tcGxldGVzLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidWlsZFJvdXRlQ29uZmlndXJhdGlvbiB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbignb29wcycpOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IHRocm93IGV4Y2VwdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGV4Y2VwdGlvbi50b1N0cmluZygpKSkuY2FsbGVkKDEpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm91dGUgY29uZmxpY3RzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHsKICAgICAgICAgICcvJzogWwogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2luZGV4JywKICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvX2luZGV4JywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvLmRhcnQnKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoJ3JvdXRlcy9oZWxsby9pbmRleC5kYXJ0Jyl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKCcvaGVsbG8nKX0uJycnLAogICAgICAgICksCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXQoMSkgZm9yIHJvZ3VlIHJvdXRlcycsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogWwogICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgIHJvdXRlOiAnL2hlbGxvJywKICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnJydSb2d1ZSByb3V0ZSBkZXRlY3RlZC4ke2RlZmF1bHRGb3JlZ3JvdW5kLndyYXAoJyAnKX1SZW5hbWUgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvLmRhcnQnKX0gdG8gJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0uJycnLAogICAgICAgICksCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzKDEpIHdoZW4gdW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCcsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIGZpbmFsIHNlcnZlciA9IERpcmVjdG9yeSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdzZXJ2ZXInKSwKICAgICAgKS4uY3JlYXRlU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBzZXJ2ZXIKZGVzY3JpcHRpb246IEEgbmV3IERhcnQgRnJvZyBhcHBsaWNhdGlvbgp2ZXJzaW9uOiAxLjAuMCsxCnB1Ymxpc2hfdG86IG5vbmUKcmVzb2x1dGlvbjogd29ya3NwYWNlCgplbnZpcm9ubWVudDoKICBzZGs6IF4zLjYuMAoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZzogXjEuMS4wCiAgcHJvdG9jb2w6IF4xLjAuMAonJycpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IHNlcnZlciwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKF8sIF9fKSBhc3luYyB7fSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHtzZXJ2ZXIucGF0aH0nLAogICAgICAgICksCiAgICAgICkuY2FsbGVkKDEpOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cygxKSB3aGVuIHVuYWJsZSB0byBmaW5kIHBhY2thZ2VfY29uZmlnLmpzb24nLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogXjMuNi4wCgp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9jbGllbnQKICAtIHBhY2thZ2VzL3Byb3RvY29sCiAgLSBwYWNrYWdlcy9tb2RlbHMKICAtIHBhY2thZ2VzL3NlcnZlcgonJycpOwogICAgICBmaW5hbCBzZXJ2ZXIgPSBEaXJlY3RvcnkoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAnc2VydmVyJyksCiAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oc2VydmVyLnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogc2VydmVyCmRlc2NyaXB0aW9uOiBBIG5ldyBEYXJ0IEZyb2cgYXBwbGljYXRpb24KdmVyc2lvbjogMS4wLjArMQpwdWJsaXNoX3RvOiBub25lCnJlc29sdXRpb246IHdvcmtzcGFjZQoKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy42LjAKCmRlcGVuZGVuY2llczoKICBkYXJ0X2Zyb2c6IF4xLjEuMAogIHByb3RvY29sOiBeMS4wLjAKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBmaW5kIHBhY2thZ2VfY29uZmlnLmpzb24gZm9yICR7ZGlyZWN0b3J5LnBhdGh9JywKICAgICAgICApLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMoMSkgd2hlbiB1bmFibGUgdG8gZmluZCBwYWNrYWdlX2dyYXBoLmpzb24nLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJy5kYXJ0X3Rvb2wnLCAncGFja2FnZV9jb25maWcuanNvbicpLAogICAgICApCiAgICAgICAgLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHBhY2thZ2VDb25maWdXaXRoRGlyZWN0QW5kVHJhbnNpdGl2ZURlcGVuZGVuY2llcyk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KcHVibGlzaF90bzogbm9uZQoKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy42LjAKCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2NsaWVudAogIC0gcGFja2FnZXMvcHJvdG9jb2wKICAtIHBhY2thZ2VzL21vZGVscwogIC0gcGFja2FnZXMvc2VydmVyCicnJyk7CiAgICAgIGZpbmFsIHNlcnZlciA9IERpcmVjdG9yeSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdzZXJ2ZXInKSwKICAgICAgKS4uY3JlYXRlU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBzZXJ2ZXIKZGVzY3JpcHRpb246IEEgbmV3IERhcnQgRnJvZyBhcHBsaWNhdGlvbgp2ZXJzaW9uOiAxLjAuMCsxCnB1Ymxpc2hfdG86IG5vbmUKcmVzb2x1dGlvbjogd29ya3NwYWNlCgplbnZpcm9ubWVudDoKICBzZGs6IF4zLjYuMAoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZzogXjEuMS4wCiAgcHJvdG9jb2w6IF4xLjAuMAonJycpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IHNlcnZlciwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKF8sIF9fKSBhc3luYyB7fSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnVW5hYmxlIHRvIGZpbmQgcGFja2FnZV9ncmFwaC5qc29uIGZvciAke2RpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3dvcmtzIHdpdGggd29ya3NwYWNlcycsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2NvbmZpZy5qc29uJyksCiAgICAgICkKICAgICAgICAuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKQogICAgICAgIC4ud3JpdGVBc1N0cmluZ1N5bmMocGFja2FnZUNvbmZpZ1dpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwZW5kZW5jaWVzKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICcuZGFydF90b29sJywgJ3BhY2thZ2VfZ3JhcGguanNvbicpLAogICAgICApCiAgICAgICAgLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHBhY2thZ2VHcmFwaFdpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwcyk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KcHVibGlzaF90bzogbm9uZQoKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy42LjAKCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2NsaWVudAogIC0gcGFja2FnZXMvcHJvdG9jb2wKICAtIHBhY2thZ2VzL21vZGVscwogIC0gcGFja2FnZXMvc2VydmVyCicnJyk7CiAgICAgIGZpbmFsIHNlcnZlciA9IERpcmVjdG9yeSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdzZXJ2ZXInKSwKICAgICAgKS4uY3JlYXRlU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBzZXJ2ZXIKZGVzY3JpcHRpb246IEEgbmV3IERhcnQgRnJvZyBhcHBsaWNhdGlvbgp2ZXJzaW9uOiAxLjAuMCsxCnB1Ymxpc2hfdG86IG5vbmUKcmVzb2x1dGlvbjogd29ya3NwYWNlCgplbnZpcm9ubWVudDoKICBzZGs6IF4zLjYuMAoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZzogXjEuMS4wCiAgcHJvdG9jb2w6IF4xLjAuMAonJycpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", "type": "text" }, { @@ -262,7 +268,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "lib/src/disable_workspace_resolution.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCcKICAgIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOm1hc29uL21hc29uLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGFja2FnZV9jb25maWcvcGFja2FnZV9jb25maWdfdHlwZXMuZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKaW1wb3J0ICdwYWNrYWdlOnlhbWwveWFtbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnlhbWxfZWRpdC95YW1sX2VkaXQuZGFydCc7CgovLy8gT3B0cyBvdXQgb2YgZGFydCB3b3Jrc3BhY2VzIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXIgcGFja2FnZSBsb2NrZmlsZXMuCi8vLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NApWb2lkQ2FsbGJhY2sgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIHJlcXVpcmVkIFBhY2thZ2VDb25maWcgcGFja2FnZUNvbmZpZywKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAogIHJlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIFN0cmluZyB3b3Jrc3BhY2VSb290LAogIHJlcXVpcmVkIHZvaWQgRnVuY3Rpb24oaW50IGV4aXRDb2RlKSBleGl0LAp9KSB7CiAgZmluYWwgVm9pZENhbGxiYWNrIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwogIHRyeSB7CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcygKICAgICAgcHJvamVjdERpcmVjdG9yeSwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIGNvbnRleHQubG9nZ2VyLmVycignJGUnKTsKICAgIGV4aXQoMSk7CiAgICByZXR1cm4gKCkge307IC8vIG5vLW9wCiAgfQoKICB0cnkgewogICAgb3ZlcnJpZGVQYXRoRGVwZW5kZW5jaWVzSW5QdWJzcGVjT3ZlcnJpZGVzKAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGUpIHsKICAgIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uKCk7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KCiAgcmV0dXJuIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uOwp9CgovLy8gQWRkIHJlc29sdXRpb246bnVsbCB0byBwdWJzcGVjX292ZXJyaWRlcy55YW1sLgpWb2lkQ2FsbGJhY2sgb3ZlcnJpZGVSZXNvbHV0aW9uSW5QdWJzcGVjT3ZlcnJpZGVzKFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5KSB7CiAgZmluYWwgcHVic3BlY092ZXJyaWRlc0ZpbGUgPSBGaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgKTsKCiAgaWYgKCFwdWJzcGVjT3ZlcnJpZGVzRmlsZS5leGlzdHNTeW5jKCkpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gcHVic3BlY092ZXJyaWRlc0ZpbGUuZGVsZXRlU3luYzsKICB9CgogIGZpbmFsIGNvbnRlbnRzID0gcHVic3BlY092ZXJyaWRlc0ZpbGUucmVhZEFzU3RyaW5nU3luYygpOwogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXMgPSBsb2FkWWFtbChjb250ZW50cykgYXMgWWFtbE1hcD87CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzID09IG51bGwpIHsKICAgIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKCdyZXNvbHV0aW9uOiBudWxsJyk7CiAgICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwogIH0KCiAgaWYgKHB1YnNwZWNPdmVycmlkZXNbJ3Jlc29sdXRpb24nXSA9PSAnbnVsbCcpIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKCiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cykuLnVwZGF0ZShbJ3Jlc29sdXRpb24nXSwgbnVsbCk7CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwoKICByZXR1cm4gKCkgPT4gcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoY29udGVudHMpOwp9CgovLy8gQWRkIG92ZXJyaWRlcyBmb3IgYWxsIHBhdGggZGVwZW5kZW5jaWVzIHRvIGBwdWJzcGVjX292ZXJyaWRlcy55YW1sYAp2b2lkIG92ZXJyaWRlUGF0aERlcGVuZGVuY2llc0luUHVic3BlY092ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnLAogIHJlcXVpcmVkIFBhY2thZ2VHcmFwaCBwYWNrYWdlR3JhcGgsCn0pIHsKICBmaW5hbCBuYW1lID0gZ2V0UGFja2FnZU5hbWUocHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSk7CiAgaWYgKG5hbWUgPT0gbnVsbCkgewogICAgdGhyb3cgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcGFyc2UgIm5hbWUiIGZyb20gcHVic3BlYy55YW1sJyk7CiAgfQoKICBmaW5hbCBwcm9kdWN0aW9uRGVwcyA9IGdldFByb2R1Y3Rpb25EZXBlbmRlbmNpZXMoCiAgICBwYWNrYWdlTmFtZTogbmFtZSwKICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICk7CgogIGZpbmFsIHBhdGhEZXBlbmRlbmNpZXMgPSBwYWNrYWdlQ29uZmlnLnBhY2thZ2VzLndoZXJlKAogICAgKHBhY2thZ2UpID0+IHBhY2thZ2UucmVsYXRpdmVSb290ICYmIHByb2R1Y3Rpb25EZXBzLmNvbnRhaW5zKHBhY2thZ2UubmFtZSksCiAgKTsKCiAgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcygKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBwYXRoRGVwZW5kZW5jaWVzOiBwYXRoRGVwZW5kZW5jaWVzLAogICk7Cn0KCnZvaWQgd3JpdGVQYXRoRGVwZW5kZW5jeU92ZXJyaWRlcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHByb2plY3REaXJlY3RvcnksCiAgcmVxdWlyZWQgSXRlcmFibGU8UGFja2FnZT4gcGF0aERlcGVuZGVuY2llcywKfSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CiAgZmluYWwgY29udGVudHMgPSBwdWJzcGVjT3ZlcnJpZGVzRmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7CiAgZmluYWwgb3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA7CiAgZmluYWwgZWRpdG9yID0gWWFtbEVkaXRvcihjb250ZW50cyk7CiAgaWYgKCFvdmVycmlkZXMuY29udGFpbnNLZXkoJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJykpIHsKICAgIGVkaXRvci51cGRhdGUoWydkZXBlbmRlbmN5X292ZXJyaWRlcyddLCB7fSk7CiAgfQogIGZvciAoZmluYWwgcGFja2FnZSBpbiBwYXRoRGVwZW5kZW5jaWVzKSB7CiAgICBlZGl0b3IudXBkYXRlKAogICAgICBbJ2RlcGVuZGVuY3lfb3ZlcnJpZGVzJywgcGFja2FnZS5uYW1lXSwKICAgICAgeydwYXRoJzogcGF0aC5yZWxhdGl2ZShwYWNrYWdlLnJvb3QucGF0aCwgZnJvbTogcHJvamVjdERpcmVjdG9yeSl9LAogICAgKTsKICB9CiAgcHVic3BlY092ZXJyaWRlc0ZpbGUud3JpdGVBc1N0cmluZ1N5bmMoZWRpdG9yLnRvU3RyaW5nKCkpOwp9CgovLy8gRXh0cmFjdCB0aGUgcGFja2FnZSBuYW1lIGZyb20gdGhlIHB1YnNwZWMueWFtbCBpbiBbcHJvamVjdERpcmVjdG9yeV0uClN0cmluZz8gZ2V0UGFja2FnZU5hbWUoe3JlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5fSkgewogIGZpbmFsIHB1YnNwZWNGaWxlID0gRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWMueWFtbCcpKTsKICBmaW5hbCBwdWJzcGVjID0gbG9hZFlhbWwocHVic3BlY0ZpbGUucmVhZEFzU3RyaW5nU3luYygpKTsKICBpZiAocHVic3BlYyBpcyEgWWFtbE1hcCkgcmV0dXJuIG51bGw7CgogIGZpbmFsIG5hbWUgPSBwdWJzcGVjWyduYW1lJ107CiAgaWYgKG5hbWUgaXMhIFN0cmluZykgcmV0dXJuIG51bGw7CgogIHJldHVybiBuYW1lOwp9CgovLy8gQnVpbGQgYSBjb21wbGV0ZSBsaXN0IG9mIGRlcGVuZGVuY2llcyAoZGlyZWN0IGFuZCB0cmFuc2l0aXZlKS4KU2V0PFN0cmluZz4gZ2V0UHJvZHVjdGlvbkRlcGVuZGVuY2llcyh7CiAgcmVxdWlyZWQgU3RyaW5nIHBhY2thZ2VOYW1lLAogIHJlcXVpcmVkIFBhY2thZ2VHcmFwaCBwYWNrYWdlR3JhcGgsCn0pIHsKICBmaW5hbCBkZXBlbmRlbmNpZXMgPSA8U3RyaW5nPnt9OwogIGZpbmFsIHJvb3QgPSBwYWNrYWdlR3JhcGgucm9vdHMuZmlyc3RXaGVyZSgocm9vdCkgPT4gcm9vdCA9PSBwYWNrYWdlTmFtZSk7CiAgZmluYWwgcm9vdFBhY2thZ2UgPSBwYWNrYWdlR3JhcGgucGFja2FnZXMuZmlyc3RXaGVyZSgocCkgPT4gcC5uYW1lID09IHJvb3QpOwogIGZpbmFsIGRlcGVuZGVuY2llc1RvVmlzaXQgPSA8U3RyaW5nPlsuLi5yb290UGFja2FnZS5kZXBlbmRlbmNpZXNdOwoKICBkbyB7CiAgICBmaW5hbCBkaXNjb3ZlcmVkRGVwZW5kZW5jaWVzID0gPFN0cmluZz5bXTsKICAgIGZvciAoZmluYWwgZGVwZW5kZW5jeVRvVmlzaXQgaW4gZGVwZW5kZW5jaWVzVG9WaXNpdCkgewogICAgICBmaW5hbCBwYWNrYWdlID0gcGFja2FnZUdyYXBoLnBhY2thZ2VzLmZpcnN0V2hlcmUoCiAgICAgICAgKHApID0+IHAubmFtZSA9PSBkZXBlbmRlbmN5VG9WaXNpdCwKICAgICAgKTsKICAgICAgZGVwZW5kZW5jaWVzLmFkZChwYWNrYWdlLm5hbWUpOwogICAgICBmb3IgKGZpbmFsIHBhY2thZ2VEZXBlbmRlbmN5IGluIHBhY2thZ2UuZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgLy8gQXZvaWQgaW5maW5pdGUgbG9vcHMgZnJvbSBkZXBlbmRlbmN5IGN5Y2xlcyAoY2lyY3VsYXIgZGVwZW5kZW5jaWVzKS4KICAgICAgICBpZiAoZGVwZW5kZW5jaWVzLmNvbnRhaW5zKHBhY2thZ2VEZXBlbmRlbmN5KSkgY29udGludWU7CiAgICAgICAgZGlzY292ZXJlZERlcGVuZGVuY2llcy5hZGQocGFja2FnZURlcGVuZGVuY3kpOwogICAgICB9CiAgICB9CiAgICBkZXBlbmRlbmNpZXNUb1Zpc2l0CiAgICAgIC4uY2xlYXIoKQogICAgICAuLmFkZEFsbChkaXNjb3ZlcmVkRGVwZW5kZW5jaWVzKTsKICB9IHdoaWxlIChkZXBlbmRlbmNpZXNUb1Zpc2l0LmlzTm90RW1wdHkpOwogIHJldHVybiBkZXBlbmRlbmNpZXM7Cn0K", + "aW1wb3J0ICdkYXJ0OmlvJzsKaW1wb3J0ICdwYWNrYWdlOmRhcnRfZnJvZ19wcm9kX3NlcnZlcl9ob29rcy9kYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MuZGFydCc7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6cGF0aC9wYXRoLmRhcnQnIGFzIHBhdGg7CmltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CmltcG9ydCAncGFja2FnZTp5YW1sX2VkaXQveWFtbF9lZGl0LmRhcnQnOwoKLy8vIE9wdHMgb3V0IG9mIGRhcnQgd29ya3NwYWNlcyB1bnRpbCB3ZSBjYW4gZ2VuZXJhdGUgcGVyIHBhY2thZ2UgbG9ja2ZpbGVzLgovLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9wdWIvaXNzdWVzLzQ1OTQKVm9pZENhbGxiYWNrIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogIEhvb2tDb250ZXh0IGNvbnRleHQsIHsKICByZXF1aXJlZCBQYWNrYWdlQ29uZmlnIHBhY2thZ2VDb25maWcsCiAgcmVxdWlyZWQgUGFja2FnZUdyYXBoIHBhY2thZ2VHcmFwaCwKICByZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeSwKICByZXF1aXJlZCBTdHJpbmcgd29ya3NwYWNlUm9vdCwKICByZXF1aXJlZCB2b2lkIEZ1bmN0aW9uKGludCBleGl0Q29kZSkgZXhpdCwKfSkgewogIGZpbmFsIFZvaWRDYWxsYmFjayByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbjsKICB0cnkgewogICAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24gPSBvdmVycmlkZVJlc29sdXRpb25JblB1YnNwZWNPdmVycmlkZXMoCiAgICAgIHByb2plY3REaXJlY3RvcnksCiAgICApOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlJyk7CiAgICBleGl0KDEpOwogICAgcmV0dXJuICgpIHt9OyAvLyBuby1vcAogIH0KCiAgdHJ5IHsKICAgIG92ZXJyaWRlUGF0aERlcGVuZGVuY2llc0luUHVic3BlY092ZXJyaWRlcygKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgcGFja2FnZUdyYXBoOiBwYWNrYWdlR3JhcGgsCiAgICApOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlKSB7CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbigpOwogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZScpOwogICAgZXhpdCgxKTsKICAgIHJldHVybiAoKSB7fTsgLy8gbm8tb3AKICB9CgogIHJldHVybiByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbjsKfQoKLy8vIEFkZCByZXNvbHV0aW9uOm51bGwgdG8gcHVic3BlY19vdmVycmlkZXMueWFtbC4KVm9pZENhbGxiYWNrIG92ZXJyaWRlUmVzb2x1dGlvbkluUHVic3BlY092ZXJyaWRlcyhTdHJpbmcgcHJvamVjdERpcmVjdG9yeSkgewogIGZpbmFsIHB1YnNwZWNPdmVycmlkZXNGaWxlID0gRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICk7CgogIGlmICghcHVic3BlY092ZXJyaWRlc0ZpbGUuZXhpc3RzU3luYygpKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuIHB1YnNwZWNPdmVycmlkZXNGaWxlLmRlbGV0ZVN5bmM7CiAgfQoKICBmaW5hbCBjb250ZW50cyA9IHB1YnNwZWNPdmVycmlkZXNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKTsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gbG9hZFlhbWwoY29udGVudHMpIGFzIFlhbWxNYXA/OwoKICBpZiAocHVic3BlY092ZXJyaWRlcyA9PSBudWxsKSB7CiAgICBwdWJzcGVjT3ZlcnJpZGVzRmlsZS53cml0ZUFzU3RyaW5nU3luYygncmVzb2x1dGlvbjogbnVsbCcpOwogICAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKICB9CgogIGlmIChwdWJzcGVjT3ZlcnJpZGVzWydyZXNvbHV0aW9uJ10gPT0gJ251bGwnKSByZXR1cm4gKCkge307IC8vIG5vLW9wCgogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpLi51cGRhdGUoWydyZXNvbHV0aW9uJ10sIG51bGwpOwogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKCiAgcmV0dXJuICgpID0+IHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGNvbnRlbnRzKTsKfQoKLy8vIEFkZCBvdmVycmlkZXMgZm9yIGFsbCBwYXRoIGRlcGVuZGVuY2llcyB0byBgcHVic3BlY19vdmVycmlkZXMueWFtbGAKdm9pZCBvdmVycmlkZVBhdGhEZXBlbmRlbmNpZXNJblB1YnNwZWNPdmVycmlkZXMoewogIHJlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIFBhY2thZ2VDb25maWcgcGFja2FnZUNvbmZpZywKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAp9KSB7CiAgZmluYWwgbmFtZSA9IGdldFBhY2thZ2VOYW1lKHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkpOwogIGlmIChuYW1lID09IG51bGwpIHsKICAgIHRocm93IEV4Y2VwdGlvbignRmFpbGVkIHRvIHBhcnNlICJuYW1lIiBmcm9tIHB1YnNwZWMueWFtbCcpOwogIH0KCiAgZmluYWwgcHJvZHVjdGlvbkRlcHMgPSBnZXRQcm9kdWN0aW9uRGVwZW5kZW5jaWVzKAogICAgcGFja2FnZU5hbWU6IG5hbWUsCiAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICApOwoKICBmaW5hbCBwYXRoRGVwZW5kZW5jaWVzID0gcGFja2FnZUNvbmZpZy5wYWNrYWdlcy53aGVyZSgKICAgIChwYWNrYWdlKSA9PiBwYWNrYWdlLnJlbGF0aXZlUm9vdCAmJiBwcm9kdWN0aW9uRGVwcy5jb250YWlucyhwYWNrYWdlLm5hbWUpLAogICk7CgogIHdyaXRlUGF0aERlcGVuZGVuY3lPdmVycmlkZXMoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgcGF0aERlcGVuZGVuY2llczogcGF0aERlcGVuZGVuY2llcywKICApOwp9Cgp2b2lkIHdyaXRlUGF0aERlcGVuZGVuY3lPdmVycmlkZXMoewogIHJlcXVpcmVkIFN0cmluZyBwcm9qZWN0RGlyZWN0b3J5LAogIHJlcXVpcmVkIEl0ZXJhYmxlPFBhY2thZ2U+IHBhdGhEZXBlbmRlbmNpZXMsCn0pIHsKICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzRmlsZSA9IEZpbGUoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeSwgJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnKSwKICApOwogIGZpbmFsIGNvbnRlbnRzID0gcHVic3BlY092ZXJyaWRlc0ZpbGUucmVhZEFzU3RyaW5nU3luYygpOwogIGZpbmFsIG92ZXJyaWRlcyA9IGxvYWRZYW1sKGNvbnRlbnRzKSBhcyBZYW1sTWFwOwogIGZpbmFsIGVkaXRvciA9IFlhbWxFZGl0b3IoY29udGVudHMpOwogIGlmICghb3ZlcnJpZGVzLmNvbnRhaW5zS2V5KCdkZXBlbmRlbmN5X292ZXJyaWRlcycpKSB7CiAgICBlZGl0b3IudXBkYXRlKFsnZGVwZW5kZW5jeV9vdmVycmlkZXMnXSwge30pOwogIH0KICBmb3IgKGZpbmFsIHBhY2thZ2UgaW4gcGF0aERlcGVuZGVuY2llcykgewogICAgZWRpdG9yLnVwZGF0ZSgKICAgICAgWydkZXBlbmRlbmN5X292ZXJyaWRlcycsIHBhY2thZ2UubmFtZV0sCiAgICAgIHsncGF0aCc6IHBhdGgucmVsYXRpdmUocGFja2FnZS5yb290LnBhdGgsIGZyb206IHByb2plY3REaXJlY3RvcnkpfSwKICAgICk7CiAgfQogIHB1YnNwZWNPdmVycmlkZXNGaWxlLndyaXRlQXNTdHJpbmdTeW5jKGVkaXRvci50b1N0cmluZygpKTsKfQoKLy8vIEV4dHJhY3QgdGhlIHBhY2thZ2UgbmFtZSBmcm9tIHRoZSBwdWJzcGVjLnlhbWwgaW4gW3Byb2plY3REaXJlY3RvcnldLgpTdHJpbmc/IGdldFBhY2thZ2VOYW1lKHtyZXF1aXJlZCBTdHJpbmcgcHJvamVjdERpcmVjdG9yeX0pIHsKICBmaW5hbCBwdWJzcGVjRmlsZSA9IEZpbGUocGF0aC5qb2luKHByb2plY3REaXJlY3RvcnksICdwdWJzcGVjLnlhbWwnKSk7CiAgZmluYWwgcHVic3BlYyA9IGxvYWRZYW1sKHB1YnNwZWNGaWxlLnJlYWRBc1N0cmluZ1N5bmMoKSk7CiAgaWYgKHB1YnNwZWMgaXMhIFlhbWxNYXApIHJldHVybiBudWxsOwoKICBmaW5hbCBuYW1lID0gcHVic3BlY1snbmFtZSddOwogIGlmIChuYW1lIGlzISBTdHJpbmcpIHJldHVybiBudWxsOwoKICByZXR1cm4gbmFtZTsKfQoKLy8vIEJ1aWxkIGEgY29tcGxldGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgKGRpcmVjdCBhbmQgdHJhbnNpdGl2ZSkuClNldDxTdHJpbmc+IGdldFByb2R1Y3Rpb25EZXBlbmRlbmNpZXMoewogIHJlcXVpcmVkIFN0cmluZyBwYWNrYWdlTmFtZSwKICByZXF1aXJlZCBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoLAp9KSB7CiAgZmluYWwgZGVwZW5kZW5jaWVzID0gPFN0cmluZz57fTsKICBmaW5hbCByb290ID0gcGFja2FnZUdyYXBoLnJvb3RzLmZpcnN0V2hlcmUoKHJvb3QpID0+IHJvb3QgPT0gcGFja2FnZU5hbWUpOwogIGZpbmFsIHJvb3RQYWNrYWdlID0gcGFja2FnZUdyYXBoLnBhY2thZ2VzLmZpcnN0V2hlcmUoKHApID0+IHAubmFtZSA9PSByb290KTsKICBmaW5hbCBkZXBlbmRlbmNpZXNUb1Zpc2l0ID0gPFN0cmluZz5bLi4ucm9vdFBhY2thZ2UuZGVwZW5kZW5jaWVzXTsKCiAgZG8gewogICAgZmluYWwgZGlzY292ZXJlZERlcGVuZGVuY2llcyA9IDxTdHJpbmc+W107CiAgICBmb3IgKGZpbmFsIGRlcGVuZGVuY3lUb1Zpc2l0IGluIGRlcGVuZGVuY2llc1RvVmlzaXQpIHsKICAgICAgZmluYWwgcGFja2FnZSA9IHBhY2thZ2VHcmFwaC5wYWNrYWdlcy5maXJzdFdoZXJlKAogICAgICAgIChwKSA9PiBwLm5hbWUgPT0gZGVwZW5kZW5jeVRvVmlzaXQsCiAgICAgICk7CiAgICAgIGRlcGVuZGVuY2llcy5hZGQocGFja2FnZS5uYW1lKTsKICAgICAgZm9yIChmaW5hbCBwYWNrYWdlRGVwZW5kZW5jeSBpbiBwYWNrYWdlLmRlcGVuZGVuY2llcykgewogICAgICAgIC8vIEF2b2lkIGluZmluaXRlIGxvb3BzIGZyb20gZGVwZW5kZW5jeSBjeWNsZXMgKGNpcmN1bGFyIGRlcGVuZGVuY2llcykuCiAgICAgICAgaWYgKGRlcGVuZGVuY2llcy5jb250YWlucyhwYWNrYWdlRGVwZW5kZW5jeSkpIGNvbnRpbnVlOwogICAgICAgIGRpc2NvdmVyZWREZXBlbmRlbmNpZXMuYWRkKHBhY2thZ2VEZXBlbmRlbmN5KTsKICAgICAgfQogICAgfQogICAgZGVwZW5kZW5jaWVzVG9WaXNpdAogICAgICAuLmNsZWFyKCkKICAgICAgLi5hZGRBbGwoZGlzY292ZXJlZERlcGVuZGVuY2llcyk7CiAgfSB3aGlsZSAoZGVwZW5kZW5jaWVzVG9WaXNpdC5pc05vdEVtcHR5KTsKICByZXR1cm4gZGVwZW5kZW5jaWVzOwp9Cg==", "type": "text" }, { @@ -304,13 +310,13 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "lib/src/package_graph/package_graph.dart", "data": - "aW1wb3J0ICdkYXJ0OmNvbnZlcnQnOwppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmpzb25fYW5ub3RhdGlvbi9qc29uX2Fubm90YXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCnBhcnQgJ3BhY2thZ2VfZ3JhcGguZy5kYXJ0JzsKCkBKc29uU2VyaWFsaXphYmxlKCkKY2xhc3MgUGFja2FnZUdyYXBoIHsKICBjb25zdCBQYWNrYWdlR3JhcGgoewogICAgcmVxdWlyZWQgdGhpcy5yb290cywKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgICByZXF1aXJlZCB0aGlzLmNvbmZpZ1ZlcnNpb24sCiAgfSk7CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmxvYWQoU3RyaW5nIHByb2plY3QpIHsKICAgIGZpbmFsIGZpbGUgPSBGaWxlKHBhdGguam9pbihwcm9qZWN0LCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2dyYXBoLmpzb24nKSk7CiAgICBpZiAoIWZpbGUuZXhpc3RzU3luYygpKSB0aHJvdyBFeGNlcHRpb24oJyR7ZmlsZS5wYXRofSBub3QgZm91bmQnKTsKICAgIHJldHVybiBQYWNrYWdlR3JhcGguZnJvbUpzb24oCiAgICAgIGpzb25EZWNvZGUoZmlsZS5yZWFkQXNTdHJpbmdTeW5jKCkpIGFzIE1hcDxTdHJpbmcsIGR5bmFtaWM+LAogICAgKTsKICB9CgogIGZhY3RvcnkgUGFja2FnZUdyYXBoLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oanNvbik7CgogIGZpbmFsIExpc3Q8U3RyaW5nPiByb290czsKICBmaW5hbCBMaXN0PFBhY2thZ2U+IHBhY2thZ2VzOwogIGZpbmFsIGludCBjb25maWdWZXJzaW9uOwp9CgpASnNvblNlcmlhbGl6YWJsZSgpCmNsYXNzIFBhY2thZ2UgewogIGNvbnN0IFBhY2thZ2UoewogICAgcmVxdWlyZWQgdGhpcy5uYW1lLAogICAgcmVxdWlyZWQgdGhpcy52ZXJzaW9uLAogICAgcmVxdWlyZWQgdGhpcy5kZXBlbmRlbmNpZXMsCiAgICByZXF1aXJlZCB0aGlzLmRldkRlcGVuZGVuY2llcywKICB9KTsKCiAgZmFjdG9yeSBQYWNrYWdlLmZyb21Kc29uKE1hcDxTdHJpbmcsIGR5bmFtaWM+IGpzb24pID0+CiAgICAgIF8kUGFja2FnZUZyb21Kc29uKGpzb24pOwoKICBmaW5hbCBTdHJpbmcgbmFtZTsKICBmaW5hbCBTdHJpbmcgdmVyc2lvbjsKCiAgQEpzb25LZXkoZGVmYXVsdFZhbHVlOiA8U3RyaW5nPltdKQogIGZpbmFsIExpc3Q8U3RyaW5nPiBkZXBlbmRlbmNpZXM7CgogIEBKc29uS2V5KGRlZmF1bHRWYWx1ZTogPFN0cmluZz5bXSkKICBmaW5hbCBMaXN0PFN0cmluZz4gZGV2RGVwZW5kZW5jaWVzOwp9Cg==", + "aW1wb3J0ICdkYXJ0OmNvbnZlcnQnOwppbXBvcnQgJ2RhcnQ6aW8nOwoKaW1wb3J0ICdwYWNrYWdlOmpzb25fYW5ub3RhdGlvbi9qc29uX2Fubm90YXRpb24uZGFydCc7CmltcG9ydCAncGFja2FnZTpwYXRoL3BhdGguZGFydCcgYXMgcGF0aDsKCnBhcnQgJ3BhY2thZ2VfZ3JhcGguZy5kYXJ0JzsKCi8vLyB7QHRlbXBsYXRlIHBhY2thZ2VfZ3JhcGh9Ci8vLyBBIERhcnQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRlc2VyaWFsaXplZCBjb250ZW50cyBvZiB0aGUgcGFja2FnZV9ncmFwaC5qc29uCi8vLyB7QGVuZHRlbXBsYXRlfQpASnNvblNlcmlhbGl6YWJsZSgpCmNsYXNzIFBhY2thZ2VHcmFwaCB7CiAgLy8vIHtAbWFjcm8gcGFja2FnZV9ncmFwaH0KICBjb25zdCBQYWNrYWdlR3JhcGgoewogICAgcmVxdWlyZWQgdGhpcy5yb290cywKICAgIHJlcXVpcmVkIHRoaXMucGFja2FnZXMsCiAgICByZXF1aXJlZCB0aGlzLmNvbmZpZ1ZlcnNpb24sCiAgfSk7CgogIC8vLyBMb2FkIGEgW1BhY2thZ2VHcmFwaF0gZnJvbSB0aGUgcHJvdmlkZWQgW3Byb2plY3RdIHJvb3QuCiAgZmFjdG9yeSBQYWNrYWdlR3JhcGgubG9hZChTdHJpbmcgcHJvamVjdCkgewogICAgZmluYWwgZmlsZSA9IEZpbGUocGF0aC5qb2luKHByb2plY3QsICcuZGFydF90b29sJywgJ3BhY2thZ2VfZ3JhcGguanNvbicpKTsKICAgIGlmICghZmlsZS5leGlzdHNTeW5jKCkpIHRocm93IEV4Y2VwdGlvbignJHtmaWxlLnBhdGh9IG5vdCBmb3VuZCcpOwogICAgcmV0dXJuIFBhY2thZ2VHcmFwaC5mcm9tSnNvbigKICAgICAganNvbkRlY29kZShmaWxlLnJlYWRBc1N0cmluZ1N5bmMoKSkgYXMgTWFwPFN0cmluZywgZHluYW1pYz4sCiAgICApOwogIH0KCiAgLy8vIENyZWF0ZSBhIFtQYWNrYWdlR3JhcGhdIGZyb20gYSBbTWFwXS4KICBmYWN0b3J5IFBhY2thZ2VHcmFwaC5mcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PgogICAgICBfJFBhY2thZ2VHcmFwaEZyb21Kc29uKGpzb24pOwoKICAvLy8gVGhlIHJvb3Qgbm9kZXMgb2YgdGhlIHBhY2thZ2UgZ3JhcGguCiAgZmluYWwgTGlzdDxTdHJpbmc+IHJvb3RzOwoKICAvLy8gQSBsaXN0IG9mIHBhY2thZ2VzIGZvciB0aGUgZ2l2ZW4gcGFja2FnZSBncmFwaC4KICBmaW5hbCBMaXN0PFBhY2thZ2VHcmFwaFBhY2thZ2U+IHBhY2thZ2VzOwoKICAvLy8gVGhlIGNvbmZpZyB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdlIGdyYXBoLgogIGZpbmFsIGludCBjb25maWdWZXJzaW9uOwp9CgovLy8ge0B0ZW1wbGF0ZSBwYWNrYWdlX2dyYXBoX3BhY2thZ2V9Ci8vLyBBbiBpbmRpdmlkdWFsIHBhY2thZ2UgaW4gYSBwYWNrYWdlIGdyYXBoLgovLy8ge0BlbmR0ZW1wbGF0ZX0KQEpzb25TZXJpYWxpemFibGUoKQpjbGFzcyBQYWNrYWdlR3JhcGhQYWNrYWdlIHsKICAvLy8ge0BtYWNybyBwYWNrYWdlX2dyYXBoX3BhY2thZ2V9CiAgY29uc3QgUGFja2FnZUdyYXBoUGFja2FnZSh7CiAgICByZXF1aXJlZCB0aGlzLm5hbWUsCiAgICByZXF1aXJlZCB0aGlzLnZlcnNpb24sCiAgICByZXF1aXJlZCB0aGlzLmRlcGVuZGVuY2llcywKICAgIHJlcXVpcmVkIHRoaXMuZGV2RGVwZW5kZW5jaWVzLAogIH0pOwoKICAvLy8gQ3JlYXRlIGEgW1BhY2thZ2VHcmFwaFBhY2thZ2VdIGZyb20gYSBbTWFwXS4KICBmYWN0b3J5IFBhY2thZ2VHcmFwaFBhY2thZ2UuZnJvbUpzb24oTWFwPFN0cmluZywgZHluYW1pYz4ganNvbikgPT4KICAgICAgXyRQYWNrYWdlR3JhcGhQYWNrYWdlRnJvbUpzb24oanNvbik7CgogIC8vLyBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZS4KICBmaW5hbCBTdHJpbmcgbmFtZTsKCiAgLy8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdlLgogIGZpbmFsIFN0cmluZyB2ZXJzaW9uOwoKICAvLy8gVGhlIGxpc3Qgb2YgcGFja2FnZSBuYW1lcyB0aGF0IHRoaXMgcGFja2FnZSBkZXBlbmRzIG9uIGluIHByb2R1Y3Rpb24uCiAgQEpzb25LZXkoZGVmYXVsdFZhbHVlOiA8U3RyaW5nPltdKQogIGZpbmFsIExpc3Q8U3RyaW5nPiBkZXBlbmRlbmNpZXM7CgogIC8vLyBUaGUgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgdGhpcyBwYWNrYWdlIGRlcGVuZHMgb24gaW4gZGV2ZWxvcG1lbnQuCiAgQEpzb25LZXkoZGVmYXVsdFZhbHVlOiA8U3RyaW5nPltdKQogIGZpbmFsIExpc3Q8U3RyaW5nPiBkZXZEZXBlbmRlbmNpZXM7Cn0K", "type": "text" }, { "path": "lib/src/package_graph/package_graph.g.dart", "data": - "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogdHlwZT1saW50CgpwYXJ0IG9mICdwYWNrYWdlX2dyYXBoLmRhcnQnOwoKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8gSnNvblNlcmlhbGl6YWJsZUdlbmVyYXRvcgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKUGFja2FnZUdyYXBoIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oTWFwPFN0cmluZywgZHluYW1pYz4ganNvbikgPT4KICAgICRjaGVja2VkQ3JlYXRlKAogICAgICAnUGFja2FnZUdyYXBoJywKICAgICAganNvbiwKICAgICAgKCRjaGVja2VkQ29udmVydCkgewogICAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2VHcmFwaCgKICAgICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoJ3Jvb3RzJywKICAgICAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkpLAogICAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICAgICAncGFja2FnZXMnLAogICAgICAgICAgICAgICh2KSA9PiAodiBhcyBMaXN0PGR5bmFtaWM+KQogICAgICAgICAgICAgICAgICAubWFwKChlKSA9PiBQYWNrYWdlLmZyb21Kc29uKGUgYXMgTWFwPFN0cmluZywgZHluYW1pYz4pKQogICAgICAgICAgICAgICAgICAudG9MaXN0KCkpLAogICAgICAgICAgY29uZmlnVmVyc2lvbjoKICAgICAgICAgICAgICAkY2hlY2tlZENvbnZlcnQoJ2NvbmZpZ1ZlcnNpb24nLCAodikgPT4gKHYgYXMgbnVtKS50b0ludCgpKSwKICAgICAgICApOwogICAgICAgIHJldHVybiB2YWw7CiAgICAgIH0sCiAgICApOwoKUGFja2FnZSBfJFBhY2thZ2VGcm9tSnNvbihNYXA8U3RyaW5nLCBkeW5hbWljPiBqc29uKSA9PiAkY2hlY2tlZENyZWF0ZSgKICAgICAgJ1BhY2thZ2UnLAogICAgICBqc29uLAogICAgICAoJGNoZWNrZWRDb252ZXJ0KSB7CiAgICAgICAgZmluYWwgdmFsID0gUGFja2FnZSgKICAgICAgICAgIG5hbWU6ICRjaGVja2VkQ29udmVydCgnbmFtZScsICh2KSA9PiB2IGFzIFN0cmluZyksCiAgICAgICAgICB2ZXJzaW9uOiAkY2hlY2tlZENvbnZlcnQoJ3ZlcnNpb24nLCAodikgPT4gdiBhcyBTdHJpbmcpLAogICAgICAgICAgZGVwZW5kZW5jaWVzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAgICAgJ2RlcGVuZGVuY2llcycsCiAgICAgICAgICAgICAgKHYpID0+CiAgICAgICAgICAgICAgICAgICh2IGFzIExpc3Q8ZHluYW1pYz4/KT8ubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkgPz8KICAgICAgICAgICAgICAgICAgW10pLAogICAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiAkY2hlY2tlZENvbnZlcnQoCiAgICAgICAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsCiAgICAgICAgICAgICAgKHYpID0+CiAgICAgICAgICAgICAgICAgICh2IGFzIExpc3Q8ZHluYW1pYz4/KT8ubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkgPz8KICAgICAgICAgICAgICAgICAgW10pLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIHZhbDsKICAgICAgfSwKICAgICk7Cg==", + "Ly8gR0VORVJBVEVEIENPREUgLSBETyBOT1QgTU9ESUZZIEJZIEhBTkQKCi8vIGlnbm9yZV9mb3JfZmlsZTogdHlwZT1saW50CgpwYXJ0IG9mICdwYWNrYWdlX2dyYXBoLmRhcnQnOwoKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8gSnNvblNlcmlhbGl6YWJsZUdlbmVyYXRvcgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKUGFja2FnZUdyYXBoIF8kUGFja2FnZUdyYXBoRnJvbUpzb24oTWFwPFN0cmluZywgZHluYW1pYz4ganNvbikgPT4KICAgICRjaGVja2VkQ3JlYXRlKAogICAgICAnUGFja2FnZUdyYXBoJywKICAgICAganNvbiwKICAgICAgKCRjaGVja2VkQ29udmVydCkgewogICAgICAgIGZpbmFsIHZhbCA9IFBhY2thZ2VHcmFwaCgKICAgICAgICAgIHJvb3RzOiAkY2hlY2tlZENvbnZlcnQoJ3Jvb3RzJywKICAgICAgICAgICAgICAodikgPT4gKHYgYXMgTGlzdDxkeW5hbWljPikubWFwKChlKSA9PiBlIGFzIFN0cmluZykudG9MaXN0KCkpLAogICAgICAgICAgcGFja2FnZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICAgICAncGFja2FnZXMnLAogICAgICAgICAgICAgICh2KSA9PiAodiBhcyBMaXN0PGR5bmFtaWM+KQogICAgICAgICAgICAgICAgICAubWFwKChlKSA9PgogICAgICAgICAgICAgICAgICAgICAgUGFja2FnZUdyYXBoUGFja2FnZS5mcm9tSnNvbihlIGFzIE1hcDxTdHJpbmcsIGR5bmFtaWM+KSkKICAgICAgICAgICAgICAgICAgLnRvTGlzdCgpKSwKICAgICAgICAgIGNvbmZpZ1ZlcnNpb246CiAgICAgICAgICAgICAgJGNoZWNrZWRDb252ZXJ0KCdjb25maWdWZXJzaW9uJywgKHYpID0+ICh2IGFzIG51bSkudG9JbnQoKSksCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gdmFsOwogICAgICB9LAogICAgKTsKClBhY2thZ2VHcmFwaFBhY2thZ2UgXyRQYWNrYWdlR3JhcGhQYWNrYWdlRnJvbUpzb24oTWFwPFN0cmluZywgZHluYW1pYz4ganNvbikgPT4KICAgICRjaGVja2VkQ3JlYXRlKAogICAgICAnUGFja2FnZUdyYXBoUGFja2FnZScsCiAgICAgIGpzb24sCiAgICAgICgkY2hlY2tlZENvbnZlcnQpIHsKICAgICAgICBmaW5hbCB2YWwgPSBQYWNrYWdlR3JhcGhQYWNrYWdlKAogICAgICAgICAgbmFtZTogJGNoZWNrZWRDb252ZXJ0KCduYW1lJywgKHYpID0+IHYgYXMgU3RyaW5nKSwKICAgICAgICAgIHZlcnNpb246ICRjaGVja2VkQ29udmVydCgndmVyc2lvbicsICh2KSA9PiB2IGFzIFN0cmluZyksCiAgICAgICAgICBkZXBlbmRlbmNpZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICAgICAnZGVwZW5kZW5jaWVzJywKICAgICAgICAgICAgICAodikgPT4KICAgICAgICAgICAgICAgICAgKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PwogICAgICAgICAgICAgICAgICBbXSksCiAgICAgICAgICBkZXZEZXBlbmRlbmNpZXM6ICRjaGVja2VkQ29udmVydCgKICAgICAgICAgICAgICAnZGV2RGVwZW5kZW5jaWVzJywKICAgICAgICAgICAgICAodikgPT4KICAgICAgICAgICAgICAgICAgKHYgYXMgTGlzdDxkeW5hbWljPj8pPy5tYXAoKGUpID0+IGUgYXMgU3RyaW5nKS50b0xpc3QoKSA/PwogICAgICAgICAgICAgICAgICBbXSksCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gdmFsOwogICAgICB9LAogICAgKTsK", "type": "text" }, { @@ -334,7 +340,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "pre_gen.dart", "data": - "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICRwcm9qZWN0RGlyZWN0b3J5JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHBhY2thZ2VfY29uZmlnLmpzb24gaXMgdXAgdG8gZGF0ZS4KICAgIGF3YWl0IGRhcnRQdWJHZXQoCiAgICAgIGNvbnRleHQsCiAgICAgIG1lc3NhZ2U6ICdHZW5lcmF0aW5nIHBhY2thZ2UgZ3JhcGgnLAogICAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIHJ1blByb2Nlc3M6IHJ1blByb2Nlc3MsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwoKICAgIGZpbmFsIHBhY2thZ2VDb25maWcgPSBnZXRQYWNrYWdlQ29uZmlnKHdvcmtzcGFjZVJvb3QucGF0aCk7CiAgICBpZiAocGFja2FnZUNvbmZpZyA9PSBudWxsKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnVW5hYmxlIHRvIGZpbmQgcGFja2FnZV9jb25maWcuanNvbiBmb3IgJHt3b3Jrc3BhY2VSb290LnBhdGh9JywKICAgICAgKTsKICAgICAgcmV0dXJuIGV4aXQoMSk7CiAgICB9CgogICAgZmluYWwgcGFja2FnZUdyYXBoID0gZ2V0UGFja2FnZUdyYXBoKHdvcmtzcGFjZVJvb3QucGF0aCk7CiAgICBpZiAocGFja2FnZUdyYXBoID09IG51bGwpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICdVbmFibGUgdG8gZmluZCBwYWNrYWdlX2dyYXBoLmpzb24gZm9yICR7d29ya3NwYWNlUm9vdC5wYXRofScsCiAgICAgICk7CiAgICAgIHJldHVybiBleGl0KDEpOwogICAgfQoKICAgIC8vIERpc2FibGUgd29ya3NwYWNlIHJlc29sdXRpb24gdW50aWwgd2UgY2FuIGdlbmVyYXRlIHBlci1wYWNrYWdlIGxvY2tmaWxlcy4KICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy80NTk0CiAgICByZXN0b3JlV29ya3NwYWNlUmVzb2x1dGlvbiA9IGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICBjb250ZXh0LAogICAgICBwYWNrYWdlQ29uZmlnOiBwYWNrYWdlQ29uZmlnLAogICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICB3b3Jrc3BhY2VSb290OiB3b3Jrc3BhY2VSb290LnBhdGgsCiAgICAgIGV4aXQ6IGV4aXQsCiAgICApOwogICAgLy8gQ29weSB0aGUgcHVic3BlYy5sb2NrIGZyb20gdGhlIHdvcmtzcGFjZSByb290IHRvIGVuc3VyZSB0aGUgc2FtZSB2ZXJzaW9ucwogICAgLy8gb2YgZGVwZW5kZW5jaWVzIGFyZSB1c2VkIGluIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLgogICAgcmV2ZXJ0UHVic3BlY0xvY2sgPSBjb3B5V29ya3NwYWNlUHVic3BlY0xvY2soCiAgICAgIGNvbnRleHQsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgd29ya3NwYWNlUm9vdDogd29ya3NwYWNlUm9vdC5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICB9CgogIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHB1YnNwZWMubG9jayBmaWxlIGlzIHVwIHRvIGRhdGUuCiAgYXdhaXQgZGFydFB1YkdldCgKICAgIGNvbnRleHQsCiAgICBtZXNzYWdlOiAnVXBkYXRpbmcgbG9ja2ZpbGUnLAogICAgd29ya2luZ0RpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgcnVuUHJvY2VzczogcnVuUHJvY2VzcywKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgZmluYWwgYnVpbGREaXJlY3RvcnkgPSBpby5EaXJlY3RvcnkoCiAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAnYnVpbGQnKSwKICApOwoKICBhd2FpdCBjcmVhdGVCdW5kbGUoCiAgICBjb250ZXh0OiBjb250ZXh0LAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGV4aXQ6IGV4aXQsCiAgKTsKCiAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24/LmNhbGwoKTsKCiAgZmluYWwgUm91dGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CiAgdHJ5IHsKICAgIGNvbmZpZ3VyYXRpb24gPSBidWlsZENvbmZpZ3VyYXRpb24ocHJvamVjdERpcmVjdG9yeSk7CiAgfSBvbiBFeGNlcHRpb24gY2F0Y2ggKGVycm9yKSB7CiAgICBjb250ZXh0LmxvZ2dlci5lcnIoJyRlcnJvcicpOwogICAgcmV0dXJuIGV4aXQoMSk7CiAgfQoKICByZXBvcnRSb3V0ZUNvbmZsaWN0cygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvdXRlQ29uZmxpY3Q6ICgKICAgICAgb3JpZ2luYWxGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdGaWxlUGF0aCwKICAgICAgY29uZmxpY3RpbmdFbmRwb2ludCwKICAgICkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJycnUm91dGUgY29uZmxpY3QgZGV0ZWN0ZWQuICR7bGlnaHRDeWFuLndyYXAob3JpZ2luYWxGaWxlUGF0aCl9IGFuZCAke2xpZ2h0Q3lhbi53cmFwKGNvbmZsaWN0aW5nRmlsZVBhdGgpfSBib3RoIHJlc29sdmUgdG8gJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0VuZHBvaW50KX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIHJlcG9ydFJvZ3VlUm91dGVzKAogICAgY29uZmlndXJhdGlvbiwKICAgIG9uUm9ndWVSb3V0ZTogKGZpbGVQYXRoLCBpZGVhbFBhdGgpIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvZ3VlIHJvdXRlIGRldGVjdGVkLiR7ZGVmYXVsdEZvcmVncm91bmQud3JhcCgnICcpfVJlbmFtZSAke2xpZ2h0Q3lhbi53cmFwKGZpbGVQYXRoKX0gdG8gJHtsaWdodEN5YW4ud3JhcChpZGVhbFBhdGgpfS4nJycsCiAgICAgICk7CiAgICB9LAogICAgb25WaW9sYXRpb25FbmQ6ICgpID0+IGV4aXQoMSksCiAgKTsKCiAgZmluYWwgaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzID0gYXdhaXQgZ2V0SW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzKAogICAgcHJvamVjdERpcmVjdG9yeSwKICApOwoKICBmaW5hbCBleHRlcm5hbERlcGVuZGVuY2llcyA9IGF3YWl0IGNyZWF0ZUV4dGVybmFsUGFja2FnZXNGb2xkZXIoCiAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LAogICAgYnVpbGREaXJlY3Rvcnk6IGJ1aWxkRGlyZWN0b3J5LAogICAgY29weVBhdGg6IGNvcHlQYXRoLAogICk7CgogIHJldmVydFB1YnNwZWNMb2NrPy5jYWxsKCk7CgogIGZpbmFsIGN1c3RvbURvY2tlckZpbGUgPSBpby5GaWxlKAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ0RvY2tlcmZpbGUnKSwKICApOwogIGZpbmFsIGFkZERvY2tlcmZpbGUgPSAhY3VzdG9tRG9ja2VyRmlsZS5leGlzdHNTeW5jKCk7CgogIGNvbnRleHQudmFycyA9IHsKICAgICdkaXJlY3Rvcmllcyc6IGNvbmZpZ3VyYXRpb24uZGlyZWN0b3JpZXMKICAgICAgICAubWFwKChjKSA9PiBjLnRvSnNvbigpKQogICAgICAgIC50b0xpc3QoKQogICAgICAgIC5yZXZlcnNlZAogICAgICAgIC50b0xpc3QoKSwKICAgICdyb3V0ZXMnOiBjb25maWd1cmF0aW9uLnJvdXRlcy5tYXAoKHIpID0+IHIudG9Kc29uKCkpLnRvTGlzdCgpLAogICAgJ21pZGRsZXdhcmUnOiBjb25maWd1cmF0aW9uLm1pZGRsZXdhcmUubWFwKChtKSA9PiBtLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdnbG9iYWxNaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5nbG9iYWxNaWRkbGV3YXJlICE9IG51bGwKICAgICAgICA/IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSEudG9Kc29uKCkKICAgICAgICA6IGZhbHNlLAogICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBjb25maWd1cmF0aW9uLnNlcnZlU3RhdGljRmlsZXMsCiAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tRW50cnlwb2ludCwKICAgICdpbnZva2VDdXN0b21Jbml0JzogY29uZmlndXJhdGlvbi5pbnZva2VDdXN0b21Jbml0LAogICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiBpbnRlcm5hbFBhdGhEZXBlbmRlbmNpZXMsCiAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBleHRlcm5hbERlcGVuZGVuY2llcy5pc05vdEVtcHR5LAogICAgJ2RhcnRWZXJzaW9uJzogY29udGV4dC52YXJzWydkYXJ0VmVyc2lvbiddLAogICAgJ2FkZERvY2tlcmZpbGUnOiBhZGREb2NrZXJmaWxlLAogIH07Cn0K", + "aW1wb3J0ICdkYXJ0OmFzeW5jJzsKaW1wb3J0ICdkYXJ0OmlvJyBhcyBpbzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6aW8vaW8uZGFydCcgYXMgaW9fZXhwYW5kZWQ7CmltcG9ydCAncGFja2FnZTptYXNvbi9tYXNvbi5kYXJ0JwogICAgc2hvdyBIb29rQ29udGV4dCwgZGVmYXVsdEZvcmVncm91bmQsIGxpZ2h0Q3lhbjsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwoKdHlwZWRlZiBSb3V0ZUNvbmZpZ3VyYXRpb25CdWlsZGVyID0gUm91dGVDb25maWd1cmF0aW9uIEZ1bmN0aW9uKAogIGlvLkRpcmVjdG9yeSBkaXJlY3RvcnksCik7CgpGdXR1cmU8dm9pZD4gcnVuKEhvb2tDb250ZXh0IGNvbnRleHQpID0+IHByZUdlbihjb250ZXh0KTsKCkZ1dHVyZTx2b2lkPiBwcmVHZW4oCiAgSG9va0NvbnRleHQgY29udGV4dCwgewogIGlvLkRpcmVjdG9yeT8gZGlyZWN0b3J5LAogIFByb2Nlc3NSdW5uZXIgcnVuUHJvY2VzcyA9IGlvLlByb2Nlc3MucnVuLAogIFJvdXRlQ29uZmlndXJhdGlvbkJ1aWxkZXIgYnVpbGRDb25maWd1cmF0aW9uID0gYnVpbGRSb3V0ZUNvbmZpZ3VyYXRpb24sCiAgdm9pZCBGdW5jdGlvbihpbnQgZXhpdENvZGUpIGV4aXQgPSBkZWZhdWx0RXhpdCwKICBGdXR1cmU8dm9pZD4gRnVuY3Rpb24oU3RyaW5nIGZyb20sIFN0cmluZyB0bykgY29weVBhdGggPSBpb19leHBhbmRlZC5jb3B5UGF0aCwKfSkgYXN5bmMgewogIGZpbmFsIHByb2plY3REaXJlY3RvcnkgPSBkaXJlY3RvcnkgPz8gaW8uRGlyZWN0b3J5LmN1cnJlbnQ7CiAgZmluYWwgdXNlc1dvcmtzcGFjZXMgPSB1c2VzV29ya3NwYWNlUmVzb2x1dGlvbigKICAgIGNvbnRleHQsCiAgICB3b3JraW5nRGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICBleGl0OiBleGl0LAogICk7CgogIFZvaWRDYWxsYmFjaz8gcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb247CiAgVm9pZENhbGxiYWNrPyByZXZlcnRQdWJzcGVjTG9jazsKCiAgaWYgKHVzZXNXb3Jrc3BhY2VzKSB7CiAgICBmaW5hbCB3b3Jrc3BhY2VSb290ID0gZ2V0V29ya3NwYWNlUm9vdChwcm9qZWN0RGlyZWN0b3J5LnBhdGgpOwogICAgaWYgKHdvcmtzcGFjZVJvb3QgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgd29ya3NwYWNlIHJvb3QgZm9yICR7cHJvamVjdERpcmVjdG9yeS5wYXRofScsCiAgICAgICk7CiAgICAgIHJldHVybiBleGl0KDEpOwogICAgfQoKICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBwYWNrYWdlX2NvbmZpZy5qc29uIGlzIHVwIHRvIGRhdGUuCiAgICBhd2FpdCBkYXJ0UHViR2V0KAogICAgICBjb250ZXh0LAogICAgICBtZXNzYWdlOiAnR2VuZXJhdGluZyBwYWNrYWdlIGdyYXBoJywKICAgICAgd29ya2luZ0RpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICBydW5Qcm9jZXNzOiBydW5Qcm9jZXNzLAogICAgICBleGl0OiBleGl0LAogICAgKTsKCiAgICBmaW5hbCBwYWNrYWdlQ29uZmlnID0gZ2V0UGFja2FnZUNvbmZpZyh3b3Jrc3BhY2VSb290LnBhdGgpOwogICAgaWYgKHBhY2thZ2VDb25maWcgPT0gbnVsbCkgewogICAgICBjb250ZXh0LmxvZ2dlci5lcnIoCiAgICAgICAgJ1VuYWJsZSB0byBmaW5kIHBhY2thZ2VfY29uZmlnLmpzb24gZm9yICR7d29ya3NwYWNlUm9vdC5wYXRofScsCiAgICAgICk7CiAgICAgIHJldHVybiBleGl0KDEpOwogICAgfQoKICAgIGZpbmFsIHBhY2thZ2VHcmFwaCA9IGdldFBhY2thZ2VHcmFwaCh3b3Jrc3BhY2VSb290LnBhdGgpOwogICAgaWYgKHBhY2thZ2VHcmFwaCA9PSBudWxsKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnVW5hYmxlIHRvIGZpbmQgcGFja2FnZV9ncmFwaC5qc29uIGZvciAke3dvcmtzcGFjZVJvb3QucGF0aH0nLAogICAgICApOwogICAgICByZXR1cm4gZXhpdCgxKTsKICAgIH0KCiAgICAvLyBEaXNhYmxlIHdvcmtzcGFjZSByZXNvbHV0aW9uIHVudGlsIHdlIGNhbiBnZW5lcmF0ZSBwZXItcGFja2FnZSBsb2NrZmlsZXMuCiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3B1Yi9pc3N1ZXMvNDU5NAogICAgcmVzdG9yZVdvcmtzcGFjZVJlc29sdXRpb24gPSBkaXNhYmxlV29ya3NwYWNlUmVzb2x1dGlvbigKICAgICAgY29udGV4dCwKICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgcGFja2FnZUdyYXBoOiBwYWNrYWdlR3JhcGgsCiAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgd29ya3NwYWNlUm9vdDogd29ya3NwYWNlUm9vdC5wYXRoLAogICAgICBleGl0OiBleGl0LAogICAgKTsKICAgIC8vIENvcHkgdGhlIHB1YnNwZWMubG9jayBmcm9tIHRoZSB3b3Jrc3BhY2Ugcm9vdCB0byBlbnN1cmUgdGhlIHNhbWUgdmVyc2lvbnMKICAgIC8vIG9mIGRlcGVuZGVuY2llcyBhcmUgdXNlZCBpbiB0aGUgcHJvZHVjdGlvbiBidWlsZC4KICAgIHJldmVydFB1YnNwZWNMb2NrID0gY29weVdvcmtzcGFjZVB1YnNwZWNMb2NrKAogICAgICBjb250ZXh0LAogICAgICBwcm9qZWN0RGlyZWN0b3J5OiBwcm9qZWN0RGlyZWN0b3J5LnBhdGgsCiAgICAgIHdvcmtzcGFjZVJvb3Q6IHdvcmtzcGFjZVJvb3QucGF0aCwKICAgICAgZXhpdDogZXhpdCwKICAgICk7CiAgfQoKICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwdWJzcGVjLmxvY2sgZmlsZSBpcyB1cCB0byBkYXRlLgogIGF3YWl0IGRhcnRQdWJHZXQoCiAgICBjb250ZXh0LAogICAgbWVzc2FnZTogJ1VwZGF0aW5nIGxvY2tmaWxlJywKICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgIHJ1blByb2Nlc3M6IHJ1blByb2Nlc3MsCiAgICBleGl0OiBleGl0LAogICk7CgogIGZpbmFsIGJ1aWxkRGlyZWN0b3J5ID0gaW8uRGlyZWN0b3J5KAogICAgcGF0aC5qb2luKHByb2plY3REaXJlY3RvcnkucGF0aCwgJ2J1aWxkJyksCiAgKTsKCiAgYXdhaXQgY3JlYXRlQnVuZGxlKAogICAgY29udGV4dDogY29udGV4dCwKICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnksCiAgICBidWlsZERpcmVjdG9yeTogYnVpbGREaXJlY3RvcnksCiAgICBleGl0OiBleGl0LAogICk7CgogIHJlc3RvcmVXb3Jrc3BhY2VSZXNvbHV0aW9uPy5jYWxsKCk7CgogIGZpbmFsIFJvdXRlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uOwogIHRyeSB7CiAgICBjb25maWd1cmF0aW9uID0gYnVpbGRDb25maWd1cmF0aW9uKHByb2plY3REaXJlY3RvcnkpOwogIH0gb24gRXhjZXB0aW9uIGNhdGNoIChlcnJvcikgewogICAgY29udGV4dC5sb2dnZXIuZXJyKCckZXJyb3InKTsKICAgIHJldHVybiBleGl0KDEpOwogIH0KCiAgcmVwb3J0Um91dGVDb25mbGljdHMoCiAgICBjb25maWd1cmF0aW9uLAogICAgb25Sb3V0ZUNvbmZsaWN0OiAoCiAgICAgIG9yaWdpbmFsRmlsZVBhdGgsCiAgICAgIGNvbmZsaWN0aW5nRmlsZVBhdGgsCiAgICAgIGNvbmZsaWN0aW5nRW5kcG9pbnQsCiAgICApIHsKICAgICAgY29udGV4dC5sb2dnZXIuZXJyKAogICAgICAgICcnJ1JvdXRlIGNvbmZsaWN0IGRldGVjdGVkLiAke2xpZ2h0Q3lhbi53cmFwKG9yaWdpbmFsRmlsZVBhdGgpfSBhbmQgJHtsaWdodEN5YW4ud3JhcChjb25mbGljdGluZ0ZpbGVQYXRoKX0gYm90aCByZXNvbHZlIHRvICR7bGlnaHRDeWFuLndyYXAoY29uZmxpY3RpbmdFbmRwb2ludCl9LicnJywKICAgICAgKTsKICAgIH0sCiAgICBvblZpb2xhdGlvbkVuZDogKCkgPT4gZXhpdCgxKSwKICApOwoKICByZXBvcnRSb2d1ZVJvdXRlcygKICAgIGNvbmZpZ3VyYXRpb24sCiAgICBvblJvZ3VlUm91dGU6IChmaWxlUGF0aCwgaWRlYWxQYXRoKSB7CiAgICAgIGNvbnRleHQubG9nZ2VyLmVycigKICAgICAgICAnJydSb2d1ZSByb3V0ZSBkZXRlY3RlZC4ke2RlZmF1bHRGb3JlZ3JvdW5kLndyYXAoJyAnKX1SZW5hbWUgJHtsaWdodEN5YW4ud3JhcChmaWxlUGF0aCl9IHRvICR7bGlnaHRDeWFuLndyYXAoaWRlYWxQYXRoKX0uJycnLAogICAgICApOwogICAgfSwKICAgIG9uVmlvbGF0aW9uRW5kOiAoKSA9PiBleGl0KDEpLAogICk7CgogIGZpbmFsIGludGVybmFsUGF0aERlcGVuZGVuY2llcyA9IGF3YWl0IGdldEludGVybmFsUGF0aERlcGVuZGVuY2llcygKICAgIHByb2plY3REaXJlY3RvcnksCiAgKTsKCiAgZmluYWwgZXh0ZXJuYWxEZXBlbmRlbmNpZXMgPSBhd2FpdCBjcmVhdGVFeHRlcm5hbFBhY2thZ2VzRm9sZGVyKAogICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeSwKICAgIGJ1aWxkRGlyZWN0b3J5OiBidWlsZERpcmVjdG9yeSwKICAgIGNvcHlQYXRoOiBjb3B5UGF0aCwKICApOwoKICByZXZlcnRQdWJzcGVjTG9jaz8uY2FsbCgpOwoKICBmaW5hbCBjdXN0b21Eb2NrZXJGaWxlID0gaW8uRmlsZSgKICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJyksCiAgKTsKICBmaW5hbCBhZGREb2NrZXJmaWxlID0gIWN1c3RvbURvY2tlckZpbGUuZXhpc3RzU3luYygpOwoKICBjb250ZXh0LnZhcnMgPSB7CiAgICAnZGlyZWN0b3JpZXMnOiBjb25maWd1cmF0aW9uLmRpcmVjdG9yaWVzCiAgICAgICAgLm1hcCgoYykgPT4gYy50b0pzb24oKSkKICAgICAgICAudG9MaXN0KCkKICAgICAgICAucmV2ZXJzZWQKICAgICAgICAudG9MaXN0KCksCiAgICAncm91dGVzJzogY29uZmlndXJhdGlvbi5yb3V0ZXMubWFwKChyKSA9PiByLnRvSnNvbigpKS50b0xpc3QoKSwKICAgICdtaWRkbGV3YXJlJzogY29uZmlndXJhdGlvbi5taWRkbGV3YXJlLm1hcCgobSkgPT4gbS50b0pzb24oKSkudG9MaXN0KCksCiAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGNvbmZpZ3VyYXRpb24uZ2xvYmFsTWlkZGxld2FyZSAhPSBudWxsCiAgICAgICAgPyBjb25maWd1cmF0aW9uLmdsb2JhbE1pZGRsZXdhcmUhLnRvSnNvbigpCiAgICAgICAgOiBmYWxzZSwKICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogY29uZmlndXJhdGlvbi5zZXJ2ZVN0YXRpY0ZpbGVzLAogICAgJ2ludm9rZUN1c3RvbUVudHJ5cG9pbnQnOiBjb25maWd1cmF0aW9uLmludm9rZUN1c3RvbUVudHJ5cG9pbnQsCiAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGNvbmZpZ3VyYXRpb24uaW52b2tlQ3VzdG9tSW5pdCwKICAgICdwYXRoRGVwZW5kZW5jaWVzJzogaW50ZXJuYWxQYXRoRGVwZW5kZW5jaWVzLAogICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZXh0ZXJuYWxEZXBlbmRlbmNpZXMuaXNOb3RFbXB0eSwKICAgICdkYXJ0VmVyc2lvbic6IGNvbnRleHQudmFyc1snZGFydFZlcnNpb24nXSwKICAgICdhZGREb2NrZXJmaWxlJzogYWRkRG9ja2VyZmlsZSwKICB9Owp9Cg==", "type": "text" }, { @@ -364,7 +370,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "test/pre_gen_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAnZml4dHVyZXMvcGFja2FnZV9jb25maWdzLmRhcnQnOwppbXBvcnQgJ2ZpeHR1cmVzL3BhY2thZ2VfZ3JhcGhzLmRhcnQnOwppbXBvcnQgJ3B1YnNwZWNfbG9ja3MuZGFydCc7CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9CgpjbGFzcyBfTW9ja0xvZ2dlciBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBMb2dnZXIge30KCmNsYXNzIF9Nb2NrUHJvZ3Jlc3MgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUHJvZ3Jlc3Mge30KCnZvaWQgbWFpbigpIHsKICBncm91cCgncHJlR2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIEZ1dHVyZTxQcm9jZXNzUmVzdWx0PiBzdWNjZXNzUnVuUHJvY2VzcygKICAgICAgZXhlY3V0YWJsZSwKICAgICAgYXJncywgewogICAgICBTdHJpbmc/IHdvcmtpbmdEaXJlY3RvcnksCiAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICB9KSA9PgogICAgICAgIEZ1dHVyZS52YWx1ZShQcm9jZXNzUmVzdWx0KDAsIDAsICcnLCAnJykpOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpCiAgICAgICAgLi52YXJzWydkYXJ0VmVyc2lvbiddID0gJ3N0YWJsZSc7CgogICAgICB3aGVuKCgpID0+IGxvZ2dlci5wcm9ncmVzcyhhbnkoKSkpLnRoZW5SZXR1cm4oX01vY2tQcm9ncmVzcygpKTsKICAgIH0pOwoKICAgIHRlc3QoJ3J1biBjb21wbGV0ZXMnLCAoKSB7CiAgICAgIGV4cGVjdCgKICAgICAgICBFeGl0T3ZlcnJpZGVzLnJ1blpvbmVkKAogICAgICAgICAgKCkgPT4gcHJlX2dlbi5ydW4oX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikpLAogICAgICAgICAgZXhpdDogKF8pIHt9LAogICAgICAgICksCiAgICAgICAgY29tcGxldGVzLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidWlsZFJvdXRlQ29uZmlndXJhdGlvbiB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbignb29wcycpOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IHRocm93IGV4Y2VwdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGV4Y2VwdGlvbi50b1N0cmluZygpKSkuY2FsbGVkKDEpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm91dGUgY29uZmxpY3RzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHsKICAgICAgICAgICcvJzogWwogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2luZGV4JywKICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvX2luZGV4JywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvLmRhcnQnKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoJ3JvdXRlcy9oZWxsby9pbmRleC5kYXJ0Jyl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKCcvaGVsbG8nKX0uJycnLAogICAgICAgICksCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXQoMSkgZm9yIHJvZ3VlIHJvdXRlcycsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogWwogICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgIHJvdXRlOiAnL2hlbGxvJywKICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnJydSb2d1ZSByb3V0ZSBkZXRlY3RlZC4ke2RlZmF1bHRGb3JlZ3JvdW5kLndyYXAoJyAnKX1SZW5hbWUgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvLmRhcnQnKX0gdG8gJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0uJycnLAogICAgICAgICksCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgIH0pOwoKICAgIHRlc3QoJ3dvcmtzIHdpdGggd29ya3NwYWNlcycsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2NvbmZpZy5qc29uJyksCiAgICAgICkKICAgICAgICAuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKQogICAgICAgIC4ud3JpdGVBc1N0cmluZ1N5bmMocGFja2FnZUNvbmZpZ1dpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwZW5kZW5jaWVzKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICcuZGFydF90b29sJywgJ3BhY2thZ2VfZ3JhcGguanNvbicpLAogICAgICApCiAgICAgICAgLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHBhY2thZ2VHcmFwaFdpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwcyk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KcHVibGlzaF90bzogbm9uZQoKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy42LjAKCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2NsaWVudAogIC0gcGFja2FnZXMvcHJvdG9jb2wKICAtIHBhY2thZ2VzL21vZGVscwogIC0gcGFja2FnZXMvc2VydmVyCicnJyk7CiAgICAgIGZpbmFsIHNlcnZlciA9IERpcmVjdG9yeSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdzZXJ2ZXInKSwKICAgICAgKS4uY3JlYXRlU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBzZXJ2ZXIKZGVzY3JpcHRpb246IEEgbmV3IERhcnQgRnJvZyBhcHBsaWNhdGlvbgp2ZXJzaW9uOiAxLjAuMCsxCnB1Ymxpc2hfdG86IG5vbmUKcmVzb2x1dGlvbjogd29ya3NwYWNlCgplbnZpcm9ubWVudDoKICBzZGs6IF4zLjYuMAoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZzogXjEuMS4wCiAgcHJvdG9jb2w6IF4xLjAuMAonJycpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfZ2VuL2RhcnRfZnJvZ19nZW4uZGFydCc7CmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCcKICAgIHNob3cgSG9va0NvbnRleHQsIExvZ2dlciwgUHJvZ3Jlc3MsIGRlZmF1bHRGb3JlZ3JvdW5kLCBsaWdodEN5YW47CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKaW1wb3J0ICcuLi9wcmVfZ2VuLmRhcnQnIGFzIHByZV9nZW47CmltcG9ydCAnZml4dHVyZXMvcGFja2FnZV9jb25maWdzLmRhcnQnOwppbXBvcnQgJ2ZpeHR1cmVzL3BhY2thZ2VfZ3JhcGhzLmRhcnQnOwppbXBvcnQgJ3B1YnNwZWNfbG9ja3MuZGFydCc7CgpjbGFzcyBfRmFrZUhvb2tDb250ZXh0IGV4dGVuZHMgRmFrZSBpbXBsZW1lbnRzIEhvb2tDb250ZXh0IHsKICBfRmFrZUhvb2tDb250ZXh0KHtMb2dnZXI/IGxvZ2dlcn0pIDogX2xvZ2dlciA9IGxvZ2dlciA/PyBfTW9ja0xvZ2dlcigpOwoKICBmaW5hbCBMb2dnZXIgX2xvZ2dlcjsKCiAgdmFyIF92YXJzID0gPFN0cmluZywgZHluYW1pYz57fTsKCiAgQG92ZXJyaWRlCiAgTWFwPFN0cmluZywgZHluYW1pYz4gZ2V0IHZhcnMgPT4gX3ZhcnM7CgogIEBvdmVycmlkZQogIHNldCB2YXJzKE1hcDxTdHJpbmcsIGR5bmFtaWM+IHZhbHVlKSA9PiBfdmFycyA9IHZhbHVlOwoKICBAb3ZlcnJpZGUKICBMb2dnZXIgZ2V0IGxvZ2dlciA9PiBfbG9nZ2VyOwp9CgpjbGFzcyBfTW9ja0xvZ2dlciBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBMb2dnZXIge30KCmNsYXNzIF9Nb2NrUHJvZ3Jlc3MgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUHJvZ3Jlc3Mge30KCnZvaWQgbWFpbigpIHsKICBncm91cCgncHJlR2VuJywgKCkgewogICAgbGF0ZSBIb29rQ29udGV4dCBjb250ZXh0OwogICAgbGF0ZSBMb2dnZXIgbG9nZ2VyOwoKICAgIEZ1dHVyZTxQcm9jZXNzUmVzdWx0PiBzdWNjZXNzUnVuUHJvY2VzcygKICAgICAgZXhlY3V0YWJsZSwKICAgICAgYXJncywgewogICAgICBTdHJpbmc/IHdvcmtpbmdEaXJlY3RvcnksCiAgICAgIGJvb2w/IHJ1bkluU2hlbGwsCiAgICB9KSA9PgogICAgICAgIEZ1dHVyZS52YWx1ZShQcm9jZXNzUmVzdWx0KDAsIDAsICcnLCAnJykpOwoKICAgIHNldFVwKCgpIHsKICAgICAgbG9nZ2VyID0gX01vY2tMb2dnZXIoKTsKICAgICAgY29udGV4dCA9IF9GYWtlSG9va0NvbnRleHQobG9nZ2VyOiBsb2dnZXIpCiAgICAgICAgLi52YXJzWydkYXJ0VmVyc2lvbiddID0gJ3N0YWJsZSc7CgogICAgICB3aGVuKCgpID0+IGxvZ2dlci5wcm9ncmVzcyhhbnkoKSkpLnRoZW5SZXR1cm4oX01vY2tQcm9ncmVzcygpKTsKICAgIH0pOwoKICAgIHRlc3QoJ3J1biBjb21wbGV0ZXMnLCAoKSB7CiAgICAgIGV4cGVjdCgKICAgICAgICBFeGl0T3ZlcnJpZGVzLnJ1blpvbmVkKAogICAgICAgICAgKCkgPT4gcHJlX2dlbi5ydW4oX0Zha2VIb29rQ29udGV4dChsb2dnZXI6IGxvZ2dlcikpLAogICAgICAgICAgZXhpdDogKF8pIHt9LAogICAgICAgICksCiAgICAgICAgY29tcGxldGVzLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBpZiBidWlsZFJvdXRlQ29uZmlndXJhdGlvbiB0aHJvd3MnLCAoKSBhc3luYyB7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGZpbmFsIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbignb29wcycpOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IHRocm93IGV4Y2VwdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgoKSA9PiBsb2dnZXIuZXJyKGV4Y2VwdGlvbi50b1N0cmluZygpKSkuY2FsbGVkKDEpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdCgxKSBmb3Igcm91dGUgY29uZmxpY3RzJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHsKICAgICAgICAgICcvJzogWwogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2luZGV4JywKICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICApLAogICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgbmFtZTogJ2hlbGxvX2luZGV4JywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnJydSb3V0ZSBjb25mbGljdCBkZXRlY3RlZC4gJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvLmRhcnQnKX0gYW5kICR7bGlnaHRDeWFuLndyYXAoJ3JvdXRlcy9oZWxsby9pbmRleC5kYXJ0Jyl9IGJvdGggcmVzb2x2ZSB0byAke2xpZ2h0Q3lhbi53cmFwKCcvaGVsbG8nKX0uJycnLAogICAgICAgICksCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXQoMSkgZm9yIHJvZ3VlIHJvdXRlcycsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogWwogICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgIHJvdXRlOiAnL2hlbGxvJywKICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwoKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnJydSb2d1ZSByb3V0ZSBkZXRlY3RlZC4ke2RlZmF1bHRGb3JlZ3JvdW5kLndyYXAoJyAnKX1SZW5hbWUgJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvLmRhcnQnKX0gdG8gJHtsaWdodEN5YW4ud3JhcCgncm91dGVzL2hlbGxvL2luZGV4LmRhcnQnKX0uJycnLAogICAgICAgICksCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgIH0pOwoKICAgIHRlc3QoJ2V4aXRzKDEpIHdoZW4gdW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCcsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIGZpbmFsIHNlcnZlciA9IERpcmVjdG9yeSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdzZXJ2ZXInKSwKICAgICAgKS4uY3JlYXRlU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBzZXJ2ZXIKZGVzY3JpcHRpb246IEEgbmV3IERhcnQgRnJvZyBhcHBsaWNhdGlvbgp2ZXJzaW9uOiAxLjAuMCsxCnB1Ymxpc2hfdG86IG5vbmUKcmVzb2x1dGlvbjogd29ya3NwYWNlCgplbnZpcm9ubWVudDoKICBzZGs6IF4zLjYuMAoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZzogXjEuMS4wCiAgcHJvdG9jb2w6IF4xLjAuMAonJycpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IHNlcnZlciwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKF8sIF9fKSBhc3luYyB7fSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnVW5hYmxlIHRvIGRldGVybWluZSB3b3Jrc3BhY2Ugcm9vdCBmb3IgJHtzZXJ2ZXIucGF0aH0nLAogICAgICAgICksCiAgICAgICkuY2FsbGVkKDEpOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdleGl0cygxKSB3aGVuIHVuYWJsZSB0byBmaW5kIHBhY2thZ2VfY29uZmlnLmpzb24nLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBfCnB1Ymxpc2hfdG86IG5vbmUKCmVudmlyb25tZW50OgogIHNkazogXjMuNi4wCgp3b3Jrc3BhY2U6CiAgLSBwYWNrYWdlcy9jbGllbnQKICAtIHBhY2thZ2VzL3Byb3RvY29sCiAgLSBwYWNrYWdlcy9tb2RlbHMKICAtIHBhY2thZ2VzL3NlcnZlcgonJycpOwogICAgICBmaW5hbCBzZXJ2ZXIgPSBEaXJlY3RvcnkoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAnc2VydmVyJyksCiAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oc2VydmVyLnBhdGgsICdwdWJzcGVjLnlhbWwnKSwKICAgICAgKS53cml0ZUFzU3RyaW5nU3luYygnJycKbmFtZTogc2VydmVyCmRlc2NyaXB0aW9uOiBBIG5ldyBEYXJ0IEZyb2cgYXBwbGljYXRpb24KdmVyc2lvbjogMS4wLjArMQpwdWJsaXNoX3RvOiBub25lCnJlc29sdXRpb246IHdvcmtzcGFjZQoKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy42LjAKCmRlcGVuZGVuY2llczoKICBkYXJ0X2Zyb2c6IF4xLjEuMAogIHByb3RvY29sOiBeMS4wLjAKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBlcXVhbHMoWzFdKSk7CiAgICAgIHZlcmlmeSgKICAgICAgICAoKSA9PiBsb2dnZXIuZXJyKAogICAgICAgICAgJ1VuYWJsZSB0byBmaW5kIHBhY2thZ2VfY29uZmlnLmpzb24gZm9yICR7ZGlyZWN0b3J5LnBhdGh9JywKICAgICAgICApLAogICAgICApLmNhbGxlZCgxKTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnZXhpdHMoMSkgd2hlbiB1bmFibGUgdG8gZmluZCBwYWNrYWdlX2dyYXBoLmpzb24nLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJy5kYXJ0X3Rvb2wnLCAncGFja2FnZV9jb25maWcuanNvbicpLAogICAgICApCiAgICAgICAgLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHBhY2thZ2VDb25maWdXaXRoRGlyZWN0QW5kVHJhbnNpdGl2ZURlcGVuZGVuY2llcyk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KcHVibGlzaF90bzogbm9uZQoKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy42LjAKCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2NsaWVudAogIC0gcGFja2FnZXMvcHJvdG9jb2wKICAtIHBhY2thZ2VzL21vZGVscwogIC0gcGFja2FnZXMvc2VydmVyCicnJyk7CiAgICAgIGZpbmFsIHNlcnZlciA9IERpcmVjdG9yeSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdzZXJ2ZXInKSwKICAgICAgKS4uY3JlYXRlU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBzZXJ2ZXIKZGVzY3JpcHRpb246IEEgbmV3IERhcnQgRnJvZyBhcHBsaWNhdGlvbgp2ZXJzaW9uOiAxLjAuMCsxCnB1Ymxpc2hfdG86IG5vbmUKcmVzb2x1dGlvbjogd29ya3NwYWNlCgplbnZpcm9ubWVudDoKICBzZGs6IF4zLjYuMAoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZzogXjEuMS4wCiAgcHJvdG9jb2w6IF4xLjAuMAonJycpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IHNlcnZlciwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKF8sIF9fKSBhc3luYyB7fSwKICAgICAgKTsKCiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGVxdWFscyhbMV0pKTsKICAgICAgdmVyaWZ5KAogICAgICAgICgpID0+IGxvZ2dlci5lcnIoCiAgICAgICAgICAnVW5hYmxlIHRvIGZpbmQgcGFja2FnZV9ncmFwaC5qc29uIGZvciAke2RpcmVjdG9yeS5wYXRofScsCiAgICAgICAgKSwKICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3dvcmtzIHdpdGggd29ya3NwYWNlcycsICgpIGFzeW5jIHsKICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFJvdXRlQ29uZmlndXJhdGlvbigKICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICBkaXJlY3RvcmllczogW10sCiAgICAgICAgcm91dGVzOiBbXSwKICAgICAgICByb2d1ZVJvdXRlczogW10sCiAgICAgICAgZW5kcG9pbnRzOiB7fSwKICAgICAgKTsKCiAgICAgIGZpbmFsIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5zeXN0ZW1UZW1wLmNyZWF0ZVRlbXBTeW5jKCk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAnLmRhcnRfdG9vbCcsICdwYWNrYWdlX2NvbmZpZy5qc29uJyksCiAgICAgICkKICAgICAgICAuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKQogICAgICAgIC4ud3JpdGVBc1N0cmluZ1N5bmMocGFja2FnZUNvbmZpZ1dpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwZW5kZW5jaWVzKTsKICAgICAgRmlsZSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICcuZGFydF90b29sJywgJ3BhY2thZ2VfZ3JhcGguanNvbicpLAogICAgICApCiAgICAgICAgLi5jcmVhdGVTeW5jKHJlY3Vyc2l2ZTogdHJ1ZSkKICAgICAgICAuLndyaXRlQXNTdHJpbmdTeW5jKHBhY2thZ2VHcmFwaFdpdGhEaXJlY3RBbmRUcmFuc2l0aXZlRGVwcyk7CiAgICAgIEZpbGUoCiAgICAgICAgcGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJyksCiAgICAgICkud3JpdGVBc1N0cmluZ1N5bmMoJycnCm5hbWU6IF8KcHVibGlzaF90bzogbm9uZQoKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMy42LjAKCndvcmtzcGFjZToKICAtIHBhY2thZ2VzL2NsaWVudAogIC0gcGFja2FnZXMvcHJvdG9jb2wKICAtIHBhY2thZ2VzL21vZGVscwogIC0gcGFja2FnZXMvc2VydmVyCicnJyk7CiAgICAgIGZpbmFsIHNlcnZlciA9IERpcmVjdG9yeSgKICAgICAgICBwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdzZXJ2ZXInKSwKICAgICAgKS4uY3JlYXRlU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMueWFtbCcpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwpuYW1lOiBzZXJ2ZXIKZGVzY3JpcHRpb246IEEgbmV3IERhcnQgRnJvZyBhcHBsaWNhdGlvbgp2ZXJzaW9uOiAxLjAuMCsxCnB1Ymxpc2hfdG86IG5vbmUKcmVzb2x1dGlvbjogd29ya3NwYWNlCgplbnZpcm9ubWVudDoKICBzZGs6IF4zLjYuMAoKZGVwZW5kZW5jaWVzOgogIGRhcnRfZnJvZzogXjEuMS4wCiAgcHJvdG9jb2w6IF4xLjAuMAonJycpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihzZXJ2ZXIucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKCcnJwojIEdlbmVyYXRlZCBieSBwdWIKIyBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9wdWIvZ2xvc3NhcnkjbG9ja2ZpbGUKcGFja2FnZXM6CiAgX2ZlX2FuYWx5emVyX3NoYXJlZDoKICAgIGRlcGVuZGVuY3k6IHRyYW5zaXRpdmUKICAgIGRlc2NyaXB0aW9uOgogICAgICBuYW1lOiBfZmVfYW5hbHl6ZXJfc2hhcmVkCiAgICAgIHNoYTI1NjogZGEwZDkyMDljYTc2YmRlNTc5ZjJkYTMzMGFlYjlkZjYyYjYzMTljODM0ZmE3YmFhZTA1MjAyMWIwNDYyNDAxZgogICAgICB1cmw6ICJodHRwczovL3B1Yi5kZXYiCiAgICBzb3VyY2U6IGhvc3RlZAogICAgdmVyc2lvbjogIjg1LjAuMCIKJycnKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBzZXJ2ZXIsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICAgY29weVBhdGg6IChfLCBfXykgYXN5bmMge30sCiAgICAgICk7CgogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgZGlyZWN0b3J5LmRlbGV0ZShyZWN1cnNpdmU6IHRydWUpLmlnbm9yZSgpOwogICAgfSk7CgogICAgdGVzdCgnd29ya3Mgd2l0aCBleHRlcm5hbCBkZXBlbmRlbmNpZXMnLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICk7CgogICAgICBmaW5hbCBkaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygpOwogICAgICBGaWxlKAogICAgICAgIHBhdGguam9pbihkaXJlY3RvcnkucGF0aCwgJ3B1YnNwZWMubG9jaycpLAogICAgICApLndyaXRlQXNTdHJpbmdTeW5jKGZvb1BhdGgpOwogICAgICBmaW5hbCBleGl0Q2FsbHMgPSA8aW50PltdOwogICAgICBhd2FpdCBwcmVfZ2VuLnByZUdlbigKICAgICAgICBjb250ZXh0LAogICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbjogKF8pID0+IGNvbmZpZ3VyYXRpb24sCiAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICBkaXJlY3Rvcnk6IGRpcmVjdG9yeSwKICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICBjb3B5UGF0aDogKGZyb20sIHRvKSBhc3luYyB7CiAgICAgICAgICBGaWxlKAogICAgICAgICAgICBwYXRoLmpvaW4odG8sICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgICApLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgICB9LAogICAgICApOwoKICAgICAgZXhwZWN0KGV4aXRDYWxscywgaXNFbXB0eSk7CiAgICAgIGRpcmVjdG9yeS5kZWxldGUocmVjdXJzaXZlOiB0cnVlKS5pZ25vcmUoKTsKICAgIH0pOwoKICAgIHRlc3QoJ3JldGFpbnMgaW52b2tlQ3VzdG9tRW50cnlwb2ludCAodHJ1ZSknLCAoKSBhc3luYyB7CiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgbWlkZGxld2FyZTogW10sCiAgICAgICAgZGlyZWN0b3JpZXM6IFtdLAogICAgICAgIHJvdXRlczogW10sCiAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgIGVuZHBvaW50czoge30sCiAgICAgICAgaW52b2tlQ3VzdG9tRW50cnlwb2ludDogdHJ1ZSwKICAgICAgKTsKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CiAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICB2ZXJpZnlOZXZlcigoKSA9PiBsb2dnZXIuZXJyKGFueSgpKSk7CiAgICAgIGV4cGVjdCgKICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgZXF1YWxzKHsKICAgICAgICAgICdkaXJlY3Rvcmllcyc6IDxSb3V0ZURpcmVjdG9yeT5bXSwKICAgICAgICAgICdyb3V0ZXMnOiA8Um91dGVGaWxlPltdLAogICAgICAgICAgJ21pZGRsZXdhcmUnOiA8TWlkZGxld2FyZUZpbGU+W10sCiAgICAgICAgICAnZ2xvYmFsTWlkZGxld2FyZSc6IGZhbHNlLAogICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiBmYWxzZSwKICAgICAgICAgICdpbnZva2VDdXN0b21FbnRyeXBvaW50JzogdHJ1ZSwKICAgICAgICAgICdpbnZva2VDdXN0b21Jbml0JzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICdkYXJ0VmVyc2lvbic6ICdzdGFibGUnLAogICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgIH0pLAogICAgICApOwogICAgfSk7CgogICAgdGVzdCgiZG9uJ3QgY3JlYXRlIHRoZSBkb2NrZXJmaWxlIGlmIG9uZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZm9sZGVyLiIsCiAgICAgICAgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICApOwoKICAgICAgZmluYWwgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LnN5c3RlbVRlbXAuY3JlYXRlVGVtcFN5bmMoKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjLnlhbWwnKSkud3JpdGVBc1N0cmluZ1N5bmMoCiAgICAgICAgJycnCm5hbWU6IGV4YW1wbGUKdmVyc2lvbjogMC4xLjAKZW52aXJvbm1lbnQ6CiAgc2RrOiBeMi4xNy4wCmRlcGVuZGVuY2llczoKICBtYXNvbjogYW55CiAgdGVzdDogYW55CicnJywKICAgICAgKTsKCiAgICAgIEZpbGUocGF0aC5qb2luKGRpcmVjdG9yeS5wYXRoLCAncHVic3BlYy5sb2NrJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgIG5vUGF0aERlcGVuZGVuY2llcywKICAgICAgKTsKICAgICAgRmlsZShwYXRoLmpvaW4oZGlyZWN0b3J5LnBhdGgsICdEb2NrZXJmaWxlJykpLndyaXRlQXNTdHJpbmdTeW5jKAogICAgICAgICcnLAogICAgICApOwoKICAgICAgZmluYWwgZXhpdENhbGxzID0gPGludD5bXTsKICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgY29udGV4dCwKICAgICAgICBidWlsZENvbmZpZ3VyYXRpb246IChfKSA9PiBjb25maWd1cmF0aW9uLAogICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgZGlyZWN0b3J5OiBkaXJlY3RvcnksCiAgICAgICAgcnVuUHJvY2Vzczogc3VjY2Vzc1J1blByb2Nlc3MsCiAgICAgICk7CgogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiBmYWxzZSwKICAgICAgICAgICdoYXNFeHRlcm5hbERlcGVuZGVuY2llcyc6IGZhbHNlLAogICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgJ2RhcnRWZXJzaW9uJzogJ3N0YWJsZScsCiAgICAgICAgICAnYWRkRG9ja2VyZmlsZSc6IGZhbHNlLAogICAgICAgIH0pLAogICAgICApOwogICAgICBkaXJlY3RvcnkuZGVsZXRlKHJlY3Vyc2l2ZTogdHJ1ZSkuaWdub3JlKCk7CiAgICB9KTsKCiAgICB0ZXN0KCdyZXRhaW5zIGludm9rZUN1c3RvbUluaXQgKHRydWUpJywgKCkgYXN5bmMgewogICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gUm91dGVDb25maWd1cmF0aW9uKAogICAgICAgIG1pZGRsZXdhcmU6IFtdLAogICAgICAgIGRpcmVjdG9yaWVzOiBbXSwKICAgICAgICByb3V0ZXM6IFtdLAogICAgICAgIHJvZ3VlUm91dGVzOiBbXSwKICAgICAgICBlbmRwb2ludHM6IHt9LAogICAgICAgIGludm9rZUN1c3RvbUluaXQ6IHRydWUsCiAgICAgICk7CiAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgIGF3YWl0IHByZV9nZW4ucHJlR2VuKAogICAgICAgIGNvbnRleHQsCiAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICBleGl0OiBleGl0Q2FsbHMuYWRkLAogICAgICAgIHJ1blByb2Nlc3M6IHN1Y2Nlc3NSdW5Qcm9jZXNzLAogICAgICApOwogICAgICBleHBlY3QoZXhpdENhbGxzLCBpc0VtcHR5KTsKICAgICAgdmVyaWZ5TmV2ZXIoKCkgPT4gbG9nZ2VyLmVycihhbnkoKSkpOwogICAgICBleHBlY3QoCiAgICAgICAgY29udGV4dC52YXJzLAogICAgICAgIGVxdWFscyh7CiAgICAgICAgICAnZGlyZWN0b3JpZXMnOiA8Um91dGVEaXJlY3Rvcnk+W10sCiAgICAgICAgICAncm91dGVzJzogPFJvdXRlRmlsZT5bXSwKICAgICAgICAgICdtaWRkbGV3YXJlJzogPE1pZGRsZXdhcmVGaWxlPltdLAogICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiBmYWxzZSwKICAgICAgICAgICdzZXJ2ZVN0YXRpY0ZpbGVzJzogZmFsc2UsCiAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgJ2ludm9rZUN1c3RvbUluaXQnOiB0cnVlLAogICAgICAgICAgJ2hhc0V4dGVybmFsRGVwZW5kZW5jaWVzJzogZmFsc2UsCiAgICAgICAgICAncGF0aERlcGVuZGVuY2llcyc6IDxTdHJpbmc+W10sCiAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICdhZGREb2NrZXJmaWxlJzogdHJ1ZSwKICAgICAgICB9KSwKICAgICAgKTsKICAgIH0pOwoKICAgIHRlc3QoCiAgICAgICd1cGRhdGVzIGNvbnRleHQudmFycyB3aGVuIGJ1aWxkUm91dGVDb25maWd1cmF0aW9uIHN1Y2NlZWRzJywKICAgICAgKCkgYXN5bmMgewogICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBSb3V0ZUNvbmZpZ3VyYXRpb24oCiAgICAgICAgICBnbG9iYWxNaWRkbGV3YXJlOiBNaWRkbGV3YXJlRmlsZSgKICAgICAgICAgICAgbmFtZTogJ21pZGRsZXdhcmUnLAogICAgICAgICAgICBwYXRoOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICksCiAgICAgICAgICBtaWRkbGV3YXJlOiBbCiAgICAgICAgICAgIE1pZGRsZXdhcmVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8vbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICBkaXJlY3RvcmllczogWwogICAgICAgICAgICBSb3V0ZURpcmVjdG9yeSgKICAgICAgICAgICAgICBuYW1lOiAnXycsCiAgICAgICAgICAgICAgcm91dGU6ICcvJywKICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXSwKICAgICAgICAgICAgICBmaWxlczogWwogICAgICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgICAgICBuYW1lOiAnaW5kZXgnLAogICAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgICAgIHBhcmFtczogW10sCiAgICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBSb3V0ZUZpbGUoCiAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgcm91dGU6ICcvaGVsbG8nLAogICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgKSwKICAgICAgICAgIF0sCiAgICAgICAgICByb3V0ZXM6IFsKICAgICAgICAgICAgUm91dGVGaWxlKAogICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgcGF0aDogJ2luZGV4LmRhcnQnLAogICAgICAgICAgICAgIHJvdXRlOiAnLycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICBuYW1lOiAnaGVsbG8nLAogICAgICAgICAgICAgIHBhdGg6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICB3aWxkY2FyZDogZmFsc2UsCiAgICAgICAgICAgICksCiAgICAgICAgICBdLAogICAgICAgICAgcm9ndWVSb3V0ZXM6IFtdLAogICAgICAgICAgZW5kcG9pbnRzOiB7CiAgICAgICAgICAgICcvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdpbmRleCcsCiAgICAgICAgICAgICAgICBwYXRoOiAnaW5kZXguZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy8nLAogICAgICAgICAgICAgICAgcGFyYW1zOiBbXSwKICAgICAgICAgICAgICAgIHdpbGRjYXJkOiBmYWxzZSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBdLAogICAgICAgICAgICAnL2hlbGxvJzogWwogICAgICAgICAgICAgIFJvdXRlRmlsZSgKICAgICAgICAgICAgICAgIG5hbWU6ICdoZWxsbycsCiAgICAgICAgICAgICAgICBwYXRoOiAnaGVsbG8uZGFydCcsCiAgICAgICAgICAgICAgICByb3V0ZTogJy9oZWxsbycsCiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLAogICAgICAgICAgICAgICAgd2lsZGNhcmQ6IGZhbHNlLAogICAgICAgICAgICAgICksCiAgICAgICAgICAgIF0sCiAgICAgICAgICB9LAogICAgICAgICAgc2VydmVTdGF0aWNGaWxlczogdHJ1ZSwKICAgICAgICApOwogICAgICAgIGZpbmFsIGV4aXRDYWxscyA9IDxpbnQ+W107CiAgICAgICAgYXdhaXQgcHJlX2dlbi5wcmVHZW4oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uOiAoXykgPT4gY29uZmlndXJhdGlvbiwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgICBydW5Qcm9jZXNzOiBzdWNjZXNzUnVuUHJvY2VzcywKICAgICAgICApOwogICAgICAgIGV4cGVjdChleGl0Q2FsbHMsIGlzRW1wdHkpOwogICAgICAgIHZlcmlmeU5ldmVyKCgpID0+IGxvZ2dlci5lcnIoYW55KCkpKTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBjb250ZXh0LnZhcnMsCiAgICAgICAgICBlcXVhbHMoewogICAgICAgICAgICAnZGlyZWN0b3JpZXMnOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJ25hbWUnOiAnXycsCiAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAnbWlkZGxld2FyZSc6IDxNYXA8U3RyaW5nLCBkeW5hbWljPj5bXSwKICAgICAgICAgICAgICAgICdmaWxlcyc6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2luZGV4JywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnLycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcGFyYW1zJzogY29uc3QgPFN0cmluZz5bXSwKICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdoZWxsby5kYXJ0JywKICAgICAgICAgICAgICAgICAgICAncm91dGUnOiAnL2hlbGxvJywKICAgICAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgICAgICd3aWxkY2FyZCc6IGZhbHNlLAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ3JvdXRlcyc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdpbmRleCcsCiAgICAgICAgICAgICAgICAncGF0aCc6ICdpbmRleC5kYXJ0JywKICAgICAgICAgICAgICAgICdyb3V0ZSc6ICcvJywKICAgICAgICAgICAgICAgICdmaWxlX3BhcmFtcyc6IGNvbnN0IDxTdHJpbmc+W10sCiAgICAgICAgICAgICAgICAnd2lsZGNhcmQnOiBmYWxzZSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICduYW1lJzogJ2hlbGxvJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvLmRhcnQnLAogICAgICAgICAgICAgICAgJ3JvdXRlJzogJy9oZWxsbycsCiAgICAgICAgICAgICAgICAnZmlsZV9wYXJhbXMnOiBjb25zdCA8U3RyaW5nPltdLAogICAgICAgICAgICAgICAgJ3dpbGRjYXJkJzogZmFsc2UsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAnbWlkZGxld2FyZSc6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWxsb19taWRkbGV3YXJlJywKICAgICAgICAgICAgICAgICdwYXRoJzogJ2hlbGxvL21pZGRsZXdhcmUuZGFydCcsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ2dsb2JhbE1pZGRsZXdhcmUnOiB7CiAgICAgICAgICAgICAgJ25hbWUnOiAnbWlkZGxld2FyZScsCiAgICAgICAgICAgICAgJ3BhdGgnOiAnbWlkZGxld2FyZS5kYXJ0JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ3NlcnZlU3RhdGljRmlsZXMnOiB0cnVlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tRW50cnlwb2ludCc6IGZhbHNlLAogICAgICAgICAgICAnaW52b2tlQ3VzdG9tSW5pdCc6IGZhbHNlLAogICAgICAgICAgICAnaGFzRXh0ZXJuYWxEZXBlbmRlbmNpZXMnOiBmYWxzZSwKICAgICAgICAgICAgJ3BhdGhEZXBlbmRlbmNpZXMnOiA8U3RyaW5nPltdLAogICAgICAgICAgICAnZGFydFZlcnNpb24nOiAnc3RhYmxlJywKICAgICAgICAgICAgJ2FkZERvY2tlcmZpbGUnOiB0cnVlLAogICAgICAgICAgfSksCiAgICAgICAgKTsKICAgICAgfSwKICAgICk7CiAgfSk7Cn0K", "type": "text" }, { @@ -400,7 +406,7 @@ final dartFrogProdServerBundle = MasonBundle.fromJson({ { "path": "test/src/disable_workspace_resolution_test.dart", "data": - "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnLmRhcnQnIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1BhY2thZ2VDb25maWcgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUGFja2FnZUNvbmZpZyB7fQoKY2xhc3MgX01vY2tQYWNrYWdlR3JhcGggZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUGFja2FnZUdyYXBoIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgY29uc3QgcGFja2FnZU5hbWUgPSAnc2VydmVyJzsKCiAgICBsYXRlIExpc3Q8aW50PiBleGl0Q2FsbHM7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKICAgIGxhdGUgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnOwogICAgbGF0ZSBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoOwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ25hbWU6ICIkcGFja2FnZU5hbWUiJyk7CiAgICAgIHBhY2thZ2VDb25maWcgPSBfTW9ja1BhY2thZ2VDb25maWcoKTsKICAgICAgcGFja2FnZUdyYXBoID0gX01vY2tQYWNrYWdlR3JhcGgoKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKICAgICAgd2hlbigoKSA9PiBwYWNrYWdlR3JhcGgucm9vdHMpLnRoZW5SZXR1cm4oW3BhY2thZ2VOYW1lXSk7CiAgICAgIHdoZW4oKCkgPT4gcGFja2FnZUdyYXBoLnBhY2thZ2VzKS50aGVuUmV0dXJuKAogICAgICAgIFsKICAgICAgICAgIGNvbnN0IFBhY2thZ2UoCiAgICAgICAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLAogICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFtdLAogICAgICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IFtdLAogICAgICAgICAgICB2ZXJzaW9uOiAnMS4wLjAnLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICApOwogICAgICB3aGVuKCgpID0+IHBhY2thZ2VDb25maWcucGFja2FnZXMpLnRoZW5SZXR1cm4oW10pOwoKICAgICAgYWRkVGVhckRvd24oKCkgPT4gcHJvamVjdERpcmVjdG9yeS5kZWxldGUoKS5pZ25vcmUoKSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjX292ZXJyaWRlcy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDIpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3RXaGVyZSgKICAgICAgICAgIChwKSA9PiBwYXRoLmJhc2VuYW1lKHAucGF0aCkgPT0gJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnLAogICAgICAgICkgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoge30KJycnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDIpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3RXaGVyZSgKICAgICAgICAgIChwKSA9PiBwYXRoLmJhc2VuYW1lKHAucGF0aCkgPT0gJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnLAogICAgICAgICkgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHBhY2thZ2VDb25maWc6IHBhY2thZ2VDb25maWcsCiAgICAgICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIHdvcmtzcGFjZVJvb3Q6IHJvb3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgyKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", + "aW1wb3J0ICdkYXJ0OmlvJzsKCmltcG9ydCAncGFja2FnZTpkYXJ0X2Zyb2dfcHJvZF9zZXJ2ZXJfaG9va3MvZGFydF9mcm9nX3Byb2Rfc2VydmVyX2hvb2tzLmRhcnQnOwppbXBvcnQgJ3BhY2thZ2U6bWFzb24vbWFzb24uZGFydCc7CmltcG9ydCAncGFja2FnZTptb2NrdGFpbC9tb2NrdGFpbC5kYXJ0JzsKaW1wb3J0ICdwYWNrYWdlOnBhY2thZ2VfY29uZmlnL3BhY2thZ2VfY29uZmlnLmRhcnQnIGhpZGUgUGFja2FnZTsKaW1wb3J0ICdwYWNrYWdlOnBhdGgvcGF0aC5kYXJ0JyBhcyBwYXRoOwppbXBvcnQgJ3BhY2thZ2U6dGVzdC90ZXN0LmRhcnQnOwoKY2xhc3MgX01vY2tIb29rQ29udGV4dCBleHRlbmRzIE1vY2sgaW1wbGVtZW50cyBIb29rQ29udGV4dCB7fQoKY2xhc3MgX01vY2tMb2dnZXIgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgTG9nZ2VyIHt9CgpjbGFzcyBfTW9ja1BhY2thZ2VDb25maWcgZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUGFja2FnZUNvbmZpZyB7fQoKY2xhc3MgX01vY2tQYWNrYWdlR3JhcGggZXh0ZW5kcyBNb2NrIGltcGxlbWVudHMgUGFja2FnZUdyYXBoIHt9Cgp2b2lkIG1haW4oKSB7CiAgZ3JvdXAoJ2Rpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uJywgKCkgewogICAgY29uc3QgcGFja2FnZU5hbWUgPSAnc2VydmVyJzsKCiAgICBsYXRlIExpc3Q8aW50PiBleGl0Q2FsbHM7CiAgICBsYXRlIEhvb2tDb250ZXh0IGNvbnRleHQ7CiAgICBsYXRlIExvZ2dlciBsb2dnZXI7CiAgICBsYXRlIERpcmVjdG9yeSByb290RGlyZWN0b3J5OwogICAgbGF0ZSBEaXJlY3RvcnkgcHJvamVjdERpcmVjdG9yeTsKICAgIGxhdGUgUGFja2FnZUNvbmZpZyBwYWNrYWdlQ29uZmlnOwogICAgbGF0ZSBQYWNrYWdlR3JhcGggcGFja2FnZUdyYXBoOwoKICAgIHNldFVwKCgpIHsKICAgICAgZXhpdENhbGxzID0gW107CiAgICAgIGNvbnRleHQgPSBfTW9ja0hvb2tDb250ZXh0KCk7CiAgICAgIGxvZ2dlciA9IF9Nb2NrTG9nZ2VyKCk7CiAgICAgIHJvb3REaXJlY3RvcnkgPSBEaXJlY3Rvcnkuc3lzdGVtVGVtcC5jcmVhdGVUZW1wU3luYygncm9vdCcpOwogICAgICBwcm9qZWN0RGlyZWN0b3J5ID0gRGlyZWN0b3J5KAogICAgICAgIHBhdGguam9pbihyb290RGlyZWN0b3J5LnBhdGgsICdwYWNrYWdlcycsICdwcm9qZWN0JyksCiAgICAgICkuLmNyZWF0ZVN5bmMocmVjdXJzaXZlOiB0cnVlKTsKICAgICAgRmlsZShwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlYy55YW1sJykpCiAgICAgICAgICAud3JpdGVBc1N0cmluZ1N5bmMoJ25hbWU6ICIkcGFja2FnZU5hbWUiJyk7CiAgICAgIHBhY2thZ2VDb25maWcgPSBfTW9ja1BhY2thZ2VDb25maWcoKTsKICAgICAgcGFja2FnZUdyYXBoID0gX01vY2tQYWNrYWdlR3JhcGgoKTsKCiAgICAgIHdoZW4oKCkgPT4gY29udGV4dC5sb2dnZXIpLnRoZW5SZXR1cm4obG9nZ2VyKTsKICAgICAgd2hlbigoKSA9PiBwYWNrYWdlR3JhcGgucm9vdHMpLnRoZW5SZXR1cm4oW3BhY2thZ2VOYW1lXSk7CiAgICAgIHdoZW4oKCkgPT4gcGFja2FnZUdyYXBoLnBhY2thZ2VzKS50aGVuUmV0dXJuKAogICAgICAgIFsKICAgICAgICAgIGNvbnN0IFBhY2thZ2VHcmFwaFBhY2thZ2UoCiAgICAgICAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLAogICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFtdLAogICAgICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IFtdLAogICAgICAgICAgICB2ZXJzaW9uOiAnMS4wLjAnLAogICAgICAgICAgKSwKICAgICAgICBdLAogICAgICApOwogICAgICB3aGVuKCgpID0+IHBhY2thZ2VDb25maWcucGFja2FnZXMpLnRoZW5SZXR1cm4oW10pOwoKICAgICAgYWRkVGVhckRvd24oKCkgPT4gcHJvamVjdERpcmVjdG9yeS5kZWxldGUoKS5pZ25vcmUoKSk7CiAgICB9KTsKCiAgICBncm91cCgnd2hlbiBwdWJzcGVjX292ZXJyaWRlcy55YW1sIGRvZXMgbm90IGV4aXN0JywgKCkgewogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDIpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3RXaGVyZSgKICAgICAgICAgIChwKSA9PiBwYXRoLmJhc2VuYW1lKHAucGF0aCkgPT0gJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnLAogICAgICAgICkgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygnJycKcmVzb2x1dGlvbjogbnVsbApkZXBlbmRlbmN5X292ZXJyaWRlczoge30KJycnKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHB1YnNwZWNfb3ZlcnJpZGVzLnlhbWwgZXhpc3RzJywgKCkgewogICAgICBjb25zdCBvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50ID0gJycnCmRlcGVuZGVuY3lfb3ZlcnJpZGVzOgogIGZvbzoKICAgIHBhdGg6IC4vcGF0aC90by9mb28nJyc7CgogICAgICBzZXRVcCgoKSB7CiAgICAgICAgRmlsZSgKICAgICAgICAgIHBhdGguam9pbihwcm9qZWN0RGlyZWN0b3J5LnBhdGgsICdwdWJzcGVjX292ZXJyaWRlcy55YW1sJyksCiAgICAgICAgKS53cml0ZUFzU3RyaW5nU3luYyhvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50KTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdhZGRzIHJlc29sdXRpb246IG51bGwnLCAoKSB7CiAgICAgICAgZGlzYWJsZVdvcmtzcGFjZVJlc29sdXRpb24oCiAgICAgICAgICBjb250ZXh0LAogICAgICAgICAgcGFja2FnZUNvbmZpZzogcGFja2FnZUNvbmZpZywKICAgICAgICAgIHBhY2thZ2VHcmFwaDogcGFja2FnZUdyYXBoLAogICAgICAgICAgcHJvamVjdERpcmVjdG9yeTogcHJvamVjdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgd29ya3NwYWNlUm9vdDogcm9vdERpcmVjdG9yeS5wYXRoLAogICAgICAgICAgZXhpdDogZXhpdENhbGxzLmFkZCwKICAgICAgICApOwogICAgICAgIGZpbmFsIGNvbnRlbnRzID0gcHJvamVjdERpcmVjdG9yeS5saXN0U3luYygpOwogICAgICAgIGV4cGVjdChjb250ZW50cywgaGFzTGVuZ3RoKDIpKTsKICAgICAgICBmaW5hbCBwdWJzcGVjT3ZlcnJpZGVzID0gY29udGVudHMuZmlyc3RXaGVyZSgKICAgICAgICAgIChwKSA9PiBwYXRoLmJhc2VuYW1lKHAucGF0aCkgPT0gJ3B1YnNwZWNfb3ZlcnJpZGVzLnlhbWwnLAogICAgICAgICkgYXMgRmlsZTsKICAgICAgICBleHBlY3QoCiAgICAgICAgICBwdWJzcGVjT3ZlcnJpZGVzLnJlYWRBc1N0cmluZ1N5bmMoKSwKICAgICAgICAgIGVxdWFscygKICAgICAgICAgICAgJycnCiRvcmlnaW5hbFB1YnNwZWNPdmVycmlkZXNDb250ZW50CnJlc29sdXRpb246IG51bGwKJycnLAogICAgICAgICAgKSwKICAgICAgICApOwogICAgICB9KTsKICAgIH0pOwoKICAgIGdyb3VwKCd3aGVuIHVuYWJsZSB0byByZWFkIHB1YnNwZWNfb3ZlcnJpZGVzJywgKCkgewogICAgICBzZXRVcCgoKSB7CiAgICAgICAgZmluYWwgcHVic3BlY092ZXJyaWRlcyA9IEZpbGUoCiAgICAgICAgICBwYXRoLmpvaW4ocHJvamVjdERpcmVjdG9yeS5wYXRoLCAncHVic3BlY19vdmVycmlkZXMueWFtbCcpLAogICAgICAgICkuLmNyZWF0ZVN5bmMoKTsKICAgICAgICBQcm9jZXNzLnJ1blN5bmMoJ2NobW9kJywgWycwMDAnLCBwdWJzcGVjT3ZlcnJpZGVzLnBhdGhdKTsKICAgICAgfSk7CgogICAgICB0ZXN0KCdleGl0cyB3aXRoIGVycm9yJywgKCkgewogICAgICAgIGRpc2FibGVXb3Jrc3BhY2VSZXNvbHV0aW9uKAogICAgICAgICAgY29udGV4dCwKICAgICAgICAgIHBhY2thZ2VDb25maWc6IHBhY2thZ2VDb25maWcsCiAgICAgICAgICBwYWNrYWdlR3JhcGg6IHBhY2thZ2VHcmFwaCwKICAgICAgICAgIHByb2plY3REaXJlY3Rvcnk6IHByb2plY3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIHdvcmtzcGFjZVJvb3Q6IHJvb3REaXJlY3RvcnkucGF0aCwKICAgICAgICAgIGV4aXQ6IGV4aXRDYWxscy5hZGQsCiAgICAgICAgKTsKICAgICAgICBmaW5hbCBjb250ZW50cyA9IHByb2plY3REaXJlY3RvcnkubGlzdFN5bmMoKTsKICAgICAgICBleHBlY3QoY29udGVudHMsIGhhc0xlbmd0aCgyKSk7CiAgICAgICAgZXhwZWN0KGV4aXRDYWxscywgZXF1YWxzKFsxXSkpOwogICAgICAgIHZlcmlmeSgKICAgICAgICAgICgpID0+IGxvZ2dlci5lcnIoYW55KHRoYXQ6IGNvbnRhaW5zKCdQZXJtaXNzaW9uIGRlbmllZCcpKSksCiAgICAgICAgKS5jYWxsZWQoMSk7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7Cn0K", "type": "text" }, {