Version 2.14.0-178.0.dev
Merge commit 'df8ad694055f1952737b47bd108dd2c61554412b' into 'dev'
diff --git a/benchmarks/StringPool/dart/StringPool.dart b/benchmarks/StringPool/dart/StringPool.dart
new file mode 100644
index 0000000..10a171d
--- /dev/null
+++ b/benchmarks/StringPool/dart/StringPool.dart
@@ -0,0 +1,137 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:benchmark_harness/benchmark_harness.dart';
+
+import 'version1a.dart';
+import 'version1b.dart';
+import 'version2.dart';
+
+// ## Organization
+//
+// version1a.dart is the same version1b.dart except for renaming of functions.
+//
+// Both contain the same ~1500 distinct large string literals. An application
+// will be smaller if compiled with sharing of the string constant values
+// between the corresponding functions in version1a.dart and version1b.dart.
+//
+// version2.dart has the same general pattern as version1{a,b}.dart, but with
+// unique string literals. As these literals have only one occurrence in the
+// program, they will not be pooled for access from multiple functions.
+//
+// StringPool100.dart is a separate benchmark program that, after tree-shaking,
+// has a 'small' string pool of ~100 strings rather than the ~1500 strings in
+// this file. This has to be a separate program since the string pool generated
+// by dart2js is for the whole-program (or whole deferred fragment).
+//
+// ## Interpretation
+//
+// Displayed results are normalized by the number of String literals accessed.
+//
+// StringPool.N.pooled uses N strings from the string pool.
+// StringPool.N.unpooled uses N strings without string pooling.
+//
+// Comparing StringPool.1500.{pooled,unpooled} gives an indication of the cost
+// of a large string pool.
+//
+// Comparing StringPool.100.{pooled,unpooled} gives an indication of the cost
+// of a small string pool.
+//
+// Comparing StringPool.{100,1500}.pooled gives an indication of the cost
+// of a large string pool compared to a small string pool.
+
+const kStringLiteralsPerRun = 100000;
+
+typedef Gen = List<String> Function(String);
+
+abstract class StringPoolBase extends BenchmarkBase {
+ StringPoolBase(String name) : super('StringPool.$name');
+
+ // A list of functions that generate a list of strings.
+ List<Gen> get functions;
+
+ // The input list of generators is padded to a fixed length with one of the
+ // generators.
+ List<Gen> get _functions => __functions ?? complete(List.of(functions), 50);
+ List<Gen>? __functions;
+
+ List<Gen> complete(List<Gen> list, int targetLength) {
+ while (list.length != targetLength) {
+ // The List is stretched using the same function so that one function is
+ // similarly hot and potentially JIT-ed in the `.1500.` and `.100.`
+ // benchmarks.
+ list.add(list.first);
+ }
+ return list;
+ }
+
+ @override
+ void run() {
+ int count = 0;
+ LOOP:
+ while (true) {
+ for (final f in _functions) {
+ final result = f(name);
+ sink = result;
+ count += result.length - 1; // First string is parameter
+ if (count >= kStringLiteralsPerRun) break LOOP;
+ }
+ }
+ }
+
+ @override
+ void exercise() {
+ // Run once instead of default 10 times since we do a lot of work in `run`.
+ run();
+ }
+}
+
+class V1 extends StringPoolBase {
+ V1() : super('1500.pooled');
+
+ @override
+ late final functions = version1ax1500();
+}
+
+class V1Copy extends StringPoolBase {
+ V1Copy() : super('1500.pooled.copy');
+
+ @override
+ late final functions = version1bx1500();
+}
+
+class V2 extends StringPoolBase {
+ V2() : super('1500.unpooled');
+
+ @override
+ late final functions = version2x1500();
+}
+
+dynamic sink;
+
+void main() {
+ // Compare results of V1 and V1Copy to ensure both classes and their reachable
+ // functions are in the program.
+ V1()
+ ..setup()
+ ..run()
+ ..run();
+ final sink1a = sink;
+ V1Copy()
+ ..setup()
+ ..run()
+ ..run();
+ final sink1b = sink;
+ if (sink1a.length != sink1b.length) throw StateError('Not same length');
+
+ V2()
+ ..setup()
+ ..run()
+ ..run();
+ final sink2 = sink;
+ if (sink1a.length != sink2.length) throw StateError('Not same length');
+
+ V1().report();
+ V2().report();
+}
diff --git a/benchmarks/StringPool/dart/StringPool100.dart b/benchmarks/StringPool/dart/StringPool100.dart
new file mode 100644
index 0000000..9a1e739
--- /dev/null
+++ b/benchmarks/StringPool/dart/StringPool100.dart
@@ -0,0 +1,56 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// See `StringPool.dart` for comments.
+
+import 'StringPool.dart' show StringPoolBase, sink;
+import 'version1a.dart';
+import 'version1b.dart';
+import 'version2.dart';
+
+class V1 extends StringPoolBase {
+ V1() : super('100.pooled');
+
+ @override
+ late final functions = version1ax100();
+}
+
+class V1Copy extends StringPoolBase {
+ V1Copy() : super('100.pooled.copy');
+
+ @override
+ late final functions = version1bx100();
+}
+
+class V2 extends StringPoolBase {
+ V2() : super('100.unpooled');
+
+ @override
+ late final functions = version2x100();
+}
+
+void main() {
+ // Compare results of V1 and V1Copy to ensure both are in the program.
+ V1()
+ ..setup()
+ ..run()
+ ..run();
+ final sink1a = sink;
+ V1Copy()
+ ..setup()
+ ..run()
+ ..run();
+ final sink1b = sink;
+ if (sink1a.length != sink1b.length) throw StateError('Not same length');
+
+ V2()
+ ..setup()
+ ..run()
+ ..run();
+ final sink2 = sink;
+ if (sink1a.length != sink2.length) throw StateError('Not same length');
+
+ V1().report();
+ V2().report();
+}
diff --git a/benchmarks/StringPool/dart/version1a.dart b/benchmarks/StringPool/dart/version1a.dart
new file mode 100644
index 0000000..ab4fc9c
--- /dev/null
+++ b/benchmarks/StringPool/dart/version1a.dart
@@ -0,0 +1,1619 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// version1a.dart is the same version1b.dart except for renaming of functions.
+
+List<List<String> Function(String)> version1ax1500() {
+ return [
+ _f1,
+ _f2,
+ _f3,
+ _f4,
+ _f5,
+ _f6,
+ _f7,
+ _f8,
+ _f9,
+ _f10,
+ _f11,
+ _f12,
+ _f13,
+ _f14,
+ _f15
+ ];
+}
+
+List<List<String> Function(String)> version1ax100() {
+ return [_f15];
+}
+
+List<String> _f1(String s) {
+ return [
+ s,
+ 'IyMgMi4xNC4wCgojIyMgQ29yZSBsaWJyYXJpZXMKCiMjIyMgYGRhcnQ6YXN5bmNgCgoqIFRoZSB1',
+ 'bmNhdWdodCBlcnJvciBoYW5kbGVycyBvZiBgWm9uZWBzIGFyZSBub3cgcnVuIGluIHRoZSBwYXJl',
+ 'bnQgem9uZQogIG9mIHRoZSB6b25lIHdoZXJlIHRoZXkgd2VyZSBkZWNsYXJlZC4gVGhpcyBwcmV2',
+ 'ZW50cyBhIHRocm93aW5nIGhhbmRsZXIKICBmcm9tIGNhdXNpbmcgYW4gaW5maW5pdGUgbG9vcCBi',
+ 'eSByZXBlYXRlZGx5IHRyaWdnZXJpbmcgaXRzZWxmLgoKIyMjIyBgZGFydDpjb3JlYAoKKiAgIFRo',
+ 'ZSBuYXRpdmUgYERhdGVUaW1lYCBjbGFzcyBub3cgYmV0dGVyIGhhbmRsZXMgbG9jYWwgdGltZSBh',
+ 'cm91bmQKICAgIGRheWxpZ2h0IHNhdmluZyBjaGFuZ2VzIHRoYXQgYXJlIG5vdCBwcmVjaXNlbHkg',
+ 'b25lIGhvdXIuCiAgICAoTm8gY2hhbmdlIG9uIHRoZSBXZWIgd2hpY2ggdXNlcyB0aGUgSmF2YVNj',
+ 'cmlwdCBgRGF0ZWAgb2JqZWN0LikKCiMjIyMgYGRhcnQ6aW9gCgoqICAgQlJFQUtJTkcgQ0hBTkdF',
+ 'IChmb3IgcHJlLW1pZ3JhdGVkIG51bGwgc2FmZSBjb2RlKToKICAgIGBIdHRwQ2xpZW50YCdzIGAu',
+ 'YXV0aGVudGljYXRlYCAgYW5kIGAuYXV0aGVudGljYXRlUHJveHlgIHNldHRlciBjYWxsYmFja3MK',
+ 'ICAgIG11c3Qgbm93IGFjY2VwdCBhIG51bGxhYmxlIGByZWFsbWAgYXJndW1lbnQuCgojIyMjIGBk',
+ 'YXJ0OnR5cGVkX2RhdGFgCgoqICAgKipCUkVBS0lORyBDSEFOR0UqKiAoaHR0cHM6Ly9naXRodWIu',
+ 'Y29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQ1MTE1KQogICAgTW9zdCB0eXBlcyBleHBvc2VkIGJ5',
+ 'IHRoaXMgbGlicmFyeSBjYW4gbm8gbG9uZ2VyIGJlIGV4dGVuZGVkLCBpbXBsZW1lbnRlZAogICAg',
+ 'b3IgbWl4ZWQtaW4uIFRoZSBhZmZlY3RlZCB0eXBlcyBhcmUgYEJ5dGVCdWZmZXJgLCBgVHlwZWRE',
+ 'YXRhYCBhbmQgKmFsbCoKICAgIGl0cyBzdWJjbGFzc2VzLCBgSW50MzJ4NGAsIGBGbG9hdDMyeDRg',
+ 'LCBgRmxvYXQ2NHgyYCBhbmQgYEVuZGlhbmAuCgojIyMjIGBkYXJ0OndlYl9zcWxgCgoqICAgYGRh',
+ 'cnQ6d2ViX3NxbGAgaXMgbWFya2VkIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBh',
+ 'biB1cGNvbWluZwogICAgcmVsZWFzZS4gQWxzbyB0aGUgQVBJIGB3aW5kb3cub3BlbkRhdGFiYXNl',
+ 'YCBpbiBgZGFydDpodG1sYCBpcyBkZXByZWNhdGVkIGFzCiAgICB3ZWxsLgoKICAgIFRoaXMgQVBJ',
+ 'IGFuZCBsaWJyYXJ5IHdhcyBleHBvc2luZyB0aGUgV2ViU1FMIHByb3Bvc2VkIHN0YW5kYXJkLiBU',
+ 'aGUgc3RhbmRhcmQKICAgIHdhcyBhYmFuZG9uZWQgbW9yZSB0aGFuIDUgeWVhcnMgYWdvIGFuZCBp',
+ 'cyBub3Qgc3VwcG9ydGVkIGJ5IG1vc3QgYnJvd3NlcnMuCiAgICBUaGUgYGRhcnQ6d2ViX3NxbGAg',
+ 'bGlicmFyeSBoYXMgYmVlbiBkb2N1bWVudGVkIGFzIHVuc3VwcG9ydGVkIGFuZCBkZXByZWNhdGVk',
+ 'CiAgICBmb3IgbWFueSB5ZWFycyBhcyB3ZWxsIGFuZCBidXQgd2Fzbid0IGFubm90YXRlZCBwcm9w',
+ 'ZXJseSB1bnRpbCBub3cuCiMjIyBEYXJ0IFZNCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQ1',
+ 'MDcxXVtdOiBgRGFydF9OZXdXZWFrUGVyc2lzdGVudEhhbmRsZWAncyBhbmQKICAgIGBEYXJ0X05l',
+ 'd0ZpbmFsaXphYmxlSGFuZGxlYCdzIGBvYmplY3RgIHBhcmFtZXRlciBubyBsb25nZXIgYWNjZXB0',
+ 'cwogICAgYFBvaW50ZXJgcyBhbmQgc3VidHlwZXMgb2YgYFN0cnVjdGAuIEV4cGFuZG9zIG5vIGxv',
+ 'bmdlciBhY2NlcHQKICAgIGBQb2ludGVyYHMgYW5kIHN1YnR5cGVzIG9mIGBTdHJ1Y3Rgcy4KClsj',
+ 'NDUwNzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDUwNzEKCiMj',
+ 'IyBUb29scwoKIyMjIyBEYXJ0IGNvbW1hbmQgbGluZQoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKiog',
+ 'WyM0NjEwMF1bXTogVGhlIHN0YW5kYWxvbmUgYGRhcnQybmF0aXZlYCBoYXMgYmVlbiBtYXJrZWQK',
+ 'ZGVwcmVjYXRlZCwgYW5kIG5vdyBwcmludHMgYSB3YXJuaW5nIG1lc3NhZ2UuIEl0J3MgcmVwbGFj',
+ 'ZW1lbnQgaXMgdGhlIGBkYXJ0CmNvbXBpbGUgZXhlYCBhbmQgYGRhcnQgY29tcGlsZSBhb3Qtc25h',
+ 'cHNob3RgIGNvbW1hbmRzLCB3aGljaCBvZmZlciB0aGUgc2FtZQpmdW5jdGlvbmFsaXR5LiBUaGUg',
+ 'YGRhcnQybmF0aXZlYCB0b29sIHdpbGwgYmUgZGlzY29udGludWVkIChyZW1vdmVkIGZyb20gdGhl',
+ 'CkRhcnQgU0RLKSBpbiBEYXJ0IDIuMTUuCgpodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nk',
+ 'ay9pc3N1ZXMvNDYxMDAKCiogVGhlIGBkYXJ0IGNyZWF0ZWAgY29tbWFuZCBoYXMgYmVlbiB1cGRh',
+ 'dGVkIHRvIGNyZWF0ZSBwcm9qZWN0cyB0aGF0IHVzZSB0aGUgbmV3CiAgJ2NvcmUnIHNldCBvZiBs',
+ 'aW50cyBmcm9tIGBwYWNrYWdlOmxpbnRzYC4gU2VlIGh0dHBzOi8vZGFydC5kZXYvZ28vY29yZS1s',
+ 'aW50cwogIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZXNlIGxpbnRzLgoKIyMjIyBMaW50',
+ 'ZXIKClVwZGF0ZWQgdGhlIExpbnRlciB0byBgMS40LjBgLCB3aGljaCBpbmNsdWRlczoKCi0gYGRp',
+ 'cmVjdGl2ZXNfb3JkZXJpbmdgIG5vdyBjaGVja3Mgb3JkZXJpbmcgb2YgYHBhY2thZ2U6YCBpbXBv',
+ 'cnRzIGluIGNvZGUKICBvdXRzaWRlIHB1YiBwYWNrYWdlcy4KLSBzaW1wbGUgcmVhY2hhYmlsaXR5',
+ 'IGFuYWx5c2lzIGFkZGVkIHRvIGB1c2VfYnVpbGRfY29udGV4dF9zeW5jaHJvbm91c2x5YCB0bwog',
+ 'IHNob3J0LWNpcmN1aXQgYXdhaXQtZGlzY292ZXJ5IGluIHRlcm1pbmF0aW5nIGJsb2Nrcy4KLSBg',
+ 'dXNlX2J1aWxkX2NvbnRleHRfc3luY2hyb25vdXNseWAgdXBkYXRlZCB0byByZWNvZ25pemUgbnVs',
+ 'bGFibGUgdHlwZXMgd2hlbgogIGFjY2Vzc2VkIGZyb20gbGVnYWN5IGxpYnJhcmllcy4KCiMjIyMg',
+ 'UHViCgoqIGBkYXJ0IHB1YiBwdWJsaXNoYCBub3cgcmVzcGVjdHMgYC5wdWJpZ25vcmVgIGZpbGVz',
+ 'IHdpdGggZ2l0aWdub3JlLXN0eWxlIHJ1bGVzLgogYC5naXRpZ25vcmVgIGZpbGVzIGluIHRoZSBy',
+ 'ZXBvIGFyZSBzdGlsbCByZXNwZWN0ZWQgaWYgdGhleSBhcmUgbm90CiAgb3ZlcnJpZGRlbiBieSBh',
+ 'IGAucHViaWdub3JlYCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuCgogIHB1YiBubyBsb25nZXIgcXVl',
+ 'cmllcyBnaXQgZm9yIGxpc3RpbmcgdGhlIGZpbGVzLiBUaGlzIGltcGxpZXM6CiAgKiBDaGVja2Vk',
+ 'IGluIGZpbGVzIHdpbGwgbm93IGJlIGlnbm9yZWQgaWYgdGhleSBhcmUgaW5jbHVkZWQgYnkgYSBg',
+ 'LmdpdGlnbm9yZWAKICAgIHJ1bGUuCiAgKiBHbG9iYWwgaWdub3JlcyBhcmUgbm8gbG9uZ2VyIHRh',
+ 'a2VuIGludG8gYWNjb3VudC4KICAqIEV2ZW4gcGFja2FnZXMgdGhhdCBhcmUgbm90IGluIGdpdCBz',
+ 'b3VyY2UgY29udHJvbCB3aWxsIGhhdmUgdGhlaXIKICAgIGAuZ2l0aWdub3JlYCBmaWxlcyByZXNw',
+ 'ZWN0ZWQuCiAgKiBgLmdpdGlnbm9yZWAgYW5kIGAucHViaWdub3JlYCBpcyBhbHdheXMgY2FzZS1p',
+ 'bnNlbnNpdGl2ZSBvbiBNYWNPcyBhbmQKICAgIFdpbmRvd3MgKGFzIGlzIGRlZmF1bHQgZm9yIGBn',
+ 'aXRgIHJlcG9zaXRvcmllcykuCgoqIE5ldyBmbGFnIGBkYXJ0IHB1YiBkZXBzIC0tanNvbmAgZ2l2',
+ 'ZXMgYSBtYWNoaW5lIHBhcnNhYmxlIG92ZXJ2aWV3IG9mIHRoZQogIGN1cnJlbnQgZGVwZW5kZW5j',
+ 'aWVzLgoqIE5ldyBjb21tYW5kOiBgZGFydCBwdWIgY2FjaGUgY2xlYW5gLiBXaWxsIGRlbGV0ZSBl',
+ 'dmVyeXRoaW5nIGluIHlvdXIgY3VycmVudAogIHB1YiBjYWNoZS4KKiBDb21tYW5kcyByZWxhdGVk',
+ 'IHRvIGEgc2luZ2xlIHBhY2thZ2Ugbm93IHRha2VzIGEgYC0tZGlyZWN0b3J5YCBvcHRpb24gdG8K',
+ 'ICBvcGVyYXRlIG9uIGEgcGFja2FnZSBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IGluc3RlYWQgb2Yg',
+ 'dGhlIHdvcmtpbmcgZGlyZWN0b3J5LgoqIGdpdCBkZXBlbmRlbmNpZXMgd2l0aCBhIHJlbGF0aXZl',
+ 'IHJlcG8gdXJsIHdvdWxkIHByZXZpb3VzbHkgYmUgaW50ZXJwcmV0ZWQKICByZWxhdGl2ZSB0byB0',
+ 'aGUgY3VycmVudCBwYWNrYWdlLCBldmVuIGZvciB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcy4gVGhp',
+ 'cyBub3cKICBmYWlscyBpbnN0ZWFkLgoKKiBQdWIgbm93IHVzZXMgYSBEYXJ0IGxpYnJhcnkgdG8g',
+ 'cmVhZCBhbmQgd3JpdGUgdGFyIGZpbGVzLgogIFRoaXMgc2hvdWxkIGZpeCBzZXZlcmFsIGlzc3Vl',
+ 'cyB3ZSBoYWQgd2l0aCBpbmNvbXBhdGliaWxpdGllcyBiZXR3ZWVuIGRpZmZlcmVudAogIHN5c3Rl',
+ 'bSBgdGFyYHMuCiogYFBVQl9IT1NURURfVVJMYCBjYW4gbm93IGluY2x1ZGUgYSB0cmFpbGluZyBz',
+ 'bGFzaC4KKiBJbmNyZW1lbnRhbCBjb21waWxhdGlvbiBpcyBub3cgdXNlZCBmb3IgY29tcGlsYXRp',
+ 'b24gb2YgZXhlY3V0YWJsZXMgZnJvbQogIGRlcGVuZGVuY2llcyB3aGVuIHVzaW5nIGBkYXJ0IHJ1',
+ 'biA8cGFja2FnZT46PGNvbW1hbmQ+YC4KCiMjIyBMYW5ndWFnZQoKKiAgIEFkZCBhbiB1bnNpZ25l',
+ 'ZCBzaGlmdCByaWdodCBvcGVyYXRvciBgPj4+YC4gUGFkIHdpdGggemVyb2VzLCBpZ25vcmluZyB0',
+ 'aGUKICAgIHNpZ24gYml0LiBPbiB0aGUgd2ViIHBsYXRmb3JtIGBpbnQuPj4+YCBzaGlmdHMgdGhl',
+ 'IGxvdyAzMiBiaXRzIGludGVycHJldGVkCiAgICBhcyBhbiB1bnNpZ25lZCBpbnRlZ2VyLCBzbyBg',
+ 'YSA+Pj4gYmAgZ2l2ZXMgdGhlIHNhbWUgcmVzdWx0IGFzCiAgICBgYS50b1Vuc2lnbmVkKDMyKSA+',
+ 'Pj4gYmAgb24gdGhlIFZNLgoKKiAgIFByaW9yIHRvIERhcnQgMi4xNCwgbWV0YWRhdGEgKGFubm90',
+ 'YXRpb25zKSB3ZXJlIG5vdCBwZXJtaXR0ZWQgdG8gYmUKICAgIHNwZWNpZmllZCB3aXRoIGdlbmVy',
+ 'aWMgdHlwZSBhcmd1bWVudHMuICBUaGlzIHJlc3RyaWN0aW9uIGlzIGxpZnRlZCBpbiBEYXJ0CiAg',
+ 'ICBEYXJ0IDIuMTQuCgogICAgYGBgZGFydAogICAgY2xhc3MgQzxUPiB7CiAgICAgIGNvbnN0IEMo',
+ 'KTsKICAgIH0KICAgIEBDKCk7ICAgICAgLy8gUHJldmlvdXNseSBwZXJtaXR0ZWQuCiAgICBAQzxp',
+ 'bnQ+KCk7IC8vIFByZXZpb3VzbHkgYW4gZXJyb3IsIG5vdyBwZXJtaXR0ZWQuCiAgICBgYGAKCiog',
+ 'ICBQcmlvciB0byBEYXJ0IDIuMTQsIGdlbmVyaWMgZnVuY3Rpb24gdHlwZXMgd2VyZSBub3QgcGVy',
+ 'bWl0dGVkIGFzIGFyZ3VtZW50cwogICAgdG8gZ2VuZXJpYyBjbGFzc2VzIG9yIGZ1bmN0aW9ucywg',
+ 'bm9yIHRvIGJlIHVzZWQgYXMgZ2VuZXJpYyBib3VuZHMuICBUaGlzCiAgICByZXN0cmljdGlvbiBp',
+ 'cyBsaWZ0ZWQgaW4gRGFydCAyLjE0LgoKICAgIGBgYGRhcnQKICAgIFQgd3JhcFdpdGhMb2dnaW5n',
+ 'PFQ+KFQgZikgewogICAgICBpZiAoZiBpcyB2b2lkIEZ1bmN0aW9uPFQ+KFQgeCkpIHsKICAgICAg',
+ 'ICByZXR1cm4gPFM+KFMgeCkgewogICAgICAgICAgcHJpbnQoIkNhbGw6IGY8JFM+KCR4KSIpOwog',
+ 'ICAgICAgICAgdmFyIHIgPSBmPFM+KHgpOwogICAgICAgICAgcHJpbnQoIlJldHVybjogJHgiKTsK',
+ 'ICAgICAgICAgIHJldHVybiByOwogICAgICAgIH0gYXMgVDsKICAgICAgfSAvLyBNb3JlIGNhc2Vz',
+ 'IGhlcmUKICAgICAgcmV0dXJuIGY7CiAgICB9CiAgICB2b2lkIGZvbzxUPihUIHgpIHsKICAgICAg',
+ 'cHJpbnQoIkZvbyEiKTsKICAgIH0KICAgIHZvaWQgbWFpbigpIHsKICAgICAgLy8gUHJldmlvdXNs',
+ 'eSBhbiBlcnJvciwgbm93IHBlcm1pdHRlZC4KICAgICAgdmFyIGYgPSB3cmFwV2l0aExvZ2dpbmc8',
+ 'dm9pZCBGdW5jdGlvbjxUPihUKT4oZm9vKTsKICAgICAgZjxpbnQ+KDMpOwogICAgfQogICAgYGBg',
+ 'CgojIyAyLjEzLjEgLSAyMDIxLTA1LTI1CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0aGF0IGZp',
+ ];
+}
+
+List<String> _f2(String s) {
+ return [
+ s,
+ 'eGVzOgoKKiBpbmNvcnJlY3QgYmVoYXZpb3IgaW4gQ2FzdE1hcCAoaXNzdWUgWyM0NTQ3M11bXSku',
+ 'CiogbWlzc2luZyBudWxsYWJpbGl0eSBmcm9tIHJlY3Vyc2l2ZSB0eXBlIGhpZXJhcmNoaWVzIGlu',
+ 'IEREQyAoaXNzdWUgWyM0NTc2N11bXSkuCgpbIzQ1NDczXTogaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzQ1NDczClsjNDU3NjddOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay9pc3N1ZXMvNDU3NjcKCiMjIDIuMTMuMCAtIDIwMjEtMDUtMTgKCiMjIyBMYW5n',
+ 'dWFnZQoKKiAgICoqVHlwZSBhbGlhc2VzKiogW05vbi1mdW5jdGlvbiB0eXBlIGFsaWFzZXNdW106',
+ 'IFR5cGUgYWxpYXNlcyAobmFtZXMgZm9yCiAgICB0eXBlcyBpbnRyb2R1Y2VkIHZpYSB0aGUgYHR5',
+ 'cGVkZWZgIGtleXdvcmQpIHdlcmUgcHJldmlvdXNseSByZXN0cmljdGVkCiAgICB0byBvbmx5IGlu',
+ 'dHJvZHVjZSBuYW1lcyBmb3IgZnVuY3Rpb24gdHlwZXMuICBJbiB0aGlzIHJlbGVhc2UsIHdlCiAg',
+ 'ICByZW1vdmUgdGhpcyByZXN0cmljdGlvbiBhbmQgYWxsb3cgdHlwZSBhbGlhc2VzIHRvIG5hbWUg',
+ 'YW55IGtpbmQgb2YgdHlwZS4KCiAgICBgYGBkYXJ0CiAgICBpbXBvcnQgJ2RhcnQ6Y29udmVydCc7',
+ 'CgogICAgdHlwZWRlZiBKc29uTWFwID0gTWFwPFN0cmluZywgZHluYW1pYz47CgogICAgSnNvbk1h',
+ 'cCBwYXJzZUpzb25NYXAoU3RyaW5nIGlucHV0KSA9PiBqc29uLmRlY29kZShpbnB1dCkgYXMgSnNv',
+ 'bk1hcDsKICAgIGBgYAoKICAgIEluIGFkZGl0aW9uIHRvIGJlaW5nIHVzYWJsZSBhcyB0eXBlIGFu',
+ 'bm90YXRpb25zLCB0eXBlIGFsaWFzZXMgdGhhdCBuYW1lCiAgICBjbGFzcyB0eXBlcyBjYW4gbm93',
+ 'IGFsc28gYmUgdXNlZCBhbnl3aGVyZSB0aGF0IHRoZSB1bmRlcmx5aW5nIGNsYXNzIGNvdWxkIGJl',
+ 'CiAgICB1c2VkLCBhbGxvd2luZyB0eXBlIGFsaWFzZXMgdG8gYmUgdXNlZCB0byBzYWZlbHkgcmVu',
+ 'YW1lIGV4aXN0aW5nIGNsYXNzZXMuCgogICAgYGBgZGFydAogICAgY2xhc3MgTmV3Q2xhc3NOYW1l',
+ 'PFQ+IHsKICAgICAgIE5ld0NsYXNzTmFtZS5jcmVhdGUoVCB4KTsKICAgICAgIHN0YXRpYyBOZXdD',
+ 'bGFzc05hbWU8VD4gbWtPbmU8VD4oVCB4KSA9PiBOZXdDbGFzc05hbWU8VD4uY3JlYXRlKHgpOwog',
+ 'ICAgIH0KICAgIEBEZXByZWNhdGVkKCJVc2UgTmV3Q2xhc3NOYW1lIGluc3RlYWQiKQogICAgdHlw',
+ 'ZWRlZiBPbGRDbGFzc05hbWU8VD4gPSBOZXdDbGFzc05hbWU8VD47CgogICAgY2xhc3MgTGVnYWN5',
+ 'Q2xhc3MgZXh0ZW5kcyBPbGRDbGFzc05hbWU8aW50PiB7CiAgICAgIExlZ2FjeUNsYXNzKCkgOiBz',
+ 'dXBlci5jcmVhdGUoMyk7CiAgICB9CiAgICBPbGRDbGFzc05hbWU8aW50PiBsZWdhY3lDb2RlKCkg',
+ 'ewogICAgICB2YXIgb25lID0gT2xkQ2xhc3NOYW1lLmNyZWF0ZSgxKTsKICAgICAgdmFyIHR3byA9',
+ 'IE9sZENsYXNzTmFtZS5ta09uZSgyKTsKICAgICAgcmV0dXJuIExlZ2FjeUNsYXNzKCk7CiAgICB9',
+ 'CiAgICBgYGAKCiAgICBUaGUgbmV3IHR5cGUgYWxpYXMgZmVhdHVyZSBpcyBvbmx5IGF2YWlsYWJs',
+ 'ZSBhcyBwYXJ0IG9mIHRoZSAyLjEzIFtsYW5ndWFnZQogICAgdmVyc2lvbl0oaHR0cHM6Ly9kYXJ0',
+ 'LmRldi9ndWlkZXMvbGFuZ3VhZ2UvZXZvbHV0aW9uKS4gIFRvIHVzZSB0aGlzIGZlYXR1cmUsCiAg',
+ 'ICB5b3UgbXVzdCBzZXQgdGhlIGxvd2VyIGJvdW5kIG9uIHRoZSBzZGsgY29uc3RyYWludCBmb3Ig',
+ 'eW91ciBwYWNrYWdlIHRvIDIuMTMKICAgIG9yIGdyZWF0ZXIuCgogICAgW05vbi1mdW5jdGlvbiB0',
+ 'eXBlIGFsaWFzZXNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2xhbmd1YWdlL2Jsb2Iv',
+ 'bWFzdGVyL2FjY2VwdGVkLzIuMTMvbm9uZnVuY3Rpb24tdHlwZS1hbGlhc2VzL2ZlYXR1cmUtc3Bl',
+ 'Y2lmaWNhdGlvbi5tZAoKIyMjIENvcmUgbGlicmFyaWVzCgojIyMjIGBkYXJ0OmNvbGxlY3Rpb25g',
+ 'CgoqICAgVGhlIGBTcGxheVRyZWVNYXBgIHdhcyBjaGFuZ2VkIHRvIGFsbG93IGBudWxsYCBhcyBr',
+ 'ZXkgaWYgdGhlIGBjb21wYXJlYAogICAgZnVuY3Rpb24gYWxsb3dzIGl0LiBJdCBub3cgY2hlY2tz',
+ 'IHRoYXQgYSBuZXcga2V5IGNhbiBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CiAgICB0byB0aGUgYGNv',
+ 'bXBhcmVgIGZ1bmN0aW9uIHdoZW4gdGhlIG1lbWJlciBpcyBhZGRlZCwgKmV2ZW4gaWYgdGhlIG1h',
+ 'cCBpcwogICAgZW1wdHkqIChpbiB3aGljaCBjYXNlIGl0IGp1c3QgY29tcGFyZXMgdGhlIGtleSB0',
+ 'byBpdHNlbGYpLgoKKiAgIFRoZSBgU3BsYXlUcmVlU2V0YCB3YXMgY2hhbmdlZCB0byBjaGVja3Mg',
+ 'dGhhdCBhIG5ldyBlbGVtZW50IGNhbiBiZSB1c2VkIGFzCiAgICBhbiBhcmd1bWVudCB0byB0aGUg',
+ 'YGNvbXBhcmVgIGZ1bmN0aW9uIHdoZW4gdGhlIG1lbWJlciBpcyBhZGRlZCwgKmV2ZW4gaWYgdGhl',
+ 'CiAgICBzZXQgaXMgZW1wdHkqIChpbiB3aGljaCBjYXNlIGl0IGp1c3QgY29tcGFyZXMgdGhlIGVs',
+ 'ZW1lbnQgdG8gaXRzZWxmKS4KCiMjIyMgYGRhcnQ6ZGV2ZWxvcGVyYAoKKiAgIEFkZGVkIGBzZXJ2',
+ 'ZXJXZWJTb2NrZXRVcmlgIHByb3BlcnR5IHRvIGBTZXJ2aWNlUHJvdG9jb2xJbmZvYC4KCiMjIyBE',
+ 'YXJ0IFZNCgojIyMgVG9vbHMKCiMjIyMgQW5hbHl6ZXIKCiogICBTdGF0aWMgYW5hbHlzZXMgd2l0',
+ 'aCAiZXJyb3IiIHNldmVyaXR5IGNhbiBvbmNlIGFnYWluIGJlIGlnbm9yZWQgd2l0aAogICAgY29t',
+ 'bWVudHMgbGlrZSBgLy8gaWdub3JlOiBjb2RlYCBhbmQgYC8vIGlnbm9yZV9mb3JfZmlsZTogY29k',
+ 'ZWAuIFRvIGRlY2xhcmUKICAgIHRoYXQgY2VydGFpbiBhbmFseXNpcyBjb2Rlcywgb3IgY29kZXMg',
+ 'd2l0aCBjZXJ0YWluIHNldmVyaXRpZXMgKCJlcnJvciIsCiAgICAid2FybmluZyIsIGFuZCAiaW5m',
+ 'byIpIGNhbm5vdCBiZSBpZ25vcmVkIHdpdGggc3VjaCBjb21tZW50cywgbGlzdCB0aGVtIGluCiAg',
+ 'ICBgYW5hbHlzaXNfb3B0aW9ucy55YW1sYCwgdW5kZXIgdGhlIGBhbmFseXplcmAgaGVhZGluZywg',
+ 'd2l0aCBhIG5ldyBZQU1MIGtleSwKICAgIGBjYW5ub3QtaWdub3JlYC4gRm9yIGV4YW1wbGUsIHRv',
+ 'IGRlY2xhcmUgdGhhdCAiZXJyb3IiIGNvZGVzIGFuZAogICAgYHVudXNlZF9pbXBvcnRgIGNhbm5v',
+ 'dCBiZSBpZ25vcmVkLCB3cml0ZSB0aGUgZm9sbG93aW5nIGludG8KICAgIGBhbmFseXNpc19vcHRp',
+ 'b25zLnlhbWxgOgoKICAgIGBgYHlhbWwKICAgIGFuYWx5emVyOgogICAgICBjYW5ub3QtaWdub3Jl',
+ 'OgogICAgICAgIC0gZXJyb3IKICAgICAgICAtIHVudXNlZF9pbXBvcnQKICAgIGBgYAoKIyMjIyBk',
+ 'YXJ0IGZvcm1hdAoKKiAgIENvcnJlY3QgY29uc3RydWN0b3IgaW5pdGlhbGl6ZXIgaW5kZW50YXRp',
+ 'b24gYWZ0ZXIgYHJlcXVpcmVkYCBuYW1lZAogICAgcGFyYW1ldGVycy4KCiMjIyMgTGludGVyCgpV',
+ 'cGRhdGVkIHRoZSBMaW50ZXIgdG8gYDEuMi4xYCwgd2hpY2ggaW5jbHVkZXM6CgoqICAgSW1wcm92',
+ 'ZWQgYGl0ZXJhYmxlX2NvbnRhaW5zX3VucmVsYXRlZF90eXBlYCB0byBiZXR0ZXIgc3VwcG9ydCBg',
+ 'TGlzdGAgY29udGVudAogICAgY2hlY2tzLgoqICAgRml4ZWQgYGNhbWVsX2Nhc2VfdHlwZXNgIGFu',
+ 'ZCBgcHJlZmVyX21peGluYCB0byBzdXBwb3J0IG5vbi1mdW5jdGlvbiB0eXBlCiAgICBhbGlhc2Vz',
+ 'LgoqICAgRml4ZWQgYHByZWZlcl9taXhpbmAgdG8gcHJvcGVybHkgbWFrZSBleGNlcHRpb25zIGZv',
+ 'ciBgZGFydC5jb2xsZWN0aW9uYAogICAgbGVnYWN5IG1peGlucy4KKiAgIEFkZGVkIG5ldyBsaW50',
+ 'cyBgYXZvaWRfbXVsdGlwbGVfZGVjbGFyYXRpb25zX3Blcl9saW5lYCwKICAgIGB1c2VfaWZfbnVs',
+ 'bF90b19jb252ZXJ0X251bGxzX3RvX2Jvb2xzYCwgYGRlcHJlY2F0ZWRfY29uc2lzdGVuY3lgLAog',
+ 'ICAgYHVzZV9uYW1lZF9jb25zdGFudHNgLCBgdXNlX2J1aWxkX2NvbnRleHRfc3luY2hyb25vdXNs',
+ 'eWAgKGV4cGVyaW1lbnRhbCkuCiogICBEZXByZWNhdGVkIGBhdm9pZF9hc2AuCiogICBNaWdyYXRl',
+ 'ZCBsaWJyYXJ5IHRvIG51bGwtc2FmZXR5LgoKIyMjIE90aGVyIGxpYnJhcmllcwoKIyMjIyBgcGFj',
+ 'a2FnZTpqc2AKCiogICAqKkJyZWFraW5nIGNoYW5nZToqKiBJdCBpcyBubyBsb25nZXIgdmFsaWQg',
+ 'dG8gdXNlIGBTdHJpbmdgcyB0aGF0IG1hdGNoCiAgICBhbiBgQE5hdGl2ZWAgYW5ub3RhdGlvbiBp',
+ 'biBhbiBgQEpTKClgIGFubm90YXRpb24gZm9yIGEgbm9uLWFub255bW91cyBKUwogICAgaW50ZXJv',
+ 'cCBjbGFzcy4gVGhpcyBsZWQgdG8gZXJyb25lb3VzIGJlaGF2aW9yIGR1ZSB0byB0aGUgd2F5IGlu',
+ 'dGVyY2VwdG9ycwogICAgd29yay4gSWYgeW91IG5lZWQgdG8gd29yayB3aXRoIGEgbmF0aXZlIGNs',
+ 'YXNzLCBwcmVmZXIgYGRhcnQ6aHRtbGAsIGFuCiAgICBgQGFub255bW91c2AgY2xhc3MsIG9yIGBq',
+ 'c191dGlsYC4gU2VlIGlzc3VlIFsjNDQyMTFdW10gZm9yIG1vcmUgZGV0YWlscy4KClsjNDQyMTFd',
+ 'OiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDQyMTEKCiMjIDIuMTIu',
+ 'NCAtIDIwMjEtMDQtMTUKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRoYXQgZml4ZXMgYSBEYXJ0',
+ 'IFZNIGNvbXBpbGVyIGNyYXNoZXMgd2hlbiBjb21waWxpbmcKaW5pdGlhbGl6ZXJzIGNvbnRhaW5p',
+ 'bmcgYXN5bmMgY2xvc3VyZXMgKGlzc3VlIFsjNDUzMDZdW10pLgoKWyM0NTMwNl06IGh0dHBzOi8v',
+ 'Z2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80NTMwNgoKIyMgMi4xMi4zIC0gMjAyMS0w',
+ 'NC0xNAoKVGhpcyBpcyBhIHBhdGNoIHJlbGVhc2UgdGhhdCBmaXhlcyBhIHZ1bG5lcmFiaWxpdHkg',
+ 'aW4gYGRhcnQ6aHRtbGAgcmVsYXRlZCB0bwpET00gY2xvYmJlcmluZy4gU2VlIHRoZSBbdnVsbmVy',
+ 'YWJpbGl0eSBhZHZpc29yeV1bQ1ZFLTIwMjEtMjI1NDBdIGZvciBtb3JlCmRldGFpbHMuIFRoYW5r',
+ 'cyBhZ2FpbiB0byAqKlZpbmNlbnpvIGRpIENpY2NvKiogZm9yIGZpbmRpbmcgYW5kIHJlcG9ydGlu',
+ 'ZyB0aGlzCnZ1bG5lcmFiaWxpdHkuCgpbQ1ZFLTIwMjEtMjI1NDBdOiBodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9zZWN1cml0eS9hZHZpc29yaWVzL0dIU0EtM3Jmdi00anZnLTk1MjIK',
+ 'CiMjIDIuMTIuMiAtIDIwMjEtMDMtMTcKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRoYXQgZml4',
+ 'ZXMgY3Jhc2hlcyByZXBvcnRlZCBieSBGbHV0dGVyIDIgdXNlcnMgKGlzc3VlCltmbHV0dGVyL2Zs',
+ 'dXR0ZXIjNzgxNjddW10pLgoKW2ZsdXR0ZXIvZmx1dHRlciM3ODE2N106IGh0dHBzOi8vZ2l0aHVi',
+ 'LmNvbS9mbHV0dGVyL2ZsdXR0ZXIvaXNzdWVzLzc4MTY3CgojIyAyLjEyLjEgLSAyMDIxLTAzLTEw',
+ 'CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0aGF0IGZpeGVzOgoKKiBhbiB1bmhhbmRsZWQgZXhj',
+ 'ZXB0aW9uIGluIEhUVFBTIGNvbm5lY3Rpb25zIChpc3N1ZSBbIzQ1MDQ3XVtdKS4KKiBhIHR5cGlu',
+ 'ZyBpc3N1ZSBpbiB0aGUgdHlwZWRfZGF0YSBgK2Agb3BlcmF0b3IgKGlzc3VlIFsjNDUxNDBdW10p',
+ 'LgoKWyM0NTA0N106IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80NTA0',
+ 'NwpbIzQ1MTQwXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQ1MTQw',
+ 'CgojIyAyLjEyLjAgLSAyMDIxLTAzLTAzCgojIyMgTGFuZ3VhZ2UKCiogICAqKkJyZWFraW5nIENo',
+ 'YW5nZSoqIFtOdWxsIHNhZmV0eV1bXSBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0IGluIGFsbCBj',
+ 'b2RlCiAgICB0aGF0IGhhcyBub3Qgb3B0ZWQgb3V0LiBXaXRoIG51bGwgc2FmZXR5LCB0eXBlcyBp',
+ ];
+}
+
+List<String> _f3(String s) {
+ return [
+ s,
+ 'biB5b3VyIGNvZGUgYXJlCiAgICBub24tbnVsbGFibGUgYnkgZGVmYXVsdC4gTnVsbCBjYW4gb25s',
+ 'eSBmbG93IGludG8gcGFydHMgb2YgeW91ciBwcm9ncmFtIHdoZXJlCiAgICB5b3Ugd2FudCBpdC4g',
+ 'V2l0aCBudWxsIHNhZmV0eSwgeW91ciBydW50aW1lIG51bGwtZGVyZWZlcmVuY2UgYnVncyB0dXJu',
+ 'IGludG8KICAgIGVkaXQtdGltZSBhbmFseXNpcyBlcnJvcnMuCgogICAgWW91IGNhbiBvcHQgb3V0',
+ 'IG9mIG51bGwgc2FmZXR5IGFuZCBwcmVzZXJ2ZSB5b3VyIGNvZGUncyBwcmV2aW91cyBiZWhhdmlv',
+ 'ciBieQogICAgc2V0dGluZyB0aGUgbG93ZXIgYm91bmQgb2YgdGhlIFNESyBjb25zdHJhaW50IGlu',
+ 'IHlvdXIgcHVic3BlYyB0byAyLjExLjAgb3IKICAgIGVhcmxpZXIgdG8gcmVxdWVzdCBhbiBlYXJs',
+ 'aWVyIFtsYW5ndWFnZSB2ZXJzaW9uXVtdLiBZb3UgY2FuIG9wdCBvdXQKICAgIGluZGl2aWR1YWwg',
+ 'RGFydCBmaWxlcyBieSBhZGRpbmcgYC8vIEBkYXJ0PTIuMTFgIHRvIHRoZSBiZWdpbm5pbmcgb2Yg',
+ 'dGhlCiAgICBmaWxlLgoKICAgIEZpbGVzIHRoYXQgYXJlIG9wdGVkIGluIHRvIG51bGwgc2FmZXR5',
+ 'IG1heSByZXBvcnQgbmV3IGNvbXBpbGUtdGltZSBlcnJvcnMuCiAgICBPcHRpbmcgaW4gdG8gbnVs',
+ 'bCBzYWZldHkgYWxzbyBnaXZlcyB5b3UgYWNjZXNzIHRvIG90aGVyIG5ldyBsYW5ndWFnZQogICAg',
+ 'ZmVhdHVyZXM6CgogICAgKiAgIFNtYXJ0ZXIgZmxvdyBhbmFseXNpcyBhbmQgdHlwZSBwcm9tb3Rp',
+ 'b24KICAgICogICBgcmVxdWlyZWRgIG5hbWVkIHBhcmFtZXRlcnMKICAgICogICBgbGF0ZWAgdmFy',
+ 'aWFibGVzCiAgICAqICAgVGhlIHBvc3RmaXggYCFgIG51bGwgYXNzZXJ0aW9uIG9wZXJhdG9yCiAg',
+ 'ICAqICAgVGhlIGA/Li5gIGFuZCBgP1tdYCBudWxsLWF3YXJlIG9wZXJhdG9ycwoKKiAgICoqQnJl',
+ 'YWtpbmcgQ2hhbmdlKiogWyM0NDY2MF1bXTogRml4ZWQgYW4gaW1wbGVtZW50YXRpb24gYnVnIHdo',
+ 'ZXJlIGB0aGlzYAogICAgd291bGQgc29tZXRpbWVzIHVuZGVyZ28gdHlwZSBwcm9tb3Rpb24gaW4g',
+ 'ZXh0ZW5zaW9ucy4KCltudWxsIHNhZmV0eV06IGh0dHBzOi8vZGFydC5kZXYvbnVsbC1zYWZldHkv',
+ 'dW5kZXJzdGFuZGluZy1udWxsLXNhZmV0eQpbbGFuZ3VhZ2UgdmVyc2lvbl06IGh0dHBzOi8vZGFy',
+ 'dC5kZXYvZ3VpZGVzL2xhbmd1YWdlL2V2b2x1dGlvbiNsYW5ndWFnZS12ZXJzaW9uaW5nClsjNDQ2',
+ 'NjBdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDQ2NjAKCiMjIyBD',
+ 'b3JlIGxpYnJhcmllcwoKIyMjIyBgZGFydDphc3luY2AKCiogICBBZGQgZXh0ZW5zaW9uIG1ldGhv',
+ 'ZCBgb25FcnJvcigpYCBvbiBgRnV0dXJlYCB0byBhbGxvdyBiZXR0ZXIgdHlwaW5nIG9mIGVycm9y',
+ 'CiAgICBjYWxsYmFja3MuCgojIyMjIGBkYXJ0OmNvbGxlY3Rpb25gCgoqICAgQWRkIGBVbm1vZGlm',
+ 'aWFibGVTZXRWaWV3YCBjbGFzcywgd2hpY2ggYWxsb3dzIHVzZXJzIHRvIGd1YXJhbnRlZSB0aGF0',
+ 'CiAgICBtZXRob2RzIHRoYXQgY291bGQgY2hhbmdlIHVuZGVybHlpbmcgYFNldGAgaW5zdGFuY2Ug',
+ 'Y2FuIG5vdCBiZSBpbnZva2VkLgoKKiAgIE1ha2UgaXQgZXhwbGljaXQgdGhhdCBgTGlua2VkTGlz',
+ 'dGAgY29tcGFyZXMgZWxlbWVudHMgYnkgaWRlbnRpdHksIGFuZCB1cGRhdGUKICAgIGBjb250YWlu',
+ 'cygpYCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzLgoKIyMjIyBgZGFydDpjb3JlYAoKKiAgIEFk',
+ 'ZCBgU2V0LnVubW9kaWZpYWJsZSgpYCBjb25zdHJ1Y3Rvciwgd2hpY2ggYWxsb3dzIHVzZXJzIHRv',
+ 'IGNyZWF0ZQogICAgdW5tb2RpZmlhYmxlIGBTZXRgIGluc3RhbmNlcy4KCiMjIyMgYGRhcnQ6aW9g',
+ 'CgoqICAgYEh0dHBSZXF1ZXN0YCBub3cgY29ycmVjdGx5IGZvbGxvd3MgSFRUUCAzMDggcmVkaXJl',
+ 'Y3RzCiAgICAoYEh0dHBTdGF0dXMucGVybWFuZW50UmVkaXJlY3RgKS4KCiMjIyMgYGRhcnQ6aXNv',
+ 'bGF0ZWAKCiogICBBZGQgYGRlYnVnTmFtZWAgcG9zaXRpb25hbCBwYXJhbWV0ZXIgdG8gYFJlY2Vp',
+ 'dmVQb3J0YCBhbmQgYFJhd1JlY2VpdmVQb3J0YAogICAgY29uc3RydWN0b3JzLCBhIG5hbWUgd2hp',
+ 'Y2ggY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9ydCBhbmQgZGlzcGxheWVkIGluCiAgICB0',
+ 'b29saW5nLgoKIyMjIyBgZGFydDpodG1sYAoKKiAgIGBFdmVudFN0cmVhbVN1YnNjcmlwdGlvbi5j',
+ 'YW5jZWxgIGhhcyBiZWVuIHVwZGF0ZWQgdG8gcmV0YWluIGl0cyBzeW5jaHJvbm91cwogICAgdGlt',
+ 'aW5nIHdoZW4gcnVubmluZyBpbiBib3RoIHNvdW5kIGFuZCB1bnNvdW5kIG51bGwgc2FmZXR5IG1v',
+ 'ZGVzLiBTZWUgaXNzdWUKICAgIFsjNDQxNTddW10gZm9yIG1vcmUgZGV0YWlscy4KClsjNDQxNTdd',
+ 'OiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDQxNTcKCiMjIyBEYXJ0',
+ 'IFZNCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQyMzEyXVtdOiBgRGFydF9XZWFrUGVyc2lz',
+ 'dGVudEhhbmRsZWBzIG5vIGxvbmdlcgogICAgYXV0by1kZWxldGUgdGhlbXNlbHZlcyB3aGVuIHRo',
+ 'ZSByZWZlcmVuY2VkIG9iamVjdCBpcyBnYXJiYWdlIGNvbGxlY3RlZCB0bwogICAgYXZvaWQgcmFj',
+ 'ZSBjb25kaXRpb25zLCBidXQgdGhleSBhcmUgc3RpbGwgYXV0b21hdGljYWxseSBkZWxldGVkIHdo',
+ 'ZW4gdGhlCiAgICBpc29sYXRlIGdyb3VwIHNodXRzIGRvd24uCgoqICAgKipCcmVha2luZyBDaGFu',
+ 'Z2UqKiBbIzQyMzEyXVtdOiBgRGFydF9XZWFrUGVyc2lzdGVudEhhbmRsZUZpbmFsaXplcmAKICAg',
+ 'IGlzIHJlbmFtZWQgdG8gYERhcnRfSGFuZGxlRmluYWxpemVyYCBhbmQgaGFkIGl0cyBgaGFuZGxl',
+ 'YCBhcmd1bWVudCByZW1vdmVkLgogICAgQWxsIEFQSSBmdW5jdGlvbnMgdXNpbmcgdGhhdCB0eXBl',
+ 'IGhhdmUgYmVlbiB1cGRhdGVkLgoKWyM0MjMxMl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxh',
+ 'bmcvc2RrL2lzc3Vlcy80MjMxMgoKIyMjIEZvcmVpZ24gRnVuY3Rpb24gSW50ZXJmYWNlIChgZGFy',
+ 'dDpmZmlgKQoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKiogWyM0NDYyMV1bXTogSW52b2NhdGlvbnMg',
+ 'd2l0aCBhIGdlbmVyaWMgYFRgIG9mCiAgICBgc2l6ZU9mPFQ+YCwgYFBvaW50ZXI8VD4uZWxlbWVu',
+ 'dEF0KClgLCBgUG9pbnRlcjxUIGV4dGVuZHMgU3RydWN0Pi5yZWZgLCBhbmQKICAgIGBQb2ludGVy',
+ 'PFQgZXh0ZW5kcyBTdHJ1Y3Q+W11gIGFyZSBiZWluZyBkZXByZWNhdGVkIGluIHRoZSBjdXJyZW50',
+ 'IHN0YWJsZQogICAgcmVsZWFzZSAoMi4xMiksIGFuZCBhcmUgcGxhbm5lZCB0byBiZSBmdWxseSBy',
+ 'ZW1vdmVkIGluIHRoZSBmb2xsb3dpbmcgc3RhYmxlCiAgICByZWxlYXNlICgyLjEzKS4gQ29uc2Vx',
+ 'dWVudGx5LCBgYWxsb2NhdGVgIGluIGBwYWNrYWdlOmZmaWAgd2lsbCBubyBsb25nZXIgYmUKICAg',
+ 'IGFibGUgdG8gaW52b2tlIGBzaXplT2Y8VD5gIGdlbmVyaWNhbGx5LCBhbmQgd2lsbCBiZSBkZXBy',
+ 'ZWNhdGVkIGFzIHdlbGwuCiAgICBJbnN0ZWFkLCB0aGUgYEFsbG9jYXRvcmAgaXQgaXMgaW50cm9k',
+ 'dWNlZCB0byBgZGFydDpmZmlgLCBhbmQgYWxzbyByZXF1aXJlcwogICAgYSBjb25zdGFudCBgVGAg',
+ 'b24gaW52b2NhdGlvbnMuIEZvciBtaWdyYXRpb24gbm90ZXMgc2VlIHRoZSBicmVha2luZyBjaGFu',
+ 'Z2UKICAgIHJlcXVlc3QuCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQ0NjIyXVtdOiBTdWJ0',
+ 'eXBlcyBvZiBgU3RydWN0YCB3aXRob3V0IGFueSBuYXRpdmUKICAgIG1lbWJlciBhcmUgYmVpbmcg',
+ 'ZGVwcmVjYXRlZCBpbiB0aGUgY3VycmVudCBzdGFibGUgcmVsZWFzZSAoMi4xMiksIGFuZCBhcmUK',
+ 'ICAgIHBsYW5uZWQgdG8gYmUgZnVsbHkgcmVtb3ZlZCBpbiB0aGUgZm9sbG93aW5nIHN0YWJsZSBy',
+ 'ZWxlYXNlICgyLjEzKS4KICAgIE1pZ3JhdGUgb3BhcXVlIHR5cGVzIHRvIGV4dGVuZCBgT3BhcXVl',
+ 'YCByYXRoZXIgdGhhbiBgU3RydWN0YC4KClsjNDQ2MjFdOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay9pc3N1ZXMvNDQ2MjEKWyM0NDYyMl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy80NDYyMgoKIyMjIERhcnQySlMKCiogICBSZW1vdmUgYC0tbm8tZGVm',
+ 'ZXItY2xhc3MtdHlwZXNgIGFuZCBgLS1uby1uZXctZGVmZXJyZWQtc3BsaXRgLgoKIyMjIFRvb2xz',
+ 'CgojIyMjIEFuYWx5emVyCgoqICAgUmVtb3ZlIHRoZSBgLS11c2UtZmFzdGEtcGFyc2VyYCwgYC0t',
+ 'cHJldmlldy1kYXJ0LTJgLCBhbmQKICAgIGAtLWVuYWJsZS1hc3NlcnQtaW5pdGlhbGl6ZXJzYCBj',
+ 'b21tYW5kIGxpbmUgb3B0aW9ucy4gVGhlc2Ugb3B0aW9ucyBoYXZlbid0CiAgICBiZWVuIHN1cHBv',
+ 'cnRlZCBpbiBhIHdoaWxlIGFuZCB3ZXJlIG5vLW9wcy4KCiogICBSZXBvcnQgZGlhZ25vc3RpY3Mg',
+ 'cmVnYXJkaW5nIHRoZQogICAgW2BAaW50ZXJuYWxgXShodHRwczovL3B1Yi5kZXYvZG9jdW1lbnRh',
+ 'dGlvbi9tZXRhL2xhdGVzdC9tZXRhL2ludGVybmFsLWNvbnN0YW50Lmh0bWwpCiAgICBhbm5vdGF0',
+ 'aW9uLgoKKiAgIEltcHJvdmUgZGlhZ25vc3RpYy1yZXBvcnRpbmcgcmVnYXJkaW5nIHRoZQogICAg',
+ 'W2BAZG9Ob3RTdG9yZWBdKGh0dHBzOi8vcHViLmRldi9kb2N1bWVudGF0aW9uL21ldGEvbGF0ZXN0',
+ 'L21ldGEvZG9Ob3RTdG9yZS1jb25zdGFudC5odG1sKQogICAgYW5ub3RhdGlvbi4KCiogICBJbnRy',
+ 'b2R1Y2UgYSBkaWFnbm9zdGljIHdoaWNoIGlzIHJlcG9ydGVkIHdoZW4gYSBsaWJyYXJ5IG1lbWJl',
+ 'ciBuYW1lZCBgbWFpbmAKICAgIGlzIG5vdCBhIGZ1bmN0aW9uLgoKKiAgIEludHJvZHVjZSBhIGRp',
+ 'YWdub3N0aWMgd2hpY2ggaXMgcmVwb3J0ZWQgd2hlbiBhIGBtYWluYCBmdW5jdGlvbidzIGZpcnN0',
+ 'CiAgICBwYXJhbWV0ZXIgaXMgbm90IGEgc3VwZXJ0eXBlIG9mIGBMaXN0PFN0cmluZz5gLgoKKiAg',
+ 'IEludHJvZHVjZSBkaWFnbm9zdGljcyBmb3Igd2hlbiBhbiBgLy8gaWdub3JlYCBjb21tZW50IGNv',
+ 'bnRhaW5zIGFuIGVycm9yIGNvZGUKICAgIHdoaWNoIGlzIG5vdCBiZWluZyByZXBvcnRlZCwgY2Fu',
+ 'bm90IGJlIGlnbm9yZWQsIG9yIGlzIGFscmVhZHkgYmVpbmcgaWdub3JlZC4KCiogICBSZXBvcnQg',
+ 'ZGlhZ25vc3RpY3Mgd2hlbiB1c2luZwogICAgW2BAdmlzaWJsZUZvclRlc3RpbmdgXShodHRwczov',
+ 'L3B1Yi5kZXYvZG9jdW1lbnRhdGlvbi9tZXRhL2xhdGVzdC9tZXRhLwogICAgdmlzaWJsZUZvclRl',
+ 'c3RpbmctY29uc3RhbnQuaHRtbCkgb24gdG9wLWxldmVsIHZhcmlhYmxlcy4KCiogICBGaXggZmFs',
+ 'c2UgcG9zaXRpdmUgcmVwb3J0cyBvZiAidW51c2VkIGVsZW1lbnQiIGZvciB0b3AtbGV2ZWwgc2V0',
+ 'dGVycyBhbmQKICAgIGdldHRlcnMuCgoqICAgRml4IGZhbHNlIHBvc2l0aXZlIHJlcG9ydHMgcmVn',
+ 'YXJkaW5nIGBAZGVwcmVjYXRlZGAgZmllbGQgZm9ybWFsIHBhcmFtZXRlcnMKICAgIGF0IHRoZWly',
+ 'IGRlY2xhcmF0aW9uLgoKKiAgIEZvciBudWxsIHNhZmV0eSwgaW50cm9kdWNlIGEgZGlhZ25vc3Rp',
+ 'YyB3aGljaCByZXBvcnRzIHdoZW4gYSBudWxsLWNoZWNrIHdpbGwKICAgIGFsd2F5cyBmYWlsLgoK',
+ 'KiAgIEZpeCBmYWxzZSBwb3NpdGl2ZSByZXBvcnRzIHJlZ2FyZGluZyBvcHRpb25hbCBwYXJhbWV0',
+ 'ZXJzIG9uIHByaXZhdGUKICAgIGNvbnN0cnVjdG9ycyBiZWluZyB1bnVzZWQuCgoqICAgSW50cm9k',
+ 'dWNlIGEgZGlhZ25vc3RpYyB3aGljaCBpcyByZXBvcnRlZCB3aGVuIGEgY29uc3RydWN0b3IgaW5j',
+ 'bHVkZXMKICAgIGR1cGxpY2F0ZSBmaWVsZCBmb3JtYWwgcGFyYW1ldGVycy4KCiogICBJbXByb3Zl',
+ ];
+}
+
+List<String> _f4(String s) {
+ return [
+ s,
+ 'IHRoZSAidW51c2VkIGltcG9ydCIgZGlhZ25vc3RpYyB3aGVuIG11bHRpcGxlIGltcG9ydCBkaXJl',
+ 'Y3RpdmVzIHNoYXJlCiAgICBhIGNvbW1vbiBwcmVmaXguCgoqICAgRml4IGZhbHNlIHBvc2l0aXZl',
+ 'ICJ1bnVzZWQgaW1wb3J0IiBkaWFnbm9zdGljIHJlZ2FyZGluZyBhbiBpbXBvcnQgd2hpY2gKICAg',
+ 'IHByb3ZpZGVzIGFuIGV4dGVuc2lvbiBtZXRob2Qgd2hpY2ggaXMgdXNlZC4KCiogICBGb3IgbnVs',
+ 'bCBzYWZldHksIGltcHJvdmUgdGhlIG1lc3NhZ2luZyBvZiAidXNlIG9mIG51bGxhYmxlIHZhbHVl',
+ 'IgogICAgZGlhZ25vc3RpY3MgZm9yIGVpZ2h0IGRpZmZlcmVudCBjb250ZXh0cy4KCiogICBGaXgg',
+ 'ZmFsc2UgcG9zaXRpdmUgcmVwb3J0cyByZWdhcmRpbmcgYEB2aXNpYmxlRm9yVGVzdGluZ2AgbWVt',
+ 'YmVycyBpbiBhCiAgICAiaGlkZSIgY29tYmluYXRvciBvZiBhbiBpbXBvcnQgb3IgZXhwb3J0IGRp',
+ 'cmVjdGl2ZS4KCiogICBJbXByb3ZlIHRoZSBtZXNzYWdpbmcgb2YgImludmFsaWQgb3ZlcnJpZGUi',
+ 'IGRpYWdub3N0aWNzLgoKKiAgIEludHJvZHVjZSBhIGRpYWdub3N0aWMgd2hpY2ggaXMgcmVwb3J0',
+ 'ZWQgd2hlbiBgRnV0dXJlPFQ+LmNhdGNoRXJyb3JgIGlzCiAgICBjYWxsZWQgd2l0aCBhbiBgb25F',
+ 'cnJvcmAgY2FsbGJhY2sgd2hpY2ggZG9lcyBub3QgcmV0dXJuIGBGdXR1cmVPcjxUPmAuCgojIyMj',
+ 'IGRhcnRmbXQKCiogICBEb24ndCBkdXBsaWNhdGUgY29tbWVudHMgb24gY2hhaW5lZCBpZiBlbGVt',
+ 'ZW50cy4KCiogICBQcmVzZXJ2ZSBgP2AgaW4gaW5pdGlhbGl6aW5nIGZvcm1hbCBmdW5jdGlvbi10',
+ 'eXBlZCBwYXJhbWV0ZXJzLgoKKiAgIEZpeCBwZXJmb3JtYW5jZSBpc3N1ZSB3aXRoIGNvbnN0cnVj',
+ 'dG9ycyB0aGF0IGhhdmUgbm8gaW5pdGlhbGl6ZXIgbGlzdC4KCiMjIyMgTGludGVyCgpVcGRhdGVk',
+ 'IHRoZSBMaW50ZXIgdG8gYDAuMS4xMjlgLCB3aGljaCBpbmNsdWRlczoKCiogICBOZXcgbGludHM6',
+ 'IGBhdm9pZF9keW5hbWljX2NhbGxzYCwgYGNhc3RfbnVsbGFibGVfdG9fbm9uX251bGxhYmxlYCwK',
+ 'ICAgIGBudWxsX2NoZWNrX29uX251bGxhYmxlX3R5cGVfcGFyYW1ldGVyYCwKICAgIGB0aWdodGVu',
+ 'X3R5cGVfb2ZfaW5pdGlhbGl6aW5nX2Zvcm1hbHNgLCBgdW5uZWNlc3NhcnlfbnVsbF9jaGVja3Ng',
+ 'LCBhbmQKICAgIGBhdm9pZF90eXBlX3RvX3N0cmluZ2AuCgoqICAgRml4IGNyYXNoIGluIGBwcmVm',
+ 'ZXJfY29sbGVjdGlvbl9saXRlcmFsc2Agd2hlbiB0aGVyZSBpcyBubyBzdGF0aWMgcGFyYW1ldGVy',
+ 'CiAgICBlbGVtZW50LgoKKiAgIEZpeCBmYWxzZSBuZWdhdGl2ZXMgZm9yIGBwcmVmZXJfY29sbGVj',
+ 'dGlvbl9saXRlcmFsc2Agd2hlbiBhIExpbmtlZEhhc2hTZXQgb3IKICAgIExpbmtlZEhhc2hNYXAg',
+ 'aW5zdGFudGlhdGlvbiBpcyBwYXNzZWQgYXMgdGhlIGFyZ3VtZW50IHRvIGEgZnVuY3Rpb24gaW4g',
+ 'YW55CiAgICBwb3NpdGlvbiBvdGhlciB0aGFuIHRoZSBmaXJzdC4KCiogICBGaXggZmFsc2UgbmVn',
+ 'YXRpdmVzIGZvciBgcHJlZmVyX2NvbGxlY3Rpb25fbGl0ZXJhbHNgIHdoZW4gYSBMaW5rZWRIYXNo',
+ 'U2V0IG9yCiAgICBMaW5rZWRIYXNoTWFwIGluc3RhbnRpYXRpb24gaXMgdXNlZCBpbiBhIHBsYWNl',
+ 'IHdpdGggYSBzdGF0aWMgdHlwZSBvdGhlciB0aGFuCiAgICBTZXQgb3IgTWFwLgoKKiAgIFVwZGF0',
+ 'ZSB0byBgcGFja2FnZV9uYW1lc2AgdG8gYWxsb3cgbGVhZGluZyB1bmRlcnNjb3Jlcy4KCiogICBG',
+ 'aXggY3Jhc2hlcyBpbiBgdW5uZWNlc3NhcnlfbnVsbF9jaGVja3NgIGFuZAogICAgYG1pc3Npbmdf',
+ 'd2hpdGVzcGFjZV9iZXR3ZWVuX2FkamFjZW50X3N0cmluZ3NgLgoKKiAgIFVwZGF0ZSB0byBgdm9p',
+ 'ZF9jaGVja3NgIGZvciBudWxsIHNhZmV0eS4KCiogICBGaXggcmFuZ2UgZXJyb3IgaW4gYHVubmVj',
+ 'ZXNzYXJ5X3N0cmluZ19lc2NhcGVzYC4KCiogICBGaXggZmFsc2UgcG9zaXRpdmVzIGluIGB1bm5l',
+ 'Y2Vzc2FyeV9udWxsX3R5cGVzYC4KCiogICBGaXggdG8gYHByZWZlcl9jb25zdHJ1Y3RvcnNfb3Zl',
+ 'cl9zdGF0aWNfbWV0aG9kc2AgdG8gcmVzcGVjdCB0eXBlCiAgICBwYXJhbWV0ZXJzLgoKKiAgIFVw',
+ 'ZGF0ZSB0byBgYWx3YXlzX3JlcXVpcmVfbm9uX251bGxfbmFtZWRfcGFyYW1ldGVyc2AgdG8gYmUg',
+ 'bnVsbCBzYWZldHktYXdhcmUuCgoqICAgVXBkYXRlIHRvIGB1bm5lY2Vzc2FyeV9udWxsYWJsZV9m',
+ 'b3JfZmluYWxfdmFyaWFibGVfZGVjbGFyYXRpb25zYCB0byBhbGxvdwogICAgZHluYW1pYy4KCiog',
+ 'ICBVcGRhdGUgYG92ZXJyaWRkZW5fZmllbGRzYCB0byBub3QgcmVwb3J0IG9uIGFic3RyYWN0IHBh',
+ 'cmVudCBmaWVsZHMuCgoqICAgRml4IHRvIGB1bnJlbGF0ZWRfdHlwZV9lcXVhbGl0eV9jaGVja3Ng',
+ 'IGZvciBudWxsIHNhZmV0eS4KCiogICBJbXByb3ZlbWVudHMgdG8gYHR5cGVfaW5pdF9mb3JtYWxz',
+ 'YHRvIGFsbG93IHR5cGVzIG5vdCBlcXVhbCB0byB0aGUgZmllbGQKICAgIHR5cGUuCgoqICAgVXBk',
+ 'YXRlcyB0byBgcHVibGljX21lbWJlcl9hcGlzYCB0byBjaGVjayBnZW5lcmljIHR5cGUgYWxpYXNl',
+ 'cy4KCiogICBGaXggYGNsb3NlX3NpbmtzYCB0byBoYW5kbGUgYHRoaXNgLXByZWZpeGVkIHByb3Bl',
+ 'cnR5IGFjY2Vzc2VzLgoKKiAgIEZpeCBgdW5hd2FpdGVkX2Z1dHVyZXNgIHRvIGhhbmRsZSBgRnV0',
+ 'dXJlYCBzdWJ0eXBlcy4KCiogICBQZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgdG8gYGFsd2F5c191',
+ 'c2VfcGFja2FnZV9pbXBvcnRzYCwKICAgIGBhdm9pZF9yZW5hbWluZ19tZXRob2RfcGFyYW1ldGVy',
+ 'c2AsIGBwcmVmZXJfcmVsYXRpdmVfaW1wb3J0c2AgYW5kCiAgICBgcHVibGljX21lbWJlcl9hcGlf',
+ 'ZG9jc2AuCgojIyMjIFB1YgoKKiAgICoqQnJlYWtpbmcqKjogVGhlIERhcnQgU0RLIGNvbnN0cmFp',
+ 'bnQgaXMgbm93ICoqcmVxdWlyZWQqKiBpbiBgcHVic3BlYy55YW1sYC4KICAgIFlvdSBtdXN0IGlu',
+ 'Y2x1ZGUgYSBzZWN0aW9uIGxpa2U6CgogICAgYGBgeWFtbAogICAgZW52aXJvbm1lbnQ6CiAgICAg',
+ 'IHNkazogJz49Mi4xMC4wIDwzLjAuMCcKICAgIGBgYAoKICAgIFNlZSBbIzQ0MDcyXVtdLgoKICAg',
+ 'IEZvciBsZWdhY3kgZGVwZW5kZW5jaWVzIHdpdGhvdXQgYW4gU0RLIGNvbnN0cmFpbnQsIHB1YiB3',
+ 'aWxsIG5vdyBhc3N1bWUgYQogICAgZGVmYXVsdCBsYW5ndWFnZSB2ZXJzaW9uIG9mIDIuNy4KCiog',
+ 'ICBUaGUgdG9wIGxldmVsIGBwdWJgIGV4ZWN1dGFibGUgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNl',
+ 'IGBkYXJ0IHB1YmAgaW5zdGVhZC4KICAgIFNlZSBbZGFydCB0b29sXVtdLgoKKiAgIE5ldyBjb21t',
+ 'YW5kIGBkYXJ0IHB1YiBhZGRgIHRoYXQgYWRkcyBuZXcgZGVwZW5kZW5jaWVzIHRvIHlvdXIKICAg',
+ 'IGBwdWJzcGVjLnlhbWxgLCBhbmQgYSBjb3JyZXNwb25kaW5nIGBkYXJ0IHB1YiByZW1vdmVgIHRo',
+ 'YXQgcmVtb3ZlcwogICAgZGVwZW5kZW5jaWVzLgoKKiAgIE5ldyBvcHRpb24gYGRhcnQgcHViIHVw',
+ 'Z3JhZGUgLS1tYWpvci12ZXJzaW9uc2Agd2lsbCB1cGRhdGUgY29uc3RyYWludHMgaW4KICAgIHlv',
+ 'dXIgYHB1YnNwZWMueWFtbGAgdG8gbWF0Y2ggdGhlIHRoZSBfcmVzb2x2YWJsZV8gY29sdW1uIHJl',
+ 'cG9ydGVkIGluIGBkYXJ0CiAgICBwdWIgb3V0ZGF0ZWRgLiBUaGlzIGFsbG93cyB1c2VycyB0byBl',
+ 'YXNpbHkgdXBncmFkZSB0byBsYXRlc3QgdmVyc2lvbiBmb3IgYWxsCiAgICBkZXBlbmRlbmNpZXMg',
+ 'd2hlcmUgdGhpcyBpcyBwb3NzaWJsZSwgZXZlbiBpZiBzdWNoIHVwZ3JhZGUgcmVxdWlyZXMgYW4g',
+ 'dXBkYXRlCiAgICB0byB0aGUgdmVyc2lvbiBjb25zdHJhaW50IGluIGBwdWJzcGVjLnlhbWxgLgoK',
+ 'ICAgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gb25seSB1cGdyYWRlIHRoZSBtYWpvciB2ZXJzaW9u',
+ 'IGZvciBhIHN1YnNldCBvZiB5b3VyCiAgICBkZXBlbmRlbmNpZXMgdXNpbmcgYGRhcnQgcHViIHVw',
+ 'Z3JhZGUgLS1tYWpvci12ZXJzaW9ucyA8ZGVwZW5kZW5jaWVzLi4uPmAuCgoqICAgTmV3IG9wdGlv',
+ 'biBgZGFydCBwdWIgdXBncmFkZSAtLW51bGwtc2FmZXR5YCB3aWxsIGF0dGVtcHQgdG8gdXBkYXRl',
+ 'IGNvbnN0cmFpbnRzCiAgICBpbiB5b3VyIGBwdWJzcGVjLnlhbWxgLCBzdWNoIHRoYXQgb25seSBu',
+ 'dWxsLXNhZmV0eSBtaWdyYXRlZCB2ZXJzaW9ucyBvZgogICAgZGVwZW5kZW5jaWVzIGFyZSBhbGxv',
+ 'd2VkLgoKKiAgIE5ldyBvcHRpb24gYGRhcnQgcHViIG91dGRhdGVkIC0tbW9kZT1udWxsLXNhZmV0',
+ 'eWAgdGhhdCB3aWxsIGFuYWx5emUgeW91cgogICAgZGVwZW5kZW5jaWVzIGZvciBudWxsLXNhZmV0',
+ 'eS4KCiogICBgZGFydCBwdWIgZ2V0YCBhbmQgYGRhcnQgcHViIHVwZ3JhZGVgIHdpbGwgaGlnaGxp',
+ 'Z2h0IGRlcGVuZGVuY2llcyB0aGF0IGhhdmUKICAgIGJlZW4gW2Rpc2NvbnRpbnVlZF0oaHR0cHM6',
+ 'Ly9kYXJ0LmRldi90b29scy9wdWIvcHVibGlzaGluZyNkaXNjb250aW51ZSkgb24KICAgIHB1Yi5k',
+ 'ZXYuCgoqICAgYGRhcnQgcHViIHB1Ymxpc2hgIHdpbGwgbm93IGNoZWNrIHlvdXIgcHVic3BlYyBr',
+ 'ZXlzIGZvciBsaWtlbHkgdHlwb3MuCgoqICAgYGRhcnQgcHViIHVwZ3JhZGUgcGFja2FnZV9mb29g',
+ 'IGZldGNocyBkZXBlbmRlbmNpZXMgYnV0IGlnbm9yZXMgdGhlCiAgICBgcHVic3BlYy5sb2NrYCBm',
+ 'b3IgYHBhY2thZ2VfZm9vYCwgYWxsb3dpbmcgdXNlcnMgdG8gb25seSB1cGdyYWRlIGEgc3Vic2V0',
+ 'IG9mCiAgICBkZXBlbmRlbmNpZXMuCgoqICAgTmV3IGNvbW1hbmQgYGRhcnQgcHViIGxvZ2luYCB0',
+ 'aGF0IGxvZ3MgaW4gdG8gcHViLmRldi4KCiogICBUaGUgYC0tc2VydmVyYCBvcHRpb24gdG8gYGRh',
+ 'cnQgcHViIHB1Ymxpc2hgIGFuZCBgZGFydCBwdWIgdXBsb2FkZXJgIGFyZQogICAgZGVwcmVjYXRl',
+ 'ZC4gVXNlIGBwdWJsaXNoX3RvYCBpbiB5b3VyIGBwdWJzcGVjLnlhbWxgIG9yIHNldCB0aGUKICAg',
+ 'IGAkUFVCX0hPU1RFRF9VUkxgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKKiAgIGBwdWIgZ2xvYmFs',
+ 'IGFjdGl2YXRlYCBubyBsb25nZXIgcmUtcHJlY29tcGlsZXMgaWYgdGhlIGN1cnJlbnQgZ2xvYmFs',
+ 'CiAgICBpbnN0YWxsYXRpb24gd2FzIHNhbWUgdmVyc2lvbi4KCiogICBUaGUgRmx1dHRlciBTREsg',
+ 'Y29uc3RyYWludCB1cHBlciBib3VuZCBpcyBub3cgaWdub3JlZCBpbiBwdWJzcGVjcyBhbmQKICAg',
+ 'IGRlcHJlY2F0ZWQgd2hlbiBwdWJsaXNoaW5nLiBTZWU6IFtmbHV0dGVyLXVwcGVyLWJvdW5kLWRl',
+ 'cHJlY2F0aW9uXVtdLgoKW2ZsdXR0ZXItdXBwZXItYm91bmQtZGVwcmVjYXRpb25dOiBodHRwczov',
+ 'L2RhcnQuZGV2L2dvL2ZsdXR0ZXItdXBwZXItYm91bmQtZGVwcmVjYXRpb24KWyM0NDA3Ml06IGh0',
+ 'dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80NDA3MgpbZGFydCB0b29sXTog',
+ 'aHR0cHM6Ly9kYXJ0LmRldi90b29scy9kYXJ0LXRvb2wKCiMjIDIuMTAuNSAtIDIwMjEtMDEtMjEK',
+ 'ClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRoYXQgZml4ZXMgYSBjcmFzaCBpbiB0aGUgRGFydCBW',
+ 'TS4gKGlzc3VlIFsjNDQ1NjNdW10pLgoKWyM0NDU2M106IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy80NDU2MwoKIyMgMi4xMC40IC0gMjAyMC0xMS0xMgoKVGhpcyBpcyBh',
+ 'IHBhdGNoIHJlbGVhc2UgdGhhdCBmaXhlcyBhIGNyYXNoIGluIHRoZSBEYXJ0IFZNIChpc3N1ZXMg',
+ 'WyM0Mzk0MV1bXSwKW2ZsdXR0ZXIvZmx1dHRlciM0MzYyMF1bXSwgYW5kIFtEYXJ0LUNvZGUvRGFy',
+ 'dC1Db2RlIzI4MTRdW10pLgoKWyM0Mzk0MV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcv',
+ ];
+}
+
+List<String> _f5(String s) {
+ return [
+ s,
+ 'c2RrL2lzc3Vlcy80Mzk0MQpbZmx1dHRlci9mbHV0dGVyIzQzNjIwXTogaHR0cHM6Ly9naXRodWIu',
+ 'Y29tL2ZsdXR0ZXIvZmx1dHRlci9pc3N1ZXMvNDM2MjAKW0RhcnQtQ29kZS9EYXJ0LUNvZGUjMjgx',
+ 'NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9EYXJ0LUNvZGUvRGFydC1Db2RlL2lzc3Vlcy8yODE0Cgoj',
+ 'IyAyLjEwLjMgLSAyMDIwLTEwLTI5CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0aGF0IGZpeGVz',
+ 'IHRoZSBmb2xsb3dpbmcgaXNzdWVzOgoqIGJyZWFraW5nIGNoYW5nZXMgaW4gQ2hyb21lIDg2IHRo',
+ 'YXQgYWZmZWN0IEREQyAoaXNzdWVzIFsjNDM3NTBdW10gYW5kCiAgWyM0MzE5M11bXSkuCiogY29t',
+ 'cGlsZXIgZXJyb3IgY2F1c2luZyBpbmNvcnJlY3QgdXNlIG9mIHBvc2l0aW9uYWwgcGFyYW1ldGVy',
+ 'cyB3aGVuIG5hbWVkCiAgcGFyYW1ldGVycyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIChpc3N1ZXMg',
+ 'W2ZsdXR0ZXIvZmx1dHRlciM2NTMyNF1bXSBhbmQKICBbZmx1dHRlci9mbHV0dGVyIzY4MDkyXVtd',
+ 'KS4KKiBjcmFzaGVzIGFuZC9vciB1bmRlZmluZWQgYmVoYXZvciBpbiBBT1QgY29tcGlsZWQgY29k',
+ 'ZSAoaXNzdWVzIFsjNDM3NzBdW10gYW5kCiAgWyM0Mzc4Nl1bXSkuCiogQU9UIGNvbXBpbGF0aW9u',
+ 'IG9mIGNsYXNzZXMgd2l0aCBtb3JlIHRoYW4gNjQgdW5ib3hlZCBmaWVsZHMKICAoaXNzdWUgW2Zs',
+ 'dXR0ZXIvZmx1dHRlciM2NzgwM11bXSkuCgpbIzQzNzUwXTogaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzQzNzUwClsjNDMxOTNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay9pc3N1ZXMvNDMxOTMKW2ZsdXR0ZXIvZmx1dHRlciM2NTMyNF06IGh0dHBzOi8v',
+ 'Z2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIvaXNzdWVzLzY1MzI0CltmbHV0dGVyL2ZsdXR0ZXIj',
+ 'NjgwOTJdOiBodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2lzc3Vlcy82ODA5Mgpb',
+ 'IzQzNzcwXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQzNzcwClsj',
+ 'NDM3ODZdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDM3ODYKW2Zs',
+ 'dXR0ZXIvZmx1dHRlciM2NzgwM106IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIv',
+ 'aXNzdWVzLzY3ODAzCgojIyAyLjEwLjIgLSAyMDIwLTEwLTE1CgpUaGlzIGlzIGEgcGF0Y2ggcmVs',
+ 'ZWFzZSB0aGF0IGZpeGVzIGEgRERDIGNvbXBpbGVyIGNyYXNoIChpc3N1ZSBbIzQzNTg5XSkuCgpb',
+ 'IzQzNTg5XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQzNTg5Cgoj',
+ 'IyAyLjEwLjEgLSAyMDIwLTEwLTA2CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0aGF0IGZpeGVz',
+ 'IHRoZSBmb2xsb3dpbmcgaXNzdWVzOgoqIGNyYXNoZXMgd2hlbiBkZXZlbG9waW5nIEZsdXR0ZXIg',
+ 'YXBwbGljYXRpb25zIChpc3N1ZSBbIzQzNDY0XVtdKS4KKiBub24tZGV0ZXJtaW5pc3RpYyBpbmNv',
+ 'cnJlY3QgcHJvZ3JhbSBiZWhhdmlvdXIgYW5kL29yIGNyYXNoZXMgKGlzc3VlCiAgW2ZsdXR0ZXIv',
+ 'Zmx1dHRlciM2NjY3Ml1bXSkuCiogdW5jYXVnaHQgVHlwZUVycm9ycyBpbiBEREMgKGlzc3VlIFsj',
+ 'NDM2NjFdW10pLgoKWyM0MzQ2NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lz',
+ 'c3Vlcy80MzQ2NApbZmx1dHRlci9mbHV0dGVyIzY2NjcyXTogaHR0cHM6Ly9naXRodWIuY29tL2Zs',
+ 'dXR0ZXIvZmx1dHRlci9pc3N1ZXMvNjY2NzIKWyM0MzY2MV06IGh0dHBzOi8vZ2l0aHViLmNvbS9k',
+ 'YXJ0LWxhbmcvc2RrL2lzc3Vlcy80MzY2MQoKIyMgMi4xMC4wIC0gMjAyMC0wOS0yOAoKIyMjIENv',
+ 'cmUgbGlicmFyaWVzCgojIyMjIGBkYXJ0OmlvYAoKKiAgIEFkZHMgYEFib3J0YCBtZXRob2QgdG8g',
+ 'Y2xhc3MgYEh0dHBDbGllbnRSZXF1ZXN0YCwgd2hpY2ggYWxsb3dzIHVzZXJzCiAgICB0byBjYW5j',
+ 'ZWwgb3V0Z29pbmcgSFRUUCByZXF1ZXN0cyBhbmQgc3RvcCBmb2xsb3dpbmcgSU8gb3BlcmF0aW9u',
+ 'cy4KKiAgIEEgdmFsaWRhdGlvbiBjaGVjayBpcyBhZGRlZCB0byBgcGF0aGAgb2YgY2xhc3MgYENv',
+ 'b2tpZWAuIEhhdmluZyBjaGFyYWN0ZXJzCiAgICByYW5naW5nIGZyb20gMHgwMCB0byAweDFmIGFu',
+ 'ZCAweDNiICgiOyIpIHdpbGwgbGVhZCB0byBhIGBGb3JtYXRFeGNlcHRpb25gLgoqICAgVGhlIGBI',
+ 'dHRwQ2xpZW50YCBhbmQgYEh0dHBTZXJ2ZXJgIGNsYXNzZXMgbm93IGhhdmUgYSAxIE1pQiBsaW1p',
+ 'dCBmb3IgdGhlCiAgICB0b3RhbCBzaXplIG9mIHRoZSBIVFRQIGhlYWRlcnMgd2hlbiBwYXJzaW5n',
+ 'IGEgcmVxdWVzdCBvciByZXNwb25zZSwgaW5zdGVhZAogICAgb2YgdGhlIGZvcm1lciA4IEtpQiBs',
+ 'aW1pdCBmb3IgZWFjaCBoZWFkZXIgbmFtZSBhbmQgdmFsdWUuIFRoaXMgbGltaXQgY2Fubm90CiAg',
+ 'ICBiZSBjb25maWd1cmVkIGF0IHRoaXMgdGltZS4KCiMjIyMgYGRhcnQ6dHlwZWRfZGF0YWAKCiog',
+ 'ICBDbGFzcyBgQnl0ZXNCdWlsZGVyYCBpcyBtb3ZlZCBmcm9tIGBkYXJ0OmlvYCB0byBgZGFydDp0',
+ 'eXBlZF9kYXRhYC4KICAgIEl0J3MgdGVtcG9yYXJpbHkgYmVpbmcgZXhwb3J0ZWQgZnJvbSBgZGFy',
+ 'dDppb2AgYXMgd2VsbC4KCiMjIyBgZGFydDp1cmlgCgoqICAgWyM0MjU2NF06IFNvbHZlZCBpbmNv',
+ 'bnNpc3RlbmN5IGluIGBVcmkuaHR0cHNgIGFuZCBgVXJpLmh0dHBgIGNvbnN0cnVjdG9ycycKICAg',
+ 'IGBxdWVyeVBhcmFtc2AgdHlwZS4KCiMjIyBEYXJ0IFZNCgoqICAgKipCcmVha2luZyBDaGFuZ2Uq',
+ 'KiBbIzQyOTgyXVtdOiBgZGFydF9hcGlfZGwuY2NgIGlzIHJlbmFtZWQgdG8KICAgIGBkYXJ0X2Fw',
+ 'aV9kbC5jYCBhbmQgY2hhbmdlZCB0byBhIHB1cmUgQyBmaWxlLgoqICAgSW50cm9kdWNlcyBgRGFy',
+ 'dF9GaW5hbGl6YWJsZUhhbmRsZWBzLiBUaGV5IGRvIGF1dG8tZGVsZXRlLCBhbmQgdGhlIHdlYWts',
+ 'eQogICAgcmVmZXJyZWQgb2JqZWN0IGNhbm5vdCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZW0uCgoj',
+ 'IyMgRGFydDJKUwoKKiAgIEFkZHMgc3VwcG9ydCBmb3IgZGVmZXJyZWQgbG9hZGluZyBvZiB0eXBl',
+ 'cyBzZXBlcmF0ZWx5IGZyb20gY2xhc3Nlcy4gVGhpcwogICAgZW5hYmxlcyBkYXJ0MmpzIHRvIG1h',
+ 'a2UgYmV0dGVyIG9wdGltaXphdGlvbiBjaG9pY2VzIHdoZW4gZGVmZXJyZWQgbG9hZGluZy4KICAg',
+ 'IFRoaXMgd29yayBpcyBuZWNlc3NhcnkgdG8gYWRkcmVzcyB1bnNvdW5kbmVzcyBpbiB0aGUgZGVm',
+ 'ZXJyZWQgbG9hZGluZwogICAgYWxnb3JpdGhtLiBDdXJyZW50bHksIGZpeGluZyB0aGlzIHVuc291',
+ 'bmRuZXNzIHdvdWxkIHJlc3VsdCBpbiBjb2RlIGJsb2F0LAogICAgYnV0IGxvYWRpbmcgdHlwZXMg',
+ 'c2VwZXJhdGVseSBmcm9tIGNsYXNzZXMgd2lsbCBhbGxvdyB1cyB0byBmaXggdGhlCiAgICB1bnNv',
+ 'dW5kbmVzcyB3aXRoIG9ubHkgYSBtaW5pbWFsIHJlZ3Jlc3Npb24uIFRvIGV4cGxpY2l0bHkgZGlz',
+ 'YWJsZQogICAgZGVmZXJyZWQgbG9hZGluZyBvZiB0eXBlcywgcGFzcyBgLS1uby1kZWZlci1jbGFz',
+ 'cy10eXBlc2AuIFNlZSB0aGUgb3JpZ2luYWwKICAgIHBvc3Qgb24gdGhlIFt1bnNvdW5kbmVzcyBp',
+ 'biB0aGUgZGVmZXJyZWQgbG9hZGluZyBhbGdvcml0aG1dW10uCiogICBFbmFibGVzIGEgbmV3IHNv',
+ 'dW5kIGRlZmVycmVkIHNwbGl0dGluZyBhbGdvcml0aG0uIFRvIGV4cGxpY2l0bHkgZGlzYWJsZQog',
+ 'ICAgdGhlIG5ldyBkZWZlcnJlZCBzcGxpdHRpbmcgYWxnb3JpdGhtLCBwYXNzIGAtLW5vLW5ldy1k',
+ 'ZWZlcnJlZC1zcGxpdGAuCiAgICBTZWUgdGhlIG9yaWdpbmFsIHBvc3Qgb24gdGhlCiAgICBbdW5z',
+ 'b3VuZG5lc3MgaW4gdGhlIGRlZmVycmVkIGxvYWRpbmcgYWxnb3JpdGhtXVtdLgoKClsjNDI5ODJd',
+ 'OiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDI5ODIKW3Vuc291bmRu',
+ 'ZXNzIGluIHRoZSBkZWZlcnJlZCBsb2FkaW5nIGFsZ29yaXRobV06IGh0dHBzOi8vZ2l0aHViLmNv',
+ 'bS9kYXJ0LWxhbmcvc2RrL2Jsb2IvMzAyYWQ3YWIyY2QyZGU5MzYyNTQ4NTA1NTBhYWQxMjhhZTc2',
+ 'YmJiNy9DSEFOR0VMT0cubWQjZGFydDJqcy0zCgojIyMgVG9vbHMKCiMjIyMgZGFydGZtdAoKKiBE',
+ 'b24ndCBjcmFzaCB3aGVuIG5vbi1BU0NJSSB3aGl0ZXNwYWNlIGlzIHRyaW1tZWQuCiogU3BsaXQg',
+ 'YWxsIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zIChgPzpgKSB3aGVuIHRoZXkgYXJlIG5lc3RlZC4K',
+ 'KiBIYW5kbGUgYGV4dGVybmFsYCBhbmQgYGFic3RyYWN0YCBmaWVsZHMgYW5kIHZhcmlhYmxlcy4K',
+ 'CiMjIyMgTGludGVyCgpVcGRhdGVkIHRoZSBMaW50ZXIgdG8gYDAuMS4xMThgLCB3aGljaCBpbmNs',
+ 'dWRlczoKCiogTmV3IGxpbnQ6IGB1bm5lY2Vzc2FyeV9udWxsYWJsZV9mb3JfZmluYWxfdmFyaWFi',
+ 'bGVfZGVjbGFyYXRpb25zYC4KKiBGaXhlZCBOUEUgaW4gYHByZWZlcl9hc3NlcnRzX2luX2luaXRp',
+ 'YWxpemVyX2xpc3RzYC4KKiBGaXhlZCByYW5nZSBlcnJvciBpbiBgdW5uZWNlc3Nhcnlfc3RyaW5n',
+ 'X2VzY2FwZXNgLgoqIGB1bnNhZmVfaHRtbGAgdXBkYXRlZCB0byBzdXBwb3J0IHVuaXF1ZSBlcnJv',
+ 'ciBjb2Rlcy4KKiBVcGRhdGVzIHRvIGBkaWFnbm9zdGljX2Rlc2NyaWJlX2FsbF9wcm9wZXJ0aWVz',
+ 'YCB0byBjaGVjayBmb3IgYERpYWdub3N0aWNhYmxlYHMgKG5vdCBgRGlhZ25vc3RpY2FibGVNaXhp',
+ 'bmBzKS4KKiBOZXcgbGludDogYHVzZV9sYXRlYC4KKiBGaXhlZCBgdW5uZWNlc3NhcnlfbGFtYmRh',
+ 'c2AgdG8gcmVzcGVjdCBkZWZlcnJlZCBpbXBvcnRzLgoqIFVwZGF0ZWQgYHB1YmxpY19tZW1iZXJf',
+ 'YXBpX2RvY3NgIHRvIGNoZWNrIG1peGlucy4KKiBVcGRhdGVkIGB1bm5lY2Vzc2FyeV9zdGF0ZW1l',
+ 'bnRzYCB0byBza2lwIGBhc2AgZXhwcmVzc2lvbnMuCiogRml4ZWQgYHByZWZlcl9yZWxhdGl2ZV9p',
+ 'bXBvcnRzYCB0byB3b3JrIHdpdGggcGF0aCBkZXBlbmRlbmNpZXMuCgojIyMjIFB1YgoKKiBgcHVi',
+ 'IHJ1bmAgYW5kIGBwdWIgZ2xvYmFsIHJ1bmAgYWNjZXB0cyBhIGAtLShuby0pLXNvdW5kLW51bGwt',
+ 'c2FmZXR5YCBmbGFnLAogIHRoYXQgaXMgcGFzc2VkIHRvIHRoZSBWTS4KKiBGaXg6IEF2b2lkIG11',
+ 'bHRpcGxlIHJlY29tcGlsYXRpb24gb2YgYmluYXJpZXMgaW4gZ2xvYmFsIHBhY2thZ2VzLgoqIEZp',
+ 'eDogQXZvaWQgZXhwb25lbnRpYWwgYmVoYXZpb3VyIG9mIGVycm9yIHJlcG9ydGluZyBmcm9tIHRo',
+ 'ZSBzb2x2ZXIuCiogRml4OiBSZWZyZXNoIGJpbnN0dWJzIGFmdGVyIHJlY29tcGlsZSBpbiBnbG9i',
+ 'YWwgcnVuLgoKIyMgMi45LjMgLSAyMDIwLTA5LTA4CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0',
+ 'aGF0IGZpeGVzIEREQyB0byBoYW5kbGUgYSBicmVha2luZyBjaGFuZ2UgaW4gQ2hyb21lCihpc3N1',
+ 'ZSBbIzQzMTkzXVtdKS4KClsjNDMxOTNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nk',
+ 'ay9pc3N1ZXMvNDMxOTMKCiMjIDIuOS4yIC0gMjAyMC0wOC0yNgoKVGhpcyBpcyBhIHBhdGNoIHJl',
+ 'bGVhc2UgdGhhdCBmaXhlcyB0cmFuc2llbnQgU3RhY2tPdmVyZmxvdyBleGNlcHRpb25zIHdoZW4K',
+ 'YnVpbGRpbmcgRmx1dHRlciBhcHBsaWNhdGlvbnMgKGlzc3VlIFtmbHV0dGVyL2ZsdXR0ZXIjNjM1',
+ 'NjBdW10pLgoKW2ZsdXR0ZXIvZmx1dHRlciM2MzU2MF06IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0',
+ 'dGVyL2ZsdXR0ZXIvaXNzdWVzLzYzNTYwCgojIyAyLjkuMSAtIDIwMjAtMDgtMTIKClRoaXMgaXMg',
+ 'YSBwYXRjaCByZWxlYXNlIHRoYXQgZml4ZXMgdW5oYW5kbGVkIGV4Y2VwdGlvbnMgaW4gc29tZSBG',
+ ];
+}
+
+List<String> _f6(String s) {
+ return [
+ s,
+ 'bHV0dGVyCmFwcGxpY2F0aW9ucyAoaXNzdWUgW2ZsdXR0ZXIvZmx1dHRlciM2MzAzOF1bXSkuCgpb',
+ 'Zmx1dHRlci9mbHV0dGVyIzYzMDM4XTogaHR0cHM6Ly9naXRodWIuY29tL2ZsdXR0ZXIvZmx1dHRl',
+ 'ci9pc3N1ZXMvNjMwMzgKCiMjIDIuOS4wIC0gMjAyMC0wOC0wNQoKIyMjIExhbmd1YWdlCgojIyMg',
+ 'Q29yZSBsaWJyYXJpZXMKCiMjIyMgYGRhcnQ6YXN5bmNgCgoqICAgQWRkcyBgU3RyZWFtLm11bHRp',
+ 'YCBjb25zdHJ1Y3RvciBjcmVhdGluZyBzdHJlYW1zIHdoaWNoIGNhbiBiZQogICAgbGlzdGVuZWQg',
+ 'dG8gbW9yZSB0aGFuIG9uY2UsIGFuZCB3aGVyZSBlYWNoIGluZGl2aWR1YWwgbGlzdGVuZXIKICAg',
+ 'IGNhbiBiZSBjb250cm9sbGVkIGluZGVwZW5kZW50bHkuCgojIyMjIGBkYXJ0OmNvbnZlcnRgCgoq',
+ 'ICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQxMTAwXVtdOiBXaGVuIGVuY29kaW5nIGEgc3RyaW5n',
+ 'IGNvbnRhaW5pbmcgdW5wYWlyZWQKICAgIHN1cnJvZ2F0ZXMgYXMgVVRGLTgsIHRoZSB1bnBhaXJl',
+ 'ZCBzdXJyb2dhdGVzIHdpbGwgYmUgZW5jb2RlZCBhcyByZXBsYWNlbWVudAogICAgY2hhcmFjdGVy',
+ 'cyAoYFUrRkZGRGApLiBXaGVuIGRlY29kaW5nIFVURi04LCBlbmNvZGVkIHN1cnJvZ2F0ZXMgd2ls',
+ 'bCBiZQogICAgdHJlYXRlZCBhcyBtYWxmb3JtZWQgaW5wdXQuIFdoZW4gZGVjb2RpbmcgVVRGLTgg',
+ 'd2l0aCBgYWxsb3dNYWxmb3JtZWQ6IHRydWVgLAogICAgdGhlIG51bWJlciBvZiByZXBsYWNlbWVu',
+ 'dCBjaGFyYWN0ZXJzIGVtaXR0ZWQgZm9yIG1hbGZvcm1lZCBpbnB1dCBzZXF1ZW5jZXMKICAgIGhh',
+ 'cyBiZWVuIGNoYW5nZWQgdG8gbWF0Y2ggdGhlIFtXSEFUV0cgZW5jb2Rpbmcgc3RhbmRhcmRdW10u',
+ 'CgpbIzQxMTAwXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQxMTAw',
+ 'CltXSEFUV0cgZW5jb2Rpbmcgc3RhbmRhcmRdOiBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdn',
+ 'Lm9yZy8jdXRmLTgtZGVjb2RlcgoKIyMjIyBgZGFydDppb2AKCiogICBbIzQyMDA2XVtdOiBUaGUg',
+ 'c2lnbmF0dXJlIG9mIGBleGl0YCBoYXMgYmVlbiBjaGFuZ2VkIHRvIHJldHVybiB0aGUKICAgIGBO',
+ 'ZXZlcmB0eXBlIGluc3RlYWQgb2YgYHZvaWRgLiBzaW5jZSBubyBjb2RlIHdpbGwgcnVuIGFmdGVy',
+ 'IGl0LAoqICAgQ2xhc3MgYE9TRXJyb3JgIG5vdyBpbXBsZW1lbnRzIGBFeGNlcHRpb25gLiBUaGlz',
+ 'IGNoYW5nZSBtZWFucyBgT1NFcnJvcmAgd2lsbAogICAgbm93IGJlIGNhdWdodCBpbiBjYXRjaCBj',
+ 'bGF1c2VzIGNhdGNoaW5nIGBFeGNlcHRpb25gcy4KKiAgIEFkZGVkIGBJbnRlcm5ldEFkZHJlc3Mu',
+ 'dHJ5UGFyc2VgLgoqICAgW0Fic3RyYWN0IFVuaXggRG9tYWluIFNvY2tldF1bXSBpcyBzdXBwb3J0',
+ 'ZWQgb24gTGludXgvQW5kcm9pZCBub3cuIFVzaW5nIGFuCiAgICBgSW50ZXJuZXRBZGRyZXNzYCB3',
+ 'aXRoIGBhZGRyZXNzYCBzdGFydGluZyB3aXRoICdAJyBhbmQgdHlwZSBiZWluZwogICAgYEludGVy',
+ 'bmV0QWRkcmVzc1R5cGUuVW5peGAgd2lsbCBjcmVhdGUgYW4gYWJzdHJhY3QgVW5peCBEb21haW4g',
+ 'U29ja2V0LgoqICAgT24gV2luZG93cywgZmlsZSBBUElzIGNhbiBub3cgaGFuZGxlIGZpbGVzIGFu',
+ 'ZCBkaXJlY3RvcmllcyBpZGVudGlmaWVkIGJ5CiAgICBsb25nIHBhdGhzIChncmVhdGVyIHRoYW4g',
+ 'MjYwIGNoYXJhY3RlcnMpLiBJdCBjb21wbGllcyB3aXRoIGFsbCByZXN0cmljdGlvbnMKICAgIGZy',
+ 'b20gW0xvbmcgUGF0aCBvbiBXaW5kb3dzXVtdLiBOb3RlIHRoYXQgYERpcmVjdG9yeS5jdXJyZW50',
+ 'YCBkb2VzIG5vdCB3b3JrCiAgICB3aXRoIGxvbmcgcGF0aC4KClsjNDIwMDZdOiBodHRwczovL2dp',
+ 'dGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDIwMDYKW0Fic3RyYWN0IFVuaXggRG9tYWlu',
+ 'IFNvY2tldF06IGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuNy91bml4LjcuaHRt',
+ 'bApbTG9uZyBQYXRoIG9uIFdpbmRvd3NdOiBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11',
+ 'cy93aW5kb3dzL3dpbjMyL2ZpbGVpby9uYW1pbmctYS1maWxlI21heGltdW0tcGF0aC1sZW5ndGgt',
+ 'bGltaXRhdGlvbgoKIyMjIyBgZGFydDpodG1sYAoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKio6IGBD',
+ 'c3NDbGFzc1NldC5hZGQoKWAgcHJldmlvdXNseSByZXR1cm5lZCBgbnVsbGAgaWYgdGhlCiAgICBg',
+ 'Q3NzQ2xhc3NTZXRgIGNvcnJlc3BvbmRlZCB0byBtdWx0aXBsZSBlbGVtZW50cy4gSW4gb3JkZXIg',
+ 'dG8gYWxpZ24gd2l0aCB0aGUKICAgIG51bGwtc2FmZSBjaGFuZ2VzIGluIHRoZSBgU2V0YCBpbnRl',
+ 'cmZhY2UsIGl0IHdpbGwgbm93IHJldHVybiBgZmFsc2VgCiAgICBpbnN0ZWFkLiBUaGUgc2FtZSBh',
+ 'cHBsaWVzIGZvciBgQ3NzQ2xhc3NTZXQudG9nZ2xlYC4KCiogICBgRXZlbnRTdHJlYW1TdWJzY3Jp',
+ 'cHRpb24uY2FuY2VsYCBtZXRob2QgdXNlZCB0byByZXR1cm4gYG51bGxgLCBidXQgc2luY2UKICAg',
+ 'IGBTdHJlYW1TdWJzY3JpcHRpb24uY2FuY2VsYCBoYXMgY2hhbmdlZCB0byBiZSBub24tbnVsbGFi',
+ 'bGUsIHRoaXMgbWV0aG9kCiAgICByZXR1cm5zIGFuIGVtcHR5IGBGdXR1cmVgIGluc3RlYWQuIER1',
+ 'ZSB0byBhbiBvcHRpbWl6YXRpb24gb24gYG51bGxgCiAgICBgRnV0dXJlYHMsIHRoaXMgbWV0aG9k',
+ 'IHVzZWQgdG8gY29tcGxldGUgc3luY2hyb25vdXNseSwgYnV0IG5vdyB0aGF0IHRoZQogICAgYEZ1',
+ 'dHVyZWAgaXMgZW1wdHkgaW5zdGVhZCwgaXQgY29tcGxldGVzIGFzeW5jaHJvbm91c2x5LCB0aGVy',
+ 'ZWZvcmUKICAgIHBvdGVudGlhbGx5IGludmFsaWRhdGluZyBjb2RlIHRoYXQgcmVsaWVkIG9uIHRo',
+ 'ZSBzeW5jaHJvbm91cyBzaWRlLWVmZmVjdC4KICAgIFRoaXMgY2hhbmdlIHdpbGwgb25seSBhZmZl',
+ 'Y3QgY29kZSB1c2luZyBzb3VuZCBudWxsLXNhZmV0eS4gU2VlIGlzc3VlCiAgICBbIzQxNjUzXVtd',
+ 'IGZvciBtb3JlIGRldGFpbHMuCgoqICAgTWV0aG9kcyBpbiBgQ29uc29sZWAgaGF2ZSBiZWVuIHVw',
+ 'ZGF0ZWQgdG8gYmV0dGVyIHJlZmxlY3QgdGhlIG1vZGVybiBDb25zb2xlCiAgICBzcGVjaWZpY2F0',
+ 'aW9uLiBQYXJ0aWN1bGFybHkgb2YgaW50ZXJlc3QgYXJlIGBkaXJgIGFuZCBgdGFibGVgIHdoaWNo',
+ 'IHRha2UgaW4KICAgIGV4dHJhIG9wdGlvbmFsIGFyZ3VtZW50cy4KClsjNDE2NTNdOiBodHRwczov',
+ 'L2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDE2NTMKCiMjIyMgYGRhcnQ6bWlycm9y',
+ 'c2AKCiogICAqKkJyZWFraW5nIENoYW5nZSoqIFsjNDI3MTRdW106IHdlYiBjb21waWxlcnMgKGRh',
+ 'cnQyanMgYW5kIEREQykgbm93IHByb2R1Y2UKICAgIGEgY29tcGlsZS10aW1lIGVycm9yIGlmIGBk',
+ 'YXJ0Om1pcnJvcnNgIGlzIGltcG9ydGVkLgoKICAgIE1vc3QgcHJvamVjdHMgc2hvdWxkIG5vdCBi',
+ 'ZSBhZmZlY3RlZC4gU2luY2UgMi4wLjAgdGhpcyBsaWJyYXJ5IHdhcwogICAgdW5zdXBwb3J0ZWQg',
+ 'YW5kIHByb2R1Y2VkIHJ1bnRpbWUgZXJyb3JzIG9uIGFsbCBpdHMgQVBJcy4gU2luY2UgdGhlbiBz',
+ 'ZXZlcmFsCiAgICB0b29scyBhbHJlYWR5IHJlamVjdCBjb2RlIHRoYXQgdXNlIGBkYXJ0Om1pcnJv',
+ 'cnNgIGluY2x1ZGluZyB3ZWJkZXYgYW5kCiAgICBmbHV0dGVyIHRvb2xzLCB3ZSBleHBlY3QgZmV3',
+ 'IHByb2plY3RzIHRvIHJ1biBpbnRvIHRoaXMgcHJvYmxlbS4KClsjNDI3MTRdOiBodHRwczovL2dp',
+ 'dGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDI3MTQKCiMjIyBUb29scwoKIyMjIyBkYXJ0',
+ 'Zm10CgoqIEFkZCBgLS1maXgtc2luZ2xlLWNhc2NhZGUtc3RhdGVtZW50c2AuCiogQ29ycmVjdGx5',
+ 'IGhhbmRsZSBgdmFyYCBpbiBgLS1maXgtZnVuY3Rpb24tdHlwZWRlZnNgLgoqIFByZXNlcnZlIGxl',
+ 'YWRpbmcgaW5kZW50YXRpb24gaW4gZml4ZWQgZG9jIGNvbW1lbnRzLgoqIFNwbGl0IG91dGVyIG5l',
+ 'c3RlZCBjb250cm9sIGZsb3cgZWxlbWVudHMuCiogQWx3YXlzIHBsYWNlIGEgYmxhbmsgbGluZSBh',
+ 'ZnRlciBzY3JpcHQgdGFncy4KKiBEb24ndCBhZGQgdW5uZWVkZWQgc3BsaXRzIG9uIGlmIGVsZW1l',
+ 'bnRzIG5lYXIgY29tbWVudHMuCiogSW5kZW50IGJsb2NrcyBpbiBpbml0aWFsaXplcnMgb2YgbXVs',
+ 'dGlwbGUtdmFyaWFibGUgZGVjbGFyYXRpb25zLgoqIFVwZGF0ZSB0aGUgbnVsbC1hd2FyZSBzdWJz',
+ 'Y3JpcHQgc3ludGF4IGZyb20gYD8uW11gIHRvIGA/W11gLgoKIyMjIyBBbmFseXplcgoKKiBTdGF0',
+ 'aWMgYW5hbHlzZXMgd2l0aCBhIHNldmVyaXR5IG9mICJlcnJvciIgY2FuIG5vIGxvbmdlciBiZSBp',
+ 'Z25vcmVkIHdpdGgKICBjb21tZW50cyAoYC8vIGlnbm9yZTogY29kZWAgYW5kIGAvLyBpZ25vcmVf',
+ 'Zm9yX2ZpbGU6IGNvZGVgKS4KCiMjIyMgTGludGVyCgpVcGRhdGVkIHRoZSBMaW50ZXIgdG8gYDAu',
+ 'MS4xMTdgLCB3aGljaCBpbmNsdWRlczoKCiogTmV3IGxpbnQ6IGBkb19ub3RfdXNlX2Vudmlyb25t',
+ 'ZW50YC4KKiBOZXcgbGludDogYGV4aGF1c3RpdmVfY2FzZXNgLgoqIE5ldyBsaW50OiBgbm9fZGVm',
+ 'YXVsdF9jYXNlc2AgKGV4cGVyaW1lbnRhbCkuCiogTmV3IGxpbnQ6IGBzaXplZF9ib3hfZm9yX3do',
+ 'aXRlc3BhY2VgLgoqIE5ldyBsaW50OiBgdXNlX2lzX2V2ZW5fcmF0aGVyX3RoYW5fbW9kdWxvYC4K',
+ 'KiBVcGRhdGVkIGBkaXJlY3RpdmVzX29yZGVyaW5nYCB0byByZW1vdmUgdGhpcmQgcGFydHkgcGFj',
+ 'a2FnZSBzcGVjaWFsLWNhc2luZy4KKiBVcGRhdGVkIGBwcmVmZXJfaXNfZW1wdHlgIHRvIHNwZWNp',
+ 'YWwtY2FzZSBhc3NlcnQgaW5pdGlhbGl6ZXJzIGFuZCBjb25zdAogIGNvbnRleHRzLgoqIFVwZGF0',
+ 'ZWQgYHByZWZlcl9taXhpbmAgdG8gYWxsb3cgImxlZ2FjeSIgU0RLIGFic3RyYWN0IGNsYXNzIG1p',
+ 'eGlucy4KKiBVcGRhdGVkIGBzaXplZF9ib3hfZm9yX3doaXRlc3BhY2VgIHRvIGFkZHJlc3MgZmFs',
+ 'c2UtcG9zaXRpdmVzLgoqIFVwZGF0ZWQgYHR5cGVfYW5ub3RhdGVfcHVibGljX2FwaXNgIHRvIGFs',
+ 'bG93IGluZmVycmVkIHR5cGVzIGluIGZpbmFsIGZpZWxkCiAgYXNzaWdubWVudHMuCiogVXBkYXRl',
+ 'ZCBgdW5uZWNlc3NhcnlfbGFtYmRhc2AgdG8gY2hlY2sgZm9yIHRlYXItb2ZmIGFzc2lnbmFiaWxp',
+ 'dHkuCiogVXBkYXRlZCBgdW5zYWZlX2h0bWxgIHRvIHVzZSBhIGBTZWN1cml0eUxpbnRDb2RlYCAo',
+ 'bWFraW5nIGl0IHVuLWlnbm9yYWJsZSkgYW5kCiAgdG8gaW5jbHVkZSBgV2luZG93Lm9wZW5gLCBg',
+ 'RWxlbWVudC5odG1sYCBhbmQgYERvY3VtZW50RnJhZ21lbnQuaHRtbGAgaW4gdW5zYWZlCiAgQVBJ',
+ 'IGNoZWNrcy4gQWxzbyBhZGRlZCBjaGVja3MgZm9yIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHMgb24g',
+ 'ZXh0ZW5zaW9ucy4KCiMjIyBEYXJ0IFZNCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQxMTAw',
+ 'XVtdOiBXaGVuIHByaW50aW5nIGEgc3RyaW5nIHVzaW5nIHRoZSBgcHJpbnRgCiAgICBmdW5jdGlv',
+ 'biwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gKHVzZWQgd2hlbiBub3Qgb3ZlcnJpZGRlbiBi',
+ 'eSB0aGUKICAgIGVtYmVkZGVyIG9yIHRoZSBjdXJyZW50IHpvbmUpIHdpbGwgcHJpbnQgYW55IHVu',
+ 'cGFpcmVkIHN1cnJvZ2F0ZXMgaW4gdGhlCiAgICBzdHJpbmcgYXMgcmVwbGFjZW1lbnQgY2hhcmFj',
+ 'dGVycyAoYFUrRkZGRGApLiBTaW1pbGFybHksIHRoZQogICAgYERhcnRfU3RyaW5nVG9VVEY4YCBm',
+ 'dW5jdGlvbiBpbiB0aGUgRGFydCBBUEkgd2lsbCBjb252ZXJ0IHVucGFpcmVkCiAgICBzdXJyb2dh',
+ 'dGVzIGludG8gcmVwbGFjZW1lbnQgY2hhcmFjdGVycy4KCiMjIyBQdWIKKiBgcHViIHJ1bmAgYW5k',
+ ];
+}
+
+List<String> _f7(String s) {
+ return [
+ s,
+ 'IGBwdWIgZ2xvYmFsIHJ1bmAgYWNjZXB0cyBhIGAtLWVuYWJsZS1leHBlcmltZW50YCBmbGFnIGVu',
+ 'YWJsaW5nCiAgZXhwZXJpbWVudHMgaW4gdGhlIERhcnQgVk0gKGFuZCBsYW5ndWFnZSkuCiogV2Fy',
+ 'biB3aGVuIHB1Ymxpc2hpbmcgdGhlIGZpcnN0IG51bGwtc2FmZSB2ZXJzaW9uIG9mIGEgcGFja2Fn',
+ 'ZS4KKiBgcHViIG91dGRhdGVkYDoKICAqIElmIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgYSBkZXBl',
+ 'bmRlbmN5IGlzIGEgcHJlcmVsZWFzZQogICAgdmVyc2lvbiwgdXNlIHByZXJlbGVhc2VzIGZvciBs',
+ 'YXRlc3QgaWYgdGhlcmUgaXMgbm8gbmV3ZXIgc3RhYmxlLgogICogRG9uJ3QgcmVxdWlyZSBhIGBw',
+ 'dWJzcGVjLmxvY2tgIGZpbGUuIFdoZW4gdGhlIGxvY2tmaWxlIGlzIG1pc3NpbmcsIHRoZQogICAg',
+ 'KipDdXJyZW50KiogY29sdW1uIGlzIGVtcHR5LgoqIGBwdWIgdXBncmFkZWA6IFNob3cgc3VtbWFy',
+ 'eSBjb3VudCBvZiBvdXRkYXRlZCBwYWNrYWdlcyBhZnRlciBydW5uaW5nLgogIEl0IHdpbGwgYWxz',
+ 'byBvbmx5IHNob3cgbmV3ZXIgcGFja2FnZXMgaWYgdGhleSBhcmUgbm90IHByZXJlbGVhc2VzIG9y',
+ 'CiAgdGhlIHBhY2thZ2UgaXMgYWxyZWFkeSBhIHByZXJlbGVhc2UuCiogUHVibGlzaGluZyBGbHV0',
+ 'dGVyIHBsdWdpbnMgdXNpbmcgdGhlIG9sZCBwbHVnaW4gZm9ybWF0IGlzIG5vIGxvbmdlciBhbGxv',
+ 'd2VkLgogIFBsdWdpbnMgdXNpbmcgdGhlIG9sZCBwbHVnaW4gZm9ybWF0IGNhbiBzdGlsbCBiZSBj',
+ 'b25zdW1lZC4KKiBgcHViIHJ1bmA6IEZpeCBwcmVjb21waWxhdGlvbiB3aXRoIHJlbGF0aXZlIGBQ',
+ 'VUJfQ0FDSEVgIHBhdGhzCiAgKFsjMjQ4Nl0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9w',
+ 'dWIvcHVsbC8yNDg2KSkuCiogUHJlc2VydmUgV2luZG93cyBsaW5lIGVuZGluZ3MgaW4gYHB1YnNw',
+ 'ZWMubG9ja2AgaWYgdGhleSBhcmUgYWxyZWFkeSB0aGVyZQogIChbIzI0ODldKGh0dHBzOi8vZ2l0',
+ 'aHViLmNvbS9kYXJ0LWxhbmcvcHViL3B1bGwvMjQ4OSkpLgoqIEJldHRlciB0ZXJtaW5hbCBjb2xv',
+ 'ci1kZXRlY3Rpb24uIFVzZSBjb2xvcnMgaW4gdGVybWluYWxzIG9uIFdpbmRvd3MuCiogRml4IGdp',
+ 'dCBmb2xkZXIgbmFtZXMgaW4gY2FjaGUsIGFsbG93aW5nIGZvciBzc2gtc3R5bGUgZ2l0CiAgZGVw',
+ 'ZW5kZW5jaWVzLgoqIEZpeDogQXZvaWQgcHJlY29tcGlsYXRpb24gb2YgZGVwZW5kZW5jaWVzIG9m',
+ 'IGdsb2JhbCBwYWNrYWdlcy4KCiMjIDIuOC40IC0gMjAyMC0wNi0wNAoKVGhpcyBpcyBhIHBhdGNo',
+ 'IHJlbGVhc2UgdGhhdCBmaXhlcyBwb3RlbnRpYWwgbWVtb3J5IGxlYWtzIGluIHRoZSBEYXJ0IGZy',
+ 'b250LWVuZAooaXNzdWVzIFsjNDIxMTFdW10gYW5kIFsjNDIxMTJdW10pLgoKWyM0MjExMV06IGh0',
+ 'dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80MjExMQpbIzQyMTEyXTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQyMTEyCgojIyAyLjguMyAtIDIw',
+ 'MjAtMDUtMjgKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRoYXQgZml4ZXMgdGhlIGZvbGxvd2lu',
+ 'ZyBpc3N1ZXM6CiogY3Jhc2hlcyBpbiBGbHV0dGVyIGFwcHMgKGlzc3VlIFtmbHV0dGVyL2ZsdXR0',
+ 'ZXIjNTczMThdW10pLgoqIGEgcmVncmVzc2lvbiBpbiBzdGFjayB0cmFjZXMgKGlzc3VlIFsjNDE5',
+ 'MDddW10pLgoqIHJlLWNhbm9uaWNhbGl6YXRpb24gb2YgY29uc3RhbnRzIHdpdGggdW5ib3hlZCBm',
+ 'aWVsZHMgKGlzc3VlCltmbHV0dGVyL2ZsdXR0ZXIjNTcxOTBdW10pLgoKW2ZsdXR0ZXIvZmx1dHRl',
+ 'ciM1NzMxOF06IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIvaXNzdWVzLzU3MzE4',
+ 'ClsjNDE5MDddOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDE5MDcK',
+ 'W2ZsdXR0ZXIvZmx1dHRlciM1NzE5MF06IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0',
+ 'ZXIvaXNzdWVzLzU3MTkwCgojIyAyLjguMiAtIDIwMjAtMDUtMTMKClRoaXMgaXMgYSBwYXRjaCBy',
+ 'ZWxlYXNlIHRoYXQgZml4ZXMgYW4gQU9UIGNvbXBpbGF0aW9uIGJ1ZyBpbiBnbG9iYWwKdHJhbnNm',
+ 'b3JtYXRpb25zIHdoaWNoIG1hbmlmZXN0cyBhcyBhIE5vU3VjaE1ldGhvZCBleGNlcHRpb24KKGlz',
+ 'c3VlIFtmbHV0dGVyL2ZsdXR0ZXIjNTY0NzldW10pLgoKW2ZsdXR0ZXIvZmx1dHRlciM1NjQ3OV06',
+ 'IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIvaXNzdWVzLzU2NDc5CgojIyAyLjgu',
+ 'MSAtIDIwMjAtMDUtMDYKCk11Y2ggb2YgdGhlIGNoYW5nZXMgaW4gdGhpcyByZWxlYXNlIGFyZSBp',
+ 'biBwcmVwYXJhdGlvbiBmb3Igbm9uLW51bGxhYmxlIHR5cGVzLAp3aGljaCB3aWxsIGFycml2ZSBp',
+ 'biBhIGZ1dHVyZSB2ZXJzaW9uLiBJbiBhbnRpY2lwYXRpb24gb2YgdGhhdCwgd2UgaGF2ZSBtYWRl',
+ 'IGEKbnVtYmVyIG9mIHNtYWxsIGJ1dCB0ZWNobmljYWxseSBicmVha2luZyBjaGFuZ2VzIHRvIHNl',
+ 'dmVyYWwgY29yZSBsaWJyYXJ5IEFQSXMgaW4Kb3JkZXIgdG8gbWFrZSB0aGVtIGVhc2llciB0byB1',
+ 'c2UgaW4gYSB3b3JsZCB3aXRoIG5vbi1udWxsYWJsZSB0eXBlcy4gQWxtb3N0IGFsbApleGlzdGlu',
+ 'ZyBEYXJ0IGNvZGUgd2lsbCBiZSB1bmFmZmVjdGVkIGJ5IHRoZXNlIGNoYW5nZXMsIGJ1dCBpZiB5',
+ 'b3Ugc2VlCnVuZXhwZWN0ZWQgZmFpbHVyZXMsIG5vdGUgdGhlIGJyZWFraW5nIGNoYW5nZXMgbGlz',
+ 'dGVkIGJlbG93LgoKIyMjIExhbmd1YWdlCgpUaGVyZSBhcmUgbm8gbmV3IGxhbmd1YWdlIGZlYXR1',
+ 'cmVzIGluIHRoaXMgcmVsZWFzZS4gVGhlcmUgYXJlIG9ubHkgdHdvCm1pbm9yIGJyZWFraW5nIGNo',
+ 'YW5nZXM6CgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNjc1XVtdOiBGaXhlZCBhbiBpbXBs',
+ 'ZW1lbnRhdGlvbiBidWcgd2hlcmUgbG9jYWwKICAgIHZhcmlhYmxlIGluZmVyZW5jZSB3b3VsZCBp',
+ 'bmNvcnJlY3RseSB1c2UgdGhlIHByb21vdGVkIHR5cGUgb2YgYSB0eXBlCiAgICB2YXJpYWJsZS4K',
+ 'CiogICAqKkJyZWFraW5nIGNoYW5nZSoqIFsjNDEzNjJdW106IERhcnQgMi4wLjAgbWFkZSB0aGUg',
+ 'Y2xhdXNlcyBgaW1wbGVtZW50cwogICAgRnVuY3Rpb25gLCBgZXh0ZW5kcyBGdW5jdGlvbmAsIG9y',
+ 'IGB3aXRoIEZ1bmN0aW9uYCBoYXZlIG5vIGVmZmVjdCAoc3BlYwogICAgc2VjdGlvbiAxOS42KS4g',
+ 'V2UgZml4ZWQgYW4gaW1wbGVtZW50YXRpb24gYnVnIHRoYXQgbWF5IGJlIHZpc2libGUgb24gc29t',
+ 'ZQogICAgcmFyZSBzY2VuYXJpb3MuCgpbIzQwNjc1XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQt',
+ 'bGFuZy9zZGsvaXNzdWVzLzQwNjc1ClsjNDEzNjJdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1s',
+ 'YW5nL3Nkay9pc3N1ZXMvNDEzNjIKCiMjIyBDb3JlIGxpYnJhcmllcwoKIyMjIyBgZGFydDphc3lu',
+ 'Y2AKCiogICAqKkJyZWFraW5nIGNoYW5nZSoqIFsjNDA2NzZdW106IENoYW5nZWQgdGhlIHJldHVy',
+ 'biB0eXBlIG9mCiAgICBgU3RyZWFtU3Vic2NyaXB0aW9uLmNhbmNlbCgpYCAgdG8gYEZ1dHVyZTx2',
+ 'b2lkPmAuIFByZXZpb3VzbHksIGl0IHdhcwogICAgZGVjbGFyZWQgdG8gcmV0dXJuIGBGdXR1cmVg',
+ 'IGFuZCB3YXMgYWxsb3dlZCB0byByZXR1cm4gYG51bGxgIGF0IHJ1bnRpbWUuCgoqICAgKipCcmVh',
+ 'a2luZyBjaGFuZ2UqKiBbIzQwNjgxXVtdOiBUaGUgYHJ1blpvbmVkKClgIGZ1bmN0aW9uIGlzIHNw',
+ 'bGl0IGludG8gdHdvCiAgICBmdW5jdGlvbnM6IGBydW5ab25lZCgpYCBhbmQgYHJ1blpvbmVkR3Vh',
+ 'cmRlZCgpYCwgd2hlcmUgdGhlIGxhdHRlciBoYXMgYQogICAgcmVxdWlyZWQgYG9uRXJyb3JgIHBh',
+ 'cmFtZXRlciwgYW5kIHRoZSBmb3JtZXIgaGFzIG5vbmUuIFRoaXMgcHJlcGFyZXMgdGhlCiAgICBm',
+ 'dW5jdGlvbnMgZm9yIG51bGwgc2FmZXR5IHdoZXJlIHRoZSB0d28gZnVuY3Rpb25zIHdpbGwgZGlm',
+ 'ZmVyIGluIHRoZQogICAgbnVsbGFiaWxpdHkgb2YgdGhlaXIgcmV0dXJuIHR5cGVzLgoKKiAgICoq',
+ 'QnJlYWtpbmcgY2hhbmdlKiogWyM0MDY4M11bXTogRXJyb3JzIHBhc3NlZCB0bwogICAgYENvbXBs',
+ 'ZXRlci5jb21wbGV0ZUVycm9yKClgLCBgU3RyZWFtLmFkZEVycm9yKClgLCBgRnV0dXJlLmVycm9y',
+ 'KClgLCBldGMuIGNhbgogICAgbm8gbG9uZ2VyIGJlIGBudWxsYC4gVGhlc2Ugb3BlcmF0aW9ucyBu',
+ 'b3cgKnN5bmNocm9ub3VzbHkqIHRocm93IGFuIGV4Y2VwdGlvbgogICAgaWYgcGFzc2VkIGEgYG51',
+ 'bGxgIGVycm9yLgoKKiAgIE1ha2Ugc3RhY2sgdHJhY2VzIG5vbi1udWxsIFsjNDAxMzBdW10uIFdo',
+ 'ZXJlIG1ldGhvZHMgbGlrZQogICAgYGNvbXBsZXRlci5jb21wbGV0ZUVycm9yKClgIGFsbG93IG9t',
+ 'aXR0aW5nIGEgc3RhY2sgdHJhY2UsIHRoZSBwbGF0Zm9ybSB3aWxsCiAgICBub3cgaW5zZXJ0IGEg',
+ 'ZGVmYXVsdCBzdGFjayB0cmFjZSByYXRoZXIgdGhhbiBwcm9wYWdhdGUgYSBgbnVsbGAgdmFsdWUu',
+ 'CgogICAgRXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25zIG5lZWQgbm8gbG9uZ2VyIGJlIHByZXBhcmVk',
+ 'IGZvciBgbnVsbGAgc3RhY2sgdHJhY2VzLgoKWyM0MDY3Nl06IGh0dHBzOi8vZ2l0aHViLmNvbS9k',
+ 'YXJ0LWxhbmcvc2RrL2lzc3Vlcy80MDY3NgpbIzQwNjgxXTogaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzQwNjgxClsjNDA2ODNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay9pc3N1ZXMvNDA2ODMKWyM0MDEzMF06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy80MDEzMAoKIyMjIyBgZGFydDpjb3JlYAoKKiAgICoqQnJlYWtpbmcg',
+ 'Y2hhbmdlKiogWyM0MDY3NF1bXTogVGhyZWUgbWVtYmVycyBvbiBgUnVuZUl0ZXJhdG9yYCBubyBs',
+ 'b25nZXIKICAgIHJldHVybiBgbnVsbGAgd2hlbiBhY2Nlc3NlZCBiZWZvcmUgdGhlIGZpcnN0IGNh',
+ 'bGwgdG8gYG1vdmVOZXh0KClgLiBJbnN0ZWFkLAogICAgYGN1cnJlbnRgIGFuZCBgcmF3SW5kZXhg',
+ 'IHJldHVybiBgLTFgIGFuZCBgY3VycmVudEFzU3RyaW5nYCByZXR1cm5zIGFuIGVtcHR5CiAgICBz',
+ 'dHJpbmcuCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNjc4XVtdOiBUaGUgYFN0cmluZy5m',
+ 'cm9tRW52aXJvbm1lbnQoKWAgZGVmYXVsdCB2YWx1ZQogICAgZm9yIGBkZWZhdWx0VmFsdWVgIGlz',
+ 'IG5vdyBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBgbnVsbGAuIExpa2V3aXNlLCB0aGUKICAg',
+ 'IGRlZmF1bHQgdmFsdWUgZm9yIGBpbnQuZnJvbUVudmlyb25tZW50KClgJ3MgYGRlZmF1bHRWYWx1',
+ 'ZWAgcGFyYW1ldGVyIGlzCiAgICB6ZXJvLiBVbmRlciBudWxsIHNhZmV0eSwgYSBjb25zdHJ1Y3Rv',
+ 'ciBjYW5ub3QgcmV0dXJuIGBudWxsYCwgc28gdGhpcwogICAgcHJlcGFyZXMgdGhlc2UgQVBJcyBm',
+ 'b3IgdGhhdC4KCiogICBUaGUgY2xhc3MgYENhc3RFcnJvcmAgaXMgZGVwcmVjYXRlZCwgYW5kIGFs',
+ 'bCBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBjbGFzc2VzCiAgICBpbXBsZW1lbnRpbmcgYFR5cGVF',
+ 'cnJvcmAgb3IgYENhc3RFcnJvcmAgbm93IGltcGxlbWVudCBib3RoLiAgSW4gYSBmdXR1cmUKICAg',
+ 'IHJlbGVhc2UsIGBDYXN0RXJyb3JgIHdpbGwgYmUgcmVtb3ZlZC4gIFNlZSBpc3N1ZSBbNDA3NjNd',
+ 'W10gZm9yIGRldGFpbHMuCgoqICAgQWRkcyBgU3RhY2tUcmFjZS5lbXB0eWAgY29uc3RhbnQgd2hp',
+ 'Y2ggaXMgdGhlIHN0YWNrIHRyYWNlIHVzZWQgYXMgZGVmYXVsdAogICAgc3RhY2sgdHJhY2Ugd2hl',
+ 'biBubyBiZXR0ZXIgYWx0ZXJuYXRpdmUgaXMgYXZhaWxhYmxlLgoKKiAgIFRoZSBjbGFzcyBgVHlw',
+ ];
+}
+
+List<String> _f8(String s) {
+ return [
+ s,
+ 'ZUVycm9yYCBubyBsb25nZXIgZXh0ZW5kcyBgQXNzZXJ0aW9uRXJyb3JgLiBUaGlzIGFsc28gbWVh',
+ 'bnMKICAgIHRoYXQgaXQgbm8gbG9uZ2VyIGluaGVyaXRzIHRoZSBzcHVyaW91cyBgbWVzc2FnZWAg',
+ 'Z2V0dGVyIHdoaWNoIHdhcyBhZGRlZCB0bwogICAgYEFzc2VydGlvbkVycm9yYCB3aGVuIHRoZSBz',
+ 'ZWNvbmQgb3BlcmFuZCB0byBgYXNzZXJ0YCB3YXMgYWxsb3dlZC4gVGhlIHZhbHVlCiAgICBvZiB0',
+ 'aGF0IGdldHRlciBvbiBhIGBUeXBlRXJyb3JgIHdhcyB0aGUgc2FtZSBzdHJpbmcgYXMgcmV0dXJu',
+ 'ZWQgYnkKICAgIGB0b1N0cmluZygpYCwgc28gaXQgaXMgc3RpbGwgYXZhaWxhYmxlLgoKKiAgIGBB',
+ 'cmd1bWVudEVycm9yLmNoZWNrTm90TnVsbCgpYCBhbmQgdGhlIGBSYW5nZUVycm9yYCBzdGF0aWMg',
+ 'bWV0aG9kcwogICAgYGNoZWNrVmFsdWVJbkludGVydmFsKClgLCBgY2hlY2tWYWxpZEluZGV4KClg',
+ 'IGFuZCBgY2hlY2tOb3ROZWdhdGl2ZSgpYCBhbGwKICAgIHJldHVybiB0aGVpciBmaXJzdCBhcmd1',
+ 'bWVudCBvbiBzdWNjZXNzLiBUaGlzIG1ha2VzIHRoZXNlIGZ1bmN0aW9ucyBtb3JlCiAgICBjb252',
+ 'ZW5pZW50IHRvIHVzZSBpbi1saW5lIGluLCBmb3IgZXhhbXBsZSwgYD0+YCBmdW5jdGlvbiBib2Rp',
+ 'ZXMgb3IKICAgIGNvbnN0cnVjdG9yIGluaXRpYWxpemF0aW9uIGxpc3RzLgoKWyM0MDY3NF06IGh0',
+ 'dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80MDY3NApbIzQwNjc4XTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQwNjc4Cls0MDc2M106IGh0dHBz',
+ 'Oi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80MDc2MwoKIyMjIyBgZGFydDpkZXZl',
+ 'bG9wZXJgCgoqICAgVGhlIGNvbnN0cnVjdG9ycyBmb3IgYFRpbWVsaW5lVGFza2Agbm93IGFjY2Vw',
+ 'dCBhbiBvcHRpb25hbCBgZmlsdGVyS2V5YAogICAgcGFyYW1ldGVyLiBJZiBwcm92aWRlZCwgdGhl',
+ 'IGFyZ3VtZW50cyBmb3IgYWxsIGV2ZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlCiAgICB0YXNrIHdp',
+ 'bGwgY29udGFpbiBhbiBlbnRyeSBuYW1lZCBgZmlsdGVyS2V5YCwgc2V0IHRvIHRoZSB2YWx1ZSBv',
+ 'ZiB0aGUKICAgIGBmaWx0ZXJLZXlgIHBhcmFtZXRlciBwcm92aWRlZCBpbiB0aGUgY29uc3RydWN0',
+ 'b3IuIFRoaXMgd2lsbCBiZSB1c2VkIGJ5CiAgICB0b29saW5nIHRvIGFsbG93IGZvciBiZXR0ZXIg',
+ 'ZmlsdGVyaW5nIG9mIHRpbWVsaW5lIGV2ZW50cy4KCiMjIyMgYGRhcnQ6aHRtbGAKCiogICAqKkJy',
+ 'ZWFraW5nIENoYW5nZSoqIFsjMzk2MjddW106IENoYW5nZWQgdGhlIHJldHVybiB0eXBlIG9mIHNl',
+ 'dmVyYWwgSFRNTAogICAgbmF0aXZlIG1ldGhvZHMgaW52b2x2aW5nIGZ1dHVyZXMuIEluIHJldHVy',
+ 'biB0eXBlcyB0aGF0IG1hdGNoZWQKICAgIGBGdXR1cmU8TGlzdDxUPj5gLCBgVCB3YXNgIGNoYW5n',
+ 'ZWQgdG8gYGR5bmFtaWNgLiBUaGVzZSBtZXRob2RzIHdvdWxkIGhhdmUKICAgIHJlc3VsdGVkIGlu',
+ 'IGEgcnVudGltZSBlcnJvciBpZiB0aGV5IHdlcmUgdXNlZC4KCiogICAqKkJyZWFraW5nIENoYW5n',
+ 'ZSoqOiBgTm9kZS5pbnNlcnRBbGxCZWZvcmUoKWAgZXJyb25lb3VzbHkgaGFkIGEgcmV0dXJuIHR5',
+ 'cGUKICAgIG9mIGBOb2RlYCwgZXZlbiB0aG91Z2ggaXQgd2FzIG5vdCByZXR1cm5pbmcgYW55dGhp',
+ 'bmcuIFRoaXMgaGFzIGJlZW4KICAgIGNvcnJlY3RlZCB0byBgdm9pZGAuCgpbIzM5NjI3XTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzM5NjI3CgojIyMjIGBkYXJ0Omlv',
+ 'YAoKKiAgIENsYXNzIGBIdHRwUGFyc2VyYCB3aWxsIG5vIGxvbmdlciB0aHJvdyBhbiBleGNlcHRp',
+ 'b24gd2hlbiBhIEhUVFAgcmVzcG9uc2UKICAgIHN0YXR1cyBjb2RlIGlzIHdpdGhpbiBbMCwgOTk5',
+ 'XS4gQ3VzdG9taXplZCBzdGF0dXMgY29kZXMgaW4gdGhpcyByYW5nZSBhcmUKICAgIG5vdyB2YWxp',
+ 'ZC4KCiogICAqKkJyZWFraW5nIGNoYW5nZSoqIFsjMzM1MDFdW106IFRoZSBzaWduYXR1cmUgb2Yg',
+ 'YEh0dHBIZWFkZXJzYCBtZXRob2RzCiAgICBgYWRkKClgIGFuZCBgc2V0YCBoYXZlIGJlZW4gY2hh',
+ 'bmdlZCB0bzoKCiAgICBgYGBkYXJ0CiAgICB2b2lkIGFkZChTdHJpbmcgbmFtZSwgT2JqZWN0IHZh',
+ 'bHVlLCB7Ym9vbCBwcmVzZXJ2ZUhlYWRlckNhc2U6IGZhbHNlfSkKICAgIHZvaWQgc2V0KFN0cmlu',
+ 'ZyBuYW1lLCBPYmplY3QgdmFsdWUsIHtib29sIHByZXNlcnZlSGVhZGVyQ2FzZTogZmFsc2V9KQog',
+ 'ICAgYGBgCgogICAgU2V0dGluZyBgcHJlc2VydmVIZWFkZXJDYXNlYCB0byBgdHJ1ZWAgcHJlc2Vy',
+ 'dmVzIHRoZSBjYXNlIG9mIHRoZSBgbmFtZWAKICAgIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGNvbnZl',
+ 'cnRpbmcgaXQgdG8gbG93ZXJjYXNlLiBUaGUgYEh0dHBIZWFkZXIuZm9yRWFjaCgpYAogICAgbWV0',
+ 'aG9kIHByb3ZpZGVzIHRoZSBjdXJyZW50IGNhc2Ugb2YgZWFjaCBoZWFkZXIuCgogICAgVGhpcyBp',
+ 'cyBicmVha2luZyBvbmx5IGZvciBjbGFzc2VzIGV4dGVuZGluZyBvciBpbXBsZW1lbnRpbmcgYEh0',
+ 'dHBIZWFkZXJzYAogICAgYW5kIGhhdmluZyB0aGVpciBvd24gYGFkZGAgb3IgYHNldGAgbWV0aG9k',
+ 'cyB3aXRob3V0IHRoZSBgYm9vbAogICAgcHJlc2VydmVIZWFkZXJDYXNlYCBuYW1lZCBwYXJhbWV0',
+ 'ZXIuCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNzAyXVtdOiBUaGUgYFNvY2tldGAgY2xh',
+ 'c3Mgbm93IHRocm93cyBhCiAgICBgU29ja2V0RXhjZXB0aW9uYCBpZiB0aGUgc29ja2V0IGhhcyBi',
+ 'ZWVuIGV4cGxpY2l0bHkgZGVzdHJveWVkIG9yIHVwZ3JhZGVkIHRvCiAgICBhIHNlY3VyZSBzb2Nr',
+ 'ZXQgdXBvbiBzZXR0aW5nIG9yIGdldHRpbmcgc29ja2V0IG9wdGlvbnMuIFByZXZpb3VzbHksIHNl',
+ 'dHRpbmcKICAgIGEgc29ja2V0IG9wdGlvbiB3b3VsZCBiZSBpZ25vcmVkIGFuZCBnZXR0aW5nIGEg',
+ 'c29ja2V0IG9wdGlvbiB3b3VsZCByZXR1cm4KICAgIGBudWxsYC4KCiogICAqKkJyZWFraW5nIGNo',
+ 'YW5nZSoqIFsjNDA0ODNdW106IFRoZSBgUHJvY2Vzc2AgY2xhc3Mgbm93IHRocm93cyBhCiAgICBg',
+ 'U3RhdGVFcnJvcmAgaWYgdGhlIHByb2Nlc3MgaXMgZGV0YWNoZWQgKGBQcm9jZXNzU3RhcnRNb2Rl',
+ 'LmRldGFjaGVkYCBhbmQKICAgIGBQcm9jZXNzU3RhcnRNb2RlLmRldGFjaGVkV2l0aFN0ZGlvYCkg',
+ 'dXBvbiBhY2Nlc3NpbmcgdGhlIGBleGl0Q29kZWAgZ2V0dGVyLgogICAgSXQgbm93IGFsc28gdGhy',
+ 'b3dzIHdoZW4gbm90IGNvbm5lY3RlZCB0byB0aGUgY2hpbGQgcHJvY2VzcydzIHN0ZGlvCiAgICAo',
+ 'YFByb2Nlc3NTdGFydE1vZGUuZGV0YWNoZWRgIGFuZCBgUHJvY2Vzc1N0YXJ0TW9kZS5pbmhlcml0',
+ 'U3RkaW9gKSB1cG9uCiAgICBhY2Nlc3NpbmcgdGhlIGBzdGRpbmAsIGBzdGRvdXRgLCBhbmQgYHN0',
+ 'ZGVycmAgZ2V0dGVycy4gUHJldmlvdXNseSwgdGhlc2UKICAgIGdldHRlcnMgd291bGQgYWxsIHJl',
+ 'dHVybiBgbnVsbGAuCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNzA2XVtdOiBUaGUgZHVt',
+ 'bXkgb2JqZWN0IHJldHVybmVkIGlmCiAgICBgRmlsZVN0YXQuc3RhdCgpYCBvciBgRmlsZVN0YXQu',
+ 'c3RhdFN5bmMoKWAgZmFpbCBub3cgY29udGFpbnMgVW5peCBlcG9jaAogICAgdGltZXN0YW1wcyBp',
+ 'bnN0ZWFkIG9mIGBudWxsYCBmb3IgdGhlIGBhY2Nlc3NlZGAsIGBjaGFuZ2VkYCwgYW5kIGBtb2Rp',
+ 'ZmllZGAKICAgIGdldHRlcnMuCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNzA5XVtdOiBU',
+ 'aGUgYEhlYWRlclZhbHVlYCBjbGFzcyBub3cgcGFyc2VzIG1vcmUKICAgIHN0cmljdGx5IGluIHR3',
+ 'byBpbnZhbGlkIGVkZ2UgY2FzZXMuIFRoaXMgaXMgdGhlIGNsYXNzIHVzZWQgdG8gcGFyc2UgdGhl',
+ 'CiAgICBzZW1pY29sb24gZGVsaW1pdGVkIHBhcmFtZXRlcnMgdXNlZCBpbiB0aGUgYEFjY2VwdGAs',
+ 'IGBBdXRob3JpemF0aW9uYCwKICAgIGBDb250ZW50LVR5cGVgLCBhbmQgb3RoZXIgc3VjaCBIVFRQ',
+ 'IGhlYWRlcnMuCgogICAgVGhlIGVtcHR5IHBhcmFtZXRlciB2YWx1ZSB3aXRob3V0IGRvdWJsZSBx',
+ 'dW90ZXMgKHdoaWNoIGlzIG5vdCBhbGxvd2VkIGJ5IHRoZQogICAgc3RhbmRhcmRzKSBpcyBub3cg',
+ 'cGFyc2VkIGFzIHRoZSBlbXB0eSBzdHJpbmcgcmF0aGVyIHRoYW4gYG51bGxgLiBFLmcuCiAgICBg',
+ 'SGVhZGVyVmFsdWUucGFyc2UoInY7YT0iKS5wYXJhbWV0ZXJzYCBub3cgZ2l2ZXMgYHsiYSI6ICIi',
+ 'fWAgcmF0aGVyIHRoYW4KICAgIGB7ImEiOiBudWxsfWAuCgogICAgSW52YWxpZCBpbnB1dHMgd2l0',
+ 'aCB1bmJhbGFuY2VkIGRvdWJsZSBxdW90ZXMgYXJlIG5vdyByZWplY3RlZC4gRS5nLgogICAgYEhl',
+ 'YWRlclZhbHVlLnBhcnNlKCd2O2E9ImInKS5wYXJhbWV0ZXJzYCB3aWxsIG5vdyB0aHJvdyBhIGBI',
+ 'dHRwRXhjZXB0aW9uYAogICAgaW5zdGVhZCBvZiBnaXZpbmcgYHsiYSI6ICJiIn1gLgoKKiAgIFRo',
+ 'ZSBgSGVhZGVyVmFsdWUudG9TdHJpbmcoKWAgbWV0aG9kIG5vdyBzdXBwb3J0cyBwYXJhbWV0ZXJz',
+ 'IHdpdGggYG51bGxgCiAgICB2YWx1ZXMgYnkgb21pdHRpbmcgdGhlIHZhbHVlLiBgSGVhZGVyVmFs',
+ 'dWUoInYiLCB7ImEiOiBudWxsLCAiYiI6CiAgICAiYyJ9KS50b1N0cmluZygpYCBub3cgZ2l2ZXMg',
+ 'YHY7IGE7IGI9Y2AuIFRoaXMgYmVoYXZpb3IgY2FuIGJlIHVzZWQgdG8KICAgIGltcGxlbWVudCBz',
+ 'b21lIGZlYXR1cmVzIGluIHRoZSBgQWNjZXB0YCBhbmQgYFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9u',
+ 'c2AKICAgIGhlYWRlcnMuCgogICAgTGlrZXdpc2UgdGhlIGVtcHR5IHZhbHVlIGFuZCB2YWx1ZXMg',
+ 'dXNpbmcgY2hhcmFjdGVycyBvdXRzaWRlIG9mIFtSRkMgNzIzMAogICAgdG9rZW5zXVtdIGFyZSBu',
+ 'b3cgY29ycmVjdGx5IGltcGxlbWVudGVkIGJ5IGRvdWJsZSBxdW90aW5nIHN1Y2ggdmFsdWVzIHdp',
+ 'dGgKICAgIGVzY2FwZSBzZXF1ZW5jZXMuIEZvciBleGFtcGxlOgoKICAgIGBgYGRhcnQKICAgIEhl',
+ 'YWRlclZhbHVlKCJ2IiwKICAgICAgICB7ImEiOiAiQSIsICJiIjogIihCKSIsICJjIjogIiIsICJk',
+ 'IjogIsO4IiwgImUiOiAiXFxcIiJ9KS50b1N0cmluZygpCiAgICBgYGAKCiAgICBHaXZlczogYHY7',
+ 'YT1BO2I9IihCKSI7Yz0iIjtkPSLDuCI7ZT0iXFxcIiJgLgoKKiAgIFtVbml4IGRvbWFpbiBzb2Nr',
+ 'ZXRzXVtdIGFyZSBub3cgc3VwcG9ydGVkIG9uIExpbnV4LCBBbmRyb2lkIGFuZCBNYWNPUywgd2hp',
+ 'Y2gKICAgIGNhbiBiZSB1c2VkIGJ5IHBhc3NpbmcgYSBgSW50ZXJuZXRBZGRyZXNzYCBvZiBgSW50',
+ 'ZXJuZXRBZGRyZXNzVHlwZS5Vbml4YAogICAgaW50byB0aGUgYGNvbm5lY3QoKWAsIGBzdGFydENv',
+ 'bm5lY3QoKWAgYW5kIGBiaW5kKClgIG1ldGhvZHMuIFRoZSBgcG9ydGAKICAgIGFyZ3VtZW50IGlu',
+ 'IHRob3NlIG1ldGhvZHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgYHBvcnRgIGdldHRlciBhbHdheXMg',
+ 'cmV0dXJucwogICAgMCBmb3IgVW5peCBkb21haW4gc29ja2V0cy4KCiogICBDbGFzcyBgSW50ZXJu',
+ 'ZXRBZGRyZXNzVHlwZWAgZ2FpbnMgb25lIG1vcmUgb3B0aW9uIGBVbml4YCwgd2hpY2ggcmVwcmVz',
+ 'ZW50cyBhCiAgICBVbml4IGRvbWFpbiBhZGRyZXNzLgoKKiAgIENsYXNzIGBJbnRlcm5ldEFkZHJl',
+ 'c3NgOgoKICAgICogICBgSW50ZXJuZXRBZGRyZXNzYCBjb25zdHJ1Y3RvciBnYWlucyBhbiBvcHRp',
+ 'b25hbCBgdHlwZWAgcGFyYW1ldGVyLiBUbwogICAgICAgIGNyZWF0ZSBhIFVuaXggZG9tYWluIGFk',
+ 'ZHJlc3MsIGB0eXBlYCBpcyBzZXQgdG8KICAgICAgICBgSW50ZXJuZXRBZGRyZXNzVHlwZS5Vbml4',
+ ];
+}
+
+List<String> _f9(String s) {
+ return [
+ s,
+ 'YCBhbmQgYGFkZHJlc3NgIGlzIGEgZmlsZSBwYXRoLgoKICAgICogICBgSW50ZXJuZXRBZGRyZXNz',
+ 'YCBnYWlucyBhIG5ldyBjb25zdHJ1Y3RvciBgZnJvbVJhd0FkZHJlc3MoKWAgdGhhdCB0YWtlcwog',
+ 'ICAgICAgIGFuIGFkZHJlc3MgaW4gYnl0ZSBmb3JtYXQgZm9yIEludGVybmV0IGFkZHJlc3NlcyBv',
+ 'ciByYXcgZmlsZSBwYXRoIGZvcgogICAgICAgIFVuaXggZG9tYWluIGFkZHJlc3Nlcy4KCiogICAq',
+ 'KkJyZWFraW5nIGNoYW5nZSoqIFsjNDA2ODFdW106IFRoZSBzdGF0aWMgbWV0aG9kcyBgcnVuWm9u',
+ 'ZWQoKWAgYW5kCiAgICBgcnVuV2l0aEh0dHBPdmVycmlkZXMoKWAgb24gYEh0dHBPdmVycmlkZXNg',
+ 'IG5vIGxvbmdlciBhY2NlcHQKICAgIGB6b25lU3BlY2lmaWNhdGlvbmAgYW5kIGBvbkVycm9yYCBw',
+ 'YXJhbWV0ZXJzLiBVc2UgdGhlIGBydW5ab25lZCgpYCBvcgogICAgYHJ1blpvbmVkR3VhcmRlZCgp',
+ 'YCBmdW5jdGlvbnMgZnJvbSBgZGFydDphc3luY2AgZGlyZWN0bHkgaWYgbmVlZGluZyB0bwogICAg',
+ 'c3BlY2lmeSB0aG9zZS4KCiogICBDbGFzcyBgSHR0cENsaWVudGAgYW5kIGBIdHRwU2VydmVyYCwg',
+ 'd2hlbiByZWNlaXZpbmcgYEh0dHBSZXF1ZXN0YCBvcgogICAgYEh0dHBDbGllbnRSZXNwb25zZWAs',
+ 'IHdpbGwgbm93IHB1dCBhIDhLIHNpemUgbGltaXQgb24gaXRzIGhlYWRlciBmaWVsZHMgYW5kCiAg',
+ 'ICB2YWx1ZXMuCgpbIzMzNTAxXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNz',
+ 'dWVzLzMzNTAxClsjNDA3MDJdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1',
+ 'ZXMvNDA3MDIKWyM0MDQ4M106IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vl',
+ 'cy80MDQ4MwpbIzQwNzA2XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVz',
+ 'LzQwNzA2ClsjNDA3MDldOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMv',
+ 'NDA3MDkKW1JGQyA3MjMwIHRva2Vuc106IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3',
+ 'MjMwI3NlY3Rpb24tMy4yLjYKW1VuaXggZG9tYWluIHNvY2tldHNdOiBodHRwczovL2VuLndpa2lw',
+ 'ZWRpYS5vcmcvd2lraS9Vbml4X2RvbWFpbl9zb2NrZXQKCiMjIyMgYGRhcnQ6bWlycm9yc2AKCiog',
+ 'ICBBZGRlZCBgTWlycm9yU3lzdGVtLm5ldmVyVHlwZWAuCgojIyMgRGFydCBWTQoKKiAgIEFkZGVk',
+ 'IGBEYXJ0X1R5cGVEeW5hbWljYCwgYERhcnRfVHlwZVZvaWRgIGFuZCBgRGFydF9UeXBlTmV2ZXJg',
+ 'LiBUeXBlCiAgICBgZHluYW1pY2AgY2FuIG5vIGxvbmdlciBieSByZWFjaGVkIHVzaW5nIGBEYXJ0',
+ 'X0dldFR5cGUoZGFydDpjb3JlLCBkeW5hbWljKWAuCgoqICAgQWRkZWQgdGhlIGZvbGxvd2luZyBt',
+ 'ZXRob2RzIHRvIHRoZSBWTSBlbWJlZGRpbmcgQVBJOgoKICAgICogYERhcnRfR2V0Tm9uTnVsbGFi',
+ 'bGVUeXBlKClgCiAgICAqIGBEYXJ0X0dldE51bGxhYmxlVHlwZSgpYAogICAgKiBgRGFydF9UeXBl',
+ 'VG9Ob25OdWxsYWJsZSgpYAogICAgKiBgRGFydF9UeXBlVG9OdWxsYWJsZSgpYAogICAgKiBgRGFy',
+ 'dF9Jc0xlZ2FjeVR5cGUoKWAKICAgICogYERhcnRfSXNOb25OdWxsYWJsZVR5cGUoKWAKICAgICog',
+ 'YERhcnRfSXNOdWxsYWJsZVR5cGUoKWAKCiMjIyBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSAo',
+ 'YGRhcnQ6ZmZpYCkKCiogICAqKkJyZWFraW5nIENoYW5nZSoqOiBDaGFuZ2VkIGBQb2ludGVyLmFz',
+ 'RnVuY3Rpb24oKWAgYW5kCiAgICBgRHluYW1pY0xpYnJhcnkubG9va3VwRnVuY3Rpb24oKWAgdG8g',
+ 'ZXh0ZW5zaW9uIG1ldGhvZHMuIEludm9raW5nIHRoZW0KICAgIGR5bmFtaWNhbGx5IHByZXZpb3Vz',
+ 'bHkgYWxyZWFkeSB0aHJldyBhbiBleGNlcHRpb24sIHNvIHRoZSBydW50aW1lIGJlaGF2aW9yCiAg',
+ 'ICBzdGF5cyB0aGUgc2FtZS4gSG93ZXZlciwgdGhlIGV4dGVuc2lvbiBtZXRob2RzIGFyZSBvbmx5',
+ 'IHZpc2libGUgaWYKICAgIGBkYXJ0OmZmaWAgaXMgaW1wb3J0ZWQgZGlyZWN0bHkuIFRoaXMgYnJl',
+ 'YWtzIGNvZGUgd2hlcmUgYGRhcnQ6ZmZpYCBpcyBub3QKICAgIGRpcmVjdGx5IGltcG9ydGVkLiBU',
+ 'byBmaXgsIGFkZDoKCiAgICBgYGBkYXJ0CiAgICBpbXBvcnQgJ2RhcnQ6ZmZpJzsKICAgIGBgYAoK',
+ 'IyMjIFRvb2xzCgojIyMjIERhcnQgRGV2IENvbXBpbGVyIChEREMpCgpXZSBmaXhlZCBzZXZlcmFs',
+ 'IGluY29uc2lzdGVuY2llcyBiZXR3ZWVuIEREQyBhbmQgRGFydDJKUyBzbyB0aGF0IHVzZXJzIGxl',
+ 'c3MKZnJlcXVlbnRseSBlbmNvdW50ZXIgY29kZSB0aGF0IGlzIGFjY2VwdGVkIGJ5IG9uZSBjb21w',
+ 'aWxlciBidXQgdGhlbiBmYWlscyBpbiB0aGUKb3RoZXIuCgoqICAgKipCcmVha2luZyBDaGFuZ2Uq',
+ 'KjogRGVsZXRlZCB0aGUgbGVnYWN5IChhbmFseXplciBiYXNlZCkgdmVyc2lvbiBvZiBEREMuIEZv',
+ 'cgogICAgYWRkaXRpb25hbCBkZXRhaWxzIHNlZSB0aGUgW2Fubm91bmNlbWVudF1bZGRjXS4KCiAg',
+ 'ICAqICAgVGhlIGAtLWtlcm5lbGAgb3B0aW9uIGlzIG5vdyBpZ25vcmVkIGFuZCBkZWZhdWx0cyB0',
+ 'byB0cnVlLiBUaGVyZSBpcyBubwogICAgICAgIGxvbmdlciBhbnkgd2F5IHRvIGludm9rZSB0aGUg',
+ 'bGVnYWN5IChhbmFseXplciBiYXNlZCkgdmVyc2lvbiBvZiBEREMuCgogICAgKiAgIENvbW1hbmQg',
+ 'bGluZSBhcmd1bWVudHMgdGhhdCB3ZXJlIG9ubHkgdXNlZCBmb3IgdGhlIGxlZ2FjeSBEREMgaGF2',
+ 'ZSBiZWVuCiAgICAgICAgcmVtb3ZlZC4KCiAgICAqICAgVGhlIHByZS1jb21waWxlZCBgZGFydF9z',
+ 'ZGsuanNgIGFydGlmYWN0cyBnZW5lcmF0ZWQgYnkgbGVnYWN5IEREQyBoYXZlCiAgICAgICAgYmVl',
+ 'biBkZWxldGVkIGZyb20gYGRhcnQtc2RrL2xpYi9kZXZfY29tcGlsZXJgIGluIGZhdm9yIG9mIHRo',
+ 'ZSB2ZXJzaW9ucwogICAgICAgIGxvY2F0ZWQgYXQgYGRhcnQtc2RrL2xpYi9kZXZfY29tcGlsZXIv',
+ 'a2VybmVsYC4KCiogICAqKkJyZWFraW5nIENoYW5nZSoqOiBGdW5jdGlvbnMgcGFzc2VkIHRvIEph',
+ 'dmFTY3JpcHQgdXNpbmcgdGhlIHJlY29tbWVuZGVkCiAgICBgcGFja2FnZTpqc2AgaW50ZXJvcCBz',
+ 'cGVjaWZpY2F0aW9uIG11c3Qgbm93IGJlIHdyYXBwZWQgd2l0aCBhIGNhbGwgdG8KICAgIGBhbGxv',
+ 'd0ludGVyb3BgLiBUaGlzIGJlaGF2aW9yIHdhcyBhbHdheXMgZW5mb3JjZWQgYnkgRGFydDJKUywg',
+ 'YnV0IHdhcyBub3QKICAgIGVuZm9yY2VkIGNvbnNpc3RlbnRseSBieSBEREMuIEl0IGlzIG5vdyBl',
+ 'bmZvcmNlZCBieSBib3RoLgoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKio6IENvbnN0cnVjdG9ycyBp',
+ 'biBgQEpTKClgIGNsYXNzZXMgbXVzdCBiZSBtYXJrZWQgd2l0aAogICAgYGV4dGVybmFsYC4gUHJl',
+ 'dmlvdXNseSB0aGUgYGV4dGVybmFsYCBjb3VsZCBiZSBvbWl0dGVkIGluIHNvbWUgY2FzZXMgd2l0',
+ 'aAogICAgRERDIGJ1dCBkb2luZyBzbyB3b3VsZCBjYXVzZSBpbmNvcnJlY3QgYmVoYXZpb3Igd2l0',
+ 'aCBEYXJ0MkpTLgoKKiAgIEpTIGludGVyb3AgY2xhc3NlcyB3aXRoIGFuIGluZGV4IG9wZXJhdG9y',
+ 'IGFyZSBub3cgc3RhdGljIGVycm9ycy4KCiogICBBbGwgcmVtYWluaW5nIHN1cHBvcnQgZnJvbSB0',
+ 'aGUgYGRhcnQ6bWlycm9yc2AgbGlicmFyeSBoYXMgYmVlbiByZW1vdmVkLiBVc2UKICAgIG9mIHRo',
+ 'aXMgbGlicmFyeSBvbiB0aGUgd2ViIGhhcyBiZWVuIHVuc3VwcG9ydGVkIGFuZCBwcmV2ZW50ZWQg',
+ 'YnkgdGhlIERhcnQKICAgIGJ1aWxkIHN5c3RlbXMgc2luY2UgRGFydCB2Mi4wLjAuIEFsbCBrbm93',
+ 'biBleGNlcHRpb24gY2FzZXMgaGF2ZSBiZWVuIGNsZWFuZWQKICAgIHVwLiBUaGlzIGNoYW5nZSBt',
+ 'YWtlcyBEREMgYW5kIERhcnQySlMgbm93IGJlaGF2ZSBjb25zaXN0ZW50bHkuCgogICAgVGhlIGxp',
+ 'YnJhcnkgY2FuIHN0aWxsIGJlIGltcG9ydGVkIG9uIHdlYiBhcHBzLCBidXQgYWxsIEFQSXMgdGhy',
+ 'b3cuIEluIGEKICAgIGZ1dHVyZSBicmVha2luZyBjaGFuZ2UgcmVsZWFzZSwgaW1wb3J0cyB0byB0',
+ 'aGlzIGxpYnJhcnkgd2lsbCBsaWtlbHkgYmVjb21lIGEKICAgIGNvbXBpbGUtdGltZSBlcnJvci4K',
+ 'CltkZGNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzg5OTQKCiMj',
+ 'IyMgRGFydDJKUwoKQSBuZXcgcmVwcmVzZW50YXRpb24gb2YgcnVudGltZSB0eXBlcyBpcyBlbmFi',
+ 'bGVkIGJ5IGRlZmF1bHQuCgpUaGlzIGNoYW5nZSBpcyBwYXJ0IG9mIGEgbG9uZyB0ZXJtIGdvYWwg',
+ 'b2YgbWFraW5nIHJ1bnRpbWUgY2hlY2tzIGNoZWFwZXIgYW5kCm1vcmUgZmxleGlibGUgZm9yIHVw',
+ 'Y29taW5nIGNoYW5nZXMgaW4gdGhlIGxhbmd1YWdlLiBUaGUgbmV3IHJlcHJlc2VudGF0aW9uCmRp',
+ 'c2VudGFuZ2xlcyBob3cgdHlwZXMgYW5kIGNsYXNzZXMgYXJlIHJlcHJlc2VudGVkIGFuZCBtYWtl',
+ 'cyB0eXBlcyBmaXJzdC1jbGFzcwp0byB0aGUgY29tcGlsZXIuIFRoaXMgbWFrZXMgaXQgcG9zc2li',
+ 'bGUgdG8gZG8gY2VydGFpbiBraW5kIG9mIG9wdGltaXphdGlvbnMgb24KdHlwZSBjaGVja3MgdGhh',
+ 'dCB3ZXJlIG5vdCBwb3NzaWJsZSBiZWZvcmUgYW5kIHdpbGwgZW5hYmxlIHVzIHRvIG1vZGVsCm5v',
+ 'bi1udWxsYWJsZSB0eXBlcyBpbiB0aGUgbmVhciBmdXR1cmUuCgpUaGlzIGNoYW5nZSBzaG91bGQg',
+ 'bm90IGFmZmVjdCB0aGUgc2VtYW50aWNzIG9mIHlvdXIgYXBwbGljYXRpb24sIGJ1dCBpdCBoYXMg',
+ 'c29tZQpyZWxhdGl2ZWx5IHNtYWxsIHZpc2libGUgZWZmZWN0cyB0aGF0IHdlIHdhbnQgdG8gaGln',
+ 'aGxpZ2h0OgoKKiAgIFR5cGVzIGFyZSBub3cgY2Fub25pY2FsaXplZCwgdGhpcyBmaXhlcyBhIGxv',
+ 'bmcgc3RhbmRpbmcgYnVnIHRoYXQgVHlwZXMgY291bGQKICAgIG5vdCBiZSB1c2VkIGluIHN3aXRj',
+ 'aCBjYXNlcyAoaXNzdWUgWzE3MjA3XVtdKS4KCiogICBDb2RlLXNpemUgY2hhbmdlcyBtYXkgYmUg',
+ 'dmlzaWJsZSwgYnV0IHRoZSBkaWZmZXJlbmNlIGlzIHNtYWxsIG92ZXJhbGwuIEl0IGlzCiAgICBt',
+ 'b3JlIHZpc2libGUgb24gc21hbGxlciBhcHBzIGJlY2F1c2UgdGhlIG5ldyBpbXBsZW1lbnRhdGlv',
+ 'biBpbmNsdWRlcyBtb3JlCiAgICBoZWxwZXIgbWV0aG9kcy4gT24gbGFyZ2UgYXBwcyB3ZSBoYXZl',
+ 'IGV2ZW4gc2VlbiBhbiBvdmVyYWxsIGNvZGUtc2l6ZQogICAgcmVkdWN0aW9uLgoKKiAgIENlcnRh',
+ 'aW4gY2hlY2tzIGFyZSBhIGxvdCBmYXN0ZXIuICBUaGlzIGlzIGxlc3Mgbm90aWNlYWJsZSBpZiB5',
+ 'b3UgYXJlCiAgICBjb21waWxpbmcgYXBwcyB3aXRoIGAtTzNgIHdoZXJlIGNoZWNrcyBhcmUgb21p',
+ 'dHRlZCBhbHRvZ2V0aGVyLiBFdmVuIHdpdGgKICAgIGAtTzNgLCB0aGUgcGVyZm9ybWFuY2Ugb2Yg',
+ 'c29tZSBgaXNgIGNoZWNrcyB1c2VkIGJ5IHlvdXIgYXBwIG1heSBpbXByb3ZlLgoKKiAgIFdoZW4g',
+ 'dXNpbmcgYC1PM2AgYW5kIGAtTzRgIGluY29ycmVjdCB0eXBlIGFubm90YXRpb25zIGNvdWxkIHN1',
+ 'cmZhY2UgYXMKICAgIGVycm9ycy4gVGhlIG9sZCB0eXBlIHJlcHJlc2VudGF0aW9uIHdhcyBhY2Np',
+ 'ZGVudGFsbHkgbGVuaWVudCBvbiBzb21lIGludmFsaWQKICAgIHR5cGUgYW5ub3RhdGlvbnMuIFdl',
+ 'IGhhdmUgb25seSBlbmNvdW50ZXJlZCB0aGlzIGlzc3VlIG9uIHByb2dyYW1zIHRoYXQgd2VyZQog',
+ 'ICAgbm90IHRlc3RlZCBwcm9wZXJseSBhdCB0aGUganMtaW50ZXJvcCBwcm9ncmFtIGJvdW5kYXJ5',
+ 'LgoKKiAgIGBUeXBlLnRvU3RyaW5nKClgIGhhcyBhIHNtYWxsIGNoYW5nZSB0aGF0IGlzIHJhcmVs',
+ 'eSB2aXNpYmxlLiBGb3IgYSBsb25nCiAgICB0aW1lLCBEYXJ0MkpTIGhhcyBoYWQgc3VwcG9ydCB0',
+ ];
+}
+
+List<String> _f10(String s) {
+ return [
+ s,
+ 'byBlcmFzZSB1bnVzZWQgdHlwZSB2YXJpYWJsZXMuIFRvZGF5LCB3aGVuCiAgICBEYXJ0MkpTIGlz',
+ 'IGdpdmVuIGAtLWxheC1ydW50aW1lLXR5cGUtdG8tc3RyaW5nYCAoY3VycmVudGx5IGluY2x1ZGVk',
+ 'IGluCiAgICBgLU8yYCwgYC1PM2AsIGFuZCBgLU80YCkgYW5kIGl0IGRlY2lkZXMgdG8gZXJhc2Ug',
+ 'dGhlIHR5cGUgdmFyaWFibGUgb2YgYQogICAgY2xhc3MgYEZvbzxUPmAsIHRoZW4gaXQgY29tcGls',
+ 'ZXMgZXhwcmVzc2lvbnMgbGlrZQogICAgYGZvby5ydW50aW1lVHlwZS50b1N0cmluZygpYCB0byBw',
+ 'cmludCBgRm9vYC4gV2l0aCB0aGUgbmV3IHJlcHJlc2VudGF0aW9uLAogICAgdGhpcyB3aWxsIHNo',
+ 'b3cgYEZvbzxlcmFzZWQ+YCBpbnN0ZWFkLiBUaGlzIGNoYW5nZSBtYXkgYmUgdmlzaWJsZSBpbiBl',
+ 'cnJvcgogICAgbWVzc2FnZXMgcHJvZHVjZWQgYnkgdHlwZSBjaGVja3MgaW52b2x2aW5nIGVyYXNl',
+ 'ZCB0eXBlcy4KCkJlY2F1c2UgdHlwZXMgYW5kIGNsYXNzZXMgYXJlIHJlcHJlc2VudGVkIHNlcGFy',
+ 'YXRlbHksIHdlIHdpbGwgbGlrZWx5IHJlZXZhbHVhdGUKcmVzdHJpY3Rpb25zIG9mIGRlZmVycmVk',
+ 'IGxpYnJhcmllcyBpbiB0aGUgbmVhciBmdXR1cmUuIEZvciBleGFtcGxlLCB3ZSBjb3VsZApzdXBw',
+ 'b3J0IHJlZmVycmluZyB0byBkZWZlcnJlZCB0eXBlcyBiZWNhdXNlIHR5cGVzIGNhbiBiZSBkb3du',
+ 'bG9hZGVkIHdoaWxlCmNsYXNzZXMgYXJlIG5vdC4KCkluIHRoZSB1bmxpa2VseSBjYXNlIHlvdSBy',
+ 'dW4gaW50byBhbnkgaXNzdWVzLCBwbGVhc2UgZmlsZSBhIGJ1ZyBzbyB3ZSBjYW4KaW52ZXN0aWdh',
+ 'dGUuIFlvdSBjYW4gdGVtcG9yYXJpbHkgZm9yY2UgdGhlIG9sZCB0eXBlIHJlcHJlc2VudGF0aW9u',
+ 'IGJ5IHBhc3NpbmcKYC0tdXNlLW9sZC1ydGlgIHRvIERhcnQySlMgaWYgbmVjZXNzYXJ5LCBidXQg',
+ 'b3VyIGdvYWwgaXMgdG8gZGVsZXRlIHRoZSBvbGQgdHlwZQpyZXByZXNlbnRhdGlvbiBzb29uLgoK',
+ 'SW4gYWRkaXRpb24sIHdlIGZpeGVkIHNvbWUgaW5jb25zaXN0ZW5jaWVzIGJldHdlZW4gRGFydDJK',
+ 'UyBhbmQgRERDOgoKKiAgIEpTIGludGVyb3AgY2xhc3NlcyB3aXRoIGFuIGluZGV4IG9wZXJhdG9y',
+ 'IGFyZSBub3cgc3RhdGljIGVycm9ycyBpbnN0ZWFkIG9mCiAgICBjYXVzaW5nIGludmFsaWQgY29k',
+ 'ZSBpbiBEYXJ0MkpTLgoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKio6IFRoZSBzdWJ0eXBpbmcgcnVs',
+ 'ZSBmb3IgZ2VuZXJpYyBmdW5jdGlvbnMgaXMgbm93IG1vcmUKICAgIGZvcmdpdmluZy4gQ29ycmVz',
+ 'cG9uZGluZyB0eXBlIHBhcmFtZXRlciBib3VuZHMgbm93IG9ubHkgbmVlZCB0byBiZSBtdXR1YWwK',
+ 'ICAgIHN1YnR5cGVzIHJhdGhlciB0aGFuIHN0cnVjdHVyYWxseSBlcXVhbCB1cCB0byByZW5hbWlu',
+ 'ZyBvZiBib3VuZCB0eXBlCiAgICB2YXJpYWJsZXMgYW5kIGVxdWF0aW5nIGFsbCB0b3AgdHlwZXMu',
+ 'CgoqICAgKipCcmVha2luZyBDaGFuZ2UqKjogVHlwZXMgYXJlIG5vdyBub3JtYWxpemVkLiBTZWUg',
+ 'W25vcm1hbGl6YXRpb25dW10gZm9yIHRoZQogICAgZnVsbCBzcGVjaWZpY2F0aW9uLiBUeXBlcyB3',
+ 'aWxsIG5vdyBiZSBwcmludGVkIGluIHRoZWlyIG5vcm1hbCBmb3JtLCBhbmQKICAgIG11dHVhbCBz',
+ 'dWJ0eXBlcyB3aXRoIHRoZSBzYW1lIG5vcm1hbCBmb3JtIHdpbGwgbm93IGJlIGNvbnNpZGVyZWQg',
+ 'ZXF1YWwuCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKjogQ29uc3RydWN0b3JzIGluIGBASlMoKWAg',
+ 'Y2xhc3NlcyBtdXN0IGJlIG1hcmtlZCB3aXRoCiAgICBgZXh0ZXJuYWxgLiBQcmV2aW91c2x5LCB0',
+ 'aGUgZXh0ZXJuYWwgY291bGQgYmUgb21pdHRlZCBmb3IgdW51c2VkCiAgICBjb25zdHJ1Y3RvcnMu',
+ 'IE9taXR0aW5nIGBleHRlcm5hbGAgZm9yIGEgY29uc3RydWN0b3Igd2hpY2ggaXMgdXNlZCB3b3Vs',
+ 'ZAogICAgY2F1c2UgaW5jb3JyZWN0IGJlaGF2aW9yIGF0IHJ1bnRpbWUsIG5vdyBvbWl0dGluZyBp',
+ 'dCBvbiBhbnkgY29uc3RydWN0b3IgaXMgYQogICAgc3RhdGljIGVycm9yLgoKWzE3MjA3XTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzE3MjA3Cgpbbm9ybWFsaXphdGlv',
+ 'bl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvbGFuZ3VhZ2UvYmxvYi9tYXN0ZXIvcmVz',
+ 'b3VyY2VzL3R5cGUtc3lzdGVtL25vcm1hbGl6YXRpb24ubWQKCgpPdGhlciBkYXJ0MmpzIGNoYW5n',
+ 'ZXM6CgoqICoqQnJlYWtpbmcgQ2hhbmdlKio6IFRoZSBgLS1wYWNrYWdlLXJvb3RgIGZsYWcsIHdo',
+ 'aWNoIHdhcyBoaWRkZW4gYW5kIGRpc2FibGVkCiAgaW4gRGFydCAyLjAuMCwgaGFzIGJlZW4gY29t',
+ 'cGxldGVseSByZW1vdmVkLiBQYXNzaW5nIHRoaXMgZmxhZyB3aWxsIG5vdyBjYXVzZQogIGBkYXJ0',
+ 'MmpzYCB0byBmYWlsLgoKIyMjIyBMaW50ZXIKClVwZGF0ZWQgdGhlIExpbnRlciB0byBgMC4xLjEx',
+ 'NGAsIHdoaWNoIGluY2x1ZGVzOgoKKiBGaXhlZCBgYXZvaWRfc2hhZG93aW5nX3R5cGVfcGFyYW1l',
+ 'dGVyc2AgdG8gc3VwcG9ydCBleHRlbnNpb25zIGFuZCBtaXhpbnMuCiogVXBkYXRlZCBgbm9uX2Nv',
+ 'bnN0YW50X2lkZW50aWZpZXJfbmFtZXNgIHRvIGFsbG93IG5hbWVkIGNvbnN0cnVjdG9ycyBtYWRl',
+ 'IHVwIG9mIG9ubHkgdW5kZXJzY29yZXMgKGBfYCkuCiogVXBkYXRlZCBgYXZvaWRfdW51c2VkX2Nv',
+ 'bnN0cnVjdG9yX3BhcmFtZXRlcnNgIHRvIGlnbm9yZSB1bnVzZWQgcGFyYW1zIG5hbWVkIGluIGFs',
+ 'bCB1bmRlcnNjb3JlcyAoYF9gKS4KCiMjIyMgQW5hbHl6ZXIKCiogICBSZW1vdmVkIHN1cHBvcnQg',
+ 'Zm9yIHRoZSBkZXByZWNhdGVkIGFuYWx5c2lzIG9wdGlvbnMgZmlsZSBuYW1lCiAgICBgLmFuYWx5',
+ 'c2lzX29wdGlvbnNgLgoKIyMjIyBQdWIKCiogICBBZGRlZCBgcHViIG91dGRhdGVkYCBjb21tYW5k',
+ 'IHdoaWNoIGxpc3RzIG91dGRhdGVkIHBhY2thZ2UgZGVwZW5kZW5jaWVzLCBhbmQKICAgIGdpdmVz',
+ 'IGFkdmljZSBvbiBob3cgdG8gdXBncmFkZS4KCiogICBgcHViIGdldGAgYW5kIGBwdWIgdXBncmFk',
+ 'ZWAgbm93IGZldGNoIHZlcnNpb24gaW5mb3JtYXRpb24gYWJvdXQgaG9zdGVkCiAgICBkZXBlbmRl',
+ 'bmNpZXMgaW4gcGFyYWxsZWwsIGltcHJvdmluZyB0aGUgdGltZSBwYWNrYWdlIHJlc29sdXRpb24g',
+ 'cGVyZm9ybWFuY2UuCgoqICAgYHB1YiBnZXRgIGFuZCBgcHViIHVwZ3JhZGVgIG5vIGxvbmdlciBw',
+ 'cmVjb21waWxlIGV4ZWN1dGFibGVzIGZyb20KICAgIGRlcGVuZGVuY2llcyBieSBkZWZhdWx0LiBJ',
+ 'bnN0ZWFkIHRoZXkgYXJlIHByZWNvbXBpbGVkIG9uIGZpcnN0IGBwdWIgcnVuYC4KICAgIFVzZSBg',
+ 'cHViIGdldCAtLXByZWNvbXBpbGVgIHRvIGdldCB0aGUgcHJldmlvdXMgYmVoYXZpb3IuCgoqICAg',
+ 'Rml4ZWQgbWlzc2luZyByZXRyaWVzIG9mIEROUyBmYWlsdXJlcyBkdXJpbmcgYHB1YiBnZXRgLgoK',
+ 'KiAgIElmIGNvZGUgY29udGFpbnMgaW1wb3J0cyBmb3IgcGFja2FnZXMgbm90IGxpc3RlZCBpbiB0',
+ 'aGUgcGFja2FnZSdzCiAgICBgcHVic3BlYy55YW1sYCB0aGVuIGBwdWIgcHVibGlzaGAgd2lsbCBy',
+ 'ZWplY3QgdGhlIHBhY2thZ2UuCgoqICAgYHB1YiBwdWJsaXNoYCBubyBsb25nZXIgcmVxdWlyZXMg',
+ 'dGhlIHByZXNlbmNlIG9mIGEgYGhvbWVwYWdlYCBmaWVsZCwgaWYgdGhlCiAgICBgcmVwb3NpdG9y',
+ 'eWAgZmllbGQgaXMgcHJvdmlkZWQuCgoqICAgYHB1YiBwdWJsaXNoYCB3YXJucyBpZiBub24tcHJl',
+ 'LXJlbGVhc2UgcGFja2FnZXMgZGVwZW5kcyBvbiBwcmUtcmVsZWFzZQogICAgcGFja2FnZXMgb3Ig',
+ 'cHJlLXJlbGVhc2UgRGFydCBTREtzLgoKKiAgIFJlbGF0aXZlIHBhdGhzIGluIGBwdWJzcGVjLmxv',
+ 'Y2tgIG5vdyB1c2UgYC9gIGFsc28gb24gV2luZG93cyB0byBtYWtlIHRoZQogICAgZmlsZSBzaGFy',
+ 'YWJsZSBiZXR3ZWVuIG1hY2hpbmVzLgoKKiAgIEZpeGVkIGxhbmd1YWdlIHZlcnNpb24gaW4gW2Au',
+ 'ZGFydF90b29sL3BhY2thZ2VfY29uZmlnLmpzb25gXVtwYWNrYWdlIGNvbmZpZ10KICAgIGZvciBw',
+ 'YWNrYWdlcyB3aXRob3V0IGFuIGV4cGxpY2l0IFNESyBjb25zdHJhaW50LiBQdWIgbm93IHdyaXRl',
+ 'cyBhbiBlbXB0eQogICAgbGFuZ3VhZ2UgdmVyc2lvbiB3aGVyZSBiZWZvcmUgdGhlIGxhbmd1YWdl',
+ 'IHZlcnNpb24gb2YgdGhlIGN1cnJlbnQgU0RLIHdvdWxkCiAgICBiZSB1c2VkLgoKKiAgIGAlTE9D',
+ 'QUxBUFBEQVRBJWAgaXMgbm93IHByZWZlcnJlZCBvdmVyIGAlQVBQREFUQSVgIHdoZW4gY3JlYXRp',
+ 'bmcgYSBwdWIgY2FjaGUKICAgIGRpcmVjdG9yeSBvbiBXaW5kb3dzLiBgJUxPQ0FMQVBQREFUQSVg',
+ 'IGlzIG5vdCBjb3BpZWQgd2hlbiB1c2VycyByb2FtIGJldHdlZW4KICAgIGRldmljZXMuCgoqICAg',
+ 'YHB1YiBwdWJsaXNoYCB3YXJucyBpZiBMSUNFTlNFIGFuZCBSRUFETUUubWQgZmlsZXMgYXJlIG5v',
+ 'dCBjYWxsZWQgdGhvc2UKICAgIGV4YWN0IG5hbWVzLgoKKiAgIGBwdWIgcmVwYWlyIGNhY2hlYCBk',
+ 'b3dubG9hZHMgaG9zdGVkIHBhY2thZ2VzIGluIHBhcmFsbGVsLgoKW3BhY2thZ2UgY29uZmlnXTog',
+ 'aHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9sYW5ndWFnZS9ibG9iL21hc3Rlci9hY2NlcHRl',
+ 'ZC9mdXR1cmUtcmVsZWFzZXMvbGFuZ3VhZ2UtdmVyc2lvbmluZy9wYWNrYWdlLWNvbmZpZy1maWxl',
+ 'LXYyLm1kCgojIyAyLjcuMiAtIDIwMjAtMDMtMjMKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRo',
+ 'YXQgYWRkcmVzc2VzIGEgdnVsbmVyYWJpbGl0eSBpbiBgZGFydDpodG1sYApbTm9kZVZhbGlkYXRv',
+ 'cl1bXSByZWxhdGVkIHRvIERPTSBjbG9iYmVyaW5nIG9mIGBwcmV2aW91c1NpYmxpbmdgLiBTZWUg',
+ 'dGhlClt2dWxuZXJhYmlsaXR5IGFkdmlzb3J5XVtDVkUtMjAyMC04OTIzXSBmb3IgbW9yZSBkZXRh',
+ 'aWxzLiBUaGFua3MgdG8gKipWaW5jZW56bwpkaSBDaWNjbyoqIGZvciBmaW5kaW5nIGFuZCByZXBv',
+ 'cnRpbmcgdGhpcyBpc3N1ZS4KClRoaXMgcmVsZWFzZSBhbHNvIGltcHJvdmVzIGNvbXBhdGliaWxp',
+ 'dHkgd2l0aCBBUk12OCBwcm9jZXNzb3JzIChpc3N1ZSBbNDAwMDFdW10pCmFuZCBkYXJ0OmlvIHN0',
+ 'YWJpbGl0eSAoaXNzdWUgWzQwNTg5XVtdKS4KCltOb2RlVmFsaWRhdG9yXTogaHR0cHM6Ly9hcGku',
+ 'ZGFydC5kZXYvc3RhYmxlL2RhcnQtaHRtbC9Ob2RlVmFsaWRhdG9yLWNsYXNzLmh0bWwKW0NWRS0y',
+ 'MDIwLTg5MjNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9zZWN1cml0eS9hZHZp',
+ 'c29yaWVzL0dIU0EtaGZxMy12OXB2LXA2MjcKWzQwMDAxXTogaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzQwMDAxCls0MDU4OV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy80MDU4OQoKIyMgMi43LjEgLSAyMDIwLTAxLTIzCgpUaGlzIGlzIGEg',
+ 'cGF0Y2ggcmVsZWFzZSB0aGF0IGltcHJvdmVzIGRhcnQyanMgY29tcGlsZS10aW1lIChpc3N1ZSBb',
+ 'NDAyMTddW10pLgoKWzQwMjE3XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNz',
+ 'dWVzLzQwMjE3CgoqKkJyZWFraW5nIENoYW5nZSoqOgpUaGUgRGFydCBTREsgZm9yIG1hY09TIGlz',
+ 'IG5vdyBvbmx5IGF2YWlsYWJsZSBmb3IgeDY0IChpc3N1ZSBbMzk4MTBdW10pLgoKWzM5ODEwXTog',
+ 'aHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzM5ODEwCgojIyAyLjcuMCAt',
+ 'IDIwMTktMTItMTEKCioqRXh0ZW5zaW9uIG1ldGhvZHMqKiAtLSB3aGljaCB3ZSBzaGlwcGVkIGlu',
+ 'IHByZXZpZXcgaW4gMi42LjAgLS0gYXJlIG5vIGxvbmdlcgppbiBwcmV2aWV3LCBhbmQgYXJlIG5v',
+ ];
+}
+
+List<String> _f11(String s) {
+ return [
+ s,
+ 'dyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBhcyBvZiAyLjcuMC4gTGVhcm4gbW9yZSBhYm91dCB0aGVt',
+ 'CmhlcmU6CgpodHRwczovL21lZGl1bS5jb20vZGFydGxhbmcvZXh0ZW5zaW9uLW1ldGhvZHMtMmQ0',
+ 'NjZjZDhiMzA4CgojIyMgTGFuZ3VhZ2UKCiogKipCcmVha2luZyBDaGFuZ2UqKjogW1N0YXRpYyBl',
+ 'eHRlbnNpb24gbWVtYmVyc11bXSBhcmUgYWNjZXNzaWJsZSB3aGVuCmltcG9ydGVkIHdpdGggYSBw',
+ 'cmVmaXggKGlzc3VlIFs2NzFdW10pLiBJbiB0aGUgZXh0ZW5zaW9uIG1ldGhvZCAqKnByZXZpZXcq',
+ 'KgpsYXVuY2gsIGltcG9ydGluZyBhIGxpYnJhcnkgd2l0aCBhIHByZWZpeCBoaWQgYWxsIGV4dGVu',
+ 'c2lvbiBtZW1iZXJzIGluCmFkZGl0aW9uIHRvIGhpZGluZyB0aGUgZXh0ZW5zaW9uIG5hbWUsIHRo',
+ 'ZXJlYnkgbWFraW5nIHRoZW0gaW5hY2Nlc3NpYmxlCmluIHRoZSBpbXBvcnRpbmcgbGlicmFyeSBl',
+ 'eGNlcHQgdmlhIHRoZSBleHBsaWNpdCBvdmVycmlkZSBzeW50YXguIEJhc2VkCm9uIHVzZXIgZmVl',
+ 'ZGJhY2ssIHdlIGhhdmUgY2hhbmdlZCB0aGlzIHRvIG1ha2UgZXh0ZW5zaW9ucyBtZXRob2RzIGFj',
+ 'Y2Vzc2libGUKZXZlbiB3aGVuIGltcG9ydGVkIHdpdGggYSBwcmVmaXguCgogICAgYGBgZGFydAog',
+ 'ICAgICAvLyAidGhpbmcuZGFydCIKICAgICAgY2xhc3MgVGhpbmcgewogICAgICB9CiAgICAgIGV4',
+ 'dGVuc2lvbiBTaG93IG9uIFRoaW5nIHsKICAgICAgICB2b2lkIHNob3coKSB7CiAgICAgICAgICBw',
+ 'cmludCgiVGhpcyBpcyBhIHRoaW5nIik7CiAgICAgICAgfQogICAgIH0KICAgICAvLyAiY2xpZW50',
+ 'LmRhcnQiCiAgICAgaW1wb3J0ICJ0aGluZy5kYXJ0IiBhcyBwOwogICAgIHZvaWQgdGVzdCgpIHsK',
+ 'ICAgICAgIHAuVGhpbmcoKS5zaG93KCk7IC8vIFByZXZpb3VzbHkgYW4gZXJyb3IsIG5vdyByZXNv',
+ 'bHZlcyB0byBTaG93LnNob3cKICAgICB9CiAgICBgYGAKCltTdGF0aWMgZXh0ZW5zaW9uIG1lbWJl',
+ 'cnNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2xhbmd1YWdlL2Jsb2IvbWFzdGVyL2Fj',
+ 'Y2VwdGVkLzIuNi9zdGF0aWMtZXh0ZW5zaW9uLW1lbWJlcnMvZmVhdHVyZS1zcGVjaWZpY2F0aW9u',
+ 'Lm1kCls2NzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2xhbmd1YWdlL2lzc3Vlcy82',
+ 'NzEKCiMjIyBDb3JlIGxpYnJhcmllcwoKIyMjIyBgZGFydDppb2AKCiogKipCcmVha2luZyBjaGFu',
+ 'Z2UqKjogQWRkZWQgYElPT3ZlcnJpZGVzLnNlcnZlclNvY2tldEJpbmRgIHRvIGFpZCBpbiB3cml0',
+ 'aW5nCiAgdGVzdHMgdGhhdCB3aXNoIHRvIG1vY2sgYFNlcnZlclNvY2tldC5iaW5kYC4KCiMjIyMg',
+ 'YGRhcnQ6dHlwZWRfZGF0YWAKCiogQWRkZWQgbmV3IGNvbnN0cnVjdG9ycywgYC5zdWJsaXN0Vmll',
+ 'dyhUeXBlZERhdGEsIFtzdGFydCwgZW5kXSlgIHRvIGFsbAogIGBUeXBlZERhdGFgIGNsYXNzZXMu',
+ 'IFRoZSBjb25zdHJ1Y3RvciBtYWtlcyBpdCBlYXNpZXIsIGFuZCBsZXNzIGVycm9yLXByb25lLAog',
+ 'IHRvIGNyZWF0ZSBhIHZpZXcgb2YgKGEgc2xpY2Ugb2YpIGFub3RoZXIgYFR5cGVkRGF0YWAgb2Jq',
+ 'ZWN0LgoKIyMjIERhcnQgVk0KCiogTmV3IGZpZWxkcyBhZGRlZCB0byBleGlzdGluZyBpbnN0YW5j',
+ 'ZXMgYnkgYSByZWxvYWQgd2lsbCBub3cgYmUgaW5pdGlhbGl6ZWQKICBsYXppbHksIGFzIGlmIHRo',
+ 'ZSBmaWVsZCB3YXMgYSBsYXRlIGZpZWxkLiBUaGlzIG1ha2VzIHRoZSBpbml0aWFsaXphdGlvbiBv',
+ 'cmRlcgogIHByb2dyYW0tZGVmaW5lZCwgd2hlcmVhcyBwcmV2aW91c2x5IGl0IHdhcyB1bmRlZmlu',
+ 'ZWQuCgojIyMgVG9vbHMKCiMjIyMgTGludGVyCgpUaGUgTGludGVyIHdhcyB1cGRhdGVkIHRvIGAw',
+ 'LjEuMTA0YCwgd2hpY2ggaW5jbHVkZXM6CgoqIHVwZGF0ZWQgYHVubmVjZXNzYXJ5X292ZXJyaWRl',
+ 'c2AgdG8gYWxsb3cgb3ZlcnJpZGVzIHdoZW4gYW5ub3RhdGlvbnMgKGJlc2lkZXMgYEBvdmVycmlk',
+ 'ZWAgYXJlIHNwZWNpZmllZCkKKiB1cGRhdGVkIGBmaWxlX25hbWVzYCB0byBhbGxvdyBuYW1lcyB3',
+ 'LyBsZWFkaW5nIGBfYCdzIChhbmQgaW1wcm92ZWQgcGVyZm9ybWFuY2UpCiogbmV3IGxpbnQ6IGB1',
+ 'bm5lY2Vzc2FyeV9maW5hbGAKCiMjIyMgUHViCgoqIGBwdWIgZ2V0YCBnZW5lcmF0ZXMgW2AuZGFy',
+ 'dF90b29sL3BhY2thZ2VfY29uZmlnLmpzb25gXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5n',
+ 'L2xhbmd1YWdlL2Jsb2IvNjJjMDM2Y2M0MWIxMGZiNTQzMTAyZDJmNzNlZTEzMmQxZTJiMmEwZS9h',
+ 'Y2NlcHRlZC9mdXR1cmUtcmVsZWFzZXMvbGFuZ3VhZ2UtdmVyc2lvbmluZy9wYWNrYWdlLWNvbmZp',
+ 'Zy1maWxlLXYyLm1kKQogIGluIGFkZGl0aW9uIHRvIGAucGFja2FnZXNgIHRvIHN1cHBvcnQgbGFu',
+ 'Z3VhZ2UgdmVyc2lvbmluZy4KCiogYHB1YiBwdWJsaXNoYCBub3cgd2FybnMgYWJvdXQgdGhlIG9s',
+ 'ZCBmbHV0dGVyIHBsdWdpbiByZWdpc3RyYXRpb24gZm9ybWF0LgoKKiBgcHViIHB1Ymxpc2hgIG5v',
+ 'dyB3YXJucyBhYm91dCB0aGUgYGF1dGhvcmAgZmllbGQgaW4gcHVic3BlYy55YW1sIGJlaW5nLgog',
+ 'IG9ic29sZXRlLgoKKiBTaG93IGEgcHJvcGVyIGVycm9yIG1lc3NhZ2Ugd2hlbiBgZ2l0YCBpcyBu',
+ 'b3QgaW5zdGFsbGVkLgoKIyMgMi42LjEgLSAyMDE5LTExLTExCgpUaGlzIGlzIGEgcGF0Y2ggcmVs',
+ 'ZWFzZSB0aGF0IHJlZHVjZXMgZGFydDJqcyBtZW1vcnkgdXNhZ2UgKGlzc3VlIFsyNzg4M11bXSks',
+ 'CmltcHJvdmVzIHN0YWJpbGl0eSBvbiBhcm02NCAoaXNzdWUgWzM5MDkwXVtdKSBhbmQgdXBkYXRl',
+ 'cyB0aGUgRGFydCBGRkkKZG9jdW1lbnRhdGlvbi4KClsyNzg4M106IGh0dHBzOi8vZ2l0aHViLmNv',
+ 'bS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yNzg4MwpbMzkwOTBdOiBodHRwczovL2dpdGh1Yi5jb20v',
+ 'ZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzkwOTAKCiMjIDIuNi4wIC0gMjAxOS0xMS0wNQoKIyMjIExh',
+ 'bmd1YWdlCgoqICAgKipbSU4gUFJFVklFV10qKiBbU3RhdGljIGV4dGVuc2lvbiBtZW1iZXJzXVtd',
+ 'OiBBIG5ldyBsYW5ndWFnZSBmZWF0dXJlCiAgICBhbGxvd2luZyBzcGVjaWFsbHkgZGVjbGFyZWQg',
+ 'c3RhdGljIGZ1bmN0aW9ucyB0byBiZSBpbnZva2VkIGxpa2UgaW5zdGFuY2UKICAgIG1lbWJlcnMg',
+ 'b24gZXhwcmVzc2lvbnMgb2YgYXBwcm9wcmlhdGUgc3RhdGljIHR5cGVzIGlzIGF2YWlsYWJsZSBp',
+ 'biBwcmV2aWV3LgoKICAgIFN0YXRpYyBleHRlbnNpb24gbWVtYmVycyBhcmUgZGVjbGFyZWQgdXNp',
+ 'bmcgYSBuZXcgYGV4dGVuc2lvbmAgZGVjbGFyYXRpb24uCiAgICBFeGFtcGxlOgoKICAgIGBgYGRh',
+ 'cnQKICAgIGV4dGVuc2lvbiBNeUZhbmN5TGlzdDxUPiBvbiBMaXN0PFQ+IHsKICAgICAgLy8vIFdo',
+ 'ZXRoZXIgdGhpcyBsaXN0IGhhcyBhbiBldmVuIGxlbmd0aC4KICAgICAgYm9vbCBnZXQgaXNMZW5n',
+ 'dGhFdmVuID0+IHRoaXMubGVuZ3RoLmlzRXZlbjsKCiAgICAgIC8vLyBXaGV0aGVyIHRoaXMgbGlz',
+ 'dCBoYXMgYW4gb2RkIGxlbmd0aC4KICAgICAgYm9vbCBnZXQgaXNMZW5ndGhPZGQgPT4gIWlzTGVu',
+ 'Z3RoRXZlbjsKCiAgICAgIC8vLyBMaXN0IG9mIHZhbHVlcyBjb21wdXRlZCBmb3IgZWFjaCBwYWly',
+ 'cyBvZiBhZGphY2VudCBlbGVtZW50cy4KICAgICAgLy8vCiAgICAgIC8vLyBUaGUgcmVzdWx0IGFs',
+ 'd2F5cyBoYXMgb25lIGVsZW1lbnQgbGVzcyB0aGFuIHRoaXMgbGlzdCwKICAgICAgLy8vIGlmIHRo',
+ 'aXMgbGlzdCBoYXMgYW55IGVsZW1lbnRzLgogICAgICBMaXN0PFI+IGNvbWJpbmVQYWlyczxSPihS',
+ 'IEZ1bmN0aW9uKFQsIFQpIGNvbWJpbmUpID0+CiAgICAgICAgICBbZm9yIChpbnQgaSA9IDE7IGkg',
+ 'PCB0aGlzLmxlbmd0aDsgaSsrKQogICAgICAgICAgICAgIGNvbWJpbmUodGhpc1tpIC0gMV0sIHRo',
+ 'aXNbaV0pXTsKICAgIH0KICAgIGBgYAoKICAgIEV4dGVuc2lvbiBkZWNsYXJhdGlvbnMgY2Fubm90',
+ 'IGRlY2xhcmUgaW5zdGFuY2UgZmllbGRzIG9yIGNvbnN0cnVjdG9ycy4KICAgIEV4dGVuc2lvbiBt',
+ 'ZW1iZXJzIGNhbiBiZSBpbnZva2VkIGV4cGxpY2l0bHksCiAgICBgTXlGYW5jeUxpc3QoaW50TGlz',
+ 'dCkuaXNMZW5ndGhFdmVuKWAsIG9yIGltcGxpY2l0bHksIGBpbnRMaXN0LmlzTGVuZ3RoRXZlbmAs',
+ 'CiAgICB3aGVyZSB0aGUgbGF0dGVyIGlzIHJlY29nbml6ZWQgYnkgYGludExpc3RgIG1hdGNoaW5n',
+ 'IHRoZSBgTGlzdDxUPmAgIm9uIiB0eXBlCiAgICBvZiB0aGUgZGVjbGFyYXRpb24uIEFuIGV4dGVu',
+ 'c2lvbiBtZW1iZXIgY2Fubm90IGJlIGNhbGxlZCBpbXBsaWNpdGx5IG9uIGFuCiAgICBleHByZXNz',
+ 'aW9uIHdob3NlIHN0YXRpYyB0eXBlIGhhcyBhIG1lbWJlciB3aXRoIHRoZSBzYW1lIGJhc2UtbmFt',
+ 'ZS4gSW4gdGhhdAogICAgY2FzZSwgdGhlIGludGVyZmFjZSBtZW1iZXIgdGFrZXMgcHJlY2VkZW5j',
+ 'ZS4gSWYgbXVsdGlwbGUgZXh0ZW5zaW9uIG1lbWJlcnMKICAgIGFwcGx5IHRvIHRoZSBzYW1lIGlt',
+ 'cGxpY2l0IGludm9jYXRpb24sIHRoZSBtb3N0IHNwZWNpZmljIG9uZSBpcyB1c2VkLCBpZgogICAg',
+ 'dGhlcmUgaXMgb25lIHN1Y2guCgogICAgRXh0ZW5zaW9ucyBjYW4gYmUgZGVjbGFyZWQgb24gYW55',
+ 'IHR5cGUsIG5vdCBqdXN0IGludGVyZmFjZSB0eXBlcy4KCiAgICBgYGBkYXJ0CiAgICBleHRlbnNp',
+ 'b24gSW50Q291bnRlciBvbiBpbnQgewogICAgICAvLy8gVGhlIG51bWJlcnMgZnJvbSB0aGlzIG51',
+ 'bWJlciB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIFtlbmRdLgogICAgICBJdGVyYWJsZTxpbnQ+IHRv',
+ 'KGludCBlbmQpIHN5bmMqIHsKICAgICAgICBpbnQgc3RlcCA9IGVuZCA8IHRoaXMgPyAtMSA6IDE7',
+ 'CiAgICAgICAgZm9yIChpbnQgaSA9IHRoaXM7IGkgIT0gZW5kOyBpICs9IHN0ZXApIHlpZWxkIGk7',
+ 'CiAgICAgIH0KICAgIH0KCiAgICBleHRlbnNpb24gQ3VycnlGdW5jdGlvbjxSLCBTLCBUPiBvbiBS',
+ 'IEZ1bmN0aW9uKFMsIFQpIHsKICAgICAgLy8vIEN1cnJ5IGEgYmluYXJ5IGZ1bmN0aW9uIHdpdGgg',
+ 'aXRzIGZpcnN0IGFyZ3VtZW50LgogICAgICBSIEZ1bmN0aW9uKFQpIGN1cnJ5KFMgZmlyc3QpID0+',
+ 'IChUIHNlY29uZCkgPT4gdGhpcyhmaXJzdCwgc2Vjb25kKTsKICAgIH0KICAgIGBgYAoKICAgIFtT',
+ 'dGF0aWMgZXh0ZW5zaW9uIG1lbWJlcnNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2xh',
+ 'bmd1YWdlL2Jsb2IvbWFzdGVyL2FjY2VwdGVkLzIuNi9zdGF0aWMtZXh0ZW5zaW9uLW1lbWJlcnMv',
+ 'ZmVhdHVyZS1zcGVjaWZpY2F0aW9uLm1kCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzM3OTg1',
+ 'XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzc5ODUpOgogICAgSW5m',
+ 'ZXJlbmNlIGlzIGNoYW5nZWQgd2hlbiB1c2luZyBgTnVsbGAgdmFsdWVzIGluIGEgYEZ1dHVyZU9y',
+ 'YCBjb250ZXh0LgogICAgTmFtZWx5LCBjb25zdHJhaW50cyBvZiB0aGUgZm9ybXMgc2ltaWxhciB0',
+ 'byBgTnVsbGAgPDogYEZ1dHVyZU9yPFQ+YCBub3cKICAgIHlpZWxkIGBOdWxsYCBhcyB0aGUgc29s',
+ 'dXRpb24gZm9yIGBUYC4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvZGUgd2lsbAogICAg',
+ 'bm93IHByaW50ICJOdWxsIiwgYW5kIGl0IHdhcyBwcmludGluZyAiZHluYW1pYyIgYmVmb3JlIChu',
+ 'b3RlIHRoYXQgdGhlCiAgICBhbm9ueW1vdXMgY2xvc3VyZSBgKCkge31gIGluIHRoZSBleGFtcGxl',
+ 'IGhhcyBgTnVsbGAgYXMgaXRzIHJldHVybiB0eXBlKToKCiAgICBgYGBkYXJ0CiAgICBpbXBvcnQg',
+ 'J2RhcnQ6YXN5bmMnOwoKICAgIHZvaWQgZm9vPFQ+KEZ1dHVyZU9yPFQ+IEZ1bmN0aW9uKCkgZikg',
+ ];
+}
+
+List<String> _f12(String s) {
+ return [
+ s,
+ 'eyBwcmludChUKTsgfQoKICAgIG1haW4oKSB7IGZvbygoKSB7fSk7IH0KICAgIGBgYAoKCiMjIyBD',
+ 'b3JlIGxpYnJhcmllcwoKKiBEZWZhdWx0IHZhbHVlcyBvZiBwYXJhbWV0ZXJzIG9mIGFic3RyYWN0',
+ 'IG1ldGhvZHMgYXJlIG5vIGxvbmdlciBhdmFpbGFibGUKICB2aWEgYGRhcnQ6bWlycm9yc2AuCgoj',
+ 'IyMjIGBkYXJ0OmRldmVsb3BlcmAKCiogQWRkZWQgb3B0aW9uYWwgYHBhcmVudGAgcGFyYW1ldGVy',
+ 'IHRvIGBUaW1lbGluZVRhc2tgIGNvbnN0cnVjdG9yIHRvIGFsbG93IGZvcgogIGxpbmtpbmcgb2Yg',
+ 'YXN5bmNocm9ub3VzIHRpbWVsaW5lIGV2ZW50cyBpbiB0aGUgRGV2VG9vbHMgdGltZWxpbmUgdmll',
+ 'dy4KCiMjIyMgYGRhcnQ6aW9gCgoqIEFkZGVkIGBlbmFibGVUaW1lbGluZUxvZ2dpbmdgIHByb3Bl',
+ 'cnR5IHRvIGBIdHRwQ2xpZW50YCB3aGljaCwgd2hlbiBlbmFibGVkLAogIHdpbGwgcG9zdCBIVFRQ',
+ 'IGNvbm5lY3Rpb24gYW5kIHJlcXVlc3QgaW5mb3JtYXRpb24gdG8gdGhlIGRldmVsb3BlciB0aW1l',
+ 'bGluZQogIGZvciBhbGwgYEh0dHBDbGllbnRgIGluc3RhbmNlcy4KCiMjIyBEYXJ0IFZNCgoqIEFk',
+ 'ZGVkIGEgbmV3IHRvb2wgZm9yIEFPVCBjb21waWxpbmcgRGFydCBwcm9ncmFtcyB0byBuYXRpdmUs',
+ 'IHNlbGYtY29udGFpbmVkCmV4ZWN1dGFibGVzLiBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9k',
+ 'YXJ0Mm5hdGl2ZSBmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgoKIyMjIEZvcmVpZ24gRnVuY3Rpb24g',
+ 'SW50ZXJmYWNlIChgZGFydDpmZmlgKQoKKiAgICoqQnJlYWtpbmcgY2hhbmdlKio6IFRoZSBBUEkg',
+ 'bm93IG1ha2VzIHVzZSBvZiBzdGF0aWMgZXh0ZW5zaW9uIG1lbWJlcnMuCiAgICBTdGF0aWMgZXh0',
+ 'ZW5zaW9uIG1lbWJlcnMgZW5hYmxlIHRoZSBgZGFydDpmZmlgIEFQSSB0byBiZSBtb3JlIHByZWNp',
+ 'c2Ugd2l0aAogICAgdHlwZXMsIGFuZCBwcm92aWRlIGNvbnZlbmllbnQgYWNjZXNzIHRvIG1lbW9y',
+ 'eSB0aHJvdWdoIGV4dGVuc2lvbiBnZXR0ZXJzIGFuZAogICAgc2V0dGVycy4gVGhlIGV4dGVuc2lv',
+ 'biBtZW1iZXJzIG9uIGBQb2ludGVyYCBwcm92aWRlIGAudmFsdWVgIGFuZCBgLnZhbHVlID1gCiAg',
+ 'ICBmb3IgYWNjZXNzaW5nIHRoZSB2YWx1ZSBpbiBuYXRpdmUgbWVtb3J5IGFuZCBgW11gIGFuZCBg',
+ 'W109YCBmb3IgaW5kZXhlZCBhY2Nlc3MuCiAgICBUaGUgbWV0aG9kIGBhc0V4dGVybmFsVHlwZWRE',
+ 'YXRhYCBoYXMgYmVlbiByZXBsYWNlZCB3aXRoIGBhc1R5cGVkTGlzdGAgZXh0ZW5zaW9uCiAgICBt',
+ 'ZXRob2RzLiBBbmQgZmluYWxseSwgYFN0cnVjdHNgIGRvIG5vIGxvbmdlciBoYXZlIGEgdHlwZSBh',
+ 'cmd1bWVudCBhbmQgYXJlCiAgICBhY2Nlc3NlZCB1c2luZyB0aGUgZXh0ZW5zaW9uIG1lbWJlciBg',
+ 'LnJlZmAgb24gYFBvaW50ZXJgLgogICAgVGhlc2UgY2hhbmdlcyBtYWtlcyB0aGUgY29kZSB1c2lu',
+ 'ZyBgZGFydDpmZmlgIG11Y2ggbW9yZSBjb25jaXNlLgoqICAgKipCcmVha2luZyBjaGFuZ2UqKjog',
+ 'VGhlIG1lbW9yeSBtYW5hZ2VtZW50IGhhcyBiZWVuIHJlbW92ZWQgKGBQb2ludGVyLmFsbG9jYXRl',
+ 'YAogICAgYW5kIGBQb2ludGVyLmZyZWVgKS4gSW5zdGVhZCwgbWVtb3J5IG1hbmFnZW1lbnQgaXMg',
+ 'YXZhaWxhYmxlIGluCiAgICBbcGFja2FnZTpmZmldKGh0dHBzOi8vcHViLmRldi9wYWNrYWdlcy9m',
+ 'ZmkpLgoqICAgKipCcmVha2luZyBjaGFuZ2UqKjogYFBvaW50ZXIub2Zmc2V0QnlgIHdhcyByZW1v',
+ 'dmVkLCB1c2UgYGNhc3RgIGFuZCBgZWxlbWVudEF0YAogICAgaW5zdGVhZC4KKiAgIEZhc3RlciBt',
+ 'ZW1vcnkgbG9hZCBhbmQgc3RvcmVzLgoqICAgVGhlIGRhcnRhbmFseXplciAoY29tbWFuZGxpbmUg',
+ 'YW5kIElERXMpIG5vdyByZXBvcnRzIGBkYXJ0OmZmaWAgc3RhdGljIGVycm9ycy4KKiAgIENhbGxi',
+ 'YWNrcyBhcmUgbm93IHN1cHBvcnRlZCBpbiBBT1QgKGFoZWFkLW9mLXRpbWUpIGNvbXBpbGVkIGNv',
+ 'ZGUuCgojIyMgRGFydCBmb3IgdGhlIFdlYgoKIyMjIyBEYXJ0IERldiBDb21waWxlciAoRERDKQoK',
+ 'KiBLZXJuZWwgRERDIHdpbGwgbm8gbG9uZ2VyIGFjY2VwdCBub24tZGlsbCBmaWxlcyBhcyBzdW1t',
+ 'YXJ5IGlucHV0cy4KKiBSZW1vdmVkIHN1cHBvcnQgZm9yIHRoZSBkZXByZWNhdGVkIHdlYiBleHRl',
+ 'bnNpb24uCgojIyMgVG9vbHMKCiMjIyMgTGludGVyCgpUaGUgTGludGVyIHdhcyB1cGRhdGVkIHRv',
+ 'IGAwLjEuMTAxYCwgd2hpY2ggaW5jbHVkZXM6CgoqIGZpeGVkIGBkaWFnbm9zdGljX2Rlc2NyaWJl',
+ 'X2FsbF9wcm9wZXJ0aWVzYCB0byBmbGFnIHByb3BlcnRpZXMgaW4gYERpYWdub3N0aWNhYmxlYHMg',
+ 'd2l0aCBubyBkZWJ1ZyBtZXRob2RzIGRlZmluZWQKKiBmaXhlZCBgbm9TdWNoTWV0aG9kYCBleGNl',
+ 'cHRpb24gaW4gYGNhbWVsX2Nhc2VfZXh0ZW5zaW9uc2Agd2hlbiBhbmFseXppbmcgdW5uYW1lZCBl',
+ 'eHRlbnNpb25zCiogZml4ZWQgYGF2b2lkX3ByaW50YCB0byBjYXRjaCB0ZWFyLW9mZiB1c2FnZQoq',
+ 'IG5ldyBsaW50OiBgYXZvaWRfd2ViX2xpYnJhcmllc19pbl9mbHV0dGVyYCAoZXhwZXJpbWVudGFs',
+ 'KQoqIChpbnRlcm5hbCkgcHJlcGFyZSBgdW5uZWNlc3NhcnlfbGFtYmRhc2AgZm9yIGNvbWluZyBg',
+ 'TWV0aG9kSW52b2NhdGlvbmAgdnMuIGBGdW5jdGlvbkV4cHJlc3Npb25JbnZvY2F0aW9uYCBjaGFu',
+ 'Z2VzCgojIyAyLjUuMiAtIDIwMTktMTAtMDgKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHdpdGgg',
+ 'cHJvcGVybHkgc2lnbmVkIGJpbmFyaWVzIHJlcXVpcmVkIGZvciBtYWNPUwpDYXRhbGluYSAoSXNz',
+ 'dWUgWzM4NzY1XVtdKS4KClszODc2NV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2Rr',
+ 'L2lzc3Vlcy8zODc2NQoKIyMgMi41LjEgLSAyMDE5LTA5LTI3CgpUaGlzIGlzIGEgcGF0Y2ggcmVs',
+ 'ZWFzZSB0aGF0IHByZXZlbnRzIHR5cGUgaW5mZXJlbmNlIGZhaWx1cmVzIGluIHRoZSBhbmFseXpl',
+ 'cgooSXNzdWUgWzM4MzY1XVtdKS4KClszODM2NV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxh',
+ 'bmcvc2RrL2lzc3Vlcy8zODM2NQoKIyMgMi41LjAgLSAyMDE5LTA5LTEwCgojIyMgTGFuZ3VhZ2UK',
+ 'ClRoZSBzZXQgb2Ygb3BlcmF0aW9ucyBhbGxvd2VkIGluIGNvbnN0YW50IGV4cHJlc3Npb25zIGhh',
+ 'cyBiZWVuIGV4cGFuZGVkIGFzCmRlc2NyaWJlZCBpbgp0aGUgW2NvbnN0YW50IHVwZGF0ZSBwcm9w',
+ 'b3NhbF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9sYW5ndWFnZS9pc3N1ZXMvNjEpLgpU',
+ 'aGUgY29udHJvbCBmbG93IGFuZCBzcHJlYWQgY29sbGVjdGlvbiBmZWF0dXJlcyBzaGlwcGVkIGlu',
+ 'IERhcnQgMi4zIGFyZSBub3cgYWxzbwpzdXBwb3J0ZWQgaW4gY29uc3RhbnRzCmFzCltkZXNjcmli',
+ 'ZWQgaW4gdGhlIHNwZWNpZmljYXRpb24gaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFu',
+ 'Zy9sYW5ndWFnZS9ibG9iL21hc3Rlci9hY2NlcHRlZC8yLjMvdW5pZmllZC1jb2xsZWN0aW9ucy9m',
+ 'ZWF0dXJlLXNwZWNpZmljYXRpb24ubWQjY29uc3RhbnQtc2VtYW50aWNzKS4KClNwZWNpZmljYWxs',
+ 'eSwgaXQgaXMgbm93IHZhbGlkIHRvIHVzZSB0aGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgaW4gY29u',
+ 'c3RhbnQKZXhwcmVzc2lvbnMgdW5kZXIgdGhlIGFwcHJvcHJpYXRlIGNvbmRpdGlvbnM6CiAgLSBD',
+ 'YXN0cyAoYGUgYXMgVGApIGFuZCB0eXBlIHRlc3RzIChgZSBpcyBUYCkuCiAgLSBDb21wYXJpc29u',
+ 'cyB0byBgbnVsbGAsIGV2ZW4gZm9yIHR5cGVzIHdoaWNoIG92ZXJyaWRlIHRoZSBgPT1gIG9wZXJh',
+ 'dG9yLgogIC0gVGhlIGAmYCwgYHxgLCBhbmQgYF5gIGJpbmFyeSBvcGVyYXRvcnMgb24gYm9vbGVh',
+ 'bnMuCiAgLSBUaGUgc3ByZWFkIG9wZXJhdG9ycyAoYC4uLmAgYW5kIGAuLi4/YCkuCiAgLSBBbiBg',
+ 'aWZgIGVsZW1lbnQgaW4gYSBjb2xsZWN0aW9uIGxpdGVyYWwuCgpgYGBkYXJ0Ci8vIEV4YW1wbGU6',
+ 'IHRoZXNlIGFyZSBub3cgdmFsaWQgY29uc3RhbnRzLgpjb25zdCBPYmplY3QgaSA9IDM7CmNvbnN0',
+ 'IGxpc3QgPSBbaSBhcyBpbnRdOwpjb25zdCBzZXQgPSB7aWYgKGxpc3QgaXMgTGlzdDxpbnQ+KSAu',
+ 'Li5saXN0fTsKY29uc3QgbWFwID0ge2lmIChpIGlzIGludCkgaSA6ICJpbnQifTsKYGBgCgpJbiBh',
+ 'ZGRpdGlvbiwgdGhlIHNlbWFudGljcyBvZiBjb25zdGFudCBldmFsdWF0aW9uIGhhcyBiZWVuIGNo',
+ 'YW5nZWQgYXMgZm9sbG93czoKICAtIFRoZSBgJiZgIG9wZXJhdG9yIG9ubHkgZXZhbHVhdGVzIGl0',
+ 'cyBzZWNvbmQgb3BlcmFuZCBpZiB0aGUgZmlyc3QgZXZhbHVhdGVzCiAgdG8gdHJ1ZS4KICAtIFRo',
+ 'ZSBgfHxgIG9wZXJhdG9yIG9ubHkgZXZhbHVhdGVzIGl0cyBzZWNvbmQgb3BlcmFuZCBpZiB0aGUg',
+ 'Zmlyc3QgZXZhbHVhdGVzCiAgdG8gZmFsc2UuCiAgLSBUaGUgYD8/YCBvcGVyYXRvciBvbmx5IGV2',
+ 'YWx1YXRlcyBpdHMgc2Vjb25kIG9wZXJhbmQgaWYgdGhlIGZpcnN0IGV2YWx1YXRlcwogIHRvIG51',
+ 'bGwuCiAgLSBUaGUgY29uZGl0aW9uYWwgb3BlcmF0b3IgKGBlID8gZTEgOiBlMmApIG9ubHkgZXZh',
+ 'bHVhdGVzIG9uZSBvZiB0aGUgdHdvCiAgICBicmFuY2hlcywgZGVwZW5kaW5nIG9uIHRoZSB2YWx1',
+ 'ZSBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4KCmBgYGRhcnQKLy8gRXhhbXBsZTogeCBpcyBub3cgYSB2',
+ 'YWxpZCBjb25zdGFudCBkZWZpbml0aW9uLgpjb25zdCBTdHJpbmcgcyA9IG51bGw7CmNvbnN0IGlu',
+ 'dCB4ID0gKHMgPT0gbnVsbCkgPyAwIDogcy5sZW5ndGg7CmBgYAoKIyMjIENvcmUgbGlicmFyaWVz',
+ 'CgoqICoqQnJlYWtpbmcgY2hhbmdlKiogWyMzNjkwMF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQt',
+ 'bGFuZy9zZGsvaXNzdWVzLzM2OTAwKToKICBUaGUgZm9sbG93aW5nIG1ldGhvZHMgYW5kCiAgcHJv',
+ 'cGVydGllcyBhY3Jvc3MgdmFyaW91cyBjb3JlIGxpYnJhcmllcywgd2hpY2ggdXNlZCB0byBkZWNs',
+ 'YXJlIGEgcmV0dXJuIHR5cGUKICBvZiBgTGlzdDxpbnQ+YCwgd2VyZSB1cGRhdGVkIHRvIGRlY2xh',
+ 'cmUgYSByZXR1cm4gdHlwZSBvZiBgVWludDhMaXN0YDoKCiAgKiBgQnl0ZXNCdWlsZGVyLnRha2VC',
+ 'eXRlcygpYAogICogYEJ5dGVzQnVpbGRlci50b0J5dGVzKClgCiAgKiBgRGF0YWdyYW0uZGF0YWAK',
+ 'ICAqIGBGaWxlLnJlYWRBc0J5dGVzKClgIChgRnV0dXJlPFVpbnQ4TGlzdD5gKQogICogYEZpbGUu',
+ 'cmVhZEFzQnl0ZXNTeW5jKClgCiAgKiBgSW50ZXJuZXRBZGRyZXNzLnJhd0FkZHJlc3NgCiAgKiBg',
+ 'UmFuZG9tQWNjZXNzRmlsZS5yZWFkKClgIChgRnV0dXJlPFVpbnQ4TGlzdD5gKQogICogYFJhbmRv',
+ 'bUFjY2Vzc0ZpbGUucmVhZFN5bmMoKWAKICAqIGBSYXdTb2NrZXQucmVhZCgpYAogICogYFV0ZjhD',
+ 'b2RlYy5lbmNvZGUoKWAgKGFuZCBgVXRmOEVuY29kZXIuY29udmVydCgpYCkKCiAgSW4gYWRkaXRp',
+ 'b24sIHRoZSBmb2xsb3dpbmcgY2xhc3NlcyB3ZXJlIHVwZGF0ZWQgdG8gaW1wbGVtZW50CiAgYFN0',
+ 'cmVhbTxVaW50OExpc3Q+YCByYXRoZXIgdGhhbiBgU3RyZWFtPExpc3Q8aW50Pj5gOgoKICAqIGBI',
+ 'dHRwUmVxdWVzdGAKICAqIGBTb2NrZXRgCgogICoqUG9zc2libGUgZXJyb3JzIGFuZCBob3cgdG8g',
+ 'Zml4IHRoZW0qKgoKICAgICogPiBUaGUgYXJndW1lbnQgdHlwZSAnVXRmOERlY29kZXInIGNhbid0',
+ 'IGJlIGFzc2lnbmVkIHRvIHRoZSBwYXJhbWV0ZXIgdHlwZSAnU3RyZWFtVHJhbnNmb3JtZXI8VWlu',
+ 'dDhMaXN0LCBkeW5hbWljPicKCiAgICAgID4gdHlwZSAnVXRmOERlY29kZXInIGlzIG5vdCBhIHN1',
+ 'YnR5cGUgb2YgdHlwZSAnU3RyZWFtVHJhbnNmb3JtZXInIG9mICdzdHJlYW1UcmFuc2Zvcm1lcici',
+ ];
+}
+
+List<String> _f13(String s) {
+ return [
+ s,
+ 'CgogICAgICBZb3UgY2FuIGZpeCB0aGVzZSBjYWxsIHNpdGVzIGJ5IHVwZGF0aW5nIHlvdXIgY29k',
+ 'ZSB0byB1c2UKICAgICAgYFN0cmVhbVRyYW5zZm9ybWVyLmJpbmQoKWAgaW5zdGVhZCBvZiBgU3Ry',
+ 'ZWFtLnRyYW5zZm9ybSgpYCwgbGlrZSBzbzoKCiAgICAgICpCZWZvcmU6KiBgc3RyZWFtLnRyYW5z',
+ 'Zm9ybSh1dGY4LmRlY29kZXIpYAogICAgICAqQWZ0ZXI6KiBgdXRmOC5kZWNvZGVyLmJpbmQoc3Ry',
+ 'ZWFtKWAKCiAgICAqID4gVGhlIGFyZ3VtZW50IHR5cGUgJ0lPU2luaycgY2FuJ3QgYmUgYXNzaWdu',
+ 'ZWQgdG8gdGhlIHBhcmFtZXRlciB0eXBlICdTdHJlYW1Db25zdW1lcjxVaW50OExpc3Q+JwoKICAg',
+ 'ICAgPiB0eXBlICdfSU9TaW5rSW1wbCcgaXMgbm90IGEgc3VidHlwZSBvZiB0eXBlICdTdHJlYW1D',
+ 'b25zdW1lcjxVaW50OExpc3Q+JyBvZiAnc3RyZWFtQ29uc3VtZXInCgogICAgICBZb3UgY2FuIGZp',
+ 'eCB0aGVzZSBjYWxsIHNpdGVzIGJ5IGNhc3RpbmcgeW91ciBzdHJlYW0gaW5zdGFuY2UgdG8gYSBg',
+ 'U3RyZWFtPExpc3Q8aW50Pj5gIGJlZm9yZSBjYWxsaW5nIGAucGlwZSgpYCBvbiB0aGUgc3RyZWFt',
+ 'LCBsaWtlIHNvOgoKICAgICAgKkJlZm9yZToqIGBzdHJlYW0ucGlwZShjb25zdW1lcilgCiAgICAg',
+ 'ICpBZnRlcjoqIGBzdHJlYW0uY2FzdDxMaXN0PGludD4+KCkucGlwZShjb25zdW1lcilgCgogIEZp',
+ 'bmFsbHksIHRoZSBmb2xsb3dpbmcgdHlwZWQgbGlzdHMgd2VyZSB1cGRhdGVkIHRvIGhhdmUgdGhl',
+ 'aXIgYHN1Ymxpc3QoKWAKICBtZXRob2RzIGRlY2xhcmUgYSByZXR1cm4gdHlwZSB0aGF0IGlzIHRo',
+ 'ZSBzYW1lIGFzIHRoZSBzb3VyY2UgbGlzdDoKCiAgKiBgSW50OExpc3Quc3VibGlzdCgpYCDihpIg',
+ 'YEludDhMaXN0YAogICogYEludDE2TGlzdC5zdWJsaXN0KClgIOKGkiBgSW50MTZMaXN0YAogICog',
+ 'YEludDMyTGlzdC5zdWJsaXN0KClgIOKGkiBgSW50MzJMaXN0YAogICogYEludDY0TGlzdC5zdWJs',
+ 'aXN0KClgIOKGkiBgSW50NjRMaXN0YAogICogYEludDMyeDRMaXN0LnN1Ymxpc3QoKWAg4oaSIGBJ',
+ 'bnQzMng0TGlzdGAKICAqIGBGbG9hdDMyTGlzdC5zdWJsaXN0KClgIOKGkiBgRmxvYXQzMkxpc3Rg',
+ 'CiAgKiBgRmxvYXQ2NExpc3Quc3VibGlzdCgpYCDihpIgYEZsb2F0NjRMaXN0YAogICogYEZsb2F0',
+ 'MzJ4NExpc3Quc3VibGlzdCgpYCDihpIgYEZsb2F0MzJ4NExpc3RgCiAgKiBgRmxvYXQ2NHgyTGlz',
+ 'dC5zdWJsaXN0KClgIOKGkiBgRmxvYXQ2NHgyTGlzdGAKICAqIGBVaW50OExpc3Quc3VibGlzdCgp',
+ 'YCDihpIgYFVpbnQ4TGlzdGAKICAqIGBVaW50OENsYW1wZWRMaXN0LnN1Ymxpc3QoKWAg4oaSIGBV',
+ 'aW50OENsYW1wZWRMaXN0YAogICogYFVpbnQxNkxpc3Quc3VibGlzdCgpYCDihpIgYFVpbnQxNkxp',
+ 'c3RgCiAgKiBgVWludDMyTGlzdC5zdWJsaXN0KClgIOKGkiBgVWludDMyTGlzdGAKICAqIGBVaW50',
+ 'NjRMaXN0LnN1Ymxpc3QoKWAg4oaSIGBVaW50NjRMaXN0YAoKIyMjIyBgZGFydDphc3luY2AKCiog',
+ 'QWRkIGB2YWx1ZWAgYW5kIGBlcnJvcmAgY29uc3RydWN0b3JzIG9uIGBTdHJlYW1gCiAgdG8gYWxs',
+ 'b3cgZWFzaWx5IGNyZWF0aW5nIHNpbmdsZS12YWx1ZSBvciBzaW5nbGUtZXJyb3Igc3RyZWFtcy4K',
+ 'CiMjIyMgYGRhcnQ6Y29yZWAKCiogVXBkYXRlIGBVcmlgIGNsYXNzIHRvIHN1cHBvcnQgW1JGQzY4',
+ 'NzRdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2ODc0KToKICAiJTI1IiBvciAiJSIg',
+ 'Y2FuIGJlIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgYSB2YWxpZCBJUHY2IHJlcHJlc2VudGluZyBh',
+ 'IFpvbmUKICBJZGVudGlmaWVyLiBBIHZhbGlkIHpvbmUgSUQgY29uc2lzdHMgb2YgdW5yZXZlcnNl',
+ 'ZCBjaGFyYWN0ZXIgb3IgUGVyY2VudAogIGVuY29kZWQgb2N0ZXQsIHdoaWNoIHdhcyBkZWZpbmVk',
+ 'IGluIFJGQzM5ODYuCiAgSVB2NmFkZHJ6ID0gSVB2NmFkZHJlc3MgIiUyNSIgWm9uZUlECgogIFsy',
+ 'OTQ1Nl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yOTQ1NgoKIyMj',
+ 'IyBgZGFydDppb2AKCiogKipCcmVha2luZyBjaGFuZ2UqKiBbIzM3MTkyXShodHRwczovL2dpdGh1',
+ 'Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzcxOTIpOgogIFRoZSBgQ29va2llYCBjbGFzcydz',
+ 'IGNvbnN0cnVjdG9yJ3MgYG5hbWVgIGFuZCBgdmFsdWVgCiAgb3B0aW9uYWwgcG9zaXRpb25hbCBw',
+ 'YXJhbWV0ZXJzIGFyZSBub3cgbWFuZGF0b3J5LiBUaGUKICBzaWduYXR1cmUgY2hhbmdlcyBmcm9t',
+ 'OgoKICAgICAgQ29va2llKFtTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlXSkKCiAgdG8KCiAgICAg',
+ 'IENvb2tpZShTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKQoKICBIb3dldmVyLCBpdCBoYXMgbm90',
+ 'IGJlZW4gcG9zc2libGUgdG8gc2V0IGBuYW1lYCBhbmQgYHZhbHVlYCB0byBudWxsIHNpbmNlIERh',
+ 'cnQKICAxLjMuMCAoMjAxNCkgd2hlcmUgYSBidWcgbWFkZSBpdCBpbXBvc3NpYmxlLiBBbnkgY29k',
+ 'ZSBub3QgdXNpbmcgYm90aAogIHBhcmFtZXRlcnMgb3Igc2V0dGluZyBhbnkgdG8gbnVsbCB3b3Vs',
+ 'ZCBuZWNlc3NhcmlseSBnZXQgYSBub1N1Y2hNZXRob2QKICBleGNlcHRpb24gYXQgcnVudGltZS4g',
+ 'VGhpcyBjaGFuZ2UgY2F0Y2hlcyBzdWNoIGVycm9uZW91cyB1c2VzIGF0IGNvbXBpbGUgdGltZS4K',
+ 'ICBTaW5jZSBjb2RlIGNvdWxkIG5vdCBwcmV2aW91c2x5IGNvcnJlY3RseSBvbWl0IHRoZSBwYXJh',
+ 'bWV0ZXJzLCB0aGlzIGlzIG5vdAogIHJlYWxseSBhIGJyZWFraW5nIGNoYW5nZS4KCiogKipCcmVh',
+ 'a2luZyBjaGFuZ2UqKiBbIzM3MTkyXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9p',
+ 'c3N1ZXMvMzcxOTIpOgogIFRoZSBgQ29va2llYCBjbGFzcydzIGBuYW1lYCBhbmQgYHZhbHVlYCBz',
+ 'ZXR0ZXJzIG5vdwogIHZhbGlkYXRlcyB0aGF0IHRoZSBzdHJpbmdzIGFyZSBtYWRlIGZyb20gdGhl',
+ 'IGFsbG93ZWQgY2hhcmFjdGVyIHNldCBhbmQgYXJlIG5vdAogIG51bGwuIFRoZSBjb25zdHJ1Y3Rv',
+ 'ciBhbHJlYWR5IG1hZGUgdGhlc2UgY2hlY2tzIGFuZCB0aGlzCiAgZml4ZXMgdGhlIGxvb3Bob2xl',
+ 'IHdoZXJlIHRoZSBzZXR0ZXJzIGRpZG4ndCBhbHNvIHZhbGlkYXRlLgoKIyMjIERhcnQgVk0KCiMj',
+ 'IyBUb29scwoKIyMjIyBQdWIKCiAqIENsZWFuLXVwIGludmFsaWQgZ2l0IHJlcG9zaXRvcmllcyBp',
+ 'biBjYWNoZSB3aGVuIGZldGNoaW5nIGZyb20gZ2l0LgogKiAqKkJyZWFraW5nIGNoYW5nZSoqICBb',
+ 'IzM2NzY1XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzY3NjUpOgog',
+ 'ICBQYWNrYWdlcyBwdWJsaXNoZWQgdG8gW3B1Yi5kZXZdKGh0dHBzOi8vcHViLmRldikgY2FuIG5v',
+ 'IGxvbmdlciBjb250YWluIGdpdAogICBkZXBlbmRlbmNpZXMuIFRoZXNlIHBhY2thZ2VzIHdpbGwg',
+ 'YmUgcmVqZWN0ZWQgYnkgdGhlIHNlcnZlci4KCiMjIyMgTGludGVyCgpUaGUgTGludGVyIHdhcyB1',
+ 'cGRhdGVkIHRvIGAwLjEuOTZgLCB3aGljaCBpbmNsdWRlczoKCiogZml4ZWQgZmFsc2UgcG9zaXRp',
+ 'dmVzIGluIGB1bm5lY2Vzc2FyeV9wYXJlbnNgCiogdmFyaW91cyBjaGFuZ2VzIHRvIG1pZ3JhdGUg',
+ 'dG8gcHJlZmVycmVkIGFuYWx5emVyIEFQSXMKKiBydWxlIHRlc3QgZml4ZXMKCiMjIyMgRGFydGRv',
+ 'YwoKRGFydGRvYyB3YXMgdXBkYXRlZCB0byBgMC4yOC40YDsgdGhpcyB2ZXJzaW9uIGluY2x1ZGVz',
+ 'IHNldmVyYWwgZml4ZXMgYW5kIGlzIGJhc2VkCm9uIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgYW5h',
+ 'bHl6ZXIgcGFja2FnZS4KCiMjIDIuNC4xIC0gMjAxOS0wOC0wNwoKVGhpcyBpcyBhIHBhdGNoIHJl',
+ 'bGVhc2UgdGhhdCBmaXhlcyBhIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaW4gSklUIG1vZGUsIGFz',
+ 'CndlbGwgYXMgYSBwb3RlbnRpYWwgY3Jhc2ggb2Ygb3VyIEFPVCBjb21waWxlci4KCiMjIyBEYXJ0',
+ 'IFZNCgoqIEZpeGVkIGEgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiB3aGVyZSB1c2FnZSBvZiBgSW50',
+ 'MzJMaXN0YCBjb3VsZCB0cmlnZ2VyCiAgcmVwZWF0ZWQgZGVvcHRpbWl6YXRpb25zIGluIEpJVCBt',
+ 'b2RlIChJc3N1ZSBbMzc1NTFdW10pLgoKKiBGaXhlZCBhIGJ1ZyB3aGVyZSB1c2FnZSBvZiBhIHN0',
+ 'YXRpYyBnZXR0ZXIgd2l0aCBuYW1lIGBsZW5ndGhgIGNvdWxkIGNhdXNlIGEKICBjcmFzaCBpbiBv',
+ 'dXIgQU9UIGNvbXBpbGVyIChJc3N1ZSBbMzUxMjFdW10pLgoKWzM3NTUxXTogaHR0cHM6Ly9naXRo',
+ 'dWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzM3NTUxClszNTEyMV06IGh0dHBzOi8vZ2l0aHVi',
+ 'LmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8zNTEyMQoKIyMjIERhcnQgRGV2IENvbXBpbGVyIChE',
+ 'REMpCgpDYWxsYmFja3MgcGFzc2VkIHRvIEpTIGFuZCB3cmFwcGVkIHdpdGggYGFsbG93SW50ZXJv',
+ 'cGAgb3IKYGFsbG93SW50ZXJvcENhcHR1cmVUaGlzYCBhcmUgbm93IHN0cmljdCBhYm91dCBhcmd1',
+ 'bWVudCBjb3VudHMgYW5kIGFyZ3VtZW50CnR5cGVzLiBUaGlzIG1heSBtZWFuIHRoYXQgdGVzdHMg',
+ 'd2hpY2ggd2VyZSBwcmV2aW91c2x5IHBhc3NpbmcgYW5kIHJlbHlpbmcgb24KbG9vc2UgYXJndW1l',
+ 'bnQgY2hlY2tpbmcgKHRvbyBtYW55IG9yIHRvbyBmZXcgYXJndW1lbnRzLCBvciBhcmd1bWVudHMg',
+ 'd2l0aCB0b28Kc3BlY2lmaWMgdHlwZXMgbGlrZSBgTGlzdDxTb21ldGhpbmc+YCBpbnN0ZWFkIG9m',
+ 'IGBMaXN0PGR5bmFtaWM+YCkgbWF5IHN0YXJ0CmZhaWxpbmcuIFRoaXMgY2hhbmdlcyBtYWtlcyBE',
+ 'REMgYmVoYXZlIG1vcmUgbGlrZSBkYXJ0MmpzIHdpdGggdGhlIGRlZmF1bHQgZmxhZ3MuCgojIyAy',
+ 'LjQuMCAtIDIwMTktMDYtMjcKCiMjIyBDb3JlIGxpYnJhcmllcwoKIyMjIyBgZGFydDppc29sYXRl',
+ 'YAoKKiBgVHJhbnNmZXJhYmxlVHlwZWREYXRhYCBjbGFzcyB3YXMgYWRkZWQgdG8gZmFjaWxpdGF0',
+ 'ZSBmYXN0ZXIgY3Jvc3MtaXNvbGF0ZQpjb21tdW5pY2F0aW9uIG9mIGBVaW50OExpc3RgIGRhdGEu',
+ 'CgoqICoqQnJlYWtpbmcgY2hhbmdlKio6IGBJc29sYXRlLnJlc29sdmVQYWNrYWdlVXJpYCB3aWxs',
+ 'IGFsd2F5cyB0aHJvdyBhbgogIGBVbnN1cHBvcnRlZEVycm9yYCB3aGVuIGNvbXBpbGVkIHdpdGgg',
+ 'ZGFydDJqcyBvciBEREMuIFRoaXMgd2FzIHRoZSBvbmx5CiAgcmVtYWluaW5nIEFQSSBpbiBgZGFy',
+ 'dDppc29sYXRlYCB0aGF0IGRpZG4ndCBhdXRvbWF0aWNhbGx5IHRocm93IHNpbmNlIHdlCiAgZHJv',
+ 'cHBlZCBzdXBwb3J0IGZvciB0aGlzIGxpYnJhcnkgaW4gW0RhcnQgMi4wLjBdWzFdLiBOb3RlIHRo',
+ 'YXQgdGhlIEFQSSBhbHJlYWR5CiAgdGhyb3dzIGluIGRhcnQyanMgaWYgdGhlIEFQSSBpcyB1c2Vk',
+ 'IGRpcmVjdGx5IHdpdGhvdXQgbWFudWFsbHkgc2V0dGluZyB1cCBhCiAgYGRlZmF1bHRQYWNrYWdl',
+ 'c0Jhc2VgIGhvb2suCgpbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2Jsb2Iv',
+ 'bWFzdGVyL0NIQU5HRUxPRy5tZCMyMDAtLS0yMDE4LTA4LTA3CgoKIyMjIyBgZGFydDpkZXZlbG9w',
+ 'ZXJgCiogRXhwb3NlZCBgcmVzdWx0YCwgYGVycm9yQ29kZWAgYW5kIGBlcnJvckRldGFpbGAgZ2V0',
+ 'dGVycyBpbgogIGBTZXJ2aWNlRXh0ZW5zaW9uUmVzcG9uc2VgIHRvIGFsbG93IGZvciBiZXR0ZXIg',
+ 'ZGVidWdnaW5nIG9mIFZNIHNlcnZpY2UKICBleHRlbnNpb24gUlBDIHJlc3VsdHMuCgojIyMjIGBk',
+ 'YXJ0OmlvYAoKKiBGaXhlZCBgQ29va2llYCBjbGFzcyBpbnRlcm9wZXJhYmlsaXR5IHdpdGggY2Vy',
+ 'dGFpbiB3ZWJzaXRlcyBieSBhbGxvd2luZyB0aGUKICBjb29raWUgdmFsdWVzIHRvIGJlIHRoZSBl',
+ ];
+}
+
+List<String> _f14(String s) {
+ return [
+ s,
+ 'bXB0eSBzdHJpbmcgKElzc3VlIFszNTgwNF1bXSkgYW5kIG5vdCBzdHJpcHBpbmcKICBkb3VibGUg',
+ 'cXVvdGVzIGZyb20gdGhlIHZhbHVlIChJc3N1ZSBbMzMzMjddW10pIGluIGFjY29yZGFuY2Ugd2l0',
+ 'aCBSRkMgNjI2NS4KCiAgWzMzMzI3XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsv',
+ 'aXNzdWVzLzMzMzI3CiAgWzM1ODA0XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsv',
+ 'aXNzdWVzLzM1ODA0CgoqIFsjMzY5NzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2Rr',
+ 'L2lzc3Vlcy8zNjk3MSk6CiAgVGhlIGBIdHRwQ2xpZW50UmVzcG9uc2VgIGludGVyZmFjZSBoYXMg',
+ 'YmVlbiBleHRlbmRlZCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBhCiAgbmV3IGBjb21wcmVzc2lvblN0',
+ 'YXRlYCBnZXR0ZXIsIHdoaWNoIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBib2R5IG9mIGEKICByZXNw',
+ 'b25zZSB3YXMgY29tcHJlc3NlZCB3aGVuIGl0IHdhcyByZWNlaXZlZCBhbmQgd2hldGhlciBpdCBo',
+ 'YXMgYmVlbgogIGF1dG9tYXRpY2FsbHkgdW5jb21wcmVzc2VkIHZpYSBgSHR0cENsaWVudC5hdXRv',
+ 'VW5jb21wcmVzc2AuCgogIEFzIHBhcnQgb2YgdGhpcyBjaGFuZ2UsIGEgY29ycmVzcG9uZGluZyBu',
+ 'ZXcgZW51bSB3YXMgYWRkZWQgdG8gYGRhcnQ6aW9gOgogIGBIdHRwQ2xpZW50UmVzcG9uc2VDb21w',
+ 'cmVzc2lvblN0YXRlYC4KCiAgVGhpcyBpcyBhICoqYnJlYWtpbmcgY2hhbmdlKiogZm9yIHRob3Nl',
+ 'IGltcGxlbWVudGluZyB0aGUgYEh0dHBDbGllbnRSZXNwb25zZWAKICBpbnRlcmZhY2UgYXMgc3Vi',
+ 'Y2xhc3NlcyB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcgZ2V0dGVyLgoKIyMjIyBgZGFy',
+ 'dDphc3luY2AKCiogKipCcmVha2luZyBjaGFuZ2UqKiBbIzM2MzgyXShodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzYzODIpOgogIFRoZSBgYXdhaXQgZm9yYCBhbGxvd2Vk',
+ 'IGBudWxsYCBhcyBhIHN0cmVhbSBkdWUgdG8gYSBidWcKICBpbiBgU3RyZWFtSXRlcmF0b3JgIGNs',
+ 'YXNzLiBUaGlzIGJ1ZyBoYXMgbm93IGJlZW4gZml4ZWQuCgojIyMjIGBkYXJ0OmNvcmVgCgoqIFsj',
+ 'MzYxNzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8zNjE3MSk6CiAg',
+ 'VGhlIGBSZWdFeHBgIGludGVyZmFjZSBoYXMgYmVlbiBleHRlbmRlZCB3aXRoIHR3byBuZXcKICBj',
+ 'b25zdHJ1Y3RvciBuYW1lZCBwYXJhbWV0ZXJzOgoKICAqIGB1bmljb2RlOmAgKGBib29sYCwgZGVm',
+ 'YXVsdDogYGZhbHNlYCksIGZvciBVbmljb2RlIHBhdHRlcm5zCiAgKiBgZG90QWxsOmAgKGBib29s',
+ 'YCwgZGVmYXVsdDogYGZhbHNlYCksIHRvIGNoYW5nZSB0aGUgbWF0Y2hpbmcgYmVoYXZpb3Igb2YK',
+ 'ICAgICcuJyB0byBhbHNvIG1hdGNoIGxpbmUgdGVybWluYXRpbmcgY2hhcmFjdGVycy4KCiAgQXBw',
+ 'cm9wcmlhdGUgcHJvcGVydGllcyBmb3IgdGhlc2UgbmFtZWQgcGFyYW1ldGVycyBoYXZlIGFsc28g',
+ 'YmVlbiBhZGRlZCBzbwogIHRoZWlyIHVzZSBjYW4gYmUgZGV0ZWN0ZWQgYWZ0ZXIgY29uc3RydWN0',
+ 'aW9uLgoKICBJbiBhZGRpdGlvbiwgYFJlZ0V4cGAgbWV0aG9kcyB0aGF0IG9yaWdpbmFsbHkgcmV0',
+ 'dXJuZWQgYE1hdGNoYCBvYmplY3RzCiAgbm93IHJldHVybiBhIG1vcmUgc3BlY2lmaWMgc3VidHlw',
+ 'ZSwgYFJlZ0V4cE1hdGNoYCwgd2hpY2ggYWRkcyB0d28gZmVhdHVyZXM6CgogICogYEl0ZXJhYmxl',
+ 'PFN0cmluZz4gZ3JvdXBOYW1lc2AsIGEgcHJvcGVydHkgdGhhdCBjb250YWlucyB0aGUgbmFtZXMg',
+ 'b2YgYWxsCiAgICBuYW1lZCBjYXB0dXJlIGdyb3VwcwogICogYFN0cmluZyBuYW1lZEdyb3VwKFN0',
+ 'cmluZyBuYW1lKWAsIGEgbWV0aG9kIHRoYXQgcmV0cmlldmVzIHRoZSBtYXRjaCBmb3IKICAgIHRo',
+ 'ZSBnaXZlbiBuYW1lZCBjYXB0dXJlIGdyb3VwCgogIFRoaXMgaXMgYSAqKmJyZWFraW5nIGNoYW5n',
+ 'ZSoqIGZvciBpbXBsZW1lbnRlcnMgb2YgdGhlIGBSZWdFeHBgIGludGVyZmFjZS4KICBTdWJjbGFz',
+ 'c2VzIHdpbGwgbmVlZCB0byBhZGQgdGhlIG5ldyBwcm9wZXJ0aWVzIGFuZCBtYXkgaGF2ZSB0byB1',
+ 'cGRhdGUgdGhlCiAgcmV0dXJuIHR5cGVzIG9uIG92ZXJyaWRkZW4gbWV0aG9kcy4KCiMjIyBMYW5n',
+ 'dWFnZQoKKiAgICoqQnJlYWtpbmcgY2hhbmdlKiogWyMzNTA5N10oaHR0cHM6Ly9naXRodWIuY29t',
+ 'L2RhcnQtbGFuZy9zZGsvaXNzdWVzLzM1MDk3KToKICAgIENvdmFyaWFuY2Ugb2YgdHlwZSB2YXJp',
+ 'YWJsZXMgdXNlZCBpbiBzdXBlci1pbnRlcmZhY2VzCiAgICBpcyBub3cgZW5mb3JjZWQuIEZvciBl',
+ 'eGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvZGUgd2FzCiAgICBwcmV2aW91c2x5IGFjY2VwdGVkIGFu',
+ 'ZCB3aWxsIG5vdyBiZSByZWplY3RlZDoKCmBgYGRhcnQKY2xhc3MgQTxYPiB7fTsKY2xhc3MgQjxY',
+ 'PiBleHRlbmRzIEE8dm9pZCBGdW5jdGlvbihYKT4ge307CmBgYAoKKiBUaGUgaWRlbnRpZmllciBg',
+ 'YXN5bmNgIGNhbiBub3cgYmUgdXNlZCBpbiBhc3luY2hyb25vdXMgYW5kIGdlbmVyYXRvcgogIGZ1',
+ 'bmN0aW9ucy4KCiMjIyBEYXJ0IGZvciB0aGUgV2ViCgojIyMjIERhcnQgRGV2IENvbXBpbGVyIChE',
+ 'REMpCgoqIEltcHJvdmUgYE5vU3VjaE1ldGhvZGAgZXJyb3JzIGZvciBmYWlsaW5nIGR5bmFtaWMg',
+ 'Y2FsbHMuIE5vdyB0aGV5IGluY2x1ZGUKICBzcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUg',
+ 'bmF0dXJlIG9mIHRoZSBlcnJvciBzdWNoIGFzOgogICogQXR0ZW1wdGluZyB0byBjYWxsIGEgbnVs',
+ 'bCB2YWx1ZS4KICAqIENhbGxpbmcgYW4gb2JqZWN0IGluc3RhbmNlIHdpdGggYSBudWxsIGBjYWxs',
+ 'KClgIG1ldGhvZC4KICAqIFBhc3NpbmcgdG9vIGZldyBvciB0b28gbWFueSBhcmd1bWVudHMuCiAg',
+ 'KiBQYXNzaW5nIGluY29ycmVjdCBuYW1lZCBhcmd1bWVudHMuCiAgKiBQYXNzaW5nIHRvbyBmZXcg',
+ 'b3IgdG9vIG1hbnkgdHlwZSBhcmd1bWVudHMuCiAgKiBQYXNzaW5nIHR5cGUgYXJndW1lbnRzIHRv',
+ 'IGEgbm9uLWdlbmVyaWMgbWV0aG9kLgoKIyMjIFRvb2xzCgojIyMjIExpbnRlcgoKVGhlIExpbnRl',
+ 'ciB3YXMgdXBkYXRlZCB0byBgMC4xLjkxYCwgd2hpY2ggaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBj',
+ 'aGFuZ2VzOgoKKiBGaXhlZCBtaXNzZWQgY2FzZXMgaW4gYHByZWZlcl9jb25zdF9jb25zdHJ1Y3Rv',
+ 'cnNgCiogRml4ZWQgYHByZWZlcl9pbml0aWFsaXppbmdfZm9ybWFsc2AgdG8gbm8gbG9uZ2VyIHN1',
+ 'Z2dlc3QgQVBJIGJyZWFraW5nIGNoYW5nZXMKKiBVcGRhdGVkIGBvbWl0X2xvY2FsX3ZhcmlhYmxl',
+ 'X3R5cGVzYCB0byBhbGxvdyBleHBsaWNpdCBgZHluYW1pY2BzCiogRml4ZWQgbnVsbC1yZWZlcmVu',
+ 'Y2UgaW4gYHVucmVsYXRlZF90eXBlX2VxdWFsaXR5X2NoZWNrc2AKKiBOZXcgbGludDogYHVuc2Fm',
+ 'ZV9odG1sYAoqIEJyb2FkZW5lZCBgcHJlZmVyX251bGxfYXdhcmVfb3BlcmF0b3JzYCB0byB3b3Jr',
+ 'IGJleW9uZCBsb2NhbCB2YXJpYWJsZXMuCiogQWRkZWQgYHByZWZlcl9pZl9udWxsX29wZXJhdG9y',
+ 'c2AuCiogRml4ZWQgYHByZWZlcl9jb250YWluc2AgZmFsc2UgcG9zaXRpdmVzLgoqIEZpeGVkIGB1',
+ 'bm5lY2Vzc2FyeV9wYXJlbnRoZXNpc2AgZmFsc2UgcG9zaXRpdmVzLgoqIEZpeGVkIGBwcmVmZXJf',
+ 'YXNzZXJ0c19pbl9pbml0aWFsaXplcl9saXN0c2AgZmFsc2UgcG9zaXRpdmVzCiogRml4ZWQgYGN1',
+ 'cmx5X2JyYWNlc19pbl9mbG93X2NvbnRyb2xfc3RydWN0dXJlc2AgdG8gaGFuZGxlIG1vcmUgY2Fz',
+ 'ZXMKKiBOZXcgbGludDogYHByZWZlcl9kb3VibGVfcXVvdGVzYAoqIE5ldyBsaW50OiBgc29ydF9j',
+ 'aGlsZF9wcm9wZXJ0aWVzX2xhc3RgCiogRml4ZWQgYHR5cGVfYW5ub3RhdGVfcHVibGljX2FwaXNg',
+ 'IGZhbHNlIHBvc2l0aXZlIGZvciBgc3RhdGljIGNvbnN0YCBpbml0aWFsaXplcnMKCiMjIyMgUHVi',
+ 'CgoqIGBwdWIgcHVibGlzaGAgd2lsbCBubyBsb25nZXIgd2FybiBhYm91dCBtaXNzaW5nIGRlcGVu',
+ 'ZGVuY2llcyBmb3IgaW1wb3J0CiAgIHN0YXRlbWVudHMgaW4gYGV4YW1wbGUvYC4KKiBPQXV0aDIg',
+ 'YXV0aGVudGljYXRpb24gd2lsbCBleHBsaWNpdGx5IGFzayBmb3IgdGhlIGBvcGVuaWRgIHNjb3Bl',
+ 'LgoKIyMgMi4zLjIgLSAyMDE5LTA2LTExCgpUaGlzIGlzIGEgcGF0Y2ggdmVyc2lvbiByZWxlYXNl',
+ 'IHdpdGggYSBzZWN1cml0eSBpbXByb3ZlbWVudC4KCiMjIyBTZWN1cml0eSB2dWxuZXJhYmlsaXR5',
+ 'CgoqICAqKlNlY3VyaXR5IGltcHJvdmVtZW50OioqIE9uIExpbnV4IGFuZCBBbmRyb2lkLCBzdGFy',
+ 'dGluZyBhIHByb2Nlc3Mgd2l0aAogICBgUHJvY2Vzcy5ydW5gLCBgUHJvY2Vzcy5ydW5TeW5jYCwg',
+ 'b3IgYFByb2Nlc3Muc3RhcnRgIHdvdWxkIGZpcnN0IHNlYXJjaCB0aGUKICAgY3VycmVudCBkaXJl',
+ 'Y3RvcnkgYmVmb3JlIHNlYXJjaGluZyBgUEFUSGAgKElzc3VlIFszNzEwMV1bXSkuIFRoaXMgYmVo',
+ 'YXZpb3IKICAgZWZmZWN0aXZlbHkgcHV0IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGlu',
+ 'IHRoZSBmcm9udCBvZiBgUEFUSGAsIGV2ZW4gaWYKICAgaXQgd2Fzbid0IGluIHRoZSBgUEFUSGAu',
+ 'IFRoaXMgcmVsZWFzZSBjaGFuZ2VzIHRoYXQgYmVoYXZpb3IgdG8gb25seSBzZWFyY2hpbmcKICAg',
+ 'dGhlIGRpcmVjdG9yaWVzIGluIHRoZSBgUEFUSGAgZW52aXJvbm1lbnQgdmFyaWFibGUuIE9wZXJh',
+ 'dGluZyBzeXN0ZW1zIG90aGVyCiAgIHRoYW4gTGludXggYW5kIEFuZHJvaWQgZGlkbid0IGhhdmUg',
+ 'dGhpcyBiZWhhdmlvciBhbmQgYXJlbid0IGFmZmVjdGVkIGJ5IHRoaXMKICAgdnVsbmVyYWJpbGl0',
+ 'eS4KCiAgIFRoaXMgdnVsbmVyYWJpbGl0eSBjb3VsZCByZXN1bHQgaW4gZXhlY3V0aW9uIG9mIHVu',
+ 'dHJ1c3RlZCBjb2RlIGlmIGEgY29tbWFuZAogICB3aXRob3V0IGEgc2xhc2ggaW4gaXRzIG5hbWUg',
+ 'd2FzIHJ1biBpbnNpZGUgYW4gdW50cnVzdGVkIGRpcmVjdG9yeSBjb250YWluaW5nCiAgIGFuIGV4',
+ 'ZWN1dGFibGUgZmlsZSB3aXRoIHRoYXQgbmFtZToKCiAgIGBgYGRhcnQKICAgUHJvY2Vzcy5ydW4o',
+ 'ImxzIiwgd29ya2luZ0RpcmVjdG9yeTogIi91bnRydXN0ZWQvZGlyZWN0b3J5IikKICAgYGBgCgog',
+ 'ICBUaGlzIHdvdWxkIGF0dGVtcHQgdG8gcnVuIGAvdW50cnVzdGVkL2RpcmVjdG9yeS9sc2AgaWYg',
+ 'aXQgZXhpc3RlZCwgZXZlbgogICB0aG91Z2ggaXQgaXMgbm90IGluIHRoZSBgUEFUSGAuIEl0IHdh',
+ 'cyBhbHdheXMgc2FmZSB0byBpbnN0ZWFkIHVzZSBhbiBhYnNvbHV0ZQogICBwYXRoIG9yIGEgcGF0',
+ 'aCBjb250YWluaW5nIGEgc2xhc2guCgogICBUaGlzIHZ1bG5lcmFiaWxpdHkgd2FzIGludHJvZHVj',
+ 'ZWQgaW4gRGFydCAyLjAuMC4KClszNzEwMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcv',
+ 'c2RrL2lzc3Vlcy8zNzEwMQoKIyMgMi4zLjEgLSAyMDE5LTA1LTIxCgpUaGlzIGlzIGEgcGF0Y2gg',
+ 'dmVyc2lvbiByZWxlYXNlIHdpdGggYnVnIGZpeGVzLgoKIyMjIFRvb2xzCgojIyMjIGRhcnQyanMK',
+ 'CiogRml4ZWQgYSBidWcgdGhhdCBjYXVzZWQgdGhlIGNvbXBpbGVyIHRvIGNyYXNoIHdoZW4gaXQg',
+ 'Y29tcGlsZWQgVUktYXMtY29kZQogIGZlYXR1cmVzIHdpdGhpbiBmaWVsZHMgKElzc3VlIFszNjg2',
+ 'NF1bXSkuCgpbMzY4NjRdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMv',
+ 'MzY4NjQKCiMjIDIuMy4wIC0gMjAxOS0wNS0wOAoKVGhlIGZvY3VzIGluIHRoaXMgcmVsZWFzZSBp',
+ 'cyBvbiB0aGUgbmV3ICJVSS1hcy1jb2RlIiBsYW5ndWFnZSBmZWF0dXJlcyB3aGljaAptYWtlIGNv',
+ ];
+}
+
+List<String> _f15(String s) {
+ return [
+ s,
+ 'bGxlY3Rpb25zIG1vcmUgZXhwcmVzc2l2ZSBhbmQgZGVjbGFyYXRpdmUuCgojIyMgTGFuZ3VhZ2UK',
+ 'CkZsdXR0ZXIgaXMgZ3Jvd2luZyByYXBpZGx5LCB3aGljaCBtZWFucyBtYW55IERhcnQgdXNlcnMg',
+ 'YXJlIGJ1aWxkaW5nIFVJIGluIGNvZGUKb3V0IG9mIGJpZyBkZWVwbHktbmVzdGVkIGV4cHJlc3Np',
+ 'b25zLiBPdXIgZ29hbCB3aXRoIDIuMy4wIHdhcyB0byBbbWFrZSB0aGF0IGtpbmQKb2YgY29kZSBl',
+ 'YXNpZXIgdG8gd3JpdGUgYW5kIG1haW50YWluXVt1aS1hcy1jb2RlXS4gQ29sbGVjdGlvbiBsaXRl',
+ 'cmFscyBhcmUgYQpsYXJnZSBjb21wb25lbnQsIHNvIHdlIGZvY3VzZWQgb24gdGhyZWUgZmVhdHVy',
+ 'ZXMgdG8gbWFrZSBjb2xsZWN0aW9ucyBtb3JlCnBvd2VyZnVsLiBXZSdsbCB1c2UgbGlzdCBsaXRl',
+ 'cmFscyBpbiB0aGUgZXhhbXBsZXMgYmVsb3csIGJ1dCB0aGVzZSBmZWF0dXJlcyBhbHNvCndvcmsg',
+ 'aW4gbWFwIGFuZCBzZXQgbGl0ZXJhbHMuCgpbdWktYXMtY29kZV06IGh0dHBzOi8vbWVkaXVtLmNv',
+ 'bS9kYXJ0bGFuZy9tYWtpbmctZGFydC1hLWJldHRlci1sYW5ndWFnZS1mb3ItdWktZjFjY2FmOWY1',
+ 'NDZjCgojIyMjIFNwcmVhZAoKUGxhY2luZyBgLi4uYCBiZWZvcmUgYW4gZXhwcmVzc2lvbiBpbnNp',
+ 'ZGUgYSBjb2xsZWN0aW9uIGxpdGVyYWwgdW5wYWNrcyB0aGUKcmVzdWx0IG9mIHRoZSBleHByZXNz',
+ 'aW9uIGFuZCBpbnNlcnRzIGl0cyBlbGVtZW50cyBkaXJlY3RseSBpbnNpZGUgdGhlIG5ldwpjb2xs',
+ 'ZWN0aW9uLiBXaGVyZSBiZWZvcmUgeW91IGhhZCB0byB3cml0ZSBzb21ldGhpbmcgbGlrZSB0aGlz',
+ 'OgoKYGBgZGFydApDdXBlcnRpbm9QYWdlU2NhZmZvbGQoCiAgY2hpbGQ6IExpc3RWaWV3KGNoaWxk',
+ 'cmVuOiBbCiAgICBUYWIySGVhZGVyKCkKICBdLi5hZGRBbGwoYnVpbGRUYWIyQ29udmVyc2F0aW9u',
+ 'KCkpCiAgICAuLmFkZChidWlsZEZvb3RlcigpKSksCik7CmBgYAoKTm93IHlvdSBjYW4gd3JpdGUg',
+ 'dGhpczoKCmBgYGRhcnQKQ3VwZXJ0aW5vUGFnZVNjYWZmb2xkKAogIGNoaWxkOiBMaXN0Vmlldyhj',
+ 'aGlsZHJlbjogWwogICAgVGFiMkhlYWRlcigpLAogICAgLi4uYnVpbGRUYWIyQ29udmVyc2F0aW9u',
+ 'KCksCiAgICBidWlsZEZvb3RlcigpCiAgXSksCik7CmBgYAoKSWYgeW91IGtub3cgdGhlIGV4cHJl',
+ 'c3Npb24gbWlnaHQgZXZhbHVhdGUgdG8gbnVsbCBhbmQgeW91IHdhbnQgdG8gdHJlYXQgdGhhdCBh',
+ 'cwplcXVpdmFsZW50IHRvIHplcm8gZWxlbWVudHMsIHlvdSBjYW4gdXNlIHRoZSBudWxsLWF3YXJl',
+ 'IHNwcmVhZCBgLi4uP2AuCgojIyMjIENvbGxlY3Rpb24gaWYKClNvbWV0aW1lcyB5b3UgbWlnaHQg',
+ 'd2FudCB0byBpbmNsdWRlIG9uZSBvciBtb3JlIGVsZW1lbnRzIGluIGEgY29sbGVjdGlvbiBvbmx5',
+ 'CnVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4gSWYgeW91J3JlIGx1Y2t5LCB5b3UgY2FuIHVzZSBh',
+ 'IGA/OmAgb3BlcmF0b3IgdG8Kc2VsZWN0aXZlbHkgc3dhcCBvdXQgYSBzaW5nbGUgZWxlbWVudCwg',
+ 'YnV0IGlmIHlvdSB3YW50IHRvIGV4Y2hhbmdlIG1vcmUgdGhhbiBvbmUKb3Igb21pdCBlbGVtZW50',
+ 'cywgeW91IGFyZSBmb3JjZWQgdG8gd3JpdGUgaW1wZXJhdGl2ZSBjb2RlIGxpa2UgdGhpczoKCmBg',
+ 'YGRhcnQKV2lkZ2V0IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgdmFyIGNoaWxkcmVu',
+ 'ID0gWwogICAgSWNvbkJ1dHRvbihpY29uOiBJY29uKEljb25zLm1lbnUpKSwKICAgIEV4cGFuZGVk',
+ 'KGNoaWxkOiB0aXRsZSkKICBdOwoKICBpZiAoaXNBbmRyb2lkKSB7CiAgICBjaGlsZHJlbi5hZGQo',
+ 'SWNvbkJ1dHRvbihpY29uOiBJY29uKEljb25zLnNlYXJjaCkpKTsKICB9CgogIHJldHVybiBSb3co',
+ 'Y2hpbGRyZW46IGNoaWxkcmVuKTsKfQpgYGAKCldlIG5vdyBhbGxvdyBgaWZgIGluc2lkZSBjb2xs',
+ 'ZWN0aW9uIGxpdGVyYWxzIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBvciAod2l0aApgZWxzZWApIHN3',
+ 'YXAgb3V0IGFuIGVsZW1lbnQ6CgpgYGBkYXJ0CldpZGdldCBidWlsZChCdWlsZENvbnRleHQgY29u',
+ 'dGV4dCkgewogIHJldHVybiBSb3coCiAgICBjaGlsZHJlbjogWwogICAgICBJY29uQnV0dG9uKGlj',
+ 'b246IEljb24oSWNvbnMubWVudSkpLAogICAgICBFeHBhbmRlZChjaGlsZDogdGl0bGUpLAogICAg',
+ 'ICBpZiAoaXNBbmRyb2lkKQogICAgICAgIEljb25CdXR0b24oaWNvbjogSWNvbihJY29ucy5zZWFy',
+ 'Y2gpKSwKICAgIF0sCiAgKTsKfQpgYGAKClVubGlrZSB0aGUgZXhpc3RpbmcgYD86YCBvcGVyYXRv',
+ 'ciwgYSBjb2xsZWN0aW9uIGBpZmAgY2FuIGJlIGNvbXBvc2VkIHdpdGgKc3ByZWFkcyB0byBjb25k',
+ 'aXRpb25hbGx5IGluY2x1ZGUgb3Igb21pdCBtdWx0aXBsZSBpdGVtczoKCmBgYGRhcnQKV2lkZ2V0',
+ 'IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgcmV0dXJuIFJvdygKICAgIGNoaWxkcmVu',
+ 'OiBbCiAgICAgIEljb25CdXR0b24oaWNvbjogSWNvbihJY29ucy5tZW51KSksCiAgICAgIGlmIChp',
+ 'c0FuZHJvaWQpIC4uLlsKICAgICAgICBFeHBhbmRlZChjaGlsZDogdGl0bGUpLAogICAgICAgIElj',
+ 'b25CdXR0b24oaWNvbjogSWNvbihJY29ucy5zZWFyY2gpKSwKICAgICAgXQogICAgXSwKICApOwp9',
+ 'CmBgYAoKIyMjIyBDb2xsZWN0aW9uIGZvcgoKSW4gbWFueSBjYXNlcywgdGhlIGhpZ2hlci1vcmRl',
+ 'ciBtZXRob2RzIG9uIEl0ZXJhYmxlIGdpdmUgeW91IGEgZGVjbGFyYXRpdmUgd2F5CnRvIG1vZGlm',
+ 'eSBhIGNvbGxlY3Rpb24gaW4gdGhlIGNvbnRleHQgb2YgYSBzaW5nbGUgZXhwcmVzc2lvbi4gQnV0',
+ 'IHNvbWUKb3BlcmF0aW9ucywgZXNwZWNpYWxseSBpbnZvbHZpbmcgYm90aCB0cmFuc2Zvcm1pbmcg',
+ 'YW5kIGZpbHRlcmluZywgY2FuIGJlCmN1bWJlcnNvbWUgdG8gZXhwcmVzcyBpbiBhIGZ1bmN0aW9u',
+ 'YWwgc3R5bGUuCgpUbyBzb2x2ZSB0aGlzIHByb2JsZW0sIHlvdSBjYW4gdXNlIGBmb3JgIGluc2lk',
+ 'ZSBhIGNvbGxlY3Rpb24gbGl0ZXJhbC4gRWFjaAppdGVyYXRpb24gb2YgdGhlIGxvb3AgcHJvZHVj',
+ 'ZXMgYW4gZWxlbWVudCB3aGljaCBpcyB0aGVuIGluc2VydGVkIGluIHRoZQpyZXN1bHRpbmcgY29s',
+ 'bGVjdGlvbi4gQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBjb2RlOgoKYGBgZGFydAp2YXIgY29tbWFu',
+ 'ZCA9IFsKICBlbmdpbmVEYXJ0UGF0aCwKICBmcm9udGVuZFNlcnZlciwKICAuLi5maWxlU3lzdGVt',
+ 'Um9vdHMubWFwKChyb290KSA9PiAiLS1maWxlc3lzdGVtLXJvb3Q9JHJvb3QiKSwKICAuLi5lbnRy',
+ 'eVBvaW50cwogICAgICAud2hlcmUoKGVudHJ5UG9pbnQpID0+IGZpbGVFeGlzdHMoImxpYi8kZW50',
+ 'cnlQb2ludC5qc29uIikpCiAgICAgIC5tYXAoKGVudHJ5UG9pbnQpID0+ICJsaWIvJGVudHJ5UG9p',
+ 'bnQiKSwKICBtYWluUGF0aApdOwpgYGAKCldpdGggYSBjb2xsZWN0aW9uIGBmb3JgLCB0aGUgY29k',
+ 'ZSBiZWNvbWVzIHNpbXBsZXI6CgpgYGBkYXJ0CnZhciBjb21tYW5kID0gWwogIGVuZ2luZURhcnRQ',
+ 'YXRoLAogIGZyb250ZW5kU2VydmVyLAogIGZvciAodmFyIHJvb3QgaW4gZmlsZVN5c3RlbVJvb3Rz',
+ 'KSAiLS1maWxlc3lzdGVtLXJvb3Q9JHJvb3QiLAogIGZvciAodmFyIGVudHJ5UG9pbnQgaW4gZW50',
+ 'cnlQb2ludHMpCiAgICBpZiAoZmlsZUV4aXN0cygibGliLyRlbnRyeVBvaW50Lmpzb24iKSkgImxp',
+ 'Yi8kZW50cnlQb2ludCIsCiAgbWFpblBhdGgKXTsKYGBgCgpBcyB5b3UgY2FuIHNlZSwgYWxsIHRo',
+ 'cmVlIG9mIHRoZXNlIGZlYXR1cmVzIGNhbiBiZSBmcmVlbHkgY29tcG9zZWQuIEZvciBmdWxsCmRl',
+ 'dGFpbHMgb2YgdGhlIGNoYW5nZXMsIHNlZSBbdGhlIG9mZmljaWFsIHByb3Bvc2FsXVt1aS1hcy1j',
+ 'b2RlIHByb3Bvc2FsXS4KClt1aS1hcy1jb2RlIHByb3Bvc2FsXTogaHR0cHM6Ly9naXRodWIuY29t',
+ 'L2RhcnQtbGFuZy9sYW5ndWFnZS9ibG9iL21hc3Rlci9hY2NlcHRlZC9mdXR1cmUtcmVsZWFzZXMv',
+ 'dW5pZmllZC1jb2xsZWN0aW9ucy9mZWF0dXJlLXNwZWNpZmljYXRpb24ubWQKCioqTm90ZTogVGhl',
+ 'c2UgZmVhdHVyZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluICpjb25zdCogY29sbGVj',
+ 'dGlvbgpsaXRlcmFscy4gSW4gYSBmdXR1cmUgcmVsZWFzZSwgd2UgaW50ZW5kIHRvIHJlbGF4IHRo',
+ 'aXMgcmVzdHJpY3Rpb24gYW5kIGFsbG93CnNwcmVhZCBhbmQgY29sbGVjdGlvbiBgaWZgIGluc2lk',
+ 'ZSBjb25zdCBjb2xsZWN0aW9ucy4qKgoKIyMjIENvcmUgbGlicmFyeSBjaGFuZ2VzCgojIyMjIGBk',
+ 'YXJ0Omlzb2xhdGVgCgoqICAgQWRkZWQgYGRlYnVnTmFtZWAgcHJvcGVydHkgdG8gYElzb2xhdGVg',
+ 'LgoqICAgQWRkZWQgYGRlYnVnTmFtZWAgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIGBJc29sYXRlLnNw',
+ 'YXduYCBhbmQKICAgIGBJc29sYXRlLnNwYXduVXJpYC4KCiMjIyMgYGRhcnQ6Y29yZWAKCiogICBS',
+ 'ZWdFeHAgcGF0dGVybnMgY2FuIG5vdyB1c2UgbG9va2JlaGluZCBhc3NlcnRpb25zLgoqICAgUmVn',
+ 'RXhwIHBhdHRlcm5zIGNhbiBub3cgdXNlIG5hbWVkIGNhcHR1cmUgZ3JvdXBzIGFuZCBuYW1lZCBi',
+ 'YWNrcmVmZXJlbmNlcy4KICAgIEN1cnJlbnRseSwgbmFtZWQgZ3JvdXAgbWF0Y2hlcyBjYW4gb25s',
+ 'eSBiZSByZXRyaWV2ZWQgaW4gRGFydCBlaXRoZXIgYnkgdGhlCiAgICBpbXBsaWNpdCBpbmRleCBv',
+ 'ZiB0aGUgbmFtZWQgZ3JvdXAgb3IgYnkgZG93bmNhc3RpbmcgdGhlIHJldHVybmVkIE1hdGNoCiAg',
+ 'ICBvYmplY3QgdG8gdGhlIHR5cGUgUmVnRXhwTWF0Y2guIFRoZSBSZWdFeHBNYXRjaCBpbnRlcmZh',
+ 'Y2UgY29udGFpbnMgbWV0aG9kcwogICAgZm9yIHJldHJpZXZpbmcgdGhlIGF2YWlsYWJsZSBncm91',
+ 'cCBuYW1lcyBhbmQgcmV0cmlldmluZyBhIG1hdGNoIGJ5IGdyb3VwCiAgICBuYW1lLgoKIyMjIERh',
+ 'cnQgVk0KCiogICBUaGUgVk0gc2VydmljZSBub3cgcmVxdWlyZXMgYW4gYXV0aGVudGljYXRpb24g',
+ 'Y29kZSBieSBkZWZhdWx0LiBUaGlzIGJlaGF2aW9yCiAgICBjYW4gYmUgZGlzYWJsZWQgYnkgcHJv',
+ 'dmlkaW5nIHRoZSBgLS1kaXNhYmxlLXNlcnZpY2UtYXV0aC1jb2Rlc2AgZmxhZy4KCiogICBTdXBw',
+ 'b3J0IGZvciBkZXByZWNhdGVkIGZsYWdzICctYycgYW5kICctLWNoZWNrZWQnIGhhcyBiZWVuIHJl',
+ 'bW92ZWQuCgojIyMgRGFydCBmb3IgdGhlIFdlYgoKIyMjIyBkYXJ0MmpzCgpBIGJpbmFyeSBmb3Jt',
+ 'YXQgd2FzIGFkZGVkIHRvIGR1bXAtaW5mby4gVGhlIG9sZCBKU09OIGZvcm1hdCBpcyBzdGlsbCBh',
+ 'dmFpbGFibGUKYW5kIHByb3ZpZGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSBhcmUgc3RhcnRpbmcgdG8g',
+ 'ZGVwcmVjYXRlIGl0LiBUaGUgbmV3IGJpbmFyeQpmb3JtYXQgaXMgbW9yZSBjb21wYWN0IGFuZCBj',
+ 'aGVhcGVyIHRvIGdlbmVyYXRlLiBPbiBzb21lIGxhcmdlIGFwcHMgd2UgdGVzdGVkLCBpdAp3YXMg',
+ 'NHggZmFzdGVyIHRvIHNlcmlhbGl6ZSBhbmQgdXNlZCA2eCBsZXNzIG1lbW9yeS4KClRvIHVzZSB0',
+ 'aGUgYmluYXJ5IGZvcm1hdCB0b2RheSwgdXNlIGAtLWR1bXAtaW5mbz1iaW5hcnlgLCBpbnN0ZWFk',
+ 'IG9mCmAtLWR1bXAtaW5mb2AuCgpXaGF0IHRvIGV4cGVjdCBuZXh0PwoKKiAgIFRoZSBbdmlzdWFs',
+ 'aXplciB0b29sXVt2aXN1YWxpemVyXSB3aWxsIG5vdCBiZSB1cGRhdGVkIHRvIHN1cHBvcnQgdGhl',
+ 'IG5ldwogICAgYmluYXJ5IGZvcm1hdCwgYnV0IHlvdSBjYW4gZmluZCBzZXZlcmFsIGNvbW1hbmQt',
+ 'bGluZSB0b29scyBhdAogICAgYHBhY2thZ2U6ZGFydDJqc19pbmZvYCB0aGF0IHByb3ZpZGUgc2lt',
+ 'aWxhciBmZWF0dXJlcyB0byB0aG9zZSBpbiB0aGUKICAgIHZpc3VhbGl6ZXIuCgoqICAgVGhlIGNv',
+ ];
+}
diff --git a/benchmarks/StringPool/dart/version1b.dart b/benchmarks/StringPool/dart/version1b.dart
new file mode 100644
index 0000000..c168c17
--- /dev/null
+++ b/benchmarks/StringPool/dart/version1b.dart
@@ -0,0 +1,1619 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// version1b.dart is the same version1a.dart except for renaming of functions.
+
+List<List<String> Function(String)> version1bx1500() {
+ return [
+ _g1,
+ _g2,
+ _g3,
+ _g4,
+ _g5,
+ _g6,
+ _g7,
+ _g8,
+ _g9,
+ _g10,
+ _g11,
+ _g12,
+ _g13,
+ _g14,
+ _g15
+ ];
+}
+
+List<List<String> Function(String)> version1bx100() {
+ return [_g15];
+}
+
+List<String> _g1(String s) {
+ return [
+ s,
+ 'IyMgMi4xNC4wCgojIyMgQ29yZSBsaWJyYXJpZXMKCiMjIyMgYGRhcnQ6YXN5bmNgCgoqIFRoZSB1',
+ 'bmNhdWdodCBlcnJvciBoYW5kbGVycyBvZiBgWm9uZWBzIGFyZSBub3cgcnVuIGluIHRoZSBwYXJl',
+ 'bnQgem9uZQogIG9mIHRoZSB6b25lIHdoZXJlIHRoZXkgd2VyZSBkZWNsYXJlZC4gVGhpcyBwcmV2',
+ 'ZW50cyBhIHRocm93aW5nIGhhbmRsZXIKICBmcm9tIGNhdXNpbmcgYW4gaW5maW5pdGUgbG9vcCBi',
+ 'eSByZXBlYXRlZGx5IHRyaWdnZXJpbmcgaXRzZWxmLgoKIyMjIyBgZGFydDpjb3JlYAoKKiAgIFRo',
+ 'ZSBuYXRpdmUgYERhdGVUaW1lYCBjbGFzcyBub3cgYmV0dGVyIGhhbmRsZXMgbG9jYWwgdGltZSBh',
+ 'cm91bmQKICAgIGRheWxpZ2h0IHNhdmluZyBjaGFuZ2VzIHRoYXQgYXJlIG5vdCBwcmVjaXNlbHkg',
+ 'b25lIGhvdXIuCiAgICAoTm8gY2hhbmdlIG9uIHRoZSBXZWIgd2hpY2ggdXNlcyB0aGUgSmF2YVNj',
+ 'cmlwdCBgRGF0ZWAgb2JqZWN0LikKCiMjIyMgYGRhcnQ6aW9gCgoqICAgQlJFQUtJTkcgQ0hBTkdF',
+ 'IChmb3IgcHJlLW1pZ3JhdGVkIG51bGwgc2FmZSBjb2RlKToKICAgIGBIdHRwQ2xpZW50YCdzIGAu',
+ 'YXV0aGVudGljYXRlYCAgYW5kIGAuYXV0aGVudGljYXRlUHJveHlgIHNldHRlciBjYWxsYmFja3MK',
+ 'ICAgIG11c3Qgbm93IGFjY2VwdCBhIG51bGxhYmxlIGByZWFsbWAgYXJndW1lbnQuCgojIyMjIGBk',
+ 'YXJ0OnR5cGVkX2RhdGFgCgoqICAgKipCUkVBS0lORyBDSEFOR0UqKiAoaHR0cHM6Ly9naXRodWIu',
+ 'Y29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQ1MTE1KQogICAgTW9zdCB0eXBlcyBleHBvc2VkIGJ5',
+ 'IHRoaXMgbGlicmFyeSBjYW4gbm8gbG9uZ2VyIGJlIGV4dGVuZGVkLCBpbXBsZW1lbnRlZAogICAg',
+ 'b3IgbWl4ZWQtaW4uIFRoZSBhZmZlY3RlZCB0eXBlcyBhcmUgYEJ5dGVCdWZmZXJgLCBgVHlwZWRE',
+ 'YXRhYCBhbmQgKmFsbCoKICAgIGl0cyBzdWJjbGFzc2VzLCBgSW50MzJ4NGAsIGBGbG9hdDMyeDRg',
+ 'LCBgRmxvYXQ2NHgyYCBhbmQgYEVuZGlhbmAuCgojIyMjIGBkYXJ0OndlYl9zcWxgCgoqICAgYGRh',
+ 'cnQ6d2ViX3NxbGAgaXMgbWFya2VkIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBh',
+ 'biB1cGNvbWluZwogICAgcmVsZWFzZS4gQWxzbyB0aGUgQVBJIGB3aW5kb3cub3BlbkRhdGFiYXNl',
+ 'YCBpbiBgZGFydDpodG1sYCBpcyBkZXByZWNhdGVkIGFzCiAgICB3ZWxsLgoKICAgIFRoaXMgQVBJ',
+ 'IGFuZCBsaWJyYXJ5IHdhcyBleHBvc2luZyB0aGUgV2ViU1FMIHByb3Bvc2VkIHN0YW5kYXJkLiBU',
+ 'aGUgc3RhbmRhcmQKICAgIHdhcyBhYmFuZG9uZWQgbW9yZSB0aGFuIDUgeWVhcnMgYWdvIGFuZCBp',
+ 'cyBub3Qgc3VwcG9ydGVkIGJ5IG1vc3QgYnJvd3NlcnMuCiAgICBUaGUgYGRhcnQ6d2ViX3NxbGAg',
+ 'bGlicmFyeSBoYXMgYmVlbiBkb2N1bWVudGVkIGFzIHVuc3VwcG9ydGVkIGFuZCBkZXByZWNhdGVk',
+ 'CiAgICBmb3IgbWFueSB5ZWFycyBhcyB3ZWxsIGFuZCBidXQgd2Fzbid0IGFubm90YXRlZCBwcm9w',
+ 'ZXJseSB1bnRpbCBub3cuCiMjIyBEYXJ0IFZNCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQ1',
+ 'MDcxXVtdOiBgRGFydF9OZXdXZWFrUGVyc2lzdGVudEhhbmRsZWAncyBhbmQKICAgIGBEYXJ0X05l',
+ 'd0ZpbmFsaXphYmxlSGFuZGxlYCdzIGBvYmplY3RgIHBhcmFtZXRlciBubyBsb25nZXIgYWNjZXB0',
+ 'cwogICAgYFBvaW50ZXJgcyBhbmQgc3VidHlwZXMgb2YgYFN0cnVjdGAuIEV4cGFuZG9zIG5vIGxv',
+ 'bmdlciBhY2NlcHQKICAgIGBQb2ludGVyYHMgYW5kIHN1YnR5cGVzIG9mIGBTdHJ1Y3Rgcy4KClsj',
+ 'NDUwNzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDUwNzEKCiMj',
+ 'IyBUb29scwoKIyMjIyBEYXJ0IGNvbW1hbmQgbGluZQoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKiog',
+ 'WyM0NjEwMF1bXTogVGhlIHN0YW5kYWxvbmUgYGRhcnQybmF0aXZlYCBoYXMgYmVlbiBtYXJrZWQK',
+ 'ZGVwcmVjYXRlZCwgYW5kIG5vdyBwcmludHMgYSB3YXJuaW5nIG1lc3NhZ2UuIEl0J3MgcmVwbGFj',
+ 'ZW1lbnQgaXMgdGhlIGBkYXJ0CmNvbXBpbGUgZXhlYCBhbmQgYGRhcnQgY29tcGlsZSBhb3Qtc25h',
+ 'cHNob3RgIGNvbW1hbmRzLCB3aGljaCBvZmZlciB0aGUgc2FtZQpmdW5jdGlvbmFsaXR5LiBUaGUg',
+ 'YGRhcnQybmF0aXZlYCB0b29sIHdpbGwgYmUgZGlzY29udGludWVkIChyZW1vdmVkIGZyb20gdGhl',
+ 'CkRhcnQgU0RLKSBpbiBEYXJ0IDIuMTUuCgpodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nk',
+ 'ay9pc3N1ZXMvNDYxMDAKCiogVGhlIGBkYXJ0IGNyZWF0ZWAgY29tbWFuZCBoYXMgYmVlbiB1cGRh',
+ 'dGVkIHRvIGNyZWF0ZSBwcm9qZWN0cyB0aGF0IHVzZSB0aGUgbmV3CiAgJ2NvcmUnIHNldCBvZiBs',
+ 'aW50cyBmcm9tIGBwYWNrYWdlOmxpbnRzYC4gU2VlIGh0dHBzOi8vZGFydC5kZXYvZ28vY29yZS1s',
+ 'aW50cwogIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZXNlIGxpbnRzLgoKIyMjIyBMaW50',
+ 'ZXIKClVwZGF0ZWQgdGhlIExpbnRlciB0byBgMS40LjBgLCB3aGljaCBpbmNsdWRlczoKCi0gYGRp',
+ 'cmVjdGl2ZXNfb3JkZXJpbmdgIG5vdyBjaGVja3Mgb3JkZXJpbmcgb2YgYHBhY2thZ2U6YCBpbXBv',
+ 'cnRzIGluIGNvZGUKICBvdXRzaWRlIHB1YiBwYWNrYWdlcy4KLSBzaW1wbGUgcmVhY2hhYmlsaXR5',
+ 'IGFuYWx5c2lzIGFkZGVkIHRvIGB1c2VfYnVpbGRfY29udGV4dF9zeW5jaHJvbm91c2x5YCB0bwog',
+ 'IHNob3J0LWNpcmN1aXQgYXdhaXQtZGlzY292ZXJ5IGluIHRlcm1pbmF0aW5nIGJsb2Nrcy4KLSBg',
+ 'dXNlX2J1aWxkX2NvbnRleHRfc3luY2hyb25vdXNseWAgdXBkYXRlZCB0byByZWNvZ25pemUgbnVs',
+ 'bGFibGUgdHlwZXMgd2hlbgogIGFjY2Vzc2VkIGZyb20gbGVnYWN5IGxpYnJhcmllcy4KCiMjIyMg',
+ 'UHViCgoqIGBkYXJ0IHB1YiBwdWJsaXNoYCBub3cgcmVzcGVjdHMgYC5wdWJpZ25vcmVgIGZpbGVz',
+ 'IHdpdGggZ2l0aWdub3JlLXN0eWxlIHJ1bGVzLgogYC5naXRpZ25vcmVgIGZpbGVzIGluIHRoZSBy',
+ 'ZXBvIGFyZSBzdGlsbCByZXNwZWN0ZWQgaWYgdGhleSBhcmUgbm90CiAgb3ZlcnJpZGRlbiBieSBh',
+ 'IGAucHViaWdub3JlYCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuCgogIHB1YiBubyBsb25nZXIgcXVl',
+ 'cmllcyBnaXQgZm9yIGxpc3RpbmcgdGhlIGZpbGVzLiBUaGlzIGltcGxpZXM6CiAgKiBDaGVja2Vk',
+ 'IGluIGZpbGVzIHdpbGwgbm93IGJlIGlnbm9yZWQgaWYgdGhleSBhcmUgaW5jbHVkZWQgYnkgYSBg',
+ 'LmdpdGlnbm9yZWAKICAgIHJ1bGUuCiAgKiBHbG9iYWwgaWdub3JlcyBhcmUgbm8gbG9uZ2VyIHRh',
+ 'a2VuIGludG8gYWNjb3VudC4KICAqIEV2ZW4gcGFja2FnZXMgdGhhdCBhcmUgbm90IGluIGdpdCBz',
+ 'b3VyY2UgY29udHJvbCB3aWxsIGhhdmUgdGhlaXIKICAgIGAuZ2l0aWdub3JlYCBmaWxlcyByZXNw',
+ 'ZWN0ZWQuCiAgKiBgLmdpdGlnbm9yZWAgYW5kIGAucHViaWdub3JlYCBpcyBhbHdheXMgY2FzZS1p',
+ 'bnNlbnNpdGl2ZSBvbiBNYWNPcyBhbmQKICAgIFdpbmRvd3MgKGFzIGlzIGRlZmF1bHQgZm9yIGBn',
+ 'aXRgIHJlcG9zaXRvcmllcykuCgoqIE5ldyBmbGFnIGBkYXJ0IHB1YiBkZXBzIC0tanNvbmAgZ2l2',
+ 'ZXMgYSBtYWNoaW5lIHBhcnNhYmxlIG92ZXJ2aWV3IG9mIHRoZQogIGN1cnJlbnQgZGVwZW5kZW5j',
+ 'aWVzLgoqIE5ldyBjb21tYW5kOiBgZGFydCBwdWIgY2FjaGUgY2xlYW5gLiBXaWxsIGRlbGV0ZSBl',
+ 'dmVyeXRoaW5nIGluIHlvdXIgY3VycmVudAogIHB1YiBjYWNoZS4KKiBDb21tYW5kcyByZWxhdGVk',
+ 'IHRvIGEgc2luZ2xlIHBhY2thZ2Ugbm93IHRha2VzIGEgYC0tZGlyZWN0b3J5YCBvcHRpb24gdG8K',
+ 'ICBvcGVyYXRlIG9uIGEgcGFja2FnZSBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IGluc3RlYWQgb2Yg',
+ 'dGhlIHdvcmtpbmcgZGlyZWN0b3J5LgoqIGdpdCBkZXBlbmRlbmNpZXMgd2l0aCBhIHJlbGF0aXZl',
+ 'IHJlcG8gdXJsIHdvdWxkIHByZXZpb3VzbHkgYmUgaW50ZXJwcmV0ZWQKICByZWxhdGl2ZSB0byB0',
+ 'aGUgY3VycmVudCBwYWNrYWdlLCBldmVuIGZvciB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcy4gVGhp',
+ 'cyBub3cKICBmYWlscyBpbnN0ZWFkLgoKKiBQdWIgbm93IHVzZXMgYSBEYXJ0IGxpYnJhcnkgdG8g',
+ 'cmVhZCBhbmQgd3JpdGUgdGFyIGZpbGVzLgogIFRoaXMgc2hvdWxkIGZpeCBzZXZlcmFsIGlzc3Vl',
+ 'cyB3ZSBoYWQgd2l0aCBpbmNvbXBhdGliaWxpdGllcyBiZXR3ZWVuIGRpZmZlcmVudAogIHN5c3Rl',
+ 'bSBgdGFyYHMuCiogYFBVQl9IT1NURURfVVJMYCBjYW4gbm93IGluY2x1ZGUgYSB0cmFpbGluZyBz',
+ 'bGFzaC4KKiBJbmNyZW1lbnRhbCBjb21waWxhdGlvbiBpcyBub3cgdXNlZCBmb3IgY29tcGlsYXRp',
+ 'b24gb2YgZXhlY3V0YWJsZXMgZnJvbQogIGRlcGVuZGVuY2llcyB3aGVuIHVzaW5nIGBkYXJ0IHJ1',
+ 'biA8cGFja2FnZT46PGNvbW1hbmQ+YC4KCiMjIyBMYW5ndWFnZQoKKiAgIEFkZCBhbiB1bnNpZ25l',
+ 'ZCBzaGlmdCByaWdodCBvcGVyYXRvciBgPj4+YC4gUGFkIHdpdGggemVyb2VzLCBpZ25vcmluZyB0',
+ 'aGUKICAgIHNpZ24gYml0LiBPbiB0aGUgd2ViIHBsYXRmb3JtIGBpbnQuPj4+YCBzaGlmdHMgdGhl',
+ 'IGxvdyAzMiBiaXRzIGludGVycHJldGVkCiAgICBhcyBhbiB1bnNpZ25lZCBpbnRlZ2VyLCBzbyBg',
+ 'YSA+Pj4gYmAgZ2l2ZXMgdGhlIHNhbWUgcmVzdWx0IGFzCiAgICBgYS50b1Vuc2lnbmVkKDMyKSA+',
+ 'Pj4gYmAgb24gdGhlIFZNLgoKKiAgIFByaW9yIHRvIERhcnQgMi4xNCwgbWV0YWRhdGEgKGFubm90',
+ 'YXRpb25zKSB3ZXJlIG5vdCBwZXJtaXR0ZWQgdG8gYmUKICAgIHNwZWNpZmllZCB3aXRoIGdlbmVy',
+ 'aWMgdHlwZSBhcmd1bWVudHMuICBUaGlzIHJlc3RyaWN0aW9uIGlzIGxpZnRlZCBpbiBEYXJ0CiAg',
+ 'ICBEYXJ0IDIuMTQuCgogICAgYGBgZGFydAogICAgY2xhc3MgQzxUPiB7CiAgICAgIGNvbnN0IEMo',
+ 'KTsKICAgIH0KICAgIEBDKCk7ICAgICAgLy8gUHJldmlvdXNseSBwZXJtaXR0ZWQuCiAgICBAQzxp',
+ 'bnQ+KCk7IC8vIFByZXZpb3VzbHkgYW4gZXJyb3IsIG5vdyBwZXJtaXR0ZWQuCiAgICBgYGAKCiog',
+ 'ICBQcmlvciB0byBEYXJ0IDIuMTQsIGdlbmVyaWMgZnVuY3Rpb24gdHlwZXMgd2VyZSBub3QgcGVy',
+ 'bWl0dGVkIGFzIGFyZ3VtZW50cwogICAgdG8gZ2VuZXJpYyBjbGFzc2VzIG9yIGZ1bmN0aW9ucywg',
+ 'bm9yIHRvIGJlIHVzZWQgYXMgZ2VuZXJpYyBib3VuZHMuICBUaGlzCiAgICByZXN0cmljdGlvbiBp',
+ 'cyBsaWZ0ZWQgaW4gRGFydCAyLjE0LgoKICAgIGBgYGRhcnQKICAgIFQgd3JhcFdpdGhMb2dnaW5n',
+ 'PFQ+KFQgZikgewogICAgICBpZiAoZiBpcyB2b2lkIEZ1bmN0aW9uPFQ+KFQgeCkpIHsKICAgICAg',
+ 'ICByZXR1cm4gPFM+KFMgeCkgewogICAgICAgICAgcHJpbnQoIkNhbGw6IGY8JFM+KCR4KSIpOwog',
+ 'ICAgICAgICAgdmFyIHIgPSBmPFM+KHgpOwogICAgICAgICAgcHJpbnQoIlJldHVybjogJHgiKTsK',
+ 'ICAgICAgICAgIHJldHVybiByOwogICAgICAgIH0gYXMgVDsKICAgICAgfSAvLyBNb3JlIGNhc2Vz',
+ 'IGhlcmUKICAgICAgcmV0dXJuIGY7CiAgICB9CiAgICB2b2lkIGZvbzxUPihUIHgpIHsKICAgICAg',
+ 'cHJpbnQoIkZvbyEiKTsKICAgIH0KICAgIHZvaWQgbWFpbigpIHsKICAgICAgLy8gUHJldmlvdXNs',
+ 'eSBhbiBlcnJvciwgbm93IHBlcm1pdHRlZC4KICAgICAgdmFyIGYgPSB3cmFwV2l0aExvZ2dpbmc8',
+ 'dm9pZCBGdW5jdGlvbjxUPihUKT4oZm9vKTsKICAgICAgZjxpbnQ+KDMpOwogICAgfQogICAgYGBg',
+ 'CgojIyAyLjEzLjEgLSAyMDIxLTA1LTI1CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0aGF0IGZp',
+ ];
+}
+
+List<String> _g2(String s) {
+ return [
+ s,
+ 'eGVzOgoKKiBpbmNvcnJlY3QgYmVoYXZpb3IgaW4gQ2FzdE1hcCAoaXNzdWUgWyM0NTQ3M11bXSku',
+ 'CiogbWlzc2luZyBudWxsYWJpbGl0eSBmcm9tIHJlY3Vyc2l2ZSB0eXBlIGhpZXJhcmNoaWVzIGlu',
+ 'IEREQyAoaXNzdWUgWyM0NTc2N11bXSkuCgpbIzQ1NDczXTogaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzQ1NDczClsjNDU3NjddOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay9pc3N1ZXMvNDU3NjcKCiMjIDIuMTMuMCAtIDIwMjEtMDUtMTgKCiMjIyBMYW5n',
+ 'dWFnZQoKKiAgICoqVHlwZSBhbGlhc2VzKiogW05vbi1mdW5jdGlvbiB0eXBlIGFsaWFzZXNdW106',
+ 'IFR5cGUgYWxpYXNlcyAobmFtZXMgZm9yCiAgICB0eXBlcyBpbnRyb2R1Y2VkIHZpYSB0aGUgYHR5',
+ 'cGVkZWZgIGtleXdvcmQpIHdlcmUgcHJldmlvdXNseSByZXN0cmljdGVkCiAgICB0byBvbmx5IGlu',
+ 'dHJvZHVjZSBuYW1lcyBmb3IgZnVuY3Rpb24gdHlwZXMuICBJbiB0aGlzIHJlbGVhc2UsIHdlCiAg',
+ 'ICByZW1vdmUgdGhpcyByZXN0cmljdGlvbiBhbmQgYWxsb3cgdHlwZSBhbGlhc2VzIHRvIG5hbWUg',
+ 'YW55IGtpbmQgb2YgdHlwZS4KCiAgICBgYGBkYXJ0CiAgICBpbXBvcnQgJ2RhcnQ6Y29udmVydCc7',
+ 'CgogICAgdHlwZWRlZiBKc29uTWFwID0gTWFwPFN0cmluZywgZHluYW1pYz47CgogICAgSnNvbk1h',
+ 'cCBwYXJzZUpzb25NYXAoU3RyaW5nIGlucHV0KSA9PiBqc29uLmRlY29kZShpbnB1dCkgYXMgSnNv',
+ 'bk1hcDsKICAgIGBgYAoKICAgIEluIGFkZGl0aW9uIHRvIGJlaW5nIHVzYWJsZSBhcyB0eXBlIGFu',
+ 'bm90YXRpb25zLCB0eXBlIGFsaWFzZXMgdGhhdCBuYW1lCiAgICBjbGFzcyB0eXBlcyBjYW4gbm93',
+ 'IGFsc28gYmUgdXNlZCBhbnl3aGVyZSB0aGF0IHRoZSB1bmRlcmx5aW5nIGNsYXNzIGNvdWxkIGJl',
+ 'CiAgICB1c2VkLCBhbGxvd2luZyB0eXBlIGFsaWFzZXMgdG8gYmUgdXNlZCB0byBzYWZlbHkgcmVu',
+ 'YW1lIGV4aXN0aW5nIGNsYXNzZXMuCgogICAgYGBgZGFydAogICAgY2xhc3MgTmV3Q2xhc3NOYW1l',
+ 'PFQ+IHsKICAgICAgIE5ld0NsYXNzTmFtZS5jcmVhdGUoVCB4KTsKICAgICAgIHN0YXRpYyBOZXdD',
+ 'bGFzc05hbWU8VD4gbWtPbmU8VD4oVCB4KSA9PiBOZXdDbGFzc05hbWU8VD4uY3JlYXRlKHgpOwog',
+ 'ICAgIH0KICAgIEBEZXByZWNhdGVkKCJVc2UgTmV3Q2xhc3NOYW1lIGluc3RlYWQiKQogICAgdHlw',
+ 'ZWRlZiBPbGRDbGFzc05hbWU8VD4gPSBOZXdDbGFzc05hbWU8VD47CgogICAgY2xhc3MgTGVnYWN5',
+ 'Q2xhc3MgZXh0ZW5kcyBPbGRDbGFzc05hbWU8aW50PiB7CiAgICAgIExlZ2FjeUNsYXNzKCkgOiBz',
+ 'dXBlci5jcmVhdGUoMyk7CiAgICB9CiAgICBPbGRDbGFzc05hbWU8aW50PiBsZWdhY3lDb2RlKCkg',
+ 'ewogICAgICB2YXIgb25lID0gT2xkQ2xhc3NOYW1lLmNyZWF0ZSgxKTsKICAgICAgdmFyIHR3byA9',
+ 'IE9sZENsYXNzTmFtZS5ta09uZSgyKTsKICAgICAgcmV0dXJuIExlZ2FjeUNsYXNzKCk7CiAgICB9',
+ 'CiAgICBgYGAKCiAgICBUaGUgbmV3IHR5cGUgYWxpYXMgZmVhdHVyZSBpcyBvbmx5IGF2YWlsYWJs',
+ 'ZSBhcyBwYXJ0IG9mIHRoZSAyLjEzIFtsYW5ndWFnZQogICAgdmVyc2lvbl0oaHR0cHM6Ly9kYXJ0',
+ 'LmRldi9ndWlkZXMvbGFuZ3VhZ2UvZXZvbHV0aW9uKS4gIFRvIHVzZSB0aGlzIGZlYXR1cmUsCiAg',
+ 'ICB5b3UgbXVzdCBzZXQgdGhlIGxvd2VyIGJvdW5kIG9uIHRoZSBzZGsgY29uc3RyYWludCBmb3Ig',
+ 'eW91ciBwYWNrYWdlIHRvIDIuMTMKICAgIG9yIGdyZWF0ZXIuCgogICAgW05vbi1mdW5jdGlvbiB0',
+ 'eXBlIGFsaWFzZXNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2xhbmd1YWdlL2Jsb2Iv',
+ 'bWFzdGVyL2FjY2VwdGVkLzIuMTMvbm9uZnVuY3Rpb24tdHlwZS1hbGlhc2VzL2ZlYXR1cmUtc3Bl',
+ 'Y2lmaWNhdGlvbi5tZAoKIyMjIENvcmUgbGlicmFyaWVzCgojIyMjIGBkYXJ0OmNvbGxlY3Rpb25g',
+ 'CgoqICAgVGhlIGBTcGxheVRyZWVNYXBgIHdhcyBjaGFuZ2VkIHRvIGFsbG93IGBudWxsYCBhcyBr',
+ 'ZXkgaWYgdGhlIGBjb21wYXJlYAogICAgZnVuY3Rpb24gYWxsb3dzIGl0LiBJdCBub3cgY2hlY2tz',
+ 'IHRoYXQgYSBuZXcga2V5IGNhbiBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CiAgICB0byB0aGUgYGNv',
+ 'bXBhcmVgIGZ1bmN0aW9uIHdoZW4gdGhlIG1lbWJlciBpcyBhZGRlZCwgKmV2ZW4gaWYgdGhlIG1h',
+ 'cCBpcwogICAgZW1wdHkqIChpbiB3aGljaCBjYXNlIGl0IGp1c3QgY29tcGFyZXMgdGhlIGtleSB0',
+ 'byBpdHNlbGYpLgoKKiAgIFRoZSBgU3BsYXlUcmVlU2V0YCB3YXMgY2hhbmdlZCB0byBjaGVja3Mg',
+ 'dGhhdCBhIG5ldyBlbGVtZW50IGNhbiBiZSB1c2VkIGFzCiAgICBhbiBhcmd1bWVudCB0byB0aGUg',
+ 'YGNvbXBhcmVgIGZ1bmN0aW9uIHdoZW4gdGhlIG1lbWJlciBpcyBhZGRlZCwgKmV2ZW4gaWYgdGhl',
+ 'CiAgICBzZXQgaXMgZW1wdHkqIChpbiB3aGljaCBjYXNlIGl0IGp1c3QgY29tcGFyZXMgdGhlIGVs',
+ 'ZW1lbnQgdG8gaXRzZWxmKS4KCiMjIyMgYGRhcnQ6ZGV2ZWxvcGVyYAoKKiAgIEFkZGVkIGBzZXJ2',
+ 'ZXJXZWJTb2NrZXRVcmlgIHByb3BlcnR5IHRvIGBTZXJ2aWNlUHJvdG9jb2xJbmZvYC4KCiMjIyBE',
+ 'YXJ0IFZNCgojIyMgVG9vbHMKCiMjIyMgQW5hbHl6ZXIKCiogICBTdGF0aWMgYW5hbHlzZXMgd2l0',
+ 'aCAiZXJyb3IiIHNldmVyaXR5IGNhbiBvbmNlIGFnYWluIGJlIGlnbm9yZWQgd2l0aAogICAgY29t',
+ 'bWVudHMgbGlrZSBgLy8gaWdub3JlOiBjb2RlYCBhbmQgYC8vIGlnbm9yZV9mb3JfZmlsZTogY29k',
+ 'ZWAuIFRvIGRlY2xhcmUKICAgIHRoYXQgY2VydGFpbiBhbmFseXNpcyBjb2Rlcywgb3IgY29kZXMg',
+ 'd2l0aCBjZXJ0YWluIHNldmVyaXRpZXMgKCJlcnJvciIsCiAgICAid2FybmluZyIsIGFuZCAiaW5m',
+ 'byIpIGNhbm5vdCBiZSBpZ25vcmVkIHdpdGggc3VjaCBjb21tZW50cywgbGlzdCB0aGVtIGluCiAg',
+ 'ICBgYW5hbHlzaXNfb3B0aW9ucy55YW1sYCwgdW5kZXIgdGhlIGBhbmFseXplcmAgaGVhZGluZywg',
+ 'd2l0aCBhIG5ldyBZQU1MIGtleSwKICAgIGBjYW5ub3QtaWdub3JlYC4gRm9yIGV4YW1wbGUsIHRv',
+ 'IGRlY2xhcmUgdGhhdCAiZXJyb3IiIGNvZGVzIGFuZAogICAgYHVudXNlZF9pbXBvcnRgIGNhbm5v',
+ 'dCBiZSBpZ25vcmVkLCB3cml0ZSB0aGUgZm9sbG93aW5nIGludG8KICAgIGBhbmFseXNpc19vcHRp',
+ 'b25zLnlhbWxgOgoKICAgIGBgYHlhbWwKICAgIGFuYWx5emVyOgogICAgICBjYW5ub3QtaWdub3Jl',
+ 'OgogICAgICAgIC0gZXJyb3IKICAgICAgICAtIHVudXNlZF9pbXBvcnQKICAgIGBgYAoKIyMjIyBk',
+ 'YXJ0IGZvcm1hdAoKKiAgIENvcnJlY3QgY29uc3RydWN0b3IgaW5pdGlhbGl6ZXIgaW5kZW50YXRp',
+ 'b24gYWZ0ZXIgYHJlcXVpcmVkYCBuYW1lZAogICAgcGFyYW1ldGVycy4KCiMjIyMgTGludGVyCgpV',
+ 'cGRhdGVkIHRoZSBMaW50ZXIgdG8gYDEuMi4xYCwgd2hpY2ggaW5jbHVkZXM6CgoqICAgSW1wcm92',
+ 'ZWQgYGl0ZXJhYmxlX2NvbnRhaW5zX3VucmVsYXRlZF90eXBlYCB0byBiZXR0ZXIgc3VwcG9ydCBg',
+ 'TGlzdGAgY29udGVudAogICAgY2hlY2tzLgoqICAgRml4ZWQgYGNhbWVsX2Nhc2VfdHlwZXNgIGFu',
+ 'ZCBgcHJlZmVyX21peGluYCB0byBzdXBwb3J0IG5vbi1mdW5jdGlvbiB0eXBlCiAgICBhbGlhc2Vz',
+ 'LgoqICAgRml4ZWQgYHByZWZlcl9taXhpbmAgdG8gcHJvcGVybHkgbWFrZSBleGNlcHRpb25zIGZv',
+ 'ciBgZGFydC5jb2xsZWN0aW9uYAogICAgbGVnYWN5IG1peGlucy4KKiAgIEFkZGVkIG5ldyBsaW50',
+ 'cyBgYXZvaWRfbXVsdGlwbGVfZGVjbGFyYXRpb25zX3Blcl9saW5lYCwKICAgIGB1c2VfaWZfbnVs',
+ 'bF90b19jb252ZXJ0X251bGxzX3RvX2Jvb2xzYCwgYGRlcHJlY2F0ZWRfY29uc2lzdGVuY3lgLAog',
+ 'ICAgYHVzZV9uYW1lZF9jb25zdGFudHNgLCBgdXNlX2J1aWxkX2NvbnRleHRfc3luY2hyb25vdXNs',
+ 'eWAgKGV4cGVyaW1lbnRhbCkuCiogICBEZXByZWNhdGVkIGBhdm9pZF9hc2AuCiogICBNaWdyYXRl',
+ 'ZCBsaWJyYXJ5IHRvIG51bGwtc2FmZXR5LgoKIyMjIE90aGVyIGxpYnJhcmllcwoKIyMjIyBgcGFj',
+ 'a2FnZTpqc2AKCiogICAqKkJyZWFraW5nIGNoYW5nZToqKiBJdCBpcyBubyBsb25nZXIgdmFsaWQg',
+ 'dG8gdXNlIGBTdHJpbmdgcyB0aGF0IG1hdGNoCiAgICBhbiBgQE5hdGl2ZWAgYW5ub3RhdGlvbiBp',
+ 'biBhbiBgQEpTKClgIGFubm90YXRpb24gZm9yIGEgbm9uLWFub255bW91cyBKUwogICAgaW50ZXJv',
+ 'cCBjbGFzcy4gVGhpcyBsZWQgdG8gZXJyb25lb3VzIGJlaGF2aW9yIGR1ZSB0byB0aGUgd2F5IGlu',
+ 'dGVyY2VwdG9ycwogICAgd29yay4gSWYgeW91IG5lZWQgdG8gd29yayB3aXRoIGEgbmF0aXZlIGNs',
+ 'YXNzLCBwcmVmZXIgYGRhcnQ6aHRtbGAsIGFuCiAgICBgQGFub255bW91c2AgY2xhc3MsIG9yIGBq',
+ 'c191dGlsYC4gU2VlIGlzc3VlIFsjNDQyMTFdW10gZm9yIG1vcmUgZGV0YWlscy4KClsjNDQyMTFd',
+ 'OiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDQyMTEKCiMjIDIuMTIu',
+ 'NCAtIDIwMjEtMDQtMTUKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRoYXQgZml4ZXMgYSBEYXJ0',
+ 'IFZNIGNvbXBpbGVyIGNyYXNoZXMgd2hlbiBjb21waWxpbmcKaW5pdGlhbGl6ZXJzIGNvbnRhaW5p',
+ 'bmcgYXN5bmMgY2xvc3VyZXMgKGlzc3VlIFsjNDUzMDZdW10pLgoKWyM0NTMwNl06IGh0dHBzOi8v',
+ 'Z2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80NTMwNgoKIyMgMi4xMi4zIC0gMjAyMS0w',
+ 'NC0xNAoKVGhpcyBpcyBhIHBhdGNoIHJlbGVhc2UgdGhhdCBmaXhlcyBhIHZ1bG5lcmFiaWxpdHkg',
+ 'aW4gYGRhcnQ6aHRtbGAgcmVsYXRlZCB0bwpET00gY2xvYmJlcmluZy4gU2VlIHRoZSBbdnVsbmVy',
+ 'YWJpbGl0eSBhZHZpc29yeV1bQ1ZFLTIwMjEtMjI1NDBdIGZvciBtb3JlCmRldGFpbHMuIFRoYW5r',
+ 'cyBhZ2FpbiB0byAqKlZpbmNlbnpvIGRpIENpY2NvKiogZm9yIGZpbmRpbmcgYW5kIHJlcG9ydGlu',
+ 'ZyB0aGlzCnZ1bG5lcmFiaWxpdHkuCgpbQ1ZFLTIwMjEtMjI1NDBdOiBodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9zZWN1cml0eS9hZHZpc29yaWVzL0dIU0EtM3Jmdi00anZnLTk1MjIK',
+ 'CiMjIDIuMTIuMiAtIDIwMjEtMDMtMTcKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRoYXQgZml4',
+ 'ZXMgY3Jhc2hlcyByZXBvcnRlZCBieSBGbHV0dGVyIDIgdXNlcnMgKGlzc3VlCltmbHV0dGVyL2Zs',
+ 'dXR0ZXIjNzgxNjddW10pLgoKW2ZsdXR0ZXIvZmx1dHRlciM3ODE2N106IGh0dHBzOi8vZ2l0aHVi',
+ 'LmNvbS9mbHV0dGVyL2ZsdXR0ZXIvaXNzdWVzLzc4MTY3CgojIyAyLjEyLjEgLSAyMDIxLTAzLTEw',
+ 'CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0aGF0IGZpeGVzOgoKKiBhbiB1bmhhbmRsZWQgZXhj',
+ 'ZXB0aW9uIGluIEhUVFBTIGNvbm5lY3Rpb25zIChpc3N1ZSBbIzQ1MDQ3XVtdKS4KKiBhIHR5cGlu',
+ 'ZyBpc3N1ZSBpbiB0aGUgdHlwZWRfZGF0YSBgK2Agb3BlcmF0b3IgKGlzc3VlIFsjNDUxNDBdW10p',
+ 'LgoKWyM0NTA0N106IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80NTA0',
+ 'NwpbIzQ1MTQwXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQ1MTQw',
+ 'CgojIyAyLjEyLjAgLSAyMDIxLTAzLTAzCgojIyMgTGFuZ3VhZ2UKCiogICAqKkJyZWFraW5nIENo',
+ 'YW5nZSoqIFtOdWxsIHNhZmV0eV1bXSBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0IGluIGFsbCBj',
+ 'b2RlCiAgICB0aGF0IGhhcyBub3Qgb3B0ZWQgb3V0LiBXaXRoIG51bGwgc2FmZXR5LCB0eXBlcyBp',
+ ];
+}
+
+List<String> _g3(String s) {
+ return [
+ s,
+ 'biB5b3VyIGNvZGUgYXJlCiAgICBub24tbnVsbGFibGUgYnkgZGVmYXVsdC4gTnVsbCBjYW4gb25s',
+ 'eSBmbG93IGludG8gcGFydHMgb2YgeW91ciBwcm9ncmFtIHdoZXJlCiAgICB5b3Ugd2FudCBpdC4g',
+ 'V2l0aCBudWxsIHNhZmV0eSwgeW91ciBydW50aW1lIG51bGwtZGVyZWZlcmVuY2UgYnVncyB0dXJu',
+ 'IGludG8KICAgIGVkaXQtdGltZSBhbmFseXNpcyBlcnJvcnMuCgogICAgWW91IGNhbiBvcHQgb3V0',
+ 'IG9mIG51bGwgc2FmZXR5IGFuZCBwcmVzZXJ2ZSB5b3VyIGNvZGUncyBwcmV2aW91cyBiZWhhdmlv',
+ 'ciBieQogICAgc2V0dGluZyB0aGUgbG93ZXIgYm91bmQgb2YgdGhlIFNESyBjb25zdHJhaW50IGlu',
+ 'IHlvdXIgcHVic3BlYyB0byAyLjExLjAgb3IKICAgIGVhcmxpZXIgdG8gcmVxdWVzdCBhbiBlYXJs',
+ 'aWVyIFtsYW5ndWFnZSB2ZXJzaW9uXVtdLiBZb3UgY2FuIG9wdCBvdXQKICAgIGluZGl2aWR1YWwg',
+ 'RGFydCBmaWxlcyBieSBhZGRpbmcgYC8vIEBkYXJ0PTIuMTFgIHRvIHRoZSBiZWdpbm5pbmcgb2Yg',
+ 'dGhlCiAgICBmaWxlLgoKICAgIEZpbGVzIHRoYXQgYXJlIG9wdGVkIGluIHRvIG51bGwgc2FmZXR5',
+ 'IG1heSByZXBvcnQgbmV3IGNvbXBpbGUtdGltZSBlcnJvcnMuCiAgICBPcHRpbmcgaW4gdG8gbnVs',
+ 'bCBzYWZldHkgYWxzbyBnaXZlcyB5b3UgYWNjZXNzIHRvIG90aGVyIG5ldyBsYW5ndWFnZQogICAg',
+ 'ZmVhdHVyZXM6CgogICAgKiAgIFNtYXJ0ZXIgZmxvdyBhbmFseXNpcyBhbmQgdHlwZSBwcm9tb3Rp',
+ 'b24KICAgICogICBgcmVxdWlyZWRgIG5hbWVkIHBhcmFtZXRlcnMKICAgICogICBgbGF0ZWAgdmFy',
+ 'aWFibGVzCiAgICAqICAgVGhlIHBvc3RmaXggYCFgIG51bGwgYXNzZXJ0aW9uIG9wZXJhdG9yCiAg',
+ 'ICAqICAgVGhlIGA/Li5gIGFuZCBgP1tdYCBudWxsLWF3YXJlIG9wZXJhdG9ycwoKKiAgICoqQnJl',
+ 'YWtpbmcgQ2hhbmdlKiogWyM0NDY2MF1bXTogRml4ZWQgYW4gaW1wbGVtZW50YXRpb24gYnVnIHdo',
+ 'ZXJlIGB0aGlzYAogICAgd291bGQgc29tZXRpbWVzIHVuZGVyZ28gdHlwZSBwcm9tb3Rpb24gaW4g',
+ 'ZXh0ZW5zaW9ucy4KCltudWxsIHNhZmV0eV06IGh0dHBzOi8vZGFydC5kZXYvbnVsbC1zYWZldHkv',
+ 'dW5kZXJzdGFuZGluZy1udWxsLXNhZmV0eQpbbGFuZ3VhZ2UgdmVyc2lvbl06IGh0dHBzOi8vZGFy',
+ 'dC5kZXYvZ3VpZGVzL2xhbmd1YWdlL2V2b2x1dGlvbiNsYW5ndWFnZS12ZXJzaW9uaW5nClsjNDQ2',
+ 'NjBdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDQ2NjAKCiMjIyBD',
+ 'b3JlIGxpYnJhcmllcwoKIyMjIyBgZGFydDphc3luY2AKCiogICBBZGQgZXh0ZW5zaW9uIG1ldGhv',
+ 'ZCBgb25FcnJvcigpYCBvbiBgRnV0dXJlYCB0byBhbGxvdyBiZXR0ZXIgdHlwaW5nIG9mIGVycm9y',
+ 'CiAgICBjYWxsYmFja3MuCgojIyMjIGBkYXJ0OmNvbGxlY3Rpb25gCgoqICAgQWRkIGBVbm1vZGlm',
+ 'aWFibGVTZXRWaWV3YCBjbGFzcywgd2hpY2ggYWxsb3dzIHVzZXJzIHRvIGd1YXJhbnRlZSB0aGF0',
+ 'CiAgICBtZXRob2RzIHRoYXQgY291bGQgY2hhbmdlIHVuZGVybHlpbmcgYFNldGAgaW5zdGFuY2Ug',
+ 'Y2FuIG5vdCBiZSBpbnZva2VkLgoKKiAgIE1ha2UgaXQgZXhwbGljaXQgdGhhdCBgTGlua2VkTGlz',
+ 'dGAgY29tcGFyZXMgZWxlbWVudHMgYnkgaWRlbnRpdHksIGFuZCB1cGRhdGUKICAgIGBjb250YWlu',
+ 'cygpYCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzLgoKIyMjIyBgZGFydDpjb3JlYAoKKiAgIEFk',
+ 'ZCBgU2V0LnVubW9kaWZpYWJsZSgpYCBjb25zdHJ1Y3Rvciwgd2hpY2ggYWxsb3dzIHVzZXJzIHRv',
+ 'IGNyZWF0ZQogICAgdW5tb2RpZmlhYmxlIGBTZXRgIGluc3RhbmNlcy4KCiMjIyMgYGRhcnQ6aW9g',
+ 'CgoqICAgYEh0dHBSZXF1ZXN0YCBub3cgY29ycmVjdGx5IGZvbGxvd3MgSFRUUCAzMDggcmVkaXJl',
+ 'Y3RzCiAgICAoYEh0dHBTdGF0dXMucGVybWFuZW50UmVkaXJlY3RgKS4KCiMjIyMgYGRhcnQ6aXNv',
+ 'bGF0ZWAKCiogICBBZGQgYGRlYnVnTmFtZWAgcG9zaXRpb25hbCBwYXJhbWV0ZXIgdG8gYFJlY2Vp',
+ 'dmVQb3J0YCBhbmQgYFJhd1JlY2VpdmVQb3J0YAogICAgY29uc3RydWN0b3JzLCBhIG5hbWUgd2hp',
+ 'Y2ggY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9ydCBhbmQgZGlzcGxheWVkIGluCiAgICB0',
+ 'b29saW5nLgoKIyMjIyBgZGFydDpodG1sYAoKKiAgIGBFdmVudFN0cmVhbVN1YnNjcmlwdGlvbi5j',
+ 'YW5jZWxgIGhhcyBiZWVuIHVwZGF0ZWQgdG8gcmV0YWluIGl0cyBzeW5jaHJvbm91cwogICAgdGlt',
+ 'aW5nIHdoZW4gcnVubmluZyBpbiBib3RoIHNvdW5kIGFuZCB1bnNvdW5kIG51bGwgc2FmZXR5IG1v',
+ 'ZGVzLiBTZWUgaXNzdWUKICAgIFsjNDQxNTddW10gZm9yIG1vcmUgZGV0YWlscy4KClsjNDQxNTdd',
+ 'OiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDQxNTcKCiMjIyBEYXJ0',
+ 'IFZNCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQyMzEyXVtdOiBgRGFydF9XZWFrUGVyc2lz',
+ 'dGVudEhhbmRsZWBzIG5vIGxvbmdlcgogICAgYXV0by1kZWxldGUgdGhlbXNlbHZlcyB3aGVuIHRo',
+ 'ZSByZWZlcmVuY2VkIG9iamVjdCBpcyBnYXJiYWdlIGNvbGxlY3RlZCB0bwogICAgYXZvaWQgcmFj',
+ 'ZSBjb25kaXRpb25zLCBidXQgdGhleSBhcmUgc3RpbGwgYXV0b21hdGljYWxseSBkZWxldGVkIHdo',
+ 'ZW4gdGhlCiAgICBpc29sYXRlIGdyb3VwIHNodXRzIGRvd24uCgoqICAgKipCcmVha2luZyBDaGFu',
+ 'Z2UqKiBbIzQyMzEyXVtdOiBgRGFydF9XZWFrUGVyc2lzdGVudEhhbmRsZUZpbmFsaXplcmAKICAg',
+ 'IGlzIHJlbmFtZWQgdG8gYERhcnRfSGFuZGxlRmluYWxpemVyYCBhbmQgaGFkIGl0cyBgaGFuZGxl',
+ 'YCBhcmd1bWVudCByZW1vdmVkLgogICAgQWxsIEFQSSBmdW5jdGlvbnMgdXNpbmcgdGhhdCB0eXBl',
+ 'IGhhdmUgYmVlbiB1cGRhdGVkLgoKWyM0MjMxMl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxh',
+ 'bmcvc2RrL2lzc3Vlcy80MjMxMgoKIyMjIEZvcmVpZ24gRnVuY3Rpb24gSW50ZXJmYWNlIChgZGFy',
+ 'dDpmZmlgKQoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKiogWyM0NDYyMV1bXTogSW52b2NhdGlvbnMg',
+ 'd2l0aCBhIGdlbmVyaWMgYFRgIG9mCiAgICBgc2l6ZU9mPFQ+YCwgYFBvaW50ZXI8VD4uZWxlbWVu',
+ 'dEF0KClgLCBgUG9pbnRlcjxUIGV4dGVuZHMgU3RydWN0Pi5yZWZgLCBhbmQKICAgIGBQb2ludGVy',
+ 'PFQgZXh0ZW5kcyBTdHJ1Y3Q+W11gIGFyZSBiZWluZyBkZXByZWNhdGVkIGluIHRoZSBjdXJyZW50',
+ 'IHN0YWJsZQogICAgcmVsZWFzZSAoMi4xMiksIGFuZCBhcmUgcGxhbm5lZCB0byBiZSBmdWxseSBy',
+ 'ZW1vdmVkIGluIHRoZSBmb2xsb3dpbmcgc3RhYmxlCiAgICByZWxlYXNlICgyLjEzKS4gQ29uc2Vx',
+ 'dWVudGx5LCBgYWxsb2NhdGVgIGluIGBwYWNrYWdlOmZmaWAgd2lsbCBubyBsb25nZXIgYmUKICAg',
+ 'IGFibGUgdG8gaW52b2tlIGBzaXplT2Y8VD5gIGdlbmVyaWNhbGx5LCBhbmQgd2lsbCBiZSBkZXBy',
+ 'ZWNhdGVkIGFzIHdlbGwuCiAgICBJbnN0ZWFkLCB0aGUgYEFsbG9jYXRvcmAgaXQgaXMgaW50cm9k',
+ 'dWNlZCB0byBgZGFydDpmZmlgLCBhbmQgYWxzbyByZXF1aXJlcwogICAgYSBjb25zdGFudCBgVGAg',
+ 'b24gaW52b2NhdGlvbnMuIEZvciBtaWdyYXRpb24gbm90ZXMgc2VlIHRoZSBicmVha2luZyBjaGFu',
+ 'Z2UKICAgIHJlcXVlc3QuCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQ0NjIyXVtdOiBTdWJ0',
+ 'eXBlcyBvZiBgU3RydWN0YCB3aXRob3V0IGFueSBuYXRpdmUKICAgIG1lbWJlciBhcmUgYmVpbmcg',
+ 'ZGVwcmVjYXRlZCBpbiB0aGUgY3VycmVudCBzdGFibGUgcmVsZWFzZSAoMi4xMiksIGFuZCBhcmUK',
+ 'ICAgIHBsYW5uZWQgdG8gYmUgZnVsbHkgcmVtb3ZlZCBpbiB0aGUgZm9sbG93aW5nIHN0YWJsZSBy',
+ 'ZWxlYXNlICgyLjEzKS4KICAgIE1pZ3JhdGUgb3BhcXVlIHR5cGVzIHRvIGV4dGVuZCBgT3BhcXVl',
+ 'YCByYXRoZXIgdGhhbiBgU3RydWN0YC4KClsjNDQ2MjFdOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay9pc3N1ZXMvNDQ2MjEKWyM0NDYyMl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy80NDYyMgoKIyMjIERhcnQySlMKCiogICBSZW1vdmUgYC0tbm8tZGVm',
+ 'ZXItY2xhc3MtdHlwZXNgIGFuZCBgLS1uby1uZXctZGVmZXJyZWQtc3BsaXRgLgoKIyMjIFRvb2xz',
+ 'CgojIyMjIEFuYWx5emVyCgoqICAgUmVtb3ZlIHRoZSBgLS11c2UtZmFzdGEtcGFyc2VyYCwgYC0t',
+ 'cHJldmlldy1kYXJ0LTJgLCBhbmQKICAgIGAtLWVuYWJsZS1hc3NlcnQtaW5pdGlhbGl6ZXJzYCBj',
+ 'b21tYW5kIGxpbmUgb3B0aW9ucy4gVGhlc2Ugb3B0aW9ucyBoYXZlbid0CiAgICBiZWVuIHN1cHBv',
+ 'cnRlZCBpbiBhIHdoaWxlIGFuZCB3ZXJlIG5vLW9wcy4KCiogICBSZXBvcnQgZGlhZ25vc3RpY3Mg',
+ 'cmVnYXJkaW5nIHRoZQogICAgW2BAaW50ZXJuYWxgXShodHRwczovL3B1Yi5kZXYvZG9jdW1lbnRh',
+ 'dGlvbi9tZXRhL2xhdGVzdC9tZXRhL2ludGVybmFsLWNvbnN0YW50Lmh0bWwpCiAgICBhbm5vdGF0',
+ 'aW9uLgoKKiAgIEltcHJvdmUgZGlhZ25vc3RpYy1yZXBvcnRpbmcgcmVnYXJkaW5nIHRoZQogICAg',
+ 'W2BAZG9Ob3RTdG9yZWBdKGh0dHBzOi8vcHViLmRldi9kb2N1bWVudGF0aW9uL21ldGEvbGF0ZXN0',
+ 'L21ldGEvZG9Ob3RTdG9yZS1jb25zdGFudC5odG1sKQogICAgYW5ub3RhdGlvbi4KCiogICBJbnRy',
+ 'b2R1Y2UgYSBkaWFnbm9zdGljIHdoaWNoIGlzIHJlcG9ydGVkIHdoZW4gYSBsaWJyYXJ5IG1lbWJl',
+ 'ciBuYW1lZCBgbWFpbmAKICAgIGlzIG5vdCBhIGZ1bmN0aW9uLgoKKiAgIEludHJvZHVjZSBhIGRp',
+ 'YWdub3N0aWMgd2hpY2ggaXMgcmVwb3J0ZWQgd2hlbiBhIGBtYWluYCBmdW5jdGlvbidzIGZpcnN0',
+ 'CiAgICBwYXJhbWV0ZXIgaXMgbm90IGEgc3VwZXJ0eXBlIG9mIGBMaXN0PFN0cmluZz5gLgoKKiAg',
+ 'IEludHJvZHVjZSBkaWFnbm9zdGljcyBmb3Igd2hlbiBhbiBgLy8gaWdub3JlYCBjb21tZW50IGNv',
+ 'bnRhaW5zIGFuIGVycm9yIGNvZGUKICAgIHdoaWNoIGlzIG5vdCBiZWluZyByZXBvcnRlZCwgY2Fu',
+ 'bm90IGJlIGlnbm9yZWQsIG9yIGlzIGFscmVhZHkgYmVpbmcgaWdub3JlZC4KCiogICBSZXBvcnQg',
+ 'ZGlhZ25vc3RpY3Mgd2hlbiB1c2luZwogICAgW2BAdmlzaWJsZUZvclRlc3RpbmdgXShodHRwczov',
+ 'L3B1Yi5kZXYvZG9jdW1lbnRhdGlvbi9tZXRhL2xhdGVzdC9tZXRhLwogICAgdmlzaWJsZUZvclRl',
+ 'c3RpbmctY29uc3RhbnQuaHRtbCkgb24gdG9wLWxldmVsIHZhcmlhYmxlcy4KCiogICBGaXggZmFs',
+ 'c2UgcG9zaXRpdmUgcmVwb3J0cyBvZiAidW51c2VkIGVsZW1lbnQiIGZvciB0b3AtbGV2ZWwgc2V0',
+ 'dGVycyBhbmQKICAgIGdldHRlcnMuCgoqICAgRml4IGZhbHNlIHBvc2l0aXZlIHJlcG9ydHMgcmVn',
+ 'YXJkaW5nIGBAZGVwcmVjYXRlZGAgZmllbGQgZm9ybWFsIHBhcmFtZXRlcnMKICAgIGF0IHRoZWly',
+ 'IGRlY2xhcmF0aW9uLgoKKiAgIEZvciBudWxsIHNhZmV0eSwgaW50cm9kdWNlIGEgZGlhZ25vc3Rp',
+ 'YyB3aGljaCByZXBvcnRzIHdoZW4gYSBudWxsLWNoZWNrIHdpbGwKICAgIGFsd2F5cyBmYWlsLgoK',
+ 'KiAgIEZpeCBmYWxzZSBwb3NpdGl2ZSByZXBvcnRzIHJlZ2FyZGluZyBvcHRpb25hbCBwYXJhbWV0',
+ 'ZXJzIG9uIHByaXZhdGUKICAgIGNvbnN0cnVjdG9ycyBiZWluZyB1bnVzZWQuCgoqICAgSW50cm9k',
+ 'dWNlIGEgZGlhZ25vc3RpYyB3aGljaCBpcyByZXBvcnRlZCB3aGVuIGEgY29uc3RydWN0b3IgaW5j',
+ 'bHVkZXMKICAgIGR1cGxpY2F0ZSBmaWVsZCBmb3JtYWwgcGFyYW1ldGVycy4KCiogICBJbXByb3Zl',
+ ];
+}
+
+List<String> _g4(String s) {
+ return [
+ s,
+ 'IHRoZSAidW51c2VkIGltcG9ydCIgZGlhZ25vc3RpYyB3aGVuIG11bHRpcGxlIGltcG9ydCBkaXJl',
+ 'Y3RpdmVzIHNoYXJlCiAgICBhIGNvbW1vbiBwcmVmaXguCgoqICAgRml4IGZhbHNlIHBvc2l0aXZl',
+ 'ICJ1bnVzZWQgaW1wb3J0IiBkaWFnbm9zdGljIHJlZ2FyZGluZyBhbiBpbXBvcnQgd2hpY2gKICAg',
+ 'IHByb3ZpZGVzIGFuIGV4dGVuc2lvbiBtZXRob2Qgd2hpY2ggaXMgdXNlZC4KCiogICBGb3IgbnVs',
+ 'bCBzYWZldHksIGltcHJvdmUgdGhlIG1lc3NhZ2luZyBvZiAidXNlIG9mIG51bGxhYmxlIHZhbHVl',
+ 'IgogICAgZGlhZ25vc3RpY3MgZm9yIGVpZ2h0IGRpZmZlcmVudCBjb250ZXh0cy4KCiogICBGaXgg',
+ 'ZmFsc2UgcG9zaXRpdmUgcmVwb3J0cyByZWdhcmRpbmcgYEB2aXNpYmxlRm9yVGVzdGluZ2AgbWVt',
+ 'YmVycyBpbiBhCiAgICAiaGlkZSIgY29tYmluYXRvciBvZiBhbiBpbXBvcnQgb3IgZXhwb3J0IGRp',
+ 'cmVjdGl2ZS4KCiogICBJbXByb3ZlIHRoZSBtZXNzYWdpbmcgb2YgImludmFsaWQgb3ZlcnJpZGUi',
+ 'IGRpYWdub3N0aWNzLgoKKiAgIEludHJvZHVjZSBhIGRpYWdub3N0aWMgd2hpY2ggaXMgcmVwb3J0',
+ 'ZWQgd2hlbiBgRnV0dXJlPFQ+LmNhdGNoRXJyb3JgIGlzCiAgICBjYWxsZWQgd2l0aCBhbiBgb25F',
+ 'cnJvcmAgY2FsbGJhY2sgd2hpY2ggZG9lcyBub3QgcmV0dXJuIGBGdXR1cmVPcjxUPmAuCgojIyMj',
+ 'IGRhcnRmbXQKCiogICBEb24ndCBkdXBsaWNhdGUgY29tbWVudHMgb24gY2hhaW5lZCBpZiBlbGVt',
+ 'ZW50cy4KCiogICBQcmVzZXJ2ZSBgP2AgaW4gaW5pdGlhbGl6aW5nIGZvcm1hbCBmdW5jdGlvbi10',
+ 'eXBlZCBwYXJhbWV0ZXJzLgoKKiAgIEZpeCBwZXJmb3JtYW5jZSBpc3N1ZSB3aXRoIGNvbnN0cnVj',
+ 'dG9ycyB0aGF0IGhhdmUgbm8gaW5pdGlhbGl6ZXIgbGlzdC4KCiMjIyMgTGludGVyCgpVcGRhdGVk',
+ 'IHRoZSBMaW50ZXIgdG8gYDAuMS4xMjlgLCB3aGljaCBpbmNsdWRlczoKCiogICBOZXcgbGludHM6',
+ 'IGBhdm9pZF9keW5hbWljX2NhbGxzYCwgYGNhc3RfbnVsbGFibGVfdG9fbm9uX251bGxhYmxlYCwK',
+ 'ICAgIGBudWxsX2NoZWNrX29uX251bGxhYmxlX3R5cGVfcGFyYW1ldGVyYCwKICAgIGB0aWdodGVu',
+ 'X3R5cGVfb2ZfaW5pdGlhbGl6aW5nX2Zvcm1hbHNgLCBgdW5uZWNlc3NhcnlfbnVsbF9jaGVja3Ng',
+ 'LCBhbmQKICAgIGBhdm9pZF90eXBlX3RvX3N0cmluZ2AuCgoqICAgRml4IGNyYXNoIGluIGBwcmVm',
+ 'ZXJfY29sbGVjdGlvbl9saXRlcmFsc2Agd2hlbiB0aGVyZSBpcyBubyBzdGF0aWMgcGFyYW1ldGVy',
+ 'CiAgICBlbGVtZW50LgoKKiAgIEZpeCBmYWxzZSBuZWdhdGl2ZXMgZm9yIGBwcmVmZXJfY29sbGVj',
+ 'dGlvbl9saXRlcmFsc2Agd2hlbiBhIExpbmtlZEhhc2hTZXQgb3IKICAgIExpbmtlZEhhc2hNYXAg',
+ 'aW5zdGFudGlhdGlvbiBpcyBwYXNzZWQgYXMgdGhlIGFyZ3VtZW50IHRvIGEgZnVuY3Rpb24gaW4g',
+ 'YW55CiAgICBwb3NpdGlvbiBvdGhlciB0aGFuIHRoZSBmaXJzdC4KCiogICBGaXggZmFsc2UgbmVn',
+ 'YXRpdmVzIGZvciBgcHJlZmVyX2NvbGxlY3Rpb25fbGl0ZXJhbHNgIHdoZW4gYSBMaW5rZWRIYXNo',
+ 'U2V0IG9yCiAgICBMaW5rZWRIYXNoTWFwIGluc3RhbnRpYXRpb24gaXMgdXNlZCBpbiBhIHBsYWNl',
+ 'IHdpdGggYSBzdGF0aWMgdHlwZSBvdGhlciB0aGFuCiAgICBTZXQgb3IgTWFwLgoKKiAgIFVwZGF0',
+ 'ZSB0byBgcGFja2FnZV9uYW1lc2AgdG8gYWxsb3cgbGVhZGluZyB1bmRlcnNjb3Jlcy4KCiogICBG',
+ 'aXggY3Jhc2hlcyBpbiBgdW5uZWNlc3NhcnlfbnVsbF9jaGVja3NgIGFuZAogICAgYG1pc3Npbmdf',
+ 'd2hpdGVzcGFjZV9iZXR3ZWVuX2FkamFjZW50X3N0cmluZ3NgLgoKKiAgIFVwZGF0ZSB0byBgdm9p',
+ 'ZF9jaGVja3NgIGZvciBudWxsIHNhZmV0eS4KCiogICBGaXggcmFuZ2UgZXJyb3IgaW4gYHVubmVj',
+ 'ZXNzYXJ5X3N0cmluZ19lc2NhcGVzYC4KCiogICBGaXggZmFsc2UgcG9zaXRpdmVzIGluIGB1bm5l',
+ 'Y2Vzc2FyeV9udWxsX3R5cGVzYC4KCiogICBGaXggdG8gYHByZWZlcl9jb25zdHJ1Y3RvcnNfb3Zl',
+ 'cl9zdGF0aWNfbWV0aG9kc2AgdG8gcmVzcGVjdCB0eXBlCiAgICBwYXJhbWV0ZXJzLgoKKiAgIFVw',
+ 'ZGF0ZSB0byBgYWx3YXlzX3JlcXVpcmVfbm9uX251bGxfbmFtZWRfcGFyYW1ldGVyc2AgdG8gYmUg',
+ 'bnVsbCBzYWZldHktYXdhcmUuCgoqICAgVXBkYXRlIHRvIGB1bm5lY2Vzc2FyeV9udWxsYWJsZV9m',
+ 'b3JfZmluYWxfdmFyaWFibGVfZGVjbGFyYXRpb25zYCB0byBhbGxvdwogICAgZHluYW1pYy4KCiog',
+ 'ICBVcGRhdGUgYG92ZXJyaWRkZW5fZmllbGRzYCB0byBub3QgcmVwb3J0IG9uIGFic3RyYWN0IHBh',
+ 'cmVudCBmaWVsZHMuCgoqICAgRml4IHRvIGB1bnJlbGF0ZWRfdHlwZV9lcXVhbGl0eV9jaGVja3Ng',
+ 'IGZvciBudWxsIHNhZmV0eS4KCiogICBJbXByb3ZlbWVudHMgdG8gYHR5cGVfaW5pdF9mb3JtYWxz',
+ 'YHRvIGFsbG93IHR5cGVzIG5vdCBlcXVhbCB0byB0aGUgZmllbGQKICAgIHR5cGUuCgoqICAgVXBk',
+ 'YXRlcyB0byBgcHVibGljX21lbWJlcl9hcGlzYCB0byBjaGVjayBnZW5lcmljIHR5cGUgYWxpYXNl',
+ 'cy4KCiogICBGaXggYGNsb3NlX3NpbmtzYCB0byBoYW5kbGUgYHRoaXNgLXByZWZpeGVkIHByb3Bl',
+ 'cnR5IGFjY2Vzc2VzLgoKKiAgIEZpeCBgdW5hd2FpdGVkX2Z1dHVyZXNgIHRvIGhhbmRsZSBgRnV0',
+ 'dXJlYCBzdWJ0eXBlcy4KCiogICBQZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgdG8gYGFsd2F5c191',
+ 'c2VfcGFja2FnZV9pbXBvcnRzYCwKICAgIGBhdm9pZF9yZW5hbWluZ19tZXRob2RfcGFyYW1ldGVy',
+ 'c2AsIGBwcmVmZXJfcmVsYXRpdmVfaW1wb3J0c2AgYW5kCiAgICBgcHVibGljX21lbWJlcl9hcGlf',
+ 'ZG9jc2AuCgojIyMjIFB1YgoKKiAgICoqQnJlYWtpbmcqKjogVGhlIERhcnQgU0RLIGNvbnN0cmFp',
+ 'bnQgaXMgbm93ICoqcmVxdWlyZWQqKiBpbiBgcHVic3BlYy55YW1sYC4KICAgIFlvdSBtdXN0IGlu',
+ 'Y2x1ZGUgYSBzZWN0aW9uIGxpa2U6CgogICAgYGBgeWFtbAogICAgZW52aXJvbm1lbnQ6CiAgICAg',
+ 'IHNkazogJz49Mi4xMC4wIDwzLjAuMCcKICAgIGBgYAoKICAgIFNlZSBbIzQ0MDcyXVtdLgoKICAg',
+ 'IEZvciBsZWdhY3kgZGVwZW5kZW5jaWVzIHdpdGhvdXQgYW4gU0RLIGNvbnN0cmFpbnQsIHB1YiB3',
+ 'aWxsIG5vdyBhc3N1bWUgYQogICAgZGVmYXVsdCBsYW5ndWFnZSB2ZXJzaW9uIG9mIDIuNy4KCiog',
+ 'ICBUaGUgdG9wIGxldmVsIGBwdWJgIGV4ZWN1dGFibGUgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNl',
+ 'IGBkYXJ0IHB1YmAgaW5zdGVhZC4KICAgIFNlZSBbZGFydCB0b29sXVtdLgoKKiAgIE5ldyBjb21t',
+ 'YW5kIGBkYXJ0IHB1YiBhZGRgIHRoYXQgYWRkcyBuZXcgZGVwZW5kZW5jaWVzIHRvIHlvdXIKICAg',
+ 'IGBwdWJzcGVjLnlhbWxgLCBhbmQgYSBjb3JyZXNwb25kaW5nIGBkYXJ0IHB1YiByZW1vdmVgIHRo',
+ 'YXQgcmVtb3ZlcwogICAgZGVwZW5kZW5jaWVzLgoKKiAgIE5ldyBvcHRpb24gYGRhcnQgcHViIHVw',
+ 'Z3JhZGUgLS1tYWpvci12ZXJzaW9uc2Agd2lsbCB1cGRhdGUgY29uc3RyYWludHMgaW4KICAgIHlv',
+ 'dXIgYHB1YnNwZWMueWFtbGAgdG8gbWF0Y2ggdGhlIHRoZSBfcmVzb2x2YWJsZV8gY29sdW1uIHJl',
+ 'cG9ydGVkIGluIGBkYXJ0CiAgICBwdWIgb3V0ZGF0ZWRgLiBUaGlzIGFsbG93cyB1c2VycyB0byBl',
+ 'YXNpbHkgdXBncmFkZSB0byBsYXRlc3QgdmVyc2lvbiBmb3IgYWxsCiAgICBkZXBlbmRlbmNpZXMg',
+ 'd2hlcmUgdGhpcyBpcyBwb3NzaWJsZSwgZXZlbiBpZiBzdWNoIHVwZ3JhZGUgcmVxdWlyZXMgYW4g',
+ 'dXBkYXRlCiAgICB0byB0aGUgdmVyc2lvbiBjb25zdHJhaW50IGluIGBwdWJzcGVjLnlhbWxgLgoK',
+ 'ICAgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gb25seSB1cGdyYWRlIHRoZSBtYWpvciB2ZXJzaW9u',
+ 'IGZvciBhIHN1YnNldCBvZiB5b3VyCiAgICBkZXBlbmRlbmNpZXMgdXNpbmcgYGRhcnQgcHViIHVw',
+ 'Z3JhZGUgLS1tYWpvci12ZXJzaW9ucyA8ZGVwZW5kZW5jaWVzLi4uPmAuCgoqICAgTmV3IG9wdGlv',
+ 'biBgZGFydCBwdWIgdXBncmFkZSAtLW51bGwtc2FmZXR5YCB3aWxsIGF0dGVtcHQgdG8gdXBkYXRl',
+ 'IGNvbnN0cmFpbnRzCiAgICBpbiB5b3VyIGBwdWJzcGVjLnlhbWxgLCBzdWNoIHRoYXQgb25seSBu',
+ 'dWxsLXNhZmV0eSBtaWdyYXRlZCB2ZXJzaW9ucyBvZgogICAgZGVwZW5kZW5jaWVzIGFyZSBhbGxv',
+ 'd2VkLgoKKiAgIE5ldyBvcHRpb24gYGRhcnQgcHViIG91dGRhdGVkIC0tbW9kZT1udWxsLXNhZmV0',
+ 'eWAgdGhhdCB3aWxsIGFuYWx5emUgeW91cgogICAgZGVwZW5kZW5jaWVzIGZvciBudWxsLXNhZmV0',
+ 'eS4KCiogICBgZGFydCBwdWIgZ2V0YCBhbmQgYGRhcnQgcHViIHVwZ3JhZGVgIHdpbGwgaGlnaGxp',
+ 'Z2h0IGRlcGVuZGVuY2llcyB0aGF0IGhhdmUKICAgIGJlZW4gW2Rpc2NvbnRpbnVlZF0oaHR0cHM6',
+ 'Ly9kYXJ0LmRldi90b29scy9wdWIvcHVibGlzaGluZyNkaXNjb250aW51ZSkgb24KICAgIHB1Yi5k',
+ 'ZXYuCgoqICAgYGRhcnQgcHViIHB1Ymxpc2hgIHdpbGwgbm93IGNoZWNrIHlvdXIgcHVic3BlYyBr',
+ 'ZXlzIGZvciBsaWtlbHkgdHlwb3MuCgoqICAgYGRhcnQgcHViIHVwZ3JhZGUgcGFja2FnZV9mb29g',
+ 'IGZldGNocyBkZXBlbmRlbmNpZXMgYnV0IGlnbm9yZXMgdGhlCiAgICBgcHVic3BlYy5sb2NrYCBm',
+ 'b3IgYHBhY2thZ2VfZm9vYCwgYWxsb3dpbmcgdXNlcnMgdG8gb25seSB1cGdyYWRlIGEgc3Vic2V0',
+ 'IG9mCiAgICBkZXBlbmRlbmNpZXMuCgoqICAgTmV3IGNvbW1hbmQgYGRhcnQgcHViIGxvZ2luYCB0',
+ 'aGF0IGxvZ3MgaW4gdG8gcHViLmRldi4KCiogICBUaGUgYC0tc2VydmVyYCBvcHRpb24gdG8gYGRh',
+ 'cnQgcHViIHB1Ymxpc2hgIGFuZCBgZGFydCBwdWIgdXBsb2FkZXJgIGFyZQogICAgZGVwcmVjYXRl',
+ 'ZC4gVXNlIGBwdWJsaXNoX3RvYCBpbiB5b3VyIGBwdWJzcGVjLnlhbWxgIG9yIHNldCB0aGUKICAg',
+ 'IGAkUFVCX0hPU1RFRF9VUkxgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKKiAgIGBwdWIgZ2xvYmFs',
+ 'IGFjdGl2YXRlYCBubyBsb25nZXIgcmUtcHJlY29tcGlsZXMgaWYgdGhlIGN1cnJlbnQgZ2xvYmFs',
+ 'CiAgICBpbnN0YWxsYXRpb24gd2FzIHNhbWUgdmVyc2lvbi4KCiogICBUaGUgRmx1dHRlciBTREsg',
+ 'Y29uc3RyYWludCB1cHBlciBib3VuZCBpcyBub3cgaWdub3JlZCBpbiBwdWJzcGVjcyBhbmQKICAg',
+ 'IGRlcHJlY2F0ZWQgd2hlbiBwdWJsaXNoaW5nLiBTZWU6IFtmbHV0dGVyLXVwcGVyLWJvdW5kLWRl',
+ 'cHJlY2F0aW9uXVtdLgoKW2ZsdXR0ZXItdXBwZXItYm91bmQtZGVwcmVjYXRpb25dOiBodHRwczov',
+ 'L2RhcnQuZGV2L2dvL2ZsdXR0ZXItdXBwZXItYm91bmQtZGVwcmVjYXRpb24KWyM0NDA3Ml06IGh0',
+ 'dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80NDA3MgpbZGFydCB0b29sXTog',
+ 'aHR0cHM6Ly9kYXJ0LmRldi90b29scy9kYXJ0LXRvb2wKCiMjIDIuMTAuNSAtIDIwMjEtMDEtMjEK',
+ 'ClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRoYXQgZml4ZXMgYSBjcmFzaCBpbiB0aGUgRGFydCBW',
+ 'TS4gKGlzc3VlIFsjNDQ1NjNdW10pLgoKWyM0NDU2M106IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy80NDU2MwoKIyMgMi4xMC40IC0gMjAyMC0xMS0xMgoKVGhpcyBpcyBh',
+ 'IHBhdGNoIHJlbGVhc2UgdGhhdCBmaXhlcyBhIGNyYXNoIGluIHRoZSBEYXJ0IFZNIChpc3N1ZXMg',
+ 'WyM0Mzk0MV1bXSwKW2ZsdXR0ZXIvZmx1dHRlciM0MzYyMF1bXSwgYW5kIFtEYXJ0LUNvZGUvRGFy',
+ 'dC1Db2RlIzI4MTRdW10pLgoKWyM0Mzk0MV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcv',
+ ];
+}
+
+List<String> _g5(String s) {
+ return [
+ s,
+ 'c2RrL2lzc3Vlcy80Mzk0MQpbZmx1dHRlci9mbHV0dGVyIzQzNjIwXTogaHR0cHM6Ly9naXRodWIu',
+ 'Y29tL2ZsdXR0ZXIvZmx1dHRlci9pc3N1ZXMvNDM2MjAKW0RhcnQtQ29kZS9EYXJ0LUNvZGUjMjgx',
+ 'NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9EYXJ0LUNvZGUvRGFydC1Db2RlL2lzc3Vlcy8yODE0Cgoj',
+ 'IyAyLjEwLjMgLSAyMDIwLTEwLTI5CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0aGF0IGZpeGVz',
+ 'IHRoZSBmb2xsb3dpbmcgaXNzdWVzOgoqIGJyZWFraW5nIGNoYW5nZXMgaW4gQ2hyb21lIDg2IHRo',
+ 'YXQgYWZmZWN0IEREQyAoaXNzdWVzIFsjNDM3NTBdW10gYW5kCiAgWyM0MzE5M11bXSkuCiogY29t',
+ 'cGlsZXIgZXJyb3IgY2F1c2luZyBpbmNvcnJlY3QgdXNlIG9mIHBvc2l0aW9uYWwgcGFyYW1ldGVy',
+ 'cyB3aGVuIG5hbWVkCiAgcGFyYW1ldGVycyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIChpc3N1ZXMg',
+ 'W2ZsdXR0ZXIvZmx1dHRlciM2NTMyNF1bXSBhbmQKICBbZmx1dHRlci9mbHV0dGVyIzY4MDkyXVtd',
+ 'KS4KKiBjcmFzaGVzIGFuZC9vciB1bmRlZmluZWQgYmVoYXZvciBpbiBBT1QgY29tcGlsZWQgY29k',
+ 'ZSAoaXNzdWVzIFsjNDM3NzBdW10gYW5kCiAgWyM0Mzc4Nl1bXSkuCiogQU9UIGNvbXBpbGF0aW9u',
+ 'IG9mIGNsYXNzZXMgd2l0aCBtb3JlIHRoYW4gNjQgdW5ib3hlZCBmaWVsZHMKICAoaXNzdWUgW2Zs',
+ 'dXR0ZXIvZmx1dHRlciM2NzgwM11bXSkuCgpbIzQzNzUwXTogaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzQzNzUwClsjNDMxOTNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay9pc3N1ZXMvNDMxOTMKW2ZsdXR0ZXIvZmx1dHRlciM2NTMyNF06IGh0dHBzOi8v',
+ 'Z2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIvaXNzdWVzLzY1MzI0CltmbHV0dGVyL2ZsdXR0ZXIj',
+ 'NjgwOTJdOiBodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2lzc3Vlcy82ODA5Mgpb',
+ 'IzQzNzcwXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQzNzcwClsj',
+ 'NDM3ODZdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDM3ODYKW2Zs',
+ 'dXR0ZXIvZmx1dHRlciM2NzgwM106IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIv',
+ 'aXNzdWVzLzY3ODAzCgojIyAyLjEwLjIgLSAyMDIwLTEwLTE1CgpUaGlzIGlzIGEgcGF0Y2ggcmVs',
+ 'ZWFzZSB0aGF0IGZpeGVzIGEgRERDIGNvbXBpbGVyIGNyYXNoIChpc3N1ZSBbIzQzNTg5XSkuCgpb',
+ 'IzQzNTg5XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQzNTg5Cgoj',
+ 'IyAyLjEwLjEgLSAyMDIwLTEwLTA2CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0aGF0IGZpeGVz',
+ 'IHRoZSBmb2xsb3dpbmcgaXNzdWVzOgoqIGNyYXNoZXMgd2hlbiBkZXZlbG9waW5nIEZsdXR0ZXIg',
+ 'YXBwbGljYXRpb25zIChpc3N1ZSBbIzQzNDY0XVtdKS4KKiBub24tZGV0ZXJtaW5pc3RpYyBpbmNv',
+ 'cnJlY3QgcHJvZ3JhbSBiZWhhdmlvdXIgYW5kL29yIGNyYXNoZXMgKGlzc3VlCiAgW2ZsdXR0ZXIv',
+ 'Zmx1dHRlciM2NjY3Ml1bXSkuCiogdW5jYXVnaHQgVHlwZUVycm9ycyBpbiBEREMgKGlzc3VlIFsj',
+ 'NDM2NjFdW10pLgoKWyM0MzQ2NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lz',
+ 'c3Vlcy80MzQ2NApbZmx1dHRlci9mbHV0dGVyIzY2NjcyXTogaHR0cHM6Ly9naXRodWIuY29tL2Zs',
+ 'dXR0ZXIvZmx1dHRlci9pc3N1ZXMvNjY2NzIKWyM0MzY2MV06IGh0dHBzOi8vZ2l0aHViLmNvbS9k',
+ 'YXJ0LWxhbmcvc2RrL2lzc3Vlcy80MzY2MQoKIyMgMi4xMC4wIC0gMjAyMC0wOS0yOAoKIyMjIENv',
+ 'cmUgbGlicmFyaWVzCgojIyMjIGBkYXJ0OmlvYAoKKiAgIEFkZHMgYEFib3J0YCBtZXRob2QgdG8g',
+ 'Y2xhc3MgYEh0dHBDbGllbnRSZXF1ZXN0YCwgd2hpY2ggYWxsb3dzIHVzZXJzCiAgICB0byBjYW5j',
+ 'ZWwgb3V0Z29pbmcgSFRUUCByZXF1ZXN0cyBhbmQgc3RvcCBmb2xsb3dpbmcgSU8gb3BlcmF0aW9u',
+ 'cy4KKiAgIEEgdmFsaWRhdGlvbiBjaGVjayBpcyBhZGRlZCB0byBgcGF0aGAgb2YgY2xhc3MgYENv',
+ 'b2tpZWAuIEhhdmluZyBjaGFyYWN0ZXJzCiAgICByYW5naW5nIGZyb20gMHgwMCB0byAweDFmIGFu',
+ 'ZCAweDNiICgiOyIpIHdpbGwgbGVhZCB0byBhIGBGb3JtYXRFeGNlcHRpb25gLgoqICAgVGhlIGBI',
+ 'dHRwQ2xpZW50YCBhbmQgYEh0dHBTZXJ2ZXJgIGNsYXNzZXMgbm93IGhhdmUgYSAxIE1pQiBsaW1p',
+ 'dCBmb3IgdGhlCiAgICB0b3RhbCBzaXplIG9mIHRoZSBIVFRQIGhlYWRlcnMgd2hlbiBwYXJzaW5n',
+ 'IGEgcmVxdWVzdCBvciByZXNwb25zZSwgaW5zdGVhZAogICAgb2YgdGhlIGZvcm1lciA4IEtpQiBs',
+ 'aW1pdCBmb3IgZWFjaCBoZWFkZXIgbmFtZSBhbmQgdmFsdWUuIFRoaXMgbGltaXQgY2Fubm90CiAg',
+ 'ICBiZSBjb25maWd1cmVkIGF0IHRoaXMgdGltZS4KCiMjIyMgYGRhcnQ6dHlwZWRfZGF0YWAKCiog',
+ 'ICBDbGFzcyBgQnl0ZXNCdWlsZGVyYCBpcyBtb3ZlZCBmcm9tIGBkYXJ0OmlvYCB0byBgZGFydDp0',
+ 'eXBlZF9kYXRhYC4KICAgIEl0J3MgdGVtcG9yYXJpbHkgYmVpbmcgZXhwb3J0ZWQgZnJvbSBgZGFy',
+ 'dDppb2AgYXMgd2VsbC4KCiMjIyBgZGFydDp1cmlgCgoqICAgWyM0MjU2NF06IFNvbHZlZCBpbmNv',
+ 'bnNpc3RlbmN5IGluIGBVcmkuaHR0cHNgIGFuZCBgVXJpLmh0dHBgIGNvbnN0cnVjdG9ycycKICAg',
+ 'IGBxdWVyeVBhcmFtc2AgdHlwZS4KCiMjIyBEYXJ0IFZNCgoqICAgKipCcmVha2luZyBDaGFuZ2Uq',
+ 'KiBbIzQyOTgyXVtdOiBgZGFydF9hcGlfZGwuY2NgIGlzIHJlbmFtZWQgdG8KICAgIGBkYXJ0X2Fw',
+ 'aV9kbC5jYCBhbmQgY2hhbmdlZCB0byBhIHB1cmUgQyBmaWxlLgoqICAgSW50cm9kdWNlcyBgRGFy',
+ 'dF9GaW5hbGl6YWJsZUhhbmRsZWBzLiBUaGV5IGRvIGF1dG8tZGVsZXRlLCBhbmQgdGhlIHdlYWts',
+ 'eQogICAgcmVmZXJyZWQgb2JqZWN0IGNhbm5vdCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZW0uCgoj',
+ 'IyMgRGFydDJKUwoKKiAgIEFkZHMgc3VwcG9ydCBmb3IgZGVmZXJyZWQgbG9hZGluZyBvZiB0eXBl',
+ 'cyBzZXBlcmF0ZWx5IGZyb20gY2xhc3Nlcy4gVGhpcwogICAgZW5hYmxlcyBkYXJ0MmpzIHRvIG1h',
+ 'a2UgYmV0dGVyIG9wdGltaXphdGlvbiBjaG9pY2VzIHdoZW4gZGVmZXJyZWQgbG9hZGluZy4KICAg',
+ 'IFRoaXMgd29yayBpcyBuZWNlc3NhcnkgdG8gYWRkcmVzcyB1bnNvdW5kbmVzcyBpbiB0aGUgZGVm',
+ 'ZXJyZWQgbG9hZGluZwogICAgYWxnb3JpdGhtLiBDdXJyZW50bHksIGZpeGluZyB0aGlzIHVuc291',
+ 'bmRuZXNzIHdvdWxkIHJlc3VsdCBpbiBjb2RlIGJsb2F0LAogICAgYnV0IGxvYWRpbmcgdHlwZXMg',
+ 'c2VwZXJhdGVseSBmcm9tIGNsYXNzZXMgd2lsbCBhbGxvdyB1cyB0byBmaXggdGhlCiAgICB1bnNv',
+ 'dW5kbmVzcyB3aXRoIG9ubHkgYSBtaW5pbWFsIHJlZ3Jlc3Npb24uIFRvIGV4cGxpY2l0bHkgZGlz',
+ 'YWJsZQogICAgZGVmZXJyZWQgbG9hZGluZyBvZiB0eXBlcywgcGFzcyBgLS1uby1kZWZlci1jbGFz',
+ 'cy10eXBlc2AuIFNlZSB0aGUgb3JpZ2luYWwKICAgIHBvc3Qgb24gdGhlIFt1bnNvdW5kbmVzcyBp',
+ 'biB0aGUgZGVmZXJyZWQgbG9hZGluZyBhbGdvcml0aG1dW10uCiogICBFbmFibGVzIGEgbmV3IHNv',
+ 'dW5kIGRlZmVycmVkIHNwbGl0dGluZyBhbGdvcml0aG0uIFRvIGV4cGxpY2l0bHkgZGlzYWJsZQog',
+ 'ICAgdGhlIG5ldyBkZWZlcnJlZCBzcGxpdHRpbmcgYWxnb3JpdGhtLCBwYXNzIGAtLW5vLW5ldy1k',
+ 'ZWZlcnJlZC1zcGxpdGAuCiAgICBTZWUgdGhlIG9yaWdpbmFsIHBvc3Qgb24gdGhlCiAgICBbdW5z',
+ 'b3VuZG5lc3MgaW4gdGhlIGRlZmVycmVkIGxvYWRpbmcgYWxnb3JpdGhtXVtdLgoKClsjNDI5ODJd',
+ 'OiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDI5ODIKW3Vuc291bmRu',
+ 'ZXNzIGluIHRoZSBkZWZlcnJlZCBsb2FkaW5nIGFsZ29yaXRobV06IGh0dHBzOi8vZ2l0aHViLmNv',
+ 'bS9kYXJ0LWxhbmcvc2RrL2Jsb2IvMzAyYWQ3YWIyY2QyZGU5MzYyNTQ4NTA1NTBhYWQxMjhhZTc2',
+ 'YmJiNy9DSEFOR0VMT0cubWQjZGFydDJqcy0zCgojIyMgVG9vbHMKCiMjIyMgZGFydGZtdAoKKiBE',
+ 'b24ndCBjcmFzaCB3aGVuIG5vbi1BU0NJSSB3aGl0ZXNwYWNlIGlzIHRyaW1tZWQuCiogU3BsaXQg',
+ 'YWxsIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zIChgPzpgKSB3aGVuIHRoZXkgYXJlIG5lc3RlZC4K',
+ 'KiBIYW5kbGUgYGV4dGVybmFsYCBhbmQgYGFic3RyYWN0YCBmaWVsZHMgYW5kIHZhcmlhYmxlcy4K',
+ 'CiMjIyMgTGludGVyCgpVcGRhdGVkIHRoZSBMaW50ZXIgdG8gYDAuMS4xMThgLCB3aGljaCBpbmNs',
+ 'dWRlczoKCiogTmV3IGxpbnQ6IGB1bm5lY2Vzc2FyeV9udWxsYWJsZV9mb3JfZmluYWxfdmFyaWFi',
+ 'bGVfZGVjbGFyYXRpb25zYC4KKiBGaXhlZCBOUEUgaW4gYHByZWZlcl9hc3NlcnRzX2luX2luaXRp',
+ 'YWxpemVyX2xpc3RzYC4KKiBGaXhlZCByYW5nZSBlcnJvciBpbiBgdW5uZWNlc3Nhcnlfc3RyaW5n',
+ 'X2VzY2FwZXNgLgoqIGB1bnNhZmVfaHRtbGAgdXBkYXRlZCB0byBzdXBwb3J0IHVuaXF1ZSBlcnJv',
+ 'ciBjb2Rlcy4KKiBVcGRhdGVzIHRvIGBkaWFnbm9zdGljX2Rlc2NyaWJlX2FsbF9wcm9wZXJ0aWVz',
+ 'YCB0byBjaGVjayBmb3IgYERpYWdub3N0aWNhYmxlYHMgKG5vdCBgRGlhZ25vc3RpY2FibGVNaXhp',
+ 'bmBzKS4KKiBOZXcgbGludDogYHVzZV9sYXRlYC4KKiBGaXhlZCBgdW5uZWNlc3NhcnlfbGFtYmRh',
+ 'c2AgdG8gcmVzcGVjdCBkZWZlcnJlZCBpbXBvcnRzLgoqIFVwZGF0ZWQgYHB1YmxpY19tZW1iZXJf',
+ 'YXBpX2RvY3NgIHRvIGNoZWNrIG1peGlucy4KKiBVcGRhdGVkIGB1bm5lY2Vzc2FyeV9zdGF0ZW1l',
+ 'bnRzYCB0byBza2lwIGBhc2AgZXhwcmVzc2lvbnMuCiogRml4ZWQgYHByZWZlcl9yZWxhdGl2ZV9p',
+ 'bXBvcnRzYCB0byB3b3JrIHdpdGggcGF0aCBkZXBlbmRlbmNpZXMuCgojIyMjIFB1YgoKKiBgcHVi',
+ 'IHJ1bmAgYW5kIGBwdWIgZ2xvYmFsIHJ1bmAgYWNjZXB0cyBhIGAtLShuby0pLXNvdW5kLW51bGwt',
+ 'c2FmZXR5YCBmbGFnLAogIHRoYXQgaXMgcGFzc2VkIHRvIHRoZSBWTS4KKiBGaXg6IEF2b2lkIG11',
+ 'bHRpcGxlIHJlY29tcGlsYXRpb24gb2YgYmluYXJpZXMgaW4gZ2xvYmFsIHBhY2thZ2VzLgoqIEZp',
+ 'eDogQXZvaWQgZXhwb25lbnRpYWwgYmVoYXZpb3VyIG9mIGVycm9yIHJlcG9ydGluZyBmcm9tIHRo',
+ 'ZSBzb2x2ZXIuCiogRml4OiBSZWZyZXNoIGJpbnN0dWJzIGFmdGVyIHJlY29tcGlsZSBpbiBnbG9i',
+ 'YWwgcnVuLgoKIyMgMi45LjMgLSAyMDIwLTA5LTA4CgpUaGlzIGlzIGEgcGF0Y2ggcmVsZWFzZSB0',
+ 'aGF0IGZpeGVzIEREQyB0byBoYW5kbGUgYSBicmVha2luZyBjaGFuZ2UgaW4gQ2hyb21lCihpc3N1',
+ 'ZSBbIzQzMTkzXVtdKS4KClsjNDMxOTNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nk',
+ 'ay9pc3N1ZXMvNDMxOTMKCiMjIDIuOS4yIC0gMjAyMC0wOC0yNgoKVGhpcyBpcyBhIHBhdGNoIHJl',
+ 'bGVhc2UgdGhhdCBmaXhlcyB0cmFuc2llbnQgU3RhY2tPdmVyZmxvdyBleGNlcHRpb25zIHdoZW4K',
+ 'YnVpbGRpbmcgRmx1dHRlciBhcHBsaWNhdGlvbnMgKGlzc3VlIFtmbHV0dGVyL2ZsdXR0ZXIjNjM1',
+ 'NjBdW10pLgoKW2ZsdXR0ZXIvZmx1dHRlciM2MzU2MF06IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0',
+ 'dGVyL2ZsdXR0ZXIvaXNzdWVzLzYzNTYwCgojIyAyLjkuMSAtIDIwMjAtMDgtMTIKClRoaXMgaXMg',
+ 'YSBwYXRjaCByZWxlYXNlIHRoYXQgZml4ZXMgdW5oYW5kbGVkIGV4Y2VwdGlvbnMgaW4gc29tZSBG',
+ ];
+}
+
+List<String> _g6(String s) {
+ return [
+ s,
+ 'bHV0dGVyCmFwcGxpY2F0aW9ucyAoaXNzdWUgW2ZsdXR0ZXIvZmx1dHRlciM2MzAzOF1bXSkuCgpb',
+ 'Zmx1dHRlci9mbHV0dGVyIzYzMDM4XTogaHR0cHM6Ly9naXRodWIuY29tL2ZsdXR0ZXIvZmx1dHRl',
+ 'ci9pc3N1ZXMvNjMwMzgKCiMjIDIuOS4wIC0gMjAyMC0wOC0wNQoKIyMjIExhbmd1YWdlCgojIyMg',
+ 'Q29yZSBsaWJyYXJpZXMKCiMjIyMgYGRhcnQ6YXN5bmNgCgoqICAgQWRkcyBgU3RyZWFtLm11bHRp',
+ 'YCBjb25zdHJ1Y3RvciBjcmVhdGluZyBzdHJlYW1zIHdoaWNoIGNhbiBiZQogICAgbGlzdGVuZWQg',
+ 'dG8gbW9yZSB0aGFuIG9uY2UsIGFuZCB3aGVyZSBlYWNoIGluZGl2aWR1YWwgbGlzdGVuZXIKICAg',
+ 'IGNhbiBiZSBjb250cm9sbGVkIGluZGVwZW5kZW50bHkuCgojIyMjIGBkYXJ0OmNvbnZlcnRgCgoq',
+ 'ICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQxMTAwXVtdOiBXaGVuIGVuY29kaW5nIGEgc3RyaW5n',
+ 'IGNvbnRhaW5pbmcgdW5wYWlyZWQKICAgIHN1cnJvZ2F0ZXMgYXMgVVRGLTgsIHRoZSB1bnBhaXJl',
+ 'ZCBzdXJyb2dhdGVzIHdpbGwgYmUgZW5jb2RlZCBhcyByZXBsYWNlbWVudAogICAgY2hhcmFjdGVy',
+ 'cyAoYFUrRkZGRGApLiBXaGVuIGRlY29kaW5nIFVURi04LCBlbmNvZGVkIHN1cnJvZ2F0ZXMgd2ls',
+ 'bCBiZQogICAgdHJlYXRlZCBhcyBtYWxmb3JtZWQgaW5wdXQuIFdoZW4gZGVjb2RpbmcgVVRGLTgg',
+ 'd2l0aCBgYWxsb3dNYWxmb3JtZWQ6IHRydWVgLAogICAgdGhlIG51bWJlciBvZiByZXBsYWNlbWVu',
+ 'dCBjaGFyYWN0ZXJzIGVtaXR0ZWQgZm9yIG1hbGZvcm1lZCBpbnB1dCBzZXF1ZW5jZXMKICAgIGhh',
+ 'cyBiZWVuIGNoYW5nZWQgdG8gbWF0Y2ggdGhlIFtXSEFUV0cgZW5jb2Rpbmcgc3RhbmRhcmRdW10u',
+ 'CgpbIzQxMTAwXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQxMTAw',
+ 'CltXSEFUV0cgZW5jb2Rpbmcgc3RhbmRhcmRdOiBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdn',
+ 'Lm9yZy8jdXRmLTgtZGVjb2RlcgoKIyMjIyBgZGFydDppb2AKCiogICBbIzQyMDA2XVtdOiBUaGUg',
+ 'c2lnbmF0dXJlIG9mIGBleGl0YCBoYXMgYmVlbiBjaGFuZ2VkIHRvIHJldHVybiB0aGUKICAgIGBO',
+ 'ZXZlcmB0eXBlIGluc3RlYWQgb2YgYHZvaWRgLiBzaW5jZSBubyBjb2RlIHdpbGwgcnVuIGFmdGVy',
+ 'IGl0LAoqICAgQ2xhc3MgYE9TRXJyb3JgIG5vdyBpbXBsZW1lbnRzIGBFeGNlcHRpb25gLiBUaGlz',
+ 'IGNoYW5nZSBtZWFucyBgT1NFcnJvcmAgd2lsbAogICAgbm93IGJlIGNhdWdodCBpbiBjYXRjaCBj',
+ 'bGF1c2VzIGNhdGNoaW5nIGBFeGNlcHRpb25gcy4KKiAgIEFkZGVkIGBJbnRlcm5ldEFkZHJlc3Mu',
+ 'dHJ5UGFyc2VgLgoqICAgW0Fic3RyYWN0IFVuaXggRG9tYWluIFNvY2tldF1bXSBpcyBzdXBwb3J0',
+ 'ZWQgb24gTGludXgvQW5kcm9pZCBub3cuIFVzaW5nIGFuCiAgICBgSW50ZXJuZXRBZGRyZXNzYCB3',
+ 'aXRoIGBhZGRyZXNzYCBzdGFydGluZyB3aXRoICdAJyBhbmQgdHlwZSBiZWluZwogICAgYEludGVy',
+ 'bmV0QWRkcmVzc1R5cGUuVW5peGAgd2lsbCBjcmVhdGUgYW4gYWJzdHJhY3QgVW5peCBEb21haW4g',
+ 'U29ja2V0LgoqICAgT24gV2luZG93cywgZmlsZSBBUElzIGNhbiBub3cgaGFuZGxlIGZpbGVzIGFu',
+ 'ZCBkaXJlY3RvcmllcyBpZGVudGlmaWVkIGJ5CiAgICBsb25nIHBhdGhzIChncmVhdGVyIHRoYW4g',
+ 'MjYwIGNoYXJhY3RlcnMpLiBJdCBjb21wbGllcyB3aXRoIGFsbCByZXN0cmljdGlvbnMKICAgIGZy',
+ 'b20gW0xvbmcgUGF0aCBvbiBXaW5kb3dzXVtdLiBOb3RlIHRoYXQgYERpcmVjdG9yeS5jdXJyZW50',
+ 'YCBkb2VzIG5vdCB3b3JrCiAgICB3aXRoIGxvbmcgcGF0aC4KClsjNDIwMDZdOiBodHRwczovL2dp',
+ 'dGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDIwMDYKW0Fic3RyYWN0IFVuaXggRG9tYWlu',
+ 'IFNvY2tldF06IGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuNy91bml4LjcuaHRt',
+ 'bApbTG9uZyBQYXRoIG9uIFdpbmRvd3NdOiBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11',
+ 'cy93aW5kb3dzL3dpbjMyL2ZpbGVpby9uYW1pbmctYS1maWxlI21heGltdW0tcGF0aC1sZW5ndGgt',
+ 'bGltaXRhdGlvbgoKIyMjIyBgZGFydDpodG1sYAoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKio6IGBD',
+ 'c3NDbGFzc1NldC5hZGQoKWAgcHJldmlvdXNseSByZXR1cm5lZCBgbnVsbGAgaWYgdGhlCiAgICBg',
+ 'Q3NzQ2xhc3NTZXRgIGNvcnJlc3BvbmRlZCB0byBtdWx0aXBsZSBlbGVtZW50cy4gSW4gb3JkZXIg',
+ 'dG8gYWxpZ24gd2l0aCB0aGUKICAgIG51bGwtc2FmZSBjaGFuZ2VzIGluIHRoZSBgU2V0YCBpbnRl',
+ 'cmZhY2UsIGl0IHdpbGwgbm93IHJldHVybiBgZmFsc2VgCiAgICBpbnN0ZWFkLiBUaGUgc2FtZSBh',
+ 'cHBsaWVzIGZvciBgQ3NzQ2xhc3NTZXQudG9nZ2xlYC4KCiogICBgRXZlbnRTdHJlYW1TdWJzY3Jp',
+ 'cHRpb24uY2FuY2VsYCBtZXRob2QgdXNlZCB0byByZXR1cm4gYG51bGxgLCBidXQgc2luY2UKICAg',
+ 'IGBTdHJlYW1TdWJzY3JpcHRpb24uY2FuY2VsYCBoYXMgY2hhbmdlZCB0byBiZSBub24tbnVsbGFi',
+ 'bGUsIHRoaXMgbWV0aG9kCiAgICByZXR1cm5zIGFuIGVtcHR5IGBGdXR1cmVgIGluc3RlYWQuIER1',
+ 'ZSB0byBhbiBvcHRpbWl6YXRpb24gb24gYG51bGxgCiAgICBgRnV0dXJlYHMsIHRoaXMgbWV0aG9k',
+ 'IHVzZWQgdG8gY29tcGxldGUgc3luY2hyb25vdXNseSwgYnV0IG5vdyB0aGF0IHRoZQogICAgYEZ1',
+ 'dHVyZWAgaXMgZW1wdHkgaW5zdGVhZCwgaXQgY29tcGxldGVzIGFzeW5jaHJvbm91c2x5LCB0aGVy',
+ 'ZWZvcmUKICAgIHBvdGVudGlhbGx5IGludmFsaWRhdGluZyBjb2RlIHRoYXQgcmVsaWVkIG9uIHRo',
+ 'ZSBzeW5jaHJvbm91cyBzaWRlLWVmZmVjdC4KICAgIFRoaXMgY2hhbmdlIHdpbGwgb25seSBhZmZl',
+ 'Y3QgY29kZSB1c2luZyBzb3VuZCBudWxsLXNhZmV0eS4gU2VlIGlzc3VlCiAgICBbIzQxNjUzXVtd',
+ 'IGZvciBtb3JlIGRldGFpbHMuCgoqICAgTWV0aG9kcyBpbiBgQ29uc29sZWAgaGF2ZSBiZWVuIHVw',
+ 'ZGF0ZWQgdG8gYmV0dGVyIHJlZmxlY3QgdGhlIG1vZGVybiBDb25zb2xlCiAgICBzcGVjaWZpY2F0',
+ 'aW9uLiBQYXJ0aWN1bGFybHkgb2YgaW50ZXJlc3QgYXJlIGBkaXJgIGFuZCBgdGFibGVgIHdoaWNo',
+ 'IHRha2UgaW4KICAgIGV4dHJhIG9wdGlvbmFsIGFyZ3VtZW50cy4KClsjNDE2NTNdOiBodHRwczov',
+ 'L2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDE2NTMKCiMjIyMgYGRhcnQ6bWlycm9y',
+ 'c2AKCiogICAqKkJyZWFraW5nIENoYW5nZSoqIFsjNDI3MTRdW106IHdlYiBjb21waWxlcnMgKGRh',
+ 'cnQyanMgYW5kIEREQykgbm93IHByb2R1Y2UKICAgIGEgY29tcGlsZS10aW1lIGVycm9yIGlmIGBk',
+ 'YXJ0Om1pcnJvcnNgIGlzIGltcG9ydGVkLgoKICAgIE1vc3QgcHJvamVjdHMgc2hvdWxkIG5vdCBi',
+ 'ZSBhZmZlY3RlZC4gU2luY2UgMi4wLjAgdGhpcyBsaWJyYXJ5IHdhcwogICAgdW5zdXBwb3J0ZWQg',
+ 'YW5kIHByb2R1Y2VkIHJ1bnRpbWUgZXJyb3JzIG9uIGFsbCBpdHMgQVBJcy4gU2luY2UgdGhlbiBz',
+ 'ZXZlcmFsCiAgICB0b29scyBhbHJlYWR5IHJlamVjdCBjb2RlIHRoYXQgdXNlIGBkYXJ0Om1pcnJv',
+ 'cnNgIGluY2x1ZGluZyB3ZWJkZXYgYW5kCiAgICBmbHV0dGVyIHRvb2xzLCB3ZSBleHBlY3QgZmV3',
+ 'IHByb2plY3RzIHRvIHJ1biBpbnRvIHRoaXMgcHJvYmxlbS4KClsjNDI3MTRdOiBodHRwczovL2dp',
+ 'dGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDI3MTQKCiMjIyBUb29scwoKIyMjIyBkYXJ0',
+ 'Zm10CgoqIEFkZCBgLS1maXgtc2luZ2xlLWNhc2NhZGUtc3RhdGVtZW50c2AuCiogQ29ycmVjdGx5',
+ 'IGhhbmRsZSBgdmFyYCBpbiBgLS1maXgtZnVuY3Rpb24tdHlwZWRlZnNgLgoqIFByZXNlcnZlIGxl',
+ 'YWRpbmcgaW5kZW50YXRpb24gaW4gZml4ZWQgZG9jIGNvbW1lbnRzLgoqIFNwbGl0IG91dGVyIG5l',
+ 'c3RlZCBjb250cm9sIGZsb3cgZWxlbWVudHMuCiogQWx3YXlzIHBsYWNlIGEgYmxhbmsgbGluZSBh',
+ 'ZnRlciBzY3JpcHQgdGFncy4KKiBEb24ndCBhZGQgdW5uZWVkZWQgc3BsaXRzIG9uIGlmIGVsZW1l',
+ 'bnRzIG5lYXIgY29tbWVudHMuCiogSW5kZW50IGJsb2NrcyBpbiBpbml0aWFsaXplcnMgb2YgbXVs',
+ 'dGlwbGUtdmFyaWFibGUgZGVjbGFyYXRpb25zLgoqIFVwZGF0ZSB0aGUgbnVsbC1hd2FyZSBzdWJz',
+ 'Y3JpcHQgc3ludGF4IGZyb20gYD8uW11gIHRvIGA/W11gLgoKIyMjIyBBbmFseXplcgoKKiBTdGF0',
+ 'aWMgYW5hbHlzZXMgd2l0aCBhIHNldmVyaXR5IG9mICJlcnJvciIgY2FuIG5vIGxvbmdlciBiZSBp',
+ 'Z25vcmVkIHdpdGgKICBjb21tZW50cyAoYC8vIGlnbm9yZTogY29kZWAgYW5kIGAvLyBpZ25vcmVf',
+ 'Zm9yX2ZpbGU6IGNvZGVgKS4KCiMjIyMgTGludGVyCgpVcGRhdGVkIHRoZSBMaW50ZXIgdG8gYDAu',
+ 'MS4xMTdgLCB3aGljaCBpbmNsdWRlczoKCiogTmV3IGxpbnQ6IGBkb19ub3RfdXNlX2Vudmlyb25t',
+ 'ZW50YC4KKiBOZXcgbGludDogYGV4aGF1c3RpdmVfY2FzZXNgLgoqIE5ldyBsaW50OiBgbm9fZGVm',
+ 'YXVsdF9jYXNlc2AgKGV4cGVyaW1lbnRhbCkuCiogTmV3IGxpbnQ6IGBzaXplZF9ib3hfZm9yX3do',
+ 'aXRlc3BhY2VgLgoqIE5ldyBsaW50OiBgdXNlX2lzX2V2ZW5fcmF0aGVyX3RoYW5fbW9kdWxvYC4K',
+ 'KiBVcGRhdGVkIGBkaXJlY3RpdmVzX29yZGVyaW5nYCB0byByZW1vdmUgdGhpcmQgcGFydHkgcGFj',
+ 'a2FnZSBzcGVjaWFsLWNhc2luZy4KKiBVcGRhdGVkIGBwcmVmZXJfaXNfZW1wdHlgIHRvIHNwZWNp',
+ 'YWwtY2FzZSBhc3NlcnQgaW5pdGlhbGl6ZXJzIGFuZCBjb25zdAogIGNvbnRleHRzLgoqIFVwZGF0',
+ 'ZWQgYHByZWZlcl9taXhpbmAgdG8gYWxsb3cgImxlZ2FjeSIgU0RLIGFic3RyYWN0IGNsYXNzIG1p',
+ 'eGlucy4KKiBVcGRhdGVkIGBzaXplZF9ib3hfZm9yX3doaXRlc3BhY2VgIHRvIGFkZHJlc3MgZmFs',
+ 'c2UtcG9zaXRpdmVzLgoqIFVwZGF0ZWQgYHR5cGVfYW5ub3RhdGVfcHVibGljX2FwaXNgIHRvIGFs',
+ 'bG93IGluZmVycmVkIHR5cGVzIGluIGZpbmFsIGZpZWxkCiAgYXNzaWdubWVudHMuCiogVXBkYXRl',
+ 'ZCBgdW5uZWNlc3NhcnlfbGFtYmRhc2AgdG8gY2hlY2sgZm9yIHRlYXItb2ZmIGFzc2lnbmFiaWxp',
+ 'dHkuCiogVXBkYXRlZCBgdW5zYWZlX2h0bWxgIHRvIHVzZSBhIGBTZWN1cml0eUxpbnRDb2RlYCAo',
+ 'bWFraW5nIGl0IHVuLWlnbm9yYWJsZSkgYW5kCiAgdG8gaW5jbHVkZSBgV2luZG93Lm9wZW5gLCBg',
+ 'RWxlbWVudC5odG1sYCBhbmQgYERvY3VtZW50RnJhZ21lbnQuaHRtbGAgaW4gdW5zYWZlCiAgQVBJ',
+ 'IGNoZWNrcy4gQWxzbyBhZGRlZCBjaGVja3MgZm9yIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHMgb24g',
+ 'ZXh0ZW5zaW9ucy4KCiMjIyBEYXJ0IFZNCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKiBbIzQxMTAw',
+ 'XVtdOiBXaGVuIHByaW50aW5nIGEgc3RyaW5nIHVzaW5nIHRoZSBgcHJpbnRgCiAgICBmdW5jdGlv',
+ 'biwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gKHVzZWQgd2hlbiBub3Qgb3ZlcnJpZGRlbiBi',
+ 'eSB0aGUKICAgIGVtYmVkZGVyIG9yIHRoZSBjdXJyZW50IHpvbmUpIHdpbGwgcHJpbnQgYW55IHVu',
+ 'cGFpcmVkIHN1cnJvZ2F0ZXMgaW4gdGhlCiAgICBzdHJpbmcgYXMgcmVwbGFjZW1lbnQgY2hhcmFj',
+ 'dGVycyAoYFUrRkZGRGApLiBTaW1pbGFybHksIHRoZQogICAgYERhcnRfU3RyaW5nVG9VVEY4YCBm',
+ 'dW5jdGlvbiBpbiB0aGUgRGFydCBBUEkgd2lsbCBjb252ZXJ0IHVucGFpcmVkCiAgICBzdXJyb2dh',
+ 'dGVzIGludG8gcmVwbGFjZW1lbnQgY2hhcmFjdGVycy4KCiMjIyBQdWIKKiBgcHViIHJ1bmAgYW5k',
+ ];
+}
+
+List<String> _g7(String s) {
+ return [
+ s,
+ 'IGBwdWIgZ2xvYmFsIHJ1bmAgYWNjZXB0cyBhIGAtLWVuYWJsZS1leHBlcmltZW50YCBmbGFnIGVu',
+ 'YWJsaW5nCiAgZXhwZXJpbWVudHMgaW4gdGhlIERhcnQgVk0gKGFuZCBsYW5ndWFnZSkuCiogV2Fy',
+ 'biB3aGVuIHB1Ymxpc2hpbmcgdGhlIGZpcnN0IG51bGwtc2FmZSB2ZXJzaW9uIG9mIGEgcGFja2Fn',
+ 'ZS4KKiBgcHViIG91dGRhdGVkYDoKICAqIElmIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgYSBkZXBl',
+ 'bmRlbmN5IGlzIGEgcHJlcmVsZWFzZQogICAgdmVyc2lvbiwgdXNlIHByZXJlbGVhc2VzIGZvciBs',
+ 'YXRlc3QgaWYgdGhlcmUgaXMgbm8gbmV3ZXIgc3RhYmxlLgogICogRG9uJ3QgcmVxdWlyZSBhIGBw',
+ 'dWJzcGVjLmxvY2tgIGZpbGUuIFdoZW4gdGhlIGxvY2tmaWxlIGlzIG1pc3NpbmcsIHRoZQogICAg',
+ 'KipDdXJyZW50KiogY29sdW1uIGlzIGVtcHR5LgoqIGBwdWIgdXBncmFkZWA6IFNob3cgc3VtbWFy',
+ 'eSBjb3VudCBvZiBvdXRkYXRlZCBwYWNrYWdlcyBhZnRlciBydW5uaW5nLgogIEl0IHdpbGwgYWxz',
+ 'byBvbmx5IHNob3cgbmV3ZXIgcGFja2FnZXMgaWYgdGhleSBhcmUgbm90IHByZXJlbGVhc2VzIG9y',
+ 'CiAgdGhlIHBhY2thZ2UgaXMgYWxyZWFkeSBhIHByZXJlbGVhc2UuCiogUHVibGlzaGluZyBGbHV0',
+ 'dGVyIHBsdWdpbnMgdXNpbmcgdGhlIG9sZCBwbHVnaW4gZm9ybWF0IGlzIG5vIGxvbmdlciBhbGxv',
+ 'd2VkLgogIFBsdWdpbnMgdXNpbmcgdGhlIG9sZCBwbHVnaW4gZm9ybWF0IGNhbiBzdGlsbCBiZSBj',
+ 'b25zdW1lZC4KKiBgcHViIHJ1bmA6IEZpeCBwcmVjb21waWxhdGlvbiB3aXRoIHJlbGF0aXZlIGBQ',
+ 'VUJfQ0FDSEVgIHBhdGhzCiAgKFsjMjQ4Nl0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9w',
+ 'dWIvcHVsbC8yNDg2KSkuCiogUHJlc2VydmUgV2luZG93cyBsaW5lIGVuZGluZ3MgaW4gYHB1YnNw',
+ 'ZWMubG9ja2AgaWYgdGhleSBhcmUgYWxyZWFkeSB0aGVyZQogIChbIzI0ODldKGh0dHBzOi8vZ2l0',
+ 'aHViLmNvbS9kYXJ0LWxhbmcvcHViL3B1bGwvMjQ4OSkpLgoqIEJldHRlciB0ZXJtaW5hbCBjb2xv',
+ 'ci1kZXRlY3Rpb24uIFVzZSBjb2xvcnMgaW4gdGVybWluYWxzIG9uIFdpbmRvd3MuCiogRml4IGdp',
+ 'dCBmb2xkZXIgbmFtZXMgaW4gY2FjaGUsIGFsbG93aW5nIGZvciBzc2gtc3R5bGUgZ2l0CiAgZGVw',
+ 'ZW5kZW5jaWVzLgoqIEZpeDogQXZvaWQgcHJlY29tcGlsYXRpb24gb2YgZGVwZW5kZW5jaWVzIG9m',
+ 'IGdsb2JhbCBwYWNrYWdlcy4KCiMjIDIuOC40IC0gMjAyMC0wNi0wNAoKVGhpcyBpcyBhIHBhdGNo',
+ 'IHJlbGVhc2UgdGhhdCBmaXhlcyBwb3RlbnRpYWwgbWVtb3J5IGxlYWtzIGluIHRoZSBEYXJ0IGZy',
+ 'b250LWVuZAooaXNzdWVzIFsjNDIxMTFdW10gYW5kIFsjNDIxMTJdW10pLgoKWyM0MjExMV06IGh0',
+ 'dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80MjExMQpbIzQyMTEyXTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQyMTEyCgojIyAyLjguMyAtIDIw',
+ 'MjAtMDUtMjgKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRoYXQgZml4ZXMgdGhlIGZvbGxvd2lu',
+ 'ZyBpc3N1ZXM6CiogY3Jhc2hlcyBpbiBGbHV0dGVyIGFwcHMgKGlzc3VlIFtmbHV0dGVyL2ZsdXR0',
+ 'ZXIjNTczMThdW10pLgoqIGEgcmVncmVzc2lvbiBpbiBzdGFjayB0cmFjZXMgKGlzc3VlIFsjNDE5',
+ 'MDddW10pLgoqIHJlLWNhbm9uaWNhbGl6YXRpb24gb2YgY29uc3RhbnRzIHdpdGggdW5ib3hlZCBm',
+ 'aWVsZHMgKGlzc3VlCltmbHV0dGVyL2ZsdXR0ZXIjNTcxOTBdW10pLgoKW2ZsdXR0ZXIvZmx1dHRl',
+ 'ciM1NzMxOF06IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIvaXNzdWVzLzU3MzE4',
+ 'ClsjNDE5MDddOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvNDE5MDcK',
+ 'W2ZsdXR0ZXIvZmx1dHRlciM1NzE5MF06IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0',
+ 'ZXIvaXNzdWVzLzU3MTkwCgojIyAyLjguMiAtIDIwMjAtMDUtMTMKClRoaXMgaXMgYSBwYXRjaCBy',
+ 'ZWxlYXNlIHRoYXQgZml4ZXMgYW4gQU9UIGNvbXBpbGF0aW9uIGJ1ZyBpbiBnbG9iYWwKdHJhbnNm',
+ 'b3JtYXRpb25zIHdoaWNoIG1hbmlmZXN0cyBhcyBhIE5vU3VjaE1ldGhvZCBleGNlcHRpb24KKGlz',
+ 'c3VlIFtmbHV0dGVyL2ZsdXR0ZXIjNTY0NzldW10pLgoKW2ZsdXR0ZXIvZmx1dHRlciM1NjQ3OV06',
+ 'IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIvaXNzdWVzLzU2NDc5CgojIyAyLjgu',
+ 'MSAtIDIwMjAtMDUtMDYKCk11Y2ggb2YgdGhlIGNoYW5nZXMgaW4gdGhpcyByZWxlYXNlIGFyZSBp',
+ 'biBwcmVwYXJhdGlvbiBmb3Igbm9uLW51bGxhYmxlIHR5cGVzLAp3aGljaCB3aWxsIGFycml2ZSBp',
+ 'biBhIGZ1dHVyZSB2ZXJzaW9uLiBJbiBhbnRpY2lwYXRpb24gb2YgdGhhdCwgd2UgaGF2ZSBtYWRl',
+ 'IGEKbnVtYmVyIG9mIHNtYWxsIGJ1dCB0ZWNobmljYWxseSBicmVha2luZyBjaGFuZ2VzIHRvIHNl',
+ 'dmVyYWwgY29yZSBsaWJyYXJ5IEFQSXMgaW4Kb3JkZXIgdG8gbWFrZSB0aGVtIGVhc2llciB0byB1',
+ 'c2UgaW4gYSB3b3JsZCB3aXRoIG5vbi1udWxsYWJsZSB0eXBlcy4gQWxtb3N0IGFsbApleGlzdGlu',
+ 'ZyBEYXJ0IGNvZGUgd2lsbCBiZSB1bmFmZmVjdGVkIGJ5IHRoZXNlIGNoYW5nZXMsIGJ1dCBpZiB5',
+ 'b3Ugc2VlCnVuZXhwZWN0ZWQgZmFpbHVyZXMsIG5vdGUgdGhlIGJyZWFraW5nIGNoYW5nZXMgbGlz',
+ 'dGVkIGJlbG93LgoKIyMjIExhbmd1YWdlCgpUaGVyZSBhcmUgbm8gbmV3IGxhbmd1YWdlIGZlYXR1',
+ 'cmVzIGluIHRoaXMgcmVsZWFzZS4gVGhlcmUgYXJlIG9ubHkgdHdvCm1pbm9yIGJyZWFraW5nIGNo',
+ 'YW5nZXM6CgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNjc1XVtdOiBGaXhlZCBhbiBpbXBs',
+ 'ZW1lbnRhdGlvbiBidWcgd2hlcmUgbG9jYWwKICAgIHZhcmlhYmxlIGluZmVyZW5jZSB3b3VsZCBp',
+ 'bmNvcnJlY3RseSB1c2UgdGhlIHByb21vdGVkIHR5cGUgb2YgYSB0eXBlCiAgICB2YXJpYWJsZS4K',
+ 'CiogICAqKkJyZWFraW5nIGNoYW5nZSoqIFsjNDEzNjJdW106IERhcnQgMi4wLjAgbWFkZSB0aGUg',
+ 'Y2xhdXNlcyBgaW1wbGVtZW50cwogICAgRnVuY3Rpb25gLCBgZXh0ZW5kcyBGdW5jdGlvbmAsIG9y',
+ 'IGB3aXRoIEZ1bmN0aW9uYCBoYXZlIG5vIGVmZmVjdCAoc3BlYwogICAgc2VjdGlvbiAxOS42KS4g',
+ 'V2UgZml4ZWQgYW4gaW1wbGVtZW50YXRpb24gYnVnIHRoYXQgbWF5IGJlIHZpc2libGUgb24gc29t',
+ 'ZQogICAgcmFyZSBzY2VuYXJpb3MuCgpbIzQwNjc1XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQt',
+ 'bGFuZy9zZGsvaXNzdWVzLzQwNjc1ClsjNDEzNjJdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1s',
+ 'YW5nL3Nkay9pc3N1ZXMvNDEzNjIKCiMjIyBDb3JlIGxpYnJhcmllcwoKIyMjIyBgZGFydDphc3lu',
+ 'Y2AKCiogICAqKkJyZWFraW5nIGNoYW5nZSoqIFsjNDA2NzZdW106IENoYW5nZWQgdGhlIHJldHVy',
+ 'biB0eXBlIG9mCiAgICBgU3RyZWFtU3Vic2NyaXB0aW9uLmNhbmNlbCgpYCAgdG8gYEZ1dHVyZTx2',
+ 'b2lkPmAuIFByZXZpb3VzbHksIGl0IHdhcwogICAgZGVjbGFyZWQgdG8gcmV0dXJuIGBGdXR1cmVg',
+ 'IGFuZCB3YXMgYWxsb3dlZCB0byByZXR1cm4gYG51bGxgIGF0IHJ1bnRpbWUuCgoqICAgKipCcmVh',
+ 'a2luZyBjaGFuZ2UqKiBbIzQwNjgxXVtdOiBUaGUgYHJ1blpvbmVkKClgIGZ1bmN0aW9uIGlzIHNw',
+ 'bGl0IGludG8gdHdvCiAgICBmdW5jdGlvbnM6IGBydW5ab25lZCgpYCBhbmQgYHJ1blpvbmVkR3Vh',
+ 'cmRlZCgpYCwgd2hlcmUgdGhlIGxhdHRlciBoYXMgYQogICAgcmVxdWlyZWQgYG9uRXJyb3JgIHBh',
+ 'cmFtZXRlciwgYW5kIHRoZSBmb3JtZXIgaGFzIG5vbmUuIFRoaXMgcHJlcGFyZXMgdGhlCiAgICBm',
+ 'dW5jdGlvbnMgZm9yIG51bGwgc2FmZXR5IHdoZXJlIHRoZSB0d28gZnVuY3Rpb25zIHdpbGwgZGlm',
+ 'ZmVyIGluIHRoZQogICAgbnVsbGFiaWxpdHkgb2YgdGhlaXIgcmV0dXJuIHR5cGVzLgoKKiAgICoq',
+ 'QnJlYWtpbmcgY2hhbmdlKiogWyM0MDY4M11bXTogRXJyb3JzIHBhc3NlZCB0bwogICAgYENvbXBs',
+ 'ZXRlci5jb21wbGV0ZUVycm9yKClgLCBgU3RyZWFtLmFkZEVycm9yKClgLCBgRnV0dXJlLmVycm9y',
+ 'KClgLCBldGMuIGNhbgogICAgbm8gbG9uZ2VyIGJlIGBudWxsYC4gVGhlc2Ugb3BlcmF0aW9ucyBu',
+ 'b3cgKnN5bmNocm9ub3VzbHkqIHRocm93IGFuIGV4Y2VwdGlvbgogICAgaWYgcGFzc2VkIGEgYG51',
+ 'bGxgIGVycm9yLgoKKiAgIE1ha2Ugc3RhY2sgdHJhY2VzIG5vbi1udWxsIFsjNDAxMzBdW10uIFdo',
+ 'ZXJlIG1ldGhvZHMgbGlrZQogICAgYGNvbXBsZXRlci5jb21wbGV0ZUVycm9yKClgIGFsbG93IG9t',
+ 'aXR0aW5nIGEgc3RhY2sgdHJhY2UsIHRoZSBwbGF0Zm9ybSB3aWxsCiAgICBub3cgaW5zZXJ0IGEg',
+ 'ZGVmYXVsdCBzdGFjayB0cmFjZSByYXRoZXIgdGhhbiBwcm9wYWdhdGUgYSBgbnVsbGAgdmFsdWUu',
+ 'CgogICAgRXJyb3IgaGFuZGxpbmcgZnVuY3Rpb25zIG5lZWQgbm8gbG9uZ2VyIGJlIHByZXBhcmVk',
+ 'IGZvciBgbnVsbGAgc3RhY2sgdHJhY2VzLgoKWyM0MDY3Nl06IGh0dHBzOi8vZ2l0aHViLmNvbS9k',
+ 'YXJ0LWxhbmcvc2RrL2lzc3Vlcy80MDY3NgpbIzQwNjgxXTogaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzQwNjgxClsjNDA2ODNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay9pc3N1ZXMvNDA2ODMKWyM0MDEzMF06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy80MDEzMAoKIyMjIyBgZGFydDpjb3JlYAoKKiAgICoqQnJlYWtpbmcg',
+ 'Y2hhbmdlKiogWyM0MDY3NF1bXTogVGhyZWUgbWVtYmVycyBvbiBgUnVuZUl0ZXJhdG9yYCBubyBs',
+ 'b25nZXIKICAgIHJldHVybiBgbnVsbGAgd2hlbiBhY2Nlc3NlZCBiZWZvcmUgdGhlIGZpcnN0IGNh',
+ 'bGwgdG8gYG1vdmVOZXh0KClgLiBJbnN0ZWFkLAogICAgYGN1cnJlbnRgIGFuZCBgcmF3SW5kZXhg',
+ 'IHJldHVybiBgLTFgIGFuZCBgY3VycmVudEFzU3RyaW5nYCByZXR1cm5zIGFuIGVtcHR5CiAgICBz',
+ 'dHJpbmcuCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNjc4XVtdOiBUaGUgYFN0cmluZy5m',
+ 'cm9tRW52aXJvbm1lbnQoKWAgZGVmYXVsdCB2YWx1ZQogICAgZm9yIGBkZWZhdWx0VmFsdWVgIGlz',
+ 'IG5vdyBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBgbnVsbGAuIExpa2V3aXNlLCB0aGUKICAg',
+ 'IGRlZmF1bHQgdmFsdWUgZm9yIGBpbnQuZnJvbUVudmlyb25tZW50KClgJ3MgYGRlZmF1bHRWYWx1',
+ 'ZWAgcGFyYW1ldGVyIGlzCiAgICB6ZXJvLiBVbmRlciBudWxsIHNhZmV0eSwgYSBjb25zdHJ1Y3Rv',
+ 'ciBjYW5ub3QgcmV0dXJuIGBudWxsYCwgc28gdGhpcwogICAgcHJlcGFyZXMgdGhlc2UgQVBJcyBm',
+ 'b3IgdGhhdC4KCiogICBUaGUgY2xhc3MgYENhc3RFcnJvcmAgaXMgZGVwcmVjYXRlZCwgYW5kIGFs',
+ 'bCBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBjbGFzc2VzCiAgICBpbXBsZW1lbnRpbmcgYFR5cGVF',
+ 'cnJvcmAgb3IgYENhc3RFcnJvcmAgbm93IGltcGxlbWVudCBib3RoLiAgSW4gYSBmdXR1cmUKICAg',
+ 'IHJlbGVhc2UsIGBDYXN0RXJyb3JgIHdpbGwgYmUgcmVtb3ZlZC4gIFNlZSBpc3N1ZSBbNDA3NjNd',
+ 'W10gZm9yIGRldGFpbHMuCgoqICAgQWRkcyBgU3RhY2tUcmFjZS5lbXB0eWAgY29uc3RhbnQgd2hp',
+ 'Y2ggaXMgdGhlIHN0YWNrIHRyYWNlIHVzZWQgYXMgZGVmYXVsdAogICAgc3RhY2sgdHJhY2Ugd2hl',
+ 'biBubyBiZXR0ZXIgYWx0ZXJuYXRpdmUgaXMgYXZhaWxhYmxlLgoKKiAgIFRoZSBjbGFzcyBgVHlw',
+ ];
+}
+
+List<String> _g8(String s) {
+ return [
+ s,
+ 'ZUVycm9yYCBubyBsb25nZXIgZXh0ZW5kcyBgQXNzZXJ0aW9uRXJyb3JgLiBUaGlzIGFsc28gbWVh',
+ 'bnMKICAgIHRoYXQgaXQgbm8gbG9uZ2VyIGluaGVyaXRzIHRoZSBzcHVyaW91cyBgbWVzc2FnZWAg',
+ 'Z2V0dGVyIHdoaWNoIHdhcyBhZGRlZCB0bwogICAgYEFzc2VydGlvbkVycm9yYCB3aGVuIHRoZSBz',
+ 'ZWNvbmQgb3BlcmFuZCB0byBgYXNzZXJ0YCB3YXMgYWxsb3dlZC4gVGhlIHZhbHVlCiAgICBvZiB0',
+ 'aGF0IGdldHRlciBvbiBhIGBUeXBlRXJyb3JgIHdhcyB0aGUgc2FtZSBzdHJpbmcgYXMgcmV0dXJu',
+ 'ZWQgYnkKICAgIGB0b1N0cmluZygpYCwgc28gaXQgaXMgc3RpbGwgYXZhaWxhYmxlLgoKKiAgIGBB',
+ 'cmd1bWVudEVycm9yLmNoZWNrTm90TnVsbCgpYCBhbmQgdGhlIGBSYW5nZUVycm9yYCBzdGF0aWMg',
+ 'bWV0aG9kcwogICAgYGNoZWNrVmFsdWVJbkludGVydmFsKClgLCBgY2hlY2tWYWxpZEluZGV4KClg',
+ 'IGFuZCBgY2hlY2tOb3ROZWdhdGl2ZSgpYCBhbGwKICAgIHJldHVybiB0aGVpciBmaXJzdCBhcmd1',
+ 'bWVudCBvbiBzdWNjZXNzLiBUaGlzIG1ha2VzIHRoZXNlIGZ1bmN0aW9ucyBtb3JlCiAgICBjb252',
+ 'ZW5pZW50IHRvIHVzZSBpbi1saW5lIGluLCBmb3IgZXhhbXBsZSwgYD0+YCBmdW5jdGlvbiBib2Rp',
+ 'ZXMgb3IKICAgIGNvbnN0cnVjdG9yIGluaXRpYWxpemF0aW9uIGxpc3RzLgoKWyM0MDY3NF06IGh0',
+ 'dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80MDY3NApbIzQwNjc4XTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzQwNjc4Cls0MDc2M106IGh0dHBz',
+ 'Oi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy80MDc2MwoKIyMjIyBgZGFydDpkZXZl',
+ 'bG9wZXJgCgoqICAgVGhlIGNvbnN0cnVjdG9ycyBmb3IgYFRpbWVsaW5lVGFza2Agbm93IGFjY2Vw',
+ 'dCBhbiBvcHRpb25hbCBgZmlsdGVyS2V5YAogICAgcGFyYW1ldGVyLiBJZiBwcm92aWRlZCwgdGhl',
+ 'IGFyZ3VtZW50cyBmb3IgYWxsIGV2ZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlCiAgICB0YXNrIHdp',
+ 'bGwgY29udGFpbiBhbiBlbnRyeSBuYW1lZCBgZmlsdGVyS2V5YCwgc2V0IHRvIHRoZSB2YWx1ZSBv',
+ 'ZiB0aGUKICAgIGBmaWx0ZXJLZXlgIHBhcmFtZXRlciBwcm92aWRlZCBpbiB0aGUgY29uc3RydWN0',
+ 'b3IuIFRoaXMgd2lsbCBiZSB1c2VkIGJ5CiAgICB0b29saW5nIHRvIGFsbG93IGZvciBiZXR0ZXIg',
+ 'ZmlsdGVyaW5nIG9mIHRpbWVsaW5lIGV2ZW50cy4KCiMjIyMgYGRhcnQ6aHRtbGAKCiogICAqKkJy',
+ 'ZWFraW5nIENoYW5nZSoqIFsjMzk2MjddW106IENoYW5nZWQgdGhlIHJldHVybiB0eXBlIG9mIHNl',
+ 'dmVyYWwgSFRNTAogICAgbmF0aXZlIG1ldGhvZHMgaW52b2x2aW5nIGZ1dHVyZXMuIEluIHJldHVy',
+ 'biB0eXBlcyB0aGF0IG1hdGNoZWQKICAgIGBGdXR1cmU8TGlzdDxUPj5gLCBgVCB3YXNgIGNoYW5n',
+ 'ZWQgdG8gYGR5bmFtaWNgLiBUaGVzZSBtZXRob2RzIHdvdWxkIGhhdmUKICAgIHJlc3VsdGVkIGlu',
+ 'IGEgcnVudGltZSBlcnJvciBpZiB0aGV5IHdlcmUgdXNlZC4KCiogICAqKkJyZWFraW5nIENoYW5n',
+ 'ZSoqOiBgTm9kZS5pbnNlcnRBbGxCZWZvcmUoKWAgZXJyb25lb3VzbHkgaGFkIGEgcmV0dXJuIHR5',
+ 'cGUKICAgIG9mIGBOb2RlYCwgZXZlbiB0aG91Z2ggaXQgd2FzIG5vdCByZXR1cm5pbmcgYW55dGhp',
+ 'bmcuIFRoaXMgaGFzIGJlZW4KICAgIGNvcnJlY3RlZCB0byBgdm9pZGAuCgpbIzM5NjI3XTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzM5NjI3CgojIyMjIGBkYXJ0Omlv',
+ 'YAoKKiAgIENsYXNzIGBIdHRwUGFyc2VyYCB3aWxsIG5vIGxvbmdlciB0aHJvdyBhbiBleGNlcHRp',
+ 'b24gd2hlbiBhIEhUVFAgcmVzcG9uc2UKICAgIHN0YXR1cyBjb2RlIGlzIHdpdGhpbiBbMCwgOTk5',
+ 'XS4gQ3VzdG9taXplZCBzdGF0dXMgY29kZXMgaW4gdGhpcyByYW5nZSBhcmUKICAgIG5vdyB2YWxp',
+ 'ZC4KCiogICAqKkJyZWFraW5nIGNoYW5nZSoqIFsjMzM1MDFdW106IFRoZSBzaWduYXR1cmUgb2Yg',
+ 'YEh0dHBIZWFkZXJzYCBtZXRob2RzCiAgICBgYWRkKClgIGFuZCBgc2V0YCBoYXZlIGJlZW4gY2hh',
+ 'bmdlZCB0bzoKCiAgICBgYGBkYXJ0CiAgICB2b2lkIGFkZChTdHJpbmcgbmFtZSwgT2JqZWN0IHZh',
+ 'bHVlLCB7Ym9vbCBwcmVzZXJ2ZUhlYWRlckNhc2U6IGZhbHNlfSkKICAgIHZvaWQgc2V0KFN0cmlu',
+ 'ZyBuYW1lLCBPYmplY3QgdmFsdWUsIHtib29sIHByZXNlcnZlSGVhZGVyQ2FzZTogZmFsc2V9KQog',
+ 'ICAgYGBgCgogICAgU2V0dGluZyBgcHJlc2VydmVIZWFkZXJDYXNlYCB0byBgdHJ1ZWAgcHJlc2Vy',
+ 'dmVzIHRoZSBjYXNlIG9mIHRoZSBgbmFtZWAKICAgIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGNvbnZl',
+ 'cnRpbmcgaXQgdG8gbG93ZXJjYXNlLiBUaGUgYEh0dHBIZWFkZXIuZm9yRWFjaCgpYAogICAgbWV0',
+ 'aG9kIHByb3ZpZGVzIHRoZSBjdXJyZW50IGNhc2Ugb2YgZWFjaCBoZWFkZXIuCgogICAgVGhpcyBp',
+ 'cyBicmVha2luZyBvbmx5IGZvciBjbGFzc2VzIGV4dGVuZGluZyBvciBpbXBsZW1lbnRpbmcgYEh0',
+ 'dHBIZWFkZXJzYAogICAgYW5kIGhhdmluZyB0aGVpciBvd24gYGFkZGAgb3IgYHNldGAgbWV0aG9k',
+ 'cyB3aXRob3V0IHRoZSBgYm9vbAogICAgcHJlc2VydmVIZWFkZXJDYXNlYCBuYW1lZCBwYXJhbWV0',
+ 'ZXIuCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNzAyXVtdOiBUaGUgYFNvY2tldGAgY2xh',
+ 'c3Mgbm93IHRocm93cyBhCiAgICBgU29ja2V0RXhjZXB0aW9uYCBpZiB0aGUgc29ja2V0IGhhcyBi',
+ 'ZWVuIGV4cGxpY2l0bHkgZGVzdHJveWVkIG9yIHVwZ3JhZGVkIHRvCiAgICBhIHNlY3VyZSBzb2Nr',
+ 'ZXQgdXBvbiBzZXR0aW5nIG9yIGdldHRpbmcgc29ja2V0IG9wdGlvbnMuIFByZXZpb3VzbHksIHNl',
+ 'dHRpbmcKICAgIGEgc29ja2V0IG9wdGlvbiB3b3VsZCBiZSBpZ25vcmVkIGFuZCBnZXR0aW5nIGEg',
+ 'c29ja2V0IG9wdGlvbiB3b3VsZCByZXR1cm4KICAgIGBudWxsYC4KCiogICAqKkJyZWFraW5nIGNo',
+ 'YW5nZSoqIFsjNDA0ODNdW106IFRoZSBgUHJvY2Vzc2AgY2xhc3Mgbm93IHRocm93cyBhCiAgICBg',
+ 'U3RhdGVFcnJvcmAgaWYgdGhlIHByb2Nlc3MgaXMgZGV0YWNoZWQgKGBQcm9jZXNzU3RhcnRNb2Rl',
+ 'LmRldGFjaGVkYCBhbmQKICAgIGBQcm9jZXNzU3RhcnRNb2RlLmRldGFjaGVkV2l0aFN0ZGlvYCkg',
+ 'dXBvbiBhY2Nlc3NpbmcgdGhlIGBleGl0Q29kZWAgZ2V0dGVyLgogICAgSXQgbm93IGFsc28gdGhy',
+ 'b3dzIHdoZW4gbm90IGNvbm5lY3RlZCB0byB0aGUgY2hpbGQgcHJvY2VzcydzIHN0ZGlvCiAgICAo',
+ 'YFByb2Nlc3NTdGFydE1vZGUuZGV0YWNoZWRgIGFuZCBgUHJvY2Vzc1N0YXJ0TW9kZS5pbmhlcml0',
+ 'U3RkaW9gKSB1cG9uCiAgICBhY2Nlc3NpbmcgdGhlIGBzdGRpbmAsIGBzdGRvdXRgLCBhbmQgYHN0',
+ 'ZGVycmAgZ2V0dGVycy4gUHJldmlvdXNseSwgdGhlc2UKICAgIGdldHRlcnMgd291bGQgYWxsIHJl',
+ 'dHVybiBgbnVsbGAuCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNzA2XVtdOiBUaGUgZHVt',
+ 'bXkgb2JqZWN0IHJldHVybmVkIGlmCiAgICBgRmlsZVN0YXQuc3RhdCgpYCBvciBgRmlsZVN0YXQu',
+ 'c3RhdFN5bmMoKWAgZmFpbCBub3cgY29udGFpbnMgVW5peCBlcG9jaAogICAgdGltZXN0YW1wcyBp',
+ 'bnN0ZWFkIG9mIGBudWxsYCBmb3IgdGhlIGBhY2Nlc3NlZGAsIGBjaGFuZ2VkYCwgYW5kIGBtb2Rp',
+ 'ZmllZGAKICAgIGdldHRlcnMuCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzQwNzA5XVtdOiBU',
+ 'aGUgYEhlYWRlclZhbHVlYCBjbGFzcyBub3cgcGFyc2VzIG1vcmUKICAgIHN0cmljdGx5IGluIHR3',
+ 'byBpbnZhbGlkIGVkZ2UgY2FzZXMuIFRoaXMgaXMgdGhlIGNsYXNzIHVzZWQgdG8gcGFyc2UgdGhl',
+ 'CiAgICBzZW1pY29sb24gZGVsaW1pdGVkIHBhcmFtZXRlcnMgdXNlZCBpbiB0aGUgYEFjY2VwdGAs',
+ 'IGBBdXRob3JpemF0aW9uYCwKICAgIGBDb250ZW50LVR5cGVgLCBhbmQgb3RoZXIgc3VjaCBIVFRQ',
+ 'IGhlYWRlcnMuCgogICAgVGhlIGVtcHR5IHBhcmFtZXRlciB2YWx1ZSB3aXRob3V0IGRvdWJsZSBx',
+ 'dW90ZXMgKHdoaWNoIGlzIG5vdCBhbGxvd2VkIGJ5IHRoZQogICAgc3RhbmRhcmRzKSBpcyBub3cg',
+ 'cGFyc2VkIGFzIHRoZSBlbXB0eSBzdHJpbmcgcmF0aGVyIHRoYW4gYG51bGxgLiBFLmcuCiAgICBg',
+ 'SGVhZGVyVmFsdWUucGFyc2UoInY7YT0iKS5wYXJhbWV0ZXJzYCBub3cgZ2l2ZXMgYHsiYSI6ICIi',
+ 'fWAgcmF0aGVyIHRoYW4KICAgIGB7ImEiOiBudWxsfWAuCgogICAgSW52YWxpZCBpbnB1dHMgd2l0',
+ 'aCB1bmJhbGFuY2VkIGRvdWJsZSBxdW90ZXMgYXJlIG5vdyByZWplY3RlZC4gRS5nLgogICAgYEhl',
+ 'YWRlclZhbHVlLnBhcnNlKCd2O2E9ImInKS5wYXJhbWV0ZXJzYCB3aWxsIG5vdyB0aHJvdyBhIGBI',
+ 'dHRwRXhjZXB0aW9uYAogICAgaW5zdGVhZCBvZiBnaXZpbmcgYHsiYSI6ICJiIn1gLgoKKiAgIFRo',
+ 'ZSBgSGVhZGVyVmFsdWUudG9TdHJpbmcoKWAgbWV0aG9kIG5vdyBzdXBwb3J0cyBwYXJhbWV0ZXJz',
+ 'IHdpdGggYG51bGxgCiAgICB2YWx1ZXMgYnkgb21pdHRpbmcgdGhlIHZhbHVlLiBgSGVhZGVyVmFs',
+ 'dWUoInYiLCB7ImEiOiBudWxsLCAiYiI6CiAgICAiYyJ9KS50b1N0cmluZygpYCBub3cgZ2l2ZXMg',
+ 'YHY7IGE7IGI9Y2AuIFRoaXMgYmVoYXZpb3IgY2FuIGJlIHVzZWQgdG8KICAgIGltcGxlbWVudCBz',
+ 'b21lIGZlYXR1cmVzIGluIHRoZSBgQWNjZXB0YCBhbmQgYFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9u',
+ 'c2AKICAgIGhlYWRlcnMuCgogICAgTGlrZXdpc2UgdGhlIGVtcHR5IHZhbHVlIGFuZCB2YWx1ZXMg',
+ 'dXNpbmcgY2hhcmFjdGVycyBvdXRzaWRlIG9mIFtSRkMgNzIzMAogICAgdG9rZW5zXVtdIGFyZSBu',
+ 'b3cgY29ycmVjdGx5IGltcGxlbWVudGVkIGJ5IGRvdWJsZSBxdW90aW5nIHN1Y2ggdmFsdWVzIHdp',
+ 'dGgKICAgIGVzY2FwZSBzZXF1ZW5jZXMuIEZvciBleGFtcGxlOgoKICAgIGBgYGRhcnQKICAgIEhl',
+ 'YWRlclZhbHVlKCJ2IiwKICAgICAgICB7ImEiOiAiQSIsICJiIjogIihCKSIsICJjIjogIiIsICJk',
+ 'IjogIsO4IiwgImUiOiAiXFxcIiJ9KS50b1N0cmluZygpCiAgICBgYGAKCiAgICBHaXZlczogYHY7',
+ 'YT1BO2I9IihCKSI7Yz0iIjtkPSLDuCI7ZT0iXFxcIiJgLgoKKiAgIFtVbml4IGRvbWFpbiBzb2Nr',
+ 'ZXRzXVtdIGFyZSBub3cgc3VwcG9ydGVkIG9uIExpbnV4LCBBbmRyb2lkIGFuZCBNYWNPUywgd2hp',
+ 'Y2gKICAgIGNhbiBiZSB1c2VkIGJ5IHBhc3NpbmcgYSBgSW50ZXJuZXRBZGRyZXNzYCBvZiBgSW50',
+ 'ZXJuZXRBZGRyZXNzVHlwZS5Vbml4YAogICAgaW50byB0aGUgYGNvbm5lY3QoKWAsIGBzdGFydENv',
+ 'bm5lY3QoKWAgYW5kIGBiaW5kKClgIG1ldGhvZHMuIFRoZSBgcG9ydGAKICAgIGFyZ3VtZW50IGlu',
+ 'IHRob3NlIG1ldGhvZHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgYHBvcnRgIGdldHRlciBhbHdheXMg',
+ 'cmV0dXJucwogICAgMCBmb3IgVW5peCBkb21haW4gc29ja2V0cy4KCiogICBDbGFzcyBgSW50ZXJu',
+ 'ZXRBZGRyZXNzVHlwZWAgZ2FpbnMgb25lIG1vcmUgb3B0aW9uIGBVbml4YCwgd2hpY2ggcmVwcmVz',
+ 'ZW50cyBhCiAgICBVbml4IGRvbWFpbiBhZGRyZXNzLgoKKiAgIENsYXNzIGBJbnRlcm5ldEFkZHJl',
+ 'c3NgOgoKICAgICogICBgSW50ZXJuZXRBZGRyZXNzYCBjb25zdHJ1Y3RvciBnYWlucyBhbiBvcHRp',
+ 'b25hbCBgdHlwZWAgcGFyYW1ldGVyLiBUbwogICAgICAgIGNyZWF0ZSBhIFVuaXggZG9tYWluIGFk',
+ 'ZHJlc3MsIGB0eXBlYCBpcyBzZXQgdG8KICAgICAgICBgSW50ZXJuZXRBZGRyZXNzVHlwZS5Vbml4',
+ ];
+}
+
+List<String> _g9(String s) {
+ return [
+ s,
+ 'YCBhbmQgYGFkZHJlc3NgIGlzIGEgZmlsZSBwYXRoLgoKICAgICogICBgSW50ZXJuZXRBZGRyZXNz',
+ 'YCBnYWlucyBhIG5ldyBjb25zdHJ1Y3RvciBgZnJvbVJhd0FkZHJlc3MoKWAgdGhhdCB0YWtlcwog',
+ 'ICAgICAgIGFuIGFkZHJlc3MgaW4gYnl0ZSBmb3JtYXQgZm9yIEludGVybmV0IGFkZHJlc3NlcyBv',
+ 'ciByYXcgZmlsZSBwYXRoIGZvcgogICAgICAgIFVuaXggZG9tYWluIGFkZHJlc3Nlcy4KCiogICAq',
+ 'KkJyZWFraW5nIGNoYW5nZSoqIFsjNDA2ODFdW106IFRoZSBzdGF0aWMgbWV0aG9kcyBgcnVuWm9u',
+ 'ZWQoKWAgYW5kCiAgICBgcnVuV2l0aEh0dHBPdmVycmlkZXMoKWAgb24gYEh0dHBPdmVycmlkZXNg',
+ 'IG5vIGxvbmdlciBhY2NlcHQKICAgIGB6b25lU3BlY2lmaWNhdGlvbmAgYW5kIGBvbkVycm9yYCBw',
+ 'YXJhbWV0ZXJzLiBVc2UgdGhlIGBydW5ab25lZCgpYCBvcgogICAgYHJ1blpvbmVkR3VhcmRlZCgp',
+ 'YCBmdW5jdGlvbnMgZnJvbSBgZGFydDphc3luY2AgZGlyZWN0bHkgaWYgbmVlZGluZyB0bwogICAg',
+ 'c3BlY2lmeSB0aG9zZS4KCiogICBDbGFzcyBgSHR0cENsaWVudGAgYW5kIGBIdHRwU2VydmVyYCwg',
+ 'd2hlbiByZWNlaXZpbmcgYEh0dHBSZXF1ZXN0YCBvcgogICAgYEh0dHBDbGllbnRSZXNwb25zZWAs',
+ 'IHdpbGwgbm93IHB1dCBhIDhLIHNpemUgbGltaXQgb24gaXRzIGhlYWRlciBmaWVsZHMgYW5kCiAg',
+ 'ICB2YWx1ZXMuCgpbIzMzNTAxXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNz',
+ 'dWVzLzMzNTAxClsjNDA3MDJdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1',
+ 'ZXMvNDA3MDIKWyM0MDQ4M106IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vl',
+ 'cy80MDQ4MwpbIzQwNzA2XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVz',
+ 'LzQwNzA2ClsjNDA3MDldOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMv',
+ 'NDA3MDkKW1JGQyA3MjMwIHRva2Vuc106IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3',
+ 'MjMwI3NlY3Rpb24tMy4yLjYKW1VuaXggZG9tYWluIHNvY2tldHNdOiBodHRwczovL2VuLndpa2lw',
+ 'ZWRpYS5vcmcvd2lraS9Vbml4X2RvbWFpbl9zb2NrZXQKCiMjIyMgYGRhcnQ6bWlycm9yc2AKCiog',
+ 'ICBBZGRlZCBgTWlycm9yU3lzdGVtLm5ldmVyVHlwZWAuCgojIyMgRGFydCBWTQoKKiAgIEFkZGVk',
+ 'IGBEYXJ0X1R5cGVEeW5hbWljYCwgYERhcnRfVHlwZVZvaWRgIGFuZCBgRGFydF9UeXBlTmV2ZXJg',
+ 'LiBUeXBlCiAgICBgZHluYW1pY2AgY2FuIG5vIGxvbmdlciBieSByZWFjaGVkIHVzaW5nIGBEYXJ0',
+ 'X0dldFR5cGUoZGFydDpjb3JlLCBkeW5hbWljKWAuCgoqICAgQWRkZWQgdGhlIGZvbGxvd2luZyBt',
+ 'ZXRob2RzIHRvIHRoZSBWTSBlbWJlZGRpbmcgQVBJOgoKICAgICogYERhcnRfR2V0Tm9uTnVsbGFi',
+ 'bGVUeXBlKClgCiAgICAqIGBEYXJ0X0dldE51bGxhYmxlVHlwZSgpYAogICAgKiBgRGFydF9UeXBl',
+ 'VG9Ob25OdWxsYWJsZSgpYAogICAgKiBgRGFydF9UeXBlVG9OdWxsYWJsZSgpYAogICAgKiBgRGFy',
+ 'dF9Jc0xlZ2FjeVR5cGUoKWAKICAgICogYERhcnRfSXNOb25OdWxsYWJsZVR5cGUoKWAKICAgICog',
+ 'YERhcnRfSXNOdWxsYWJsZVR5cGUoKWAKCiMjIyBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSAo',
+ 'YGRhcnQ6ZmZpYCkKCiogICAqKkJyZWFraW5nIENoYW5nZSoqOiBDaGFuZ2VkIGBQb2ludGVyLmFz',
+ 'RnVuY3Rpb24oKWAgYW5kCiAgICBgRHluYW1pY0xpYnJhcnkubG9va3VwRnVuY3Rpb24oKWAgdG8g',
+ 'ZXh0ZW5zaW9uIG1ldGhvZHMuIEludm9raW5nIHRoZW0KICAgIGR5bmFtaWNhbGx5IHByZXZpb3Vz',
+ 'bHkgYWxyZWFkeSB0aHJldyBhbiBleGNlcHRpb24sIHNvIHRoZSBydW50aW1lIGJlaGF2aW9yCiAg',
+ 'ICBzdGF5cyB0aGUgc2FtZS4gSG93ZXZlciwgdGhlIGV4dGVuc2lvbiBtZXRob2RzIGFyZSBvbmx5',
+ 'IHZpc2libGUgaWYKICAgIGBkYXJ0OmZmaWAgaXMgaW1wb3J0ZWQgZGlyZWN0bHkuIFRoaXMgYnJl',
+ 'YWtzIGNvZGUgd2hlcmUgYGRhcnQ6ZmZpYCBpcyBub3QKICAgIGRpcmVjdGx5IGltcG9ydGVkLiBU',
+ 'byBmaXgsIGFkZDoKCiAgICBgYGBkYXJ0CiAgICBpbXBvcnQgJ2RhcnQ6ZmZpJzsKICAgIGBgYAoK',
+ 'IyMjIFRvb2xzCgojIyMjIERhcnQgRGV2IENvbXBpbGVyIChEREMpCgpXZSBmaXhlZCBzZXZlcmFs',
+ 'IGluY29uc2lzdGVuY2llcyBiZXR3ZWVuIEREQyBhbmQgRGFydDJKUyBzbyB0aGF0IHVzZXJzIGxl',
+ 'c3MKZnJlcXVlbnRseSBlbmNvdW50ZXIgY29kZSB0aGF0IGlzIGFjY2VwdGVkIGJ5IG9uZSBjb21w',
+ 'aWxlciBidXQgdGhlbiBmYWlscyBpbiB0aGUKb3RoZXIuCgoqICAgKipCcmVha2luZyBDaGFuZ2Uq',
+ 'KjogRGVsZXRlZCB0aGUgbGVnYWN5IChhbmFseXplciBiYXNlZCkgdmVyc2lvbiBvZiBEREMuIEZv',
+ 'cgogICAgYWRkaXRpb25hbCBkZXRhaWxzIHNlZSB0aGUgW2Fubm91bmNlbWVudF1bZGRjXS4KCiAg',
+ 'ICAqICAgVGhlIGAtLWtlcm5lbGAgb3B0aW9uIGlzIG5vdyBpZ25vcmVkIGFuZCBkZWZhdWx0cyB0',
+ 'byB0cnVlLiBUaGVyZSBpcyBubwogICAgICAgIGxvbmdlciBhbnkgd2F5IHRvIGludm9rZSB0aGUg',
+ 'bGVnYWN5IChhbmFseXplciBiYXNlZCkgdmVyc2lvbiBvZiBEREMuCgogICAgKiAgIENvbW1hbmQg',
+ 'bGluZSBhcmd1bWVudHMgdGhhdCB3ZXJlIG9ubHkgdXNlZCBmb3IgdGhlIGxlZ2FjeSBEREMgaGF2',
+ 'ZSBiZWVuCiAgICAgICAgcmVtb3ZlZC4KCiAgICAqICAgVGhlIHByZS1jb21waWxlZCBgZGFydF9z',
+ 'ZGsuanNgIGFydGlmYWN0cyBnZW5lcmF0ZWQgYnkgbGVnYWN5IEREQyBoYXZlCiAgICAgICAgYmVl',
+ 'biBkZWxldGVkIGZyb20gYGRhcnQtc2RrL2xpYi9kZXZfY29tcGlsZXJgIGluIGZhdm9yIG9mIHRo',
+ 'ZSB2ZXJzaW9ucwogICAgICAgIGxvY2F0ZWQgYXQgYGRhcnQtc2RrL2xpYi9kZXZfY29tcGlsZXIv',
+ 'a2VybmVsYC4KCiogICAqKkJyZWFraW5nIENoYW5nZSoqOiBGdW5jdGlvbnMgcGFzc2VkIHRvIEph',
+ 'dmFTY3JpcHQgdXNpbmcgdGhlIHJlY29tbWVuZGVkCiAgICBgcGFja2FnZTpqc2AgaW50ZXJvcCBz',
+ 'cGVjaWZpY2F0aW9uIG11c3Qgbm93IGJlIHdyYXBwZWQgd2l0aCBhIGNhbGwgdG8KICAgIGBhbGxv',
+ 'd0ludGVyb3BgLiBUaGlzIGJlaGF2aW9yIHdhcyBhbHdheXMgZW5mb3JjZWQgYnkgRGFydDJKUywg',
+ 'YnV0IHdhcyBub3QKICAgIGVuZm9yY2VkIGNvbnNpc3RlbnRseSBieSBEREMuIEl0IGlzIG5vdyBl',
+ 'bmZvcmNlZCBieSBib3RoLgoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKio6IENvbnN0cnVjdG9ycyBp',
+ 'biBgQEpTKClgIGNsYXNzZXMgbXVzdCBiZSBtYXJrZWQgd2l0aAogICAgYGV4dGVybmFsYC4gUHJl',
+ 'dmlvdXNseSB0aGUgYGV4dGVybmFsYCBjb3VsZCBiZSBvbWl0dGVkIGluIHNvbWUgY2FzZXMgd2l0',
+ 'aAogICAgRERDIGJ1dCBkb2luZyBzbyB3b3VsZCBjYXVzZSBpbmNvcnJlY3QgYmVoYXZpb3Igd2l0',
+ 'aCBEYXJ0MkpTLgoKKiAgIEpTIGludGVyb3AgY2xhc3NlcyB3aXRoIGFuIGluZGV4IG9wZXJhdG9y',
+ 'IGFyZSBub3cgc3RhdGljIGVycm9ycy4KCiogICBBbGwgcmVtYWluaW5nIHN1cHBvcnQgZnJvbSB0',
+ 'aGUgYGRhcnQ6bWlycm9yc2AgbGlicmFyeSBoYXMgYmVlbiByZW1vdmVkLiBVc2UKICAgIG9mIHRo',
+ 'aXMgbGlicmFyeSBvbiB0aGUgd2ViIGhhcyBiZWVuIHVuc3VwcG9ydGVkIGFuZCBwcmV2ZW50ZWQg',
+ 'YnkgdGhlIERhcnQKICAgIGJ1aWxkIHN5c3RlbXMgc2luY2UgRGFydCB2Mi4wLjAuIEFsbCBrbm93',
+ 'biBleGNlcHRpb24gY2FzZXMgaGF2ZSBiZWVuIGNsZWFuZWQKICAgIHVwLiBUaGlzIGNoYW5nZSBt',
+ 'YWtlcyBEREMgYW5kIERhcnQySlMgbm93IGJlaGF2ZSBjb25zaXN0ZW50bHkuCgogICAgVGhlIGxp',
+ 'YnJhcnkgY2FuIHN0aWxsIGJlIGltcG9ydGVkIG9uIHdlYiBhcHBzLCBidXQgYWxsIEFQSXMgdGhy',
+ 'b3cuIEluIGEKICAgIGZ1dHVyZSBicmVha2luZyBjaGFuZ2UgcmVsZWFzZSwgaW1wb3J0cyB0byB0',
+ 'aGlzIGxpYnJhcnkgd2lsbCBsaWtlbHkgYmVjb21lIGEKICAgIGNvbXBpbGUtdGltZSBlcnJvci4K',
+ 'CltkZGNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzg5OTQKCiMj',
+ 'IyMgRGFydDJKUwoKQSBuZXcgcmVwcmVzZW50YXRpb24gb2YgcnVudGltZSB0eXBlcyBpcyBlbmFi',
+ 'bGVkIGJ5IGRlZmF1bHQuCgpUaGlzIGNoYW5nZSBpcyBwYXJ0IG9mIGEgbG9uZyB0ZXJtIGdvYWwg',
+ 'b2YgbWFraW5nIHJ1bnRpbWUgY2hlY2tzIGNoZWFwZXIgYW5kCm1vcmUgZmxleGlibGUgZm9yIHVw',
+ 'Y29taW5nIGNoYW5nZXMgaW4gdGhlIGxhbmd1YWdlLiBUaGUgbmV3IHJlcHJlc2VudGF0aW9uCmRp',
+ 'c2VudGFuZ2xlcyBob3cgdHlwZXMgYW5kIGNsYXNzZXMgYXJlIHJlcHJlc2VudGVkIGFuZCBtYWtl',
+ 'cyB0eXBlcyBmaXJzdC1jbGFzcwp0byB0aGUgY29tcGlsZXIuIFRoaXMgbWFrZXMgaXQgcG9zc2li',
+ 'bGUgdG8gZG8gY2VydGFpbiBraW5kIG9mIG9wdGltaXphdGlvbnMgb24KdHlwZSBjaGVja3MgdGhh',
+ 'dCB3ZXJlIG5vdCBwb3NzaWJsZSBiZWZvcmUgYW5kIHdpbGwgZW5hYmxlIHVzIHRvIG1vZGVsCm5v',
+ 'bi1udWxsYWJsZSB0eXBlcyBpbiB0aGUgbmVhciBmdXR1cmUuCgpUaGlzIGNoYW5nZSBzaG91bGQg',
+ 'bm90IGFmZmVjdCB0aGUgc2VtYW50aWNzIG9mIHlvdXIgYXBwbGljYXRpb24sIGJ1dCBpdCBoYXMg',
+ 'c29tZQpyZWxhdGl2ZWx5IHNtYWxsIHZpc2libGUgZWZmZWN0cyB0aGF0IHdlIHdhbnQgdG8gaGln',
+ 'aGxpZ2h0OgoKKiAgIFR5cGVzIGFyZSBub3cgY2Fub25pY2FsaXplZCwgdGhpcyBmaXhlcyBhIGxv',
+ 'bmcgc3RhbmRpbmcgYnVnIHRoYXQgVHlwZXMgY291bGQKICAgIG5vdCBiZSB1c2VkIGluIHN3aXRj',
+ 'aCBjYXNlcyAoaXNzdWUgWzE3MjA3XVtdKS4KCiogICBDb2RlLXNpemUgY2hhbmdlcyBtYXkgYmUg',
+ 'dmlzaWJsZSwgYnV0IHRoZSBkaWZmZXJlbmNlIGlzIHNtYWxsIG92ZXJhbGwuIEl0IGlzCiAgICBt',
+ 'b3JlIHZpc2libGUgb24gc21hbGxlciBhcHBzIGJlY2F1c2UgdGhlIG5ldyBpbXBsZW1lbnRhdGlv',
+ 'biBpbmNsdWRlcyBtb3JlCiAgICBoZWxwZXIgbWV0aG9kcy4gT24gbGFyZ2UgYXBwcyB3ZSBoYXZl',
+ 'IGV2ZW4gc2VlbiBhbiBvdmVyYWxsIGNvZGUtc2l6ZQogICAgcmVkdWN0aW9uLgoKKiAgIENlcnRh',
+ 'aW4gY2hlY2tzIGFyZSBhIGxvdCBmYXN0ZXIuICBUaGlzIGlzIGxlc3Mgbm90aWNlYWJsZSBpZiB5',
+ 'b3UgYXJlCiAgICBjb21waWxpbmcgYXBwcyB3aXRoIGAtTzNgIHdoZXJlIGNoZWNrcyBhcmUgb21p',
+ 'dHRlZCBhbHRvZ2V0aGVyLiBFdmVuIHdpdGgKICAgIGAtTzNgLCB0aGUgcGVyZm9ybWFuY2Ugb2Yg',
+ 'c29tZSBgaXNgIGNoZWNrcyB1c2VkIGJ5IHlvdXIgYXBwIG1heSBpbXByb3ZlLgoKKiAgIFdoZW4g',
+ 'dXNpbmcgYC1PM2AgYW5kIGAtTzRgIGluY29ycmVjdCB0eXBlIGFubm90YXRpb25zIGNvdWxkIHN1',
+ 'cmZhY2UgYXMKICAgIGVycm9ycy4gVGhlIG9sZCB0eXBlIHJlcHJlc2VudGF0aW9uIHdhcyBhY2Np',
+ 'ZGVudGFsbHkgbGVuaWVudCBvbiBzb21lIGludmFsaWQKICAgIHR5cGUgYW5ub3RhdGlvbnMuIFdl',
+ 'IGhhdmUgb25seSBlbmNvdW50ZXJlZCB0aGlzIGlzc3VlIG9uIHByb2dyYW1zIHRoYXQgd2VyZQog',
+ 'ICAgbm90IHRlc3RlZCBwcm9wZXJseSBhdCB0aGUganMtaW50ZXJvcCBwcm9ncmFtIGJvdW5kYXJ5',
+ 'LgoKKiAgIGBUeXBlLnRvU3RyaW5nKClgIGhhcyBhIHNtYWxsIGNoYW5nZSB0aGF0IGlzIHJhcmVs',
+ 'eSB2aXNpYmxlLiBGb3IgYSBsb25nCiAgICB0aW1lLCBEYXJ0MkpTIGhhcyBoYWQgc3VwcG9ydCB0',
+ ];
+}
+
+List<String> _g10(String s) {
+ return [
+ s,
+ 'byBlcmFzZSB1bnVzZWQgdHlwZSB2YXJpYWJsZXMuIFRvZGF5LCB3aGVuCiAgICBEYXJ0MkpTIGlz',
+ 'IGdpdmVuIGAtLWxheC1ydW50aW1lLXR5cGUtdG8tc3RyaW5nYCAoY3VycmVudGx5IGluY2x1ZGVk',
+ 'IGluCiAgICBgLU8yYCwgYC1PM2AsIGFuZCBgLU80YCkgYW5kIGl0IGRlY2lkZXMgdG8gZXJhc2Ug',
+ 'dGhlIHR5cGUgdmFyaWFibGUgb2YgYQogICAgY2xhc3MgYEZvbzxUPmAsIHRoZW4gaXQgY29tcGls',
+ 'ZXMgZXhwcmVzc2lvbnMgbGlrZQogICAgYGZvby5ydW50aW1lVHlwZS50b1N0cmluZygpYCB0byBw',
+ 'cmludCBgRm9vYC4gV2l0aCB0aGUgbmV3IHJlcHJlc2VudGF0aW9uLAogICAgdGhpcyB3aWxsIHNo',
+ 'b3cgYEZvbzxlcmFzZWQ+YCBpbnN0ZWFkLiBUaGlzIGNoYW5nZSBtYXkgYmUgdmlzaWJsZSBpbiBl',
+ 'cnJvcgogICAgbWVzc2FnZXMgcHJvZHVjZWQgYnkgdHlwZSBjaGVja3MgaW52b2x2aW5nIGVyYXNl',
+ 'ZCB0eXBlcy4KCkJlY2F1c2UgdHlwZXMgYW5kIGNsYXNzZXMgYXJlIHJlcHJlc2VudGVkIHNlcGFy',
+ 'YXRlbHksIHdlIHdpbGwgbGlrZWx5IHJlZXZhbHVhdGUKcmVzdHJpY3Rpb25zIG9mIGRlZmVycmVk',
+ 'IGxpYnJhcmllcyBpbiB0aGUgbmVhciBmdXR1cmUuIEZvciBleGFtcGxlLCB3ZSBjb3VsZApzdXBw',
+ 'b3J0IHJlZmVycmluZyB0byBkZWZlcnJlZCB0eXBlcyBiZWNhdXNlIHR5cGVzIGNhbiBiZSBkb3du',
+ 'bG9hZGVkIHdoaWxlCmNsYXNzZXMgYXJlIG5vdC4KCkluIHRoZSB1bmxpa2VseSBjYXNlIHlvdSBy',
+ 'dW4gaW50byBhbnkgaXNzdWVzLCBwbGVhc2UgZmlsZSBhIGJ1ZyBzbyB3ZSBjYW4KaW52ZXN0aWdh',
+ 'dGUuIFlvdSBjYW4gdGVtcG9yYXJpbHkgZm9yY2UgdGhlIG9sZCB0eXBlIHJlcHJlc2VudGF0aW9u',
+ 'IGJ5IHBhc3NpbmcKYC0tdXNlLW9sZC1ydGlgIHRvIERhcnQySlMgaWYgbmVjZXNzYXJ5LCBidXQg',
+ 'b3VyIGdvYWwgaXMgdG8gZGVsZXRlIHRoZSBvbGQgdHlwZQpyZXByZXNlbnRhdGlvbiBzb29uLgoK',
+ 'SW4gYWRkaXRpb24sIHdlIGZpeGVkIHNvbWUgaW5jb25zaXN0ZW5jaWVzIGJldHdlZW4gRGFydDJK',
+ 'UyBhbmQgRERDOgoKKiAgIEpTIGludGVyb3AgY2xhc3NlcyB3aXRoIGFuIGluZGV4IG9wZXJhdG9y',
+ 'IGFyZSBub3cgc3RhdGljIGVycm9ycyBpbnN0ZWFkIG9mCiAgICBjYXVzaW5nIGludmFsaWQgY29k',
+ 'ZSBpbiBEYXJ0MkpTLgoKKiAgICoqQnJlYWtpbmcgQ2hhbmdlKio6IFRoZSBzdWJ0eXBpbmcgcnVs',
+ 'ZSBmb3IgZ2VuZXJpYyBmdW5jdGlvbnMgaXMgbm93IG1vcmUKICAgIGZvcmdpdmluZy4gQ29ycmVz',
+ 'cG9uZGluZyB0eXBlIHBhcmFtZXRlciBib3VuZHMgbm93IG9ubHkgbmVlZCB0byBiZSBtdXR1YWwK',
+ 'ICAgIHN1YnR5cGVzIHJhdGhlciB0aGFuIHN0cnVjdHVyYWxseSBlcXVhbCB1cCB0byByZW5hbWlu',
+ 'ZyBvZiBib3VuZCB0eXBlCiAgICB2YXJpYWJsZXMgYW5kIGVxdWF0aW5nIGFsbCB0b3AgdHlwZXMu',
+ 'CgoqICAgKipCcmVha2luZyBDaGFuZ2UqKjogVHlwZXMgYXJlIG5vdyBub3JtYWxpemVkLiBTZWUg',
+ 'W25vcm1hbGl6YXRpb25dW10gZm9yIHRoZQogICAgZnVsbCBzcGVjaWZpY2F0aW9uLiBUeXBlcyB3',
+ 'aWxsIG5vdyBiZSBwcmludGVkIGluIHRoZWlyIG5vcm1hbCBmb3JtLCBhbmQKICAgIG11dHVhbCBz',
+ 'dWJ0eXBlcyB3aXRoIHRoZSBzYW1lIG5vcm1hbCBmb3JtIHdpbGwgbm93IGJlIGNvbnNpZGVyZWQg',
+ 'ZXF1YWwuCgoqICAgKipCcmVha2luZyBDaGFuZ2UqKjogQ29uc3RydWN0b3JzIGluIGBASlMoKWAg',
+ 'Y2xhc3NlcyBtdXN0IGJlIG1hcmtlZCB3aXRoCiAgICBgZXh0ZXJuYWxgLiBQcmV2aW91c2x5LCB0',
+ 'aGUgZXh0ZXJuYWwgY291bGQgYmUgb21pdHRlZCBmb3IgdW51c2VkCiAgICBjb25zdHJ1Y3RvcnMu',
+ 'IE9taXR0aW5nIGBleHRlcm5hbGAgZm9yIGEgY29uc3RydWN0b3Igd2hpY2ggaXMgdXNlZCB3b3Vs',
+ 'ZAogICAgY2F1c2UgaW5jb3JyZWN0IGJlaGF2aW9yIGF0IHJ1bnRpbWUsIG5vdyBvbWl0dGluZyBp',
+ 'dCBvbiBhbnkgY29uc3RydWN0b3IgaXMgYQogICAgc3RhdGljIGVycm9yLgoKWzE3MjA3XTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzE3MjA3Cgpbbm9ybWFsaXphdGlv',
+ 'bl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvbGFuZ3VhZ2UvYmxvYi9tYXN0ZXIvcmVz',
+ 'b3VyY2VzL3R5cGUtc3lzdGVtL25vcm1hbGl6YXRpb24ubWQKCgpPdGhlciBkYXJ0MmpzIGNoYW5n',
+ 'ZXM6CgoqICoqQnJlYWtpbmcgQ2hhbmdlKio6IFRoZSBgLS1wYWNrYWdlLXJvb3RgIGZsYWcsIHdo',
+ 'aWNoIHdhcyBoaWRkZW4gYW5kIGRpc2FibGVkCiAgaW4gRGFydCAyLjAuMCwgaGFzIGJlZW4gY29t',
+ 'cGxldGVseSByZW1vdmVkLiBQYXNzaW5nIHRoaXMgZmxhZyB3aWxsIG5vdyBjYXVzZQogIGBkYXJ0',
+ 'MmpzYCB0byBmYWlsLgoKIyMjIyBMaW50ZXIKClVwZGF0ZWQgdGhlIExpbnRlciB0byBgMC4xLjEx',
+ 'NGAsIHdoaWNoIGluY2x1ZGVzOgoKKiBGaXhlZCBgYXZvaWRfc2hhZG93aW5nX3R5cGVfcGFyYW1l',
+ 'dGVyc2AgdG8gc3VwcG9ydCBleHRlbnNpb25zIGFuZCBtaXhpbnMuCiogVXBkYXRlZCBgbm9uX2Nv',
+ 'bnN0YW50X2lkZW50aWZpZXJfbmFtZXNgIHRvIGFsbG93IG5hbWVkIGNvbnN0cnVjdG9ycyBtYWRl',
+ 'IHVwIG9mIG9ubHkgdW5kZXJzY29yZXMgKGBfYCkuCiogVXBkYXRlZCBgYXZvaWRfdW51c2VkX2Nv',
+ 'bnN0cnVjdG9yX3BhcmFtZXRlcnNgIHRvIGlnbm9yZSB1bnVzZWQgcGFyYW1zIG5hbWVkIGluIGFs',
+ 'bCB1bmRlcnNjb3JlcyAoYF9gKS4KCiMjIyMgQW5hbHl6ZXIKCiogICBSZW1vdmVkIHN1cHBvcnQg',
+ 'Zm9yIHRoZSBkZXByZWNhdGVkIGFuYWx5c2lzIG9wdGlvbnMgZmlsZSBuYW1lCiAgICBgLmFuYWx5',
+ 'c2lzX29wdGlvbnNgLgoKIyMjIyBQdWIKCiogICBBZGRlZCBgcHViIG91dGRhdGVkYCBjb21tYW5k',
+ 'IHdoaWNoIGxpc3RzIG91dGRhdGVkIHBhY2thZ2UgZGVwZW5kZW5jaWVzLCBhbmQKICAgIGdpdmVz',
+ 'IGFkdmljZSBvbiBob3cgdG8gdXBncmFkZS4KCiogICBgcHViIGdldGAgYW5kIGBwdWIgdXBncmFk',
+ 'ZWAgbm93IGZldGNoIHZlcnNpb24gaW5mb3JtYXRpb24gYWJvdXQgaG9zdGVkCiAgICBkZXBlbmRl',
+ 'bmNpZXMgaW4gcGFyYWxsZWwsIGltcHJvdmluZyB0aGUgdGltZSBwYWNrYWdlIHJlc29sdXRpb24g',
+ 'cGVyZm9ybWFuY2UuCgoqICAgYHB1YiBnZXRgIGFuZCBgcHViIHVwZ3JhZGVgIG5vIGxvbmdlciBw',
+ 'cmVjb21waWxlIGV4ZWN1dGFibGVzIGZyb20KICAgIGRlcGVuZGVuY2llcyBieSBkZWZhdWx0LiBJ',
+ 'bnN0ZWFkIHRoZXkgYXJlIHByZWNvbXBpbGVkIG9uIGZpcnN0IGBwdWIgcnVuYC4KICAgIFVzZSBg',
+ 'cHViIGdldCAtLXByZWNvbXBpbGVgIHRvIGdldCB0aGUgcHJldmlvdXMgYmVoYXZpb3IuCgoqICAg',
+ 'Rml4ZWQgbWlzc2luZyByZXRyaWVzIG9mIEROUyBmYWlsdXJlcyBkdXJpbmcgYHB1YiBnZXRgLgoK',
+ 'KiAgIElmIGNvZGUgY29udGFpbnMgaW1wb3J0cyBmb3IgcGFja2FnZXMgbm90IGxpc3RlZCBpbiB0',
+ 'aGUgcGFja2FnZSdzCiAgICBgcHVic3BlYy55YW1sYCB0aGVuIGBwdWIgcHVibGlzaGAgd2lsbCBy',
+ 'ZWplY3QgdGhlIHBhY2thZ2UuCgoqICAgYHB1YiBwdWJsaXNoYCBubyBsb25nZXIgcmVxdWlyZXMg',
+ 'dGhlIHByZXNlbmNlIG9mIGEgYGhvbWVwYWdlYCBmaWVsZCwgaWYgdGhlCiAgICBgcmVwb3NpdG9y',
+ 'eWAgZmllbGQgaXMgcHJvdmlkZWQuCgoqICAgYHB1YiBwdWJsaXNoYCB3YXJucyBpZiBub24tcHJl',
+ 'LXJlbGVhc2UgcGFja2FnZXMgZGVwZW5kcyBvbiBwcmUtcmVsZWFzZQogICAgcGFja2FnZXMgb3Ig',
+ 'cHJlLXJlbGVhc2UgRGFydCBTREtzLgoKKiAgIFJlbGF0aXZlIHBhdGhzIGluIGBwdWJzcGVjLmxv',
+ 'Y2tgIG5vdyB1c2UgYC9gIGFsc28gb24gV2luZG93cyB0byBtYWtlIHRoZQogICAgZmlsZSBzaGFy',
+ 'YWJsZSBiZXR3ZWVuIG1hY2hpbmVzLgoKKiAgIEZpeGVkIGxhbmd1YWdlIHZlcnNpb24gaW4gW2Au',
+ 'ZGFydF90b29sL3BhY2thZ2VfY29uZmlnLmpzb25gXVtwYWNrYWdlIGNvbmZpZ10KICAgIGZvciBw',
+ 'YWNrYWdlcyB3aXRob3V0IGFuIGV4cGxpY2l0IFNESyBjb25zdHJhaW50LiBQdWIgbm93IHdyaXRl',
+ 'cyBhbiBlbXB0eQogICAgbGFuZ3VhZ2UgdmVyc2lvbiB3aGVyZSBiZWZvcmUgdGhlIGxhbmd1YWdl',
+ 'IHZlcnNpb24gb2YgdGhlIGN1cnJlbnQgU0RLIHdvdWxkCiAgICBiZSB1c2VkLgoKKiAgIGAlTE9D',
+ 'QUxBUFBEQVRBJWAgaXMgbm93IHByZWZlcnJlZCBvdmVyIGAlQVBQREFUQSVgIHdoZW4gY3JlYXRp',
+ 'bmcgYSBwdWIgY2FjaGUKICAgIGRpcmVjdG9yeSBvbiBXaW5kb3dzLiBgJUxPQ0FMQVBQREFUQSVg',
+ 'IGlzIG5vdCBjb3BpZWQgd2hlbiB1c2VycyByb2FtIGJldHdlZW4KICAgIGRldmljZXMuCgoqICAg',
+ 'YHB1YiBwdWJsaXNoYCB3YXJucyBpZiBMSUNFTlNFIGFuZCBSRUFETUUubWQgZmlsZXMgYXJlIG5v',
+ 'dCBjYWxsZWQgdGhvc2UKICAgIGV4YWN0IG5hbWVzLgoKKiAgIGBwdWIgcmVwYWlyIGNhY2hlYCBk',
+ 'b3dubG9hZHMgaG9zdGVkIHBhY2thZ2VzIGluIHBhcmFsbGVsLgoKW3BhY2thZ2UgY29uZmlnXTog',
+ 'aHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9sYW5ndWFnZS9ibG9iL21hc3Rlci9hY2NlcHRl',
+ 'ZC9mdXR1cmUtcmVsZWFzZXMvbGFuZ3VhZ2UtdmVyc2lvbmluZy9wYWNrYWdlLWNvbmZpZy1maWxl',
+ 'LXYyLm1kCgojIyAyLjcuMiAtIDIwMjAtMDMtMjMKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHRo',
+ 'YXQgYWRkcmVzc2VzIGEgdnVsbmVyYWJpbGl0eSBpbiBgZGFydDpodG1sYApbTm9kZVZhbGlkYXRv',
+ 'cl1bXSByZWxhdGVkIHRvIERPTSBjbG9iYmVyaW5nIG9mIGBwcmV2aW91c1NpYmxpbmdgLiBTZWUg',
+ 'dGhlClt2dWxuZXJhYmlsaXR5IGFkdmlzb3J5XVtDVkUtMjAyMC04OTIzXSBmb3IgbW9yZSBkZXRh',
+ 'aWxzLiBUaGFua3MgdG8gKipWaW5jZW56bwpkaSBDaWNjbyoqIGZvciBmaW5kaW5nIGFuZCByZXBv',
+ 'cnRpbmcgdGhpcyBpc3N1ZS4KClRoaXMgcmVsZWFzZSBhbHNvIGltcHJvdmVzIGNvbXBhdGliaWxp',
+ 'dHkgd2l0aCBBUk12OCBwcm9jZXNzb3JzIChpc3N1ZSBbNDAwMDFdW10pCmFuZCBkYXJ0OmlvIHN0',
+ 'YWJpbGl0eSAoaXNzdWUgWzQwNTg5XVtdKS4KCltOb2RlVmFsaWRhdG9yXTogaHR0cHM6Ly9hcGku',
+ 'ZGFydC5kZXYvc3RhYmxlL2RhcnQtaHRtbC9Ob2RlVmFsaWRhdG9yLWNsYXNzLmh0bWwKW0NWRS0y',
+ 'MDIwLTg5MjNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9zZWN1cml0eS9hZHZp',
+ 'c29yaWVzL0dIU0EtaGZxMy12OXB2LXA2MjcKWzQwMDAxXTogaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzQwMDAxCls0MDU4OV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy80MDU4OQoKIyMgMi43LjEgLSAyMDIwLTAxLTIzCgpUaGlzIGlzIGEg',
+ 'cGF0Y2ggcmVsZWFzZSB0aGF0IGltcHJvdmVzIGRhcnQyanMgY29tcGlsZS10aW1lIChpc3N1ZSBb',
+ 'NDAyMTddW10pLgoKWzQwMjE3XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNz',
+ 'dWVzLzQwMjE3CgoqKkJyZWFraW5nIENoYW5nZSoqOgpUaGUgRGFydCBTREsgZm9yIG1hY09TIGlz',
+ 'IG5vdyBvbmx5IGF2YWlsYWJsZSBmb3IgeDY0IChpc3N1ZSBbMzk4MTBdW10pLgoKWzM5ODEwXTog',
+ 'aHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzM5ODEwCgojIyAyLjcuMCAt',
+ 'IDIwMTktMTItMTEKCioqRXh0ZW5zaW9uIG1ldGhvZHMqKiAtLSB3aGljaCB3ZSBzaGlwcGVkIGlu',
+ 'IHByZXZpZXcgaW4gMi42LjAgLS0gYXJlIG5vIGxvbmdlcgppbiBwcmV2aWV3LCBhbmQgYXJlIG5v',
+ ];
+}
+
+List<String> _g11(String s) {
+ return [
+ s,
+ 'dyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBhcyBvZiAyLjcuMC4gTGVhcm4gbW9yZSBhYm91dCB0aGVt',
+ 'CmhlcmU6CgpodHRwczovL21lZGl1bS5jb20vZGFydGxhbmcvZXh0ZW5zaW9uLW1ldGhvZHMtMmQ0',
+ 'NjZjZDhiMzA4CgojIyMgTGFuZ3VhZ2UKCiogKipCcmVha2luZyBDaGFuZ2UqKjogW1N0YXRpYyBl',
+ 'eHRlbnNpb24gbWVtYmVyc11bXSBhcmUgYWNjZXNzaWJsZSB3aGVuCmltcG9ydGVkIHdpdGggYSBw',
+ 'cmVmaXggKGlzc3VlIFs2NzFdW10pLiBJbiB0aGUgZXh0ZW5zaW9uIG1ldGhvZCAqKnByZXZpZXcq',
+ 'KgpsYXVuY2gsIGltcG9ydGluZyBhIGxpYnJhcnkgd2l0aCBhIHByZWZpeCBoaWQgYWxsIGV4dGVu',
+ 'c2lvbiBtZW1iZXJzIGluCmFkZGl0aW9uIHRvIGhpZGluZyB0aGUgZXh0ZW5zaW9uIG5hbWUsIHRo',
+ 'ZXJlYnkgbWFraW5nIHRoZW0gaW5hY2Nlc3NpYmxlCmluIHRoZSBpbXBvcnRpbmcgbGlicmFyeSBl',
+ 'eGNlcHQgdmlhIHRoZSBleHBsaWNpdCBvdmVycmlkZSBzeW50YXguIEJhc2VkCm9uIHVzZXIgZmVl',
+ 'ZGJhY2ssIHdlIGhhdmUgY2hhbmdlZCB0aGlzIHRvIG1ha2UgZXh0ZW5zaW9ucyBtZXRob2RzIGFj',
+ 'Y2Vzc2libGUKZXZlbiB3aGVuIGltcG9ydGVkIHdpdGggYSBwcmVmaXguCgogICAgYGBgZGFydAog',
+ 'ICAgICAvLyAidGhpbmcuZGFydCIKICAgICAgY2xhc3MgVGhpbmcgewogICAgICB9CiAgICAgIGV4',
+ 'dGVuc2lvbiBTaG93IG9uIFRoaW5nIHsKICAgICAgICB2b2lkIHNob3coKSB7CiAgICAgICAgICBw',
+ 'cmludCgiVGhpcyBpcyBhIHRoaW5nIik7CiAgICAgICAgfQogICAgIH0KICAgICAvLyAiY2xpZW50',
+ 'LmRhcnQiCiAgICAgaW1wb3J0ICJ0aGluZy5kYXJ0IiBhcyBwOwogICAgIHZvaWQgdGVzdCgpIHsK',
+ 'ICAgICAgIHAuVGhpbmcoKS5zaG93KCk7IC8vIFByZXZpb3VzbHkgYW4gZXJyb3IsIG5vdyByZXNv',
+ 'bHZlcyB0byBTaG93LnNob3cKICAgICB9CiAgICBgYGAKCltTdGF0aWMgZXh0ZW5zaW9uIG1lbWJl',
+ 'cnNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2xhbmd1YWdlL2Jsb2IvbWFzdGVyL2Fj',
+ 'Y2VwdGVkLzIuNi9zdGF0aWMtZXh0ZW5zaW9uLW1lbWJlcnMvZmVhdHVyZS1zcGVjaWZpY2F0aW9u',
+ 'Lm1kCls2NzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2xhbmd1YWdlL2lzc3Vlcy82',
+ 'NzEKCiMjIyBDb3JlIGxpYnJhcmllcwoKIyMjIyBgZGFydDppb2AKCiogKipCcmVha2luZyBjaGFu',
+ 'Z2UqKjogQWRkZWQgYElPT3ZlcnJpZGVzLnNlcnZlclNvY2tldEJpbmRgIHRvIGFpZCBpbiB3cml0',
+ 'aW5nCiAgdGVzdHMgdGhhdCB3aXNoIHRvIG1vY2sgYFNlcnZlclNvY2tldC5iaW5kYC4KCiMjIyMg',
+ 'YGRhcnQ6dHlwZWRfZGF0YWAKCiogQWRkZWQgbmV3IGNvbnN0cnVjdG9ycywgYC5zdWJsaXN0Vmll',
+ 'dyhUeXBlZERhdGEsIFtzdGFydCwgZW5kXSlgIHRvIGFsbAogIGBUeXBlZERhdGFgIGNsYXNzZXMu',
+ 'IFRoZSBjb25zdHJ1Y3RvciBtYWtlcyBpdCBlYXNpZXIsIGFuZCBsZXNzIGVycm9yLXByb25lLAog',
+ 'IHRvIGNyZWF0ZSBhIHZpZXcgb2YgKGEgc2xpY2Ugb2YpIGFub3RoZXIgYFR5cGVkRGF0YWAgb2Jq',
+ 'ZWN0LgoKIyMjIERhcnQgVk0KCiogTmV3IGZpZWxkcyBhZGRlZCB0byBleGlzdGluZyBpbnN0YW5j',
+ 'ZXMgYnkgYSByZWxvYWQgd2lsbCBub3cgYmUgaW5pdGlhbGl6ZWQKICBsYXppbHksIGFzIGlmIHRo',
+ 'ZSBmaWVsZCB3YXMgYSBsYXRlIGZpZWxkLiBUaGlzIG1ha2VzIHRoZSBpbml0aWFsaXphdGlvbiBv',
+ 'cmRlcgogIHByb2dyYW0tZGVmaW5lZCwgd2hlcmVhcyBwcmV2aW91c2x5IGl0IHdhcyB1bmRlZmlu',
+ 'ZWQuCgojIyMgVG9vbHMKCiMjIyMgTGludGVyCgpUaGUgTGludGVyIHdhcyB1cGRhdGVkIHRvIGAw',
+ 'LjEuMTA0YCwgd2hpY2ggaW5jbHVkZXM6CgoqIHVwZGF0ZWQgYHVubmVjZXNzYXJ5X292ZXJyaWRl',
+ 'c2AgdG8gYWxsb3cgb3ZlcnJpZGVzIHdoZW4gYW5ub3RhdGlvbnMgKGJlc2lkZXMgYEBvdmVycmlk',
+ 'ZWAgYXJlIHNwZWNpZmllZCkKKiB1cGRhdGVkIGBmaWxlX25hbWVzYCB0byBhbGxvdyBuYW1lcyB3',
+ 'LyBsZWFkaW5nIGBfYCdzIChhbmQgaW1wcm92ZWQgcGVyZm9ybWFuY2UpCiogbmV3IGxpbnQ6IGB1',
+ 'bm5lY2Vzc2FyeV9maW5hbGAKCiMjIyMgUHViCgoqIGBwdWIgZ2V0YCBnZW5lcmF0ZXMgW2AuZGFy',
+ 'dF90b29sL3BhY2thZ2VfY29uZmlnLmpzb25gXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5n',
+ 'L2xhbmd1YWdlL2Jsb2IvNjJjMDM2Y2M0MWIxMGZiNTQzMTAyZDJmNzNlZTEzMmQxZTJiMmEwZS9h',
+ 'Y2NlcHRlZC9mdXR1cmUtcmVsZWFzZXMvbGFuZ3VhZ2UtdmVyc2lvbmluZy9wYWNrYWdlLWNvbmZp',
+ 'Zy1maWxlLXYyLm1kKQogIGluIGFkZGl0aW9uIHRvIGAucGFja2FnZXNgIHRvIHN1cHBvcnQgbGFu',
+ 'Z3VhZ2UgdmVyc2lvbmluZy4KCiogYHB1YiBwdWJsaXNoYCBub3cgd2FybnMgYWJvdXQgdGhlIG9s',
+ 'ZCBmbHV0dGVyIHBsdWdpbiByZWdpc3RyYXRpb24gZm9ybWF0LgoKKiBgcHViIHB1Ymxpc2hgIG5v',
+ 'dyB3YXJucyBhYm91dCB0aGUgYGF1dGhvcmAgZmllbGQgaW4gcHVic3BlYy55YW1sIGJlaW5nLgog',
+ 'IG9ic29sZXRlLgoKKiBTaG93IGEgcHJvcGVyIGVycm9yIG1lc3NhZ2Ugd2hlbiBgZ2l0YCBpcyBu',
+ 'b3QgaW5zdGFsbGVkLgoKIyMgMi42LjEgLSAyMDE5LTExLTExCgpUaGlzIGlzIGEgcGF0Y2ggcmVs',
+ 'ZWFzZSB0aGF0IHJlZHVjZXMgZGFydDJqcyBtZW1vcnkgdXNhZ2UgKGlzc3VlIFsyNzg4M11bXSks',
+ 'CmltcHJvdmVzIHN0YWJpbGl0eSBvbiBhcm02NCAoaXNzdWUgWzM5MDkwXVtdKSBhbmQgdXBkYXRl',
+ 'cyB0aGUgRGFydCBGRkkKZG9jdW1lbnRhdGlvbi4KClsyNzg4M106IGh0dHBzOi8vZ2l0aHViLmNv',
+ 'bS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yNzg4MwpbMzkwOTBdOiBodHRwczovL2dpdGh1Yi5jb20v',
+ 'ZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzkwOTAKCiMjIDIuNi4wIC0gMjAxOS0xMS0wNQoKIyMjIExh',
+ 'bmd1YWdlCgoqICAgKipbSU4gUFJFVklFV10qKiBbU3RhdGljIGV4dGVuc2lvbiBtZW1iZXJzXVtd',
+ 'OiBBIG5ldyBsYW5ndWFnZSBmZWF0dXJlCiAgICBhbGxvd2luZyBzcGVjaWFsbHkgZGVjbGFyZWQg',
+ 'c3RhdGljIGZ1bmN0aW9ucyB0byBiZSBpbnZva2VkIGxpa2UgaW5zdGFuY2UKICAgIG1lbWJlcnMg',
+ 'b24gZXhwcmVzc2lvbnMgb2YgYXBwcm9wcmlhdGUgc3RhdGljIHR5cGVzIGlzIGF2YWlsYWJsZSBp',
+ 'biBwcmV2aWV3LgoKICAgIFN0YXRpYyBleHRlbnNpb24gbWVtYmVycyBhcmUgZGVjbGFyZWQgdXNp',
+ 'bmcgYSBuZXcgYGV4dGVuc2lvbmAgZGVjbGFyYXRpb24uCiAgICBFeGFtcGxlOgoKICAgIGBgYGRh',
+ 'cnQKICAgIGV4dGVuc2lvbiBNeUZhbmN5TGlzdDxUPiBvbiBMaXN0PFQ+IHsKICAgICAgLy8vIFdo',
+ 'ZXRoZXIgdGhpcyBsaXN0IGhhcyBhbiBldmVuIGxlbmd0aC4KICAgICAgYm9vbCBnZXQgaXNMZW5n',
+ 'dGhFdmVuID0+IHRoaXMubGVuZ3RoLmlzRXZlbjsKCiAgICAgIC8vLyBXaGV0aGVyIHRoaXMgbGlz',
+ 'dCBoYXMgYW4gb2RkIGxlbmd0aC4KICAgICAgYm9vbCBnZXQgaXNMZW5ndGhPZGQgPT4gIWlzTGVu',
+ 'Z3RoRXZlbjsKCiAgICAgIC8vLyBMaXN0IG9mIHZhbHVlcyBjb21wdXRlZCBmb3IgZWFjaCBwYWly',
+ 'cyBvZiBhZGphY2VudCBlbGVtZW50cy4KICAgICAgLy8vCiAgICAgIC8vLyBUaGUgcmVzdWx0IGFs',
+ 'd2F5cyBoYXMgb25lIGVsZW1lbnQgbGVzcyB0aGFuIHRoaXMgbGlzdCwKICAgICAgLy8vIGlmIHRo',
+ 'aXMgbGlzdCBoYXMgYW55IGVsZW1lbnRzLgogICAgICBMaXN0PFI+IGNvbWJpbmVQYWlyczxSPihS',
+ 'IEZ1bmN0aW9uKFQsIFQpIGNvbWJpbmUpID0+CiAgICAgICAgICBbZm9yIChpbnQgaSA9IDE7IGkg',
+ 'PCB0aGlzLmxlbmd0aDsgaSsrKQogICAgICAgICAgICAgIGNvbWJpbmUodGhpc1tpIC0gMV0sIHRo',
+ 'aXNbaV0pXTsKICAgIH0KICAgIGBgYAoKICAgIEV4dGVuc2lvbiBkZWNsYXJhdGlvbnMgY2Fubm90',
+ 'IGRlY2xhcmUgaW5zdGFuY2UgZmllbGRzIG9yIGNvbnN0cnVjdG9ycy4KICAgIEV4dGVuc2lvbiBt',
+ 'ZW1iZXJzIGNhbiBiZSBpbnZva2VkIGV4cGxpY2l0bHksCiAgICBgTXlGYW5jeUxpc3QoaW50TGlz',
+ 'dCkuaXNMZW5ndGhFdmVuKWAsIG9yIGltcGxpY2l0bHksIGBpbnRMaXN0LmlzTGVuZ3RoRXZlbmAs',
+ 'CiAgICB3aGVyZSB0aGUgbGF0dGVyIGlzIHJlY29nbml6ZWQgYnkgYGludExpc3RgIG1hdGNoaW5n',
+ 'IHRoZSBgTGlzdDxUPmAgIm9uIiB0eXBlCiAgICBvZiB0aGUgZGVjbGFyYXRpb24uIEFuIGV4dGVu',
+ 'c2lvbiBtZW1iZXIgY2Fubm90IGJlIGNhbGxlZCBpbXBsaWNpdGx5IG9uIGFuCiAgICBleHByZXNz',
+ 'aW9uIHdob3NlIHN0YXRpYyB0eXBlIGhhcyBhIG1lbWJlciB3aXRoIHRoZSBzYW1lIGJhc2UtbmFt',
+ 'ZS4gSW4gdGhhdAogICAgY2FzZSwgdGhlIGludGVyZmFjZSBtZW1iZXIgdGFrZXMgcHJlY2VkZW5j',
+ 'ZS4gSWYgbXVsdGlwbGUgZXh0ZW5zaW9uIG1lbWJlcnMKICAgIGFwcGx5IHRvIHRoZSBzYW1lIGlt',
+ 'cGxpY2l0IGludm9jYXRpb24sIHRoZSBtb3N0IHNwZWNpZmljIG9uZSBpcyB1c2VkLCBpZgogICAg',
+ 'dGhlcmUgaXMgb25lIHN1Y2guCgogICAgRXh0ZW5zaW9ucyBjYW4gYmUgZGVjbGFyZWQgb24gYW55',
+ 'IHR5cGUsIG5vdCBqdXN0IGludGVyZmFjZSB0eXBlcy4KCiAgICBgYGBkYXJ0CiAgICBleHRlbnNp',
+ 'b24gSW50Q291bnRlciBvbiBpbnQgewogICAgICAvLy8gVGhlIG51bWJlcnMgZnJvbSB0aGlzIG51',
+ 'bWJlciB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIFtlbmRdLgogICAgICBJdGVyYWJsZTxpbnQ+IHRv',
+ 'KGludCBlbmQpIHN5bmMqIHsKICAgICAgICBpbnQgc3RlcCA9IGVuZCA8IHRoaXMgPyAtMSA6IDE7',
+ 'CiAgICAgICAgZm9yIChpbnQgaSA9IHRoaXM7IGkgIT0gZW5kOyBpICs9IHN0ZXApIHlpZWxkIGk7',
+ 'CiAgICAgIH0KICAgIH0KCiAgICBleHRlbnNpb24gQ3VycnlGdW5jdGlvbjxSLCBTLCBUPiBvbiBS',
+ 'IEZ1bmN0aW9uKFMsIFQpIHsKICAgICAgLy8vIEN1cnJ5IGEgYmluYXJ5IGZ1bmN0aW9uIHdpdGgg',
+ 'aXRzIGZpcnN0IGFyZ3VtZW50LgogICAgICBSIEZ1bmN0aW9uKFQpIGN1cnJ5KFMgZmlyc3QpID0+',
+ 'IChUIHNlY29uZCkgPT4gdGhpcyhmaXJzdCwgc2Vjb25kKTsKICAgIH0KICAgIGBgYAoKICAgIFtT',
+ 'dGF0aWMgZXh0ZW5zaW9uIG1lbWJlcnNdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2xh',
+ 'bmd1YWdlL2Jsb2IvbWFzdGVyL2FjY2VwdGVkLzIuNi9zdGF0aWMtZXh0ZW5zaW9uLW1lbWJlcnMv',
+ 'ZmVhdHVyZS1zcGVjaWZpY2F0aW9uLm1kCgoqICAgKipCcmVha2luZyBjaGFuZ2UqKiBbIzM3OTg1',
+ 'XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzc5ODUpOgogICAgSW5m',
+ 'ZXJlbmNlIGlzIGNoYW5nZWQgd2hlbiB1c2luZyBgTnVsbGAgdmFsdWVzIGluIGEgYEZ1dHVyZU9y',
+ 'YCBjb250ZXh0LgogICAgTmFtZWx5LCBjb25zdHJhaW50cyBvZiB0aGUgZm9ybXMgc2ltaWxhciB0',
+ 'byBgTnVsbGAgPDogYEZ1dHVyZU9yPFQ+YCBub3cKICAgIHlpZWxkIGBOdWxsYCBhcyB0aGUgc29s',
+ 'dXRpb24gZm9yIGBUYC4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvZGUgd2lsbAogICAg',
+ 'bm93IHByaW50ICJOdWxsIiwgYW5kIGl0IHdhcyBwcmludGluZyAiZHluYW1pYyIgYmVmb3JlIChu',
+ 'b3RlIHRoYXQgdGhlCiAgICBhbm9ueW1vdXMgY2xvc3VyZSBgKCkge31gIGluIHRoZSBleGFtcGxl',
+ 'IGhhcyBgTnVsbGAgYXMgaXRzIHJldHVybiB0eXBlKToKCiAgICBgYGBkYXJ0CiAgICBpbXBvcnQg',
+ 'J2RhcnQ6YXN5bmMnOwoKICAgIHZvaWQgZm9vPFQ+KEZ1dHVyZU9yPFQ+IEZ1bmN0aW9uKCkgZikg',
+ ];
+}
+
+List<String> _g12(String s) {
+ return [
+ s,
+ 'eyBwcmludChUKTsgfQoKICAgIG1haW4oKSB7IGZvbygoKSB7fSk7IH0KICAgIGBgYAoKCiMjIyBD',
+ 'b3JlIGxpYnJhcmllcwoKKiBEZWZhdWx0IHZhbHVlcyBvZiBwYXJhbWV0ZXJzIG9mIGFic3RyYWN0',
+ 'IG1ldGhvZHMgYXJlIG5vIGxvbmdlciBhdmFpbGFibGUKICB2aWEgYGRhcnQ6bWlycm9yc2AuCgoj',
+ 'IyMjIGBkYXJ0OmRldmVsb3BlcmAKCiogQWRkZWQgb3B0aW9uYWwgYHBhcmVudGAgcGFyYW1ldGVy',
+ 'IHRvIGBUaW1lbGluZVRhc2tgIGNvbnN0cnVjdG9yIHRvIGFsbG93IGZvcgogIGxpbmtpbmcgb2Yg',
+ 'YXN5bmNocm9ub3VzIHRpbWVsaW5lIGV2ZW50cyBpbiB0aGUgRGV2VG9vbHMgdGltZWxpbmUgdmll',
+ 'dy4KCiMjIyMgYGRhcnQ6aW9gCgoqIEFkZGVkIGBlbmFibGVUaW1lbGluZUxvZ2dpbmdgIHByb3Bl',
+ 'cnR5IHRvIGBIdHRwQ2xpZW50YCB3aGljaCwgd2hlbiBlbmFibGVkLAogIHdpbGwgcG9zdCBIVFRQ',
+ 'IGNvbm5lY3Rpb24gYW5kIHJlcXVlc3QgaW5mb3JtYXRpb24gdG8gdGhlIGRldmVsb3BlciB0aW1l',
+ 'bGluZQogIGZvciBhbGwgYEh0dHBDbGllbnRgIGluc3RhbmNlcy4KCiMjIyBEYXJ0IFZNCgoqIEFk',
+ 'ZGVkIGEgbmV3IHRvb2wgZm9yIEFPVCBjb21waWxpbmcgRGFydCBwcm9ncmFtcyB0byBuYXRpdmUs',
+ 'IHNlbGYtY29udGFpbmVkCmV4ZWN1dGFibGVzLiBTZWUgaHR0cHM6Ly9kYXJ0LmRldi90b29scy9k',
+ 'YXJ0Mm5hdGl2ZSBmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgoKIyMjIEZvcmVpZ24gRnVuY3Rpb24g',
+ 'SW50ZXJmYWNlIChgZGFydDpmZmlgKQoKKiAgICoqQnJlYWtpbmcgY2hhbmdlKio6IFRoZSBBUEkg',
+ 'bm93IG1ha2VzIHVzZSBvZiBzdGF0aWMgZXh0ZW5zaW9uIG1lbWJlcnMuCiAgICBTdGF0aWMgZXh0',
+ 'ZW5zaW9uIG1lbWJlcnMgZW5hYmxlIHRoZSBgZGFydDpmZmlgIEFQSSB0byBiZSBtb3JlIHByZWNp',
+ 'c2Ugd2l0aAogICAgdHlwZXMsIGFuZCBwcm92aWRlIGNvbnZlbmllbnQgYWNjZXNzIHRvIG1lbW9y',
+ 'eSB0aHJvdWdoIGV4dGVuc2lvbiBnZXR0ZXJzIGFuZAogICAgc2V0dGVycy4gVGhlIGV4dGVuc2lv',
+ 'biBtZW1iZXJzIG9uIGBQb2ludGVyYCBwcm92aWRlIGAudmFsdWVgIGFuZCBgLnZhbHVlID1gCiAg',
+ 'ICBmb3IgYWNjZXNzaW5nIHRoZSB2YWx1ZSBpbiBuYXRpdmUgbWVtb3J5IGFuZCBgW11gIGFuZCBg',
+ 'W109YCBmb3IgaW5kZXhlZCBhY2Nlc3MuCiAgICBUaGUgbWV0aG9kIGBhc0V4dGVybmFsVHlwZWRE',
+ 'YXRhYCBoYXMgYmVlbiByZXBsYWNlZCB3aXRoIGBhc1R5cGVkTGlzdGAgZXh0ZW5zaW9uCiAgICBt',
+ 'ZXRob2RzLiBBbmQgZmluYWxseSwgYFN0cnVjdHNgIGRvIG5vIGxvbmdlciBoYXZlIGEgdHlwZSBh',
+ 'cmd1bWVudCBhbmQgYXJlCiAgICBhY2Nlc3NlZCB1c2luZyB0aGUgZXh0ZW5zaW9uIG1lbWJlciBg',
+ 'LnJlZmAgb24gYFBvaW50ZXJgLgogICAgVGhlc2UgY2hhbmdlcyBtYWtlcyB0aGUgY29kZSB1c2lu',
+ 'ZyBgZGFydDpmZmlgIG11Y2ggbW9yZSBjb25jaXNlLgoqICAgKipCcmVha2luZyBjaGFuZ2UqKjog',
+ 'VGhlIG1lbW9yeSBtYW5hZ2VtZW50IGhhcyBiZWVuIHJlbW92ZWQgKGBQb2ludGVyLmFsbG9jYXRl',
+ 'YAogICAgYW5kIGBQb2ludGVyLmZyZWVgKS4gSW5zdGVhZCwgbWVtb3J5IG1hbmFnZW1lbnQgaXMg',
+ 'YXZhaWxhYmxlIGluCiAgICBbcGFja2FnZTpmZmldKGh0dHBzOi8vcHViLmRldi9wYWNrYWdlcy9m',
+ 'ZmkpLgoqICAgKipCcmVha2luZyBjaGFuZ2UqKjogYFBvaW50ZXIub2Zmc2V0QnlgIHdhcyByZW1v',
+ 'dmVkLCB1c2UgYGNhc3RgIGFuZCBgZWxlbWVudEF0YAogICAgaW5zdGVhZC4KKiAgIEZhc3RlciBt',
+ 'ZW1vcnkgbG9hZCBhbmQgc3RvcmVzLgoqICAgVGhlIGRhcnRhbmFseXplciAoY29tbWFuZGxpbmUg',
+ 'YW5kIElERXMpIG5vdyByZXBvcnRzIGBkYXJ0OmZmaWAgc3RhdGljIGVycm9ycy4KKiAgIENhbGxi',
+ 'YWNrcyBhcmUgbm93IHN1cHBvcnRlZCBpbiBBT1QgKGFoZWFkLW9mLXRpbWUpIGNvbXBpbGVkIGNv',
+ 'ZGUuCgojIyMgRGFydCBmb3IgdGhlIFdlYgoKIyMjIyBEYXJ0IERldiBDb21waWxlciAoRERDKQoK',
+ 'KiBLZXJuZWwgRERDIHdpbGwgbm8gbG9uZ2VyIGFjY2VwdCBub24tZGlsbCBmaWxlcyBhcyBzdW1t',
+ 'YXJ5IGlucHV0cy4KKiBSZW1vdmVkIHN1cHBvcnQgZm9yIHRoZSBkZXByZWNhdGVkIHdlYiBleHRl',
+ 'bnNpb24uCgojIyMgVG9vbHMKCiMjIyMgTGludGVyCgpUaGUgTGludGVyIHdhcyB1cGRhdGVkIHRv',
+ 'IGAwLjEuMTAxYCwgd2hpY2ggaW5jbHVkZXM6CgoqIGZpeGVkIGBkaWFnbm9zdGljX2Rlc2NyaWJl',
+ 'X2FsbF9wcm9wZXJ0aWVzYCB0byBmbGFnIHByb3BlcnRpZXMgaW4gYERpYWdub3N0aWNhYmxlYHMg',
+ 'd2l0aCBubyBkZWJ1ZyBtZXRob2RzIGRlZmluZWQKKiBmaXhlZCBgbm9TdWNoTWV0aG9kYCBleGNl',
+ 'cHRpb24gaW4gYGNhbWVsX2Nhc2VfZXh0ZW5zaW9uc2Agd2hlbiBhbmFseXppbmcgdW5uYW1lZCBl',
+ 'eHRlbnNpb25zCiogZml4ZWQgYGF2b2lkX3ByaW50YCB0byBjYXRjaCB0ZWFyLW9mZiB1c2FnZQoq',
+ 'IG5ldyBsaW50OiBgYXZvaWRfd2ViX2xpYnJhcmllc19pbl9mbHV0dGVyYCAoZXhwZXJpbWVudGFs',
+ 'KQoqIChpbnRlcm5hbCkgcHJlcGFyZSBgdW5uZWNlc3NhcnlfbGFtYmRhc2AgZm9yIGNvbWluZyBg',
+ 'TWV0aG9kSW52b2NhdGlvbmAgdnMuIGBGdW5jdGlvbkV4cHJlc3Npb25JbnZvY2F0aW9uYCBjaGFu',
+ 'Z2VzCgojIyAyLjUuMiAtIDIwMTktMTAtMDgKClRoaXMgaXMgYSBwYXRjaCByZWxlYXNlIHdpdGgg',
+ 'cHJvcGVybHkgc2lnbmVkIGJpbmFyaWVzIHJlcXVpcmVkIGZvciBtYWNPUwpDYXRhbGluYSAoSXNz',
+ 'dWUgWzM4NzY1XVtdKS4KClszODc2NV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2Rr',
+ 'L2lzc3Vlcy8zODc2NQoKIyMgMi41LjEgLSAyMDE5LTA5LTI3CgpUaGlzIGlzIGEgcGF0Y2ggcmVs',
+ 'ZWFzZSB0aGF0IHByZXZlbnRzIHR5cGUgaW5mZXJlbmNlIGZhaWx1cmVzIGluIHRoZSBhbmFseXpl',
+ 'cgooSXNzdWUgWzM4MzY1XVtdKS4KClszODM2NV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxh',
+ 'bmcvc2RrL2lzc3Vlcy8zODM2NQoKIyMgMi41LjAgLSAyMDE5LTA5LTEwCgojIyMgTGFuZ3VhZ2UK',
+ 'ClRoZSBzZXQgb2Ygb3BlcmF0aW9ucyBhbGxvd2VkIGluIGNvbnN0YW50IGV4cHJlc3Npb25zIGhh',
+ 'cyBiZWVuIGV4cGFuZGVkIGFzCmRlc2NyaWJlZCBpbgp0aGUgW2NvbnN0YW50IHVwZGF0ZSBwcm9w',
+ 'b3NhbF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9sYW5ndWFnZS9pc3N1ZXMvNjEpLgpU',
+ 'aGUgY29udHJvbCBmbG93IGFuZCBzcHJlYWQgY29sbGVjdGlvbiBmZWF0dXJlcyBzaGlwcGVkIGlu',
+ 'IERhcnQgMi4zIGFyZSBub3cgYWxzbwpzdXBwb3J0ZWQgaW4gY29uc3RhbnRzCmFzCltkZXNjcmli',
+ 'ZWQgaW4gdGhlIHNwZWNpZmljYXRpb24gaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFu',
+ 'Zy9sYW5ndWFnZS9ibG9iL21hc3Rlci9hY2NlcHRlZC8yLjMvdW5pZmllZC1jb2xsZWN0aW9ucy9m',
+ 'ZWF0dXJlLXNwZWNpZmljYXRpb24ubWQjY29uc3RhbnQtc2VtYW50aWNzKS4KClNwZWNpZmljYWxs',
+ 'eSwgaXQgaXMgbm93IHZhbGlkIHRvIHVzZSB0aGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgaW4gY29u',
+ 'c3RhbnQKZXhwcmVzc2lvbnMgdW5kZXIgdGhlIGFwcHJvcHJpYXRlIGNvbmRpdGlvbnM6CiAgLSBD',
+ 'YXN0cyAoYGUgYXMgVGApIGFuZCB0eXBlIHRlc3RzIChgZSBpcyBUYCkuCiAgLSBDb21wYXJpc29u',
+ 'cyB0byBgbnVsbGAsIGV2ZW4gZm9yIHR5cGVzIHdoaWNoIG92ZXJyaWRlIHRoZSBgPT1gIG9wZXJh',
+ 'dG9yLgogIC0gVGhlIGAmYCwgYHxgLCBhbmQgYF5gIGJpbmFyeSBvcGVyYXRvcnMgb24gYm9vbGVh',
+ 'bnMuCiAgLSBUaGUgc3ByZWFkIG9wZXJhdG9ycyAoYC4uLmAgYW5kIGAuLi4/YCkuCiAgLSBBbiBg',
+ 'aWZgIGVsZW1lbnQgaW4gYSBjb2xsZWN0aW9uIGxpdGVyYWwuCgpgYGBkYXJ0Ci8vIEV4YW1wbGU6',
+ 'IHRoZXNlIGFyZSBub3cgdmFsaWQgY29uc3RhbnRzLgpjb25zdCBPYmplY3QgaSA9IDM7CmNvbnN0',
+ 'IGxpc3QgPSBbaSBhcyBpbnRdOwpjb25zdCBzZXQgPSB7aWYgKGxpc3QgaXMgTGlzdDxpbnQ+KSAu',
+ 'Li5saXN0fTsKY29uc3QgbWFwID0ge2lmIChpIGlzIGludCkgaSA6ICJpbnQifTsKYGBgCgpJbiBh',
+ 'ZGRpdGlvbiwgdGhlIHNlbWFudGljcyBvZiBjb25zdGFudCBldmFsdWF0aW9uIGhhcyBiZWVuIGNo',
+ 'YW5nZWQgYXMgZm9sbG93czoKICAtIFRoZSBgJiZgIG9wZXJhdG9yIG9ubHkgZXZhbHVhdGVzIGl0',
+ 'cyBzZWNvbmQgb3BlcmFuZCBpZiB0aGUgZmlyc3QgZXZhbHVhdGVzCiAgdG8gdHJ1ZS4KICAtIFRo',
+ 'ZSBgfHxgIG9wZXJhdG9yIG9ubHkgZXZhbHVhdGVzIGl0cyBzZWNvbmQgb3BlcmFuZCBpZiB0aGUg',
+ 'Zmlyc3QgZXZhbHVhdGVzCiAgdG8gZmFsc2UuCiAgLSBUaGUgYD8/YCBvcGVyYXRvciBvbmx5IGV2',
+ 'YWx1YXRlcyBpdHMgc2Vjb25kIG9wZXJhbmQgaWYgdGhlIGZpcnN0IGV2YWx1YXRlcwogIHRvIG51',
+ 'bGwuCiAgLSBUaGUgY29uZGl0aW9uYWwgb3BlcmF0b3IgKGBlID8gZTEgOiBlMmApIG9ubHkgZXZh',
+ 'bHVhdGVzIG9uZSBvZiB0aGUgdHdvCiAgICBicmFuY2hlcywgZGVwZW5kaW5nIG9uIHRoZSB2YWx1',
+ 'ZSBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4KCmBgYGRhcnQKLy8gRXhhbXBsZTogeCBpcyBub3cgYSB2',
+ 'YWxpZCBjb25zdGFudCBkZWZpbml0aW9uLgpjb25zdCBTdHJpbmcgcyA9IG51bGw7CmNvbnN0IGlu',
+ 'dCB4ID0gKHMgPT0gbnVsbCkgPyAwIDogcy5sZW5ndGg7CmBgYAoKIyMjIENvcmUgbGlicmFyaWVz',
+ 'CgoqICoqQnJlYWtpbmcgY2hhbmdlKiogWyMzNjkwMF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQt',
+ 'bGFuZy9zZGsvaXNzdWVzLzM2OTAwKToKICBUaGUgZm9sbG93aW5nIG1ldGhvZHMgYW5kCiAgcHJv',
+ 'cGVydGllcyBhY3Jvc3MgdmFyaW91cyBjb3JlIGxpYnJhcmllcywgd2hpY2ggdXNlZCB0byBkZWNs',
+ 'YXJlIGEgcmV0dXJuIHR5cGUKICBvZiBgTGlzdDxpbnQ+YCwgd2VyZSB1cGRhdGVkIHRvIGRlY2xh',
+ 'cmUgYSByZXR1cm4gdHlwZSBvZiBgVWludDhMaXN0YDoKCiAgKiBgQnl0ZXNCdWlsZGVyLnRha2VC',
+ 'eXRlcygpYAogICogYEJ5dGVzQnVpbGRlci50b0J5dGVzKClgCiAgKiBgRGF0YWdyYW0uZGF0YWAK',
+ 'ICAqIGBGaWxlLnJlYWRBc0J5dGVzKClgIChgRnV0dXJlPFVpbnQ4TGlzdD5gKQogICogYEZpbGUu',
+ 'cmVhZEFzQnl0ZXNTeW5jKClgCiAgKiBgSW50ZXJuZXRBZGRyZXNzLnJhd0FkZHJlc3NgCiAgKiBg',
+ 'UmFuZG9tQWNjZXNzRmlsZS5yZWFkKClgIChgRnV0dXJlPFVpbnQ4TGlzdD5gKQogICogYFJhbmRv',
+ 'bUFjY2Vzc0ZpbGUucmVhZFN5bmMoKWAKICAqIGBSYXdTb2NrZXQucmVhZCgpYAogICogYFV0ZjhD',
+ 'b2RlYy5lbmNvZGUoKWAgKGFuZCBgVXRmOEVuY29kZXIuY29udmVydCgpYCkKCiAgSW4gYWRkaXRp',
+ 'b24sIHRoZSBmb2xsb3dpbmcgY2xhc3NlcyB3ZXJlIHVwZGF0ZWQgdG8gaW1wbGVtZW50CiAgYFN0',
+ 'cmVhbTxVaW50OExpc3Q+YCByYXRoZXIgdGhhbiBgU3RyZWFtPExpc3Q8aW50Pj5gOgoKICAqIGBI',
+ 'dHRwUmVxdWVzdGAKICAqIGBTb2NrZXRgCgogICoqUG9zc2libGUgZXJyb3JzIGFuZCBob3cgdG8g',
+ 'Zml4IHRoZW0qKgoKICAgICogPiBUaGUgYXJndW1lbnQgdHlwZSAnVXRmOERlY29kZXInIGNhbid0',
+ 'IGJlIGFzc2lnbmVkIHRvIHRoZSBwYXJhbWV0ZXIgdHlwZSAnU3RyZWFtVHJhbnNmb3JtZXI8VWlu',
+ 'dDhMaXN0LCBkeW5hbWljPicKCiAgICAgID4gdHlwZSAnVXRmOERlY29kZXInIGlzIG5vdCBhIHN1',
+ 'YnR5cGUgb2YgdHlwZSAnU3RyZWFtVHJhbnNmb3JtZXInIG9mICdzdHJlYW1UcmFuc2Zvcm1lcici',
+ ];
+}
+
+List<String> _g13(String s) {
+ return [
+ s,
+ 'CgogICAgICBZb3UgY2FuIGZpeCB0aGVzZSBjYWxsIHNpdGVzIGJ5IHVwZGF0aW5nIHlvdXIgY29k',
+ 'ZSB0byB1c2UKICAgICAgYFN0cmVhbVRyYW5zZm9ybWVyLmJpbmQoKWAgaW5zdGVhZCBvZiBgU3Ry',
+ 'ZWFtLnRyYW5zZm9ybSgpYCwgbGlrZSBzbzoKCiAgICAgICpCZWZvcmU6KiBgc3RyZWFtLnRyYW5z',
+ 'Zm9ybSh1dGY4LmRlY29kZXIpYAogICAgICAqQWZ0ZXI6KiBgdXRmOC5kZWNvZGVyLmJpbmQoc3Ry',
+ 'ZWFtKWAKCiAgICAqID4gVGhlIGFyZ3VtZW50IHR5cGUgJ0lPU2luaycgY2FuJ3QgYmUgYXNzaWdu',
+ 'ZWQgdG8gdGhlIHBhcmFtZXRlciB0eXBlICdTdHJlYW1Db25zdW1lcjxVaW50OExpc3Q+JwoKICAg',
+ 'ICAgPiB0eXBlICdfSU9TaW5rSW1wbCcgaXMgbm90IGEgc3VidHlwZSBvZiB0eXBlICdTdHJlYW1D',
+ 'b25zdW1lcjxVaW50OExpc3Q+JyBvZiAnc3RyZWFtQ29uc3VtZXInCgogICAgICBZb3UgY2FuIGZp',
+ 'eCB0aGVzZSBjYWxsIHNpdGVzIGJ5IGNhc3RpbmcgeW91ciBzdHJlYW0gaW5zdGFuY2UgdG8gYSBg',
+ 'U3RyZWFtPExpc3Q8aW50Pj5gIGJlZm9yZSBjYWxsaW5nIGAucGlwZSgpYCBvbiB0aGUgc3RyZWFt',
+ 'LCBsaWtlIHNvOgoKICAgICAgKkJlZm9yZToqIGBzdHJlYW0ucGlwZShjb25zdW1lcilgCiAgICAg',
+ 'ICpBZnRlcjoqIGBzdHJlYW0uY2FzdDxMaXN0PGludD4+KCkucGlwZShjb25zdW1lcilgCgogIEZp',
+ 'bmFsbHksIHRoZSBmb2xsb3dpbmcgdHlwZWQgbGlzdHMgd2VyZSB1cGRhdGVkIHRvIGhhdmUgdGhl',
+ 'aXIgYHN1Ymxpc3QoKWAKICBtZXRob2RzIGRlY2xhcmUgYSByZXR1cm4gdHlwZSB0aGF0IGlzIHRo',
+ 'ZSBzYW1lIGFzIHRoZSBzb3VyY2UgbGlzdDoKCiAgKiBgSW50OExpc3Quc3VibGlzdCgpYCDihpIg',
+ 'YEludDhMaXN0YAogICogYEludDE2TGlzdC5zdWJsaXN0KClgIOKGkiBgSW50MTZMaXN0YAogICog',
+ 'YEludDMyTGlzdC5zdWJsaXN0KClgIOKGkiBgSW50MzJMaXN0YAogICogYEludDY0TGlzdC5zdWJs',
+ 'aXN0KClgIOKGkiBgSW50NjRMaXN0YAogICogYEludDMyeDRMaXN0LnN1Ymxpc3QoKWAg4oaSIGBJ',
+ 'bnQzMng0TGlzdGAKICAqIGBGbG9hdDMyTGlzdC5zdWJsaXN0KClgIOKGkiBgRmxvYXQzMkxpc3Rg',
+ 'CiAgKiBgRmxvYXQ2NExpc3Quc3VibGlzdCgpYCDihpIgYEZsb2F0NjRMaXN0YAogICogYEZsb2F0',
+ 'MzJ4NExpc3Quc3VibGlzdCgpYCDihpIgYEZsb2F0MzJ4NExpc3RgCiAgKiBgRmxvYXQ2NHgyTGlz',
+ 'dC5zdWJsaXN0KClgIOKGkiBgRmxvYXQ2NHgyTGlzdGAKICAqIGBVaW50OExpc3Quc3VibGlzdCgp',
+ 'YCDihpIgYFVpbnQ4TGlzdGAKICAqIGBVaW50OENsYW1wZWRMaXN0LnN1Ymxpc3QoKWAg4oaSIGBV',
+ 'aW50OENsYW1wZWRMaXN0YAogICogYFVpbnQxNkxpc3Quc3VibGlzdCgpYCDihpIgYFVpbnQxNkxp',
+ 'c3RgCiAgKiBgVWludDMyTGlzdC5zdWJsaXN0KClgIOKGkiBgVWludDMyTGlzdGAKICAqIGBVaW50',
+ 'NjRMaXN0LnN1Ymxpc3QoKWAg4oaSIGBVaW50NjRMaXN0YAoKIyMjIyBgZGFydDphc3luY2AKCiog',
+ 'QWRkIGB2YWx1ZWAgYW5kIGBlcnJvcmAgY29uc3RydWN0b3JzIG9uIGBTdHJlYW1gCiAgdG8gYWxs',
+ 'b3cgZWFzaWx5IGNyZWF0aW5nIHNpbmdsZS12YWx1ZSBvciBzaW5nbGUtZXJyb3Igc3RyZWFtcy4K',
+ 'CiMjIyMgYGRhcnQ6Y29yZWAKCiogVXBkYXRlIGBVcmlgIGNsYXNzIHRvIHN1cHBvcnQgW1JGQzY4',
+ 'NzRdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2ODc0KToKICAiJTI1IiBvciAiJSIg',
+ 'Y2FuIGJlIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgYSB2YWxpZCBJUHY2IHJlcHJlc2VudGluZyBh',
+ 'IFpvbmUKICBJZGVudGlmaWVyLiBBIHZhbGlkIHpvbmUgSUQgY29uc2lzdHMgb2YgdW5yZXZlcnNl',
+ 'ZCBjaGFyYWN0ZXIgb3IgUGVyY2VudAogIGVuY29kZWQgb2N0ZXQsIHdoaWNoIHdhcyBkZWZpbmVk',
+ 'IGluIFJGQzM5ODYuCiAgSVB2NmFkZHJ6ID0gSVB2NmFkZHJlc3MgIiUyNSIgWm9uZUlECgogIFsy',
+ 'OTQ1Nl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yOTQ1NgoKIyMj',
+ 'IyBgZGFydDppb2AKCiogKipCcmVha2luZyBjaGFuZ2UqKiBbIzM3MTkyXShodHRwczovL2dpdGh1',
+ 'Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzcxOTIpOgogIFRoZSBgQ29va2llYCBjbGFzcydz',
+ 'IGNvbnN0cnVjdG9yJ3MgYG5hbWVgIGFuZCBgdmFsdWVgCiAgb3B0aW9uYWwgcG9zaXRpb25hbCBw',
+ 'YXJhbWV0ZXJzIGFyZSBub3cgbWFuZGF0b3J5LiBUaGUKICBzaWduYXR1cmUgY2hhbmdlcyBmcm9t',
+ 'OgoKICAgICAgQ29va2llKFtTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlXSkKCiAgdG8KCiAgICAg',
+ 'IENvb2tpZShTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKQoKICBIb3dldmVyLCBpdCBoYXMgbm90',
+ 'IGJlZW4gcG9zc2libGUgdG8gc2V0IGBuYW1lYCBhbmQgYHZhbHVlYCB0byBudWxsIHNpbmNlIERh',
+ 'cnQKICAxLjMuMCAoMjAxNCkgd2hlcmUgYSBidWcgbWFkZSBpdCBpbXBvc3NpYmxlLiBBbnkgY29k',
+ 'ZSBub3QgdXNpbmcgYm90aAogIHBhcmFtZXRlcnMgb3Igc2V0dGluZyBhbnkgdG8gbnVsbCB3b3Vs',
+ 'ZCBuZWNlc3NhcmlseSBnZXQgYSBub1N1Y2hNZXRob2QKICBleGNlcHRpb24gYXQgcnVudGltZS4g',
+ 'VGhpcyBjaGFuZ2UgY2F0Y2hlcyBzdWNoIGVycm9uZW91cyB1c2VzIGF0IGNvbXBpbGUgdGltZS4K',
+ 'ICBTaW5jZSBjb2RlIGNvdWxkIG5vdCBwcmV2aW91c2x5IGNvcnJlY3RseSBvbWl0IHRoZSBwYXJh',
+ 'bWV0ZXJzLCB0aGlzIGlzIG5vdAogIHJlYWxseSBhIGJyZWFraW5nIGNoYW5nZS4KCiogKipCcmVh',
+ 'a2luZyBjaGFuZ2UqKiBbIzM3MTkyXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9p',
+ 'c3N1ZXMvMzcxOTIpOgogIFRoZSBgQ29va2llYCBjbGFzcydzIGBuYW1lYCBhbmQgYHZhbHVlYCBz',
+ 'ZXR0ZXJzIG5vdwogIHZhbGlkYXRlcyB0aGF0IHRoZSBzdHJpbmdzIGFyZSBtYWRlIGZyb20gdGhl',
+ 'IGFsbG93ZWQgY2hhcmFjdGVyIHNldCBhbmQgYXJlIG5vdAogIG51bGwuIFRoZSBjb25zdHJ1Y3Rv',
+ 'ciBhbHJlYWR5IG1hZGUgdGhlc2UgY2hlY2tzIGFuZCB0aGlzCiAgZml4ZXMgdGhlIGxvb3Bob2xl',
+ 'IHdoZXJlIHRoZSBzZXR0ZXJzIGRpZG4ndCBhbHNvIHZhbGlkYXRlLgoKIyMjIERhcnQgVk0KCiMj',
+ 'IyBUb29scwoKIyMjIyBQdWIKCiAqIENsZWFuLXVwIGludmFsaWQgZ2l0IHJlcG9zaXRvcmllcyBp',
+ 'biBjYWNoZSB3aGVuIGZldGNoaW5nIGZyb20gZ2l0LgogKiAqKkJyZWFraW5nIGNoYW5nZSoqICBb',
+ 'IzM2NzY1XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzY3NjUpOgog',
+ 'ICBQYWNrYWdlcyBwdWJsaXNoZWQgdG8gW3B1Yi5kZXZdKGh0dHBzOi8vcHViLmRldikgY2FuIG5v',
+ 'IGxvbmdlciBjb250YWluIGdpdAogICBkZXBlbmRlbmNpZXMuIFRoZXNlIHBhY2thZ2VzIHdpbGwg',
+ 'YmUgcmVqZWN0ZWQgYnkgdGhlIHNlcnZlci4KCiMjIyMgTGludGVyCgpUaGUgTGludGVyIHdhcyB1',
+ 'cGRhdGVkIHRvIGAwLjEuOTZgLCB3aGljaCBpbmNsdWRlczoKCiogZml4ZWQgZmFsc2UgcG9zaXRp',
+ 'dmVzIGluIGB1bm5lY2Vzc2FyeV9wYXJlbnNgCiogdmFyaW91cyBjaGFuZ2VzIHRvIG1pZ3JhdGUg',
+ 'dG8gcHJlZmVycmVkIGFuYWx5emVyIEFQSXMKKiBydWxlIHRlc3QgZml4ZXMKCiMjIyMgRGFydGRv',
+ 'YwoKRGFydGRvYyB3YXMgdXBkYXRlZCB0byBgMC4yOC40YDsgdGhpcyB2ZXJzaW9uIGluY2x1ZGVz',
+ 'IHNldmVyYWwgZml4ZXMgYW5kIGlzIGJhc2VkCm9uIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgYW5h',
+ 'bHl6ZXIgcGFja2FnZS4KCiMjIDIuNC4xIC0gMjAxOS0wOC0wNwoKVGhpcyBpcyBhIHBhdGNoIHJl',
+ 'bGVhc2UgdGhhdCBmaXhlcyBhIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaW4gSklUIG1vZGUsIGFz',
+ 'CndlbGwgYXMgYSBwb3RlbnRpYWwgY3Jhc2ggb2Ygb3VyIEFPVCBjb21waWxlci4KCiMjIyBEYXJ0',
+ 'IFZNCgoqIEZpeGVkIGEgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiB3aGVyZSB1c2FnZSBvZiBgSW50',
+ 'MzJMaXN0YCBjb3VsZCB0cmlnZ2VyCiAgcmVwZWF0ZWQgZGVvcHRpbWl6YXRpb25zIGluIEpJVCBt',
+ 'b2RlIChJc3N1ZSBbMzc1NTFdW10pLgoKKiBGaXhlZCBhIGJ1ZyB3aGVyZSB1c2FnZSBvZiBhIHN0',
+ 'YXRpYyBnZXR0ZXIgd2l0aCBuYW1lIGBsZW5ndGhgIGNvdWxkIGNhdXNlIGEKICBjcmFzaCBpbiBv',
+ 'dXIgQU9UIGNvbXBpbGVyIChJc3N1ZSBbMzUxMjFdW10pLgoKWzM3NTUxXTogaHR0cHM6Ly9naXRo',
+ 'dWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzM3NTUxClszNTEyMV06IGh0dHBzOi8vZ2l0aHVi',
+ 'LmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8zNTEyMQoKIyMjIERhcnQgRGV2IENvbXBpbGVyIChE',
+ 'REMpCgpDYWxsYmFja3MgcGFzc2VkIHRvIEpTIGFuZCB3cmFwcGVkIHdpdGggYGFsbG93SW50ZXJv',
+ 'cGAgb3IKYGFsbG93SW50ZXJvcENhcHR1cmVUaGlzYCBhcmUgbm93IHN0cmljdCBhYm91dCBhcmd1',
+ 'bWVudCBjb3VudHMgYW5kIGFyZ3VtZW50CnR5cGVzLiBUaGlzIG1heSBtZWFuIHRoYXQgdGVzdHMg',
+ 'd2hpY2ggd2VyZSBwcmV2aW91c2x5IHBhc3NpbmcgYW5kIHJlbHlpbmcgb24KbG9vc2UgYXJndW1l',
+ 'bnQgY2hlY2tpbmcgKHRvbyBtYW55IG9yIHRvbyBmZXcgYXJndW1lbnRzLCBvciBhcmd1bWVudHMg',
+ 'd2l0aCB0b28Kc3BlY2lmaWMgdHlwZXMgbGlrZSBgTGlzdDxTb21ldGhpbmc+YCBpbnN0ZWFkIG9m',
+ 'IGBMaXN0PGR5bmFtaWM+YCkgbWF5IHN0YXJ0CmZhaWxpbmcuIFRoaXMgY2hhbmdlcyBtYWtlcyBE',
+ 'REMgYmVoYXZlIG1vcmUgbGlrZSBkYXJ0MmpzIHdpdGggdGhlIGRlZmF1bHQgZmxhZ3MuCgojIyAy',
+ 'LjQuMCAtIDIwMTktMDYtMjcKCiMjIyBDb3JlIGxpYnJhcmllcwoKIyMjIyBgZGFydDppc29sYXRl',
+ 'YAoKKiBgVHJhbnNmZXJhYmxlVHlwZWREYXRhYCBjbGFzcyB3YXMgYWRkZWQgdG8gZmFjaWxpdGF0',
+ 'ZSBmYXN0ZXIgY3Jvc3MtaXNvbGF0ZQpjb21tdW5pY2F0aW9uIG9mIGBVaW50OExpc3RgIGRhdGEu',
+ 'CgoqICoqQnJlYWtpbmcgY2hhbmdlKio6IGBJc29sYXRlLnJlc29sdmVQYWNrYWdlVXJpYCB3aWxs',
+ 'IGFsd2F5cyB0aHJvdyBhbgogIGBVbnN1cHBvcnRlZEVycm9yYCB3aGVuIGNvbXBpbGVkIHdpdGgg',
+ 'ZGFydDJqcyBvciBEREMuIFRoaXMgd2FzIHRoZSBvbmx5CiAgcmVtYWluaW5nIEFQSSBpbiBgZGFy',
+ 'dDppc29sYXRlYCB0aGF0IGRpZG4ndCBhdXRvbWF0aWNhbGx5IHRocm93IHNpbmNlIHdlCiAgZHJv',
+ 'cHBlZCBzdXBwb3J0IGZvciB0aGlzIGxpYnJhcnkgaW4gW0RhcnQgMi4wLjBdWzFdLiBOb3RlIHRo',
+ 'YXQgdGhlIEFQSSBhbHJlYWR5CiAgdGhyb3dzIGluIGRhcnQyanMgaWYgdGhlIEFQSSBpcyB1c2Vk',
+ 'IGRpcmVjdGx5IHdpdGhvdXQgbWFudWFsbHkgc2V0dGluZyB1cCBhCiAgYGRlZmF1bHRQYWNrYWdl',
+ 'c0Jhc2VgIGhvb2suCgpbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2Jsb2Iv',
+ 'bWFzdGVyL0NIQU5HRUxPRy5tZCMyMDAtLS0yMDE4LTA4LTA3CgoKIyMjIyBgZGFydDpkZXZlbG9w',
+ 'ZXJgCiogRXhwb3NlZCBgcmVzdWx0YCwgYGVycm9yQ29kZWAgYW5kIGBlcnJvckRldGFpbGAgZ2V0',
+ 'dGVycyBpbgogIGBTZXJ2aWNlRXh0ZW5zaW9uUmVzcG9uc2VgIHRvIGFsbG93IGZvciBiZXR0ZXIg',
+ 'ZGVidWdnaW5nIG9mIFZNIHNlcnZpY2UKICBleHRlbnNpb24gUlBDIHJlc3VsdHMuCgojIyMjIGBk',
+ 'YXJ0OmlvYAoKKiBGaXhlZCBgQ29va2llYCBjbGFzcyBpbnRlcm9wZXJhYmlsaXR5IHdpdGggY2Vy',
+ 'dGFpbiB3ZWJzaXRlcyBieSBhbGxvd2luZyB0aGUKICBjb29raWUgdmFsdWVzIHRvIGJlIHRoZSBl',
+ ];
+}
+
+List<String> _g14(String s) {
+ return [
+ s,
+ 'bXB0eSBzdHJpbmcgKElzc3VlIFszNTgwNF1bXSkgYW5kIG5vdCBzdHJpcHBpbmcKICBkb3VibGUg',
+ 'cXVvdGVzIGZyb20gdGhlIHZhbHVlIChJc3N1ZSBbMzMzMjddW10pIGluIGFjY29yZGFuY2Ugd2l0',
+ 'aCBSRkMgNjI2NS4KCiAgWzMzMzI3XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsv',
+ 'aXNzdWVzLzMzMzI3CiAgWzM1ODA0XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsv',
+ 'aXNzdWVzLzM1ODA0CgoqIFsjMzY5NzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2Rr',
+ 'L2lzc3Vlcy8zNjk3MSk6CiAgVGhlIGBIdHRwQ2xpZW50UmVzcG9uc2VgIGludGVyZmFjZSBoYXMg',
+ 'YmVlbiBleHRlbmRlZCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBhCiAgbmV3IGBjb21wcmVzc2lvblN0',
+ 'YXRlYCBnZXR0ZXIsIHdoaWNoIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBib2R5IG9mIGEKICByZXNw',
+ 'b25zZSB3YXMgY29tcHJlc3NlZCB3aGVuIGl0IHdhcyByZWNlaXZlZCBhbmQgd2hldGhlciBpdCBo',
+ 'YXMgYmVlbgogIGF1dG9tYXRpY2FsbHkgdW5jb21wcmVzc2VkIHZpYSBgSHR0cENsaWVudC5hdXRv',
+ 'VW5jb21wcmVzc2AuCgogIEFzIHBhcnQgb2YgdGhpcyBjaGFuZ2UsIGEgY29ycmVzcG9uZGluZyBu',
+ 'ZXcgZW51bSB3YXMgYWRkZWQgdG8gYGRhcnQ6aW9gOgogIGBIdHRwQ2xpZW50UmVzcG9uc2VDb21w',
+ 'cmVzc2lvblN0YXRlYC4KCiAgVGhpcyBpcyBhICoqYnJlYWtpbmcgY2hhbmdlKiogZm9yIHRob3Nl',
+ 'IGltcGxlbWVudGluZyB0aGUgYEh0dHBDbGllbnRSZXNwb25zZWAKICBpbnRlcmZhY2UgYXMgc3Vi',
+ 'Y2xhc3NlcyB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcgZ2V0dGVyLgoKIyMjIyBgZGFy',
+ 'dDphc3luY2AKCiogKipCcmVha2luZyBjaGFuZ2UqKiBbIzM2MzgyXShodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzYzODIpOgogIFRoZSBgYXdhaXQgZm9yYCBhbGxvd2Vk',
+ 'IGBudWxsYCBhcyBhIHN0cmVhbSBkdWUgdG8gYSBidWcKICBpbiBgU3RyZWFtSXRlcmF0b3JgIGNs',
+ 'YXNzLiBUaGlzIGJ1ZyBoYXMgbm93IGJlZW4gZml4ZWQuCgojIyMjIGBkYXJ0OmNvcmVgCgoqIFsj',
+ 'MzYxNzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8zNjE3MSk6CiAg',
+ 'VGhlIGBSZWdFeHBgIGludGVyZmFjZSBoYXMgYmVlbiBleHRlbmRlZCB3aXRoIHR3byBuZXcKICBj',
+ 'b25zdHJ1Y3RvciBuYW1lZCBwYXJhbWV0ZXJzOgoKICAqIGB1bmljb2RlOmAgKGBib29sYCwgZGVm',
+ 'YXVsdDogYGZhbHNlYCksIGZvciBVbmljb2RlIHBhdHRlcm5zCiAgKiBgZG90QWxsOmAgKGBib29s',
+ 'YCwgZGVmYXVsdDogYGZhbHNlYCksIHRvIGNoYW5nZSB0aGUgbWF0Y2hpbmcgYmVoYXZpb3Igb2YK',
+ 'ICAgICcuJyB0byBhbHNvIG1hdGNoIGxpbmUgdGVybWluYXRpbmcgY2hhcmFjdGVycy4KCiAgQXBw',
+ 'cm9wcmlhdGUgcHJvcGVydGllcyBmb3IgdGhlc2UgbmFtZWQgcGFyYW1ldGVycyBoYXZlIGFsc28g',
+ 'YmVlbiBhZGRlZCBzbwogIHRoZWlyIHVzZSBjYW4gYmUgZGV0ZWN0ZWQgYWZ0ZXIgY29uc3RydWN0',
+ 'aW9uLgoKICBJbiBhZGRpdGlvbiwgYFJlZ0V4cGAgbWV0aG9kcyB0aGF0IG9yaWdpbmFsbHkgcmV0',
+ 'dXJuZWQgYE1hdGNoYCBvYmplY3RzCiAgbm93IHJldHVybiBhIG1vcmUgc3BlY2lmaWMgc3VidHlw',
+ 'ZSwgYFJlZ0V4cE1hdGNoYCwgd2hpY2ggYWRkcyB0d28gZmVhdHVyZXM6CgogICogYEl0ZXJhYmxl',
+ 'PFN0cmluZz4gZ3JvdXBOYW1lc2AsIGEgcHJvcGVydHkgdGhhdCBjb250YWlucyB0aGUgbmFtZXMg',
+ 'b2YgYWxsCiAgICBuYW1lZCBjYXB0dXJlIGdyb3VwcwogICogYFN0cmluZyBuYW1lZEdyb3VwKFN0',
+ 'cmluZyBuYW1lKWAsIGEgbWV0aG9kIHRoYXQgcmV0cmlldmVzIHRoZSBtYXRjaCBmb3IKICAgIHRo',
+ 'ZSBnaXZlbiBuYW1lZCBjYXB0dXJlIGdyb3VwCgogIFRoaXMgaXMgYSAqKmJyZWFraW5nIGNoYW5n',
+ 'ZSoqIGZvciBpbXBsZW1lbnRlcnMgb2YgdGhlIGBSZWdFeHBgIGludGVyZmFjZS4KICBTdWJjbGFz',
+ 'c2VzIHdpbGwgbmVlZCB0byBhZGQgdGhlIG5ldyBwcm9wZXJ0aWVzIGFuZCBtYXkgaGF2ZSB0byB1',
+ 'cGRhdGUgdGhlCiAgcmV0dXJuIHR5cGVzIG9uIG92ZXJyaWRkZW4gbWV0aG9kcy4KCiMjIyBMYW5n',
+ 'dWFnZQoKKiAgICoqQnJlYWtpbmcgY2hhbmdlKiogWyMzNTA5N10oaHR0cHM6Ly9naXRodWIuY29t',
+ 'L2RhcnQtbGFuZy9zZGsvaXNzdWVzLzM1MDk3KToKICAgIENvdmFyaWFuY2Ugb2YgdHlwZSB2YXJp',
+ 'YWJsZXMgdXNlZCBpbiBzdXBlci1pbnRlcmZhY2VzCiAgICBpcyBub3cgZW5mb3JjZWQuIEZvciBl',
+ 'eGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvZGUgd2FzCiAgICBwcmV2aW91c2x5IGFjY2VwdGVkIGFu',
+ 'ZCB3aWxsIG5vdyBiZSByZWplY3RlZDoKCmBgYGRhcnQKY2xhc3MgQTxYPiB7fTsKY2xhc3MgQjxY',
+ 'PiBleHRlbmRzIEE8dm9pZCBGdW5jdGlvbihYKT4ge307CmBgYAoKKiBUaGUgaWRlbnRpZmllciBg',
+ 'YXN5bmNgIGNhbiBub3cgYmUgdXNlZCBpbiBhc3luY2hyb25vdXMgYW5kIGdlbmVyYXRvcgogIGZ1',
+ 'bmN0aW9ucy4KCiMjIyBEYXJ0IGZvciB0aGUgV2ViCgojIyMjIERhcnQgRGV2IENvbXBpbGVyIChE',
+ 'REMpCgoqIEltcHJvdmUgYE5vU3VjaE1ldGhvZGAgZXJyb3JzIGZvciBmYWlsaW5nIGR5bmFtaWMg',
+ 'Y2FsbHMuIE5vdyB0aGV5IGluY2x1ZGUKICBzcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUg',
+ 'bmF0dXJlIG9mIHRoZSBlcnJvciBzdWNoIGFzOgogICogQXR0ZW1wdGluZyB0byBjYWxsIGEgbnVs',
+ 'bCB2YWx1ZS4KICAqIENhbGxpbmcgYW4gb2JqZWN0IGluc3RhbmNlIHdpdGggYSBudWxsIGBjYWxs',
+ 'KClgIG1ldGhvZC4KICAqIFBhc3NpbmcgdG9vIGZldyBvciB0b28gbWFueSBhcmd1bWVudHMuCiAg',
+ 'KiBQYXNzaW5nIGluY29ycmVjdCBuYW1lZCBhcmd1bWVudHMuCiAgKiBQYXNzaW5nIHRvbyBmZXcg',
+ 'b3IgdG9vIG1hbnkgdHlwZSBhcmd1bWVudHMuCiAgKiBQYXNzaW5nIHR5cGUgYXJndW1lbnRzIHRv',
+ 'IGEgbm9uLWdlbmVyaWMgbWV0aG9kLgoKIyMjIFRvb2xzCgojIyMjIExpbnRlcgoKVGhlIExpbnRl',
+ 'ciB3YXMgdXBkYXRlZCB0byBgMC4xLjkxYCwgd2hpY2ggaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBj',
+ 'aGFuZ2VzOgoKKiBGaXhlZCBtaXNzZWQgY2FzZXMgaW4gYHByZWZlcl9jb25zdF9jb25zdHJ1Y3Rv',
+ 'cnNgCiogRml4ZWQgYHByZWZlcl9pbml0aWFsaXppbmdfZm9ybWFsc2AgdG8gbm8gbG9uZ2VyIHN1',
+ 'Z2dlc3QgQVBJIGJyZWFraW5nIGNoYW5nZXMKKiBVcGRhdGVkIGBvbWl0X2xvY2FsX3ZhcmlhYmxl',
+ 'X3R5cGVzYCB0byBhbGxvdyBleHBsaWNpdCBgZHluYW1pY2BzCiogRml4ZWQgbnVsbC1yZWZlcmVu',
+ 'Y2UgaW4gYHVucmVsYXRlZF90eXBlX2VxdWFsaXR5X2NoZWNrc2AKKiBOZXcgbGludDogYHVuc2Fm',
+ 'ZV9odG1sYAoqIEJyb2FkZW5lZCBgcHJlZmVyX251bGxfYXdhcmVfb3BlcmF0b3JzYCB0byB3b3Jr',
+ 'IGJleW9uZCBsb2NhbCB2YXJpYWJsZXMuCiogQWRkZWQgYHByZWZlcl9pZl9udWxsX29wZXJhdG9y',
+ 'c2AuCiogRml4ZWQgYHByZWZlcl9jb250YWluc2AgZmFsc2UgcG9zaXRpdmVzLgoqIEZpeGVkIGB1',
+ 'bm5lY2Vzc2FyeV9wYXJlbnRoZXNpc2AgZmFsc2UgcG9zaXRpdmVzLgoqIEZpeGVkIGBwcmVmZXJf',
+ 'YXNzZXJ0c19pbl9pbml0aWFsaXplcl9saXN0c2AgZmFsc2UgcG9zaXRpdmVzCiogRml4ZWQgYGN1',
+ 'cmx5X2JyYWNlc19pbl9mbG93X2NvbnRyb2xfc3RydWN0dXJlc2AgdG8gaGFuZGxlIG1vcmUgY2Fz',
+ 'ZXMKKiBOZXcgbGludDogYHByZWZlcl9kb3VibGVfcXVvdGVzYAoqIE5ldyBsaW50OiBgc29ydF9j',
+ 'aGlsZF9wcm9wZXJ0aWVzX2xhc3RgCiogRml4ZWQgYHR5cGVfYW5ub3RhdGVfcHVibGljX2FwaXNg',
+ 'IGZhbHNlIHBvc2l0aXZlIGZvciBgc3RhdGljIGNvbnN0YCBpbml0aWFsaXplcnMKCiMjIyMgUHVi',
+ 'CgoqIGBwdWIgcHVibGlzaGAgd2lsbCBubyBsb25nZXIgd2FybiBhYm91dCBtaXNzaW5nIGRlcGVu',
+ 'ZGVuY2llcyBmb3IgaW1wb3J0CiAgIHN0YXRlbWVudHMgaW4gYGV4YW1wbGUvYC4KKiBPQXV0aDIg',
+ 'YXV0aGVudGljYXRpb24gd2lsbCBleHBsaWNpdGx5IGFzayBmb3IgdGhlIGBvcGVuaWRgIHNjb3Bl',
+ 'LgoKIyMgMi4zLjIgLSAyMDE5LTA2LTExCgpUaGlzIGlzIGEgcGF0Y2ggdmVyc2lvbiByZWxlYXNl',
+ 'IHdpdGggYSBzZWN1cml0eSBpbXByb3ZlbWVudC4KCiMjIyBTZWN1cml0eSB2dWxuZXJhYmlsaXR5',
+ 'CgoqICAqKlNlY3VyaXR5IGltcHJvdmVtZW50OioqIE9uIExpbnV4IGFuZCBBbmRyb2lkLCBzdGFy',
+ 'dGluZyBhIHByb2Nlc3Mgd2l0aAogICBgUHJvY2Vzcy5ydW5gLCBgUHJvY2Vzcy5ydW5TeW5jYCwg',
+ 'b3IgYFByb2Nlc3Muc3RhcnRgIHdvdWxkIGZpcnN0IHNlYXJjaCB0aGUKICAgY3VycmVudCBkaXJl',
+ 'Y3RvcnkgYmVmb3JlIHNlYXJjaGluZyBgUEFUSGAgKElzc3VlIFszNzEwMV1bXSkuIFRoaXMgYmVo',
+ 'YXZpb3IKICAgZWZmZWN0aXZlbHkgcHV0IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGlu',
+ 'IHRoZSBmcm9udCBvZiBgUEFUSGAsIGV2ZW4gaWYKICAgaXQgd2Fzbid0IGluIHRoZSBgUEFUSGAu',
+ 'IFRoaXMgcmVsZWFzZSBjaGFuZ2VzIHRoYXQgYmVoYXZpb3IgdG8gb25seSBzZWFyY2hpbmcKICAg',
+ 'dGhlIGRpcmVjdG9yaWVzIGluIHRoZSBgUEFUSGAgZW52aXJvbm1lbnQgdmFyaWFibGUuIE9wZXJh',
+ 'dGluZyBzeXN0ZW1zIG90aGVyCiAgIHRoYW4gTGludXggYW5kIEFuZHJvaWQgZGlkbid0IGhhdmUg',
+ 'dGhpcyBiZWhhdmlvciBhbmQgYXJlbid0IGFmZmVjdGVkIGJ5IHRoaXMKICAgdnVsbmVyYWJpbGl0',
+ 'eS4KCiAgIFRoaXMgdnVsbmVyYWJpbGl0eSBjb3VsZCByZXN1bHQgaW4gZXhlY3V0aW9uIG9mIHVu',
+ 'dHJ1c3RlZCBjb2RlIGlmIGEgY29tbWFuZAogICB3aXRob3V0IGEgc2xhc2ggaW4gaXRzIG5hbWUg',
+ 'd2FzIHJ1biBpbnNpZGUgYW4gdW50cnVzdGVkIGRpcmVjdG9yeSBjb250YWluaW5nCiAgIGFuIGV4',
+ 'ZWN1dGFibGUgZmlsZSB3aXRoIHRoYXQgbmFtZToKCiAgIGBgYGRhcnQKICAgUHJvY2Vzcy5ydW4o',
+ 'ImxzIiwgd29ya2luZ0RpcmVjdG9yeTogIi91bnRydXN0ZWQvZGlyZWN0b3J5IikKICAgYGBgCgog',
+ 'ICBUaGlzIHdvdWxkIGF0dGVtcHQgdG8gcnVuIGAvdW50cnVzdGVkL2RpcmVjdG9yeS9sc2AgaWYg',
+ 'aXQgZXhpc3RlZCwgZXZlbgogICB0aG91Z2ggaXQgaXMgbm90IGluIHRoZSBgUEFUSGAuIEl0IHdh',
+ 'cyBhbHdheXMgc2FmZSB0byBpbnN0ZWFkIHVzZSBhbiBhYnNvbHV0ZQogICBwYXRoIG9yIGEgcGF0',
+ 'aCBjb250YWluaW5nIGEgc2xhc2guCgogICBUaGlzIHZ1bG5lcmFiaWxpdHkgd2FzIGludHJvZHVj',
+ 'ZWQgaW4gRGFydCAyLjAuMC4KClszNzEwMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcv',
+ 'c2RrL2lzc3Vlcy8zNzEwMQoKIyMgMi4zLjEgLSAyMDE5LTA1LTIxCgpUaGlzIGlzIGEgcGF0Y2gg',
+ 'dmVyc2lvbiByZWxlYXNlIHdpdGggYnVnIGZpeGVzLgoKIyMjIFRvb2xzCgojIyMjIGRhcnQyanMK',
+ 'CiogRml4ZWQgYSBidWcgdGhhdCBjYXVzZWQgdGhlIGNvbXBpbGVyIHRvIGNyYXNoIHdoZW4gaXQg',
+ 'Y29tcGlsZWQgVUktYXMtY29kZQogIGZlYXR1cmVzIHdpdGhpbiBmaWVsZHMgKElzc3VlIFszNjg2',
+ 'NF1bXSkuCgpbMzY4NjRdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMv',
+ 'MzY4NjQKCiMjIDIuMy4wIC0gMjAxOS0wNS0wOAoKVGhlIGZvY3VzIGluIHRoaXMgcmVsZWFzZSBp',
+ 'cyBvbiB0aGUgbmV3ICJVSS1hcy1jb2RlIiBsYW5ndWFnZSBmZWF0dXJlcyB3aGljaAptYWtlIGNv',
+ ];
+}
+
+List<String> _g15(String s) {
+ return [
+ s,
+ 'bGxlY3Rpb25zIG1vcmUgZXhwcmVzc2l2ZSBhbmQgZGVjbGFyYXRpdmUuCgojIyMgTGFuZ3VhZ2UK',
+ 'CkZsdXR0ZXIgaXMgZ3Jvd2luZyByYXBpZGx5LCB3aGljaCBtZWFucyBtYW55IERhcnQgdXNlcnMg',
+ 'YXJlIGJ1aWxkaW5nIFVJIGluIGNvZGUKb3V0IG9mIGJpZyBkZWVwbHktbmVzdGVkIGV4cHJlc3Np',
+ 'b25zLiBPdXIgZ29hbCB3aXRoIDIuMy4wIHdhcyB0byBbbWFrZSB0aGF0IGtpbmQKb2YgY29kZSBl',
+ 'YXNpZXIgdG8gd3JpdGUgYW5kIG1haW50YWluXVt1aS1hcy1jb2RlXS4gQ29sbGVjdGlvbiBsaXRl',
+ 'cmFscyBhcmUgYQpsYXJnZSBjb21wb25lbnQsIHNvIHdlIGZvY3VzZWQgb24gdGhyZWUgZmVhdHVy',
+ 'ZXMgdG8gbWFrZSBjb2xsZWN0aW9ucyBtb3JlCnBvd2VyZnVsLiBXZSdsbCB1c2UgbGlzdCBsaXRl',
+ 'cmFscyBpbiB0aGUgZXhhbXBsZXMgYmVsb3csIGJ1dCB0aGVzZSBmZWF0dXJlcyBhbHNvCndvcmsg',
+ 'aW4gbWFwIGFuZCBzZXQgbGl0ZXJhbHMuCgpbdWktYXMtY29kZV06IGh0dHBzOi8vbWVkaXVtLmNv',
+ 'bS9kYXJ0bGFuZy9tYWtpbmctZGFydC1hLWJldHRlci1sYW5ndWFnZS1mb3ItdWktZjFjY2FmOWY1',
+ 'NDZjCgojIyMjIFNwcmVhZAoKUGxhY2luZyBgLi4uYCBiZWZvcmUgYW4gZXhwcmVzc2lvbiBpbnNp',
+ 'ZGUgYSBjb2xsZWN0aW9uIGxpdGVyYWwgdW5wYWNrcyB0aGUKcmVzdWx0IG9mIHRoZSBleHByZXNz',
+ 'aW9uIGFuZCBpbnNlcnRzIGl0cyBlbGVtZW50cyBkaXJlY3RseSBpbnNpZGUgdGhlIG5ldwpjb2xs',
+ 'ZWN0aW9uLiBXaGVyZSBiZWZvcmUgeW91IGhhZCB0byB3cml0ZSBzb21ldGhpbmcgbGlrZSB0aGlz',
+ 'OgoKYGBgZGFydApDdXBlcnRpbm9QYWdlU2NhZmZvbGQoCiAgY2hpbGQ6IExpc3RWaWV3KGNoaWxk',
+ 'cmVuOiBbCiAgICBUYWIySGVhZGVyKCkKICBdLi5hZGRBbGwoYnVpbGRUYWIyQ29udmVyc2F0aW9u',
+ 'KCkpCiAgICAuLmFkZChidWlsZEZvb3RlcigpKSksCik7CmBgYAoKTm93IHlvdSBjYW4gd3JpdGUg',
+ 'dGhpczoKCmBgYGRhcnQKQ3VwZXJ0aW5vUGFnZVNjYWZmb2xkKAogIGNoaWxkOiBMaXN0Vmlldyhj',
+ 'aGlsZHJlbjogWwogICAgVGFiMkhlYWRlcigpLAogICAgLi4uYnVpbGRUYWIyQ29udmVyc2F0aW9u',
+ 'KCksCiAgICBidWlsZEZvb3RlcigpCiAgXSksCik7CmBgYAoKSWYgeW91IGtub3cgdGhlIGV4cHJl',
+ 'c3Npb24gbWlnaHQgZXZhbHVhdGUgdG8gbnVsbCBhbmQgeW91IHdhbnQgdG8gdHJlYXQgdGhhdCBh',
+ 'cwplcXVpdmFsZW50IHRvIHplcm8gZWxlbWVudHMsIHlvdSBjYW4gdXNlIHRoZSBudWxsLWF3YXJl',
+ 'IHNwcmVhZCBgLi4uP2AuCgojIyMjIENvbGxlY3Rpb24gaWYKClNvbWV0aW1lcyB5b3UgbWlnaHQg',
+ 'd2FudCB0byBpbmNsdWRlIG9uZSBvciBtb3JlIGVsZW1lbnRzIGluIGEgY29sbGVjdGlvbiBvbmx5',
+ 'CnVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4gSWYgeW91J3JlIGx1Y2t5LCB5b3UgY2FuIHVzZSBh',
+ 'IGA/OmAgb3BlcmF0b3IgdG8Kc2VsZWN0aXZlbHkgc3dhcCBvdXQgYSBzaW5nbGUgZWxlbWVudCwg',
+ 'YnV0IGlmIHlvdSB3YW50IHRvIGV4Y2hhbmdlIG1vcmUgdGhhbiBvbmUKb3Igb21pdCBlbGVtZW50',
+ 'cywgeW91IGFyZSBmb3JjZWQgdG8gd3JpdGUgaW1wZXJhdGl2ZSBjb2RlIGxpa2UgdGhpczoKCmBg',
+ 'YGRhcnQKV2lkZ2V0IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgdmFyIGNoaWxkcmVu',
+ 'ID0gWwogICAgSWNvbkJ1dHRvbihpY29uOiBJY29uKEljb25zLm1lbnUpKSwKICAgIEV4cGFuZGVk',
+ 'KGNoaWxkOiB0aXRsZSkKICBdOwoKICBpZiAoaXNBbmRyb2lkKSB7CiAgICBjaGlsZHJlbi5hZGQo',
+ 'SWNvbkJ1dHRvbihpY29uOiBJY29uKEljb25zLnNlYXJjaCkpKTsKICB9CgogIHJldHVybiBSb3co',
+ 'Y2hpbGRyZW46IGNoaWxkcmVuKTsKfQpgYGAKCldlIG5vdyBhbGxvdyBgaWZgIGluc2lkZSBjb2xs',
+ 'ZWN0aW9uIGxpdGVyYWxzIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBvciAod2l0aApgZWxzZWApIHN3',
+ 'YXAgb3V0IGFuIGVsZW1lbnQ6CgpgYGBkYXJ0CldpZGdldCBidWlsZChCdWlsZENvbnRleHQgY29u',
+ 'dGV4dCkgewogIHJldHVybiBSb3coCiAgICBjaGlsZHJlbjogWwogICAgICBJY29uQnV0dG9uKGlj',
+ 'b246IEljb24oSWNvbnMubWVudSkpLAogICAgICBFeHBhbmRlZChjaGlsZDogdGl0bGUpLAogICAg',
+ 'ICBpZiAoaXNBbmRyb2lkKQogICAgICAgIEljb25CdXR0b24oaWNvbjogSWNvbihJY29ucy5zZWFy',
+ 'Y2gpKSwKICAgIF0sCiAgKTsKfQpgYGAKClVubGlrZSB0aGUgZXhpc3RpbmcgYD86YCBvcGVyYXRv',
+ 'ciwgYSBjb2xsZWN0aW9uIGBpZmAgY2FuIGJlIGNvbXBvc2VkIHdpdGgKc3ByZWFkcyB0byBjb25k',
+ 'aXRpb25hbGx5IGluY2x1ZGUgb3Igb21pdCBtdWx0aXBsZSBpdGVtczoKCmBgYGRhcnQKV2lkZ2V0',
+ 'IGJ1aWxkKEJ1aWxkQ29udGV4dCBjb250ZXh0KSB7CiAgcmV0dXJuIFJvdygKICAgIGNoaWxkcmVu',
+ 'OiBbCiAgICAgIEljb25CdXR0b24oaWNvbjogSWNvbihJY29ucy5tZW51KSksCiAgICAgIGlmIChp',
+ 'c0FuZHJvaWQpIC4uLlsKICAgICAgICBFeHBhbmRlZChjaGlsZDogdGl0bGUpLAogICAgICAgIElj',
+ 'b25CdXR0b24oaWNvbjogSWNvbihJY29ucy5zZWFyY2gpKSwKICAgICAgXQogICAgXSwKICApOwp9',
+ 'CmBgYAoKIyMjIyBDb2xsZWN0aW9uIGZvcgoKSW4gbWFueSBjYXNlcywgdGhlIGhpZ2hlci1vcmRl',
+ 'ciBtZXRob2RzIG9uIEl0ZXJhYmxlIGdpdmUgeW91IGEgZGVjbGFyYXRpdmUgd2F5CnRvIG1vZGlm',
+ 'eSBhIGNvbGxlY3Rpb24gaW4gdGhlIGNvbnRleHQgb2YgYSBzaW5nbGUgZXhwcmVzc2lvbi4gQnV0',
+ 'IHNvbWUKb3BlcmF0aW9ucywgZXNwZWNpYWxseSBpbnZvbHZpbmcgYm90aCB0cmFuc2Zvcm1pbmcg',
+ 'YW5kIGZpbHRlcmluZywgY2FuIGJlCmN1bWJlcnNvbWUgdG8gZXhwcmVzcyBpbiBhIGZ1bmN0aW9u',
+ 'YWwgc3R5bGUuCgpUbyBzb2x2ZSB0aGlzIHByb2JsZW0sIHlvdSBjYW4gdXNlIGBmb3JgIGluc2lk',
+ 'ZSBhIGNvbGxlY3Rpb24gbGl0ZXJhbC4gRWFjaAppdGVyYXRpb24gb2YgdGhlIGxvb3AgcHJvZHVj',
+ 'ZXMgYW4gZWxlbWVudCB3aGljaCBpcyB0aGVuIGluc2VydGVkIGluIHRoZQpyZXN1bHRpbmcgY29s',
+ 'bGVjdGlvbi4gQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBjb2RlOgoKYGBgZGFydAp2YXIgY29tbWFu',
+ 'ZCA9IFsKICBlbmdpbmVEYXJ0UGF0aCwKICBmcm9udGVuZFNlcnZlciwKICAuLi5maWxlU3lzdGVt',
+ 'Um9vdHMubWFwKChyb290KSA9PiAiLS1maWxlc3lzdGVtLXJvb3Q9JHJvb3QiKSwKICAuLi5lbnRy',
+ 'eVBvaW50cwogICAgICAud2hlcmUoKGVudHJ5UG9pbnQpID0+IGZpbGVFeGlzdHMoImxpYi8kZW50',
+ 'cnlQb2ludC5qc29uIikpCiAgICAgIC5tYXAoKGVudHJ5UG9pbnQpID0+ICJsaWIvJGVudHJ5UG9p',
+ 'bnQiKSwKICBtYWluUGF0aApdOwpgYGAKCldpdGggYSBjb2xsZWN0aW9uIGBmb3JgLCB0aGUgY29k',
+ 'ZSBiZWNvbWVzIHNpbXBsZXI6CgpgYGBkYXJ0CnZhciBjb21tYW5kID0gWwogIGVuZ2luZURhcnRQ',
+ 'YXRoLAogIGZyb250ZW5kU2VydmVyLAogIGZvciAodmFyIHJvb3QgaW4gZmlsZVN5c3RlbVJvb3Rz',
+ 'KSAiLS1maWxlc3lzdGVtLXJvb3Q9JHJvb3QiLAogIGZvciAodmFyIGVudHJ5UG9pbnQgaW4gZW50',
+ 'cnlQb2ludHMpCiAgICBpZiAoZmlsZUV4aXN0cygibGliLyRlbnRyeVBvaW50Lmpzb24iKSkgImxp',
+ 'Yi8kZW50cnlQb2ludCIsCiAgbWFpblBhdGgKXTsKYGBgCgpBcyB5b3UgY2FuIHNlZSwgYWxsIHRo',
+ 'cmVlIG9mIHRoZXNlIGZlYXR1cmVzIGNhbiBiZSBmcmVlbHkgY29tcG9zZWQuIEZvciBmdWxsCmRl',
+ 'dGFpbHMgb2YgdGhlIGNoYW5nZXMsIHNlZSBbdGhlIG9mZmljaWFsIHByb3Bvc2FsXVt1aS1hcy1j',
+ 'b2RlIHByb3Bvc2FsXS4KClt1aS1hcy1jb2RlIHByb3Bvc2FsXTogaHR0cHM6Ly9naXRodWIuY29t',
+ 'L2RhcnQtbGFuZy9sYW5ndWFnZS9ibG9iL21hc3Rlci9hY2NlcHRlZC9mdXR1cmUtcmVsZWFzZXMv',
+ 'dW5pZmllZC1jb2xsZWN0aW9ucy9mZWF0dXJlLXNwZWNpZmljYXRpb24ubWQKCioqTm90ZTogVGhl',
+ 'c2UgZmVhdHVyZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGluICpjb25zdCogY29sbGVj',
+ 'dGlvbgpsaXRlcmFscy4gSW4gYSBmdXR1cmUgcmVsZWFzZSwgd2UgaW50ZW5kIHRvIHJlbGF4IHRo',
+ 'aXMgcmVzdHJpY3Rpb24gYW5kIGFsbG93CnNwcmVhZCBhbmQgY29sbGVjdGlvbiBgaWZgIGluc2lk',
+ 'ZSBjb25zdCBjb2xsZWN0aW9ucy4qKgoKIyMjIENvcmUgbGlicmFyeSBjaGFuZ2VzCgojIyMjIGBk',
+ 'YXJ0Omlzb2xhdGVgCgoqICAgQWRkZWQgYGRlYnVnTmFtZWAgcHJvcGVydHkgdG8gYElzb2xhdGVg',
+ 'LgoqICAgQWRkZWQgYGRlYnVnTmFtZWAgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIGBJc29sYXRlLnNw',
+ 'YXduYCBhbmQKICAgIGBJc29sYXRlLnNwYXduVXJpYC4KCiMjIyMgYGRhcnQ6Y29yZWAKCiogICBS',
+ 'ZWdFeHAgcGF0dGVybnMgY2FuIG5vdyB1c2UgbG9va2JlaGluZCBhc3NlcnRpb25zLgoqICAgUmVn',
+ 'RXhwIHBhdHRlcm5zIGNhbiBub3cgdXNlIG5hbWVkIGNhcHR1cmUgZ3JvdXBzIGFuZCBuYW1lZCBi',
+ 'YWNrcmVmZXJlbmNlcy4KICAgIEN1cnJlbnRseSwgbmFtZWQgZ3JvdXAgbWF0Y2hlcyBjYW4gb25s',
+ 'eSBiZSByZXRyaWV2ZWQgaW4gRGFydCBlaXRoZXIgYnkgdGhlCiAgICBpbXBsaWNpdCBpbmRleCBv',
+ 'ZiB0aGUgbmFtZWQgZ3JvdXAgb3IgYnkgZG93bmNhc3RpbmcgdGhlIHJldHVybmVkIE1hdGNoCiAg',
+ 'ICBvYmplY3QgdG8gdGhlIHR5cGUgUmVnRXhwTWF0Y2guIFRoZSBSZWdFeHBNYXRjaCBpbnRlcmZh',
+ 'Y2UgY29udGFpbnMgbWV0aG9kcwogICAgZm9yIHJldHJpZXZpbmcgdGhlIGF2YWlsYWJsZSBncm91',
+ 'cCBuYW1lcyBhbmQgcmV0cmlldmluZyBhIG1hdGNoIGJ5IGdyb3VwCiAgICBuYW1lLgoKIyMjIERh',
+ 'cnQgVk0KCiogICBUaGUgVk0gc2VydmljZSBub3cgcmVxdWlyZXMgYW4gYXV0aGVudGljYXRpb24g',
+ 'Y29kZSBieSBkZWZhdWx0LiBUaGlzIGJlaGF2aW9yCiAgICBjYW4gYmUgZGlzYWJsZWQgYnkgcHJv',
+ 'dmlkaW5nIHRoZSBgLS1kaXNhYmxlLXNlcnZpY2UtYXV0aC1jb2Rlc2AgZmxhZy4KCiogICBTdXBw',
+ 'b3J0IGZvciBkZXByZWNhdGVkIGZsYWdzICctYycgYW5kICctLWNoZWNrZWQnIGhhcyBiZWVuIHJl',
+ 'bW92ZWQuCgojIyMgRGFydCBmb3IgdGhlIFdlYgoKIyMjIyBkYXJ0MmpzCgpBIGJpbmFyeSBmb3Jt',
+ 'YXQgd2FzIGFkZGVkIHRvIGR1bXAtaW5mby4gVGhlIG9sZCBKU09OIGZvcm1hdCBpcyBzdGlsbCBh',
+ 'dmFpbGFibGUKYW5kIHByb3ZpZGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSBhcmUgc3RhcnRpbmcgdG8g',
+ 'ZGVwcmVjYXRlIGl0LiBUaGUgbmV3IGJpbmFyeQpmb3JtYXQgaXMgbW9yZSBjb21wYWN0IGFuZCBj',
+ 'aGVhcGVyIHRvIGdlbmVyYXRlLiBPbiBzb21lIGxhcmdlIGFwcHMgd2UgdGVzdGVkLCBpdAp3YXMg',
+ 'NHggZmFzdGVyIHRvIHNlcmlhbGl6ZSBhbmQgdXNlZCA2eCBsZXNzIG1lbW9yeS4KClRvIHVzZSB0',
+ 'aGUgYmluYXJ5IGZvcm1hdCB0b2RheSwgdXNlIGAtLWR1bXAtaW5mbz1iaW5hcnlgLCBpbnN0ZWFk',
+ 'IG9mCmAtLWR1bXAtaW5mb2AuCgpXaGF0IHRvIGV4cGVjdCBuZXh0PwoKKiAgIFRoZSBbdmlzdWFs',
+ 'aXplciB0b29sXVt2aXN1YWxpemVyXSB3aWxsIG5vdCBiZSB1cGRhdGVkIHRvIHN1cHBvcnQgdGhl',
+ 'IG5ldwogICAgYmluYXJ5IGZvcm1hdCwgYnV0IHlvdSBjYW4gZmluZCBzZXZlcmFsIGNvbW1hbmQt',
+ 'bGluZSB0b29scyBhdAogICAgYHBhY2thZ2U6ZGFydDJqc19pbmZvYCB0aGF0IHByb3ZpZGUgc2lt',
+ 'aWxhciBmZWF0dXJlcyB0byB0aG9zZSBpbiB0aGUKICAgIHZpc3VhbGl6ZXIuCgoqICAgVGhlIGNv',
+ ];
+}
diff --git a/benchmarks/StringPool/dart/version2.dart b/benchmarks/StringPool/dart/version2.dart
new file mode 100644
index 0000000..b75ec6a
--- /dev/null
+++ b/benchmarks/StringPool/dart/version2.dart
@@ -0,0 +1,1617 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+List<List<String> Function(String)> version2x1500() {
+ return [
+ _h1,
+ _h2,
+ _h3,
+ _h4,
+ _h5,
+ _h6,
+ _h7,
+ _h8,
+ _h9,
+ _h10,
+ _h11,
+ _h12,
+ _h13,
+ _h14,
+ _h15
+ ];
+}
+
+List<List<String> Function(String)> version2x100() {
+ return [_h15];
+}
+
+List<String> _h1(String s) {
+ return [
+ s,
+ 'ciBhbGwgY2hhbmdlcyB0byBkYXJ0Omh0bWwgc2luY2UgMS54Ci0tPgoKIyMjIyBgZGFydDpodG1s',
+ 'YAoKKiAgIFJlbW92ZWQgZGVwcmVjYXRlZCBgcXVlcnlgIGFuZCBgcXVlcnlBbGxgLiBVc2UgYHF1',
+ 'ZXJ5U2VsZWN0b3JgIGFuZAogICAgYHF1ZXJ5U2VsZWN0b3JBbGxgLgoKIyMjIyBgZGFydDppb2AK',
+ 'CiogICBgSHR0cFN0YXR1c2AgYWRkZWQgYFVQR1JBREVfUkVRVUlSRURgLgoqICAgYElPT3ZlcnJp',
+ 'ZGVzYCBhbmQgYEh0dHBPdmVycmlkZXNgIGFkZGVkIHRvIGFpZCBpbiB3cml0aW5nIHRlc3RzIHRo',
+ 'YXQgd2lzaCB0bwogICAgbW9jayB2YXJpb3MgYGRhcnQ6aW9gIG9iamVjdHMuCiogICBgUGxhdGZv',
+ 'cm0ub3BlcmF0aW5nU3lzdGVtVmVyc2lvbmAgYWRkZWQgIHRoYXQgZ2l2ZXMgYSBwbGF0Zm9ybS1z',
+ 'cGVjaWZpYwogICAgU3RyaW5nIGRlc2NyaWJpbmcgdGhlIHZlcnNpb24gb2YgdGhlIG9wZXJhdGlu',
+ 'ZyBzeXN0ZW0uCiogICBgUHJvY2Vzc1N0YXJ0TW9kZS5JTkhFUklUX1NURElPYCBhZGRlZCwgd2hp',
+ 'Y2ggYWxsb3dzIGEgY2hpbGQgcHJvY2VzcyB0bwogICAgaW5oZXJpdCB0aGUgcGFyZW50J3Mgc3Rk',
+ 'aW8gaGFuZGxlcy4KKiAgIGBSYXdaTGliRmlsdGVyYCBhZGRlZCAgZm9yIGxvdy1sZXZlbCBhY2Nl',
+ 'c3MgdG8gY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24KICAgIHJvdXRpbmVzLgoqICAgVW5p',
+ 'ZmllZCBiYWNrZW5kcyBmb3IgYFNlY3VyZVNvY2tldGAsIGBTZWN1cml0eUNvbnRleHRgLCBhbmQK',
+ 'ICAgIGBYNTA5Q2VydGlmaWNhdGVgIHRvIGJlIGNvbnNpc3RlbnQgYWNyb3NzIGFsbCBwbGF0Zm9y',
+ 'bXMuIEFsbCBgU2VjdXJlU29ja2V0YCwKICAgIGBTZWN1cml0eUNvbnRleHRgLCBhbmQgYFg1MDlD',
+ 'ZXJ0aWZpY2F0ZWAgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBhcmUgbm93CiAgICBzdXBwb3J0ZWQg',
+ 'b24gaU9TIGFuZCBPU1guCiogICBgU2VjdXJpdHlDb250ZXh0LmFscG5TdXBwb3J0ZWRgIGRlcHJl',
+ 'Y2F0ZWQgYXMgQUxQTiBpcyBub3cgc3VwcG9ydGVkIG9uIGFsbAogICAgcGxhdGZvcm1zLgoqICAg',
+ 'YFNlY3VyaXR5Q29udGV4dGA6IGFkZGVkIGB3aXRoVHJ1c3RlZFJvb3RzYCBuYW1lZCBvcHRpb25h',
+ 'bCBwYXJhbWV0ZXIKICAgIGNvbnN0cnVjdG9yLCB3aGljaCBkZWZhdWx0cyB0byBmYWxzZS4KKiAg',
+ 'IEFkZGVkIGEgYHRpbWVvdXRgIHBhcmFtZXRlciB0byBgU29ja2V0LmNvbm5lY3RgLCBgUmF3U29j',
+ 'a2V0LmNvbm5lY3RgLAogICAgYFNlY3VyZVNvY2tldC5jb25uZWN0YCBhbmQgYFJhd1NlY3VyZVNv',
+ 'Y2tldC5jb25uZWN0YC4gSWYgYSBjb25uZWN0aW9uCiAgICBhdHRlbXB0IHRha2VzIGxvbmdlciB0',
+ 'aGFuIHRoZSBkdXJhdGlvbiBzcGVjaWZpZWQgaW4gYHRpbWVvdXRgLCBhCiAgICBgU29ja2V0RXhj',
+ 'ZXB0aW9uYCB3aWxsIGJlIHRocm93bi4gTm90ZTogaWYgdGhlIGR1cmF0aW9uIHNwZWNpZmllZCBp',
+ 'bgogICAgYHRpbWVvdXRgIGlzIGdyZWF0ZXIgdGhhbiB0aGUgT1MgbGV2ZWwgdGltZW91dCwgYSB0',
+ 'aW1lb3V0IG1heSBvY2N1ciBzb29uZXIKICAgIHRoYW4gc3BlY2lmaWVkIGluIGB0aW1lb3V0YC4K',
+ 'KiAgIGBTdGRpbi5oYXNUZXJtaW5hbGAgYWRkZWQsIHdoaWNoIGlzIHRydWUgaWYgc3RkaW4gaXMg',
+ 'YXR0YWNoZWQgdG8gYSB0ZXJtaW5hbC4KKiAgIGBXZWJTb2NrZXRgIGFkZGVkIHN0YXRpYyBgdXNl',
+ 'ckFnZW50YCBwcm9wZXJ0eS4KKiAgIGBSYW5kb21BY2Nlc3NGaWxlLmNsb3NlYCByZXR1cm5zIGBG',
+ 'dXR1cmU8dm9pZD5gCiogICBBZGRlZCBgSU9PdmVycmlkZXMuc29ja2V0Q29ubmVjdGAuCiogICBB',
+ 'ZGRlZCBEYXJ0LXN0eWxlZCBjb25zdGFudHMgdG8gIGBaTGliT3B0aW9uc2AsIGBGaWxlTW9kZWAs',
+ 'IGBGaWxlTG9ja2AsCiAgICBgRmlsZVN5c3RlbUVudGl0eVR5cGVgLCBgRmlsZVN5c3RlbUV2ZW50',
+ 'YCwgYFByb2Nlc3NTdGFydE1vZGVgLAogICAgYFByb2Nlc3NTaWduYWxgLCBgSW50ZXJuZXRBZGRy',
+ 'ZXNzVHlwZWAsIGBJbnRlcm5ldEFkZHJlc3NgLAogICAgYFNvY2tldERpcmVjdGlvbmAsIGBTb2Nr',
+ 'ZXRPcHRpb25gLCBgUmF3U29ja2V0RXZlbnRgLCBhbmQgYFN0ZGlvVHlwZWAsIGFuZAogICAgZGVw',
+ 'cmVjYXRlZCB0aGUgb2xkIGBTQ1JFQU1JTkdfQ0FQU2AgY29uc3RhbnRzLgoqICAgQWRkZWQgdGhl',
+ 'IERhcnQtc3R5bGVkIHRvcC1sZXZlbCBjb25zdGFudHMgYHpsaWJgLCBgZ3ppcGAsIGFuZAogICAg',
+ 'YHN5c3RlbUVuY29kaW5nYCwgYW5kIGRlcHJlY2F0ZWQgdGhlIG9sZCBgU0NSRUFNSU5HX0NBUFNg',
+ 'IHRvcC1sZXZlbAogICAgY29uc3RhbnRzLgoqICAgUmVtb3ZlZCB0aGUgdG9wLWxldmVsIGBGaWxl',
+ 'TW9kZWAgY29uc3RhbnRzIGBSRUFEYCwgYFdSSVRFYCwgYEFQUEVORGAsCiAgICBgV1JJVEVfT05M',
+ 'WWAsIGFuZCBgV1JJVEVfT05MWV9BUFBFTkRgLiBQbGVhc2UgdXNlIGUuZy4gYEZpbGVNb2RlLnJl',
+ 'YWRgCiAgICBpbnN0ZWFkLgoqICAgQWRkZWQgYFg1MDlDZXJ0aWZpY2F0ZS5kZXJgLCBgWDUwOUNl',
+ 'cnRpZmljYXRlLnBlbWAsIGFuZAogICAgYFg1MDlDZXJ0aWZpY2F0ZS5zaGExYC4KKiAgIEFkZGVk',
+ 'IGBGaWxlU3lzdGVtRW50aXR5LmZyb21SYXdQYXRoYCBjb25zdHJ1Y3RvciB0byBhbGxvdyBmb3Ig',
+ 'dGhlIGNyZWF0aW9uCiAgICBvZiBgRmlsZVN5c3RlbUVudGl0eWAgdXNpbmcgYFVpbnQ4TGlzdGAg',
+ 'YnVmZmVycy4KKiAgIERhcnQtc3R5bGVkIGNvbnN0YW50cyBoYXZlIGJlZW4gYWRkZWQgZm9yIGBI',
+ 'dHRwU3RhdHVzYCwgYEh0dHBIZWFkZXJzYCwKICAgIGBDb250ZW50VHlwZWAsIGBIdHRwQ2xpZW50',
+ 'YCwgYFdlYlNvY2tldFN0YXR1c2AsIGBDb21wcmVzc2lvbk9wdGlvbnNgLCBhbmQKICAgIGBXZWJT',
+ 'b2NrZXRgLiBUaGUgYFNDUkVBTUlOR19DQVBTYCBjb25zdGFudHMgYXJlIG1hcmtlZCBkZXByZWNh',
+ 'dGVkLiBOb3RlIHRoYXQKICAgIGBIdHRwU3RhdHVzLkNPTlRJTlVFYCBpcyBub3cgYEh0dHBTdGF0',
+ 'dXMuY29udGludWVfYCwgYW5kIHRoYXQgZS5nLgogICAgYEh0dHBIZWFkZXJzLkZJRUxEX05BTUVg',
+ 'IGlzIG5vdyBgSHR0cEhlYWRlcnMuZmllbGROYW1lSGVhZGVyYC4KKiAgIERlcHJlY2F0ZWQgYFBs',
+ 'YXRmb3JtLnBhY2thZ2VSb290YCwgd2hpY2ggaXMgb25seSB1c2VkIGZvciBgcGFja2FnZXMvYAog',
+ 'ICAgZGlyZWN0b3J5IHJlc29sdXRpb24gd2hpY2ggaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gSXQg',
+ 'd2lsbCBub3cgYWx3YXlzIHJldHVybgogICAgbnVsbCwgd2hpY2ggaXMgYSB2YWx1ZSB0aGF0IHdh',
+ 'cyBhbHdheXMgcG9zc2libGUgZm9yIGl0IHRvIHJldHVybiBwcmV2aW91c2x5LgoqICAgQWRkcyBg',
+ 'SHR0cENsaWVudC5jb25uZWN0aW9uVGltZW91dGAuCiogICBBZGRzIGB7U29ja2V0LFJhd1NvY2tl',
+ 'dCxTZWN1cmVTb2NrZXR9LnN0YXJ0Q29ubmVjdGAuIFRoZXNlIHJldHVybiBhCiAgICBgQ29ubmVj',
+ 'dGlvblRhc2tgLCB3aGljaCBjYW4gYmUgdXNlZCB0byBjYW5jZWwgYW4gaW4tZmxpZ2h0IGNvbm5l',
+ 'Y3Rpb24KICAgIGF0dGVtcHQuCgojIyMjIGBkYXJ0Omlzb2xhdGVgCgoqICAgTWFrZSBgSXNvbGF0',
+ 'ZS5zcGF3bmAgdGFrZSBhIHR5cGUgcGFyYW1ldGVyIHJlcHJlc2VudGluZyB0aGUgYXJndW1lbnQg',
+ 'dHlwZSBvZgogICAgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLiBUaGlzIGFsbG93cyBmdW5jdGlvbnMg',
+ 'd2l0aCBhcmd1bWVudHMgdHlwZXMgb3RoZXIgdGhhbgogICAgYE9iamVjdGAgaW4gc3Ryb25nIG1v',
+ 'ZGUuCiogICBSZW5hbWUgYElNTUVESUFURWAgYW5kIGBCRUZPUkVfTkVYVF9FVkVOVGAgb24gYElz',
+ 'b2xhdGVgIHRvIGBpbW1lZGlhdGVgIGFuZAogICAgYGJlZm9yZU5leHRFdmVudGAuCiogICBEZXBy',
+ 'ZWNhdGVkIGBJc29sYXRlLnBhY2thZ2VSb290YCwgd2hpY2ggaXMgb25seSB1c2VkIGZvciBgcGFj',
+ 'a2FnZXMvYAogICAgZGlyZWN0b3J5IHJlc29sdXRpb24gd2hpY2ggaXMgbm8gbG9uZ2VyIHN1cHBv',
+ 'cnRlZC4gSXQgd2lsbCBub3cgYWx3YXlzIHJldHVybgogICAgbnVsbCwgd2hpY2ggaXMgYSB2YWx1',
+ 'ZSB0aGF0IHdhcyBhbHdheXMgcG9zc2libGUgZm9yIGl0IHRvIHJldHVybiBwcmV2aW91c2x5Lgoq',
+ 'ICAgRGVwcmVjYXRlZCBgcGFja2FnZVJvb3RgIHBhcmFtZXRlciBpbiBgSXNvbGF0ZS5zcGF3blVy',
+ 'aWAsIHdoaWNoIGlzIHdhcwogICAgcHJldmlvdXNseSB1c2VkIG9ubHkgZm9yIGBwYWNrYWdlcy9g',
+ 'IGRpcmVjdG9yeSByZXNvbHV0aW9uLiBUaGF0IHN0eWxlIG9mCiAgICByZXNvbHV0aW9uIGlzIG5v',
+ 'IGxvbmdlciBzdXBwb3J0ZWQgaW4gRGFydCAyLgoKPCEtLQpTdGlsbCBuZWVkIGVudHJpZXMgZm9y',
+ 'IGFsbCBjaGFuZ2VzIHRvIGRhcnQ6anMgc2luY2UgMS54Ci0tPgoKIyMjIyBgZGFydC5tYXRoYAoK',
+ 'KiAgIFJlbmFtZWQgYEVgLCBgTE4xMGAsIGBMTmAsIGBMT0cyRWAsIGBMT0cxMEVgLCBgUElgLCBg',
+ 'U1FSVDFfMmAgYW5kIGBTUVJUMmAgdG8KICAgIGBlYCwgYGxuMTBgLCBgbG5gLCBgbG9nMmVgLCBg',
+ 'bG9nMTBlYCwgYHBpYCwgYHNxcnQxXzJgIGFuZCBgc3FydDJgLgoKIyMjIyBgZGFydC5taXJyb3Jz',
+ 'YAoKKiAgIEFkZGVkIGBJc29sYXRlTWlycm9yLmxvYWRVcmlgLCB3aGljaCBhbGxvd3MgZHluYW1p',
+ 'Y2FsbHkgbG9hZGluZyBhZGRpdGlvbmFsCiAgICBjb2RlLgoqICAgTWFya2VkIGBNaXJyb3JzVXNl',
+ 'ZGAgYXMgZGVwcmVjYXRlZC4gVGhlIGBNaXJyb3JzVXNlZGAgYW5ub3RhdGlvbiB3YXMgb25seQog',
+ 'ICAgdXNlZCB0byBpbmZvcm0gdGhlIGRhcnQyanMgY29tcGlsZXIgYWJvdXQgaG93IG1pcnJvcnMg',
+ 'd2VyZSB1c2VkLCBidXQgZGFydDJqcwogICAgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoZSBtaXJyb3Jz',
+ 'IGxpYnJhcnkgYWx0b2dldGhlci4KCjwhLS0KU3RpbGwgbmVlZCBlbnRyaWVzIGZvciBhbGwgY2hh',
+ 'bmdlcyB0byBkYXJ0OnN2ZyBzaW5jZSAxLngKLS0+CgojIyMjIGBkYXJ0OnR5cGVkX2RhdGFgCgoq',
+ 'ICAgQWRkZWQgYFVubW9kaWZpYWJsZWAgdmlldyBjbGFzc2VzIG92ZXIgYWxsIGBMaXN0YCB0eXBl',
+ 'cy4KKiAgIFJlbmFtZWQgYEJZVEVTX1BFUl9FTEVNRU5UYCB0byBgYnl0ZXNQZXJFbGVtZW50YCBv',
+ 'biBhbGwgdHlwZWQgZGF0YSBsaXN0cy4KKiAgIFJlbmFtZWQgY29uc3RhbnRzIGBYWFhYYCB0aHJv',
+ 'dWdoIGBXV1dXYCBvbiBgRmxvYXQzMng0YCBhbmQgYEludDMyeDRgIHRvCiAgICBsb3dlci1jYXNl',
+ 'IGB4eHh4YCB0aHJvdWdoIGB3d3d3YC4KKiAgIFJlbmFtZWQgYEVuZGluYW5uZXNzYCB0byBgRW5k',
+ 'aWFuYCBhbmQgaXRzIGNvbnN0YW50cyBmcm9tIGBCSUdfRU5ESUFOYCwKICAgIGBMSVRUTEVfRU5E',
+ 'SUFOYCBhbmQgYEhPU1RfRU5ESUFOYCB0byBgbGl0dGxlYCwgYGJpZ2AgYW5kIGBob3N0YC4KCjwh',
+ 'LS0KU3RpbGwgbmVlZCBlbnRyaWVzIGZvciBhbGwgY2hhbmdlcyB0byBkYXJ0OndlYl9hdWRpbyx3',
+ 'ZWJfZ2wsd2ViX3NxbCBzaW5jZSAxLngKLS0+CgojIyMgRGFydCBWTQoKKiAgIFN1cHBvcnQgZm9y',
+ 'IE1JUFMgaGFzIGJlZW4gcmVtb3ZlZC4KCiogICBEYXJ0IGBpbnRgIGlzIG5vdyByZXN0cmljdGVk',
+ 'IHRvIDY0IGJpdHMuIE9uIG92ZXJmbG93LCBhcml0aG1ldGljIG9wZXJhdGlvbnMKICAgIHdyYXAg',
+ 'YXJvdW5kLCBhbmQgaW50ZWdlciBsaXRlcmFscyBsYXJnZXIgdGhhbiA2NCBiaXRzIGFyZSBub3Qg',
+ 'YWxsb3dlZC4gU2VlCiAgICBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9ibG9iL21h',
+ 'c3Rlci9kb2NzL2xhbmd1YWdlL2luZm9ybWFsL2ludDY0Lm1kCiAgICBmb3IgZGV0YWlscy4KCiog',
+ 'ICBUaGUgRGFydCBWTSBubyBsb25nZXIgYXR0ZW1wdHMgdG8gcGVyZm9ybSBgcGFja2FnZXMvYCBk',
+ ];
+}
+
+List<String> _h2(String s) {
+ return [
+ s,
+ 'aXJlY3RvcnkgcmVzb2x1dGlvbgogICAgKGZvciBsb2FkaW5nIHNjcmlwdHMsIGFuZCBpbiBgSXNv',
+ 'bGF0ZS5yZXNvbHZlVXJpYCkuIFVzZXJzIHJlbHlpbmcgb24KICAgIGBwYWNrYWdlcy9gIGRpcmVj',
+ 'dG9yaWVzIHNob3VsZCBzd2l0Y2ggdG8gYC5wYWNrYWdlc2AgZmlsZXMuCgojIyMgRGFydCBmb3Ig',
+ 'dGhlIFdlYgoKKiAgIEV4cG9zZSBKYXZhU2NyaXB0IFByb21pc2UgQVBJcyB1c2luZyBEYXJ0IGZ1',
+ 'dHVyZXMuIEZvciBleGFtcGxlLAogICAgYEJhY2tncm91bmRGZXRjaE1hbmFnZXIuZ2V0YCBpcyBk',
+ 'ZWZpbmVkIGFzOgoKICAgIGBgYGRhcnQKICAgICAgRnV0dXJlPEJhY2tncm91bmRGZXRjaFJlZ2lz',
+ 'dHJhdGlvbj4gZ2V0KFN0cmluZyBpZCkKICAgIGBgYAoKICAgIEl0IGNhbiBiZSB1c2VkIGxpa2U6',
+ 'CgogICAgYGBgZGFydAogICAgQmFja2dyb3VuZEZldGNoUmVnaXN0cmF0aW9uIHJlc3VsdCA9IGF3',
+ 'YWl0IGZldGNoTWdyLmdldCgnYWJjJyk7CiAgICBgYGAKCiAgICBUaGUgdW5kZXJseWluZyBKUyBQ',
+ 'cm9taXNlLXRvLUZ1dHVyZSBtZWNoYW5pc20gd2lsbCBiZSBleHBvc2VkIGFzIGEgcHVibGljCiAg',
+ 'ICBBUEkgaW4gdGhlIGZ1dHVyZS4KCiMjIyMgRGFydCBEZXYgQ29tcGlsZXIgKEREQykKCiogICBk',
+ 'YXJ0ZGV2YyB3aWxsIG5vIGxvbmdlciB0aHJvdyBhbiBlcnJvciBmcm9tIGBpc2AgY2hlY2tzIHRo',
+ 'YXQgcmV0dXJuIGEKICAgIGRpZmZlcmVudCByZXN1bHQgaW4gd2VhayBtb2RlIChTREsgW2lzc3Vl',
+ 'IDI4OTg4XVtzZGsjMjg5ODhdKS4gRm9yIGV4YW1wbGU6CgogICAgYGBgZGFydAogICAgbWFpbigp',
+ 'IHsKICAgICAgTGlzdCBsID0gW107CiAgICAgIC8vIFByaW50cyAiZmFsc2UiLCBkb2VzIG5vdCB0',
+ 'aHJvdy4KICAgICAgcHJpbnQobCBpcyBMaXN0PFN0cmluZz4pOwogICAgfQogICAgYGBgCgoqICAg',
+ 'RmFpbGVkIGBhc2AgY2FzdHMgb24gYEl0ZXJhYmxlPFQ+YCwgYE1hcDxUPmAsIGBGdXR1cmU8VD5g',
+ 'LCBhbmQgYFN0cmVhbTxUPmAKICAgIGFyZSBubyBsb25nZXIgaWdub3JlZC4gVGhlc2UgZmFpbHVy',
+ 'ZXMgd2VyZSBpZ25vcmVkIHRvIG1ha2UgaXQgZWFzaWVyIHRvCiAgICBtaWdyYXRlIERhcnQgMSBj',
+ 'b2RlIHRvIHN0cm9uZyBtb2RlLCBidXQgaWdub3JpbmcgdGhlbSBpcyBhIGhvbGUgaW4gdGhlIHR5',
+ 'cGUKICAgIHN5c3RlbS4gVGhpcyBjbG9zZXMgcGFydCBvZiB0aGF0IGhvbGUuIChXZSBzdGlsbCBu',
+ 'ZWVkIHRvIHN0b3AgaWdub3JpbmcgImFzIgogICAgY2FzdCBmYWlsdXJlcyBvbiBmdW5jdGlvbiB0',
+ 'eXBlcywgYW5kIGltcGxpY2l0IGNhc3QgZmFpbHVyZXMgb24gdGhlIGFib3ZlCiAgICB0eXBlcyBh',
+ 'bmQgZnVuY3Rpb24gdHlwZXMuKQoKW3NkayMyODk4OF06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy8yODk4OAoKIyMjIyBkYXJ0MmpzCgoqICAgZGFydDJqcyBub3cgY29t',
+ 'cGlsZXMgcHJvZ3JhbXMgd2l0aCBEYXJ0IDIuMCBzZW1hbnRpY3MuIEFwcHMgYXJlIGV4cGVjdGVk',
+ 'IHRvCiAgICBiZSBiaWdnZXIgdGhhbiBiZWZvcmUsIGJlY2F1c2UgRGFydCAyLjAgaGFzIG1hbnkg',
+ 'bW9yZSBpbXBsaWNpdCBjaGVja3MKICAgIChzaW1pbGFyIHRvIHRoZSBgLS1jaGVja2VkYCBmbGFn',
+ 'IGluIERhcnQgMS4wKS4KCiAgICBXZSBleHBvc2VkIGEgYC0tb21pdC1pbXBsaWNpdC1jaGVja3Ng',
+ 'IGZsYWcgd2hpY2ggcmVtb3ZlcyBtb3N0IG9mIHRoZSBleHRyYQogICAgaW1wbGljaXQgY2hlY2tz',
+ 'LiBPbmx5IHVzZSB0aGlzIGlmIHlvdSBoYXZlIGVub3VnaCB0ZXN0IGNvdmVyYWdlIHRvIGtub3cg',
+ 'dGhhdAogICAgdGhlIGFwcCB3aWxsIHdvcmsgd2VsbCB3aXRob3V0IHRoZSBjaGVja3MuIElmIGEg',
+ 'Y2hlY2sgd291bGQgaGF2ZSBmYWlsZWQgYW5kCiAgICBpdCBpcyBvbWl0dGVkLCB5b3VyIGFwcCBt',
+ 'YXkgY3Jhc2ggb3IgYmVoYXZlIGluIHVuZXhwZWN0ZWQgd2F5cy4gVGhpcyBmbGFnIGlzCiAgICBz',
+ 'aW1pbGFyIHRvIGAtLXRydXN0LXR5cGUtYW5ub3RhdGlvbnNgIGluIERhcnQgMS4wLgoKKiAgIGRh',
+ 'cnQyanMgcmVwbGFjZWQgaXRzIGZyb250LWVuZCB3aXRoIHRoZSBjb21tb24gZnJvbnQtZW5kIChD',
+ 'RkUpLiBUaGFua3MgdG8KICAgIHRoZSBDRkUsIGRhcnQyanMgZXJyb3JzIGFyZSBtb3JlIGNvbnNp',
+ 'c3RlbnQgd2l0aCBhbGwgb3RoZXIgRGFydCB0b29scy4KCiogICBkYXJ0MmpzIHJlcGxhY2VkIGl0',
+ 'cyBzb3VyY2UtbWFwIGltcGxlbWVudGF0aW9uLiAgVGhlcmUgYXJlbid0IGFueSBiaWcKICAgIGRp',
+ 'ZmZlcmVuY2VzLCBidXQgbW9yZSBkYXRhIGlzIGVtaXR0ZWQgZm9yIHN5bnRoZXRpYyBjb2RlIGdl',
+ 'bmVyYXRlZCBieSB0aGUKICAgIGNvbXBpbGVyLgoKKiAgIGBkYXJ0Om1pcnJvcnNgIHN1cHBvcnQg',
+ 'd2FzIHJlbW92ZWQuIEZyYW1ld29ya3MgYXJlIGVuY291cmFnZWQgdG8gdXNlCiAgICBjb2RlLWdl',
+ 'bmVyYXRpb24gaW5zdGVhZC4gQ29uZGl0aW9uYWwgaW1wb3J0cyBpbmRpY2F0ZSB0aGF0IG1pcnJv',
+ 'cnMgYXJlIG5vdAogICAgc3VwcG9ydGVkLCBhbmQgYW55IEFQSSBpbiB0aGUgbWlycm9ycyBsaWJy',
+ 'YXJ5IHdpbGwgdGhyb3cgYXQgcnVudGltZS4KCiogICBUaGUgZ2VuZXJhdGVkIG91dHB1dCBvZiBk',
+ 'YXJ0MmpzIGNhbiBub3cgYmUgcnVuIGFzIGEgd2Vid29ya2VyLgoKKiAgIGBkYXJ0Omlzb2xhdGVg',
+ 'IHN1cHBvcnQgd2FzIHJlbW92ZWQuIFRvIGxhdW5jaCBiYWNrZ3JvdW5kIHRhc2tzLCBwbGVhc2UK',
+ 'ICAgIHVzZSB3ZWJ3b3JrZXJzIGluc3RlYWQuIEFQSXMgZm9yIHdlYndvcmtlcnMgY2FuIGJlIGFj',
+ 'Y2Vzc2VkIGZyb20gYGRhcnQ6aHRtbGAKICAgIG9yIEpTLWludGVyb3AuCgoqICAgZGFydDJqcyBu',
+ 'byBsb25nZXIgc3VwcG9ydHMgdGhlIGAtLXBhY2thZ2Utcm9vdGAgZmxhZy4gVGhpcyBmbGFnIHdh',
+ 'cwogICAgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBgLS1wYWNrYWdlc2AgbG9uZyBhZ28uCgojIyMg',
+ 'VG9vbCBDaGFuZ2VzCgojIyMjIEFuYWx5emVyCgoqICAgVGhlIGFuYWx5emVyIHdpbGwgbm8gbG9u',
+ 'Z2VyIGlzc3VlIGEgd2FybmluZyB3aGVuIGEgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlciBpcwogICAg',
+ 'dXNlZCBhcyB0aGUgdHlwZSBpbiBhbiBpbnN0YW5jZSBjaGVjay4gRm9yIGV4YW1wbGU6CgogICAg',
+ 'YGBgZGFydAogICAgdGVzdDxUPigpIHsKICAgICAgcHJpbnQoMyBpcyBUKTsgLy8gTm8gd2Fybmlu',
+ 'ZwogICAgfQogICAgYGBgCgoqICAgTmV3IHN0YXRpYyBjaGVja2luZyBvZiBgQHZpc2libGVGb3JU',
+ 'ZXN0aW5nYCBlbGVtZW50cy4gQWNjZXNzaW5nIGEgbWV0aG9kLAogICAgZnVuY3Rpb24sIGNsYXNz',
+ 'LCBldGMuIGFubm90YXRlZCB3aXRoIGBAdmlzaWJsZUZvclRlc3RpbmdgIGZyb20gYSBmaWxlIF9u',
+ 'b3RfCiAgICBpbiBhIGB0ZXN0L2AgZGlyZWN0b3J5IHdpbGwgcmVzdWx0IGluIGEgbmV3IGhpbnQg',
+ 'KFtpc3N1ZSAyODI3M11bXSkuCgoqICAgU3RhdGljIGFuYWx5c2lzIG5vdyByZXNwZWN0cyBmdW5j',
+ 'dGlvbnMgYW5ub3RhdGVkIHdpdGggYEBhbHdheXNUaHJvd3NgCiAgICAoW2lzc3VlIDMxMzg0XVtd',
+ 'KS4KCiogICBOZXcgaGludHMgYWRkZWQ6CgogICAgKiAgIGBOVUxMX0FXQVJFX0JFRk9SRV9PUEVS',
+ 'QVRPUmAgd2hlbiBhbiBvcGVyYXRvciBpcyB1c2VkIGFmdGVyIGEgbnVsbC1hd2FyZQogICAgICAg',
+ 'IGFjY2Vzcy4gRm9yIGV4YW1wbGU6CgogICAgICAgIGBgYGRhcnQKICAgICAgICB4Py5hIC0gJyc7',
+ 'IC8vIEhJTlQKICAgICAgICBgYGAKCiAgICAqICAgYE5VTExfQVdBUkVfSU5fTE9HSUNBTF9PUEVS',
+ 'QVRPUmAgd2hlbiBhbiBleHByZXNzaW9uIHdpdGggbnVsbC1hd2FyZQogICAgICAgIGFjY2VzcyBp',
+ 'cyB1c2VkIGFzIGEgY29uZGl0aW9uIGluIGxvZ2ljYWwgb3BlcmF0b3JzLiBGb3IgZXhhbXBsZToK',
+ 'CiAgICAgICAgYGBgZGFydAogICAgICAgIHguYSB8fCB4Py5iOyAvLyBISU5UCiAgICAgICAgYGBg',
+ 'CgoqICAgVGhlIGNvbW1hbmQgbGluZSBhbmFseXplciAoZGFydGFuYWx5emVyKSBhbmQgdGhlIGFu',
+ 'YWx5c2lzIHNlcnZlciBubyBsb25nZXIKICAgIHRyZWF0IGRpcmVjdG9yaWVzIG5hbWVkIGBwYWNr',
+ 'YWdlc2Agc3BlY2lhbGx5LiBQcmV2aW91c2x5IHRoZXkgaGFkIGlnbm9yZWQKICAgIHRoZXNlIGRp',
+ 'cmVjdG9yaWVzIC0gYW5kIHRoZWlyIGNvbnRlbnRzIC0gZnJvbSB0aGUgcG9pbnQgb2YgdmlldyBv',
+ 'ZiBhbmFseXNpcy4KICAgIE5vdyB0aGV5J2xsIGJlIHRyZWF0ZWQganVzdCBhcyByZWd1bGFyIGRp',
+ 'cmVjdG9yaWVzLiBUaGlzIHNwZWNpYWwtY2FzaW5nIG9mCiAgICBgcGFja2FnZXNgIGRpcmVjdG9y',
+ 'aWVzIHdhcyB0byBzdXBwb3J0IHVzaW5nIHN5bWxpbmtzIGZvciBwYWNrYWdlOgogICAgcmVzb2x1',
+ 'dGlvbjsgdGhhdCBmdW5jdGlvbmFsaXR5IGlzIG5vdyBoYW5kbGVkIGJ5IGAucGFja2FnZXNgIGZp',
+ 'bGVzLgoKKiAgIE5ldyBzdGF0aWMgY2hlY2tpbmcgb2YgZHVwbGljYXRlIHNob3duIG9yIGhpZGRl',
+ 'biBuYW1lcyBpbiBhbiBleHBvcnQKICAgIGRpcmVjdGl2ZSAoW2lzc3VlIDMzMTgyXVtdKS4KCiog',
+ 'ICBUaGUgYW5hbHlzaXMgc2VydmVyIHdpbGwgbm93IG9ubHkgYW5hbHl6ZSBjb2RlIGluIERhcnQg',
+ 'MiBtb2RlICgnc3Ryb25nCiAgICBtb2RlJykuIEl0IHdpbGwgZW1pdCB3YXJuaW5ncyBmb3IgYW5h',
+ 'bHlzaXMgb3B0aW9ucyBmaWxlcyB0aGF0IGhhdmUKICAgIGBzdHJvbmctbW9kZTogZmFsc2VgIHNl',
+ 'dCAoYW5kIHdpbGwgZW1pdCBhIGhpbnQgZm9yIGBzdHJvbmctbW9kZTogdHJ1ZWAsCiAgICB3aGlj',
+ 'aCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5KS4KCiogICBUaGUgZGFydGFuYWx5emVyIGAtLXN0cm9u',
+ 'Z2AgZmxhZyBpcyBub3cgZGVwcmVjYXRlZCBhbmQgaWdub3JlZC4gVGhlCiAgICBjb21tYW5kLWxp',
+ 'bmUgYW5hbHl6ZXIgbm93IG9ubHkgYW5hbHl6ZXMgY29kZSBpbiBzdHJvbmcgbW9kZS4KCltpc3N1',
+ 'ZSAyODI3M106IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yODI3Mwpb',
+ 'aXNzdWUgMzEzODRdOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMzEz',
+ 'ODQKW2lzc3VlIDMzMTgyXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVz',
+ 'LzMzMTgyCgojIyMjIGRhcnRmbXQKCiogICBTdXBwb3J0IGBhc3NlcnQoKWAgaW4gY29uc3QgY29u',
+ 'c3RydWN0b3IgaW5pdGlhbGl6ZXIgbGlzdHMuCgoqICAgQmV0dGVyIGZvcm1hdHRpbmcgZm9yIG11',
+ 'bHRpLWxpbmUgc3RyaW5ncyBpbiBhcmd1bWVudCBsaXN0cy4KCiogICBGb3JjZSBzcGxpdHRpbmcg',
+ 'YW4gZW1wdHkgYmxvY2sgYXMgdGhlIHRoZW4gYm9keSBvZiBhbiBpZiB3aXRoIGFuIGVsc2UuCgoq',
+ 'ICAgU3VwcG9ydCBtZXRhZGF0YSBhbm5vdGF0aW9ucyBvbiBlbnVtIGNhc2VzLgoKKiAgIEFkZCBg',
+ 'LS1maXhgIHRvIHJlbW92ZSB1bm5lZWRlZCBgbmV3YCBhbmQgYGNvbnN0YCBrZXl3b3JkcywgYW5k',
+ 'IGNoYW5nZSBgOmAgdG8KICAgIGA9YCBiZWZvcmUgbmFtZWQgcGFyYW1ldGVyIGRlZmF1bHQgdmFs',
+ 'dWVzLgoKKiAgIENoYW5nZSBmb3JtYXR0aW5nIHJ1bGVzIGFyb3VuZCBzdGF0aWMgbWV0aG9kcyB0',
+ 'byB1bmlmb3JtbHkgZm9ybWF0IGNvZGUgd2l0aAogICAgYW5kIHdpdGhvdXQgYG5ld2AgYW5kIGBj',
+ 'b25zdGAuCgoqICAgRm9ybWF0IGV4cHJlc3Npb25zIGluc2lkZSBzdHJpbmcgaW50ZXJwb2xhdGlv',
+ 'bi4KCiMjIyMgUHViCgoqICAgUHViIGhhcyBhIGJyYW5kIG5ldyB2ZXJzaW9uIHNvbHZlciEgSXQg',
+ 'c3VwcG9ydHMgYWxsIHRoZSBzYW1lIGZlYXR1cmVzIGFzIHRoZQogICAgb2xkIHZlcnNpb24gc29s',
+ ];
+}
+
+List<String> _h3(String s) {
+ return [
+ s,
+ 'dmVyLCBidXQgaXQncyBtdWNoIGxlc3MgbGlrZWx5IHRvIHN0YWxsIG91dCBvbiBkaWZmaWN1bHQK',
+ 'ICAgIHBhY2thZ2UgZ3JhcGhzLCBhbmQgaXQncyBtdWNoIGNsZWFyZXIgYWJvdXQgd2h5IGEgc29s',
+ 'dXRpb24gY2FuJ3QgYmUgZm91bmQKICAgIHdoZW4gdmVyc2lvbiBzb2x2aW5nIGZhaWxzLgoKKiAg',
+ 'IFJlbW92ZSBzdXBwb3J0IGZvciB0cmFuc2Zvcm1lcnMsIGBwdWIgYnVpbGRgLCBhbmQgYHB1YiBz',
+ 'ZXJ2ZWAuIFVzZSB0aGUKICAgIFtuZXcgYnVpbGQgc3lzdGVtXVt0cmFuc2Zvcm1lcnNdIGluc3Rl',
+ 'YWQuCgoqICAgVGhlcmUgaXMgbm93IGEgZGVmYXVsdCBTREsgY29uc3RyYWludCBvZiBgPDIuMC4w',
+ 'YCBmb3IgYW55IHBhY2thZ2Ugd2l0aCBubwogICAgZXhpc3RpbmcgdXBwZXIgYm91bmQuIFRoaXMg',
+ 'YWxsb3dzIHVzIHRvIG1vdmUgbW9yZSBzYWZlbHkgdG8gMi4wLjAuIEFsbCBuZXcKICAgIHBhY2th',
+ 'Z2VzIHB1Ymxpc2hlZCBvbiBwdWIgd2lsbCBub3cgcmVxdWlyZSBhbiB1cHBlciBib3VuZCBTREsg',
+ 'Y29uc3RyYWludCBzbwogICAgZnV0dXJlIG1ham9yIHJlbGVhc2VzIG9mIERhcnQgZG9uJ3QgZGVz',
+ 'dGFiaWxpemUgdGhlIHBhY2thZ2UgZWNvc3lzdGVtLgoKICAgIEFsbCBTREsgY29uc3RyYWludCBl',
+ 'eGNsdXNpdmUgdXBwZXIgYm91bmRzIGFyZSBub3cgdHJlYXRlZCBhcyB0aG91Z2ggdGhleQogICAg',
+ 'YWxsb3cgcHJlLXJlbGVhc2UgdmVyc2lvbnMgb2YgdGhhdCB1cHBlciBib3VuZC4gRm9yIGV4YW1w',
+ 'bGUsIHRoZSBTREsKICAgIGNvbnN0cmFpbnQgYD49MS44LjAgPDIuMC4wYCBub3cgYWxsb3dzIHBy',
+ 'ZS1yZWxlYXNlIFNESyB2ZXJzaW9ucyBzdWNoIGFzCiAgICBgMi4wLjAtYmV0YS4zLjBgLiBUaGlz',
+ 'IGFsbG93cyBlYXJseSBhZG9wdGVycyB0byB0cnkgb3V0IHBhY2thZ2VzIHRoYXQgZG9uJ3QKICAg',
+ 'IGV4cGxpY2l0bHkgZGVjbGFyZSBzdXBwb3J0IGZvciB0aGUgbmV3IHZlcnNpb24geWV0LiBZb3Ug',
+ 'Y2FuIGRpc2FibGUgdGhpcwogICAgZnVuY3Rpb25hbGl0eSBieSBzZXR0aW5nIHRoZSBgUFVCX0FM',
+ 'TE9XX1BSRVJFTEVBU0VfU0RLYCBlbnZpcm9ubWVudCB2YXJpYWJsZQogICAgdG8gYGZhbHNlYC4K',
+ 'CiogICBBbGxvdyBkZXBlbmRpbmcgb24gYSBwYWNrYWdlIGluIGEgc3ViZGlyZWN0b3J5IG9mIGEg',
+ 'R2l0IHJlcG9zaXRvcnkuIEdpdAogICAgZGVwZW5kZW5jaWVzIG1heSBub3cgaW5jbHVkZSBhIGBw',
+ 'YXRoYCBwYXJhbWV0ZXIsIGluZGljYXRpbmcgdGhhdCB0aGUgcGFja2FnZQogICAgZXhpc3RzIGlu',
+ 'IGEgc3ViZGlyZWN0b3J5IG9mIHRoZSBHaXQgcmVwb3NpdG9yeS4gRm9yIGV4YW1wbGU6CgogICAg',
+ 'YGBgeWFtbAogICAgZGVwZW5kZW5jaWVzOgogICAgICBmb29iYXI6CiAgICAgICAgZ2l0OgogICAg',
+ 'ICAgICAgdXJsOiBnaXQ6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9tdWx0aV9wYWNrYWdlX3JlcG8K',
+ 'ICAgICAgICAgIHBhdGg6IHBrZy9mb29iYXIKICAgIGBgYAoKKiAgIEFkZGVkIGFuIGAtLWV4ZWN1',
+ 'dGFibGVzYCBvcHRpb24gdG8gYHB1YiBkZXBzYCBjb21tYW5kLiBUaGlzIHdpbGwgbGlzdCBhbGwK',
+ 'ICAgIGF2YWlsYWJsZSBleGVjdXRhYmxlcyB0aGF0IGNhbiBiZSBydW4gd2l0aCBgcHViIHJ1bmAu',
+ 'CgoqICAgVGhlIEZsdXR0ZXIgYHNka2Agc291cmNlIHdpbGwgbm93IGxvb2sgZm9yIHBhY2thZ2Vz',
+ 'IGluCiAgICBgZmx1dHRlci9iaW4vY2FjaGUvcGtnL2AgYXMgd2VsbCBhcyBgZmx1dHRlci9wYWNr',
+ 'YWdlcy9gLiBJbiBwYXJ0aWN1bGFyLCB0aGlzCiAgICBtZWFucyB0aGF0IHBhY2thZ2VzIGNhbiBk',
+ 'ZXBlbmQgb24gdGhlIGBza3lfZW5naW5lYCBwYWNrYWdlIGZyb20gdGhlIGBzZGtgCiAgICBzb3Vy',
+ 'Y2UgKFtpc3N1ZSAxNzc1XVtwdWIjMTc3NV0pLgoKKiAgIFB1YiBub3cgY2FjaGVzIGNvbXBpbGVk',
+ 'IHBhY2thZ2VzIGFuZCBzbmFwc2hvdHMgaW4gdGhlIGAuZGFydF90b29sL3B1YmAKICAgIGRpcmVj',
+ 'dG9yeSwgcmF0aGVyIHRoYW4gdGhlIGAucHViYCBkaXJlY3RvcnkgKFtpc3N1ZSAxNzk1XVtwdWIj',
+ 'MTc5NV0pLgoKKiAgIE90aGVyIGJ1ZyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzLgoKW2lzc3VlIDMw',
+ 'MjQ2XTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzMwMjQ2CltwdWIj',
+ 'MTY3OV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy8xNjc5CltwdWIj',
+ 'MTY4NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy8xNjg0CltwdWIj',
+ 'MTc3NV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy8xNzc1CltwdWIj',
+ 'MTc5NV06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy8xNzk1CltwdWIj',
+ 'MTgyM106IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy8xODIzCgojIyAx',
+ 'LjI0LjMgLSAyMDE3LTEyLTE0CgoqIEZpeCBmb3IgY29uc3RydWN0aW5nIGEgbmV3IFNlY3VyaXR5',
+ 'Q29udGV4dCB0aGF0IGNvbnRhaW5zIHRoZSBidWlsdC1pbgogIGNlcnRpZmljYXRlIGF1dGhvcml0',
+ 'eSByb290cwogIChbaXNzdWUgMjQ2OTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2Rr',
+ 'L2lzc3Vlcy8yNDY5MykpLgoKIyMjIENvcmUgbGlicmFyeSBjaGFuZ2VzCgoqIGBkYXJ0OmlvYAog',
+ 'ICogVW5pZmllZCBiYWNrZW5kcyBmb3IgYFNlY3VyZVNvY2tldGAsIGBTZWN1cml0eUNvbnRleHRg',
+ 'LCBhbmQKICAgIGBYNTA5Q2VydGlmaWNhdGVgIHRvIGJlIGNvbnNpc3RlbnQgYWNyb3NzIGFsbCBw',
+ 'bGF0Zm9ybXMuIEFsbAogICAgYFNlY3VyZVNvY2tldGAsIGBTZWN1cml0eUNvbnRleHRgLCBhbmQg',
+ 'YFg1MDlDZXJ0aWZpY2F0ZWAgcHJvcGVydGllcyBhbmQKICAgIG1ldGhvZHMgYXJlIG5vdyBzdXBw',
+ 'b3J0ZWQgb24gaU9TIGFuZCBPU1guCgojIyAxLjI0LjIgLSAyMDE3LTA2LTIyCgoqIEZpeGVzIGZv',
+ 'ciBkZWJ1Z2dpbmcgaW4gRGFydGl1bS4KICAqIEZpeCBEZXZDb25zb2xlIGNyYXNoIHdpdGggSlMK',
+ 'ICAgIChbaXNzdWUgMjk4NzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vl',
+ 'cy8yOTg3MykpLgogICogRml4IGRlYnVnZ2luZyBpbiBXZWJTdG9ybSwgTlVMTCByZXR1cm5lZCBm',
+ 'b3IgSlMgb2JqZWN0cwogICAgKFtpc3N1ZSAyOTg1NF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQt',
+ 'bGFuZy9zZGsvaXNzdWVzLzI5ODU0KSkuCgojIyAxLjI0LjEgLSAyMDE3LTA2LTE0CgoqIEJ1ZyBm',
+ 'aXhlcyBmb3IgZGFydGRldmMgc3VwcG9ydCBpbiBgcHViIHNlcnZlYC4KICAqIEZpeGVkIG1vZHVs',
+ 'ZSBjb25maWcgaW52YWxpZGF0aW9uIGxvZ2ljIHNvIG1vZHVsZXMgYXJlIHByb3Blcmx5CiAgICBy',
+ 'ZWNhbGN1bGF0ZWQgd2hlbiBwYWNrYWdlIGxheW91dCBjaGFuZ2VzLgogICogRml4ZWQgZXhjZXB0',
+ 'aW9uIHdoZW4gaGFuZGxpbmcgcmVxdWlyZS5qcyBlcnJvcnMgdGhhdCBhcmVuJ3Qgc2NyaXB0IGxv',
+ 'YWQKICAgIGVycm9ycy4KICAqIEZpeGVkIGFuIGlzc3VlIHdoZXJlIHJlcXVlc3RpbmcgdGhlIGJv',
+ 'b3RzdHJhcC5qcyBmaWxlIGJlZm9yZSB0aGUgZGFydC5qcwogICAgZmlsZSB3b3VsZCByZXN1bHQg',
+ 'aW4gYSA0MDQuCiAgKiBGaXhlZCBhIFNhZmFyaSBpc3N1ZSBkdXJpbmcgYm9vdHN0cmFwcGluZyAo',
+ 'bm90ZSB0aGF0IFNhZmFyaSBpcyBzdGlsbCBub3QKICAgIG9mZmljaWFsbHkgc3VwcG9ydGVkIGJ1',
+ 'dCBkb2VzIHdvcmsgZm9yIHRyaXZpYWwgZXhhbXBsZXMpLgoqIEZpeCBmb3IgYSBEYXJ0aXVtIGlz',
+ 'c3VlIHdoZXJlIHRoZXJlIHdhcyBubyBzb3VuZCBpbiBjaGVja2VkIG1vZGUKICAoW2lzc3VlIDI5',
+ 'ODEwXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjk4MTApKS4KCiMj',
+ 'IDEuMjQuMCAtIDIwMTctMDYtMTIKCiMjIyBMYW5ndWFnZQoqIER1cmluZyBhIGR5bmFtaWMgdHlw',
+ 'ZSBjaGVjaywgYHZvaWRgIGlzIG5vdCByZXF1aXJlZCB0byBiZSBgbnVsbGAgYW55bW9yZS4KICBJ',
+ 'biBwcmFjdGljZSwgdGhpcyBtYWtlcyBvdmVycmlkaW5nIGB2b2lkYCBmdW5jdGlvbnMgd2l0aCBu',
+ 'b24tYHZvaWRgIGZ1bmN0aW9ucwogIHNhZmVyLgoKKiBEdXJpbmcgc3RhdGljIGFuYWx5c2lzLCBh',
+ 'IGZ1bmN0aW9uIG9yIHNldHRlciBkZWNsYXJlZCB1c2luZyBgPT5gIHdpdGggcmV0dXJuCiAgdHlw',
+ 'ZSBgdm9pZGAgbm93IGFsbG93cyB0aGUgcmV0dXJuZWQgZXhwcmVzc2lvbiB0byBoYXZlIGFueSB0',
+ 'eXBlLiBGb3IgZXhhbXBsZSwKICBhc3N1bWluZyB0aGUgZGVjbGFyYXRpb24gYGludCB4O2AsIGl0',
+ 'IGlzIG5vdyB0eXBlIGNvcnJlY3QgdG8gaGF2ZQogIGB2b2lkIGYoKSA9PiArK3g7YC4KCiogQSBu',
+ 'ZXcgZnVuY3Rpb24tdHlwZSBzeW50YXggaGFzIGJlZW4gYWRkZWQgdG8gdGhlIGxhbmd1YWdlLgog',
+ 'ICoqV2FybmluZyoqOiAqSW4gRGFydCAxLjI0LCB0aGlzIGZlYXR1cmUgaXMgaW5jb21wbGV0ZSwg',
+ 'YW5kIG5vdCBzdGFibGUgaW4gdGhlIEFuYWx5emVyLioKCiAgSW50dWl0aXZlbHksIHRoZSB0eXBl',
+ 'IG9mIGEgZnVuY3Rpb24gY2FuIGJlIGNvbnN0cnVjdGVkIGJ5IHRleHR1YWxseSByZXBsYWNpbmcK',
+ 'ICB0aGUgZnVuY3Rpb24ncyBuYW1lIHdpdGggYEZ1bmN0aW9uYCBpbiBpdHMgZGVjbGFyYXRpb24u',
+ 'IEZvciBpbnN0YW5jZSwgdGhlCiAgdHlwZSBvZiBgdm9pZCBmb28oKSB7fWAgd291bGQgYmUgYHZv',
+ 'aWQgRnVuY3Rpb24oKWAuIFRoZSBuZXcgc3ludGF4IG1heSBiZSB1c2VkCiAgd2hlcmV2ZXIgYSB0',
+ 'eXBlIGNhbiBiZSB3cml0dGVuLiBJdCBpcyB0aHVzIG5vdyBwb3NzaWJsZSB0byBkZWNsYXJlIGZp',
+ 'ZWxkcwogIGNvbnRhaW5pbmcgZnVuY3Rpb25zIHdpdGhvdXQgbmVlZGluZyB0byB3cml0ZSB0eXBl',
+ 'ZGVmczogYHZvaWQgRnVuY3Rpb24oKSB4O2AuCiAgVGhlIG5ldyBmdW5jdGlvbiB0eXBlIGhhcyBv',
+ 'bmUgcmVzdHJpY3Rpb246IGl0IG1heSBub3QgY29udGFpbiB0aGUgb2xkLXN0eWxlCiAgZnVuY3Rp',
+ 'b24tdHlwZSBzeW50YXggZm9yIGl0cyBwYXJhbWV0ZXJzLiBUaGUgZm9sbG93aW5nIGlzIHRodXMg',
+ 'aWxsZWdhbDoKICBgdm9pZCBGdW5jdGlvbihpbnQgZigpKWAuCiAgYHR5cGVkZWZzYCBoYXZlIGJl',
+ 'ZW4gdXBkYXRlZCB0byBzdXBwb3J0IHRoaXMgbmV3IHN5bnRheC4KCiAgRXhhbXBsZXM6CgogIGBg',
+ 'YGRhcnQKICB0eXBlZGVmIEYgPSB2b2lkIEZ1bmN0aW9uKCk7ICAvLyBGIGlzIHRoZSBuYW1lIGZv',
+ 'ciBhIGB2b2lkYCBjYWxsYmFjay4KICBpbnQgRnVuY3Rpb24oaW50KSBmOyAgLy8gQSBmaWVsZCBg',
+ 'ZmAgdGhhdCBjb250YWlucyBhbiBpbnQtPmludCBmdW5jdGlvbi4KCiAgY2xhc3MgQTxUPiB7CiAg',
+ 'ICAvLyBUaGUgcGFyYW1ldGVyIGBjYWxsYmFja2AgaXMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEg',
+ 'YFRgIGFuZCByZXR1cm5zCiAgICAvLyBgdm9pZGAuCiAgICB2b2lkIGZvckVhY2godm9pZCBGdW5j',
+ 'dGlvbihUKSBjYWxsYmFjayk7CiAgfQoKICAvLyBUaGUgbmV3IGZ1bmN0aW9uIHR5cGUgc3VwcG9y',
+ 'dHMgZ2VuZXJpYyBhcmd1bWVudHMuCiAgdHlwZWRlZiBJbnZva2VyID0gVCBGdW5jdGlvbjxUPihU',
+ 'IEZ1bmN0aW9uKCkgY2FsbGJhY2spOwogIGBgYAoKIyMjIENvcmUgbGlicmFyeSBjaGFuZ2VzCgoq',
+ 'IGBkYXJ0OmFzeW5jYCwgYGRhcnQ6Y29yZWAsIGBkYXJ0OmlvYAogICAgKiBBZGRpbmcgdG8gYSBj',
+ 'bG9zZWQgc2luaywgaW5jbHVkaW5nIGBJT1NpbmtgLCBpcyBubyBsb25nZXIgbm90IGFsbG93ZWQu',
+ 'IEluCiAgICAgIDEuMjQsIHZpb2xhdGlvbnMgYXJlIG9ubHkgcmVwb3J0ZWQgKG9uIHN0ZG91dCBv',
+ ];
+}
+
+List<String> _h4(String s) {
+ return [
+ s,
+ 'ciBzdGRlcnIpLCBidXQgYSBmdXR1cmUKICAgICAgdmVyc2lvbiBvZiB0aGUgRGFydCBTREsgd2ls',
+ 'bCBjaGFuZ2UgdGhpcyB0byB0aHJvd2luZyBhIGBTdGF0ZUVycm9yYC4KCiogYGRhcnQ6Y29udmVy',
+ 'dGAKICAqICoqQlJFQUtJTkcqKiBSZW1vdmVkIHRoZSBkZXByZWNhdGVkIGBDaHVua2VkQ29udmVy',
+ 'dGVyYCBjbGFzcy4KICAqIEpTT04gbWFwcyBhcmUgbm93IHR5cGVkIGFzIGBNYXA8U3RyaW5nLCBk',
+ 'eW5hbWljPmAgaW5zdGVhZCBvZgogICAgYE1hcDxkeW5hbWljLCBkeW5hbWljPmAuIEEgSlNPTi1t',
+ 'YXAgaXMgbm90IGEgYEhhc2hNYXBgIG9yIGBMaW5rZWRIYXNoTWFwYAogICAgYW55bW9yZSAoYnV0',
+ 'IGp1c3QgYSBgTWFwYCkuCgoqIGBkYXJ0OmlvYAogICogQWRkZWQgYFBsYXRmb3JtLmxvY2FsZU5h',
+ 'bWVgLCBuZWVkZWQgZm9yIGFjY2Vzc2luZyB0aGUgbG9jYWxlIG9uIHBsYXRmb3JtcwogICAgdGhh',
+ 'dCBkb24ndCBzdG9yZSBpdCBpbiBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KICAqIEFkZGVkIGBQ',
+ 'cm9jZXNzSW5mby5jdXJyZW50UnNzYCBhbmQgYFByb2Nlc3NJbmZvLm1heFJzc2AgZm9yIGluc3Bl',
+ 'Y3RpbmcKICAgIHRoZSBEYXJ0IFZNIHByb2Nlc3MgY3VycmVudCBhbmQgcGVhayByZXNpZGVudCBz',
+ 'ZXQgc2l6ZS4KICAqIEFkZGVkIGBSYXdTeW5jaHJvbm91c1NvY2tldGAsIGEgYmFzaWMgc3luY2hy',
+ 'b25vdXMgc29ja2V0IGltcGxlbWVudGF0aW9uLgoKKiBgZGFydDpgIHdlYiBBUElzIGhhdmUgYmVl',
+ 'biB1cGRhdGVkIHRvIGFsaWduIHdpdGggQ2hyb21lIHY1MC4KICAgVGhpcyBjaGFuZ2UgaW5jbHVk',
+ 'ZXMgKiphIGxhcmdlIG51bWJlciBvZiBjaGFuZ2VzKiosIG1hbnkgb2Ygd2hpY2ggYXJlCiAgIGJy',
+ 'ZWFraW5nLiBJbiBzb21lIGNhc2VzLCBuZXcgY2xhc3MgbmFtZXMgbWF5IGNvbmZsaWN0IHdpdGgg',
+ 'bmFtZXMgdGhhdCBleGlzdAogICBpbiBleGlzdGluZyBjb2RlLgoKKiBgZGFydDpodG1sYAoKICAq',
+ 'ICoqUkVNT1ZFRCoqIGNsYXNzZXM6IGBCbHVldG9vdGhgLCBgQmx1ZXRvb3RoRGV2aWNlYCwKICAg',
+ 'IGBCbHVldG9vdGhHYXR0Q2hhcmFjdGVyaXN0aWNgLCBgQmx1ZXRvb3RoR2F0dFJlbW90ZVNlcnZl',
+ 'cmAsCiAgICBgQmx1ZXRvb3RoR2F0dFNlcnZpY2VgLCBgQmx1ZXRvb3RoVXVpZGAsIGBDcm9zc09y',
+ 'aWdpbkNvbm5lY3RFdmVudGAsCiAgICBgRGVmYXVsdFNlc3Npb25TdGFydEV2ZW50YCwgYERvbVNl',
+ 'dHRhYmxlVG9rZW5MaXN0YCwgYE1lZGlhS2V5RXJyb3JgLAogICAgYFBlcmlvZGljU3luY0V2ZW50',
+ 'YCwgYFBsdWdpblBsYWNlaG9sZGVyRWxlbWVudGAsIGBSZWFkYWJsZVN0cmVhbWAsCiAgICBgU3Rh',
+ 'c2hlZE1lc3NhZ2VQb3J0YCwgYFN5bmNSZWdpc3RyYXRpb25gCgogICogKipSRU1PVkVEKiogbWVt',
+ 'YmVyczoKICAgICogYHRleEltYWdlMkRDYW52YXNgIHdhcyByZW1vdmVkIGZyb20gYFJlbmRlcmlu',
+ 'Z0NvbnRleHRgLgogICAgKiBgZW5kQ2xpcGAgYW5kIGBzdGFydENsaXBgIHdlcmUgcmVtb3ZlZCBm',
+ 'cm9tIGBBbmltYXRpb25gLgogICAgKiBgYWZ0ZXJgIGFuZCBgYmVmb3JlYCB3ZXJlIHJlbW92ZWQg',
+ 'ZnJvbSBgQ2hhcmFjdGVyRGF0YWAsIGBDaGlsZE5vZGVgIGFuZAogICAgICBgRWxlbWVudGAuCiAg',
+ 'ICAqIGBrZXlMb2NhdGlvbmAgd2FzIHJlbW92ZWQgZnJvbSBgS2V5Ym9hcmRFdmVudGAuIFVzZSBg',
+ 'bG9jYXRpb25gIGluc3RlYWQuCiAgICAqIGBnZW5lcmF0ZUtleVJlcXVlc3RgLCBga2V5QWRkZWRF',
+ 'dmVudGAsIGBrZXlFcnJvckV2ZW50YCwgYGtleU1lc3NhZ2VFdmVudGAsCiAgICAgIGBtZWRpYUdy',
+ 'b3VwYCwgYG5lZWRLZXlFdmVudGAsIGBvbktleUFkZGVkYCwgYG9uS2V5RXJyb3JgLCBgb25LZXlN',
+ 'ZXNzYWdlYCwKICAgICAgYW5kIGBvbk5lZWRLZXlgIHdlcmUgcmVtb3ZlZCBmcm9tIGBNZWRpYUVs',
+ 'ZW1lbnRgLgogICAgKiBgZ2V0U3RvcmFnZVVwZGF0ZXNgIHdhcyByZW1vdmVkIGZyb20gYE5hdmln',
+ 'YXRvcmAKICAgICogYHN0YXR1c2Agd2FzIHJlbW92ZWQgZnJvbSBgUGVybWlzc2lvblN0YXR1c2AK',
+ 'ICAgICogYGdldEF2YWlsYWJpbGl0eWAgd2FzIHJlbW92ZWQgZnJvbSBgUHJlRWxlbWVudGAKCiAg',
+ 'KiBPdGhlciBiZWhhdmlvciBjaGFuZ2VzOgogICAgKiBVUkxzIHJldHVybmVkIGluIENTUyBvciBo',
+ 'dG1sIGFyZSBmb3JtYXR0ZWQgd2l0aCBxdW90ZWQgc3RyaW5nLgogICAgICBMaWtlIGB1cmwoImh0',
+ 'dHA6Ly9nb29nbGUuY29tIilgIGluc3RlYWQgb2YgYHVybChodHRwOi8vZ29vZ2xlLmNvbSlgLgog',
+ 'ICAgKiBFdmVudCB0aW1lc3RhbXAgcHJvcGVydHkgdHlwZSBjaGFuZ2VkIGZyb20gYGludGAgdG8g',
+ 'YG51bWAuCiAgICAqIENocm9tZSBpbnRyb2R1Y2VkIHNsaWdodCBsYXlvdXQgY2hhbmdlcyBvZiBV',
+ 'SSBvYmplY3RzLgogICAgICBJbiBhZGRpdGlvbiBtYW55IGhlaWdodC93aWR0aCBkaW1lbnNpb25z',
+ 'IGFyZSByZXR1cm5lZCBpbiBzdWJwaXhlbCB2YWx1ZXMKICAgICAgKGBudW1gIGluc3RlYWQgb2Yg',
+ 'd2hvbGUgbnVtYmVycykuCiAgICAqIGBzZXRSYW5nZVRleHRgIHdpdGggYSBgc2VsZWN0aW9uTW9k',
+ 'ZWAgdmFsdWUgb2YgJ2ludmFsaWQnIGlzIG5vIGxvbmdlcgogICAgICB2YWxpZC4gT25seSAic2Vs',
+ 'ZWN0IiwgInN0YXJ0IiwgImVuZCIsICJwcmVzZXJ2ZSIgYXJlIGFsbG93ZWQuCgoqIGBkYXJ0OnN2',
+ 'Z2AKCiAgKiBBIGxhcmdlIG51bWJlciBvZiBhZGRpdGlvbnMgYW5kIHJlbW92YWxzLiBSZXZpZXcg',
+ 'eW91ciB1c2Ugb2YgYGRhcnQ6c3ZnYAogICAgY2FyZWZ1bGx5LgoKKiBgZGFydDp3ZWJfYXVkaW9g',
+ 'CgogICogbmV3IG1ldGhvZCBvbiBgQXVkaW9Db250ZXh0YCAtIGBjcmVhdGVJaXJGaWx0ZXJgIHJl',
+ 'dHVybnMgYSBuZXcgY2xhc3MKICAgIGBJaXJGaWx0ZXJOb2RlYC4KCiogYGRhcnQ6d2ViX2dsYAoK',
+ 'ICAqIG5ldyBjbGFzc2VzOiBgQ29tcHJlc3NlZFRleHR1cmVBc3RjYCwgYEV4dENvbG9yQnVmZmVy',
+ 'RmxvYXRgLAogICAgYEV4dERpc2pvaW50VGltZXJRdWVyeWAsIGFuZCBgVGltZXJRdWVyeUV4dGAu',
+ 'CgogICogYEV4dEZyYWdEZXB0aGAgYWRkZWQ6IGByZWFkUGl4ZWxzMmAgYW5kIGB0ZXhJbWFnZTJE',
+ 'MmAuCgojIyMjIFN0cm9uZyBNb2RlCgoqIFJlbW92ZWQgYWQgaG9jIGBGdXR1cmUudGhlbmAgaW5m',
+ 'ZXJlbmNlIGluIGZhdm9yIG9mIHVzaW5nIGBGdXR1cmVPcmAuICBQcmlvciB0bwogIGFkZGluZyBg',
+ 'RnV0dXJlT3JgIHRvIHRoZSBsYW5ndWFnZSwgdGhlIGFuYWx5emVyIGltcGxlbWVudGVkIGFuIGFk',
+ 'IGhvYyB0eXBlCiAgaW5mZXJlbmNlIGZvciBgRnV0dXJlLnRoZW5gIChhbmQgb3ZlcnJpZGVzKSB0',
+ 'cmVhdGluZyBpdCBhcyBpZiB0aGUgb25WYWx1ZQogIGNhbGxiYWNrIHdhcyB0eXBlZCB0byByZXR1',
+ 'cm4gYEZ1dHVyZU9yYCBmb3IgdGhlIHB1cnBvc2VzIG9mIGluZmVyZW5jZS4KICBUaGlzIGFkIGhv',
+ 'YyBpbmZlcmVuY2UgaGFzIGJlZW4gcmVtb3ZlZCBub3cgdGhhdCBgRnV0dXJlT3JgIGhhcyBiZWVu',
+ 'IGFkZGVkLgoKICBQYWNrYWdlcyB0aGF0IGltcGxlbWVudCBgRnV0dXJlYCBtdXN0IGVpdGhlciB0',
+ 'eXBlIHRoZSBgb25WYWx1ZWAgcGFyYW1ldGVyIHRvCiAgYC50aGVuYCBhcyByZXR1cm5pbmcgYEZ1',
+ 'dHVyZU9yPFQ+YCwgb3IgZWxzZSBtdXN0IGxlYXZlIHRoZSB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIK',
+ 'ICBlbnRpcmVseSB0byBhbGxvdyBpbmZlcmVuY2UgdG8gZmlsbCBpbiB0aGUgdHlwZS4KCiogRHVy',
+ 'aW5nIHN0YXRpYyBhbmFseXNpcywgYSBmdW5jdGlvbiBvciBzZXR0ZXIgZGVjbGFyZWQgdXNpbmcg',
+ 'YD0+YCB3aXRoIHJldHVybgogIHR5cGUgYHZvaWRgIG5vdyBhbGxvd3MgdGhlIHJldHVybmVkIGV4',
+ 'cHJlc3Npb24gdG8gaGF2ZSBhbnkgdHlwZS4KCiMjIyBUb29sIENoYW5nZXMKCiogRGFydGl1bQoK',
+ 'ICBEYXJ0aXVtIGlzIG5vdyBiYXNlZCBvbiBDaHJvbWUgdjUwLiBTZWUgKkNvcmUgbGlicmFyeSBj',
+ 'aGFuZ2VzKiBhYm92ZSBmb3IKICBkZXRhaWxzIG9uIHRoZSBjaGFuZ2VkIEFQSXMuCgoqIFB1YgoK',
+ 'ICAqIGBwdWIgYnVpbGRgIGFuZCBgcHViIHNlcnZlYAoKICAgICogQWRkZWQgc3VwcG9ydCBmb3Ig',
+ 'dGhlIERhcnQgRGV2ZWxvcG1lbnQgQ29tcGlsZXIuCgogICAgICBVbmxpa2UgZGFydDJqcywgdGhp',
+ 'cyBuZXcgY29tcGlsZXIgaXMgbW9kdWxhciwgd2hpY2ggYWxsb3dzIHB1YiB0byBkbwogICAgICBp',
+ 'bmNyZW1lbnRhbCByZS1idWlsZHMgZm9yIGBwdWIgc2VydmVgLCBhbmQgcG90ZW50aWFsbHkgYHB1',
+ 'YiBidWlsZGAgaW4gdGhlCiAgICAgIGZ1dHVyZS4KCiAgICAgIEluIHByYWN0aWNlIHdoYXQgdGhh',
+ 'dCBtZWFucyBpcyB5b3UgY2FuIGVkaXQgeW91ciBEYXJ0IGZpbGVzLCByZWZyZXNoIGluCiAgICAg',
+ 'IENocm9tZSAob3Igb3RoZXIgc3VwcG9ydGVkIGJyb3dzZXJzKSwgYW5kIHNlZSB5b3VyIGVkaXRz',
+ 'IGFsbW9zdAogICAgICBpbW1lZGlhdGVseS4gVGhpcyBpcyBiZWNhdXNlIHB1YiBpcyBvbmx5IHJl',
+ 'Y29tcGlsaW5nIHlvdXIgcGFja2FnZSwgbm90IGFsbAogICAgICBwYWNrYWdlcyB0aGF0IHlvdSBk',
+ 'ZXBlbmQgb24uCgogICAgICBUaGVyZSBpcyBvbmUgY2F2ZWF0IHdpdGggdGhlIG5ldyBjb21waWxl',
+ 'ciwgd2hpY2ggaXMgdGhhdCB5b3VyIHBhY2thZ2UgYW5kCiAgICAgIHlvdXIgZGVwZW5kZW5jaWVz',
+ 'IG11c3QgYWxsIGJlIHN0cm9uZyBtb2RlIGNsZWFuLiBJZiB5b3UgYXJlIGdldHRpbmcgYW4KICAg',
+ 'ICAgZXJyb3IgY29tcGlsaW5nIG9uZSBvZiB5b3VyIGRlcGVuZGVuY2llcywgeW91IHdpbGwgbmVl',
+ 'ZCB0byBmaWxlIGJ1Z3Mgb3IKICAgICAgc2VuZCBwdWxsIHJlcXVlc3RzIHRvIGdldCB0aGVtIHN0',
+ 'cm9uZyBtb2RlIGNsZWFuLgoKICAgICAgVGhlcmUgYXJlIHR3byB3YXlzIG9mIG9wdGluZyBpbnRv',
+ 'IHRoZSBuZXcgY29tcGlsZXI6CgogICAgICAgICogVXNlIHRoZSBuZXcgYC0td2ViLWNvbXBpbGVy',
+ 'YCBmbGFnLCB3aGljaCBzdXBwb3J0cyBgZGFydGRldmNgLAogICAgICAgICAgYGRhcnQyanNgIG9y',
+ 'IGBub25lYCBhcyBvcHRpb25zLiBUaGlzIGlzIHRoZSBlYXNpZXN0IHdheSB0byB0cnkgdGhpbmdz',
+ 'CiAgICAgICAgICBvdXQgd2l0aG91dCBjaGFuZ2luZyB0aGUgZGVmYXVsdC4KCiAgICAgICAgKiBB',
+ 'ZGQgY29uZmlnIHRvIHlvdXIgcHVic3BlYy4gVGhlcmUgaXMgYSBuZXcgYHdlYmAga2V5IHdoaWNo',
+ 'IHN1cHBvcnRzIGEKICAgICAgICAgIHNpbmdsZSBrZXkgY2FsbGVkIGBjb21waWxlcmAuIFRoaXMg',
+ 'aXMgYSBtYXAgZnJvbSBtb2RlIG5hbWVzIHRvCiAgICAgICAgICBjb21waWxlciB0byB1c2UuIEZv',
+ 'ciBleGFtcGxlLCB0byBkZWZhdWx0IHRvIGRhcnRkZXZjIGluIGRlYnVnIG1vZGUgeW91CiAgICAg',
+ 'ICAgICBjYW4gYWRkIHRoZSBmb2xsb3dpbmcgdG8geW91ciBwdWJzcGVjOgoKICAgICAgICAgIGBg',
+ 'YHlhbWwKICAgICAgICAgIHdlYjoKICAgICAgICAgICAgY29tcGlsZXI6CiAgICAgICAgICAgICAg',
+ 'ZGVidWc6IGRhcnRkZXZjCiAgICAgICAgICBgYGAKCiAgICAgIFlvdSBjYW4gYWxzbyB1c2UgdGhl',
+ 'IG5ldyBjb21waWxlciB0byBydW4geW91ciB0ZXN0cyBpbiBDaHJvbWUgbXVjaCBtb3JlCiAgICAg',
+ 'IHF1aWNrbHkgdGhhbiB5b3UgY2FuIHdpdGggZGFydDJqcy4gSW4gb3JkZXIgdG8gZG8gdGhhdCwg',
+ 'cnVuCiAgICAgIGBwdWIgc2VydmUgdGVzdCAtLXdlYi1jb21waWxlcj1kYXJ0ZGV2Y2AsIGFuZCB0',
+ 'aGVuIHJ1bgogICAgICBgcHViIHJ1biB0ZXN0IC1wIGNocm9tZSAtLXB1Yi1zZXJ2ZT04MDgwYC4K',
+ 'CiAgICAqIFRoZSBgLS1uby1kYXJ0MmpzYCBmbGFnIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2',
+ ];
+}
+
+List<String> _h5(String s) {
+ return [
+ s,
+ 'b3Igb2YKICAgICAgYC0td2ViLWNvbXBpbGVyPW5vbmVgLgoKICAgICogYHB1YiBidWlsZGAgd2ls',
+ 'bCB1c2UgYSBmYWlsaW5nIGV4aXQgY29kZSBpZiB0aGVyZSBhcmUgZXJyb3JzIGluIGFueQogICAg',
+ 'ICB0cmFuc2Zvcm1lci4KCiAgKiBgcHViIHB1Ymxpc2hgCgogICAgKiBBZGRlZCBzdXBwb3J0IGZv',
+ 'ciB0aGUgVU5MSUNFTlNFIGZpbGUuCgogICAgKiBQYWNrYWdlcyB0aGF0IGRlcGVuZCBvbiB0aGUg',
+ 'Rmx1dHRlciBTREsgbWF5IGJlIHB1Ymxpc2hlZC4KCiAgKiBgcHViIGdldGAgYW5kIGBwdWIgdXBn',
+ 'cmFkZWAKCiAgICAqIERvbid0IGR1bXAgYSBzdGFjayB0cmFjZSB3aGVuIGEgbmV0d29yayBlcnJv',
+ 'ciBvY2N1cnMgd2hpbGUgZmV0Y2hpbmcKICAgICAgcGFja2FnZXMuCgoqIGRhcnRmbXQKICAgICog',
+ 'UHJlc2VydmUgdHlwZSBwYXJhbWV0ZXJzIGluIG5ldyBnZW5lcmljIGZ1bmN0aW9uIHR5cGVkZWYg',
+ 'c3ludGF4LgogICAgKiBBZGQgc2VsZi10ZXN0IHZhbGlkYXRpb24gdG8gZW5zdXJlIGZvcm1hdHRl',
+ 'ciBidWdzIGRvIG5vdCBjYXVzZSB1c2VyIGNvZGUKICAgICAgdG8gYmUgbG9zdC4KCiMjIyBJbmZy',
+ 'YXN0cnVjdHVyZSBjaGFuZ2VzCgoqIEFzIG9mIHRoaXMgcmVsZWFzZSwgd2UnbGwgc2hvdyBhIHdh',
+ 'cm5pbmcgd2hlbiB1c2luZyB0aGUgTUlQUyBhcmNoaXRlY3R1cmUuCiAgVW5sZXNzIHdlIGxlYXJu',
+ 'IGFib3V0IGFueSBjcml0aWNhbCB1c2Ugb2YgRGFydCBvbiBNSVBTIGluIHRoZSBtZWFudGltZSwg',
+ 'd2UncmUKICBwbGFubmluZyB0byBkZXByZWNhdGUgc3VwcG9ydCBmb3IgTUlQUyBzdGFydGluZyB3',
+ 'aXRoIHRoZSBuZXh0IHN0YWJsZSByZWxlYXNlLgoKIyMgMS4yMy4wIC0gMjAxNy0wNC0yMQoKIyMj',
+ 'IyBTdHJvbmcgTW9kZQoKKiBCcmVha2luZyBjaGFuZ2UgLSBpdCBpcyBub3cgYSBzdHJvbmcgbW9k',
+ 'ZSBlcnJvciBpZiBhIG1peGluIGNhdXNlcyBhIG5hbWUKICBjb25mbGljdCBiZXR3ZWVuIHR3byBw',
+ 'cml2YXRlIG1lbWJlcnMgKGZpZWxkL2dldHRlci9zZXR0ZXIvbWV0aG9kKSBmcm9tIGEKICBkaWZm',
+ 'ZXJlbnQgbGlicmFyeS4gKFNESwogIGlzc3VlIFsyODgwOV0oaHR0cHM6Ly9naXRodWIuY29tL2Rh',
+ 'cnQtbGFuZy9zZGsvaXNzdWVzLzI4ODA5KSkuCgpsaWIxLmRhcnQ6CgoKYGBgZGFydApjbGFzcyBB',
+ 'IHsKICBpbnQgX3g7Cn0KCmNsYXNzIEIgewogIGludCBfeDsKfQpgYGAKCmxpYjIuZGFydDoKCgpg',
+ 'YGBkYXJ0CmltcG9ydCAnbGliMS5kYXJ0JzsKCmNsYXNzIEMgZXh0ZW5kcyBBIHdpdGggQiB7fQpg',
+ 'YGAKCmBgYAogICAgZXJyb3Ig4oCiIFRoZSBwcml2YXRlIG5hbWUgX3gsIGRlZmluZWQgYnkgQiwg',
+ 'Y29uZmxpY3RzIHdpdGggdGhlIHNhbWUgbmFtZSBkZWZpbmVkIGJ5IEEgYXQgdG1wL2xpYjIuZGFy',
+ 'dDozOjI0IOKAoiBwcml2YXRlX2NvbGxpc2lvbl9pbl9taXhpbl9hcHBsaWNhdGlvbgpgYGAKCgoq',
+ 'IEJyZWFraW5nIGNoYW5nZSAtIHN0cm9uZyBtb2RlIHdpbGwgcHJlZmVyIHRoZSBleHBlY3RlZCB0',
+ 'eXBlIHRvIGluZmVyIGdlbmVyaWMKICB0eXBlcywgZnVuY3Rpb25zLCBhbmQgbWV0aG9kcyAoU0RL',
+ 'CiAgaXNzdWUgWzI3NTg2XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMv',
+ 'Mjc1ODYpKS4KCiAgYGBgZGFydAogIG1haW4oKSB7CiAgICBMaXN0PE9iamVjdD4gZm9vID0gLypp',
+ 'bmZlcnM6IDxPYmplY3Q+Ki9bJ2hlbGxvJywgJ3dvcmxkJ107CiAgICB2YXIgYmFyID0gLyppbmZl',
+ 'cnM6IDxTdHJpbmc+Ki9bJ2hlbGxvJywgJ3dvcmxkJ107CiAgfQogIGBgYAoKKiBTdHJvbmcgbW9k',
+ 'ZSBpbmZlcmVuY2UgZXJyb3IgbWVzc2FnZXMgYXJlIGltcHJvdmVkCiAgKFNESyBpc3N1ZSBbMjkx',
+ 'MDhdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yOTEwOCkpLgoKICBg',
+ 'YGBkYXJ0CiAgaW1wb3J0ICdkYXJ0Om1hdGgnOwogIHRlc3QoSXRlcmFibGUvKiBmaXggaXMgdG8g',
+ 'YWRkIDxudW0+IGhlcmUgKi8gdmFsdWVzKSB7CiAgICBudW0gbiA9IHZhbHVlcy5mb2xkKHZhbHVl',
+ 'cy5maXJzdCBhcyBudW0sIG1heCk7CiAgfQogIGBgYAogIE5vdyBwcm9kdWNlcyB0aGUgZXJyb3Ig',
+ 'b24gdGhlIGdlbmVyaWMgZnVuY3Rpb24gIm1heCI6CiAgYGBgCiAgQ291bGRuJ3QgaW5mZXIgdHlw',
+ 'ZSBwYXJhbWV0ZXIgJ1QnLgoKICBUcmllZCB0byBpbmZlciAnZHluYW1pYycgZm9yICdUJyB3aGlj',
+ 'aCBkb2Vzbid0IHdvcms6CiAgICBGdW5jdGlvbiB0eXBlIGRlY2xhcmVkIGFzICc8VCBleHRlbmRz',
+ 'IG51bT4oVCwgVCkg4oaSIFQnCiAgICAgICAgICAgICAgICAgIHVzZWQgd2hlcmUgICcobnVtLCBk',
+ 'eW5hbWljKSDihpIgbnVtJyBpcyByZXF1aXJlZC4KCiAgQ29uc2lkZXIgcGFzc2luZyBleHBsaWNp',
+ 'dCB0eXBlIGFyZ3VtZW50KHMpIHRvIHRoZSBnZW5lcmljLgogIGBgYAoKKiBTdHJvbmcgbW9kZSBz',
+ 'dXBwb3J0cyBvdmVycmlkaW5nIGZpZWxkcywgYEB2aXJ0dWFsYCBpcyBubyBsb25nZXIgcmVxdWly',
+ 'ZWQKICAgIChTREsgaXNzdWUgWzI4MTIwXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nk',
+ 'ay9pc3N1ZXMvMjgxMjApKS4KCiAgICBgYGBkYXJ0CiAgICBjbGFzcyBDIHsKICAgICAgaW50IHgg',
+ 'PSA0MjsKICAgIH0KICAgIGNsYXNzIEQgZXh0ZW5kcyBDIHsKICAgICAgZ2V0IHggewogICAgICAg',
+ 'IHByaW50KCJ4IGdvdCBjYWxsZWQiKTsKICAgICAgICByZXR1cm4gc3VwZXIueDsKICAgICAgfQog',
+ 'ICAgfQogICAgbWFpbigpIHsKICAgICAgcHJpbnQobmV3IEQoKS54KTsKICAgIH0KICAgIGBgYAoK',
+ 'KiBTdHJvbmcgbW9kZSBkb3duIGNhc3QgY29tcG9zaXRlIHdhcm5pbmdzIGFyZSBubyBsb25nZXIg',
+ 'aXNzdWVkIGJ5IGRlZmF1bHQuCiAgKFNESyBpc3N1ZSBbMjg1ODhdKGh0dHBzOi8vZ2l0aHViLmNv',
+ 'bS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yODU4OCkpLgoKYGBgZGFydAp2b2lkIHRlc3QoKSB7CiAg',
+ 'TGlzdCB1bnR5cGVkID0gW107CiAgTGlzdDxpbnQ+IHR5cGVkID0gdW50eXBlZDsgLy8gTm8gZG93',
+ 'biBjYXN0IGNvbXBvc2l0ZSB3YXJuaW5nCn0KYGBgCgpUbyBvcHQgYmFjayBpbnRvIHRoZSB3YXJu',
+ 'aW5ncywgYWRkIHRoZSBmb2xsb3dpbmcgdG8KdGhlClsuYW5hbHlzaXNfb3B0aW9uc10oaHR0cHM6',
+ 'Ly93d3cuZGFydGxhbmcub3JnL2d1aWRlcy9sYW5ndWFnZS9hbmFseXNpcy1vcHRpb25zKQpmaWxl',
+ 'IGZvciB5b3VyIHByb2plY3QuCgpgYGAKYW5hbHl6ZXI6CiAgZXJyb3JzOgogICAgc3Ryb25nX21v',
+ 'ZGVfZG93bl9jYXN0X2NvbXBvc2l0ZTogd2FybmluZwpgYGAKCgojIyMgQ29yZSBsaWJyYXJ5IGNo',
+ 'YW5nZXMKCiogYGRhcnQ6Y29yZWAKICAqIEFkZGVkIGBVcmkuaXNTY2hlbWVgIGZ1bmN0aW9uIHRv',
+ 'IGNoZWNrIHRoZSBzY2hlbWUgb2YgYSBVUkkuCiAgICBFeGFtcGxlOiBgdXJpLmlzU2NoZW1lKCJo',
+ 'dHRwIilgLiBJZ25vcmVzIGNhc2Ugd2hlbiBjb21wYXJpbmcuCiAgKiBNYWtlIGBVcmlEYXRhLnBh',
+ 'cnNlYCB2YWxpZGF0ZSBpdHMgaW5wdXQgYmV0dGVyLgogICAgSWYgdGhlIGRhdGEgaXMgYmFzZS02',
+ 'NCBlbmNvZGVkLCB0aGUgZGF0YSBpcyBub3JtYWxpemVkIHdydC4KICAgIGFscGhhYmV0IGFuZCBw',
+ 'YWRkaW5nLCBhbmQgaXQgY29udGFpbnMgaW52YWxpZCBiYXNlLTY0IGRhdGEsCiAgICBwYXJzaW5n',
+ 'IGZhaWxzLiBBbHNvIG5vcm1hbGl6ZXMgbm9uLWJhc2UtNjQgZGF0YS4KKiBgZGFydDppb2AKICAq',
+ 'IEFkZGVkIGZ1bmN0aW9ucyBgRmlsZS5sYXN0QWNjZXNzZWRgLCBgRmlsZS5sYXN0QWNjZXNzZWRT',
+ 'eW5jYCwKICAgIGBGaWxlLnNldExhc3RNb2RpZmllZGAsIGBGaWxlLnNldExhc3RNb2RpZmllZFN5',
+ 'bmNgLCBgRmlsZS5zZXRMYXN0QWNjZXNzZWRgLAogICAgYW5kIGBGaWxlLnNldExhc3RBY2Nlc3Nl',
+ 'ZFN5bmNgLgogICogQWRkZWQgYHtTdGRpbixTdGRvdXR9LnN1cHBvcnRzQW5zaUVzY2FwZXNgLgoK',
+ 'IyMjIERhcnQgVk0KCiogQ2FsbHMgdG8gYHByaW50KClgIGFuZCBgU3Rkb3V0LndyaXRlKigpYCBu',
+ 'b3cgY29ycmVjdGx5IHByaW50IHVuaWNvZGUKICBjaGFyYWN0ZXJzIHRvIHRoZSBjb25zb2xlIG9u',
+ 'IFdpbmRvd3MuIENhbGxzIHRvIGBTdGRvdXQuYWRkKigpYCBiZWhhdmUgYXMKICBiZWZvcmUuCgoj',
+ 'IyMgVG9vbCBjaGFuZ2VzCgoqIEFuYWx5c2lzCiAgKiBgZGFydGFuYWx5emVyYCBub3cgZm9sbG93',
+ 'cyB0aGUgc2FtZSBydWxlcyBhcyB0aGUgYW5hbHlzaXMgc2VydmVyIHRvIGZpbmQKICAgIGFuIGFu',
+ 'YWx5c2lzIG9wdGlvbnMgZmlsZSwgc3RvcHBpbmcgd2hlbiBhbiBhbmFseXNpcyBvcHRpb25zIGZp',
+ 'bGUgaXMgZm91bmQ6CiAgICAqIFNlYXJjaCB1cCB0aGUgZGlyZWN0b3J5IGhpZXJhcmNoeSBsb29r',
+ 'aW5nIGZvciBhbiBhbmFseXNpcyBvcHRpb25zIGZpbGUuCiAgICAqIElmIGFuYWx5emluZyBhIHBy',
+ 'b2plY3QgcmVmZXJlbmNpbmcgdGhlIFtGbHV0dGVyXShodHRwczovL2ZsdXR0ZXIuaW8vKQogICAg',
+ 'ICBwYWNrYWdlLCB0aGVuIHVzZSB0aGUKICAgICAgW2RlZmF1bHQgRmx1dHRlciBhbmFseXNpcyBv',
+ 'cHRpb25zXShodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL3Bh',
+ 'Y2thZ2VzL2ZsdXR0ZXIvbGliL2FuYWx5c2lzX29wdGlvbnNfdXNlci55YW1sKQogICAgICBmb3Vu',
+ 'ZCBpbiBgcGFja2FnZTpmbHV0dGVyYC4KICAgICogSWYgaW4gYSBCYXplbCB3b3Jrc3BhY2UsIHRo',
+ 'ZW4gdXNlIHRoZSBhbmFseXNpcyBvcHRpb25zIGluCiAgICAgIGBwYWNrYWdlOmRhcnQuYW5hbHlz',
+ 'aXNfb3B0aW9ucy9kZWZhdWx0LnlhbWxgIGlmIGl0IGV4aXN0cy4KICAgICogVXNlIHRoZSBkZWZh',
+ 'dWx0IGFuYWx5c2lzIG9wdGlvbnMgcnVsZXMuCiAgKiBJbiBhZGRpdGlvbiwgc3BlY2lmaWMgdG8g',
+ 'YGRhcnRhbmFseXplcmA6CiAgICAqIGFuIGFuYWx5c2lzIG9wdGlvbnMgZmlsZSBjYW4gYmUgc3Bl',
+ 'Y2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUgdmlhCiAgICAgIGAtLW9wdGlvbnNgIGFuZCB0aGF0',
+ 'IGZpbGUgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2Ygc2VhcmNoaW5nIGZvciBhbgogICAgICBhbmFs',
+ 'eXNpcyBvcHRpb25zIGZpbGUuCiAgICAqIGFueSBhbmFseXNpcyBvcHRpb24gc3BlY2lmaWVkIG9u',
+ 'IHRoZSBjb21tYW5kIGxpbmUKICAgICAgKGUuZy4gYC0tc3Ryb25nYCBvciBgLS1uby1zdHJvbmdg',
+ 'KSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYW55IGNvcnJlc3BvbmRpbmcKICAgICAgdmFsdWUgc3Bl',
+ 'Y2lmaWVkIGluIHRoZSBhbmFseXNpcyBvcHRpb25zIGZpbGUuCgoqIERhcnRpdW0sIGRhcnQyanMs',
+ 'IGFuZCBEREMKCiAgKiBJbXBvcnRzIHRvIGBkYXJ0OmlvYCBhcmUgYWxsb3dlZCwgYnV0IHRoZSBp',
+ 'bXBvcnRlZCBsaWJyYXJ5IGlzIG5vdCBzdXBwb3J0ZWQKICAgIGFuZCB3aWxsIGxpa2VseSBmYWls',
+ 'IG9uIG1vc3QgQVBJcyBhdCBydW50aW1lLiBUaGlzIGNoYW5nZSB3YXMgbWFkZSBhcyBhCiAgICBz',
+ 'dG9wZ2FwIG1lYXN1cmUgdG8gbWFrZSBpdCBlYXNpZXIgdG8gd3JpdGUgbGlicmFyaWVzIHRoYXQg',
+ 'c2hhcmUgY29kZSBiZXR3ZWVuCiAgICBwbGF0Zm9ybXMgKGxpa2UgcGFja2FnZSBgaHR0cGApLiBU',
+ 'aGlzIG1pZ2h0IGNoYW5nZSBhZ2FpbiB3aGVuIGNvbmZpZ3VyYXRpb24KICAgIHNwZWNpZmljIGlt',
+ 'cG9ydHMgYXJlIHN1cHBvcnRlZC4KCiogUHViCiAgKiBOb3cgc2VuZHMgdGVsZW1ldHJ5IGRhdGEg',
+ 'dG8gYHB1Yi5kYXJ0bGFuZy5vcmdgIHRvIGFsbG93IGJldHRlciB1bmRlcnN0YW5kaW5nCiAgICBv',
+ 'ZiB3aHkgYSBwYXJ0aWN1bGFyIHBhY2thZ2UgaXMgYmVpbmcgYWNjZXNzZWQuCiAgKiBgcHViIHB1',
+ ];
+}
+
+List<String> _h6(String s) {
+ return [
+ s,
+ 'Ymxpc2hgCiAgICAqIFdhcm5zIGlmIGEgcGFja2FnZSBpbXBvcnRzIGEgcGFja2FnZSB0aGF0J3Mg',
+ 'bm90IGEgZGVwZW5kZW5jeSBmcm9tIHdpdGhpbgogICAgICBgbGliL2Agb3IgYGJpbi9gLCBvciBh',
+ 'IHBhY2thZ2UgdGhhdCdzIG5vdCBhIGRldiBkZXBlbmRlbmN5IGZyb20gd2l0aGluCiAgICAgIGBi',
+ 'ZW5jaG1hcmsvYCwgYGV4YW1wbGUvYCwgYHRlc3QvYCBvciBgdG9vbC9gLgogICAgKiBObyBsb25n',
+ 'ZXIgcHJvZHVjZXMgIlVJRCB0b28gbGFyZ2UiIGVycm9ycyBvbiBPUyBYLiBBbGwgcGFja2FnZXMg',
+ 'YXJlIG5vdwogICAgICB1cGxvYWRlZCB3aXRoIHRoZSB1c2VyIGFuZCBncm91cCBuYW1lcyBzZXQg',
+ 'dG8gInB1YiIuCiAgICAqIE5vIGxvbmdlciBmYWlscyB3aXRoIGEgc3RhY2sgb3ZlcmZsb3cgd2hl',
+ 'biB1cGxvYWRpbmcgYSBwYWNrYWdlIHRoYXQgdXNlcwogICAgICBHaXQgc3VibW9kdWxlcy4KICAq',
+ 'IGBwdWIgZ2V0YCBhbmQgYHB1YiB1cGdyYWRlYAogICAgKiBQcm9kdWNlIG1vcmUgaW5mb3JtYXRp',
+ 'dmUgZXJyb3IgbWVzc2FnZXMgaWYgdGhleSdyZSBydW4gZGlyZWN0bHkgaW4gYQogICAgICBwYWNr',
+ 'YWdlIHRoYXQgdXNlcyBGbHV0dGVyLgogICAgKiBQcm9wZXJseSB1bmxvY2sgU0RLIGFuZCBwYXRo',
+ 'IGRlcGVuZGVuY2llcyBpZiB0aGV5IGhhdmUgYSBuZXcgdmVyc2lvbgogICAgICB0aGF0J3MgYWxz',
+ 'byB2YWxpZCBhY2NvcmRpbmcgdG8gdGhlIHVzZXIncyBwdWJzcGVjLgoKKiBkYXJ0Zm10CiAgKiBT',
+ 'dXBwb3J0IG5ldyBnZW5lcmljIGZ1bmN0aW9uIHR5cGVkZWYgc3ludGF4LgogICogTWFrZSB0aGUg',
+ 'cHJlY2VkZW5jZSBvZiBjYXNjYWRlcyBtb3JlIHZpc2libGUuCiAgKiBGaXggYSBjb3VwbGUgb2Yg',
+ 'cGxhY2VzIHdoZXJlIHNwdXJpb3VzIG5ld2xpbmVzIHdlcmUgaW5zZXJ0ZWQuCiAgKiBDb3JyZWN0',
+ 'bHkgcmVwb3J0IHVuY2hhbmdlZCBmb3JtYXR0aW5nIHdoZW4gcmVhZGluZyBmcm9tIHN0ZGluLgog',
+ 'ICogRW5zdXJlIHNwYWNlIGJldHdlZW4gYC1gIGFuZCBgLS1gLiBDb2RlIHRoYXQgZG9lcyB0aGlz',
+ 'IGlzIHBhdGhvbG9naWNhbCwgYnV0CiAgICBpdCB0ZWNobmljYWxseSBtZWFudCBkYXJ0Zm10IGNv',
+ 'dWxkIGNoYW5nZSB0aGUgc2VtYW50aWNzIG9mIHRoZSBjb2RlLgogICogUHJlc2VydmUgYSBibGFu',
+ 'ayBsaW5lIGJldHdlZW4gZW51bSBjYXNlcy4KICAqIE90aGVyIHNtYWxsIGZvcm1hdHRpbmcgdHdl',
+ 'YWtzLgoKCiMjIDEuMjIuMSAtIDIwMTctMDItMjIKClBhdGNoIHJlbGVhc2UsIHJlc29sdmVzIHR3',
+ 'byBpc3N1ZXM6CiogRGFydCBWTSBjcmFzaDogW0lzc3VlIDI4MDcyXShodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjg3NTcpCgoqIERhcnQgVk0gYnVnIGNvbWJpbmluZyB0',
+ 'eXBlcywgYXdhaXQsIGFuZCBkZWZlcnJlZCBsb2FkaW5nOiBbSXNzdWUgMjg2NzhdKGh0dHBzOi8v',
+ 'Z2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yODY3OCkKCgojIyAxLjIyLjAgLSAyMDE3',
+ 'LTAyLTE0CgojIyMgTGFuZ3VhZ2UKCiAgKiBCcmVha2luZyBjaGFuZ2U6CiAgICBbJ0dlbmVyYWxp',
+ 'emVkIHRlYXItb2ZmcyddKGh0dHBzOi8vZ2l0aHViLmNvbS9nYnJhY2hhL2dlbmVyYWxpemVkVGVh',
+ 'ck9mZnMvYmxvYi9tYXN0ZXIvcHJvcG9zYWwubWQpCiAgICBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRl',
+ 'ZCwgYW5kIHdpbGwgY2F1c2UgZXJyb3JzLiBXZSB1cGRhdGVkIHRoZSBsYW5ndWFnZSBzcGVjCiAg',
+ 'ICBhbmQgYWRkZWQgd2FybmluZ3MgaW4gMS4yMSwgYW5kIGFyZSBub3cgdGFraW5nIHRoZSBsYXN0',
+ 'IHN0ZXAgdG8gZnVsbHkKICAgIGRlLXN1cHBvcnQgdGhlbS4gVGhleSB3ZXJlIHByZXZpb3VzbHkg',
+ 'b25seSBzdXBwb3J0ZWQgaW4gdGhlIFZNLCBhbmQgdGhlcmUKICAgIGFyZSBhbG1vc3Qgbm8ga25v',
+ 'd24gdXNlcyBvZiB0aGVtIGluIHRoZSB3aWxkLgoKICAqIFRoZSBgYXNzZXJ0KClgIHN0YXRlbWVu',
+ 'dCBoYXMgYmVlbiBleHBhbmRlZCB0byBzdXBwb3J0IGFuIG9wdGlvbmFsIHNlY29uZAogICAgYG1l',
+ 'c3NhZ2VgIGFyZ3VtZW50CiAgICAoU0RLIGlzc3VlIFsyNzM0Ml0oaHR0cHM6Ly9naXRodWIuY29t',
+ 'L2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI3MzQyKSkuCgogICAgVGhlIG1lc3NhZ2UgaXMgZGlzcGxh',
+ 'eWVkIGlmIHRoZSBhc3NlcnQgZmFpbHMuIEl0IGNhbiBiZSBhbnkgb2JqZWN0LCBhbmQgaXQKICAg',
+ 'IGlzIGFjY2Vzc2libGUgYXMgYEFzc2VydGlvbkVycm9yLm1lc3NhZ2VgLiBJdCBjYW4gYmUgdXNl',
+ 'ZCB0byBwcm92aWRlIG1vcmUKICAgIHVzZXIgZnJpZW5kbHkgZXhjZXB0aW9uIG91dHB1dHMuIEFz',
+ 'IGFuIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgYXNzZXJ0OgoKICAgIGBgYGRhcnQKICAgIGFzc2Vy',
+ 'dChjb25maWdGaWxlICE9IG51bGwsICJUb29sIGNvbmZpZyBtaXNzaW5nLiBQbGVhc2Ugc2VlIGh0',
+ 'dHBzOi8vZ29vLmdsL2s4aUFpIGZvciBkZXRhaWxzLiIpOwogICAgYGBgCgogICAgd291bGQgcHJv',
+ 'ZHVjZSB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbiBvdXRwdXQ6CgogICAgYGBgCiAgICBVbmhhbmRs',
+ 'ZWQgZXhjZXB0aW9uOgogICAgJ2ZpbGU6Ly8vVXNlcnMvbWl0L3RtcC90b29sL2Jpbi9tYWluLmRh',
+ 'cnQnOiBGYWlsZWQgYXNzZXJ0aW9uOiBsaW5lIDkgcG9zIDEwOgogICAgJ2NvbmZpZ0ZpbGUgIT0g',
+ 'bnVsbCc6IFRvb2wgY29uZmlnIG1pc3NpbmcuIFBsZWFzZSBzZWUgaHR0cHM6Ly9nb28uZ2wvazhp',
+ 'QWkgZm9yIGRldGFpbHMuCiAgICAjMCAgICAgIF9Bc3NlcnRpb25FcnJvci5fZG9UaHJvd05ldyAo',
+ 'ZGFydDpjb3JlLXBhdGNoL2Vycm9yc19wYXRjaC5kYXJ0OjMzKQogICAgIzEgICAgICBfQXNzZXJ0',
+ 'aW9uRXJyb3IuX3Rocm93TmV3IChkYXJ0OmNvcmUtcGF0Y2gvZXJyb3JzX3BhdGNoLmRhcnQ6Mjkp',
+ 'CiAgICAjMiAgICAgIG1haW4gKGZpbGU6Ly8vVXNlcnMvbWl0L3RtcC90b29sL2Jpbi9tYWluLmRh',
+ 'cnQ6OToxMCkKICAgIGBgYAoKICAqIFRoZSBgTnVsbGAgdHlwZSBoYXMgYmVlbiBtb3ZlZCB0byB0',
+ 'aGUgYm90dG9tIG9mIHRoZSB0eXBlIGhpZXJhcmNoeS4gQXMgc3VjaCwKICAgIGl0IGlzIGNvbnNp',
+ 'ZGVyZWQgYSBzdWJ0eXBlIG9mIGV2ZXJ5IG90aGVyIHR5cGUuIFRoZSBgbnVsbGAgKmxpdGVyYWwq',
+ 'IHdhcwogICAgYWx3YXlzIHRyZWF0ZWQgYXMgYSBib3R0b20gdHlwZS4gTm93IHRoZSBuYW1lZCBj',
+ 'bGFzcyBgTnVsbGAgaXMgdG9vOgoKICAgIGBgYGRhcnQKICAgIGNvbnN0IGVtcHR5ID0gPE51bGw+',
+ 'W107CgogICAgU3RyaW5nIGNvbmNhdGVuYXRlKExpc3Q8U3RyaW5nPiBwYXJ0cykgPT4gcGFydHMu',
+ 'am9pbigpOwogICAgaW50IHN1bShMaXN0PGludD4gbnVtYmVycykgPT4gbnVtYmVycy5mb2xkKDAs',
+ 'IChzdW0sIG4pID0+IHN1bSArIG4pOwoKICAgIGNvbmNhdGVuYXRlKGVtcHR5KTsgLy8gT0suCiAg',
+ 'ICBzdW0oZW1wdHkpOyAvLyBPSy4KICAgIGBgYAoKICAqIEludHJvZHVjZSBgY292YXJpYW50YCBt',
+ 'b2RpZmllciBvbiBwYXJhbWV0ZXJzLiBJdCBpbmRpY2F0ZXMgdGhhdCB0aGUKICAgIHBhcmFtZXRl',
+ 'ciAoYW5kIHRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBpbiBhbnkgbWV0aG9kIHRoYXQgb3Zl',
+ 'cnJpZGVzIGl0KQogICAgaGFzIGxvb3NlciBvdmVycmlkZSBydWxlcy4gSW4gc3Ryb25nIG1vZGUs',
+ 'IHRoZXNlIHJlcXVpcmUgYSBydW50aW1lIHR5cGUKICAgIGNoZWNrIHRvIG1haW50YWluIHNvdW5k',
+ 'bmVzcywgYnV0IGVuYWJsZSBhbiBhcmNoaXRlY3R1cmFsIHBhdHRlcm4gdGhhdCBpcwogICAgdXNl',
+ 'ZnVsIGluIHNvbWUgY29kZS4KCiAgICBJdCBsZXRzIHlvdSBzcGVjaWFsaXplIGEgZmFtaWx5IG9m',
+ 'IGNsYXNzZXMgdG9nZXRoZXIsIGxpa2Ugc286CgogICAgYGBgZGFydAogICAgYWJzdHJhY3QgY2xh',
+ 'c3MgUHJlZGF0b3IgewogICAgICB2b2lkIGNoYXNlQW5kRWF0KGNvdmFyaWFudCBQcmV5IHApOwog',
+ 'ICAgfQoKICAgIGFic3RyYWN0IGNsYXNzIFByZXkge30KCiAgICBjbGFzcyBNb3VzZSBleHRlbmRz',
+ 'IFByZXkge30KCiAgICBjbGFzcyBTZWFsIGV4dGVuZHMgUHJleSB7fQoKICAgIGNsYXNzIENhdCBl',
+ 'eHRlbmRzIFByZWRhdG9yIHsKICAgICAgdm9pZCBjaGFzZUFuZEVhdChNb3VzZSBtKSA9PiAuLi4K',
+ 'ICAgIH0KCiAgICBjbGFzcyBPcmNhIGV4dGVuZHMgUHJlZGF0b3IgewogICAgICB2b2lkIGNoYXNl',
+ 'QW5kRWF0KFNlYWwgcykgPT4gLi4uCiAgICB9CiAgICBgYGAKCiAgICBUaGlzIGlzbid0IHN0YXRp',
+ 'Y2FsbHkgc2FmZSwgYmVjYXVzZSB5b3UgY291bGQgZG86CgogICAgYGBgZGFydAogICAgUHJlZGF0',
+ 'b3IgcHJlZGF0b3IgPSBuZXcgQ2F0KCk7IC8vIFVwY2FzdC4KICAgIHByZWRhdG9yLmNoYXNlQW5k',
+ 'RWF0KG5ldyBTZWFsKCkpOyAvLyBDYXRzIGNhbid0IGVhdCBzZWFscyEKICAgIGBgYAoKICAgIFRv',
+ 'IHByZXNlcnZlIHNvdW5kbmVzcyBpbiBzdHJvbmcgbW9kZSwgaW4gdGhlIGJvZHkgb2YgYSBtZXRo',
+ 'b2QgdGhhdCB1c2VzIGEKICAgIGNvdmFyaWFudCBvdmVycmlkZSAoaGVyZSwgYENhdC5jaGFzZUFu',
+ 'ZEVhdCgpYCksIHRoZSBjb21waWxlciBhdXRvbWF0aWNhbGx5CiAgICBpbnNlcnRzIGEgY2hlY2sg',
+ 'dGhhdCB0aGUgcGFyYW1ldGVyIGlzIG9mIHRoZSBleHBlY3RlZCB0eXBlLiBTbyB0aGUgY29tcGls',
+ 'ZXIKICAgIGdpdmVzIHlvdSBzb21ldGhpbmcgbGlrZToKCiAgICBgYGBkYXJ0CiAgICBjbGFzcyBD',
+ 'YXQgZXh0ZW5kcyBQcmVkYXRvciB7CiAgICAgIHZvaWQgY2hhc2VBbmRFYXQobykgewogICAgICAg',
+ 'IHZhciBtID0gbyBhcyBNb3VzZTsKICAgICAgICAuLi4KICAgICAgfQogICAgfQogICAgYGBgCgog',
+ 'ICAgU3BlYyBtb2RlIGFsbG93cyB0aGlzIHVuc291bmQgYmVoYXZpb3Igb24gYWxsIHBhcmFtZXRl',
+ 'cnMsIGV2ZW4gdGhvdWdoIHVzZXJzCiAgICByYXJlbHkgcmVseSBvbiBpdC4gU3Ryb25nIG1vZGUg',
+ 'ZGlzYWxsb3dlZCBpdCBpbml0aWFsbHkuIE5vdywgc3Ryb25nIG1vZGUKICAgIGxldHMgeW91IG9w',
+ 'dCBpbnRvIHRoaXMgYmVoYXZpb3IgaW4gdGhlIHBsYWNlcyB3aGVyZSB5b3UgZG8gd2FudCBpdCBi',
+ 'eSB1c2luZwogICAgdGhpcyBtb2RpZmllci4gT3V0c2lkZSBvZiBzdHJvbmcgbW9kZSwgdGhlIG1v',
+ 'ZGlmaWVyIGlzIGlnbm9yZWQuCgogICogQ2hhbmdlIGluc3RhbnRpYXRlLXRvLWJvdW5kcyBydWxl',
+ 'cyBmb3IgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlcnMgd2hlbiBydW5uaW5nCiAgICBpbiBzdHJvbmcg',
+ 'bW9kZS4gSWYgeW91IGxlYXZlIG9mZiB0aGUgdHlwZSBwYXJhbWV0ZXJzIGZyb20gYSBnZW5lcmlj',
+ 'IHR5cGUsIHdlCiAgICBuZWVkIHRvIGRlY2lkZSB3aGF0IHRvIGZpbGwgdGhlbSBpbiB3aXRoLiAg',
+ 'RGFydCAxLjAgc2F5cyBqdXN0IHVzZSBgZHluYW1pY2AsCiAgICBidXQgdGhhdCBpc24ndCBzb3Vu',
+ 'ZDoKCiAgICBgYGBkYXJ0CiAgICBjbGFzcyBBYnNlcjxUIGV4dGVuZHMgbnVtPiB7CiAgICAgICB2',
+ 'b2lkIGFic1RoaXMoVCBuKSB7IG4uYWJzKCk7IH0KICAgIH0KCiAgICB2YXIgYSA9IG5ldyBBYnNl',
+ 'cigpOyAvLyBBYnNlcjxkeW5hbWljPi4KICAgIGEuYWJzVGhpcygibm90IGEgbnVtIik7CiAgICBg',
+ 'YGAKCiAgICBXZSB3YW50IHRoZSBib2R5IG9mIGBhYnNUaGlzKClgIHRvIGJlIGFibGUgdG8gc2Fm',
+ 'ZWx5IGFzc3VtZSBgbmAgaXMgYXQKICAgIGxlYXN0IGEgYG51bWAgLS0gdGhhdCdzIHdoeSB0aGVy',
+ 'ZSdzIGEgY29uc3RyYWludCBvbiBULCBhZnRlciBhbGwuIEltcGxpY2l0bHkKICAgIHVzaW5nIGBk',
+ 'eW5hbWljYCBhcyB0aGUgdHlwZSBwYXJhbWV0ZXIgaW4gdGhpcyBleGFtcGxlIGJyZWFrcyB0aGF0',
+ ];
+}
+
+List<String> _h7(String s) {
+ return [
+ s,
+ 'LgoKICAgIEluc3RlYWQsIHN0cm9uZyBtb2RlIHVzZXMgdGhlIGJvdW5kLiBJbiB0aGUgYWJvdmUg',
+ 'ZXhhbXBsZSwgaXQgZmlsbHMgaXQgaW4KICAgIHdpdGggYG51bWAsIGFuZCB0aGVuIHRoZSBzZWNv',
+ 'bmQgbGluZSB3aGVyZSBhIHN0cmluZyBpcyBwYXNzZWQgYmVjb21lcyBhCiAgICBzdGF0aWMgZXJy',
+ 'b3IuCgogICAgSG93ZXZlciwgdGhlcmUgYXJlIHNvbWUgY2FzZXMgd2hlcmUgaXQgaXMgaGFyZCB0',
+ 'byBmaWd1cmUgb3V0IHdoYXQgdGhhdAogICAgZGVmYXVsdCBib3VuZCBzaG91bGQgYmU6CgogICAg',
+ 'YGBgZGFydAogICAgY2xhc3MgUnVoUm9oPFQgZXh0ZW5kcyBDb21wYXJhYmxlPFQ+PiB7fQogICAg',
+ 'YGBgCgogICAgU3Ryb25nIG1vZGUncyBpbml0aWFsIGJlaGF2aW9yIHNvbWV0aW1lcyBwcm9kdWNl',
+ 'ZCBzdXJwcmlzaW5nLCB1bmludGVuZGVkCiAgICByZXN1bHRzLiBGb3IgMS4yMiwgd2UgdGFrZSBh',
+ 'IHNpbXBsZXIgYXBwcm9hY2ggYW5kIHRoZW4gcmVwb3J0IGFuIGVycm9yIGlmCiAgICBhIGdvb2Qg',
+ 'ZGVmYXVsdCB0eXBlIGFyZ3VtZW50IGNhbid0IGJlIGZvdW5kLgoKIyMjIENvcmUgbGlicmFyaWVz',
+ 'CgogICogRGVmaW5lIGBGdXR1cmVPcjxUPmAgZm9yIGNvZGUgdGhhdCB3b3JrcyB3aXRoIGVpdGhl',
+ 'ciBhIGZ1dHVyZSBvciBhbgogICAgaW1tZWRpYXRlIHZhbHVlIG9mIHNvbWUgdHlwZS4gRm9yIGV4',
+ 'YW1wbGUsIHNheSB5b3UgZG8gYSBsb3Qgb2YgdGV4dAogICAgbWFuaXB1bGF0aW9uLCBhbmQgeW91',
+ 'IHdhbnQgYSBoYW5keSBmdW5jdGlvbiB0byBjaGFpbiBhIGJ1bmNoIG9mIHRoZW06CgogICAgYGBg',
+ 'ZGFydAogICAgdHlwZWRlZiBTdHJpbmcgU3RyaW5nU3dpenpsZXIoU3RyaW5nIGlucHV0KTsKCiAg',
+ 'ICBTdHJpbmcgc3dpenpsZShTdHJpbmcgaW5wdXQsIExpc3Q8U3RyaW5nU3dpenpsZXI+IHN3aXp6',
+ 'bGVycykgewogICAgICB2YXIgcmVzdWx0ID0gaW5wdXQ7CiAgICAgIGZvciAodmFyIHN3aXp6bGVy',
+ 'IGluIHN3aXp6bGVycykgewogICAgICAgIHJlc3VsdCA9IHN3aXp6bGVyKHJlc3VsdCk7CiAgICAg',
+ 'IH0KCiAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBgYGAKCiAgICBUaGlzIHdvcmtzIGZp',
+ 'bmU6CgogICAgYGBgZGFydAogICAgbWFpbigpIHsKICAgICAgdmFyIHJlc3VsdCA9IHN3aXp6bGUo',
+ 'ImlucHV0IiwgWwogICAgICAgIChzKSA9PiBzLnRvVXBwZXJDYXNlKCksCiAgICAgICAgKHMpID0+',
+ 'ICgpID0+IHMgKiAyKQogICAgICBdKTsKICAgICAgcHJpbnQocmVzdWx0KTsgLy8gIklOUFVUSU5Q',
+ 'VVQiLgogICAgfQogICAgYGBgCgogICAgTGF0ZXIsIHlvdSByZWFsaXplIHlvdSdkIGFsc28gbGlr',
+ 'ZSB0byBzdXBwb3J0IHN3aXp6bGVycyB0aGF0IGFyZQogICAgYXN5bmNocm9ub3VzIChtYXliZSB0',
+ 'aGV5IGxvb2sgdXAgc3lub255bXMgZm9yIHdvcmRzIG9ubGluZSkuIFlvdSBjb3VsZCBtYWtlCiAg',
+ 'ICB5b3VyIEFQSSBzdHJpY3RseSBhc3luY2hyb25vdXMsIGJ1dCB0aGVuIHVzZXJzIG9mIHNpbXBs',
+ 'ZSBzeW5jaHJvbm91cwogICAgc3dpenpsZXJzIGhhdmUgdG8gbWFudWFsbHkgd3JhcCB0aGUgcmV0',
+ 'dXJuIHZhbHVlIGluIGEgYEZ1dHVyZS52YWx1ZSgpYC4KICAgIElkZWFsbHksIHlvdXIgYHN3aXp6',
+ 'bGUoKWAgZnVuY3Rpb24gd291bGQgYmUgInBvbHltb3JwaGljIG92ZXIgYXN5bmNocm9ueSIuCiAg',
+ 'ICBJdCB3b3VsZCBhbGxvdyBib3RoIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgc3dpenps',
+ 'ZXJzLiBCZWNhdXNlIGBhd2FpdGAKICAgIGFjY2VwdHMgaW1tZWRpYXRlIHZhbHVlcywgaXQgaXMg',
+ 'ZWFzeSB0byBpbXBsZW1lbnQgdGhpcyBkeW5hbWljYWxseToKCiAgICBgYGBkYXJ0CiAgICBGdXR1',
+ 'cmU8U3RyaW5nPiBzd2l6emxlKFN0cmluZyBpbnB1dCwgTGlzdDxTdHJpbmdTd2l6emxlcj4gc3dp',
+ 'enpsZXJzKSBhc3luYyB7CiAgICAgIHZhciByZXN1bHQgPSBpbnB1dDsKICAgICAgZm9yICh2YXIg',
+ 'c3dpenpsZXIgaW4gc3dpenpsZXJzKSB7CiAgICAgICAgcmVzdWx0ID0gYXdhaXQgc3dpenpsZXIo',
+ 'cmVzdWx0KTsKICAgICAgfQoKICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KCiAgICBtYWluKCkg',
+ 'YXN5bmMgewogICAgICB2YXIgcmVzdWx0ID0gc3dpenpsZSgiaW5wdXQiLCBbCiAgICAgICAgKHMp',
+ 'ID0+IHMudG9VcHBlckNhc2UoKSwKICAgICAgICAocykgPT4gbmV3IEZ1dHVyZS5kZWxheWVkKG5l',
+ 'dyBEdXJhdGlvbihtaWxsaXNlY29uZHM6IDQwKSwgKCkgPT4gcyAqIDIpCiAgICAgIF0pOwogICAg',
+ 'ICBwcmludChhd2FpdCByZXN1bHQpOwogICAgfQogICAgYGBgCgogICAgV2hhdCBzaG91bGQgdGhl',
+ 'IGRlY2xhcmVkIHJldHVybiB0eXBlIG9uIFN0cmluZ1N3aXp6bGVyIGJlPyBJbiB0aGUgcGFzdCwg',
+ 'eW91CiAgICBoYWQgdG8gdXNlIGBkeW5hbWljYCBvciBgT2JqZWN0YCwgYnV0IHRoYXQgZG9lc24n',
+ 'dCB0ZWxsIHRoZSB1c2VyIG11Y2guIE5vdywKICAgIHlvdSBjYW4gZG86CgogICAgYGBgZGFydAog',
+ 'ICAgdHlwZWRlZiBGdXR1cmVPcjxTdHJpbmc+IFN0cmluZ1N3aXp6bGVyKFN0cmluZyBpbnB1dCk7',
+ 'CiAgICBgYGAKCiAgICBMaWtlIHRoZSBuYW1lIGltcGxpZXMsIGBGdXR1cmVPcjxTdHJpbmc+YCBp',
+ 'cyBhIHVuaW9uIHR5cGUuIEl0IGNhbiBiZSBhCiAgICBgU3RyaW5nYCBvciBhIGBGdXR1cmU8U3Ry',
+ 'aW5nPmAsIGJ1dCBub3QgYW55dGhpbmcgZWxzZS4gSW4gdGhpcyBjYXNlLCB0aGF0J3MKICAgIG5v',
+ 'dCBzdXBlciB1c2VmdWwgYmV5b25kIGp1c3Qgc3RhdGluZyBhIG1vcmUgcHJlY2lzZSB0eXBlIGZv',
+ 'ciByZWFkZXJzIG9mIHRoZQogICAgY29kZS4gSXQgZG9lcyBnaXZlIHlvdSBhIGxpdHRsZSBiZXR0',
+ 'ZXIgZXJyb3IgY2hlY2tpbmcgaW4gY29kZSB0aGF0IHVzZXMgdGhlCiAgICByZXN1bHQgb2YgdGhh',
+ 'dC4KCiAgICBgRnV0dXJlT3I8VD5gIGJlY29tZXMgcmVhbGx5IGltcG9ydGFudCBpbiAqZ2VuZXJp',
+ 'YyogbWV0aG9kcyBsaWtlCiAgICBgRnV0dXJlLnRoZW4oKWAuIEluIHRob3NlIGNhc2VzLCBoYXZp',
+ 'bmcgdGhlIHR5cGUgc3lzdGVtIHVuZGVyc3RhbmQgdGhpcwogICAgbWFnaWNhbCB1bmlvbiB0eXBl',
+ 'IGhlbHBzIHR5cGUgaW5mZXJlbmNlIGZpZ3VyZSBvdXQgdGhlIHR5cGUgYXJndW1lbnQgb2YKICAg',
+ 'IGB0aGVuKClgIGJhc2VkIG9uIHRoZSBjbG9zdXJlIHlvdSBwYXNzIGl0LgoKICAgIFByZXZpb3Vz',
+ 'bHksIHN0cm9uZyBtb2RlIGhhZCBoYXJkLWNvZGVkIHJ1bGVzIGZvciBoYW5kbGluZyBgRnV0dXJl',
+ 'LnRoZW4oKWAKICAgIHNwZWNpZmljYWxseS4gYEZ1dHVyZU9yPFQ+YCBleHBvc2VzIHRoYXQgZnVu',
+ 'Y3Rpb25hbGl0eSBzbyB0aGlyZC1wYXJ0eSBBUElzCiAgICBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2Yg',
+ 'aXQgdG9vLgoKIyMjIFRvb2wgY2hhbmdlcwoKKiBEYXJ0MkpzCgogICogUmVtb3ZlIHN1cHBvcnQg',
+ 'Zm9yIChsb25nLXRpbWUgZGVwcmVjYXRlZCkgbWl4aW4gdHlwZWRlZnMuCgoqIFB1YgoKICAqIEF2',
+ 'b2lkIHVzaW5nIGEgYmFyYmFjayBhc3NldCBzZXJ2ZXIgZm9yIGV4ZWN1dGFibGVzIHVubGVzcyB0',
+ 'aGV5IGFjdHVhbGx5IHVzZQogICAgdHJhbnNmb3JtZXJzLiBUaGlzIG1ha2VzIHByZWNvbXBpbGF0',
+ 'aW9uIHN1YnN0YW50aWFsbHkgZmFzdGVyLCBwcm9kdWNlcwogICAgYmV0dGVyIGVycm9yIG1lc3Nh',
+ 'Z2VzIHdoZW4gcHJlY29tcGlsYXRpb24gZmFpbHMsIGFuZCBhbGxvd3MKICAgIGdsb2JhbGx5LWFj',
+ 'dGl2YXRlZCBleGVjdXRhYmxlcyB0byBjb25zaXN0ZW50bHkgdXNlIHRoZQogICAgYElzb2xhdGUu',
+ 'cmVzb2x2ZVBhY2thZ2VVcmkoKWAgQVBJLgoKICAqIE9uIExpbnV4IHN5c3RlbXMsIGFsd2F5cyBp',
+ 'Z25vcmUgcGFja2FnZXMnIG9yaWdpbmFsIGZpbGUgb3duZXJzIGFuZAogICAgcGVybWlzc2lvbnMg',
+ 'd2hlbiBleHRyYWN0aW5nIHRob3NlIHBhY2thZ2VzLiBUaGlzIHdhcyBhbHJlYWR5IHRoZSBkZWZh',
+ 'dWx0CiAgICB1bmRlciBtb3N0IGNpcmN1bXN0YW5jZXMuCgogICogUHJvcGVybHkgY2xvc2UgdGhl',
+ 'IHN0YW5kYXJkIGlucHV0IHN0cmVhbSBvZiBjaGlsZCBwcm9jZXNzZXMgc3RhcnRlZCB1c2luZwog',
+ 'ICAgYHB1YiBydW5gLgoKICAqIEhhbmRsZSBwYXJzZSBlcnJvcnMgZnJvbSB0aGUgcGFja2FnZSBj',
+ 'YWNoZSBtb3JlIGdyYWNlZnVsbHkuIEEgcGFja2FnZSB3aG9zZQogICAgcHVic3BlYyBjYW4ndCBi',
+ 'ZSBwYXJzZWQgd2lsbCBub3cgYmUgaWdub3JlZCBieSBgcHViIGdldCAtLW9mZmxpbmVgIGFuZAog',
+ 'ICAgZGVsZXRlZCBieSBgcHViIGNhY2hlIHJlcGFpcmAuCgogICogTWFrZSBgcHViIHJ1bmAgcnVu',
+ 'IGV4ZWN1dGFibGVzIGluIHNwYXduZWQgaXNvbGF0ZXMuIFRoaXMgbGV0cyB0aGVtIGhhbmRsZQog',
+ 'ICAgc2lnbmFscyBhbmQgdXNlIHN0YW5kYXJkIElPIHJlbGlhYmx5LgoKICAqIEZpeCBzb3VyY2Ut',
+ 'bWFwcyBwcm9kdWNlZCBieSBkYXJ0MmpzIHdoZW4gcnVubmluZyBpbiBgcHViIHNlcnZlYDogVVJM',
+ 'CiAgICByZWZlcmVuY2VzIHRvIGFzc2V0cyBmcm9tIHBhY2thZ2VzIG1hdGNoIHRoZSBsb2NhdGlv',
+ 'biB3aGVyZSBgcHViIHNlcnZlYAogICAgc2VydmVzIHRoZW0gKGBwYWNrYWdlcy9wYWNrYWdlX25h',
+ 'bWUvYCBpbnN0ZWFkIG9mCiAgICBgLi4vcGFja2FnZXMvcGFja2FnZV9uYW1lL2ApLgoKIyMjIElu',
+ 'ZnJhc3RydWN0dXJlIGNoYW5nZXMKCiAgKiBUaGUgU0RLIG5vdyB1c2VzIEdOIHJhdGhlciB0aGFu',
+ 'IGd5cCB0byBnZW5lcmF0ZSBpdHMgYnVpbGQgZmlsZXMsIHdoaWNoIHdpbGwKICAgIG5vdyBiZSBl',
+ 'eGNsdXNpdmVseSBuaW5qYSBmbGF2b3JlZC4gRG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgb24g',
+ 'b3VyCiAgICBbd2lraV0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvd2lraS9CdWls',
+ 'ZGluZy13aXRoLUdOKS4gQWxzbyBzZWUgdGhlCiAgICBoZWxwIG1lc3NhZ2Ugb2YgYHRvb2xzL2du',
+ 'LnB5YC4gVGhpcyBjaGFuZ2UgaXMgaW4gcmVzcG9uc2UgdG8gdGhlIGRlcHJlY2F0aW9uCiAgICBv',
+ 'ZiBneXAuIEJ1aWxkIGZpbGUgZ2VuZXJhdGlvbiB3aXRoIGd5cCB3aWxsIGNvbnRpbnVlIHRvIGJl',
+ 'IGF2YWlsYWJsZSBpbiB0aGlzCiAgICByZWxlYXNlIGJ5IHNldHRpbmcgdGhlIGVudmlyb25tZW50',
+ 'IHZhcmlhYmxlIGBEQVJUX1VTRV9HWVBgIGJlZm9yZSBydW5uaW5nCiAgICBgZ2NsaWVudCBzeW5j',
+ 'YCBvciBgZ2NsaWVudCBydW5ob29rc2AsIGJ1dCB0aGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1',
+ 'dHVyZQogICAgcmVsZWFzZS4KCiMjIDEuMjEuMSAtIDIwMTctMDEtMTMKClBhdGNoIHJlbGVhc2Us',
+ 'IHJlc29sdmVzIG9uZSBpc3N1ZToKCiogRGFydCBWTTogU25hcHNob3RzIG9mIGdlbmVyaWMgZnVu',
+ 'Y3Rpb25zIGZhaWwuIFtJc3N1ZSAyODA3Ml0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9z',
+ 'ZGsvaXNzdWVzLzI4MDcyKQoKIyMgMS4yMS4wIC0gMjAxNi0xMi0wNwoKIyMjIExhbmd1YWdlCgoq',
+ 'IFN1cHBvcnQgZ2VuZXJpYyBtZXRob2Qgc3ludGF4LiBUeXBlIGFyZ3VtZW50cyBhcmUgbm90IGF2',
+ 'YWlsYWJsZSBhdAogIHJ1bnRpbWUuIEZvciBkZXRhaWxzLCBjaGVjayB0aGUKICBbaW5mb3JtYWwg',
+ 'c3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZWVybnN0Zy80MzUzZDdiNGY2',
+ 'Njk3NDViZWQzYTU0MjNlMDRhNDUzYykuCiogU3VwcG9ydCBhY2Nlc3MgdG8gaW5pdGlhbGl6aW5n',
+ 'IGZvcm1hbHMsIGUuZy4sIHRoZSB1c2Ugb2YgYHhgIHRvIGluaXRpYWxpemUKIGB5YCBpbiBgY2xh',
+ 'c3MgQyB7IHZhciB4LCB5OyBDKHRoaXMueCk6IHkgPSB4OyB9YC4KICBQbGVhc2UgY2hlY2sgdGhl',
+ ];
+}
+
+List<String> _h8(String s) {
+ return [
+ s,
+ 'CiAgW2luZm9ybWFsIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Vlcm5z',
+ 'dGcvY2ZmMTU5YmU5ZTM0ZDVlYTI5NWQ4YzI0YjFhM2U1OTQpCiAgZm9yIGRldGFpbHMuCiogRG9u',
+ 'J3Qgd2FybiBhYm91dCBzd2l0Y2ggY2FzZSBmYWxsdGhyb3VnaCBpZiB0aGUgY2FzZSBlbmRzIGlu',
+ 'IGEgYHJldGhyb3dgCiAgc3RhdGVtZW50LiAgKFNESyBpc3N1ZQogIFsyNzY1MF0oaHR0cHM6Ly9n',
+ 'aXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI3NjUwKSkKKiBBbHNvIGRvbid0IHdhcm4g',
+ 'aWYgdGhlIGVudGlyZSBzd2l0Y2ggY2FzZSBpcyB3cmFwcGVkIGluIGJyYWNlcyAtIGFzIGxvbmcg',
+ 'YXMKICB0aGUgYmxvY2sgZW5kcyB3aXRoIGEgYGJyZWFrYCwgYGNvbnRpbnVlYCwgYHJldGhyb3dg',
+ 'LCBgcmV0dXJuYCBvciBgdGhyb3dgLgoqIEFsbG93IGA9YCBhcyB3ZWxsIGFzIGA6YCBhcyBzZXBh',
+ 'cmF0b3IgZm9yIG5hbWVkIHBhcmFtZXRlciBkZWZhdWx0IHZhbHVlcy4KCiAgYGBgZGFydAogIGVu',
+ 'YWJsZUZsYWdzKHtib29sIGhpZGRlbjogZmFsc2V9KSB7IOKApiB9CiAgYGBgCgogIGNhbiBub3cg',
+ 'YmUgcmVwbGFjZWQgYnkKCiAgYGBgZGFydAogIGVuYWJsZUZsYWdzKHtib29sIGhpZGRlbiA9IGZh',
+ 'bHNlfSkgeyDigKYgfQogIGBgYAoKICAoU0RLIGlzc3VlIFsyNzU1OV0oaHR0cHM6Ly9naXRodWIu',
+ 'Y29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI3NTU5KSkKCiMjIyBDb3JlIGxpYnJhcnkgY2hhbmdl',
+ 'cwoKKiBgZGFydDpjb3JlYDogYFNldC5kaWZmZXJlbmNlYCBub3cgdGFrZXMgYSBgU2V0PE9iamVj',
+ 'dD5gIGFzIGFyZ3VtZW50LiAgKFNESwogIGlzc3VlIFsyNzU3M10oaHR0cHM6Ly9naXRodWIuY29t',
+ 'L2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI3NTczKSkKCiogYGRhcnQ6ZGV2ZWxvcGVyYAoKICAqIEFk',
+ 'ZGVkIGBTZXJ2aWNlYCBjbGFzcy4KICAgICogQWxsb3dzIGluc3BlY3RpbmcgYW5kIGNvbnRyb2xs',
+ 'aW5nIHRoZSBWTSBzZXJ2aWNlIHByb3RvY29sIEhUVFAgc2VydmVyLgogICAgKiBQcm92aWRlcyBh',
+ 'biBBUEkgdG8gYWNjZXNzIHRoZSBJRCBvZiBhbiBgSXNvbGF0ZWAuCgojIyMgVG9vbCBjaGFuZ2Vz',
+ 'CgoqIERhcnQgRGV2IENvbXBpbGVyCgogICogU3VwcG9ydCBjYWxscyB0byBgbG9hZExpYnJhcnko',
+ 'KWAgb24gZGVmZXJyZWQgbGlicmFyaWVzLiBEZWZlcnJlZCBsaWJyYXJpZXMKICAgIGFyZSBzdGls',
+ 'bCBsb2FkZWQgZWFnZXJseS4gKFNESyBpc3N1ZQogICAgWzI3MzQzXShodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjczNDMpKQoKIyMgMS4yMC4xIC0gMjAxNi0xMC0xMwoK',
+ 'UGF0Y2ggcmVsZWFzZSwgcmVzb2x2ZXMgb25lIGlzc3VlOgoKKiBEYXJ0aXVtOiBGaXhlcyBhIGJ1',
+ 'ZyB0aGF0IGNhdXNlZCBjcmFzaGVzLiAgTm8gaXNzdWUgZmlsZWQuCgojIyMgU3Ryb25nIE1vZGUK',
+ 'CiogSXQgaXMgbm8gbG9uZ2VyIGEgd2FybmluZyB3aGVuIGNhc3RpbmcgZnJvbSBkeW5hbWljIHRv',
+ 'IGEgY29tcG9zaXRlIHR5cGUKICAgIChTREsgaXNzdWUgWzI3NzY2XShodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjc3NjYpKS4KCiAgICBgYGBkYXJ0CiAgICBtYWluKCkg',
+ 'ewogICAgICBkeW5hbWljIG9iaiA9IDxpbnQ+WzEsIDIsIDNdOwogICAgICAvLyBUaGlzIGlzIG5v',
+ 'dyBhbGxvd2VkIHdpdGhvdXQgYSB3YXJuaW5nLgogICAgICBMaXN0PGludD4gbGlzdCA9IG9iajsK',
+ 'ICAgIH0KICAgIGBgYAoKIyMgMS4yMC4wIC0gMjAxNi0xMC0xMQoKIyMjIERhcnQgVk0KCiogV2Ug',
+ 'aGF2ZSBpbXByb3ZlZCB0aGUgd2F5IHRoYXQgdGhlIFZNIGxvY2F0ZXMgdGhlIG5hdGl2ZSBjb2Rl',
+ 'IGxpYnJhcnkgZm9yIGEKICBuYXRpdmUgZXh0ZW5zaW9uIChlLmcuIGBkYXJ0LWV4dDpgIGltcG9y',
+ 'dCkuIFdlIGhhdmUgdXBkYXRlZCB0aGlzCiAgW2FydGljbGUgb24gbmF0aXZlIGV4dGVuc2lvbnNd',
+ 'KGh0dHBzOi8vd3d3LmRhcnRsYW5nLm9yZy9hcnRpY2xlcy9kYXJ0LXZtL25hdGl2ZS1leHRlbnNp',
+ 'b25zKQogIHRvIHJlZmxlY3QgdGhlIFZNJ3MgaW1wcm92ZWQgYmVoYXZpb3IuCgoqIExpbnV4IGJ1',
+ 'aWxkcyBvZiB0aGUgVk0gd2lsbCBub3cgdXNlIHRoZSBgdGNtYWxsb2NgIGxpYnJhcnkgZm9yIG1l',
+ 'bW9yeQogIGFsbG9jYXRpb24uIFRoaXMgaGFzIHRoZSBhZHZhbnRhZ2VzIG9mIGJldHRlciBkZWJ1',
+ 'Z2dpbmcgYW5kIHByb2ZpbGluZyBzdXBwb3J0CiAgYW5kIGZhc3RlciBzbWFsbCBhbGxvY2F0aW9u',
+ 'cywgd2l0aCB0aGUgY29zdCBvZiBzbGlnaHRseSBsYXJnZXIgaW5pdGlhbCBtZW1vcnkKICBmb290',
+ 'cHJpbnQsIGFuZCBzbGlnaHRseSBzbG93ZXIgbGFyZ2UgYWxsb2NhdGlvbnMuCgoqIFdlIGhhdmUg',
+ 'aW1wcm92ZWQgdGhlIHdheSB0aGUgVk0gc2VhcmNoZXMgZm9yIHRydXN0ZWQgcm9vdCBjZXJ0aWZp',
+ 'Y2F0ZXMgZm9yCiAgc2VjdXJlIHNvY2tldCBjb25uZWN0aW9ucyBvbiBMaW51eC4gRmlyc3QsIHRo',
+ 'ZSBWTSB3aWxsIGxvb2sgZm9yIHRydXN0ZWQgcm9vdAogIGNlcnRpZmljYXRlcyBpbiBzdGFuZGFy',
+ 'ZCBsb2NhdGlvbnMgb24gdGhlIGZpbGUgc3lzdGVtCiAgKGAvZXRjL3BraS90bHMvY2VydHMvY2Et',
+ 'YnVuZGxlLmNydGAgZm9sbG93ZWQgYnkgYC9ldGMvc3NsL2NlcnRzYCksIGFuZCBvbmx5IGlmCiAg',
+ 'dGhlc2UgZG8gbm90IGV4aXN0IHdpbGwgaXQgZmFsbCBiYWNrIG9uIHRoZSBidWlsdGluIHRydXN0',
+ 'ZWQgcm9vdCBjZXJ0aWZpY2F0ZXMuCiAgVGhpcyBiZWhhdmlvciBjYW4gYmUgb3ZlcnJpZGRlbiBv',
+ 'biBMaW51eCB3aXRoIHRoZSBuZXcgZmxhZ3MKICBgLS1yb290LWNlcnRzLWZpbGVgIGFuZCBgLS1y',
+ 'b290LWNlcnRzLWNhY2hlYC4gVGhlIGZvcm1lciBpcyB0aGUgcGF0aCB0byBhIGZpbGUKICBjb250',
+ 'YWluaW5nIHRoZSB0cnVzdGVkIHJvb3QgY2VydGlmaWNhdGVzLCBhbmQgdGhlIGxhdHRlciBpcyB0',
+ 'aGUgcGF0aCB0byBhCiAgZGlyZWN0b3J5IGNvbnRhaW5pbmcgcm9vdCBjZXJ0aWZpY2F0ZSBmaWxl',
+ 'cyBoYXNoZWQgdXNpbmcgYGNfcmVoYXNoYC4KCiogVGhlIFZNIG5vdyB0aHJvd3MgYSBjYXRjaGFi',
+ 'bGUgYEVycm9yYCB3aGVuIG1ldGhvZCBjb21waWxhdGlvbiBmYWlscy4gVGhpcwogIGFsbG93cyBl',
+ 'YXNpZXIgZGVidWdnaW5nIG9mIHN5bnRheCBlcnJvcnMsIGVzcGVjaWFsbHkgd2hlbiB0ZXN0aW5n',
+ 'LiAgKFNESyBpc3N1ZQogIFsyMzY4NF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsv',
+ 'aXNzdWVzLzIzNjg0KSkKCiMjIyBDb3JlIGxpYnJhcnkgY2hhbmdlcwoKKiBgZGFydDpjb3JlYDog',
+ 'UmVtb3ZlIGRlcHJlY2F0ZWQgYFJlc291cmNlYCBjbGFzcy4KICBVc2UgdGhlIGNsYXNzIGluIGBw',
+ 'YWNrYWdlOnJlc291cmNlYCBpbnN0ZWFkLgoqIGBkYXJ0OmFzeW5jYAogICogYEZ1dHVyZS53YWl0',
+ 'YCBub3cgY2F0Y2hlcyBzeW5jaHJvbm91cyBlcnJvcnMgYW5kIHJldHVybnMgdGhlbSBpbiB0aGUK',
+ 'ICAgIHJldHVybmVkIEZ1dHVyZS4gIChTREsgaXNzdWUKICAgIFsyNzI0OV0oaHR0cHM6Ly9naXRo',
+ 'dWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI3MjQ5KSkKICAqIE1vcmUgYWdncmVzc2l2ZWx5',
+ 'IHJldHVybnMgYSBgRnV0dXJlYCBvbiBgU3RyZWFtLmNhbmNlbGAgb3BlcmF0aW9ucy4KICAgIERp',
+ 'c2NvdXJhZ2VzIHRvIHJldHVybiBgbnVsbGAgZnJvbSBgY2FuY2VsYC4gIChTREsgaXNzdWUKICAg',
+ 'IFsyNjc3N10oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI2Nzc3KSkK',
+ 'ICAqIEZpeGVzIGEgZmV3IGJ1Z3Mgd2hlcmUgdGhlIGNhbmNlbCBmdXR1cmUgd2Fzbid0IHBhc3Nl',
+ 'ZCB0aHJvdWdoCiAgICB0cmFuc2Zvcm1hdGlvbnMuCiogYGRhcnQ6aW9gCiAgKiBBZGRlZCBgV2Vi',
+ 'U29ja2V0LmFkZFV0ZjhUZXh0YCB0byBhbGxvdyBzZW5kaW5nIGEgcHJlLWVuY29kZWQgdGV4dCBt',
+ 'ZXNzYWdlCiAgICB3aXRob3V0IGEgcm91bmQtdHJpcCBVVEYtOCBjb252ZXJzaW9uLiAgKFNESyBp',
+ 'c3N1ZQogICAgWzI3MTI5XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMv',
+ 'MjcxMjkpKQoKIyMjIFN0cm9uZyBNb2RlCgoqIEJyZWFraW5nIGNoYW5nZSAtIGl0IGlzIGFuIGVy',
+ 'cm9yIGlmIGEgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlciBjYW5ub3QgYmUKICAgIGluZmVycmVkIChT',
+ 'REsgaXNzdWUgWzI2OTkyXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMv',
+ 'MjY5OTIpKS4KCiAgICBgYGBkYXJ0CiAgICBjbGFzcyBDdXA8VD4gewogICAgICBDdXAoVCB0KTsK',
+ 'ICAgIH0KICAgIG1haW4oKSB7CiAgICAgIC8vIEVycm9yIGJlY2F1c2U6CiAgICAgIC8vIC0gaWYg',
+ 'd2UgY2hvb3NlIEN1cDxudW0+IGl0IGlzIG5vdCBhc3NpZ25hYmxlIHRvIGBjT2ZJbnRgLAogICAg',
+ 'ICAvLyAtIGlmIHdlIGNob29zZSBDdXA8aW50PiB0aGVuIGBuYCBpcyBub3QgYXNzaWduYWJsZSB0',
+ 'byBpbnQuCiAgICAgIG51bSBuOwogICAgICBDPGludD4gY09mSW50ID0gbmV3IEMobik7CiAgICB9',
+ 'CiAgICBgYGAKCiogTmV3IGZlYXR1cmUgLSB1c2UgYEBjaGVja2VkYCB0byBvdmVycmlkZSBhIG1l',
+ 'dGhvZCBhbmQgdGlnaHRlbiBhIHBhcmFtZXRlcgogICAgdHlwZSAoU0RLIGlzc3VlIFsyNTU3OF0o',
+ 'aHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI1NTc4KSkuCgogICAgYGBg',
+ 'ZGFydAogICAgaW1wb3J0ICdwYWNrYWdlOm1ldGEvbWV0YS5kYXJ0JyBzaG93IGNoZWNrZWQ7CiAg',
+ 'ICBjbGFzcyBWaWV3IHsKICAgICAgYWRkQ2hpbGQoVmlldyB2KSB7fQogICAgfQogICAgY2xhc3Mg',
+ 'TXlWaWV3IGV4dGVuZHMgVmlldyB7CiAgICAgIC8vIHRoaXMgb3ZlcnJpZGUgaXMgbGVnYWwsIGl0',
+ 'IHdpbGwgY2hlY2sgYXQgcnVudGltZSBpZiB3ZSBhY3R1YWxseQogICAgICAvLyBnb3QgYSBNeVZp',
+ 'ZXcuCiAgICAgIGFkZENoaWxkKEBjaGVja2VkIE15VmlldyB2KSB7fQogICAgfQogICAgbWFpbigp',
+ 'IHsKICAgICAgZHluYW1pYyBtdiA9IG5ldyBNeVZpZXcoKTsKICAgICAgbXYuYWRkQ2hpbGQobmV3',
+ 'IFZpZXcoKSk7IC8vIHJ1bnRpbWUgZXJyb3IKICAgIH0KICAgIGBgYAoKKiBOZXcgZmVhdHVyZSAt',
+ 'IHVzZSBgQHZpcnR1YWxgIHRvIGFsbG93IGZpZWxkIG92ZXJyaWRlcyBpbiBzdHJvbmcgbW9kZQog',
+ 'ICAgKFNESyBpc3N1ZSBbMjczODRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lz',
+ 'c3Vlcy8yNzM4NCkpLgoKICAgIGBgYGRhcnQKICAgIGltcG9ydCAncGFja2FnZTptZXRhL21ldGEu',
+ 'ZGFydCcgc2hvdyB2aXJ0dWFsOwogICAgY2xhc3MgQmFzZSB7CiAgICAgIEB2aXJ0dWFsIGludCB4',
+ 'OwogICAgfQogICAgY2xhc3MgRGVyaXZlZCBleHRlbmRzIEJhc2UgewogICAgICBpbnQgeDsKCiAg',
+ 'ICAgIC8vIEV4cG9zZSB0aGUgaGlkZGVuIHN0b3JhZ2Ugc2xvdDoKICAgICAgaW50IGdldCBzdXBl',
+ 'clggPT4gc3VwZXIueDsKICAgICAgc2V0IHN1cGVyWChpbnQgdikgeyBzdXBlci54ID0gdjsgfQog',
+ 'ICAgfQogICAgYGBgCgoqIEJyZWFraW5nIGNoYW5nZSAtIGluZmVyIGxpc3QgYW5kIG1hcCBsaXRl',
+ 'cmFscyBmcm9tIHRoZSBjb250ZXh0IHR5cGUgYXMgd2VsbCBhcwogICAgdGhlaXIgdmFsdWVzLCBj',
+ 'b25zaXN0ZW50IHdpdGggZ2VuZXJpYyBtZXRob2RzIGFuZCBpbnN0YW5jZSBjcmVhdGlvbgogICAg',
+ 'KFNESyBpc3N1ZSBbMjcxNTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vl',
+ 'cy8yNzE1MSkpLgoKICAgIGBgYGRhcnQKICAgIGltcG9ydCAnZGFydDphc3luYyc7CiAgICBtYWlu',
+ ];
+}
+
+List<String> _h9(String s) {
+ return [
+ s,
+ 'KCkgYXN5bmMgewogICAgICB2YXIgYiA9IG5ldyBGdXR1cmU8Qj4udmFsdWUobmV3IEIoKSk7CiAg',
+ 'ICAgIHZhciBjID0gbmV3IEZ1dHVyZTxDPi52YWx1ZShuZXcgQygpKTsKICAgICAgdmFyLyppbmZl',
+ 'ciBMaXN0PEZ1dHVyZTxBPj4qLyBsaXN0ID0gW2IsIGNdOwogICAgICB2YXIvKmluZmVyIExpc3Q8',
+ 'QT4qLyByZXN1bHQgPSBhd2FpdCBGdXR1cmUud2FpdChsaXN0KTsKICAgIH0KICAgIGNsYXNzIEEg',
+ 'e30KICAgIGNsYXNzIEIgZXh0ZW5kcyBBIHt9CiAgICBjbGFzcyBDIGV4dGVuZHMgQSB7fQogICAg',
+ 'YGBgCgojIyMgVG9vbCBjaGFuZ2VzCgoqIGBkYXJ0Zm10YCAtIHVwZ3JhZGVkIHRvIHYwLjIuMTAK',
+ 'ICAgICogRG9uJ3QgY3Jhc2ggb24gYW5ub3RhdGlvbnMgYmVmb3JlIHBhcmFtZXRlcnMgd2l0aCB0',
+ 'cmFpbGluZyBjb21tYXMuCiAgICAqIEFsd2F5cyBzcGxpdCBlbnVtIGRlY2xhcmF0aW9ucyBpZiB0',
+ 'aGV5IGVuZCBpbiBhIHRyYWlsaW5nIGNvbW1hLgogICAgKiBBZGQgYC0tc2V0LWV4aXQtaWYtY2hh',
+ 'bmdlZGAgdG8gc2V0IHRoZSBleGl0IGNvZGUgb24gYSBjaGFuZ2UuCgoqIFB1YgogICogUHViIG5v',
+ 'IGxvbmdlciBnZW5lcmF0ZXMgYSBgcGFja2FnZXMvYCBkaXJlY3RvcnkgYnkgZGVmYXVsdC4gIElu',
+ 'c3RlYWQsIGl0CiAgICBnZW5lcmF0ZXMgYSBgLnBhY2thZ2VzYCBmaWxlLCBjYWxsZWQgYSBwYWNr',
+ 'YWdlIHNwZWMuIFRvIGdlbmVyYXRlCiAgICBhIGBwYWNrYWdlcy9gIGRpcmVjdG9yeSBpbiBhZGRp',
+ 'dGlvbiB0byB0aGUgcGFja2FnZSBzcGVjLCB1c2UgdGhlCiAgICBgLS1wYWNrYWdlcy1kaXJgIGZs',
+ 'YWcgd2l0aCBgcHViIGdldGAsIGBwdWIgdXBncmFkZWAsIGFuZCBgcHViIGRvd25ncmFkZWAuCiAg',
+ 'ICBTZWUgdGhlIFtHb29kLWJ5ZQogICAgc3ltbGlua3NdKGh0dHA6Ly9uZXdzLmRhcnRsYW5nLm9y',
+ 'Zy8yMDE2LzEwL2dvb2QtYnllLXN5bWxpbmtzLmh0bWwpIGFydGljbGUKICAgIGZvciBkZXRhaWxz',
+ 'LgoKIyMgMS4xOS4xIC0gMjAxNi0wOS0wOAoKUGF0Y2ggcmVsZWFzZSwgcmVzb2x2ZXMgb25lIGlz',
+ 'c3VlOgoKKiBEYXJ0ZG9jOiAgRml4ZXMgYSBidWcgdGhhdCBwcmV2ZW50ZWQgZ2VuZXJhdGlvbiBv',
+ 'ZiBkb2NzLgogIChEYXJ0ZG9jIGlzc3VlIFsxMjMzXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1s',
+ 'YW5nL2RhcnRkb2MvaXNzdWVzLzEyMzMpKQoKIyMgMS4xOS4wIC0gMjAxNi0wOC0yNgoKIyMjIExh',
+ 'bmd1YWdlIGNoYW5nZXMKCiogVGhlIGxhbmd1YWdlIG5vdyBhbGxvd3MgYSB0cmFpbGluZyBjb21t',
+ 'YSBhZnRlciB0aGUgbGFzdCBhcmd1bWVudCBvZiBhIGNhbGwgYW5kCiB0aGUgbGFzdCBwYXJhbWV0',
+ 'ZXIgb2YgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbi4gVGhpcyBjYW4gbWFrZSBsb25nIGFyZ3VtZW50',
+ 'IG9yCiBwYXJhbWV0ZXIgbGlzdHMgZWFzaWVyIHRvIG1haW50YWluLCBhcyBjb21tYXMgY2FuIGJl',
+ 'IGxlZnQgYXMtaXMgd2hlbgogcmVvcmRlcmluZyBsaW5lcy4gRm9yIGRldGFpbHMsIHNlZSBTREsg',
+ 'aXNzdWUKIFsyNjY0NF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI2',
+ 'NjQ0KS4KCiMjIyBUb29sIENoYW5nZXMKCiogYGRhcnRmbXRgIC0gdXBncmFkZWQgdG8gdjAuMi45',
+ 'KzEKICAqIFN1cHBvcnQgdHJhaWxpbmcgY29tbWFzIGluIGFyZ3VtZW50IGFuZCBwYXJhbWV0ZXIg',
+ 'bGlzdHMuCiAgKiBHcmFjZWZ1bGx5IGhhbmRsZSByZWFkLW9ubHkgZmlsZXMuCiAgKiBBYm91dCBh',
+ 'IGRvemVuIG90aGVyIGJ1ZyBmaXhlcy4KCiogUHViCiAgKiBBZGRlZCBhIGAtLW5vLXBhY2thZ2Vz',
+ 'LWRpcmAgZmxhZyB0byBgcHViIGdldGAsIGBwdWIgdXBncmFkZWAsIGFuZCBgcHViCiAgICBkb3du',
+ 'Z3JhZGVgLiBXaGVuIHRoaXMgZmxhZyBpcyBwYXNzZWQsIHB1YiB3aWxsIG5vdCBnZW5lcmF0ZSBh',
+ 'IGBwYWNrYWdlcy9gCiAgICBkaXJlY3RvcnksIGFuZCB3aWxsIHJlbW92ZSB0aGF0IGRpcmVjdG9y',
+ 'eSBhbmQgYW55IHN5bWxpbmtzIHRvIGl0IGlmIHRoZXkKICAgIGV4aXN0LiBOb3RlIHRoYXQgdGhp',
+ 'cyByZXBsYWNlcyB0aGUgdW5zdXBwb3J0ZWQgYC0tbm8tcGFja2FnZS1zeW1saW5rc2AgZmxhZy4K',
+ 'CiAgKiBBZGRlZCB0aGUgYWJpbGl0eSBmb3IgcGFja2FnZXMgdG8gZGVjbGFyZSBhIGNvbnN0cmFp',
+ 'bnQgb24gdGhlIFtGbHV0dGVyXVtdCiAgICBTREs6CgogICAgYGBgeWFtbAogICAgZW52aXJvbm1l',
+ 'bnQ6CiAgICAgIGZsdXR0ZXI6IF4wLjEuMgogICAgICBzZGs6ID49MS4xOS4wIDwyLjAuMAogICAg',
+ 'YGBgCgogICAgQSBGbHV0dGVyIGNvbnN0cmFpbnQgd2lsbCBvbmx5IGJlIHNhdGlzZmlhYmxlIHdo',
+ 'ZW4gcHViIGlzIHJ1bm5pbmcgaW4gdGhlCiAgICBjb250ZXh0IG9mIHRoZSBgZmx1dHRlcmAgZXhl',
+ 'Y3V0YWJsZSwgYW5kIHdoZW4gdGhlIEZsdXR0ZXIgU0RLIHZlcnNpb24KICAgIG1hdGNoZXMgdGhl',
+ 'IGNvbnN0cmFpbnQuCgogICogQWRkZWQgYHNka2AgYXMgYSBuZXcgcGFja2FnZSBzb3VyY2UgdGhh',
+ 'dCBmZXRjaGVzIHBhY2thZ2VzIGZyb20gYSBoYXJkLWNvZGVkCiAgICBTREsuIEN1cnJlbnRseSBv',
+ 'bmx5IHRoZSBgZmx1dHRlcmAgU0RLIGlzIHN1cHBvcnRlZDoKCiAgICBgYGB5YW1sCiAgICBkZXBl',
+ 'bmRlbmNpZXM6CiAgICAgIGZsdXR0ZXJfZHJpdmVyOgogICAgICAgIHNkazogZmx1dHRlcgogICAg',
+ 'ICAgIHZlcnNpb246IF4wLjAuMQogICAgYGBgCgogICAgQSBGbHV0dGVyIGBzZGtgIGRlcGVuZGVu',
+ 'Y3kgd2lsbCBvbmx5IGJlIHNhdGlzZmlhYmxlIHdoZW4gcHViIGlzIHJ1bm5pbmcgaW4KICAgIHRo',
+ 'ZSBjb250ZXh0IG9mIHRoZSBgZmx1dHRlcmAgZXhlY3V0YWJsZSwgYW5kIHdoZW4gdGhlIEZsdXR0',
+ 'ZXIgU0RLIGNvbnRhaW5zIGEKICAgIHBhY2thZ2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSB3aG9zZSB2',
+ 'ZXJzaW9uIG1hdGNoZXMgdGhlIGNvbnN0cmFpbnQuCgogICogYHRhcmAgZmlsZXMgb24gTGludXgg',
+ 'YXJlIG5vdyBjcmVhdGVkIHdpdGggYDBgIGFzIHRoZSB1c2VyIGFuZCBncm91cCBJRHMuCiAgICBU',
+ 'aGlzIGZpeGVzIGEgY3Jhc2ggd2hlbiBwdWJsaXNoaW5nIHBhY2thZ2VzIHdoaWxlIHVzaW5nIEFj',
+ 'dGl2ZSBEaXJlY3RvcnkuCgogICogRml4ZWQgYSBidWcgd2hlcmUgcGFja2FnZXMgZnJvbSBhIGhv',
+ 'c3RlZCBIVFRQIFVSTCB3ZXJlIGNvbnNpZGVyZWQgdGhlIHNhbWUKICAgIGFzIHBhY2thZ2VzIGZy',
+ 'b20gYW4gb3RoZXJ3aXNlLWlkZW50aWNhbCBIVFRQUyBVUkwuCgogICogRml4ZWQgdGltZXIgZm9y',
+ 'bWF0dGluZyBmb3IgdGltZXJzIHRoYXQgbGFzdGVkIGxvbmdlciB0aGFuIGEgbWludXRlLgoKICAq',
+ 'IEVsaW1pbmF0ZSBzb21lIGZhbHNlIG5lZ2F0aXZlcyB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIg',
+ 'Z2xvYmFsIGV4ZWN1dGFibGVzCiAgICBhcmUgb24gdGhlIHVzZXIncyBleGVjdXRhYmxlIHBhdGgu',
+ 'CgoqIGBkYXJ0MmpzYAogICogYGRhcnQyZGFydGAgKGFrYSBgZGFydDJqcyAtLW91dHB1dC10eXBl',
+ 'PWRhcnRgKSBoYXMgYmVlbiByZW1vdmVkICh0aGlzIHdhcyBkZXByZWNhdGVkIGluIERhcnQgMS4x',
+ 'MSkuCgpbRmx1dHRlcl06IGh0dHBzOi8vZmx1dHRlci5pby8KCiMjIyBEYXJ0IFZNCgoqICAgVGhl',
+ 'IGRlcGVuZGVuY3kgb24gQm9yaW5nU1NMIGhhcyBiZWVuIHJvbGxlZCBmb3J3YXJkLiBHb2luZyBm',
+ 'b3J3YXJkLCBidWlsZHMKICAgIG9mIHRoZSBEYXJ0IFZNIGluY2x1ZGluZyBzZWN1cmUgc29ja2V0',
+ 'cyB3aWxsIHJlcXVpcmUgYSBjb21waWxlciB3aXRoIEMrKzExCiAgICBzdXBwb3J0LiBGb3IgZGV0',
+ 'YWlscywgc2VlIHRoZQogICAgW0J1aWxkaW5nIHdpa2kgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29t',
+ 'L2RhcnQtbGFuZy9zZGsvd2lraS9CdWlsZGluZykuCgojIyMgU3Ryb25nIE1vZGUKCiogICBOZXcg',
+ 'ZmVhdHVyZSAtIGFuIG9wdGlvbiB0byBkaXNhYmxlIGltcGxpY2l0IGNhc3RzCiAgICAoU0RLIGlz',
+ 'c3VlIFsyNjU4M10oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI2NTgz',
+ 'KSksCiAgICBzZWUgdGhlIFtkb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1s',
+ 'YW5nL2Rldl9jb21waWxlci9ibG9iL21hc3Rlci9kb2MvU1RBVElDX1NBRkVUWS5tZCNkaXNhYmxl',
+ 'LWltcGxpY2l0LWNhc3RzKQogICAgZm9yIHVzYWdlIGluc3RydWN0aW9ucyBhbmQgZXhhbXBsZXMu',
+ 'CgoqICAgTmV3IGZlYXR1cmUgLSBhbiBvcHRpb24gdG8gZGlzYWJsZSBpbXBsaWNpdCBkeW5hbWlj',
+ 'CiAgICAoU0RLIGlzc3VlIFsyNTU3M10oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsv',
+ 'aXNzdWVzLzI1NTczKSksCiAgICBzZWUgdGhlIFtkb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1',
+ 'Yi5jb20vZGFydC1sYW5nL2Rldl9jb21waWxlci9ibG9iL21hc3Rlci9kb2MvU1RBVElDX1NBRkVU',
+ 'WS5tZCNkaXNhYmxlLWltcGxpY2l0LWR5bmFtaWMpCiAgICBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25z',
+ 'IGFuZCBleGFtcGxlcy4KCiogICBCcmVha2luZyBjaGFuZ2UgLSBpbmZlciBnZW5lcmljIHR5cGUg',
+ 'YXJndW1lbnRzIGZyb20gdGhlCiAgICBjb25zdHJ1Y3RvciBpbnZvY2F0aW9uIGFyZ3VtZW50cwog',
+ 'ICAgKFNESyBpc3N1ZSBbMjUyMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lz',
+ 'c3Vlcy8yNTIyMCkpLgoKICAgIGBgYGRhcnQKICAgIHZhciBtYXAgPSBuZXcgTWFwPFN0cmluZywg',
+ 'U3RyaW5nPigpOwoKICAgIC8vIGluZmVyOiBNYXA8U3RyaW5nLCBTdHJpbmc+CiAgICB2YXIgb3Ro',
+ 'ZXJNYXAgPSBuZXcgTWFwLmZyb20obWFwKTsKICAgIGBgYAoKKiAgIEJyZWFraW5nIGNoYW5nZSAt',
+ 'IGluZmVyIGxvY2FsIGZ1bmN0aW9uIHJldHVybiB0eXBlCiAgICAoU0RLIGlzc3VlIFsyNjQxNF0o',
+ 'aHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI2NDE0KSkuCgogICAgYGBg',
+ 'ZGFydAogICAgdm9pZCBtYWluKCkgewogICAgICAvLyBpbmZlcjogcmV0dXJuIHR5cGUgaXMgaW50',
+ 'CiAgICAgIGYoKSB7IHJldHVybiA0MDsgfQogICAgICBpbnQgeSA9IGYoKSArIDI7IC8vIHR5cGUg',
+ 'Y2hlY2tzCiAgICAgIHByaW50KHkpOwogICAgfQogICAgYGBgCgoqICAgQnJlYWtpbmcgY2hhbmdl',
+ 'IC0gYWxsb3cgdHlwZSBwcm9tb3Rpb24gZnJvbSBhIGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXIKICAg',
+ 'IChTREsgaXNzdWUgWzI2NDE0XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1',
+ 'ZXMvMjY5NjUpKS4KCiAgICBgYGBkYXJ0CiAgICB2b2lkIGZuLyo8VD4qLygvKj1UKi8gb2JqZWN0',
+ 'KSB7CiAgICAgIGlmIChvYmplY3QgaXMgU3RyaW5nKSB7CiAgICAgICAgLy8gVHJlYXQgYG9iamVj',
+ 'dGAgYXMgYFN0cmluZ2AgaW5zaWRlIHRoaXMgYmxvY2suCiAgICAgICAgLy8gQnV0IGl0IHdpbGwg',
+ 'cmVxdWlyZSBhIGNhc3QgdG8gcGFzcyBpdCB0byBzb21ldGhpbmcgdGhhdCBleHBlY3RzIGBUYC4K',
+ 'ICAgICAgICBwcmludChvYmplY3Quc3Vic3RyaW5nKDEpKTsKICAgICAgfQogICAgfQogICAgYGBg',
+ 'CgoqIEJyZWFraW5nIGNoYW5nZSAtIHNtYXJ0ZXIgaW5mZXJlbmNlIGZvciBGdXR1cmUudGhlbgog',
+ 'ICAgKFNESyBpc3N1ZSBbMjU5NDRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lz',
+ 'c3Vlcy8yNTk0NCkpLgogICAgUHJldmlvdXMgd29ya2Fyb3VuZHMgdGhhdCB1c2UgYXN5bmMvYXdh',
+ 'aXQgb3IgYC50aGVuLyo8RnV0dXJlPFNvbWVUeXBlPj4qL2AKICAgIHNob3VsZCBubyBsb25nZXIg',
+ 'YmUgbmVjZXNzYXJ5LgoKICAgIGBgYGRhcnQKICAgIC8vIFRoaXMgd2lsbCBub3cgaW5mZXIgY29y',
+ ];
+}
+
+List<String> _h10(String s) {
+ return [
+ s,
+ 'cmVjdGx5LgogICAgRnV0dXJlPExpc3Q8aW50Pj4gdDIgPSBmLnRoZW4oKF8pID0+IFszXSk7CiAg',
+ 'ICAvLyBUaGlzIGluZmVycyB0b28uCiAgICBGdXR1cmU8aW50PiB0MiA9IGYudGhlbigoXykgPT4g',
+ 'bmV3IEZ1dHVyZS52YWx1ZSg0MikpOwogICAgYGBgCgoqIEJyZWFraW5nIGNoYW5nZSAtIHNtYXJ0',
+ 'ZXIgaW5mZXJlbmNlIGZvciBhc3luYyBmdW5jdGlvbnMKICAgIChTREsgaXNzdWUgWzI1MzIyXSho',
+ 'dHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjUzMjIpKS4KCiAgICBgYGBk',
+ 'YXJ0CiAgICB2b2lkIHRlc3QoKSBhc3luYyB7CiAgICAgIExpc3Q8aW50PiB4ID0gYXdhaXQgWzRd',
+ 'OyAvLyB3YXMgcHJldmlvdXNseSBpbmZlcnJlZAogICAgICBMaXN0PGludD4geSA9IGF3YWl0IG5l',
+ 'dyBGdXR1cmUudmFsdWUoWzRdKTsgLy8gbm93IGluZmVycmVkIHRvbwogICAgfQogICAgYGBgCgoq',
+ 'IEJyZWFraW5nIGNoYW5nZSAtIHNpZGV3YXlzIGNhc3RzIGFyZSBubyBsb25nZXIgYWxsb3dlZAog',
+ 'ICAgKFNESyBpc3N1ZSBbMjYxMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lz',
+ 'c3Vlcy8yNjEyMCkpLgoKIyMgMS4xOC4xIC0gMjAxNi0wOC0wMgoKUGF0Y2ggcmVsZWFzZSwgcmVz',
+ 'b2x2ZXMgdHdvIGlzc3VlcyBhbmQgaW1wcm92ZXMgcGVyZm9ybWFuY2U6CgoqIERlYnVnZ2VyOiBG',
+ 'aXhlcyBhIGJ1ZyB0aGF0IGNyYXNoZXMgdGhlIFZNCihTREsgaXNzdWUgWzI2OTQxXShodHRwczov',
+ 'L2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjY5NDEpKQoKKiBWTTogRml4ZXMgYW4g',
+ 'b3B0aW1pemVyIGJ1ZyBpbnZvbHZpbmcgY2xvc3VyZXMsIHRyeSwgYW5kIGF3YWl0CihTREsgaXNz',
+ 'dWUgWzI2OTQ4XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjY5NDgp',
+ 'KQoKKiBEYXJ0MmpzOiBTcGVlZHMgdXAgZ2VuZXJhdGVkIGNvZGUgb24gRmlyZWZveAooaHR0cHM6',
+ 'Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8yMTgwNTMzMDAyKQoKIyMgMS4xOC4wIC0gMjAxNi0w',
+ 'Ny0yNwoKIyMjIENvcmUgbGlicmFyeSBjaGFuZ2VzCgoqIGBkYXJ0OmNvcmVgCiAgKiBJbXByb3Zl',
+ 'ZCBwZXJmb3JtYW5jZSB3aGVuIHBhcnNpbmcgc29tZSBjb21tb24gVVJJcy4KICAqIEZpeGVkIGJ1',
+ 'ZyBpbiBgVXJpLnJlc29sdmVgIChTREsgaXNzdWUgWzI2ODA0XShodHRwczovL2dpdGh1Yi5jb20v',
+ 'ZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjY4MDQpKS4KKiBgZGFydDppb2AKICAqIEFkZHMgZmlsZSBs',
+ 'b2NraW5nIG1vZGVzIGBGaWxlTG9jay5CTE9DS0lOR19TSEFSRURgIGFuZAogICAgYEZpbGVMb2Nr',
+ 'LkJMT0NLSU5HX0VYQ0xVU0lWRWAuCgojIyAxLjE3LjEgLSAyMDE2LTA2LTEwCgpQYXRjaCByZWxl',
+ 'YXNlLCByZXNvbHZlcyB0d28gaXNzdWVzOgoKKiBWTTogRml4ZXMgYSBidWcgdGhhdCBjYXVzZWQg',
+ 'Y3Jhc2hlcyBpbiBhc3luYyBmdW5jdGlvbnMuCihTREsgaXNzdWUgWzI2NjY4XShodHRwczovL2dp',
+ 'dGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjY2NjgpKQoKKiBWTTogRml4ZXMgYSBidWcg',
+ 'dGhhdCBjYXVzZWQgZ2FyYmFnZSBjb2xsZWN0aW9uIG9mIHJlYWNoYWJsZSB3ZWFrIHByb3BlcnRp',
+ 'ZXMuCihodHRwczovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzIwNDE0MTMwMDUpCgojIyAxLjE3',
+ 'LjAgLSAyMDE2LTA2LTA4CgojIyMgQ29yZSBsaWJyYXJ5IGNoYW5nZXMKKiBgZGFydDpjb252ZXJ0',
+ 'YAogICogRGVwcmVjYXRlIGBDaHVua2VkQ29udmVydGVyYCB3aGljaCB3YXMgZXJyb25lb3VzbHkg',
+ 'YWRkZWQgaW4gMS4xNi4KCiogYGRhcnQ6Y29yZWAKICAqIGBVcmkucmVwbGFjZWAgc3VwcG9ydHMg',
+ 'aXRlcmFibGVzIGFzIHZhbHVlcyBmb3IgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMuCiAgKiBgVXJpLnBh',
+ 'cnNlSVB2NkFkZHJlc3NgIHJldHVybnMgYSBgVWludDhMaXN0YC4KCiogYGRhcnQ6aW9gCiAgKiBB',
+ 'ZGRlZCBgTmV0d29ya0ludGVyZmFjZS5saXN0U3VwcG9ydGVkYCwgd2hpY2ggaXMgYHRydWVgIHdo',
+ 'ZW4KICAgIGBOZXR3b3JrSW50ZXJmYWNlLmxpc3RgIGlzIHN1cHBvcnRlZCwgYW5kIGBmYWxzZWAg',
+ 'b3RoZXJ3aXNlLiBDdXJyZW50bHksCiAgICBgTmV0d29ya0ludGVyZmFjZS5saXN0YCBpcyBub3Qg',
+ 'c3VwcG9ydGVkIG9uIEFuZHJvaWQuCgojIyMgVG9vbCBDaGFuZ2VzCgoqIFB1YgogICogVEFSIGZp',
+ 'bGVzIGNyZWF0ZWQgd2hpbGUgcHVibGlzaGluZyBhIHBhY2thZ2Ugb24gTWFjIE9TIGFuZCBMaW51',
+ 'eCBub3cgdXNlIGEKICAgIG1vcmUgcG9ydGFibGUgZm9ybWF0LgoKICAqIEVycm9ycyBjYXVzZWQg',
+ 'YnkgaW52YWxpZCBhcmd1bWVudHMgbm93IHByaW50IHRoZSBmdWxsIHVzYWdlIGluZm9ybWF0aW9u',
+ 'IGZvcgogICAgdGhlIGNvbW1hbmQuCgogICogU0RLIGNvbnN0cmFpbnRzIGZvciBkZXBlbmRlbmN5',
+ 'IG92ZXJyaWRlcyBhcmUgbm8gbG9uZ2VyIGNvbnNpZGVyZWQgd2hlbgogICAgZGV0ZXJtaW5pbmcg',
+ 'dGhlIHRvdGFsIFNESyBjb25zdHJhaW50IGZvciBhIGxvY2tmaWxlLgoKICAqIEEgYnVnIGhhcyBi',
+ 'ZWVuIGZpeGVkIGluIHdoaWNoIGEgbG9ja2ZpbGUgd2FzIGNvbnNpZGVyZWQgdXAtdG8tZGF0ZSB3',
+ 'aGVuIGl0CiAgICBhY3R1YWxseSB3YXNuJ3QuCgogICogQSBidWcgaGFzIGJlZW4gZml4ZWQgaW4g',
+ 'd2hpY2ggYHB1YiBnZXQgLS1vZmZsaW5lYCB3b3VsZCBjcmFzaCB3aGVuIGEKICAgIHByZXJlbGVh',
+ 'c2UgdmVyc2lvbiB3YXMgc2VsZWN0ZWQuCgoqIERhcnRpdW0gYW5kIGNvbnRlbnQgc2hlbGwKICAq',
+ 'IERlYnVnZ2luZyBEYXJ0IGNvZGUgaW5zaWRlIGlmcmFtZXMgaW1wcm92ZWQsIHdhcyBicm9rZW4u',
+ 'CgojIyAxLjE2LjEgLSAyMDE2LTA1LTI0CgpQYXRjaCByZWxlYXNlLCByZXNvbHZlcyBvbmUgaXNz',
+ 'dWU6CgoqIFZNOiBGaXhlcyBhIGJ1ZyB0aGF0IGNhdXNlZCBpbnRlcm1pdHRlbnQgaGFuZ3Mgb24g',
+ 'V2luZG93cy4KKFNESyBpc3N1ZSBbMjY0MDBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcv',
+ 'c2RrL2lzc3Vlcy8yNjQwMCkpCgojIyAxLjE2LjAgLSAyMDE2LTA0LTI2CgojIyMgQ29yZSBsaWJy',
+ 'YXJ5IGNoYW5nZXMKCiogYGRhcnQ6Y29udmVydGAKICAqIEFkZGVkIGBCQVNFNjRVUkxgIGNvZGVj',
+ 'IGFuZCBjb3JyZXNwb25kaW5nIGBCYXNlNjRDb2RlYy51cmxTYWZlYCBjb25zdHJ1Y3Rvci4KCiAg',
+ 'KiBJbnRyb2R1Y2UgYENodW5rZWRDb252ZXJ0ZXJgIGFuZCBkZXByZWNhdGUgY2h1bmtlZCBtZXRo',
+ 'b2RzIG9uIGBDb252ZXJ0ZXJgLgoKKiBgZGFydDpodG1sYAoKICBUaGVyZSBoYXZlIGJlZW4gYSBu',
+ 'dW1iZXIgb2YgKipCUkVBS0lORyoqIGNoYW5nZXMgdG8gYWxpZ24gQVBJcyB3aXRoIHJlY2VudAog',
+ 'IGNoYW5nZXMgaW4gQ2hyb21lLiBUaGVzZSBpbmNsdWRlOgoKICAqIENocm9tZSdzIGBTaGFkb3dS',
+ 'b290YCBpbnRlcmZhY2Ugbm8gbG9uZ2VyIGhhcyB0aGUgbWV0aG9kcyBgZ2V0RWxlbWVudEJ5SWRg',
+ 'LAogICAgYGdldEVsZW1lbnRzQnlDbGFzc05hbWVgLCBhbmQgYGdldEVsZW1lbnRzQnlUYWdOYW1l',
+ 'YCwgZS5nLiwKCiAgICBgYGBkYXJ0CiAgICBlbGVtLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNCeUNs',
+ 'YXNzTmFtZSgnY2xhenonKQogICAgYGBgCgogICAgc2hvdWxkIGJlY29tZToKCiAgICBgYGBkYXJ0',
+ 'CiAgICBlbGVtLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnLmNsYXp6JykKICAgIGBgYAoK',
+ 'ICAqIFRoZSBgY2xpcGJvYXJkRGF0YWAgcHJvcGVydHkgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIGBL',
+ 'ZXlFdmVudGAKICAgIGFuZCBgRXZlbnRgLiBJdCBoYXMgYmVlbiBtb3ZlZCB0byB0aGUgbmV3IGBD',
+ 'bGlwYm9hcmRFdmVudGAgY2xhc3MsIHdoaWNoIGlzCiAgICBub3cgdXNlZCBieSBgY29weWAsIGBj',
+ 'dXRgLCBhbmQgYHBhc3RlYCBldmVudHMuCgogICogVGhlIGBsYXllcmAgcHJvcGVydHkgaGFzIGJl',
+ 'ZW4gcmVtb3ZlZCBmcm9tIGBLZXlFdmVudGAgYW5kCiAgICBgVUlFdmVudGAuIEl0IGhhcyBiZWVu',
+ 'IG1vdmVkIHRvIGBNb3VzZUV2ZW50YC4KCiAgKiBUaGUgYFBvaW50IGdldCBwYWdlYCBwcm9wZXJ0',
+ 'eSBoYXMgYmVlbiByZW1vdmVkIGZyb20gYFVJRXZlbnRgLgogICAgSXQgc3RpbGwgZXhpc3RzIG9u',
+ 'IGBNb3VzZUV2ZW50YCBhbmQgYFRvdWNoYC4KCiAgVGhlcmUgaGF2ZSBhbHNvIGJlZW4gYSBudW1i',
+ 'ZXIgb2Ygb3RoZXIgYWRkaXRpb25zIGFuZCByZW1vdmFscyB0byBgZGFydDpodG1sYCwKICBgZGFy',
+ 'dDppbmRleGVkX2RiYCwgYGRhcnQ6c3ZnYCwgYGRhcnQ6d2ViX2F1ZGlvYCwgYW5kIGBkYXJ0Ondl',
+ 'Yl9nbGAgdGhhdAogIGNvcnJlc3BvbmQgdG8gY2hhbmdlcyB0byBDaHJvbWUgQVBJcyBiZXR3ZWVu',
+ 'IHYzOSBhbmQgdjQ1LiBNYW55IG9mIHRoZSBicmVha2luZwogIGNoYW5nZXMgcmVwcmVzZW50IEFQ',
+ 'SXMgdGhhdCB3b3VsZCBoYXZlIGNhdXNlZCBydW50aW1lIGV4Y2VwdGlvbnMgd2hlbiBjb21waWxl',
+ 'ZAogIHRvIEphdmFzY3JpcHQgYW5kIHJ1biBvbiByZWNlbnQgQ2hyb21lIHJlbGVhc2VzLgoKKiBg',
+ 'ZGFydDppb2AKICAqIEFkZGVkIGBTZWN1cml0eUNvbnRleHQuYWxwblN1cHBvcnRlZGAsIHdoaWNo',
+ 'IGlzIHRydWUgaWYgYSBwbGF0Zm9ybQogICAgc3VwcG9ydHMgQUxQTiwgYW5kIGZhbHNlIG90aGVy',
+ 'd2lzZS4KCiMjIyBKYXZhU2NyaXB0IGludGVyb3AKCkZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBh',
+ 'IHBvdGVudGlhbGx5ICoqQlJFQUtJTkcqKiBjaGFuZ2Ugd2FzIGFkZGVkIGZvcgpsaWJyYXJpZXMg',
+ 'dGhhdCB1c2UgSlMgaW50ZXJvcC4KQW55IERhcnQgZmlsZSB0aGF0IHVzZXMgYEBKU2AgYW5ub3Rh',
+ 'dGlvbnMgb24gZGVjbGFyYXRpb25zICh0b3AtbGV2ZWwgZnVuY3Rpb25zLApjbGFzc2VzIG9yIGNs',
+ 'YXNzIG1lbWJlcnMpIHRvIGludGVyb3Agd2l0aCBKYXZhU2NyaXB0IGNvZGUgd2lsbCByZXF1aXJl',
+ 'IHRoYXQgdGhlCmZpbGUgaGF2ZSB0aGUgYW5ub3RhdGlvbiBgQEpTKClgIG9uIGEgbGlicmFyeSBk',
+ 'aXJlY3RpdmUuCgpgYGBkYXJ0CkBKUygpCmxpYnJhcnkgbXlfbGlicmFyeTsKYGBgCgpUaGUgYW5h',
+ 'bHl6ZXIgd2lsbCBlbmZvcmNlIHRoaXMgYnkgZ2VuZXJhdGluZyB0aGUgZXJyb3I6CgpUaGUgYEBK',
+ 'UygpYCBhbm5vdGF0aW9uIGNhbiBvbmx5IGJlIHVzZWQgaWYgaXQgaXMgYWxzbyBkZWNsYXJlZCBv',
+ 'biB0aGUgbGlicmFyeQpkaXJlY3RpdmUuCgpJZiBwYXJ0IGZpbGUgdXNlcyB0aGUgYEBKUygpYCBh',
+ 'bm5vdGF0aW9uLCB0aGUgbGlicmFyeSB0aGF0IHVzZXMgdGhlIHBhcnQgc2hvdWxkCmhhdmUgdGhl',
+ 'IGBASlMoKWAgYW5ub3RhdGlvbiBlLmcuLAoKYGBgZGFydAovLyBsaWJyYXJ5XzEuZGFydApASlMo',
+ 'KQpsaWJyYXJ5IGxpYnJhcnlfMTsKCmltcG9ydCAncGFja2FnZTpqcy9qcy5kYXJ0JzsKCnBhcnQg',
+ 'J3BhcnRfMS5kYXJ0JzsKYGBgCgpgYGBkYXJ0Ci8vIHBhcnRfMS5kYXJ0CnBhcnQgb2YgbGlicmFy',
+ 'eV8xOwoKQEpTKCJmcmFtZXdvcmtTdGFiaWxpemVycyIpCmV4dGVybmFsIExpc3Q8RnJhbWV3b3Jr',
+ 'U3RhYmlsaXplcj4gZ2V0IGZyYW1ld29ya1N0YWJpbGl6ZXJzOwpgYGAKCklmIHlvdXIgbGlicmFy',
+ 'eSBhbHJlYWR5IGhhcyBhIEpTIG1vZHVsZSBlLmcuLAoKYGBgZGFydApASlMoJ2FycmF5LnV0aWxz',
+ 'JykKbGlicmFyeSBteV9saWJyYXJ5OwpgYGAKClRoZW4geW91ciBsaWJyYXJ5IHdpbGwgd29yayB3',
+ 'aXRob3V0IGFueSBhZGRpdGlvbmFsIGNoYW5nZXMuCgojIyMgQW5hbHl6ZXIKCiogICBTdGF0aWMg',
+ 'Y2hlY2tpbmcgb2YgYGZvciBpbmAgc3RhdGVtZW50cy4gVGhlc2Ugd2lsbCBub3cgcHJvZHVjZSBz',
+ ];
+}
+
+List<String> _h11(String s) {
+ return [
+ s,
+ 'dGF0aWMKICAgIHdhcm5pbmdzOgoKICAgIGBgYGRhcnQKICAgIC8vIE5vdCBJdGVyYWJsZS4KICAg',
+ 'IGZvciAodmFyIGkgaW4gMTIzNCkgeyAuLi4gfQoKICAgIC8vIFN0cmluZyBjYW5ub3QgYmUgYXNz',
+ 'aWduZWQgdG8gaW50LgogICAgZm9yIChpbnQgbiBpbiA8U3RyaW5nPlsiYSIsICJiIl0pIHsgLi4u',
+ 'IH0KICAgIGBgYAoKIyMjIFRvb2wgQ2hhbmdlcwoKKiBQdWIKICAqIGBwdWIgc2VydmVgIG5vdyBw',
+ 'cm92aWRlcyBjYWNoaW5nIGhlYWRlcnMgdGhhdCBzaG91bGQgaW1wcm92ZSB0aGUgcGVyZm9ybWFu',
+ 'Y2UKICAgIG9mIHJlcXVlc3RpbmcgbGFyZ2UgZmlsZXMgbXVsdGlwbGUgdGltZXMuCgogICogQm90',
+ 'aCBgcHViIGdldGAgYW5kIGBwdWIgdXBncmFkZWAgbm93IGhhdmUgYSBgLS1uby1wcmVjb21waWxl',
+ 'YCBmbGFnIHRoYXQKICAgIGRpc2FibGVzIHByZWNvbXBpbGF0aW9uIG9mIGV4ZWN1dGFibGVzIGFu',
+ 'ZCB0cmFuc2Zvcm1lZCBkZXBlbmRlbmNpZXMuCgogICogYHB1YiBwdWJsaXNoYCBub3cgcmVzb2x2',
+ 'ZXMgc3ltbGlua3Mgd2hlbiBwdWJsaXNoaW5nIGZyb20gYSBHaXQgcmVwb3NpdG9yeS4KICAgIFRo',
+ 'aXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3IgaXQgYWx3YXlzIGhhZCB3aGVuIHB1Ymxpc2hpbmcgYSBw',
+ 'YWNrYWdlIHRoYXQKICAgIHdhc24ndCBpbiBhIEdpdCByZXBvc2l0b3J5LgoKKiBEYXJ0IERldiBD',
+ 'b21waWxlcgogICogVGhlICoqZXhwZXJpbWVudGFsKiogYGRhcnRkZXZjYCBleGVjdXRhYmxlIGhh',
+ 'cyBiZWVuIGFkZGVkIHRvIHRoZSBTREsuCgogICogSXQgd2lsbCBoZWxwIGVhcmx5IGFkb3B0ZXJz',
+ 'IHZhbGlkYXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgcHJvdmlkZQogICAgZmVlZGJhY2suIGBk',
+ 'YXJ0ZGV2Y2AgKippcyBub3QqKiB5ZXQgcmVhZHkgZm9yIHByb2R1Y3Rpb24gdXNhZ2UuCgogICog',
+ 'UmVhZCBtb3JlIGFib3V0IHRoZSBEYXJ0IERldiBDb21waWxlciBbaGVyZV1bZGFydGRldmNdLgoK',
+ 'W2RhcnRkZXZjXTogaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9kZXZfY29tcGlsZXIKCiMj',
+ 'IDEuMTUuMCAtIDIwMTYtMDMtMDkKCiMjIyBDb3JlIGxpYnJhcnkgY2hhbmdlcwoKKiBgZGFydDph',
+ 'c3luY2AKICAqIE1hZGUgYFN0cmVhbVZpZXdgIGNsYXNzIGEgYGNvbnN0YCBjbGFzcy4KCiogYGRh',
+ 'cnQ6Y29yZWAKICAqIEFkZGVkIGBVcmkucXVlcnlQYXJhbWV0ZXJzQWxsYCB0byBoYW5kbGUgbXVs',
+ 'dGlwbGUgcXVlcnkgcGFyYW1ldGVycyB3aXRoCiAgICB0aGUgc2FtZSBuYW1lLgoKKiBgZGFydDpp',
+ 'b2AKICAqIEFkZGVkIGBTZWN1cml0eUNvbnRleHQudXNlUHJpdmF0ZUtleUJ5dGVzYCwKICAgIGBT',
+ 'ZWN1cml0eUNvbnRleHQudXNlQ2VydGlmaWNhdGVDaGFpbkJ5dGVzYCwKICAgIGBTZWN1cml0eUNv',
+ 'bnRleHQuc2V0VHJ1c3RlZENlcnRpZmljYXRlc0J5dGVzYCwgYW5kCiAgICBgU2VjdXJpdHlDb250',
+ 'ZXh0LnNldENsaWVudEF1dGhvcml0aWVzQnl0ZXNgLgogICogKipCcmVha2luZyoqIFRoZSBuYW1l',
+ 'ZCBgZGlyZWN0b3J5YCBhcmd1bWVudCBvZgogICAgYFNlY3VyaXR5Q29udGV4dC5zZXRUcnVzdGVk',
+ 'Q2VydGlmaWNhdGVzYCBoYXMgYmVlbiByZW1vdmVkLgogICogQWRkZWQgc3VwcG9ydCB0byBgU2Vj',
+ 'dXJpdHlDb250ZXh0YCBmb3IgUEtDUzEyIGNlcnRpZmljYXRlIGFuZCBrZXkKICAgIGNvbnRhaW5l',
+ 'cnMuCiAgKiBBbGwgY2FsbHMgaW4gYFNlY3VyaXR5Q29udGV4dGAgdGhhdCBhY2NlcHQgY2VydGlm',
+ 'aWNhdGUgZGF0YSBub3cgYWNjZXB0IGFuCiAgICBvcHRpb25hbCBuYW1lZCBwYXJhbWV0ZXIgYHBh',
+ 'c3N3b3JkYCwgc2ltaWxhciB0bwogICAgYFNlY3VyaXR5Q29udGV4dC51c2VQcml2YXRlS2V5Qnl0',
+ 'ZXNgLCBmb3IgdXNlIGFzIHRoZSBwYXNzd29yZCBmb3IgUEtDUzEyCiAgICBkYXRhLgoKIyMjIFRv',
+ 'b2wgY2hhbmdlcwoKKiBEYXJ0aXVtIGFuZCBjb250ZW50IHNoZWxsCiAgKiBUaGUgQ2hyb21lLWJh',
+ 'c2VkIHRvb2xzIHRoYXQgc2hpcCBhcyBwYXJ0IG9mIHRoZSBEYXJ0IFNESyAtIERhcnRpdW0gYW5k',
+ 'CiAgICBjb250ZW50IHNoZWxsIC0gYXJlIG5vdyBiYXNlZCBvbiBDaHJvbWUgdmVyc2lvbiA0NSAo',
+ 'aW5zdGVhZCBvZiBDaHJvbWUgMzkpLgogICogRGFydCBicm93c2VyIGxpYnJhcmllcyAoYGRhcnQ6',
+ 'aHRtbGAsIGBkYXJ0OnN2Z2AsIGV0YykgKmhhdmUgbm90KiBiZWVuCiAgICB1cGRhdGVkLgogICAg',
+ 'KiBUaGVzZSBhcmUgc3RpbGwgYmFzZWQgb24gQ2hyb21lIDM5LgogICAgKiBUaGVzZSBBUElzIHdp',
+ 'bGwgYmUgdXBkYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgogICogTm90ZSB0aGF0IHRoZXJlIGFy',
+ 'ZSBleHBlcmltZW50YWwgQVBJcyB3aGljaCBoYXZlIGNoYW5nZWQgaW4gdGhlIHVuZGVybHlpbmcK',
+ 'ICAgIGJyb3dzZXIsIGFuZCB3aWxsIG5vdCB3b3JrIHdpdGggdGhlIG9sZGVyIGxpYnJhcmllcy4K',
+ 'ICAgIEZvciBleGFtcGxlLCBgRWxlbWVudC5hbmltYXRlYC4KCiogYGRhcnRmbXRgIC0gdXBncmFk',
+ 'ZWQgdG8gdjAuMi40CiAgKiBCZXR0ZXIgaGFuZGxpbmcgZm9yIGxvbmcgY29sbGVjdGlvbnMgd2l0',
+ 'aCBjb21tZW50cy4KICAqIEFsd2F5cyBwdXQgbWVtYmVyIG1ldGFkYXRhIGFubm90YXRpb25zIG9u',
+ 'IHRoZWlyIG93biBsaW5lLgogICogSW5kZW50IGZ1bmN0aW9ucyBpbiBuYW1lZCBhcmd1bWVudCBs',
+ 'aXN0cyB3aXRoIG5vbi1mdW5jdGlvbnMuCiAgKiBGb3JjZSB0aGUgcGFyYW1ldGVyIGxpc3QgdG8g',
+ 'c3BsaXQgaWYgYSBzcGxpdCBvY2N1cnMgaW5zaWRlIGEgZnVuY3Rpb24tdHlwZWQKICAgIHBhcmFt',
+ 'ZXRlci4KICAqIERvbid0IGZvcmNlIGEgc3BsaXQgZm9yIGJlZm9yZSBhIHNpbmdsZSBuYW1lZCBh',
+ 'cmd1bWVudCBpZiB0aGUgYXJndW1lbnQKICAgIGl0c2VsZiBzcGxpdHMuCgojIyMgU2VydmljZSBw',
+ 'cm90b2NvbCBjaGFuZ2VzCgoqIEZpeGVkIGEgZG9jdW1lbnRhdGlvbiBidWcgd2hlcmUgdGhlIGZp',
+ 'ZWxkIGBleHRlbnNpb25SUENzYCBpbiBgSXNvbGF0ZWAKICB3YXMgbm90IG1hcmtlZCBvcHRpb25h',
+ 'bC4KCiMjIyBFeHBlcmltZW50YWwgbGFuZ3VhZ2UgZmVhdHVyZXMKICAqIEFkZGVkIHN1cHBvcnQg',
+ 'Zm9yIFtjb25maWd1cmF0aW9uLXNwZWNpZmljIGltcG9ydHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9t',
+ 'dW5pZmljZW50L2RlcC1pbnRlcmZhY2UtbGlicmFyaWVzL2Jsb2IvbWFzdGVyL1Byb3Bvc2FsLm1k',
+ 'KS4KICAgIE9uIHRoZSBWTSBhbmQgYGRhcnQyanNgLCB0aGV5IGNhbiBiZSBlbmFibGVkIHdpdGgg',
+ 'YC0tY29uZGl0aW9uYWwtZGlyZWN0aXZlc2AuCgogICAgVGhlIGFuYWx5emVyIHJlcXVpcmVzIGFk',
+ 'ZGl0aW9uYWwgY29uZmlndXJhdGlvbjoKICAgIGBgYHlhbWwKICAgIGFuYWx5emVyOgogICAgICBs',
+ 'YW5ndWFnZToKICAgICAgICBlbmFibGVDb25kaXRpb25hbERpcmVjdGl2ZXM6IHRydWUKICAgIGBg',
+ 'YAoKICAgIFJlYWQgYWJvdXQgW2NvbmZpZ3VyaW5nIHRoZSBhbmFseXplcl0gZm9yIG1vcmUgZGV0',
+ 'YWlscy4KCltjb25maWd1cmluZyB0aGUgYW5hbHl6ZXJdOiBodHRwczovL2dpdGh1Yi5jb20vZGFy',
+ 'dC1sYW5nL3Nkay90cmVlL21hc3Rlci9wa2cvYW5hbHl6ZXIjY29uZmlndXJpbmctdGhlLWFuYWx5',
+ 'emVyCgojIyAxLjE0LjIgLSAyMDE2LTAyLTEwCgpQYXRjaCByZWxlYXNlLCByZXNvbHZlcyB0aHJl',
+ 'ZSBpc3N1ZXM6CgoqIFZNOiBGaXhlZCBhIGNvZGUgZ2VuZXJhdGlvbiBidWcgb24geDY0LgogIChT',
+ 'REsgY29tbWl0IFs4MzRiM2YwMl0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvY29t',
+ 'bWl0LzgzNGIzZjAyYjZhYjc0MGEyMTNmZDgwOGU2YzZmMzI2OWJlZDgwZTUpKQoKKiBgZGFydDpp',
+ 'b2A6IEZpeGVkIEVPRiBkZXRlY3Rpb24gd2hlbiByZWFkaW5nIHNvbWUgc3BlY2lhbCBkZXZpY2Ug',
+ 'ZmlsZXMuCiAgKFNESyBpc3N1ZSBbMjU1OTZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcv',
+ 'c2RrL2lzc3Vlcy8yNTU5NikpCgoqIFB1YjogRml4ZWQgYW4gZXJyb3IgdXNpbmcgaG9zdGVkIGRl',
+ 'cGVuZGVuY2llcyBpbiBTREsgdmVyc2lvbiAxLjE0LgogIChQdWIgaXNzdWUgWzEzODZdKGh0dHBz',
+ 'Oi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvcHViL2lzc3Vlcy8xMzg2KSkKCiMjIDEuMTQuMSAtIDIw',
+ 'MTYtMDItMDQKClBhdGNoIHJlbGVhc2UsIHJlc29sdmVzIG9uZSBpc3N1ZToKCiogRGVidWdnZXI6',
+ 'IEZpeGVzIGEgVk0gY3Jhc2ggd2hlbiBhIGRlYnVnZ2VyIGF0dGVtcHRzIHRvIHNldCBhIGJyZWFr',
+ 'IHBvaW50CmR1cmluZyBpc29sYXRlIGluaXRpYWxpemF0aW9uLgooU0RLIGlzc3VlIFsyNTYxOF0o',
+ 'aHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI1NjE4KSkKCiMjIDEuMTQu',
+ 'MCAtIDIwMTYtMDEtMjgKCiMjIyBDb3JlIGxpYnJhcnkgY2hhbmdlcwoqIGBkYXJ0OmFzeW5jYAog',
+ 'ICogQWRkZWQgYEZ1dHVyZS5hbnlgIHN0YXRpYyBtZXRob2QuCiAgKiBBZGRlZCBgU3RyZWFtLmZy',
+ 'b21GdXR1cmVzYCBjb25zdHJ1Y3Rvci4KCiogYGRhcnQ6Y29udmVydGAKICAqIGBCYXNlNjREZWNv',
+ 'ZGVyLmNvbnZlcnRgIG5vdyB0YWtlcyBvcHRpb25hbCBgc3RhcnRgIGFuZCBgZW5kYCBwYXJhbWV0',
+ 'ZXJzLgoKKiBgZGFydDpjb3JlYAogICogQWRkZWQgYGN1cnJlbnRgIGdldHRlciB0byBgU3RhY2tU',
+ 'cmFjZWAgY2xhc3MuCiAgKiBgVXJpYCBjbGFzcyBhZGRlZCBzdXBwb3J0IGZvciBkYXRhIFVSSXMK',
+ 'ICAgICAgKiBBZGRlZCB0d28gbmV3IGNvbnN0cnVjdG9yczogYGRhdGFGcm9tQnl0ZXNgIGFuZCBg',
+ 'ZGF0YUZyb21TdHJpbmdgLgogICAgICAqIEFkZGVkIGEgYGRhdGFgIGdldHRlciBmb3IgYGRhdGE6',
+ 'YCBVUklzIHdpdGggYSBuZXcgYFVyaURhdGFgIGNsYXNzIGZvcgogICAgICB0aGUgcmV0dXJuIHR5',
+ 'cGUuCiAgKiBBZGRlZCBgZ3Jvd2FibGVgIHBhcmFtZXRlciB0byBgTGlzdC5maWxsZWRgIGNvbnN0',
+ 'cnVjdG9yLgogICogQWRkZWQgbWljcm9zZWNvbmQgc3VwcG9ydCB0byBgRGF0ZVRpbWVgOiBgRGF0',
+ 'ZVRpbWUubWljcm9zZWNvbmRgLAogICAgYERhdGVUaW1lLm1pY3Jvc2Vjb25kc1NpbmNlRXBvY2hg',
+ 'LCBhbmQKICAgIGBuZXcgRGF0ZVRpbWUuZnJvbU1pY3Jvc2Vjb25kc1NpbmNlRXBvY2hgLgoKKiBg',
+ 'ZGFydDptYXRoYAogICogYFJhbmRvbWAgYWRkZWQgYSBgc2VjdXJlYCBjb25zdHJ1Y3RvciByZXR1',
+ 'cm5pbmcgYSBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUKICAgIHJhbmRvbSBnZW5lcmF0b3Igd2hp',
+ 'Y2ggcmVhZHMgZnJvbSB0aGUgZW50cm9weSBzb3VyY2UgcHJvdmlkZWQgYnkgdGhlCiAgICBlbWJl',
+ 'ZGRlciBmb3IgZXZlcnkgZ2VuZXJhdGVkIHJhbmRvbSB2YWx1ZS4KCiogYGRhcnQ6aW9gCiAgKiBg',
+ 'UGxhdGZvcm1gIGFkZGVkIGEgc3RhdGljIGBpc0lPU2AgZ2V0dGVyIGFuZCBgUGxhdGZvcm0ub3Bl',
+ 'cmF0aW5nU3lzdGVtYCBtYXkKICAgIG5vdyByZXR1cm4gYGlvc2AuCiAgKiBgUGxhdGZvcm1gIGFk',
+ 'ZGVkIGEgc3RhdGljIGBwYWNrYWdlQ29uZmlnYCBnZXR0ZXIuCiAgKiBBZGRlZCBzdXBwb3J0IGZv',
+ 'ciBXZWJTb2NrZXQgY29tcHJlc3Npb24gYXMgc3RhbmRhcmRpemVkIGluIFJGQyA3NjkyLgogICog',
+ 'Q29tcHJlc3Npb24gaXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhbGwgV2ViU29ja2V0IGNvbm5l',
+ 'Y3Rpb25zLgogICAgICAqIFRoZSBvcHRpb25hbGx5IG5hbWVkIHBhcmFtZXRlciBgY29tcHJlc3Np',
+ 'b25gIG9uIHRoZSBtZXRob2RzCiAgICAgIGBXZWJTb2NrZXQuY29ubmVjdGAsIGBXZWJTb2NrZXQu',
+ 'ZnJvbVVwZ3JhZGVkU29ja2V0YCwgYW5kCiAgICAgIGBXZWJTb2NrZXRUcmFuc2Zvcm1lci51cGdy',
+ ];
+}
+
+List<String> _h12(String s) {
+ return [
+ s,
+ 'YWRlYCBhbmQgIHRoZSBgV2ViU29ja2V0VHJhbnNmb3JtZXJgCiAgICAgIGNvbnN0cnVjdG9yIGNh',
+ 'biBiZSB1c2VkIHRvIG1vZGlmeSBvciBkaXNhYmxlIGNvbXByZXNzaW9uIHVzaW5nIHRoZSBuZXcK',
+ 'ICAgICAgYENvbXByZXNzaW9uT3B0aW9uc2AgY2xhc3MuCgoqIGBkYXJ0Omlzb2xhdGVgCiAgKiBB',
+ 'ZGRlZCAqKl9leHBlcmltZW50YWxfKiogc3VwcG9ydCBmb3IgW1BhY2thZ2UgUmVzb2x1dGlvbiBD',
+ 'b25maWd1cmF0aW9uXS4KICAgICogQWRkZWQgYHBhY2thZ2VDb25maWdgIGFuZCBgcGFja2FnZVJv',
+ 'b3RgIGluc3RhbmNlIGdldHRlcnMgdG8gYElzb2xhdGVgLgogICAgKiBBZGRlZCBhIGByZXNvbHZl',
+ 'UGFja2FnZVVyaWAgbWV0aG9kIHRvIGBJc29sYXRlYC4KICAgICogQWRkZWQgbmFtZWQgYXJndW1l',
+ 'bnRzIGBwYWNrYWdlQ29uZmlnYCBhbmQgYGF1dG9tYXRpY1BhY2thZ2VSZXNvbHV0aW9uYCB0bwog',
+ 'ICAgdGhlIGBJc29sYXRlLnNwYXduVXJpYCBjb25zdHJ1Y3Rvci4KCltQYWNrYWdlIFJlc29sdXRp',
+ 'b24gQ29uZmlndXJhdGlvbl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvZGFydF9lbmhh',
+ 'bmNlbWVudF9wcm9wb3NhbHMvYmxvYi9tYXN0ZXIvQWNjZXB0ZWQvMDAwNSUyMC0lMjBQYWNrYWdl',
+ 'JTIwU3BlY2lmaWNhdGlvbi9ERVAtcGtnc3BlYy5tZAoKIyMjIFRvb2wgY2hhbmdlcwoKKiBgZGFy',
+ 'dGZtdGAKCiAgKiBCZXR0ZXIgbGluZSBzcGxpdHRpbmcgaW4gYSB2YXJpZXR5IG9mIGNhc2VzLgoK',
+ 'ICAqIE90aGVyIG9wdGltaXphdGlvbnMgYW5kIGJ1ZyBmaXhlcy4KCiogUHViCgogICogKipCcmVh',
+ 'a2luZzoqKiBQdWIgbm93IGVhZ2VybHkgZW1pdHMgYW4gZXJyb3Igd2hlbiBhIHB1YnNwZWMncyAi',
+ 'bmFtZSIgZmllbGQKICAgIGlzIG5vdCBhIHZhbGlkIERhcnQgaWRlbnRpZmllci4gU2luY2UgcGFj',
+ 'a2FnZXMgd2l0aCBub24taWRlbnRpZmllciBuYW1lcwogICAgd2VyZSBuZXZlciBhbGxvd2VkIHRv',
+ 'IGJlIHB1Ymxpc2hlZCwgYW5kIHNvbWUgb2YgdGhlbSBhbHJlYWR5IGNhdXNlZCBjcmFzaGVzCiAg',
+ 'ICB3aGVuIGJlaW5nIHdyaXR0ZW4gdG8gYSBgLnBhY2thZ2VzYCBmaWxlLCB0aGlzIGlzIHVubGlr',
+ 'ZWx5IHRvIGJyZWFrIG1hbnkKICAgIHBlb3BsZSBpbiBwcmFjdGljZS4KCiAgKiAqKkJyZWFraW5n',
+ 'OioqIFN1cHBvcnQgZm9yIGBiYXJiYWNrYCB2ZXJzaW9ucyBwcmlvciB0byAwLjE1LjAgKHJlbGVh',
+ 'c2VkIEp1bHkKICAgIDEpICAgIGhhcyBiZWVuIGRyb3BwZWQuIFB1YiB3aWxsIG5vIGxvbmdlciBp',
+ 'bnN0YWxsIHRoZXNlIG9sZGVyIGJhcmJhY2sKICAgIHZlcnNpb25zLgoKICAqIGBwdWIgc2VydmVg',
+ 'IG5vdyBHWklQcyB0aGUgYXNzZXRzIGl0IHNlcnZlcyB0byBtYWtlIGxvYWQgdGltZXMgbW9yZSBz',
+ 'aW1pbGFyCiAgICB0byByZWFsLXdvcmxkIHVzZS1jYXNlcy4KCiAgKiBgcHViIGRlcHNgIG5vdyBz',
+ 'dXBwb3J0cyBhIGAtLW5vLWRldmAgZmxhZywgd2hpY2ggY2F1c2VzIGl0IHRvIGVtaXQgdGhlCiAg',
+ 'ICBkZXBlbmRlbmN5IHRyZWUgYXMgaXQgd291bGQgYmUgaWYgbm8gYGRldl9kZXBlbmRlbmNpZXNg',
+ 'IHdlcmUgaW4gdXNlLiBUaGlzCiAgICBtYWtlcyBpdCBlYXNpZXIgdG8gc2VlIHlvdXIgcGFja2Fn',
+ 'ZSdzIGRlcGVuZGVuY3kgZm9vdHByaW50IGFzIHlvdXIgdXNlcnMKICAgIHdpbGwgZXhwZXJpZW5j',
+ 'ZSBpdC4KCiAgKiBgcHViIGdsb2JhbCBydW5gIG5vdyBkZXRlY3RzIHdoZW4gYSBnbG9iYWwgZXhl',
+ 'Y3V0YWJsZSdzIFNESyBjb25zdHJhaW50IGlzIG5vCiAgICBsb25nZXIgbWV0IGFuZCBlcnJvcnMg',
+ 'b3V0LCByYXRoZXIgdGhhbiB0cnlpbmcgdG8gcnVuIHRoZSBleGVjdXRhYmxlIGFueXdheS4KCiAg',
+ 'KiBQdWIgY29tbWFuZHMgdGhhdCBjaGVjayB3aGV0aGVyIHRoZSBsb2NrZmlsZSBpcyB1cC10by1k',
+ 'YXRlIChgcHViIHJ1bmAsIGBwdWIKICAgIGRlcHNgLCBgcHViIHNlcnZlYCwgYW5kIGBwdWIgYnVp',
+ 'bGRgKSBub3cgZG8gYWRkaXRpb25hbCB2ZXJpZmljYXRpb24uIFRoZXkKICAgIGVuc3VyZSB0aGF0',
+ 'IGFueSBwYXRoIGRlcGVuZGVuY2llcycgcHVic3BlY3MgaGF2ZW4ndCBiZWVuIGNoYW5nZWQsIGFu',
+ 'ZCB0aGV5CiAgICBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCBTREsgdmVyc2lvbiBpcyBjb21wYXRp',
+ 'YmxlIHdpdGggYWxsIGRlcGVuZGVuY2llcy4KCiAgKiBGaXhlZCBhIGNyYXNoaW5nIGJ1ZyB3aGVu',
+ 'IHVzaW5nIGBwdWIgZ2xvYmFsIHJ1bmAgb24gYSBnbG9iYWwgc2NyaXB0IHRoYXQKICAgIGRpZG4n',
+ 'dCBleGlzdC4KCiAgKiBGaXhlZCBhIGNyYXNoaW5nIGJ1ZyB3aGVuIGEgcHVic3BlYyBjb250YWlu',
+ 'cyBhIGRlcGVuZGVuY3kgd2l0aG91dCBhIHNvdXJjZQogICAgZGVjbGFyZWQuCgojIyAxLjEzLjIg',
+ 'LSAyMDE2LTAxLTA2CgpQYXRjaCByZWxlYXNlLCByZXNvbHZlcyBvbmUgaXNzdWU6CgoqIGRhcnQy',
+ 'anM6IFN0YWNrIHRyYWNlcyBhcmUgbm90IGNhcHR1cmVkIGNvcnJlY3RseSAoU0RLIGlzc3VlIFsy',
+ 'NTIzNV0KKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yNTIzNSkpCgoj',
+ 'IyAxLjEzLjEgLSAyMDE1LTEyLTE3CgpQYXRjaCByZWxlYXNlLCByZXNvbHZlcyB0aHJlZSBpc3N1',
+ 'ZXM6CgoqIFZNIHR5cGUgcHJvcGFnYXRpb24gZml4OiBSZXNvbHZlcyBhIHBvdGVudGlhbCBjcmFz',
+ 'aCBpbiB0aGUgRGFydCBWTSAoU0RLIGNvbW1pdAogW2RmZjEzYmVdCihodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9jb21taXQvZGZmMTNiZWY4ZGUxMDRkMzNiMDQ4MjAxMzZkYTJkODBm',
+ 'M2M4MzVkNykpCgoqIGRhcnQyanMgY3Jhc2ggZml4OiBSZXNvbHZlcyBhIGNyYXNoIGluIHBrZy9q',
+ 'cyBhbmQgZGFydDJqcyAoU0RLIGlzc3VlIFsyNDk3NF0KKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy8yNDk3NCkpCgoqIFB1YiBnZXQgY3Jhc2ggb24gQVJNOiBGaXhlcyBh',
+ 'IGNyYXNoIHRyaWdnZXJlZCB3aGVuIHJ1bm5pbmcgJ3B1YiBnZXQnIG9uIEFSTQogcHJvY2Vzc29y',
+ 'cyBzdWNoIGFzIHRob3NlIG9uIGEgUmFzcGJlcnJ5IFBpIChTREsgaXNzdWUgWzI0ODU1XQooaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI0ODU1KSkKCiMjIDEuMTMuMCAt',
+ 'IDIwMTUtMTEtMTgKCiMjIyBDb3JlIGxpYnJhcnkgY2hhbmdlcwoqIGBkYXJ0OmFzeW5jYAogICog',
+ 'YFN0cmVhbUNvbnRyb2xsZXJgIGFkZGVkIGdldHRlcnMgZm9yIGBvbkxpc3RlbmAsIGBvblBhdXNl',
+ 'YCwgYW5kIGBvblJlc3VtZWAKICAgIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgbmV3IGB0eXBlZGVm',
+ 'IHZvaWQgQ29udHJvbGxlckNhbGxiYWNrKClgLgogICogYFN0cmVhbUNvbnRyb2xsZXJgIGFkZGVk',
+ 'IGEgZ2V0dGVyIGZvciBgb25DYW5jZWxgIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKICAgIG5ldyBg',
+ 'dHlwZWRlZiBDb250cm9sbGVyQ2FuY2VsQ2FsbGJhY2soKWA7CiAgKiBgU3RyZWFtVHJhbnNmb3Jt',
+ 'ZXJgIGluc3RhbmNlcyBjcmVhdGVkIHdpdGggYGZyb21IYW5kbGVyc2Agd2l0aCBubwogICAgYGhh',
+ 'bmRsZUVycm9yYCBjYWxsYmFjayBub3cgZm9yd2FyZCBzdGFjayB0cmFjZXMgYWxvbmcgd2l0aCBl',
+ 'cnJvcnMgdG8gdGhlCiAgICByZXN1bHRpbmcgc3RyZWFtcy4KCiogYGRhcnQ6Y29udmVydGAKICAq',
+ 'IEFkZGVkIHN1cHBvcnQgZm9yIEJhc2UtNjQgZW5jb2RpbmcgYW5kIGRlY29kaW5nLgogICAgKiBB',
+ 'ZGRlZCBuZXcgY2xhc3NlcyBgQmFzZTY0Q29kZWNgLCBgQmFzZTY0RW5jb2RlcmAsIGFuZCBgQmFz',
+ 'ZTY0RGVjb2RlcmAuCiAgICAqIEFkZGVkIG5ldyB0b3AtbGV2ZWwgYGNvbnN0IEJhc2U2NENvZGVj',
+ 'IEJBU0U2NGAuCgoqIGBkYXJ0OmNvcmVgCiAgKiBgVXJpYCBhZGRlZCBgcmVtb3ZlRnJhZ21lbnRg',
+ 'IG1ldGhvZC4KICAqIGBTdHJpbmcuYWxsTWF0Y2hlc2AgKGltcGxlbWVudGluZyBgUGF0dGVybi5h',
+ 'bGxNYXRjaGVzYCkgaXMgbm93IGxhenksCiAgICBhcyBhbGwgYGFsbE1hdGNoZXNgIGltcGxlbWVu',
+ 'dGF0aW9ucyBhcmUgaW50ZW5kZWQgdG8gYmUuCiAgKiBgUmVzb3VyY2VgIGlzIGRlcHJlY2F0ZWQs',
+ 'IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KCiogYGRhcnQ6ZGV2ZWxv',
+ 'cGVyYAogICogQWRkZWQgYFRpbWVsaW5lYCBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBPYnNl',
+ 'cnZhdG9yeSdzIHRpbWVsaW5lIGZlYXR1cmUuCiAgKiBBZGRlZCBgU2VydmljZUV4dGVuc2lvbkhh',
+ 'bmRsZXJgLCBgU2VydmljZUV4dGVuc2lvblJlc3BvbnNlYCwgYW5kIGByZWdpc3RlckV4dGVuc2lv',
+ 'bmAgd2hpY2ggZW5hYmxlIGRldmVsb3BlcnMgdG8gcHJvdmlkZSB0aGVpciBvd24gVk0gc2Vydmlj',
+ 'ZSBwcm90b2NvbCBleHRlbnNpb25zLgoKKiBgZGFydDpodG1sYCwgYGRhcnQ6aW5kZXhlZF9kYmAs',
+ 'IGBkYXJ0OnN2Z2AsIGBkYXJ0OndlYl9hdWRpb2AsIGBkYXJ0OndlYl9nbGAsIGBkYXJ0OndlYl9z',
+ 'cWxgCiAgKiBUaGUgcmV0dXJuIHR5cGUgb2Ygc29tZSBBUElzIGNoYW5nZWQgZnJvbSBgZG91Ymxl',
+ 'YCB0byBgbnVtYC4gRGFydGl1bSBpcyBub3cKICAgIHVzaW5nCiAgICBKUyBpbnRlcm9wIGZvciBt',
+ 'b3N0IG9wZXJhdGlvbnMuIEpTIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gbnVtZXJpYwog',
+ 'ICAgdHlwZXMsIGFuZCB3aWxsIHJldHVybiBhIG51bWJlciBhcyBhbiBpbnQgaWYgaXQgZml0cyBp',
+ 'biBhbiBpbnQuIFRoaXMgd2lsbAogICAgbW9zdGx5IGNhdXNlIGFuIGVycm9yIGlmIHlvdSBhc3Np',
+ 'Z24gdG8gc29tZXRoaW5nIHR5cGVkIGBkb3VibGVgIGluCiAgICBjaGVja2VkIG1vZGUuIFlvdSBt',
+ 'YXkKICAgIG5lZWQgdG8gaW5zZXJ0IGEgYHRvRG91YmxlKClgIGNhbGwgb3IgYWNjZXB0IGBudW1g',
+ 'LiBFeGFtcGxlcyBvZiBBUElzIHRoYXQKICAgIGFyZSBhZmZlY3RlZCBpbmNsdWRlIGBFbGVtZW50',
+ 'LmdldEJvdW5kaW5nQ2xpZW50UmVjdGAgYW5kCiAgICBgVGV4dE1ldHJpY3Mud2lkdGhgLgoKKiBg',
+ 'ZGFydDppb2AKICAqICoqQnJlYWtpbmc6KiogU2VjdXJlIG5ldHdvcmtpbmcgaGFzIGNoYW5nZWQs',
+ 'IHJlcGxhY2luZyB0aGUgTlNTIGxpYnJhcnkKICAgIHdpdGggdGhlIEJvcmluZ1NTTCBsaWJyYXJ5',
+ 'LiBgU2VjdXJlU29ja2V0YCwgYFNlY3VyZVNlcnZlclNvY2tldGAsCiAgICBgUmF3U2VjdXJlU29j',
+ 'a2V0YCxgUmF3U2VjdXJlU2VydmVyU29ja2V0YCwgYEh0dHBDbGllbnRgLCBhbmQgYEh0dHBTZXJ2',
+ 'ZXJgCiAgICBub3cgYWxsIHVzZSBhIGBTZWN1cml0eUNvbnRleHRgIG9iamVjdCB3aGljaCBjb250',
+ 'YWlucyB0aGUgY2VydGlmaWNhdGVzCiAgICBhbmQga2V5cyB1c2VkIGZvciBzZWN1cmUgVExTIChT',
+ 'U0wpIG5ldHdvcmtpbmcuCgogICAgVGhpcyBpcyBhIGJyZWFraW5nIGNoYW5nZSBmb3Igc2VydmVy',
+ 'IGFwcGxpY2F0aW9ucyBhbmQgZm9yIHNvbWUgY2xpZW50CiAgICBhcHBsaWNhdGlvbnMuIENlcnRp',
+ 'ZmljYXRlcyBhbmQga2V5cyBhcmUgbG9hZGVkIGludG8gdGhlIGBTZWN1cml0eUNvbnRleHRgCiAg',
+ 'ICBmcm9tIFBFTSBmaWxlcywgaW5zdGVhZCBvZiBmcm9tIGFuIE5TUyBjZXJ0aWZpY2F0ZSBkYXRh',
+ 'YmFzZS4gSW5mb3JtYXRpb24KICAgIGFib3V0IGhvdyB0byBjaGFuZ2UgYXBwbGljYXRpb25zIHRo',
+ 'YXQgdXNlIHNlY3VyZSBuZXR3b3JraW5nIGlzIGF0CiAgICBodHRwczovL3d3dy5kYXJ0bGFuZy5v',
+ 'cmcvc2VydmVyL3Rscy1zc2wuaHRtbAoKICAqIGBIdHRwQ2xpZW50YCBubyBsb25nZXIgc2VuZHMg',
+ 'VVJJIGZyYWdtZW50cyBpbiB0aGUgcmVxdWVzdC4gVGhpcyBpcyBub3QKICAgIGFsbG93ZWQgYnkg',
+ ];
+}
+
+List<String> _h13(String s) {
+ return [
+ s,
+ 'YWRlYCBhbmQgIHRoZSBgV2ViU29ja2V0VHJhbnNmb3JtZXJgCiAgICAgIGNvbnN0cnVjdG9yIGNh',
+ 'biBiZSB1c2VkIHRvIG1vZGlmeSBvciBkaXNhYmxlIGNvbXByZXNzaW9uIHVzaW5nIHRoZSBuZXcK',
+ 'ICAgICAgYENvbXByZXNzaW9uT3B0aW9uc2AgY2xhc3MuCgoqIGBkYXJ0Omlzb2xhdGVgCiAgKiBB',
+ 'ZGRlZCAqKl9leHBlcmltZW50YWxfKiogc3VwcG9ydCBmb3IgW1BhY2thZ2UgUmVzb2x1dGlvbiBD',
+ 'b25maWd1cmF0aW9uXS4KICAgICogQWRkZWQgYHBhY2thZ2VDb25maWdgIGFuZCBgcGFja2FnZVJv',
+ 'b3RgIGluc3RhbmNlIGdldHRlcnMgdG8gYElzb2xhdGVgLgogICAgKiBBZGRlZCBhIGByZXNvbHZl',
+ 'UGFja2FnZVVyaWAgbWV0aG9kIHRvIGBJc29sYXRlYC4KICAgICogQWRkZWQgbmFtZWQgYXJndW1l',
+ 'bnRzIGBwYWNrYWdlQ29uZmlnYCBhbmQgYGF1dG9tYXRpY1BhY2thZ2VSZXNvbHV0aW9uYCB0bwog',
+ 'ICAgdGhlIGBJc29sYXRlLnNwYXduVXJpYCBjb25zdHJ1Y3Rvci4KCltQYWNrYWdlIFJlc29sdXRp',
+ 'b24gQ29uZmlndXJhdGlvbl06IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvZGFydF9lbmhh',
+ 'bmNlbWVudF9wcm9wb3NhbHMvYmxvYi9tYXN0ZXIvQWNjZXB0ZWQvMDAwNSUyMC0lMjBQYWNrYWdl',
+ 'JTIwU3BlY2lmaWNhdGlvbi9ERVAtcGtnc3BlYy5tZAoKIyMjIFRvb2wgY2hhbmdlcwoKKiBgZGFy',
+ 'dGZtdGAKCiAgKiBCZXR0ZXIgbGluZSBzcGxpdHRpbmcgaW4gYSB2YXJpZXR5IG9mIGNhc2VzLgoK',
+ 'ICAqIE90aGVyIG9wdGltaXphdGlvbnMgYW5kIGJ1ZyBmaXhlcy4KCiogUHViCgogICogKipCcmVh',
+ 'a2luZzoqKiBQdWIgbm93IGVhZ2VybHkgZW1pdHMgYW4gZXJyb3Igd2hlbiBhIHB1YnNwZWMncyAi',
+ 'bmFtZSIgZmllbGQKICAgIGlzIG5vdCBhIHZhbGlkIERhcnQgaWRlbnRpZmllci4gU2luY2UgcGFj',
+ 'a2FnZXMgd2l0aCBub24taWRlbnRpZmllciBuYW1lcwogICAgd2VyZSBuZXZlciBhbGxvd2VkIHRv',
+ 'IGJlIHB1Ymxpc2hlZCwgYW5kIHNvbWUgb2YgdGhlbSBhbHJlYWR5IGNhdXNlZCBjcmFzaGVzCiAg',
+ 'ICB3aGVuIGJlaW5nIHdyaXR0ZW4gdG8gYSBgLnBhY2thZ2VzYCBmaWxlLCB0aGlzIGlzIHVubGlr',
+ 'ZWx5IHRvIGJyZWFrIG1hbnkKICAgIHBlb3BsZSBpbiBwcmFjdGljZS4KCiAgKiAqKkJyZWFraW5n',
+ 'OioqIFN1cHBvcnQgZm9yIGBiYXJiYWNrYCB2ZXJzaW9ucyBwcmlvciB0byAwLjE1LjAgKHJlbGVh',
+ 'c2VkIEp1bHkKICAgIDEpICAgIGhhcyBiZWVuIGRyb3BwZWQuIFB1YiB3aWxsIG5vIGxvbmdlciBp',
+ 'bnN0YWxsIHRoZXNlIG9sZGVyIGJhcmJhY2sKICAgIHZlcnNpb25zLgoKICAqIGBwdWIgc2VydmVg',
+ 'IG5vdyBHWklQcyB0aGUgYXNzZXRzIGl0IHNlcnZlcyB0byBtYWtlIGxvYWQgdGltZXMgbW9yZSBz',
+ 'aW1pbGFyCiAgICB0byByZWFsLXdvcmxkIHVzZS1jYXNlcy4KCiAgKiBgcHViIGRlcHNgIG5vdyBz',
+ 'dXBwb3J0cyBhIGAtLW5vLWRldmAgZmxhZywgd2hpY2ggY2F1c2VzIGl0IHRvIGVtaXQgdGhlCiAg',
+ 'ICBkZXBlbmRlbmN5IHRyZWUgYXMgaXQgd291bGQgYmUgaWYgbm8gYGRldl9kZXBlbmRlbmNpZXNg',
+ 'IHdlcmUgaW4gdXNlLiBUaGlzCiAgICBtYWtlcyBpdCBlYXNpZXIgdG8gc2VlIHlvdXIgcGFja2Fn',
+ 'ZSdzIGRlcGVuZGVuY3kgZm9vdHByaW50IGFzIHlvdXIgdXNlcnMKICAgIHdpbGwgZXhwZXJpZW5j',
+ 'ZSBpdC4KCiAgKiBgcHViIGdsb2JhbCBydW5gIG5vdyBkZXRlY3RzIHdoZW4gYSBnbG9iYWwgZXhl',
+ 'Y3V0YWJsZSdzIFNESyBjb25zdHJhaW50IGlzIG5vCiAgICBsb25nZXIgbWV0IGFuZCBlcnJvcnMg',
+ 'b3V0LCByYXRoZXIgdGhhbiB0cnlpbmcgdG8gcnVuIHRoZSBleGVjdXRhYmxlIGFueXdheS4KCiAg',
+ 'KiBQdWIgY29tbWFuZHMgdGhhdCBjaGVjayB3aGV0aGVyIHRoZSBsb2NrZmlsZSBpcyB1cC10by1k',
+ 'YXRlIChgcHViIHJ1bmAsIGBwdWIKICAgIGRlcHNgLCBgcHViIHNlcnZlYCwgYW5kIGBwdWIgYnVp',
+ 'bGRgKSBub3cgZG8gYWRkaXRpb25hbCB2ZXJpZmljYXRpb24uIFRoZXkKICAgIGVuc3VyZSB0aGF0',
+ 'IGFueSBwYXRoIGRlcGVuZGVuY2llcycgcHVic3BlY3MgaGF2ZW4ndCBiZWVuIGNoYW5nZWQsIGFu',
+ 'ZCB0aGV5CiAgICBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCBTREsgdmVyc2lvbiBpcyBjb21wYXRp',
+ 'YmxlIHdpdGggYWxsIGRlcGVuZGVuY2llcy4KCiAgKiBGaXhlZCBhIGNyYXNoaW5nIGJ1ZyB3aGVu',
+ 'IHVzaW5nIGBwdWIgZ2xvYmFsIHJ1bmAgb24gYSBnbG9iYWwgc2NyaXB0IHRoYXQKICAgIGRpZG4n',
+ 'dCBleGlzdC4KCiAgKiBGaXhlZCBhIGNyYXNoaW5nIGJ1ZyB3aGVuIGEgcHVic3BlYyBjb250YWlu',
+ 'cyBhIGRlcGVuZGVuY3kgd2l0aG91dCBhIHNvdXJjZQogICAgZGVjbGFyZWQuCgojIyAxLjEzLjIg',
+ 'LSAyMDE2LTAxLTA2CgpQYXRjaCByZWxlYXNlLCByZXNvbHZlcyBvbmUgaXNzdWU6CgoqIGRhcnQy',
+ 'anM6IFN0YWNrIHRyYWNlcyBhcmUgbm90IGNhcHR1cmVkIGNvcnJlY3RseSAoU0RLIGlzc3VlIFsy',
+ 'NTIzNV0KKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yNTIzNSkpCgoj',
+ 'IyAxLjEzLjEgLSAyMDE1LTEyLTE3CgpQYXRjaCByZWxlYXNlLCByZXNvbHZlcyB0aHJlZSBpc3N1',
+ 'ZXM6CgoqIFZNIHR5cGUgcHJvcGFnYXRpb24gZml4OiBSZXNvbHZlcyBhIHBvdGVudGlhbCBjcmFz',
+ 'aCBpbiB0aGUgRGFydCBWTSAoU0RLIGNvbW1pdAogW2RmZjEzYmVdCihodHRwczovL2dpdGh1Yi5j',
+ 'b20vZGFydC1sYW5nL3Nkay9jb21taXQvZGZmMTNiZWY4ZGUxMDRkMzNiMDQ4MjAxMzZkYTJkODBm',
+ 'M2M4MzVkNykpCgoqIGRhcnQyanMgY3Jhc2ggZml4OiBSZXNvbHZlcyBhIGNyYXNoIGluIHBrZy9q',
+ 'cyBhbmQgZGFydDJqcyAoU0RLIGlzc3VlIFsyNDk3NF0KKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0',
+ 'LWxhbmcvc2RrL2lzc3Vlcy8yNDk3NCkpCgoqIFB1YiBnZXQgY3Jhc2ggb24gQVJNOiBGaXhlcyBh',
+ 'IGNyYXNoIHRyaWdnZXJlZCB3aGVuIHJ1bm5pbmcgJ3B1YiBnZXQnIG9uIEFSTQogcHJvY2Vzc29y',
+ 'cyBzdWNoIGFzIHRob3NlIG9uIGEgUmFzcGJlcnJ5IFBpIChTREsgaXNzdWUgWzI0ODU1XQooaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI0ODU1KSkKCiMjIDEuMTMuMCAt',
+ 'IDIwMTUtMTEtMTgKCiMjIyBDb3JlIGxpYnJhcnkgY2hhbmdlcwoqIGBkYXJ0OmFzeW5jYAogICog',
+ 'YFN0cmVhbUNvbnRyb2xsZXJgIGFkZGVkIGdldHRlcnMgZm9yIGBvbkxpc3RlbmAsIGBvblBhdXNl',
+ 'YCwgYW5kIGBvblJlc3VtZWAKICAgIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgbmV3IGB0eXBlZGVm',
+ 'IHZvaWQgQ29udHJvbGxlckNhbGxiYWNrKClgLgogICogYFN0cmVhbUNvbnRyb2xsZXJgIGFkZGVk',
+ 'IGEgZ2V0dGVyIGZvciBgb25DYW5jZWxgIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKICAgIG5ldyBg',
+ 'dHlwZWRlZiBDb250cm9sbGVyQ2FuY2VsQ2FsbGJhY2soKWA7CiAgKiBgU3RyZWFtVHJhbnNmb3Jt',
+ 'ZXJgIGluc3RhbmNlcyBjcmVhdGVkIHdpdGggYGZyb21IYW5kbGVyc2Agd2l0aCBubwogICAgYGhh',
+ 'bmRsZUVycm9yYCBjYWxsYmFjayBub3cgZm9yd2FyZCBzdGFjayB0cmFjZXMgYWxvbmcgd2l0aCBl',
+ 'cnJvcnMgdG8gdGhlCiAgICByZXN1bHRpbmcgc3RyZWFtcy4KCiogYGRhcnQ6Y29udmVydGAKICAq',
+ 'IEFkZGVkIHN1cHBvcnQgZm9yIEJhc2UtNjQgZW5jb2RpbmcgYW5kIGRlY29kaW5nLgogICAgKiBB',
+ 'ZGRlZCBuZXcgY2xhc3NlcyBgQmFzZTY0Q29kZWNgLCBgQmFzZTY0RW5jb2RlcmAsIGFuZCBgQmFz',
+ 'ZTY0RGVjb2RlcmAuCiAgICAqIEFkZGVkIG5ldyB0b3AtbGV2ZWwgYGNvbnN0IEJhc2U2NENvZGVj',
+ 'IEJBU0U2NGAuCgoqIGBkYXJ0OmNvcmVgCiAgKiBgVXJpYCBhZGRlZCBgcmVtb3ZlRnJhZ21lbnRg',
+ 'IG1ldGhvZC4KICAqIGBTdHJpbmcuYWxsTWF0Y2hlc2AgKGltcGxlbWVudGluZyBgUGF0dGVybi5h',
+ 'bGxNYXRjaGVzYCkgaXMgbm93IGxhenksCiAgICBhcyBhbGwgYGFsbE1hdGNoZXNgIGltcGxlbWVu',
+ 'dGF0aW9ucyBhcmUgaW50ZW5kZWQgdG8gYmUuCiAgKiBgUmVzb3VyY2VgIGlzIGRlcHJlY2F0ZWQs',
+ 'IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KCiogYGRhcnQ6ZGV2ZWxv',
+ 'cGVyYAogICogQWRkZWQgYFRpbWVsaW5lYCBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBPYnNl',
+ 'cnZhdG9yeSdzIHRpbWVsaW5lIGZlYXR1cmUuCiAgKiBBZGRlZCBgU2VydmljZUV4dGVuc2lvbkhh',
+ 'bmRsZXJgLCBgU2VydmljZUV4dGVuc2lvblJlc3BvbnNlYCwgYW5kIGByZWdpc3RlckV4dGVuc2lv',
+ 'bmAgd2hpY2ggZW5hYmxlIGRldmVsb3BlcnMgdG8gcHJvdmlkZSB0aGVpciBvd24gVk0gc2Vydmlj',
+ 'ZSBwcm90b2NvbCBleHRlbnNpb25zLgoKKiBgZGFydDpodG1sYCwgYGRhcnQ6aW5kZXhlZF9kYmAs',
+ 'IGBkYXJ0OnN2Z2AsIGBkYXJ0OndlYl9hdWRpb2AsIGBkYXJ0OndlYl9nbGAsIGBkYXJ0OndlYl9z',
+ 'cWxgCiAgKiBUaGUgcmV0dXJuIHR5cGUgb2Ygc29tZSBBUElzIGNoYW5nZWQgZnJvbSBgZG91Ymxl',
+ 'YCB0byBgbnVtYC4gRGFydGl1bSBpcyBub3cKICAgIHVzaW5nCiAgICBKUyBpbnRlcm9wIGZvciBt',
+ 'b3N0IG9wZXJhdGlvbnMuIEpTIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gbnVtZXJpYwog',
+ 'ICAgdHlwZXMsIGFuZCB3aWxsIHJldHVybiBhIG51bWJlciBhcyBhbiBpbnQgaWYgaXQgZml0cyBp',
+ 'biBhbiBpbnQuIFRoaXMgd2lsbAogICAgbW9zdGx5IGNhdXNlIGFuIGVycm9yIGlmIHlvdSBhc3Np',
+ 'Z24gdG8gc29tZXRoaW5nIHR5cGVkIGBkb3VibGVgIGluCiAgICBjaGVja2VkIG1vZGUuIFlvdSBt',
+ 'YXkKICAgIG5lZWQgdG8gaW5zZXJ0IGEgYHRvRG91YmxlKClgIGNhbGwgb3IgYWNjZXB0IGBudW1g',
+ 'LiBFeGFtcGxlcyBvZiBBUElzIHRoYXQKICAgIGFyZSBhZmZlY3RlZCBpbmNsdWRlIGBFbGVtZW50',
+ 'LmdldEJvdW5kaW5nQ2xpZW50UmVjdGAgYW5kCiAgICBgVGV4dE1ldHJpY3Mud2lkdGhgLgoKKiBg',
+ 'ZGFydDppb2AKICAqICoqQnJlYWtpbmc6KiogU2VjdXJlIG5ldHdvcmtpbmcgaGFzIGNoYW5nZWQs',
+ 'IHJlcGxhY2luZyB0aGUgTlNTIGxpYnJhcnkKICAgIHdpdGggdGhlIEJvcmluZ1NTTCBsaWJyYXJ5',
+ 'LiBgU2VjdXJlU29ja2V0YCwgYFNlY3VyZVNlcnZlclNvY2tldGAsCiAgICBgUmF3U2VjdXJlU29j',
+ 'a2V0YCxgUmF3U2VjdXJlU2VydmVyU29ja2V0YCwgYEh0dHBDbGllbnRgLCBhbmQgYEh0dHBTZXJ2',
+ 'ZXJgCiAgICBub3cgYWxsIHVzZSBhIGBTZWN1cml0eUNvbnRleHRgIG9iamVjdCB3aGljaCBjb250',
+ 'YWlucyB0aGUgY2VydGlmaWNhdGVzCiAgICBhbmQga2V5cyB1c2VkIGZvciBzZWN1cmUgVExTIChT',
+ 'U0wpIG5ldHdvcmtpbmcuCgogICAgVGhpcyBpcyBhIGJyZWFraW5nIGNoYW5nZSBmb3Igc2VydmVy',
+ 'IGFwcGxpY2F0aW9ucyBhbmQgZm9yIHNvbWUgY2xpZW50CiAgICBhcHBsaWNhdGlvbnMuIENlcnRp',
+ 'ZmljYXRlcyBhbmQga2V5cyBhcmUgbG9hZGVkIGludG8gdGhlIGBTZWN1cml0eUNvbnRleHRgCiAg',
+ 'ICBmcm9tIFBFTSBmaWxlcywgaW5zdGVhZCBvZiBmcm9tIGFuIE5TUyBjZXJ0aWZpY2F0ZSBkYXRh',
+ 'YmFzZS4gSW5mb3JtYXRpb24KICAgIGFib3V0IGhvdyB0byBjaGFuZ2UgYXBwbGljYXRpb25zIHRo',
+ 'YXQgdXNlIHNlY3VyZSBuZXR3b3JraW5nIGlzIGF0CiAgICBodHRwczovL3d3dy5kYXJ0bGFuZy5v',
+ 'cmcvc2VydmVyL3Rscy1zc2wuaHRtbAoKICAqIGBIdHRwQ2xpZW50YCBubyBsb25nZXIgc2VuZHMg',
+ 'VVJJIGZyYWdtZW50cyBpbiB0aGUgcmVxdWVzdC4gVGhpcyBpcyBub3QKICAgIGFsbG93ZWQgYnkg',
+ ];
+}
+
+List<String> _h14(String s) {
+ return [
+ s,
+ 'dGhlIEhUVFAgcHJvdG9jb2wuCiAgICBUaGUgYEh0dHBTZXJ2ZXJgIHN0aWxsIGdyYWNlZnVsbHkg',
+ 'cmVjZWl2ZXMgZnJhZ21lbnRzLCBidXQgZGlzY2FyZHMgdGhlbQogICAgYmVmb3JlIGRlbGl2ZXJp',
+ 'bmcgdGhlIHJlcXVlc3QuCiAgKiBUbyBhbGxvdyBjb25uZWN0aW9ucyB0byBiZSBhY2NlcHRlZCBv',
+ 'biB0aGUgc2FtZSBwb3J0IGFjcm9zcyBkaWZmZXJlbnQKICAgIGlzb2xhdGVzLCBzZXQgdGhlIGBz',
+ 'aGFyZWRgIGFyZ3VtZW50IHRvIGB0cnVlYCB3aGVuIGNyZWF0aW5nIHNlcnZlciBzb2NrZXQKICAg',
+ 'IGFuZCBgSHR0cFNlcnZlcmAgaW5zdGFuY2VzLgogICAgKiBUaGUgZGVwcmVjYXRlZCBgU2VydmVy',
+ 'U29ja2V0UmVmZXJlbmNlYCBhbmQgYFJhd1NlcnZlclNvY2tldFJlZmVyZW5jZWAKICAgICAgY2xh',
+ 'c3NlcyBoYXZlIGJlZW4gcmVtb3ZlZC4KICAgICogVGhlIGNvcnJlc3BvbmRpbmcgYHJlZmVyZW5j',
+ 'ZWAgcHJvcGVydGllcyBvbiBgU2VydmVyU29ja2V0YCBhbmQKICAgICAgYFJhd1NlcnZlclNvY2tl',
+ 'dGAgaGF2ZSBiZWVuIHJlbW92ZWQuCgoqIGBkYXJ0Omlzb2xhdGVgCiAgKiBgc3Bhd25VcmlgIGFk',
+ 'ZGVkIGFuIGBlbnZpcm9ubWVudGAgbmFtZWQgYXJndW1lbnQuCgojIyMgVG9vbCBjaGFuZ2VzCgoq',
+ 'IGBkYXJ0MmpzYCBhbmQgRGFydGl1bSBub3cgc3VwcG9ydCBpbXByb3ZlZCBKYXZhc2NyaXB0IElu',
+ 'dGVyb3BlcmFiaWxpdHkgdmlhIHRoZQogIFtqcyBwYWNrYWdlXShodHRwczovL3B1Yi5kYXJ0bGFu',
+ 'Zy5vcmcvcGFja2FnZXMvanMpLgoKKiBgZG9jZ2VuYCBhbmQgYGRhcnRkb2NnZW5gIG5vIGxvbmdl',
+ 'ciBzaGlwIGluIHRoZSBTREsuIFRoZSBgZG9jZ2VuYCBzb3VyY2VzIGhhdmUKICAgYmVlbiByZW1v',
+ 'dmVkIGZyb20gdGhlIHJlcG9zaXRvcnkuCgoqIFRoaXMgaXMgdGhlIGxhc3QgcmVsZWFzZSB0byBz',
+ 'aGlwIHRoZSBWTSdzICJsZWdhY3kgZGVidWcgcHJvdG9jb2wiLgogIFdlIGludGVuZCB0byByZW1v',
+ 'dmUgdGhlIGxlZ2FjeSBkZWJ1ZyBwcm90b2NvbCBpbiBEYXJ0IFZNIDEuMTQuCgoqIFRoZSBWTSdz',
+ 'IFNlcnZpY2UgUHJvdG9jb2wgaGFzIGJlZW4gdXBkYXRlZCB0byB2ZXJzaW9uIDMuMCB0byB0YWtl',
+ 'IGNhcmUKICBvZiBhIG51bWJlciBvZiBpc3N1ZXMgdW5jb3ZlcmVkIGJ5IHRoZSBmaXJzdCBmZXcg',
+ 'bm9uLW9ic2VydmF0b3J5CiAgY2xpZW50cy4gIFRoaXMgaXMgYSBwb3RlbnRpYWxseSBicmVha2lu',
+ 'ZyBjaGFuZ2UgZm9yIGNsaWVudHMuCgoqIERhcnRpdW0gaGFzIGJlZW4gc3Vic3RhbnRpYWxseSBj',
+ 'aGFuZ2VkLiBSYXRoZXIgdGhhbiB1c2luZyBDKysgY2FsbHMgaW50bwogIENocm9taXVtIGludGVy',
+ 'bmFscyBmb3IgRE9NIG9wZXJhdGlvbnMgaXQgbm93IHVzZXMgSlMgaW50ZXJvcC4KICBUaGUgRE9N',
+ 'IG9iamVjdHMgaW4gYGRhcnQ6aHRtbGAgYW5kIHJlbGF0ZWQgbGlicmFyaWVzIG5vdyB3cmFwCiAg',
+ 'YSBKYXZhU2NyaXB0IG9iamVjdCBhbmQgZGVsZWdhdGUgb3BlcmF0aW9ucyB0byBpdC4gVGhpcyBz',
+ 'aG91bGQgYmUKICBtb3N0bHkgdHJhbnNwYXJlbnQgdG8gdXNlcnMuIEhvd2V2ZXIsIHBlcmZvcm1h',
+ 'bmNlIGFuZCBtZW1vcnkgY2hhcmFjdGVyaXN0aWNzCiAgbWF5IGJlIGRpZmZlcmVudCBmcm9tIHBy',
+ 'ZXZpb3VzIHZlcnNpb25zLiBUaGVyZSBtYXkgYmUgc29tZSBjaGFuZ2VzIGluIHdoaWNoCiAgRE9N',
+ 'IG9iamVjdHMgYXJlIHdyYXBwZWQgYXMgRGFydCBvYmplY3RzLiBGb3IgZXhhbXBsZSwgaWYgeW91',
+ 'IGdldCBhIHJlZmVyZW5jZQogIHRvIGEgV2luZG93IG9iamVjdCwgZXZlbiB0aHJvdWdoIEpTIGlu',
+ 'dGVyb3AsIHlvdSB3aWxsIGFsd2F5cyBzZWUgaXQgYXMgYQogIERhcnQgV2luZG93LCBldmVuIHdo',
+ 'ZW4gdXNlZCBjcm9zcy1mcmFtZS4gV2UgZXhwZWN0IHRoZSBjaGFuZ2UgdG8gdXNpbmcKICBKUyBp',
+ 'bnRlcm9wIHdpbGwgbWFrZSBpdCBtdWNoIHNpbXBsZXIgdG8gdXBkYXRlIHRvIG5ldyBDaHJvbWUg',
+ 'dmVyc2lvbnMuCgojIyAxLjEyLjIgLSAyMDE1LTEwLTIxCgojIyMgQ29yZSBsaWJyYXJ5IGNoYW5n',
+ 'ZXMKCiogYGRhcnQ6aW9gCgogICogQSBtZW1vcnkgbGVhayBpbiBjcmVhdGlvbiBvZiBQcm9jZXNz',
+ 'IG9iamVjdHMgaXMgZml4ZWQuCgojIyAxLjEyLjEgLSAyMDE1LTA5LTA4CgojIyMgVG9vbCBjaGFu',
+ 'Z2VzCgoqIFB1YgoKICAqIFB1YiB3aWxsIG5vdyByZXNwZWN0IGAuZ2l0aWdub3JlYCB3aGVuIHZh',
+ 'bGlkYXRpbmcgYSBwYWNrYWdlIGJlZm9yZSBpdCdzCiAgICBwdWJsaXNoZWQuIEZvciBleGFtcGxl',
+ 'LCBpZiBhIGBMSUNFTlNFYCBmaWxlIGV4aXN0cyBidXQgaXMgaWdub3JlZCwgdGhhdCBpcwogICAg',
+ 'bm93IGFuIGVycm9yLgoKICAqIElmIHRoZSBwYWNrYWdlIGlzIGluIGEgc3ViZGlyZWN0b3J5IG9m',
+ 'IGEgR2l0IHJlcG9zaXRvcnkgYW5kIHRoZSBlbnRpcmUKICAgIHN1YmRpcmVjdG9yeSBpcyBpZ25v',
+ 'cmVkIHdpdGggYC5naXRpZ25vcmVgLCBwdWIgd2lsbCBhY3QgYXMgdGhvdWdoIG5vdGhpbmcKICAg',
+ 'IHdhcyBpZ25vcmVkIGluc3RlYWQgb2YgdXBsb2FkaW5nIGFuIGVtcHR5IHBhY2thZ2UuCgogICog',
+ 'VGhlIGhldXJpc3RpY3MgZm9yIGRldGVybWluaW5nIHdoZW4gYHB1YiBnZXRgIG5lZWRzIHRvIGJl',
+ 'IHJ1biBiZWZvcmUgdmFyaW91cwogICAgY29tbWFuZHMgaGF2ZSBiZWVuIGltcHJvdmVkLiBUaGVy',
+ 'ZSBzaG91bGQgbm8gbG9uZ2VyIGJlIGZhbHNlIHBvc2l0aXZlcyB3aGVuCiAgICBub24tZGVwZW5k',
+ 'ZW5jeSBzZWN0aW9ucyBvZiB0aGUgcHVic3BlYyBoYXZlIGJlZW4gbW9kaWZpZWQuCgojIyAxLjEy',
+ 'LjAgLSAyMDE1LTA4LTMxCgojIyMgTGFuZ3VhZ2UgY2hhbmdlcwoKKiBOdWxsLWF3YXJlIG9wZXJh',
+ 'dG9ycwogICAgKiBgPz9gOiBpZiBudWxsIG9wZXJhdG9yLiBgZXhwcjEgPz8gZXhwcjJgIGV2YWx1',
+ 'YXRlcyB0byBgZXhwcjFgIGlmCiAgICAgIG5vdCBgbnVsbGAsIG90aGVyd2lzZSBgZXhwcjJgLgog',
+ 'ICAgKiBgPz89YDogbnVsbC1hd2FyZSBhc3NpZ25tZW50LiBgdiA/Pz0gZXhwcmAgY2F1c2VzIGB2',
+ 'YCB0byBiZSBhc3NpZ25lZAogICAgICBgZXhwcmAgb25seSBpZiBgdmAgaXMgYG51bGxgLgogICAg',
+ 'KiBgeD8ucGA6IG51bGwtYXdhcmUgYWNjZXNzLiBgeD8ucGAgZXZhbHVhdGVzIHRvIGB4LnBgIGlm',
+ 'IGB4YCBpcyBub3QKICAgICAgYG51bGxgLCBvdGhlcndpc2UgZXZhbHVhdGVzIHRvIGBudWxsYC4K',
+ 'ICAgICogYHg/Lm0oKWA6IG51bGwtYXdhcmUgbWV0aG9kIGludm9jYXRpb24uIGB4Py5tKClgIGlu',
+ 'dm9rZXMgYG1gIG9ubHkKICAgICAgaWYgYHhgIGlzIG5vdCBgbnVsbGAuCgojIyMgQ29yZSBsaWJy',
+ 'YXJ5IGNoYW5nZXMKCiogYGRhcnQ6YXN5bmNgCiAgKiBgU3RyZWFtQ29udHJvbGxlcmAgYWRkZWQg',
+ 'c2V0dGVycyBmb3IgdGhlIGBvbkxpc3RlbmAsIGBvblBhdXNlYCwgYG9uUmVzdW1lYAogICAgYW5k',
+ 'IGBvbkNhbmNlbGAgY2FsbGJhY2tzLgoKKiBgZGFydDpjb252ZXJ0YAogICogYExpbmVTcGxpdHRl',
+ 'cmAgYWRkZWQgYSBgc3BsaXRgIHN0YXRpYyBtZXRob2QgcmV0dXJuaW5nIGFuIGBJdGVyYWJsZWAu',
+ 'CgoqIGBkYXJ0OmNvcmVgCiAgKiBgVXJpYCBjbGFzcyBub3cgcGVyZm9ybSBwYXRoIG5vcm1hbGl6',
+ 'YXRpb24gd2hlbiBhIFVSSSBpcyBjcmVhdGVkLgogICAgVGhpcyByZW1vdmVzIG1vc3QgYC4uYCBh',
+ 'bmQgYC5gIHNlcXVlbmNlcyBmcm9tIHRoZSBVUkkgcGF0aC4KICAgIFB1cmVseSByZWxhdGl2ZSBw',
+ 'YXRocyAobm8gc2NoZW1lIG9yIGF1dGhvcml0eSkgYXJlIGFsbG93ZWQgdG8gcmV0YWluCiAgICBz',
+ 'b21lIGxlYWRpbmcgImRvdCIgc2VnbWVudHMuCiAgICBBbHNvIGFkZGVkIGBoYXNBYnNvbHV0ZVBh',
+ 'dGhgLCBgaGFzRW1wdHlQYXRoYCwgYW5kIGBoYXNTY2hlbWVgIHByb3BlcnRpZXMuCgoqIGBkYXJ0',
+ 'OmRldmVsb3BlcmAKICAqIE5ldyBgbG9nYCBmdW5jdGlvbiB0byB0cmFuc21pdCBsb2dnaW5nIGV2',
+ 'ZW50cyB0byBPYnNlcnZhdG9yeS4KCiogYGRhcnQ6aHRtbGAKICAqIGBOb2RlVHJlZVNhbml0aXpl',
+ 'cmAgYWRkZWQgdGhlIGBjb25zdCB0cnVzdGVkYCBmaWVsZC4gSXQgY2FuIGJlIHVzZWQKICAgIGlu',
+ 'c3RlYWQgb2YgZGVmaW5pbmcgYSBgTnVsbFRyZWVTYW5pdGl6ZXJgIGNsYXNzIHdoZW4gY2FsbGlu',
+ 'ZwogICAgYHNldElubmVySHRtbGAgb3Igb3RoZXIgbWV0aG9kcyB0aGF0IGNyZWF0ZSBET00gZnJv',
+ 'bSB0ZXh0LiBJdCBpcwogICAgYWxzbyBtb3JlIGVmZmljaWVudCwgc2tpcHBpbmcgdGhlIGNyZWF0',
+ 'aW9uIG9mIGEgYERvY3VtZW50RnJhZ21lbnRgLgoKKiBgZGFydDppb2AKICAqIEFkZGVkIHR3byBu',
+ 'ZXcgZmlsZSBtb2RlcywgYFdSSVRFX09OTFlgIGFuZCBgV1JJVEVfT05MWV9BUFBFTkRgIGZvcgog',
+ 'ICAgb3BlbmluZyBhIGZpbGUgd3JpdGUgb25seS4KICAgIFtlYWVlY2YyXShodHRwczovL2dpdGh1',
+ 'Yi5jb20vZGFydC1sYW5nL3Nkay9jb21taXQvZWFlZWNmMmVkMTNiYTZjN2ZiZmQ2NTNjM2M1OTI5',
+ 'NzRhNzEyMDk2MCkKICAqIENoYW5nZSBzdGRvdXQvc3RkZXJyIHRvIGJpbmFyeSBtb2RlIG9uIFdp',
+ 'bmRvd3MuCiAgICBbNDIwNWIyOV0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvY29t',
+ 'bWl0LzQyMDViMjk5N2UwMWYyY2VhOGUyZjQ0YzZmNDZlZDYyNTlhYjcyNzcpCgoqIGBkYXJ0Omlz',
+ 'b2xhdGVgCiAgKiBBZGRlZCBgb25FcnJvcmAsIGBvbkV4aXRgIGFuZCBgZXJyb3JzQXJlRmF0YWxg',
+ 'IHBhcmFtZXRlcnMgdG8KICAgIGBJc29sYXRlLnNwYXduVXJpYC4KCiogYGRhcnQ6bWlycm9yc2AK',
+ 'ICAqIGBJbnN0YW5jZU1pcnJvci5kZWxlZ2F0ZWAgbW92ZWQgdXAgdG8gYE9iamVjdE1pcnJvcmAu',
+ 'CiAgKiBGaXggSW5zdGFuY2VNaXJyb3IuZ2V0RmllbGQgb3B0aW1pemF0aW9uIHdoZW4gdGhlIHNl',
+ 'bGVjdG9yIGlzIGFuIG9wZXJhdG9yLgogICogRml4IHJlZmxlY3RpdmUgTm9TdWNoTWV0aG9kRXJy',
+ 'b3JzIHRvIG1hdGNoIHRoZWlyIG5vbi1yZWZsZWN0aXZlCiAgICBjb3VudGVycGFydHMgd2hlbiBk',
+ 'dWUgdG8gYXJndW1lbnQgbWlzbWF0Y2hlcy4gKFZNIG9ubHkpCgojIyMgVG9vbCBjaGFuZ2VzCgoq',
+ 'IERvY3VtZW50YXRpb24gdG9vbHMKCiAgKiBgZGFydGRvY2AgaXMgbm93IHRoZSBkZWZhdWx0IHRv',
+ 'b2wgdG8gZ2VuZXJhdGUgc3RhdGljIEhUTUwgZm9yIEFQSSBkb2NzLgogICAgW0xlYXJuIG1vcmVd',
+ 'KGh0dHBzOi8vcHViLmRhcnRsYW5nLm9yZy9wYWNrYWdlcy9kYXJ0ZG9jKS4KCiAgKiBgZG9jZ2Vu',
+ 'YCBhbmQgYGRhcnRkb2NnZW5gIGhhdmUgYmVlbiBkZXByZWNhdGVkLiBDdXJyZW50bHkgcGxhbiBp',
+ 'cyB0byByZW1vdmUKICAgIHRoZW0gaW4gMS4xMy4KCiogRm9ybWF0dGVyIChgZGFydGZtdGApCgog',
+ 'ICogT3ZlciA1MCBidWdzIGZpeGVkLgoKICAqIE9wdGltaXplZCBsaW5lIHNwbGl0dGVyIGlzIG11',
+ 'Y2ggZmFzdGVyIGFuZCBwcm9kdWNlcyBiZXR0ZXIgb3V0cHV0IG9uCiAgICBjb21wbGV4IGNvZGUu',
+ 'CgoqIE9ic2VydmF0b3J5CiAgKiBBbGxvY2F0aW9uIHByb2ZpbGluZy4KCiAgKiBOZXcgZmVhdHVy',
+ 'ZSB0byBkaXNwbGF5IG91dHB1dCBmcm9tIGxvZ2dpbmcuCgogICogSGVhcCBzbmFwc2hvdCBhbmFs',
+ 'eXNpcyB3b3JrcyBmb3IgNjQtYml0IFZNcy4KCiAgKiBJbXByb3ZlZCBhYmlsaXR5IHRvIGluc3Bl',
+ 'Y3QgdHlwZWQgZGF0YSwgcmVnZXggYW5kIGNvbXBpbGVkIGNvZGUuCgogICogQWJpbGl0eSB0byBi',
+ 'cmVhayBvbiBhbGwgb3IgdW5jYXVnaHQgZXhjZXB0aW9ucyBmcm9tIE9ic2VydmF0b3J5J3MgZGVi',
+ 'dWdnZXIuCgogICogQWJpbGl0eSB0byBzZXQgY2xvc3VyZS1zcGVjaWZpYyBicmVha3BvaW50cy4K',
+ ];
+}
+
+List<String> _h15(String s) {
+ return [
+ s,
+ 'CiAgKiAnYW5leHQnIC0gc3RlcCBwYXN0IGF3YWl0L3lpZWxkLgoKICAqIFByZXNlcnZlIHdoZW4g',
+ 'YSB2YXJpYWJsZSBoYXMgYmVlbiBleHBhbmRlZC91bmV4cGFuZGVkIGluIHRoZSBkZWJ1Z2dlci4K',
+ 'CiAgKiBLZWVwIGZvY3VzIG9uIGRlYnVnZ2VyIGlucHV0IGJveCB3aGVuZXZlciBwb3NzaWJsZS4K',
+ 'CiAgKiBFY2hvIHN0ZG91dC9zdGRlcnIgaW4gdGhlIE9ic2VydmF0b3J5IGRlYnVnZ2VyLiAgU3Rh',
+ 'bmRhbG9uZS1vbmx5IHNvIGZhci4KCiAgKiBNaW5vciBmaXhlcyB0byBzZXJ2aWNlIHByb3RvY29s',
+ 'IGRvY3VtZW50YXRpb24uCgoqIFB1YgoKICAqICoqQnJlYWtpbmc6KiogdmFyaW91cyBjb21tYW5k',
+ 'cyB0aGF0IHByZXZpb3VzbHkgcmFuIGBwdWIgZ2V0YCBpbXBsaWNpdGx5IG5vCiAgICBsb25nZXIg',
+ 'ZG8gc28uIEluc3RlYWQsIHRoZXkgbWVyZWx5IGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgIi5wYWNr',
+ 'YWdlcyIgZmlsZQogICAgaXMgbmV3ZXIgdGhhbiB0aGUgcHVic3BlYyBhbmQgdGhlIGxvY2sgZmls',
+ 'ZSwgYW5kIGZhaWwgaWYgaXQncyBub3QuCgogICogQWRkZWQgc3VwcG9ydCBmb3IgYC0tdmVyYm9z',
+ 'aXR5PWVycm9yYCBhbmQgYC0tdmVyYm9zaXR5PXdhcm5pbmdgLgoKICAqIGBwdWIgc2VydmVgIG5v',
+ 'dyBjb2xsYXBzZXMgbXVsdGlwbGUgR0VUIHJlcXVlc3RzIGludG8gYSBzaW5nbGUgbGluZSBvZgog',
+ 'ICAgb3V0cHV0LiBGb3IgZnVsbCBvdXRwdXQsIHVzZSBgLS12ZXJib3NlYC4KCiAgKiBgcHViIGRl',
+ 'cHNgIGhhcyBpbXByb3ZlZCBmb3JtYXR0aW5nIGZvciBjaXJjdWxhciBkZXBlbmRlbmNpZXMgb24g',
+ 'dGhlCiAgICBlbnRyeXBvaW50IHBhY2thZ2UuCgogICogYHB1YiBydW5gIGFuZCBgcHViIGdsb2Jh',
+ 'bCBydW5gCgogICAgKiAqKkJyZWFraW5nOioqIHRvIG1hdGNoIHRoZSBiZWhhdmlvciBvZiB0aGUg',
+ 'RGFydCBWTSwgZXhlY3V0YWJsZXMgbm8gbG9uZ2VyCiAgICAgIHJ1biBpbiBjaGVja2VkIG1vZGUg',
+ 'YnkgZGVmYXVsdC4gQSBgLS1jaGVja2VkYCBmbGFnIGhhcyBiZWVuIGFkZGVkIHRvIHJ1bgogICAg',
+ 'ICB0aGVtIGluIGNoZWNrZWQgbW9kZSBtYW51YWxseS4KCiAgICAqIEZhc3RlciBzdGFydCB0aW1l',
+ 'IGZvciBleGVjdXRhYmxlcyB0aGF0IGRvbid0IGltcG9ydCB0cmFuc2Zvcm1lZCBjb2RlLgoKICAg',
+ 'ICogQmluc3R1YnMgZm9yIGdsb2JhbGx5LWFjdGl2YXRlZCBleGVjdXRhYmxlcyBhcmUgbm93IHdy',
+ 'aXR0ZW4gaW4gdGhlIHN5c3RlbQogICAgICBlbmNvZGluZywgcmF0aGVyIHRoYW4gYWx3YXlzIGlu',
+ 'IGBVVEYtOGAuIFRvIHVwZGF0ZSBleGlzdGluZyBleGVjdXRhYmxlcywKICAgICAgcnVuIGBwdWIg',
+ 'Y2FjaGUgcmVwYWlyYC4KCiAgKiBgcHViIGdldGAgYW5kIGBwdWIgdXBncmFkZWAKCiAgICAqIFB1',
+ 'YiB3aWxsIG5vdyBnZW5lcmF0ZSBhICIucGFja2FnZXMiIGZpbGUgaW4gYWRkaXRpb24gdG8gdGhl',
+ 'ICJwYWNrYWdlcyIKICAgICAgZGlyZWN0b3J5IHdoZW4gcnVubmluZyBgcHViIGdldGAgb3Igc2lt',
+ 'aWxhciBvcGVyYXRpb25zLCBwZXIgdGhlCiAgICAgIFtwYWNrYWdlIHNwZWMgcHJvcG9zYWxdW10u',
+ 'IFB1YiBub3cgaGFzIGEgYC0tbm8tcGFja2FnZS1zeW1saW5rc2AgZmxhZyB0aGF0CiAgICAgIHdp',
+ 'bGwgc3RvcCAicGFja2FnZXMiIGRpcmVjdG9yaWVzIGZyb20gYmVpbmcgZ2VuZXJhdGVkIGF0IGFs',
+ 'bC4KCiAgICAqIEFuIGlzc3VlIHdoZXJlIEhUVFAgcmVxdWVzdHMgd2VyZSBzb21ldGltZXMgbWFk',
+ 'ZSBldmVuIHRob3VnaCBgLS1vZmZsaW5lYAogICAgICB3YXMgcGFzc2VkIGhhcyBiZWVuIGZpeGVk',
+ 'LgoKICAgICogQSBidWcgd2l0aCBgLS1vZmZsaW5lYCB0aGF0IGNhdXNlZCBhbiB1bmhlbHBmdWwg',
+ 'ZXJyb3IgbWVzc2FnZSBoYXMgYmVlbgogICAgICBmaXhlZC4KCiAgICAqIFB1YiB3aWxsIG5vIGxv',
+ 'bmdlciB0aW1lIG91dCB3aGVuIGEgcGFja2FnZSB0YWtlcyBhIGxvbmcgdGltZSB0byBkb3dubG9h',
+ 'ZC4KCiAgKiBgcHViIHB1Ymxpc2hgCgogICAgKiBQdWIgd2lsbCBlbWl0IGEgbm9uLXplcm8gZXhp',
+ 'dCBjb2RlIHdoZW4gaXQgZmluZHMgYSB2aW9sYXRpb24gd2hpbGUKICAgICAgcHVibGlzaGluZy4K',
+ 'CiAgICAqIGAuZ2l0aWdub3JlYCBmaWxlcyB3aWxsIGJlIHJlc3BlY3RlZCBldmVuIGlmIHRoZSBw',
+ 'YWNrYWdlIGlzbid0IGF0IHRoZSB0b3AKICAgICAgbGV2ZWwgb2YgdGhlIEdpdCByZXBvc2l0b3J5',
+ 'LgoKICAqIEJhcmJhY2sgaW50ZWdyYXRpb24KCiAgICAqIEEgY3Jhc2hpbmcgYnVnIGludm9sdmlu',
+ 'ZyB0cmFuc2Zvcm1lcnMgdGhhdCBvbmx5IGFwcGx5IHRvIG5vbi1wdWJsaWMgY29kZQogICAgICBo',
+ 'YXMgYmVlbiBmaXhlZC4KCiAgICAqIEEgZGVhZGxvY2sgY2F1c2VkIGJ5IGRlY2xhcmluZyB0cmFu',
+ 'c2Zvcm1lciBmb2xsb3dlZCBieSBhIGxhenkgdHJhbnNmb3JtZXIKICAgICAgKHN1Y2ggYXMgdGhl',
+ 'IGJ1aWx0LWluIGAkZGFydDJqc2AgdHJhbnNmb3JtZXIpIGhhcyBiZWVuIGZpeGVkLgoKICAgICog',
+ 'QSBzdGFjayBvdmVyZmxvdyBjYXVzZWQgYnkgYSB0cmFuc2Zvcm1lciBiZWluZyBydW4gbXVsdGlw',
+ 'bGUgdGltZXMgb24gdGhlCiAgICAgIHBhY2thZ2UgdGhhdCBkZWZpbmVzIGl0IGhhcyBiZWVuIGZp',
+ 'eGVkLgoKICAgICogQSB0cmFuc2Zvcm1lciB0aGF0IHRyaWVzIHRvIHJlYWQgYSBub24tZXhpc3Rl',
+ 'bnQgYXNzZXQgaW4gYW5vdGhlciBwYWNrYWdlCiAgICAgIHdpbGwgbm93IGJlIHJlLXJ1biBpZiB0',
+ 'aGF0IGFzc2V0IGlzIGxhdGVyIGNyZWF0ZWQuCgpbcGFja2FnZSBzcGVjIHByb3Bvc2FsXTogaHR0',
+ 'cHM6Ly9naXRodWIuY29tL2xyaG4vZGVwLXBrZ3NwZWMKCiMjIyBWTSBTZXJ2aWNlIFByb3RvY29s',
+ 'IENoYW5nZXMKCiogKipCUkVBS0lORyoqIFRoZSBzZXJ2aWNlIHByb3RvY29sIG5vdyBzZW5kcyBK',
+ 'U09OLVJQQyAyLjAtY29tcGF0aWJsZQogIHNlcnZlci10by1jbGllbnQgZXZlbnRzLiBUbyByZWZs',
+ 'ZWN0IHRoaXMsIHRoZSBzZXJ2aWNlIHByb3RvY29sIHZlcnNpb24gaXMKICBub3cgMi4wLgoKKiBU',
+ 'aGUgc2VydmljZSBwcm90b2NvbCBub3cgaW5jbHVkZXMgYSBgImpzb25ycGMiYCBwcm9wZXJ0eSBp',
+ 'biBpdHMgcmVzcG9uc2VzLCBhcwogIG9wcG9zZWQgdG8gYCJqc29uLXJwYyJgLgoKKiBUaGUgc2Vy',
+ 'dmljZSBwcm90b2NvbCBub3cgcHJvcGVybHkgaGFuZGxlcyByZXF1ZXN0cyB3aXRoIG5vbi1zdHJp',
+ 'bmcgaWRzLgogIE51bWVyaWMgaWRzIGFyZSBubyBsb25nZXIgY29udmVydGVkIHRvIHN0cmluZ3Ms',
+ 'IGFuZCBudWxsIGlkcyBub3cgZG9uJ3QgcHJvZHVjZQogIGEgcmVzcG9uc2UuCgoqIFNvbWUgUlBD',
+ 'cyB0aGF0IGRpZG4ndCBpbmNsdWRlIGEgYCJqc29ucnBjImAgcHJvcGVydHkgaW4gdGhlaXIgcmVz',
+ 'cG9uc2VzIG5vdwogIGluY2x1ZGUgb25lLgoKIyMgMS4xMS4yIC0gMjAxNS0wOC0wMwoKIyMjIENv',
+ 'cmUgbGlicmFyeSBjaGFuZ2VzCgoqIEZpeCBhIGJ1ZyB3aGVyZSBgV2ViU29ja2V0LmNsb3NlKClg',
+ 'IHdvdWxkIGNyYXNoIGlmIGNhbGxlZCBhZnRlcgogIGBXZWJTb2NrZXQuY2FuY2VsKClgLgoKIyMg',
+ 'MS4xMS4xIC0gMjAxNS0wNy0wMgoKIyMjIFRvb2wgY2hhbmdlcwoKKiBQdWIgd2lsbCBhbHdheXMg',
+ 'bG9hZCBEYXJ0IFNESyBhc3NldHMgZnJvbSB0aGUgU0RLIHdob3NlIGBwdWJgIGV4ZWN1dGFibGUg',
+ 'd2FzCiAgcnVuLCBldmVuIGlmIGEgYERBUlRfU0RLYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBz',
+ 'ZXQuCgojIyAxLjExLjAgLSAyMDE1LTA2LTI1CgojIyMgQ29yZSBsaWJyYXJ5IGNoYW5nZXMKCiog',
+ 'YGRhcnQ6Y29yZWAKICAqIGBJdGVyYWJsZWAgYWRkZWQgYW4gYGVtcHR5YCBjb25zdHJ1Y3Rvci4K',
+ 'ICAgIFtkY2YwMjg2XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9jb21taXQvZGNm',
+ 'MDI4NmY1Mzg1MTg3YTY4Y2U5ZTY2MzE4ZDNiZjE5YWJmNDU0YikKICAqIGBJdGVyYWJsZWAgY2Fu',
+ 'IG5vdyBiZSBleHRlbmRlZCBkaXJlY3RseS4gQW4gYWx0ZXJuYXRpdmUgdG8gZXh0ZW5kaW5nCiAg',
+ 'ICBgSXRlcmFibGVCYXNlYCBmcm9tIGBkYXJ0OmNvbGxlY3Rpb25gLgogICogYExpc3RgIGFkZGVk',
+ 'IGFuIGB1bm1vZGlmaWFibGVgIGNvbnN0cnVjdG9yLgogICAgW3I0NTMzNF0oaHR0cHM6Ly9jb2Rl',
+ 'Lmdvb2dsZS5jb20vcC9kYXJ0L3NvdXJjZS9kZXRhaWw/cj00NTMzNCkKICAqIGBNYXBgIGFkZGVk',
+ 'IGFuIGB1bm1vZGlmaWFibGVgIGNvbnN0cnVjdG9yLgogICAgW3I0NTczM10oaHR0cHM6Ly9jb2Rl',
+ 'Lmdvb2dsZS5jb20vcC9kYXJ0L3NvdXJjZS9kZXRhaWw/cj00NTczMykKICAqIGBpbnRgIGFkZGVk',
+ 'IGEgYGdjZGAgbWV0aG9kLgogICAgW2ExOTJlZjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxh',
+ 'bmcvc2RrL2NvbW1pdC9hMTkyZWY0YWNiOTVmYWQxYWFkMTg4N2Y1OWVlZDA3MWViNWU4MjAxKQog',
+ 'ICogYGludGAgYWRkZWQgYSBgbW9kSW52ZXJzZWAgbWV0aG9kLgogICAgW2Y2ZjMzOGNdKGh0dHBz',
+ 'Oi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2NvbW1pdC9mNmYzMzhjZTY3ZWI4ODAxYjM1MDQx',
+ 'N2JhYWNmNmQzNjgxYjI2MDAyKQogICogYFN0YWNrVHJhY2VgIGFkZGVkIGEgYGZyb21TdHJpbmdg',
+ 'IGNvbnN0cnVjdG9yLgogICAgWzY4ZGQ2ZjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcv',
+ 'c2RrL2NvbW1pdC82OGRkNmY2MzM4ZTYzZDA0NjUwNDFkNjYyZTc3ODM2OWMwMmMyY2U2KQogICog',
+ 'YFVyaWAgYWRkZWQgYSBgZGlyZWN0b3J5YCBjb25zdHJ1Y3Rvci4KICAgIFtkOGRiYjRhXShodHRw',
+ 'czovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9jb21taXQvZDhkYmI0YTYwZjVlOGE3Zjg3NGMy',
+ 'YTRmYmY1OWVhZjFhMzlmNDc3NikKICAqIExpc3QgaXRlcmF0b3JzIG1heSBub3QgdGhyb3cgYENv',
+ 'bmN1cnJlbnRNb2RpZmljYXRpb25FcnJvcmAgYXMgZWFnZXJseSBpbgogICAgcmVsZWFzZSBtb2Rl',
+ 'LiBJbiBjaGVja2VkIG1vZGUsIHRoZSBtb2RpZmljYXRpb24gY2hlY2sgaXMgc3RpbGwgYXMgZWFn',
+ 'ZXIKICAgIGFzIHBvc3NpYmxlLgogICAgW3I0NTE5OF0oaHR0cHM6Ly9naXRodWIuY29tL2RhcnQt',
+ 'bGFuZy9zZGsvY29tbWl0LzVhNzljMDMpCgoqIGBkYXJ0OmRldmVsb3BlcmAgLSAqKk5FVyoqCiAg',
+ 'KiBSZXBsYWNlcyB0aGUgZGVwcmVjYXRlZCBgZGFydDpwcm9maWxlcmAgbGlicmFyeS4KICAqIEFk',
+ 'ZHMgbmV3IGZ1bmN0aW9ucyBgZGVidWdnZXJgIGFuZCBgaW5zcGVjdGAuCiAgICBbNmU0MmFlY10o',
+ 'aHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvYmxvYi82ZTQyYWVjNGY2NGNmMzU2ZGRl',
+ 'N2JhZDk0MjZlMDdlMGVhNWI1OGQ1L3Nkay9saWIvZGV2ZWxvcGVyL2RldmVsb3Blci5kYXJ0KQoK',
+ 'KiBgZGFydDppb2AKICAqIGBGaWxlU3lzdGVtRW50aXR5YCBhZGRlZCBhIGB1cmlgIHByb3BlcnR5',
+ 'LgogICAgWzhjZjMyZGNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2NvbW1pdC84',
+ 'Y2YzMmRjMWExNjY0YjUxNmU1N2Y4MDQ1MjRlNDZlNTVmYWU4OGIyKQogICogYFBsYXRmb3JtYCBh',
+ 'ZGRlZCBhIGBzdGF0aWMgcmVzb2x2ZWRFeGVjdXRhYmxlYCBwcm9wZXJ0eS4KICAgIFtjMDVjOGM2',
+ 'XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9jb21taXQvYzA1YzhjNjYwNjlkYjkx',
+ 'Y2MyZmQ0ODY5MWRmYzQwNmM4MThkNDExZCkKCiogYGRhcnQ6aHRtbGAKICAqIGBFbGVtZW50YCBt',
+ 'ZXRob2RzLCBgYXBwZW5kSHRtbGAgYW5kIGBpbnNlcnRBZGphY2VudEh0bWxgIG5vdyB0YWtlIGBu',
+ 'b2RlVmFsaWRhdG9yYAogICAgYW5kIGB0cmVlU2FuaXRpemVyYCBwYXJhbWV0ZXJzLCBhbmQgdGhl',
+ ];
+}
diff --git a/benchmarks/StringPool/dart2/StringPool.dart b/benchmarks/StringPool/dart2/StringPool.dart
new file mode 100644
index 0000000..6ada6a4
--- /dev/null
+++ b/benchmarks/StringPool/dart2/StringPool.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart=2.7
+
+import '../dart/StringPool.dart' as primary;
+
+void main() {
+ primary.main();
+}
diff --git a/benchmarks/StringPool/dart2/StringPool100.dart b/benchmarks/StringPool/dart2/StringPool100.dart
new file mode 100644
index 0000000..471de66
--- /dev/null
+++ b/benchmarks/StringPool/dart2/StringPool100.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart=2.7
+
+import '../dart/StringPool100.dart' as primary;
+
+void main() {
+ primary.main();
+}
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 5291a9c..c53d050 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -81,7 +81,7 @@
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
class AnalysisDriver implements AnalysisDriverGeneric {
/// The version of data format, should be incremented on every format change.
- static const int DATA_VERSION = 141;
+ static const int DATA_VERSION = 143;
/// The length of the list returned by [_computeDeclaredVariablesSignature].
static const int _declaredVariablesSignatureLength = 4;
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index ea7e858..684e4a1 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -763,6 +763,10 @@
return root;
}
+ void detachFromParent() {
+ _parent = null;
+ }
+
@override
Token? findPrevious(Token target) =>
util.findPrevious(beginToken, target) ?? parent?.findPrevious(target);
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index ef9cf58..5fab869 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -575,7 +575,7 @@
typeArguments,
arguments,
);
- _readExpressionResolution(node);
+ _readInvocationExpression(node);
return node;
}
@@ -748,8 +748,8 @@
}
void _readInvocationExpression(InvocationExpressionImpl node) {
- // TODO(scheglov) typeArgumentTypes and staticInvokeType?
- node.typeArgumentTypes = [];
+ node.staticInvokeType = _reader.readType();
+ node.typeArgumentTypes = _reader.readOptionalTypeList();
_readExpressionResolution(node);
}
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
index 998c88d..7ae8243 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
@@ -790,8 +790,9 @@
void _storeInvocationExpression(InvocationExpression node) {
_writeOptionalNode(node.typeArguments);
_writeNode(node.argumentList);
+ _sink.writeType(node.staticInvokeType);
+ _sink.writeOptionalTypeList(node.typeArgumentTypes);
_storeExpression(node);
- // TODO(scheglov) typeArgumentTypes and staticInvokeType?
}
void _storeNormalFormalParameter(
diff --git a/pkg/analyzer/lib/src/summary2/bundle_reader.dart b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
index 8c58caf..97889ac 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
@@ -1343,6 +1343,12 @@
throw UnimplementedError('memberFlags: $memberFlags');
}
+ List<DartType>? readOptionalTypeList() {
+ if (_reader.readBool()) {
+ return _readTypeList();
+ }
+ }
+
DartType readRequiredType() {
return readType()!;
}
diff --git a/pkg/analyzer/lib/src/summary2/bundle_writer.dart b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
index cb038b5..c0ef2bd 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
@@ -547,6 +547,15 @@
}
}
+ void writeOptionalTypeList(List<DartType>? types) {
+ if (types != null) {
+ writeBool(true);
+ _writeTypeList(types);
+ } else {
+ writeBool(false);
+ }
+ }
+
void writeType(DartType? type) {
if (type == null) {
writeByte(Tag.NullType);
diff --git a/pkg/analyzer/lib/src/summary2/detach_nodes.dart b/pkg/analyzer/lib/src/summary2/detach_nodes.dart
new file mode 100644
index 0000000..b4c5697
--- /dev/null
+++ b/pkg/analyzer/lib/src/summary2/detach_nodes.dart
@@ -0,0 +1,79 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/visitor.dart';
+import 'package:analyzer/src/dart/ast/ast.dart';
+import 'package:analyzer/src/dart/element/element.dart';
+
+/// Elements have references to AST nodes, for example initializers of constant
+/// variables. These nodes are attached to the whole compilation unit, and
+/// the whole token stream for the file. We don't want all this data after
+/// linking. So, we need to detach these nodes.
+void detachElementsFromNodes(LibraryElementImpl element) {
+ element.accept(_Visitor());
+}
+
+class _Visitor extends GeneralizingElementVisitor<void> {
+ @override
+ void visitClassElement(ClassElement element) {
+ if (element is ClassElementImpl) {
+ element.mixinInferenceCallback = null;
+ }
+ super.visitClassElement(element);
+ }
+
+ @override
+ void visitConstructorElement(ConstructorElement element) {
+ if (element is ConstructorElementImpl) {
+ // Make a copy, so that it is not a NodeList.
+ var initializers = element.constantInitializers.toList();
+ initializers.forEach(_detachNode);
+ element.constantInitializers = initializers;
+ }
+ super.visitConstructorElement(element);
+ }
+
+ @override
+ void visitElement(Element element) {
+ for (var elementAnnotation in element.metadata) {
+ _detachNode((elementAnnotation as ElementAnnotationImpl).annotationAst);
+ }
+ super.visitElement(element);
+ }
+
+ @override
+ void visitParameterElement(ParameterElement element) {
+ _detachConstVariable(element);
+ super.visitParameterElement(element);
+ }
+
+ @override
+ void visitPropertyInducingElement(PropertyInducingElement element) {
+ if (element is PropertyInducingElementImpl) {
+ element.typeInference = null;
+ }
+ _detachConstVariable(element);
+ }
+
+ void _detachConstVariable(Element element) {
+ if (element is ConstVariableElement) {
+ var initializer = element.constantInitializer;
+ if (initializer is ExpressionImpl) {
+ _detachNode(initializer);
+ ConstantContextForExpressionImpl(initializer);
+ }
+ }
+ }
+
+ void _detachNode(AstNode? node) {
+ if (node is AstNodeImpl) {
+ node.detachFromParent();
+ // Also detach from the token stream.
+ node.beginToken.previous = null;
+ node.endToken.next = null;
+ }
+ }
+}
diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart
index cb397b5..638fe05 100644
--- a/pkg/analyzer/lib/src/summary2/element_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/element_builder.dart
@@ -956,7 +956,6 @@
if (property == null) {
var variable = TopLevelVariableElementImpl(name, -1);
variable.isSynthetic = true;
- variable.isFinal = accessorElement.isGetter;
_enclosingContext.addTopLevelVariable(name, variable);
property = variable;
}
@@ -967,7 +966,7 @@
if (property == null) {
var field = FieldElementImpl(name, -1);
field.isSynthetic = true;
- field.isFinal = accessorElement.isGetter;
+ field.isStatic = accessorElement.isStatic;
_enclosingContext.addField(name, field);
property = field;
}
diff --git a/pkg/analyzer/lib/src/summary2/link.dart b/pkg/analyzer/lib/src/summary2/link.dart
index a161473..e1bbea0 100644
--- a/pkg/analyzer/lib/src/summary2/link.dart
+++ b/pkg/analyzer/lib/src/summary2/link.dart
@@ -13,6 +13,7 @@
import 'package:analyzer/src/generated/constant.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/summary2/bundle_writer.dart';
+import 'package:analyzer/src/summary2/detach_nodes.dart';
import 'package:analyzer/src/summary2/library_builder.dart';
import 'package:analyzer/src/summary2/linked_element_factory.dart';
import 'package:analyzer/src/summary2/reference.dart';
@@ -25,6 +26,8 @@
var timerLinkingLinkingBundle = Stopwatch();
var timerLinkingRemoveBundle = Stopwatch();
+/// Note that AST units and tokens of [inputLibraries] will be damaged.
+///
/// TODO(scheglov) deprecate `withInformative`.
LinkResult link(
LinkedElementFactory elementFactory,
@@ -104,6 +107,7 @@
_resolveDefaultValues();
_resolveMetadata();
_collectMixinSuperInvokedNames();
+ _detachNodes();
}
void _collectMixinSuperInvokedNames() {
@@ -178,6 +182,12 @@
inheritance = InheritanceManager3();
}
+ void _detachNodes() {
+ for (var builder in builders.values) {
+ detachElementsFromNodes(builder.element);
+ }
+ }
+
void _performTopLevelInference() {
TopLevelInference(this).infer();
}
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index 69ca0e1..75b4bd01 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -3012,7 +3012,7 @@
staticType: int Function()
token: abs
operator: ..
- staticInvokeType: null
+ staticInvokeType: int Function()
staticType: int
staticType: int
target: IntegerLiteral
@@ -3908,8 +3908,10 @@
staticElement: self::@function::f
staticType: T Function<T>(T)
token: f
- staticInvokeType: null
+ staticInvokeType: int Function(int)
staticType: int
+ typeArgumentTypes
+ int
typeArguments: TypeArgumentList
arguments
TypeName
diff --git a/pkg/compiler/lib/src/common/codegen.dart b/pkg/compiler/lib/src/common/codegen.dart
index d10b0d9..93bf848 100644
--- a/pkg/compiler/lib/src/common/codegen.dart
+++ b/pkg/compiler/lib/src/common/codegen.dart
@@ -874,6 +874,7 @@
await,
regExpLiteral,
property,
+ methodDefinition,
objectInitializer,
arrayHole,
arrayInitializer,
@@ -889,6 +890,7 @@
literalBool,
modularExpression,
function,
+ arrowFunction,
namedFunction,
access,
parameter,
@@ -939,6 +941,7 @@
static const String await = 'js-await';
static const String regExpLiteral = 'js-regExpLiteral';
static const String property = 'js-property';
+ static const String methodDefinition = 'js-methodDefinition';
static const String objectInitializer = 'js-objectInitializer';
static const String arrayHole = 'js-arrayHole';
static const String arrayInitializer = 'js-arrayInitializer';
@@ -954,6 +957,7 @@
static const String literalBool = 'js-literalBool';
static const String modularExpression = 'js-modularExpression';
static const String function = 'js-function';
+ static const String arrowFunction = 'js-arrowFunction';
static const String namedFunction = 'js-namedFunction';
static const String access = 'js-access';
static const String parameter = 'js-parameter';
@@ -1100,6 +1104,16 @@
}
@override
+ void visitMethodDefinition(js.MethodDefinition node) {
+ sink.writeEnum(JsNodeKind.methodDefinition);
+ sink.begin(JsNodeTags.methodDefinition);
+ visit(node.name);
+ visit(node.function);
+ sink.end(JsNodeTags.methodDefinition);
+ _writeInfo(node);
+ }
+
+ @override
void visitObjectInitializer(js.ObjectInitializer node) {
sink.writeEnum(JsNodeKind.objectInitializer);
sink.begin(JsNodeTags.objectInitializer);
@@ -1272,6 +1286,17 @@
}
@override
+ void visitArrowFunction(js.ArrowFunction node) {
+ sink.writeEnum(JsNodeKind.arrowFunction);
+ sink.begin(JsNodeTags.function);
+ visitList(node.params);
+ visit(node.body);
+ sink.writeEnum(node.asyncModifier);
+ sink.end(JsNodeTags.arrowFunction);
+ _writeInfo(node);
+ }
+
+ @override
void visitNamedFunction(js.NamedFunction node) {
sink.writeEnum(JsNodeKind.namedFunction);
sink.begin(JsNodeTags.namedFunction);
@@ -1697,6 +1722,13 @@
node = new js.Property(name, value);
source.end(JsNodeTags.property);
break;
+ case JsNodeKind.methodDefinition:
+ source.begin(JsNodeTags.methodDefinition);
+ js.Expression name = read();
+ js.Expression function = read();
+ node = new js.MethodDefinition(name, function);
+ source.end(JsNodeTags.methodDefinition);
+ break;
case JsNodeKind.objectInitializer:
source.begin(JsNodeTags.objectInitializer);
List<js.Property> properties = readList();
@@ -1788,6 +1820,15 @@
node = new js.Fun(params, body, asyncModifier: asyncModifier);
source.end(JsNodeTags.function);
break;
+ case JsNodeKind.arrowFunction:
+ source.begin(JsNodeTags.arrowFunction);
+ List<js.Parameter> params = readList();
+ js.Block body = read();
+ js.AsyncModifier asyncModifier =
+ source.readEnum(js.AsyncModifier.values);
+ node = new js.ArrowFunction(params, body, asyncModifier: asyncModifier);
+ source.end(JsNodeTags.arrowFunction);
+ break;
case JsNodeKind.namedFunction:
source.begin(JsNodeTags.namedFunction);
js.Declaration name = read();
diff --git a/pkg/compiler/lib/src/io/position_information.dart b/pkg/compiler/lib/src/io/position_information.dart
index 84d3e5c..cb895de 100644
--- a/pkg/compiler/lib/src/io/position_information.dart
+++ b/pkg/compiler/lib/src/io/position_information.dart
@@ -712,17 +712,19 @@
// ^ ^
return new CallPosition(
node, CodePositionKind.START, SourcePositionKind.START);
- } else if (access is js.Fun ||
+ } else if (access is js.FunctionExpression ||
access is js.New ||
access is js.NamedFunction ||
(access is js.Parentheses &&
- (access.enclosed is js.Fun ||
+ (access.enclosed is js.FunctionExpression ||
access.enclosed is js.New ||
access.enclosed is js.NamedFunction))) {
// function(){}() new Function("...")() function foo(){}()
// ^ ^ ^
// (function(){})() (new Function("..."))() (function foo(){})()
// ^ ^ ^
+ // (()=>{})()
+ // ^
return new CallPosition(
node.target, CodePositionKind.END, SourcePositionKind.INNER);
} else if (access is js.Binary || access is js.Call) {
@@ -973,7 +975,7 @@
}
@override
- visitFun(js.Fun node) {
+ visitFunctionExpression(js.FunctionExpression node) {
_handleFunction(node, node.body);
}
diff --git a/pkg/compiler/lib/src/js/placeholder_safety.dart b/pkg/compiler/lib/src/js/placeholder_safety.dart
index 72d1e8d..a83a708 100644
--- a/pkg/compiler/lib/src/js/placeholder_safety.dart
+++ b/pkg/compiler/lib/src/js/placeholder_safety.dart
@@ -338,7 +338,7 @@
}
@override
- int visitFun(js.Fun node) {
+ int visitFunctionExpression(js.FunctionExpression node) {
bool oldSafe = safe;
int oldNextPosition = nextPosition;
visit(node.body);
diff --git a/pkg/compiler/lib/src/js/rewrite_async.dart b/pkg/compiler/lib/src/js/rewrite_async.dart
index ab8d742..ae05423 100644
--- a/pkg/compiler/lib/src/js/rewrite_async.dart
+++ b/pkg/compiler/lib/src/js/rewrite_async.dart
@@ -762,8 +762,7 @@
variableDeclarations, node.sourceInformation, bodySourceInformation);
}
- @override
- js.Expression visitFun(js.Fun node) {
+ js.Expression visitFunctionExpression(js.FunctionExpression node) {
if (node.asyncModifier.isAsync || node.asyncModifier.isYielding) {
// The translation does not handle nested functions that are generators
// or asynchronous. These functions should only be ones that are
@@ -775,6 +774,16 @@
}
@override
+ js.Expression visitFun(js.Fun node) {
+ return visitFunctionExpression(node);
+ }
+
+ @override
+ js.Expression visitArrowFunction(js.ArrowFunction node) {
+ return visitFunctionExpression(node);
+ }
+
+ @override
js.Expression visitAccess(js.PropertyAccess node) {
return withExpression2(node.receiver, node.selector,
(receiver, selector) => js.js('#[#]', [receiver, selector]));
@@ -1285,10 +1294,14 @@
@override
js.Expression visitObjectInitializer(js.ObjectInitializer node) {
+ // throw Exception("NOOOOOOOOOOOOOOOO");
return withExpressions(
node.properties.map((js.Property property) => property.value).toList(),
(List<js.Node> values) {
List<js.Property> properties = new List.generate(values.length, (int i) {
+ if (node.properties[i] is js.MethodDefinition) {
+ return new js.MethodDefinition(node.properties[i].name, values[i]);
+ }
return new js.Property(node.properties[i].name, values[i]);
});
return new js.ObjectInitializer(properties);
@@ -1347,12 +1360,20 @@
@override
js.Property visitProperty(js.Property node) {
+ assert(node.runtimeType == js.Property);
return withExpression(
node.value, (js.Expression value) => new js.Property(node.name, value),
store: false);
}
@override
+ js.MethodDefinition visitMethodDefinition(js.MethodDefinition node) {
+ return withExpression(node.function,
+ (js.Expression value) => new js.MethodDefinition(node.name, value),
+ store: false);
+ }
+
+ @override
js.Expression visitRegExpLiteral(js.RegExpLiteral node) => node;
@override
@@ -2417,7 +2438,7 @@
/// - targets of jumps
/// - a set of used names.
/// - if any [This]-expressions are used.
-class PreTranslationAnalysis extends js.NodeVisitor<bool> {
+class PreTranslationAnalysis extends js.BaseVisitor<bool> {
Set<js.Node> hasAwaitOrYield = new Set<js.Node>();
Map<js.Node, js.Node> targets = new Map<js.Node, js.Node>();
@@ -2618,11 +2639,21 @@
}
@override
+ bool visitFunctionExpression(js.FunctionExpression node) {
+ return false;
+ }
+
+ @override
bool visitFun(js.Fun node) {
return false;
}
@override
+ bool visitArrowFunction(js.ArrowFunction node) {
+ return false;
+ }
+
+ @override
bool visitFunctionDeclaration(js.FunctionDeclaration node) {
return false;
}
@@ -2785,6 +2816,11 @@
}
@override
+ bool visitMethodDefinition(js.MethodDefinition node) {
+ return false;
+ }
+
+ @override
bool visitRegExpLiteral(js.RegExpLiteral node) {
return false;
}
diff --git a/pkg/compiler/lib/src/js/size_estimator.dart b/pkg/compiler/lib/src/js/size_estimator.dart
index 24527ec6..0b38f43 100644
--- a/pkg/compiler/lib/src/js/size_estimator.dart
+++ b/pkg/compiler/lib/src/js/size_estimator.dart
@@ -448,8 +448,10 @@
// ({a: 2, b: 3}.toString()).
(newAtStatementBegin &&
(node is NamedFunction ||
- node is Fun ||
- node is ObjectInitializer));
+ node is FunctionExpression ||
+ node is ObjectInitializer)) ||
+ // (() => x)()
+ (requiredPrecedence == CALL && node is ArrowFunction);
if (needsParentheses) {
inForInit = false;
atStatementBegin = false;
@@ -821,6 +823,45 @@
}
@override
+ void visitArrowFunction(ArrowFunction fun) {
+ VarCollector vars = new VarCollector();
+ vars.visitArrowFunction(fun);
+ arrowFunctionOut(fun, vars);
+ }
+
+ int arrowFunctionOut(ArrowFunction fun, VarCollector vars) {
+ // TODO: support static, get/set, async, and generators.
+ if (fun.params.length == 1 && fun.params.first is VariableReference) {
+ visitNestedExpression(fun.params.single, ASSIGNMENT,
+ newInForInit: false, newAtStatementBegin: false);
+ } else {
+ out("(");
+ if (fun.params != null) {
+ visitCommaSeparated(fun.params, PRIMARY,
+ newInForInit: false, newAtStatementBegin: false);
+ }
+ out(")");
+ }
+ out("=>");
+ int closingPosition;
+ Node body = fun.body;
+ if (body is Block) {
+ closingPosition = blockOut(body);
+ } else {
+ // Object initializers require parentheses to disambiguate
+ // AssignmentExpression from FunctionBody. See:
+ // https://tc39.github.io/ecma262/#sec-arrow-function-definitions
+ bool needsParens = body is ObjectInitializer;
+ if (needsParens) out("(");
+ visitNestedExpression(body, ASSIGNMENT,
+ newInForInit: false, newAtStatementBegin: false);
+ if (needsParens) out(")");
+ closingPosition = charCount - 1;
+ }
+ return closingPosition;
+ }
+
+ @override
visitDeferredExpression(DeferredExpression node) {
if (node.isFinalized) {
// Continue printing with the expression value.
@@ -967,6 +1008,34 @@
@override
void visitProperty(Property node) {
+ propertyNameOut(node);
+ out(':'); // ':'
+ visitNestedExpression(node.value, ASSIGNMENT,
+ newInForInit: false, newAtStatementBegin: false);
+ }
+
+ @override
+ void visitMethodDefinition(MethodDefinition node) {
+ VarCollector vars = new VarCollector();
+ vars.visitMethodDefinition(node);
+ methodOut(node, vars);
+ }
+
+ int methodOut(MethodDefinition node, VarCollector vars) {
+ // TODO: support static, get/set, async, and generators.
+ propertyNameOut(node);
+ Fun fun = node.function;
+ out("(");
+ if (fun.params != null) {
+ visitCommaSeparated(fun.params, PRIMARY,
+ newInForInit: false, newAtStatementBegin: false);
+ }
+ out(")");
+ int closingPosition = blockOut(fun.body);
+ return closingPosition;
+ }
+
+ void propertyNameOut(Property node) {
Node name = node.name;
if (name is LiteralString) {
String text = literalStringToString(name);
@@ -987,9 +1056,6 @@
LiteralNumber nameNumber = node.name;
out(nameNumber.value); // '${nameNumber.value}'
}
- out(':'); // ':'
- visitNestedExpression(node.value, ASSIGNMENT,
- newInForInit: false, newAtStatementBegin: false);
}
@override
diff --git a/pkg/compiler/lib/src/native/js.dart b/pkg/compiler/lib/src/native/js.dart
index bbc8bd0..e984dc6 100644
--- a/pkg/compiler/lib/src/native/js.dart
+++ b/pkg/compiler/lib/src/native/js.dart
@@ -19,7 +19,7 @@
bool found = false;
@override
- visitFun(js.Fun node) {
+ visitFunctionExpression(js.FunctionExpression node) {
++enclosingFunctions;
node.visitChildren(this);
--enclosingFunctions;
diff --git a/pkg/compiler/test/async_await/async_await_js_transform_test.dart b/pkg/compiler/test/async_await/async_await_js_transform_test.dart
index 2307c08..4ea675b 100644
--- a/pkg/compiler/test/async_await/async_await_js_transform_test.dart
+++ b/pkg/compiler/test/async_await/async_await_js_transform_test.dart
@@ -669,7 +669,7 @@
testAsyncTransform("""
function(a, h) async {
- var x = {"a": foo1(), "b": await foo2(), "c": foo3()};
+ var x = {"a": foo1(), "b": await foo2(), "c": foo3(), foo4() {}};
x["a"] = 2; // Different assignments
(await foo()).a = 3;
x[await foo()] = 4;
@@ -693,7 +693,10 @@
return awaitHelper(foo2(), body);
case 2:
// returning from await.
- x = {a: __temp1, b: __result, c: foo3()};
+ x = {a: __temp1, b: __result, c: foo3(),
+ foo4() {
+ }
+ };
x.a = 2;
__goto = 3;
return awaitHelper(foo(), body);
diff --git a/pkg/compiler/test/js/js_parser_statements_test.dart b/pkg/compiler/test/js/js_parser_statements_test.dart
index 195b38b..1fb44d4 100644
--- a/pkg/compiler/test/js/js_parser_statements_test.dart
+++ b/pkg/compiler/test/js/js_parser_statements_test.dart
@@ -291,6 +291,17 @@
// Interpolated Literals
testStatement('a = {#: 1}', [eOne], 'a = {1: 1};');
testStatement('a = {#a: 1}', {'a': eOne}, 'a = {1: 1};');
+ // Interpolated Literals with Methods
+ testStatement('a = {#: 1, foo() {}}', [eOne], '''
+a = {1: 1,
+ foo() {
+ }
+};''');
+ testStatement('a = {#a: 1, foo() {}}', {'a': eOne}, '''
+a = {1: 1,
+ foo() {
+ }
+};''');
// Maybe we should make this work?
testError('a = {#: 1}', [1], 'is not a Literal: 1');
testError('a = {#a: 1}', {'a': 1}, 'is not a Literal: 1');
diff --git a/pkg/compiler/test/js/js_parser_test.dart b/pkg/compiler/test/js/js_parser_test.dart
index e9b4822..d338224 100644
--- a/pkg/compiler/test/js/js_parser_test.dart
+++ b/pkg/compiler/test/js/js_parser_test.dart
@@ -192,4 +192,40 @@
// Stacked assignment.
testExpression("a = b = c");
testExpression("var a = b = c");
+ // Arrow functions.
+ testExpression("(x) => x", "x => x");
+ testExpression("(x, y) => {\n return x + y;\n}");
+ testExpression("() => 42");
+ testExpression('() => ({foo: "bar"})');
+ testExpression("() => {}", """
+() => {
+}""");
+ testExpression("(() => 1)()");
+ testExpression("((x) => x)(y)", "(x => x)(y)");
+ testExpression("(() => {x = 1;})()", """
+(() => {
+ x = 1;
+})()""");
+ // Arrow functions with operators.
+ testExpression("a = (b) => c", "a = b => c");
+ testExpression("a = ((b) => b)(c)", "a = (b => b)(c)");
+ testExpression("(x) => (y) => z + y", "x => y => z + y");
+ testExpression("!((x) => (y) => x + y)", "!(x => y => x + y)");
+ testExpression("(x) => !((y) => x + y)", "x => !(y => x + y)");
+ testExpression("(x) => (y) => !(x + y)", "x => y => !(x + y)");
+ testExpression("((x) => (y) => x + y) && z", "(x => y => x + y) && z");
+ testExpression("(x) => (((y) => x + y) && z)", "x => (y => x + y) && z");
+ testExpression("(x) => (y) => ((x + y) && z)", "x => y => x + y && z");
+ testExpression("z && ((x) => (y) => x + y)", "z && (x => y => x + y)");
+ testExpression("(x) => (z && ((y) => x + y))", "x => z && (y => x + y)");
+ testExpression("(x) => (y) => (z && x + y)", "x => y => z && x + y");
+ testExpression("(x) => (y) => ((z && x) + y)", "x => y => (z && x) + y");
+ // Methods.
+ testExpression("{ foo() {}, bar() {}, }", """
+{
+ foo() {
+ },
+ bar() {
+ }
+}""");
}
diff --git a/pkg/compiler/test/js/js_safety_test.dart b/pkg/compiler/test/js/js_safety_test.dart
index 8620bec..de3996f 100644
--- a/pkg/compiler/test/js/js_safety_test.dart
+++ b/pkg/compiler/test/js/js_safety_test.dart
@@ -94,6 +94,11 @@
// Placeholders in an immediate call are ok.
test('(function(a,b){a++;b++;return a+b})(#, #)', 2);
+ test('(() => {})()', 0);
+ test('((a,b) => {#})(#, #)', 0);
+ // Placeholders in an immediate call are ok.
+ test('((a,b) => {a++;b++;return a+b})(#, #)', 2);
+
test('# ? # : #', 1);
test('(# ? 1 : #, #)', 1);
test('(# ? # : 2, #)', 1);
@@ -102,4 +107,8 @@
test('{A:#, B:#, C:#}', 3);
test('[#,#,#,#]', 4);
test('[,,,,#,#,,,]', 2);
+
+ test('function(){return #;}', 0);
+ test('{A: function() {return #;}}', 0);
+ test('{#() {return #;}}', 0);
}
diff --git a/pkg/compiler/test/js/js_throw_behavior_test.dart b/pkg/compiler/test/js/js_throw_behavior_test.dart
index 21872e1..9adb6a8 100644
--- a/pkg/compiler/test/js/js_throw_behavior_test.dart
+++ b/pkg/compiler/test/js/js_throw_behavior_test.dart
@@ -82,6 +82,7 @@
test('# + #[#]', MAY);
test('#()', MAY);
test('(function(){})()', MAY);
+ test('(() => {})()', MAY);
test('new Date(#)', MAY);
test('# in #', MAY);
diff --git a/pkg/compiler/test/js/size_estimator_expectations.json b/pkg/compiler/test/js/size_estimator_expectations.json
index 2dacebb..cd05192 100644
--- a/pkg/compiler/test/js/size_estimator_expectations.json
+++ b/pkg/compiler/test/js/size_estimator_expectations.json
@@ -96,6 +96,26 @@
"minified": "foo[x[bar]]"
},
{
+ "original": "(foo) => bar",
+ "expected": "#=>#",
+ "minified": "foo=>bar"
+ },
+ {
+ "original": "(foo) => {}",
+ "expected": "#=>{}",
+ "minified": "foo=>{}"
+ },
+ {
+ "original": "((a, b) => foo)()",
+ "expected": "((#,#)=>#)()",
+ "minified": "((a,b)=>foo)()"
+ },
+ {
+ "original": "(x) => (y) => z + y",
+ "expected": "#=>#=>#+#",
+ "minified": "x=>y=>z+y"
+ },
+ {
"original": "x << 5",
"expected": "#<<5",
"minified": "x<<5"
@@ -111,6 +131,11 @@
"minified": "a={b:1,c:2}"
},
{
+ "original": "a = {'b': 1, foo() { }}",
+ "expected": "#={b:1,\nfoo(){}}",
+ "minified": "a={b:1,\nfoo(){}}"
+ },
+ {
"original": "foo([1, 2, 3])",
"expected": "#([1,2,3])",
"minified": "foo([1,2,3])"
diff --git a/pkg/js_ast/lib/src/builder.dart b/pkg/js_ast/lib/src/builder.dart
index 6f2f1fa..d27c23d 100644
--- a/pkg/js_ast/lib/src/builder.dart
+++ b/pkg/js_ast/lib/src/builder.dart
@@ -459,9 +459,10 @@
static const QUERY = 13;
static const COLON = 14;
static const SEMICOLON = 15;
- static const HASH = 16;
- static const WHITESPACE = 17;
- static const OTHER = 18;
+ static const ARROW = 16;
+ static const HASH = 17;
+ static const WHITESPACE = 18;
+ static const OTHER = 19;
// Make sure that ]] is two symbols.
bool singleCharCategory(int category) => category >= DOT;
@@ -502,6 +503,8 @@
return "COLON";
case SEMICOLON:
return "SEMICOLON";
+ case ARROW:
+ return "ARROW";
case HASH:
return "HASH";
case WHITESPACE:
@@ -751,11 +754,16 @@
error("Unparseable number");
}
} else if (cat == SYMBOL) {
- int binaryPrecendence = BINARY_PRECEDENCE[lastToken];
- if (binaryPrecendence == null && !UNARY_OPERATORS.contains(lastToken)) {
- error("Unknown operator");
+ if (lastToken == '=>') {
+ lastCategory = ARROW;
+ } else {
+ int binaryPrecendence = BINARY_PRECEDENCE[lastToken];
+ if (binaryPrecendence == null &&
+ !UNARY_OPERATORS.contains(lastToken)) {
+ error("Unknown operator");
+ }
+ if (isAssignment(lastToken)) lastCategory = ASSIGNMENT;
}
- if (isAssignment(lastToken)) lastCategory = ASSIGNMENT;
} else if (cat == ALPHA) {
if (OPERATORS_THAT_LOOK_LIKE_IDENTIFIERS.contains(lastToken)) {
lastCategory = SYMBOL;
@@ -840,9 +848,7 @@
return new VariableUse(last);
}
} else if (acceptCategory(LPAREN)) {
- Expression expression = parseExpression();
- expectCategory(RPAREN);
- return expression;
+ return parseExpressionOrArrowFunction();
} else if (acceptCategory(STRING)) {
return new LiteralString(last);
} else if (acceptCategory(NUMERIC)) {
@@ -851,7 +857,6 @@
return parseObjectInitializer();
} else if (acceptCategory(LSQUARE)) {
var values = <Expression>[];
-
while (true) {
if (acceptCategory(COMMA)) {
values.add(new ArrayHole());
@@ -892,7 +897,6 @@
Expression parseFun() {
List<Parameter> params = <Parameter>[];
-
expectCategory(LPAREN);
if (!acceptCategory(RPAREN)) {
for (;;) {
@@ -934,34 +938,42 @@
List<Property> properties = <Property>[];
for (;;) {
if (acceptCategory(RBRACE)) break;
- // Limited subset: keys are identifiers, no 'get' or 'set' properties.
- Literal propertyName;
- String identifier = lastToken;
- if (acceptCategory(ALPHA)) {
- propertyName = LiteralString(identifier);
- } else if (acceptCategory(STRING)) {
- propertyName = LiteralString(identifier);
- } else if (acceptCategory(SYMBOL)) {
- // e.g. void
- propertyName = LiteralString(identifier);
- } else if (acceptCategory(HASH)) {
- var nameOrPosition = parseHash();
- InterpolatedLiteral interpolatedLiteral =
- new InterpolatedLiteral(nameOrPosition);
- interpolatedValues.add(interpolatedLiteral);
- propertyName = interpolatedLiteral;
- } else {
- error('Expected property name');
- }
- expectCategory(COLON);
- Expression value = parseAssignment();
- properties.add(new Property(propertyName, value));
+ properties.add(parseMethodDefinitionOrProperty());
if (acceptCategory(RBRACE)) break;
expectCategory(COMMA);
}
return new ObjectInitializer(properties);
}
+ Property parseMethodDefinitionOrProperty() {
+ // Limited subset: keys are identifiers, no 'get' or 'set' properties.
+ Literal propertyName;
+ String identifier = lastToken;
+ if (acceptCategory(ALPHA)) {
+ propertyName = LiteralString(identifier);
+ } else if (acceptCategory(STRING)) {
+ propertyName = LiteralString(identifier);
+ } else if (acceptCategory(SYMBOL)) {
+ // e.g. void
+ propertyName = LiteralString(identifier);
+ } else if (acceptCategory(HASH)) {
+ var nameOrPosition = parseHash();
+ InterpolatedLiteral interpolatedLiteral =
+ new InterpolatedLiteral(nameOrPosition);
+ interpolatedValues.add(interpolatedLiteral);
+ propertyName = interpolatedLiteral;
+ } else {
+ error('Expected property name');
+ }
+ if (acceptCategory(COLON)) {
+ Expression value = parseAssignment();
+ return new Property(propertyName, value);
+ } else {
+ Expression fun = parseFun();
+ return new MethodDefinition(propertyName, fun);
+ }
+ }
+
Expression parseMember() {
Expression receiver = parsePrimary();
while (true) {
@@ -1133,6 +1145,43 @@
return expression;
}
+ Expression parseExpressionOrArrowFunction() {
+ if (acceptCategory(RPAREN)) {
+ expectCategory(ARROW);
+ return parseArrowFunctionBody(<Parameter>[]);
+ }
+ List<Expression> expressions = [parseAssignment()];
+ while (acceptCategory(COMMA)) {
+ expressions.add(parseAssignment());
+ }
+ expectCategory(RPAREN);
+ if (acceptCategory(ARROW)) {
+ var params = <Parameter>[];
+ for (Expression e in expressions) {
+ if (e is VariableUse) {
+ params.add(new Parameter(e.name));
+ } else if (e is InterpolatedExpression) {
+ params.add(InterpolatedParameter(e.nameOrPosition));
+ } else {
+ error("Expected arrow function parameter list");
+ }
+ }
+ return parseArrowFunctionBody(params);
+ }
+ return expressions.reduce((Expression value, Expression element) =>
+ new Binary(',', value, element));
+ }
+
+ Expression parseArrowFunctionBody(List<Parameter> params) {
+ Node body;
+ if (acceptCategory(LBRACE)) {
+ body = parseBlock();
+ } else {
+ body = parseAssignment();
+ }
+ return new ArrowFunction(params, body);
+ }
+
VariableDeclarationList parseVariableDeclarationList() {
Declaration firstVariable = parseVariableDeclaration();
return finishVariableDeclarationList(firstVariable);
diff --git a/pkg/js_ast/lib/src/equivalence_visitor.dart b/pkg/js_ast/lib/src/equivalence_visitor.dart
index 191b1e0..8068319 100644
--- a/pkg/js_ast/lib/src/equivalence_visitor.dart
+++ b/pkg/js_ast/lib/src/equivalence_visitor.dart
@@ -120,6 +120,14 @@
}
@override
+ bool visitMethodDefinition(MethodDefinition node, Node arg) {
+ if (arg is! MethodDefinition) return failAt(node, arg);
+ MethodDefinition other = arg;
+ return testNodes(node.name, other.name) &&
+ testNodes(node.function, other.function);
+ }
+
+ @override
bool visitObjectInitializer(ObjectInitializer node, Node arg) {
if (arg is! ObjectInitializer) return failAt(node, arg);
ObjectInitializer other = arg;
@@ -225,6 +233,15 @@
}
@override
+ bool visitArrowFunction(ArrowFunction node, Node arg) {
+ if (arg is! ArrowFunction) return failAt(node, arg);
+ ArrowFunction other = arg;
+ return testNodeLists(node.params, other.params) &&
+ testNodes(node.body, other.body) &&
+ testValues(node, node.asyncModifier, other, other.asyncModifier);
+ }
+
+ @override
bool visitNamedFunction(NamedFunction node, Node arg) {
if (arg is! NamedFunction) return failAt(node, arg);
NamedFunction other = arg;
diff --git a/pkg/js_ast/lib/src/nodes.dart b/pkg/js_ast/lib/src/nodes.dart
index c90dc08..a69342b 100644
--- a/pkg/js_ast/lib/src/nodes.dart
+++ b/pkg/js_ast/lib/src/nodes.dart
@@ -48,6 +48,7 @@
T visitNamedFunction(NamedFunction node);
T visitFun(Fun node);
+ T visitArrowFunction(ArrowFunction node);
T visitDeferredStatement(DeferredStatement node);
T visitDeferredExpression(DeferredExpression node);
@@ -69,6 +70,7 @@
T visitArrayHole(ArrayHole node);
T visitObjectInitializer(ObjectInitializer node);
T visitProperty(Property node);
+ T visitMethodDefinition(MethodDefinition node);
T visitRegExpLiteral(RegExpLiteral node);
T visitAwait(Await node);
@@ -149,7 +151,9 @@
T visitThis(This node) => visitParameter(node);
T visitNamedFunction(NamedFunction node) => visitExpression(node);
- T visitFun(Fun node) => visitExpression(node);
+ T visitFunctionExpression(FunctionExpression node) => visitExpression(node);
+ T visitFun(Fun node) => visitFunctionExpression(node);
+ T visitArrowFunction(ArrowFunction node) => visitFunctionExpression(node);
T visitToken(DeferredToken node) => visitExpression(node);
@@ -175,6 +179,7 @@
T visitArrayHole(ArrayHole node) => visitExpression(node);
T visitObjectInitializer(ObjectInitializer node) => visitExpression(node);
T visitProperty(Property node) => visitNode(node);
+ T visitMethodDefinition(MethodDefinition node) => visitNode(node);
T visitRegExpLiteral(RegExpLiteral node) => visitExpression(node);
T visitInterpolatedNode(InterpolatedNode node) => visitNode(node);
@@ -244,6 +249,7 @@
R visitNamedFunction(NamedFunction node, A arg);
R visitFun(Fun node, A arg);
+ R visitArrowFunction(ArrowFunction node, A arg);
R visitDeferredStatement(DeferredStatement node, A arg);
R visitDeferredExpression(DeferredExpression node, A arg);
@@ -265,6 +271,7 @@
R visitArrayHole(ArrayHole node, A arg);
R visitObjectInitializer(ObjectInitializer node, A arg);
R visitProperty(Property node, A arg);
+ R visitMethodDefinition(MethodDefinition node, A arg);
R visitRegExpLiteral(RegExpLiteral node, A arg);
R visitAwait(Await node, A arg);
@@ -355,6 +362,7 @@
R visitNamedFunction(NamedFunction node, A arg) => visitExpression(node, arg);
R visitFun(Fun node, A arg) => visitExpression(node, arg);
+ R visitArrowFunction(ArrowFunction node, A arg) => visitExpression(node, arg);
R visitToken(DeferredToken node, A arg) => visitExpression(node, arg);
@@ -385,6 +393,7 @@
R visitObjectInitializer(ObjectInitializer node, A arg) =>
visitExpression(node, arg);
R visitProperty(Property node, A arg) => visitNode(node, arg);
+ R visitMethodDefinition(MethodDefinition node, A arg) => visitNode(node, arg);
R visitRegExpLiteral(RegExpLiteral node, A arg) => visitExpression(node, arg);
R visitInterpolatedNode(InterpolatedNode node, A arg) => visitNode(node, arg);
@@ -1466,9 +1475,18 @@
int get precedenceLevel => LEFT_HAND_SIDE;
}
-class Fun extends Expression {
- final List<Parameter> params;
+abstract class FunctionExpression extends Expression {
+ Node body;
+ List<Parameter> params;
+ AsyncModifier asyncModifier;
+}
+
+class Fun extends FunctionExpression {
+ @override
final Block body;
+ @override
+ final List<Parameter> params;
+ @override
final AsyncModifier asyncModifier;
Fun(this.params, this.body, {this.asyncModifier: AsyncModifier.sync});
@@ -1493,6 +1511,38 @@
int get precedenceLevel => LEFT_HAND_SIDE;
}
+class ArrowFunction extends FunctionExpression {
+ @override
+ final Node body;
+ @override
+ final List<Parameter> params;
+ @override
+ final AsyncModifier asyncModifier;
+
+ ArrowFunction(this.params, this.body,
+ {this.asyncModifier: AsyncModifier.sync});
+
+ T accept<T>(NodeVisitor<T> visitor) => visitor.visitArrowFunction(this);
+
+ R accept1<R, A>(NodeVisitor1<R, A> visitor, A arg) =>
+ visitor.visitArrowFunction(this, arg);
+
+ void visitChildren<T>(NodeVisitor<T> visitor) {
+ for (Parameter param in params) param.accept(visitor);
+ body.accept(visitor);
+ }
+
+ void visitChildren1<R, A>(NodeVisitor1<R, A> visitor, A arg) {
+ for (Parameter param in params) param.accept1(visitor, arg);
+ body.accept1(visitor, arg);
+ }
+
+ ArrowFunction _clone() =>
+ new ArrowFunction(params, body, asyncModifier: asyncModifier);
+
+ int get precedenceLevel => ASSIGNMENT;
+}
+
class AsyncModifier {
final int index;
final bool isAsync;
@@ -1813,6 +1863,38 @@
Property _clone() => new Property(name, value);
}
+class MethodDefinition extends Node implements Property {
+ @override
+ final Expression name;
+ final Fun function;
+
+ MethodDefinition(this.name, this.function);
+
+ @override
+ Fun get value => function;
+
+ @override
+ T accept<T>(NodeVisitor<T> visitor) => visitor.visitMethodDefinition(this);
+
+ R accept1<R, A>(NodeVisitor1<R, A> visitor, A arg) =>
+ visitor.visitMethodDefinition(this, arg);
+
+ @override
+ void visitChildren<T>(NodeVisitor<T> visitor) {
+ name.accept(visitor);
+ function.accept(visitor);
+ }
+
+ @override
+ void visitChildren1<R, A>(NodeVisitor1<R, A> visitor, A arg) {
+ name.accept1(visitor, arg);
+ function.accept1(visitor, arg);
+ }
+
+ @override
+ MethodDefinition _clone() => MethodDefinition(name, function);
+}
+
/// Tag class for all interpolated positions.
abstract class InterpolatedNode implements Node {
get nameOrPosition;
diff --git a/pkg/js_ast/lib/src/printer.dart b/pkg/js_ast/lib/src/printer.dart
index ed165c2..2242961 100644
--- a/pkg/js_ast/lib/src/printer.dart
+++ b/pkg/js_ast/lib/src/printer.dart
@@ -667,7 +667,7 @@
// ({a: 2, b: 3}.toString()).
(newAtStatementBegin &&
(node is NamedFunction ||
- node is Fun ||
+ node is FunctionExpression ||
node is ObjectInitializer));
if (needsParentheses) {
inForInit = false;
@@ -1102,6 +1102,51 @@
}
@override
+ void visitArrowFunction(ArrowFunction fun) {
+ VarCollector vars = new VarCollector();
+ vars.visitArrowFunction(fun);
+ currentNode.closingPosition = arrowFunctionOut(fun, vars);
+ }
+
+ int arrowFunctionOut(ArrowFunction fun, VarCollector vars) {
+ // TODO: support static, get/set, async, and generators.
+ localNamer.enterScope(vars);
+ final List<Parameter> params = fun.params;
+ if (params.length == 1 && params.first is VariableReference) {
+ visitNestedExpression(params.single, ASSIGNMENT,
+ newInForInit: false, newAtStatementBegin: false);
+ } else {
+ out("(");
+ if (params != null) {
+ visitCommaSeparated(fun.params, PRIMARY,
+ newInForInit: false, newAtStatementBegin: false);
+ }
+ out(")");
+ }
+ spaceOut();
+ out("=>");
+ spaceOut();
+ int closingPosition;
+ Node body = fun.body;
+ if (body is Block) {
+ closingPosition =
+ blockOut(body, shouldIndent: false, needsNewline: false);
+ } else {
+ // Object initializers require parentheses to disambiguate
+ // AssignmentExpression from FunctionBody. See:
+ // https://tc39.github.io/ecma262/#sec-arrow-function-definitions
+ bool needsParens = body is ObjectInitializer;
+ if (needsParens) out("(");
+ visitNestedExpression(body, ASSIGNMENT,
+ newInForInit: false, newAtStatementBegin: false);
+ if (needsParens) out(")");
+ closingPosition = _charCount - 1;
+ }
+ localNamer.leaveScope();
+ return closingPosition;
+ }
+
+ @override
visitDeferredExpression(DeferredExpression node) {
// Continue printing with the expression value.
assert(node.precedenceLevel == node.value.precedenceLevel);
@@ -1252,6 +1297,41 @@
@override
void visitProperty(Property node) {
+ propertyNameOut(node);
+ out(":");
+ spaceOut();
+ visitNestedExpression(node.value, ASSIGNMENT,
+ newInForInit: false, newAtStatementBegin: false);
+ }
+
+ @override
+ visitMethodDefinition(MethodDefinition node) {
+ VarCollector vars = new VarCollector();
+ vars.visitMethodDefinition(node);
+ startNode(node.function);
+ currentNode.closingPosition = methodOut(node, vars);
+ endNode(node.function);
+ }
+
+ int methodOut(MethodDefinition node, VarCollector vars) {
+ // TODO: support static, get/set, async, and generators.
+ propertyNameOut(node);
+ Fun fun = node.function;
+ localNamer.enterScope(vars);
+ out("(");
+ if (fun.params != null) {
+ visitCommaSeparated(fun.params, PRIMARY,
+ newInForInit: false, newAtStatementBegin: false);
+ }
+ out(")");
+ spaceOut();
+ int closingPosition =
+ blockOut(fun.body, shouldIndent: false, needsNewline: false);
+ localNamer.leaveScope();
+ return closingPosition;
+ }
+
+ void propertyNameOut(Property node) {
startNode(node.name);
Node name = undefer(node.name);
if (name is LiteralString) {
@@ -1266,10 +1346,6 @@
throw StateError('Unexpected Property name: $name');
}
endNode(node.name);
- out(":");
- spaceOut();
- visitNestedExpression(node.value, ASSIGNMENT,
- newInForInit: false, newAtStatementBegin: false);
}
void _outPropertyName(String name) {
@@ -1423,7 +1499,7 @@
void forEachVar(void fn(String v)) => vars.forEach(fn);
void forEachParam(void fn(String p)) => params.forEach(fn);
- void collectVarsInFunction(Fun fun) {
+ void collectVarsInFunction(FunctionExpression fun) {
if (!nested) {
nested = true;
if (fun.params != null) {
@@ -1431,7 +1507,7 @@
params.add(fun.params[i].name);
}
}
- visitBlock(fun.body);
+ fun.body.accept(this);
nested = false;
}
}
@@ -1446,10 +1522,19 @@
collectVarsInFunction(namedFunction.function);
}
+ void visitMethodDefinition(MethodDefinition method) {
+ // Note that we don't bother collecting the name of the function.
+ collectVarsInFunction(method.function);
+ }
+
void visitFun(Fun fun) {
collectVarsInFunction(fun);
}
+ void visitArrowFunction(ArrowFunction fun) {
+ collectVarsInFunction(fun);
+ }
+
void visitThis(This node) {}
void visitComment(Comment node) {
diff --git a/pkg/js_ast/lib/src/template.dart b/pkg/js_ast/lib/src/template.dart
index 788e081..1fee00a 100644
--- a/pkg/js_ast/lib/src/template.dart
+++ b/pkg/js_ast/lib/src/template.dart
@@ -659,6 +659,26 @@
};
}
+ Instantiator visitArrowFunction(ArrowFunction node) {
+ List<Instantiator> paramMakers = node.params.map(visitSplayable).toList();
+ Instantiator makeBody = visit(node.body);
+ // TODO(sra): Avoid copying params if no interpolation or forced copying.
+ return (arguments) {
+ List<Parameter> params = <Parameter>[];
+ for (Instantiator instantiator in paramMakers) {
+ var result = instantiator(arguments);
+ if (result is Iterable) {
+ params.addAll(result);
+ } else {
+ params.add(result);
+ }
+ }
+ // Either a Block or Expression.
+ Node body = makeBody(arguments);
+ return new ArrowFunction(params, body);
+ };
+ }
+
Instantiator visitDeferredExpression(DeferredExpression node) => same(node);
Instantiator visitDeferredStatement(DeferredStatement node) => same(node);
@@ -743,6 +763,14 @@
};
}
+ Instantiator visitMethodDefinition(MethodDefinition node) {
+ Instantiator makeName = visit(node.name);
+ Instantiator makeFunction = visit(node.function);
+ return (arguments) {
+ return new MethodDefinition(makeName(arguments), makeFunction(arguments));
+ };
+ }
+
Instantiator visitRegExpLiteral(RegExpLiteral node) =>
(arguments) => new RegExpLiteral(node.pattern);
diff --git a/tests/language/nosuchmethod_forwarding/abstract_override_with_different_type.dart b/tests/language/nosuchmethod_forwarding/abstract_override_with_different_type_test.dart
similarity index 100%
rename from tests/language/nosuchmethod_forwarding/abstract_override_with_different_type.dart
rename to tests/language/nosuchmethod_forwarding/abstract_override_with_different_type_test.dart
diff --git a/tests/language/unsorted/unevaluated_field.dart b/tests/language/unsorted/unevaluated_field_test.dart
similarity index 91%
rename from tests/language/unsorted/unevaluated_field.dart
rename to tests/language/unsorted/unevaluated_field_test.dart
index 5c701db..f33fbb5 100644
--- a/tests/language/unsorted/unevaluated_field.dart
+++ b/tests/language/unsorted/unevaluated_field_test.dart
@@ -6,12 +6,12 @@
import "package:expect/expect.dart";
-const int gx =
+const int? gx =
const bool.hasEnvironment("x") ? const int.fromEnvironment("x") : null;
class A {
- final int x = gx;
- final int y =
+ final int? x = gx;
+ final int? y =
const bool.hasEnvironment("y") ? const int.fromEnvironment("y") : null;
const A();
}
diff --git a/tests/language/why_not_promoted/nullable_operator_call_error.dart b/tests/language/why_not_promoted/nullable_operator_call_error_test.dart
similarity index 100%
rename from tests/language/why_not_promoted/nullable_operator_call_error.dart
rename to tests/language/why_not_promoted/nullable_operator_call_error_test.dart
diff --git a/tests/language_2/nosuchmethod_forwarding/abstract_override_with_different_type.dart b/tests/language_2/nosuchmethod_forwarding/abstract_override_with_different_type_test.dart
similarity index 100%
rename from tests/language_2/nosuchmethod_forwarding/abstract_override_with_different_type.dart
rename to tests/language_2/nosuchmethod_forwarding/abstract_override_with_different_type_test.dart
diff --git a/tests/language_2/unsorted/unevaluated_field.dart b/tests/language_2/unsorted/unevaluated_field_test.dart
similarity index 100%
rename from tests/language_2/unsorted/unevaluated_field.dart
rename to tests/language_2/unsorted/unevaluated_field_test.dart
diff --git a/tests/language/string/overflow.dart b/tests/standalone/string_overflow_test.dart
similarity index 69%
rename from tests/language/string/overflow.dart
rename to tests/standalone/string_overflow_test.dart
index 8b01e19..5de5d71 100644
--- a/tests/language/string/overflow.dart
+++ b/tests/standalone/string_overflow_test.dart
@@ -11,11 +11,6 @@
String a = "a";
for (; a.length < 256 * 1024 * 1024;) a = a + a;
- var exception_thrown = false;
- try {
- var concat = "$a$a$a$a$a$a$a$a";
- } on OutOfMemoryError catch (exc) {
- exception_thrown = true;
- }
- Expect.isTrue(exception_thrown);
+ var concat = "$a$a$a$a$a$a$a$a";
+ Expect.equals(concat.length, 2147483648);
}
diff --git a/tests/language_2/string/overflow.dart b/tests/standalone_2/string_overflow_test.dart
similarity index 70%
rename from tests/language_2/string/overflow.dart
rename to tests/standalone_2/string_overflow_test.dart
index ad58981..070a7e5 100644
--- a/tests/language_2/string/overflow.dart
+++ b/tests/standalone_2/string_overflow_test.dart
@@ -13,11 +13,6 @@
String a = "a";
for (; a.length < 256 * 1024 * 1024;) a = a + a;
- var exception_thrown = false;
- try {
- var concat = "$a$a$a$a$a$a$a$a";
- } on OutOfMemoryError catch (exc) {
- exception_thrown = true;
- }
- Expect.isTrue(exception_thrown);
+ var concat = "$a$a$a$a$a$a$a$a";
+ Expect.equals(concat.length, 2147483648);
}
diff --git a/tools/VERSION b/tools/VERSION
index 298baaf..7ac6cc4 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 177
+PRERELEASE 178
PRERELEASE_PATCH 0
\ No newline at end of file