From 3775eb20239946ae674690a90f6b913954f54075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 10:36:51 +0200 Subject: [PATCH 01/59] WIP --- benchmarks/compile_protos.sh | 19 + benchmarks/datasets/google_message1_proto2.pb | Bin 0 -> 289 bytes benchmarks/datasets/google_message1_proto3.pb | Bin 0 -> 289 bytes benchmarks/datasets/google_message2.pb | Bin 0 -> 84625 bytes benchmarks/datasets/query_benchmark.pb | Bin 0 -> 251369 bytes .../protos/google_message1_proto2.proto | 78 ++++ .../protos/google_message1_proto3.proto | 78 ++++ benchmarks/protos/google_message2.proto | 76 ++++ benchmarks/protos/query_benchmark/f0.proto | 22 ++ benchmarks/protos/query_benchmark/f1.proto | 43 +++ benchmarks/protos/query_benchmark/f10.proto | 21 ++ benchmarks/protos/query_benchmark/f11.proto | 17 + benchmarks/protos/query_benchmark/f12.proto | 129 +++++++ benchmarks/protos/query_benchmark/f13.proto | 10 + benchmarks/protos/query_benchmark/f14.proto | 32 ++ benchmarks/protos/query_benchmark/f15.proto | 28 ++ benchmarks/protos/query_benchmark/f16.proto | 31 ++ benchmarks/protos/query_benchmark/f17.proto | 16 + benchmarks/protos/query_benchmark/f18.proto | 32 ++ benchmarks/protos/query_benchmark/f19.proto | 29 ++ benchmarks/protos/query_benchmark/f2.proto | 65 ++++ benchmarks/protos/query_benchmark/f20.proto | 16 + benchmarks/protos/query_benchmark/f21.proto | 13 + benchmarks/protos/query_benchmark/f22.proto | 96 +++++ benchmarks/protos/query_benchmark/f23.proto | 95 +++++ benchmarks/protos/query_benchmark/f24.proto | 10 + benchmarks/protos/query_benchmark/f25.proto | 25 ++ benchmarks/protos/query_benchmark/f26.proto | 30 ++ benchmarks/protos/query_benchmark/f27.proto | 11 + benchmarks/protos/query_benchmark/f28.proto | 79 ++++ benchmarks/protos/query_benchmark/f3.proto | 20 + benchmarks/protos/query_benchmark/f4.proto | 81 ++++ benchmarks/protos/query_benchmark/f5.proto | 351 ++++++++++++++++++ benchmarks/protos/query_benchmark/f6.proto | 14 + benchmarks/protos/query_benchmark/f7.proto | 11 + benchmarks/protos/query_benchmark/f8.proto | 63 ++++ benchmarks/protos/query_benchmark/f9.proto | 36 ++ benchmarks/pubspec.yaml | 24 ++ benchmarks/run_protoc_plugin.sh | 3 + benchmarks/update_payloads.dart | 13 + 40 files changed, 1717 insertions(+) create mode 100644 benchmarks/compile_protos.sh create mode 100644 benchmarks/datasets/google_message1_proto2.pb create mode 100644 benchmarks/datasets/google_message1_proto3.pb create mode 100644 benchmarks/datasets/google_message2.pb create mode 100644 benchmarks/datasets/query_benchmark.pb create mode 100644 benchmarks/protos/google_message1_proto2.proto create mode 100644 benchmarks/protos/google_message1_proto3.proto create mode 100644 benchmarks/protos/google_message2.proto create mode 100644 benchmarks/protos/query_benchmark/f0.proto create mode 100644 benchmarks/protos/query_benchmark/f1.proto create mode 100644 benchmarks/protos/query_benchmark/f10.proto create mode 100644 benchmarks/protos/query_benchmark/f11.proto create mode 100644 benchmarks/protos/query_benchmark/f12.proto create mode 100644 benchmarks/protos/query_benchmark/f13.proto create mode 100644 benchmarks/protos/query_benchmark/f14.proto create mode 100644 benchmarks/protos/query_benchmark/f15.proto create mode 100644 benchmarks/protos/query_benchmark/f16.proto create mode 100644 benchmarks/protos/query_benchmark/f17.proto create mode 100644 benchmarks/protos/query_benchmark/f18.proto create mode 100644 benchmarks/protos/query_benchmark/f19.proto create mode 100644 benchmarks/protos/query_benchmark/f2.proto create mode 100644 benchmarks/protos/query_benchmark/f20.proto create mode 100644 benchmarks/protos/query_benchmark/f21.proto create mode 100644 benchmarks/protos/query_benchmark/f22.proto create mode 100644 benchmarks/protos/query_benchmark/f23.proto create mode 100644 benchmarks/protos/query_benchmark/f24.proto create mode 100644 benchmarks/protos/query_benchmark/f25.proto create mode 100644 benchmarks/protos/query_benchmark/f26.proto create mode 100644 benchmarks/protos/query_benchmark/f27.proto create mode 100644 benchmarks/protos/query_benchmark/f28.proto create mode 100644 benchmarks/protos/query_benchmark/f3.proto create mode 100644 benchmarks/protos/query_benchmark/f4.proto create mode 100644 benchmarks/protos/query_benchmark/f5.proto create mode 100644 benchmarks/protos/query_benchmark/f6.proto create mode 100644 benchmarks/protos/query_benchmark/f7.proto create mode 100644 benchmarks/protos/query_benchmark/f8.proto create mode 100644 benchmarks/protos/query_benchmark/f9.proto create mode 100644 benchmarks/pubspec.yaml create mode 100755 benchmarks/run_protoc_plugin.sh create mode 100644 benchmarks/update_payloads.dart diff --git a/benchmarks/compile_protos.sh b/benchmarks/compile_protos.sh new file mode 100644 index 000000000..5d95460a6 --- /dev/null +++ b/benchmarks/compile_protos.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright (c) 2018, 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. + +# These protos don't have any imports +SIMPLE_PROTOS=( + "protos/google_message1_proto2.proto" + "protos/google_message1_proto3.proto" + "protos/google_message2.proto" +) + +set -x +set -e + +mkdir -p lib/generated + +protoc --dart_out=lib/generated --plugin=protoc-gen-dart=run_protoc_plugin.sh "${PROTOS[@]/#/$SCRIPT_DIR/}" diff --git a/benchmarks/datasets/google_message1_proto2.pb b/benchmarks/datasets/google_message1_proto2.pb new file mode 100644 index 0000000000000000000000000000000000000000..f6fe7848cb889b65fb2c9465780c2e82b398639b GIT binary patch literal 289 zcmd-QOV7_w&qu8dj{HQ>|{A;GUn69Is(pqL3P_P+T4FX`ks_p6DLyqplTDYO0}D9&cq* zT^E(Wn88rMSQW`3DWFp2tYmK%5NQ(YW0Y)DTW4e)6B6bYUmh3j5Sfw*;%sf2nN*`y>=5MalvG+)6lk2Tk*(vmk}>4JGsitCF7*wJYC9MiI~W-z ZF>+Pg29~F#)+y&z&tU18n7DvV9suhNTo3>N literal 0 HcmV?d00001 diff --git a/benchmarks/datasets/google_message1_proto3.pb b/benchmarks/datasets/google_message1_proto3.pb new file mode 100644 index 0000000000000000000000000000000000000000..4955bed31b5aee2a257a4979edd3c1b6291b335f GIT binary patch literal 289 zcmd-QOV7_w&qu8dj{HQ>|{A;GUn69Is(pqL3P_P+T4FX`ks_p6DLyqplTDYO0}D9&cq* zT^E(Wn88rMSQW`3DWFp2tYmK%5NQ(YW0Y)DTW4e)6B6bYUmh3j5Sfw*;%sf2nN*`y>=5MalvG+)6lk2Tk*(vmk}>4JGsitCF7*wJYC9MiI~W-z ZF>+Pg29~F#)+y&z&tU18n7DvV9sunQToM2P literal 0 HcmV?d00001 diff --git a/benchmarks/datasets/google_message2.pb b/benchmarks/datasets/google_message2.pb new file mode 100644 index 0000000000000000000000000000000000000000..3fa0e49e57db704a0f371d2b58a2d5b315acd554 GIT binary patch literal 84625 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 _Dhvkbcqst!k~IF4a^29wPt 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

5UPf${ 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�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 rxeA?U;HZpi)cuu15i&wW{knhSRl-*b&_P=1 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 packed = []; - - /// Messages deserialized from [packed] and then serialized back into JSON. - /// Used for JSON serialization benchmarks. - final List asJson = []; - - /// Messages deserialized from [packed] and then serialized back into proto3 - /// JSON object. Used for proto3 JSON serialization benchmarks. - final List asProto3JsonObject = []; - - /// Messages deserialized from [packed] and then serialized back into proto3 - /// JSON string. Used for proto3 JSON serialization benchmarks. - final List asProto3JsonString = []; - - /// Messages deserialized from [packed]. Used in serialization benchmarks. - final List unpacked = []; - - /// Create [Dataset] from a `BenchmarkDataset` proto. - factory Dataset.fromBinary(Uint8List binary) { - final dataSet = BenchmarkDataset.fromBuffer(binary); - - final factories = Factories.forMessage(dataSet.messageName); - final ds = Dataset._(dataSet.name, factories); - - for (var payload in dataSet.payload) { - final bytes = Uint8List.fromList(payload); - final msg = factories.fromBuffer(bytes); - ds.packed.add(bytes); - ds.unpacked.add(msg); - ds.asJson.add(msg.writeToJson()); - final proto3Json = msg.toProto3Json(); - ds.asProto3JsonObject.add(proto3Json); - ds.asProto3JsonString.add(jsonEncode(proto3Json)); - } - - return ds; - } - - Dataset._(this.name, this.factories); -} - -typedef FromBufferFactory = dynamic Function(List binary); -typedef FromJsonFactory = dynamic Function(String json); -typedef FromProto3JsonStringFactory = dynamic Function(String json); -typedef FromProto3JsonObjectFactory = dynamic Function(Object json); - -class Factories { - final FromBufferFactory fromBuffer; - final FromJsonFactory fromJson; - final FromProto3JsonStringFactory fromProto3JsonString; - final FromProto3JsonObjectFactory fromProto3JsonObject; - - static Factories forMessage(String name) => - _factories[name] ?? (throw 'Unsupported message: $name'); - - /// Mapping between `BenchmarkDataset.messageName` and corresponding - /// deserialization factories. - static final _factories = { - 'benchmarks.proto2.GoogleMessage1': Factories._( - fromBuffer: (List binary) => p2.GoogleMessage1.fromBuffer(binary), - fromJson: (String json) => p2.GoogleMessage1.fromJson(json), - fromProto3JsonString: (String json) => - p2.GoogleMessage1.create()..mergeFromProto3Json(jsonDecode(json)), - fromProto3JsonObject: (Object json) => - p2.GoogleMessage1.create()..mergeFromProto3Json(json)), - 'benchmarks.proto3.GoogleMessage1': Factories._( - fromBuffer: (List binary) => p3.GoogleMessage1.fromBuffer(binary), - fromJson: (String json) => p3.GoogleMessage1.fromJson(json), - fromProto3JsonString: (String json) => - p3.GoogleMessage1.create()..mergeFromProto3Json(jsonDecode(json)), - fromProto3JsonObject: (Object json) => - p3.GoogleMessage1.create()..mergeFromProto3Json(json)), - 'benchmarks.proto2.GoogleMessage2': Factories._( - fromBuffer: (List binary) => GoogleMessage2.fromBuffer(binary), - fromJson: (String json) => GoogleMessage2.fromJson(json), - fromProto3JsonString: (String json) => - GoogleMessage2.create()..mergeFromProto3Json(jsonDecode(json)), - fromProto3JsonObject: (Object json) => - GoogleMessage2.create()..mergeFromProto3Json(json)), - 'benchmarks.google_message3.GoogleMessage3': Factories._( - fromBuffer: (List binary) => GoogleMessage3.fromBuffer(binary), - fromJson: (String json) => GoogleMessage3.fromJson(json), - fromProto3JsonString: (String json) => - GoogleMessage3.create()..mergeFromProto3Json(jsonDecode(json)), - fromProto3JsonObject: (Object json) => - GoogleMessage3.create()..mergeFromProto3Json(json)), - 'benchmarks.google_message4.GoogleMessage4': Factories._( - fromBuffer: (List binary) => GoogleMessage4.fromBuffer(binary), - fromJson: (String json) => GoogleMessage4.fromJson(json), - fromProto3JsonString: (String json) => - GoogleMessage4.create()..mergeFromProto3Json(jsonDecode(json)), - fromProto3JsonObject: (Object json) => - GoogleMessage4.create()..mergeFromProto3Json(json)), - }; - - Factories._( - {required this.fromBuffer, - required this.fromJson, - required this.fromProto3JsonString, - required this.fromProto3JsonObject}); -} - -/// Base for all protobuf benchmarks. -abstract class _ProtobufBenchmark extends BenchmarkBase { - final List datasets; - - _ProtobufBenchmark(this.datasets, String name) : super(name); -} - -/// Binary deserialization benchmark. -class FromBinaryBenchmark extends _ProtobufBenchmark { - FromBinaryBenchmark(datasets) : super(datasets, 'FromBinary'); - - @override - void run() { - for (var i = 0; i < datasets.length; i++) { - final ds = datasets[i]; - final f = ds.factories.fromBuffer; - for (var j = 0; j < ds.packed.length; j++) { - f(ds.packed[j]); - } - } - } -} - -/// Binary serialization benchmark. -class ToBinaryBenchmark extends _ProtobufBenchmark { - ToBinaryBenchmark(datasets) : super(datasets, 'ToBinary'); - - @override - void run() { - for (final ds in datasets) { - for (final unpacked in ds.unpacked) { - unpacked.writeToBuffer(); - } - } - } -} - -/// JSON deserialization benchmark. -class FromJsonBenchmark extends _ProtobufBenchmark { - FromJsonBenchmark(datasets) : super(datasets, 'FromJson'); - - @override - void run() { - for (final ds in datasets) { - final f = ds.factories.fromJson; - for (final jsonStr in ds.asJson) { - f(jsonStr); - } - } - } -} - -/// JSON serialization benchmark. -class ToJsonBenchmark extends _ProtobufBenchmark { - ToJsonBenchmark(datasets) : super(datasets, 'ToJson'); - - @override - void run() { - for (final ds in datasets) { - for (final unpacked in ds.unpacked) { - unpacked.writeToJson(); - } - } - } -} - -/// proto3 JSON deserialization benchmark: from JSON string to message. -class FromProto3JsonStringBenchmark extends _ProtobufBenchmark { - FromProto3JsonStringBenchmark(datasets) - : super(datasets, 'FromProto3JsonString'); - - @override - void run() { - for (final ds in datasets) { - final f = ds.factories.fromProto3JsonString; - for (final jsonStr in ds.asProto3JsonString) { - f(jsonStr); - } - } - } -} - -/// proto3 JSON serialization benchmark: from message to JSON string. -class ToProto3JsonStringBenchmark extends _ProtobufBenchmark { - ToProto3JsonStringBenchmark(datasets) : super(datasets, 'ToProto3JsonString'); - - @override - void run() { - for (final ds in datasets) { - for (final unpacked in ds.unpacked) { - jsonEncode(unpacked.toProto3Json()); - } - } - } -} - -/// proto3 JSON deserialization benchmark: from JSON object to message. -class FromProto3JsonObjectBenchmark extends _ProtobufBenchmark { - FromProto3JsonObjectBenchmark(datasets) - : super(datasets, 'FromProto3JsonObject'); - - @override - void run() { - for (final ds in datasets) { - final f = ds.factories.fromProto3JsonObject; - for (final jsonObj in ds.asProto3JsonObject) { - f(jsonObj); - } - } - } -} - -/// proto3 JSON serialization benchmark: from message to JSON object. -class ToProto3JsonObjectBenchmark extends _ProtobufBenchmark { - ToProto3JsonObjectBenchmark(datasets) : super(datasets, 'ToProto3JsonObject'); - - @override - void run() { - for (final ds in datasets) { - for (final unpacked in ds.unpacked) { - unpacked.toProto3Json(); - } - } - } -} - -/// HashCode computation benchmark. -class HashCodeBenchmark extends _ProtobufBenchmark { - HashCodeBenchmark(datasets) : super(datasets, 'HashCode'); - - @override - void run() { - for (final dataset in datasets) { - for (final unpacked in dataset.unpacked) { - unpacked.hashCode; - } - } - } -} - -void run(List datasets) { - FromBinaryBenchmark(datasets).report(); - ToBinaryBenchmark(datasets).report(); - FromJsonBenchmark(datasets).report(); - ToJsonBenchmark(datasets).report(); - FromProto3JsonStringBenchmark(datasets).report(); - ToProto3JsonStringBenchmark(datasets).report(); - FromProto3JsonObjectBenchmark(datasets).report(); - ToProto3JsonObjectBenchmark(datasets).report(); - HashCodeBenchmark(datasets).report(); -} diff --git a/protobuf_benchmarks/lib/readfile.dart b/protobuf_benchmarks/lib/readfile.dart deleted file mode 100644 index b4614ea79..000000000 --- a/protobuf_benchmarks/lib/readfile.dart +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright (c) 2018, 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. - -export 'readfile_vm.dart' if (dart.library.js) 'readfile_d8.dart' show readfile; diff --git a/protobuf_benchmarks/lib/readfile_d8.dart b/protobuf_benchmarks/lib/readfile_d8.dart deleted file mode 100644 index 990511187..000000000 --- a/protobuf_benchmarks/lib/readfile_d8.dart +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2018, 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 'dart:typed_data'; - -import 'package:js/js.dart'; - -/// Read the file at the given [path]. -/// -/// This relies on the `readbuffer` function provided by d8. -@JS() -external ByteBuffer readbuffer(String path); - -/// Read the file at the given [path]. -Uint8List readfile(String path) { - return Uint8List.view(readbuffer(path)); -} diff --git a/protobuf_benchmarks/lib/readfile_vm.dart b/protobuf_benchmarks/lib/readfile_vm.dart deleted file mode 100644 index 0483e19f2..000000000 --- a/protobuf_benchmarks/lib/readfile_vm.dart +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) 2018, 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 'dart:io'; -import 'dart:typed_data'; - -Uint8List readfile(String path) { - return File(path).readAsBytesSync(); -} diff --git a/protobuf_benchmarks/pubspec.yaml b/protobuf_benchmarks/pubspec.yaml deleted file mode 100644 index 9e49b8d2d..000000000 --- a/protobuf_benchmarks/pubspec.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (c) 2018, 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. - -name: protobuf_benchmarks -description: Benchmarks various protobuf functions -publish_to: none - -environment: - sdk: '>=2.12.0 <3.0.0' - -dependencies: - protobuf: any - -dev_dependencies: - benchmark_harness: ^2.0.0 - js: ^0.6.3 - lints: ^1.0.0 - protoc_plugin: - path: '../protoc_plugin' - -dependency_overrides: - protobuf: - path: "../protobuf" diff --git a/protobuf_benchmarks/run_protoc_plugin.sh b/protobuf_benchmarks/run_protoc_plugin.sh deleted file mode 100755 index 958631717..000000000 --- a/protobuf_benchmarks/run_protoc_plugin.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -dart run protoc_plugin protoc-gen-dart diff --git a/query_benchmark/analysis_options.yaml b/query_benchmark/analysis_options.yaml deleted file mode 100644 index e84124713..000000000 --- a/query_benchmark/analysis_options.yaml +++ /dev/null @@ -1,9 +0,0 @@ -include: package:lints/recommended.yaml - -linter: - rules: - - comment_references - - directives_ordering - - prefer_relative_imports - - prefer_single_quotes - - prefer_spread_collections diff --git a/query_benchmark/bin/decode.dart b/query_benchmark/bin/decode.dart deleted file mode 100644 index f83e88967..000000000 --- a/query_benchmark/bin/decode.dart +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2018, 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:query_benchmark/benchmark.dart'; -import 'package:query_benchmark/generated/f0.pb.dart' as f0; -import 'package:query_benchmark/readfile.dart'; - -main() { - final path = - const String.fromEnvironment('testfile', defaultValue: 'testdata/500.pb'); - - List encoded = readfile(path); - print( - formatReport( - title: 'protobuf_decode', - duration: measure(() => f0.A0.fromBuffer(encoded)), - ), - ); -} diff --git a/query_benchmark/bin/decode_json.dart b/query_benchmark/bin/decode_json.dart deleted file mode 100644 index da0fe6fbb..000000000 --- a/query_benchmark/bin/decode_json.dart +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2018, 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:query_benchmark/benchmark.dart'; -import 'package:query_benchmark/generated/f0.pb.dart' as f0; -import 'package:query_benchmark/readfile.dart'; - -main() { - final path = - const String.fromEnvironment('testfile', defaultValue: 'testdata/500.pb'); - - List encoded = readfile(path); - f0.A0 a = f0.A0.fromBuffer(encoded); - String json = a.writeToJson(); - print( - formatReport( - title: 'protobuf_decode_json', - duration: measure(() => f0.A0.fromJson(json)), - ), - ); -} diff --git a/query_benchmark/bin/encode.dart b/query_benchmark/bin/encode.dart deleted file mode 100644 index 5f9380697..000000000 --- a/query_benchmark/bin/encode.dart +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2018, 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:query_benchmark/benchmark.dart'; -import 'package:query_benchmark/generated/f0.pb.dart' as f0; -import 'package:query_benchmark/readfile.dart'; - -main() { - final path = - const String.fromEnvironment('testfile', defaultValue: 'testdata/500.pb'); - - List encoded = readfile(path); - f0.A0 a = f0.A0.fromBuffer(encoded); - print( - formatReport( - title: 'protobuf_encode', - duration: measure(() => a.writeToBuffer()), - ), - ); -} diff --git a/query_benchmark/bin/encode_json.dart b/query_benchmark/bin/encode_json.dart deleted file mode 100644 index 41f483bcd..000000000 --- a/query_benchmark/bin/encode_json.dart +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2018, 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:query_benchmark/benchmark.dart'; -import 'package:query_benchmark/generated/f0.pb.dart' as f0; -import 'package:query_benchmark/readfile.dart'; - -main() { - final path = - const String.fromEnvironment('testfile', defaultValue: 'testdata/500.pb'); - - List encoded = readfile(path); - f0.A0 a = f0.A0.fromBuffer(encoded); - print( - formatReport( - title: 'protobuf_encode_json', - duration: measure(() => a.writeToJson()), - ), - ); -} diff --git a/query_benchmark/bin/set_nested_value.dart b/query_benchmark/bin/set_nested_value.dart deleted file mode 100644 index 0b7afb696..000000000 --- a/query_benchmark/bin/set_nested_value.dart +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2018, 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:protobuf/protobuf.dart'; -import 'package:query_benchmark/benchmark.dart'; -import 'package:query_benchmark/generated/f0.pb.dart' as f0; -import 'package:query_benchmark/generated/f19.pb.dart' as f19; -import 'package:query_benchmark/generated/f2.pb.dart' as f2; -import 'package:query_benchmark/readfile.dart'; - -main() { - final path = - const String.fromEnvironment('testfile', defaultValue: 'testdata/500.pb'); - - List encoded = readfile(path); - f0.A0 a = f0.A0.fromBuffer(encoded)..freeze(); - print( - formatReport( - title: 'protobuf_decode', - duration: measure(() => a.rebuild((f0.A0 a0Builder) { - a0Builder.a4.last = a0Builder.a4.last.rebuild((f2.A1 a1builder) { - a1builder.a378 = a1builder.a378.rebuild( - (f19.A220 a220builder) => a220builder.a234 = 'new_value'); - }); - })), - ), - ); -} diff --git a/query_benchmark/compile_protos.sh b/query_benchmark/compile_protos.sh deleted file mode 100755 index 03b69d8bb..000000000 --- a/query_benchmark/compile_protos.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -rm -rf lib/generated -mkdir lib/generated -protoc --dart_out=lib/generated --plugin=protoc-gen-dart=run_protoc_plugin.sh -Iprotos protos/*.proto -dart format lib/generated diff --git a/query_benchmark/lib/benchmark.dart b/query_benchmark/lib/benchmark.dart deleted file mode 100644 index d69419443..000000000 --- a/query_benchmark/lib/benchmark.dart +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2018, 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. - -/// Returns the average time to execute [f] over [iterations] repetitions. -/// -/// Will first run [f] [warmupIterations] times to warm up the runtime. -Duration measure(void Function() f, - {int warmupIterations = 100, int iterations = 1000}) { - for (int i = 0; i < warmupIterations; i++) { - f(); - } - var s = Stopwatch()..start(); - for (int i = 0; i < iterations; i++) { - f(); - } - return s.elapsed ~/ iterations; -} - -String formatReport({required String title, required Duration duration}) { - return 'RunTimeRaw($title): ${duration.inMicroseconds} us'; -} diff --git a/query_benchmark/lib/readfile.dart b/query_benchmark/lib/readfile.dart deleted file mode 100644 index b4614ea79..000000000 --- a/query_benchmark/lib/readfile.dart +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright (c) 2018, 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. - -export 'readfile_vm.dart' if (dart.library.js) 'readfile_d8.dart' show readfile; diff --git a/query_benchmark/lib/readfile_d8.dart b/query_benchmark/lib/readfile_d8.dart deleted file mode 100644 index 990511187..000000000 --- a/query_benchmark/lib/readfile_d8.dart +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2018, 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 'dart:typed_data'; - -import 'package:js/js.dart'; - -/// Read the file at the given [path]. -/// -/// This relies on the `readbuffer` function provided by d8. -@JS() -external ByteBuffer readbuffer(String path); - -/// Read the file at the given [path]. -Uint8List readfile(String path) { - return Uint8List.view(readbuffer(path)); -} diff --git a/query_benchmark/lib/readfile_vm.dart b/query_benchmark/lib/readfile_vm.dart deleted file mode 100644 index e202ec980..000000000 --- a/query_benchmark/lib/readfile_vm.dart +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) 2018, 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 'dart:io'; - -List readfile(String path) { - return File(path).readAsBytesSync(); -} diff --git a/query_benchmark/mono_pkg.yaml b/query_benchmark/mono_pkg.yaml deleted file mode 100644 index b23af8b06..000000000 --- a/query_benchmark/mono_pkg.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# See https://github.com/dart-lang/mono_repo for details - -stages: - - format_analyze: - - group: - - format - - command: ./../tool/setup.sh - - command: ./compile_protos.sh - - analyze: --fatal-infos - sdk: dev diff --git a/query_benchmark/protoc_version b/query_benchmark/protoc_version deleted file mode 100644 index 12566ed7f..000000000 --- a/query_benchmark/protoc_version +++ /dev/null @@ -1 +0,0 @@ -3.14.0 \ No newline at end of file diff --git a/query_benchmark/protos/f0.proto b/query_benchmark/protos/f0.proto deleted file mode 100644 index cd22517cf..000000000 --- a/query_benchmark/protos/f0.proto +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1.a2.a3; -import "f2.proto"; -import "f3.proto"; -message A0 { - repeated .a0.a1.a2.a3.A1 a4 = 1; - optional string a5 = 3; - enum A2 { - A3 = 0; - A4 = 1; - A5 = 2; - A6 = 3; - A7 = 4; - A8 = 5; - } - optional A2 a6 = 2; - optional a7.A9 a8 = 4; -} diff --git a/query_benchmark/protos/f1.proto b/query_benchmark/protos/f1.proto deleted file mode 100644 index 3817d972f..000000000 --- a/query_benchmark/protos/f1.proto +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1.a274; -import "f5.proto"; -message A313 { - optional int32 a90 = 1; - optional int32 a275 = 2; -} -message A314 { - repeated A313 a276 = 1; -} -message A315 { - optional string a277 = 1; - optional a10.A113.A59 a99 = 2; - optional int64 a278 = 3; - repeated string a279 = 4; -} -message A316 { - optional string a280 = 1; - optional int64 a281 = 2; - repeated A315 a282 = 3; -} -message A317 { - repeated A316 a283 = 1; -} -extend a10.A56 { - repeated A313 a276 = 134096400; - optional A314 a284 = 141473177; -} -message A318 { - message A319 { - optional int32 a285 = 1; - optional string a54 = 2; - } - repeated A319 a286 = 1; -} -extend a10.A57 { - optional int32 a287 = 134096400; - optional A318 a288 = 185706300; -} diff --git a/query_benchmark/protos/f10.proto b/query_benchmark/protos/f10.proto deleted file mode 100644 index e4cdadf02..000000000 --- a/query_benchmark/protos/f10.proto +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a10.a68; -message A102 { - optional string a52 = 1; - optional uint64 a69 = 2; - optional uint64 a70 = 3; - optional uint64 a71 = 4; -} -message A103 { - optional string a52 = 1; - optional uint64 a72 = 2; - repeated A102 a73 = 3; -} -message A104 { - repeated A103 message = 1; - optional string a74 = 2; -} diff --git a/query_benchmark/protos/f11.proto b/query_benchmark/protos/f11.proto deleted file mode 100644 index 61958befe..000000000 --- a/query_benchmark/protos/f11.proto +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -import "f12.proto"; -message A105 { - optional string a75 = 1; -}; -message A106 { - optional A105 a76 = 1; - optional string a77 = 3; -}; -message A107 { - optional string a78 = 1; -} diff --git a/query_benchmark/protos/f12.proto b/query_benchmark/protos/f12.proto deleted file mode 100644 index 3ba0463bd..000000000 --- a/query_benchmark/protos/f12.proto +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -import "f25.proto"; -import "f5.proto"; -package a260; -enum A322 { - A323 = 0; - A324 = 999; - A325 = 1000; - A326 = 1001; - A327 = 1002; - A328 = 1003; - A329 = 1004; - A330 = 1005; - A331 = 1006; - A332 = 1007; - A333 = 1008; - A334 = 1100; - A335 = 1102; - A336 = 1103; - A337 = 1104; - A338 = 1105; - A339 = 1106; - A340 = 1107; - A341 = 1108; - A342 = 1109; - A343 = 1200; - A344 = 1201; - A345 = 1203; - A346 = 1204; - A347 = 1202; - A348 = 1211; - A349 = 1212; - A350 = 1220; - A351 = 1221; - A352 = 1222; - A353 = 1223; - A354 = 1240; - A355 = 1300; - A356 = 1301; - A357 = 1400; - A358 = 1401; - A359 = 1500; - A360 = 1501; - A361 = 1600; - A362 = 1601; - A363 = 1700; - A364 = 1701; - A365 = 1702; - A366 = 1800; - A367 = 1801; - A368 = 1802; - A369 = 1803; - A370 = 1900; - A371 = 1901; - A372 = 2000; - A373 = 2100; - A374 = 2101; - A375 = 2300; - A376 = 2400; - A377 = 2500; - A378 = 2600; - A379 = 2601; - A380 = 2602; - A381 = 2603; - A382 = 9900; - A383 = 9901; - A384 = 9902; - A385 = 9903; - A386 = 9904; - A387 = 9905; -}; -message A388 { - optional bool a293 = 1 [default = false]; - optional bool a294 = 2 [default = false]; - optional bool a295 = 3 [default = false]; - optional bool a296 = 4 [default = false]; - optional bool a297 = 5 [default = false]; - optional bool a298 = 6 [default = false]; - optional bool a15 = 7 [default = false]; - optional int32 a299 = 8; - optional bool a300 = 9 [default = false]; - optional bool a301 = 10 [default = false]; - optional bool a302 = 11 [default = false]; - optional bool a303 = 13 [default = false]; - optional bool a304 = 12 [default = false]; -}; -message A389 { - optional bool a300 = 1 [default = false]; - optional bool a305 = 2 [default = false]; -}; -enum A390 { - A391 = 0; - A392 = 1; - A393 = 2; - A394 = 3; - A395 = 4; - A396 = 5; - A397 = 6; - A398 = 7; -}; -extend a10.A56 { - optional A322 a306 = 40075780; - optional A388 a307 = 40270992; - optional A389 a308 = 69646961; - optional A399 a309 = 40093572; - optional A390 a310 = 40221563; - repeated A308 a311 = 40223876; -}; -extend a10.A57 { - optional A322 a312 = 41149386; - optional A388 a313 = 41551199; - optional A389 a314 = 69646961; - optional A58 a21 = 41744383; - repeated A308 a315 = 41909987; -}; -message A399 { - repeated A322 a306 = 1; -}; -message A58 { - repeated A322 a306 = 1; -}; -extend a10.A60 { - optional bool a316 = 43601160; - optional string a317 = 71304954; -}; diff --git a/query_benchmark/protos/f13.proto b/query_benchmark/protos/f13.proto deleted file mode 100644 index c67e33375..000000000 --- a/query_benchmark/protos/f13.proto +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto3"; -package a205.a206; -message A190 { - int64 a258 = 1; - int32 a259 = 2; -} diff --git a/query_benchmark/protos/f14.proto b/query_benchmark/protos/f14.proto deleted file mode 100644 index 9c87e38ee..000000000 --- a/query_benchmark/protos/f14.proto +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a10.a68.a211; -message A192 { - message A193 { - optional string a52 = 1; - optional int32 a97 = 2; - optional string a212 = 3; - optional string a213 = 4; - optional bool a214 = 5 [default = true]; - optional bool a215 = 6; - optional uint32 a216 = 7 [default = 2]; - } - repeated A193 a86 = 2; - message A194 { - optional string a52 = 1; - optional string a213 = 2; - optional bool a214 = 3 [default = true]; - optional uint32 a216 = 4 [default = 2]; - } - repeated A194 a217 = 3; - message A195 { - optional string a52 = 1; - optional string a213 = 2; - optional bool a214 = 3 [default = true]; - optional uint32 a216 = 4 [default = 2]; - } - repeated A195 a218 = 4; -} diff --git a/query_benchmark/protos/f15.proto b/query_benchmark/protos/f15.proto deleted file mode 100644 index 623faaeab..000000000 --- a/query_benchmark/protos/f15.proto +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto3"; -package a46.a47.a1.a48.a49.a4; -import "f12.proto"; -message A196 { - string a219 = 1; - A197 a220 = 2; -} -message A197 { - enum A198 { - A199 = 0; - A200 = 1; - A201 = 2; - A202 = 3; - A203 = 4; - A204 = 5; - A205 = 6; - A206 = 7; - A207 = 8; - A208 = 9; - A209 = 10; - } - A198 a221 = 1; - string a222 = 2; -} diff --git a/query_benchmark/protos/f16.proto b/query_benchmark/protos/f16.proto deleted file mode 100644 index 8e60c6a3f..000000000 --- a/query_benchmark/protos/f16.proto +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -import "f17.proto"; -import "f18.proto"; -import "f12.proto"; -message A210 { - enum A211 { - A212 = 0; - A213 = 1; - A214 = 2; - } - optional string a223 = 1; - optional string a224 = 3; - message A215 { - repeated A216 a225 = 1; - } - optional A215 a226 = 2; - optional A211 a227 = 4; - optional bool a228 = 5; -} -message A217 { - optional A218 a229 = 1; - message A219 { - repeated A216 a230 = 1; - } - optional A219 a231 = 2; -} diff --git a/query_benchmark/protos/f17.proto b/query_benchmark/protos/f17.proto deleted file mode 100644 index 65516fee4..000000000 --- a/query_benchmark/protos/f17.proto +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -import "f4.proto"; -import "f12.proto"; -message A320 { - optional string a375 = 1; - optional bytes a376 = 2; -} -message A216 { - optional string a377 = 1; - optional A320 a105 = 2; -} diff --git a/query_benchmark/protos/f18.proto b/query_benchmark/protos/f18.proto deleted file mode 100644 index d0fa45fd4..000000000 --- a/query_benchmark/protos/f18.proto +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -import "f12.proto"; -message A218 { - enum A400 { - A401 = 0; - A402 = 1; - A235 = 2; - A403 = 3; - A404 = 4; - A405 = 5; - A406 = 6; - A407 = 7; - A408 = 16; - A409 = 8; - A410 = 9; - A411 = 10; - A412 = 11; - A413 = 12; - A414 = 13; - A415 = 14; - A416 = 15; - A417 = 17; - A418 = 20; - } - optional A400 a318 = 1 [default = A401]; - optional string a319 = 2; -} diff --git a/query_benchmark/protos/f19.proto b/query_benchmark/protos/f19.proto deleted file mode 100644 index c2aafb31d..000000000 --- a/query_benchmark/protos/f19.proto +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1.a232; -import "f1.proto"; -message A220 { - optional A221 a233 = 7; - optional string a234 = 1; - optional bytes a235 = 5; - optional string a236 = 8; - optional string a237 = 6; - optional string a238 = 2; - optional int32 a239 = 3; - optional int32 a240 = 4; - extensions 192367380; -} -enum A221 { - A222 = 0; - A223 = 1; -} -enum A224 { - A225 = 0; - A226 = 1; - A227 = 2; - A228 = 3; - A229 = 4; -}; diff --git a/query_benchmark/protos/f2.proto b/query_benchmark/protos/f2.proto deleted file mode 100644 index 8ee436f7e..000000000 --- a/query_benchmark/protos/f2.proto +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1.a2.a3; -import "f1.proto"; -import "f19.proto"; -import "f20.proto"; -import "f15.proto"; -import "f9.proto"; -message A1 { - optional .a0.a1.a232.A220 a378 = 1; - optional .a0.a1.a232.A220 a379 = 2; - optional .a46.a47.a1.a48.a49.a4.A196 a380 = 5; - message A465 { - optional string a381 = 1; - optional string a234 = 2; - optional string a382 = 3; - optional string a383 = 4; - optional string a384 = 10; - optional string a385 = 5; - optional string a386 = 6; - optional string a387 = 7; - optional int64 a388 = 8; - optional string a194 = 9; - } - optional A465 a389 = 3; - message A466 { - optional float a390 = 1; - optional float a391 = 2; - optional float a392 = 3; - optional float a393 = 4; - } - optional A466 a394 = 4; - optional string a395 = 6; - optional A467 a274 = 7; - repeated A468 a396 = 8; - optional bool a397 = 9; - message A469 { - optional .a0.a1.a232.A230 a397 = 1; - optional .a0.a1.a232.A230 a398 = 2; - optional .a0.a1.a232.A230 a399 = 3; - } - optional A469 a400 = 10; -} -message A467 { - message A470 { - optional .a46.a47.a1.a48.a49.a4.A99 a401 = 9; - optional .a46.a47.a1.a48.a49.a4.A100 a402 = 10; - optional .a46.a47.a1.a48.a49.a4.A101 a403 = 11; - } - optional A470 a404 = 1; -} -message A468 { - optional string a395 = 1; - optional A471 a405 = 2; - optional string a406 = 3; -} -message A471 { - optional float a390 = 1; - optional float a392 = 2; - optional float a391 = 3; - optional float a393 = 4; -} diff --git a/query_benchmark/protos/f20.proto b/query_benchmark/protos/f20.proto deleted file mode 100644 index 48eb17cb1..000000000 --- a/query_benchmark/protos/f20.proto +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1.a232; -import "f1.proto"; -import "f21.proto"; -import "f22.proto"; -message A230 { - optional string a222 = 1; - optional string a224 = 2; - optional a0.a1.A231 a241 = 5; - optional A232 a242 = 3; - reserved 4; -} diff --git a/query_benchmark/protos/f21.proto b/query_benchmark/protos/f21.proto deleted file mode 100644 index 4cfdf8fd0..000000000 --- a/query_benchmark/protos/f21.proto +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -import "f17.proto"; -import "f12.proto"; -message A232 { - optional string a289 = 1; - optional string a290 = 3; - map a291 = 2; -} diff --git a/query_benchmark/protos/f22.proto b/query_benchmark/protos/f22.proto deleted file mode 100644 index 4ec044a48..000000000 --- a/query_benchmark/protos/f22.proto +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -import "f8.proto"; -import "f1.proto"; -import "f21.proto"; -import "f16.proto"; -import "f7.proto"; -import "f27.proto"; -import "f28.proto"; -import "f23.proto"; -import "f11.proto"; -import "f24.proto"; -import "f4.proto"; -import "f12.proto"; -message A419 { - repeated A420 a320 = 1; - optional A321 a291 = 2; -}; -message A421 { - optional bytes a321 = 1; - optional bool a322 = 6 [default = false]; - optional bytes a323 = 2; - repeated A420 a324 = 3; - optional A321 a325 = 4; - optional A231 a241 = 5; - map a326 = 7; - optional A422 a327 = 8; - optional string a224 = 9; -}; -message A420 { - optional int32 a328 = 1; - optional int32 a329 = 2; - oneof a99 { - A423 a330 = 3; - A424 a331 = 4; - } -} -message A423 { - optional a0.a1.a232.A239 a332 = 6; - optional string a224 = 7; - optional A231 a241 = 8; - oneof a99 { - a0.a1.A106 a333 = 1; - a0.a1.A293 a334 = 4; - A217 a335 = 3; - A232 a242 = 5; - } - reserved 2; -} -message A424 { - optional a0.a1.a232.A239 a336 = 3; - optional a0.a1.a232.A241 a337 = 7; - optional a0.a1.A107 a338 = 1; - optional A210 a2 = 2; - optional A425 a339 = 5; - optional bytes a340 = 4; - optional bool a341 = 6 [default = false]; - optional A231 a241 = 16; -} -message A425 { - enum A426 { - A235 = 0; - A427 = 1; - A428 = 2; - A429 = 3; - } - optional A426 a342 = 1; -} -message A231 { - optional bool a322 = 1 [default = false]; - optional bool a341 = 2 [default = false]; - optional bool a343 = 3 [default = false]; - optional int32 a344 = 4; - optional bool a345 = 6; - optional A430 a346 = 5; - optional bytes a347 = 7; - optional A66 a348 = 8; -}; -message A430 { - repeated a0.a1.a349.A431 a350 = 5; - repeated A420 a320 = 6; -} -message A432 { - optional string a351 = 1; - optional string a278 = 2; - optional bytes a352 = 3; - optional A66 a348 = 4; -} -message A422 { - repeated A432 a353 = 1; - repeated string a354 = 2; -} diff --git a/query_benchmark/protos/f23.proto b/query_benchmark/protos/f23.proto deleted file mode 100644 index 1a9dfe6df..000000000 --- a/query_benchmark/protos/f23.proto +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1.a232; -import "f1.proto"; -import "f4.proto"; -import "f12.proto"; -message A233 { - enum A234 { - A235 = 0; - A236 = 1; - A237 = 2; - A238 = 3; - } - optional A234 a243 = 1; - optional string a244 = 2; - optional string a245 = 3; -} -message A239 { - optional string a246 = 3; - optional string a247 = 2; - optional string a248 = 8; - optional string a249 = 1; - optional string a250 = 4; - optional string a251 = 5; - optional A240 a252 = 6; - optional string a253 = 7; - optional string a254 = 9; - optional string a255 = 10; - optional string a256 = 11; -} -message A240 { - reserved 3, 4; - optional string a245 = 1; - optional string a257 = 2; -} -message A241 { - enum A59 { - A235 = 0; - A242 = 14; - A243 = 4; - A244 = 47; - A245 = 33; - A246 = 5; - A247 = 45; - A248 = 2; - A249 = 28; - A250 = 13; - A251 = 29; - A252 = 27; - A253 = 42; - A254 = 18; - A255 = 31; - A256 = 25; - A257 = 3; - A258 = 7; - A259 = 8; - A260 = 24; - A261 = 9; - A262 = 6; - A263 = 19; - A264 = 15; - A265 = 10; - A266 = 11; - A267 = 35; - A268 = 20; - A269 = 1; - A270 = 41; - A271 = 12; - A272 = 26; - A273 = 17; - A274 = 34; - A275 = 23; - A276 = 40; - A277 = 46; - A278 = 51; - A279 = 16; - A280 = 30; - A281 = 38; - A282 = 21; - A283 = 22; - A284 = 49; - A285 = 32; - A286 = 36; - A287 = 37; - A288 = 39; - A289 = 48; - A290 = 50; - A291 = 43; - A292 = 44; - } - optional A59 a99 = 1; -} diff --git a/query_benchmark/protos/f24.proto b/query_benchmark/protos/f24.proto deleted file mode 100644 index 5b8a7edfe..000000000 --- a/query_benchmark/protos/f24.proto +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -import "f12.proto"; -message A293 { - optional string a5 = 1; -} diff --git a/query_benchmark/protos/f25.proto b/query_benchmark/protos/f25.proto deleted file mode 100644 index c64f666a3..000000000 --- a/query_benchmark/protos/f25.proto +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a260; -enum A294 { - A295 = 0; - A296 = 1; - A297 = 10; - A298 = 20; - A299 = 21; - A300 = 30; - A301 = 40; - A302 = 50; - A303 = 58; - A304 = 60; - A305 = 70; - A306 = 80; - A307 = 1000; -}; -message A308 { - optional A294 a261 = 1; - optional string a262 = 2; -}; diff --git a/query_benchmark/protos/f26.proto b/query_benchmark/protos/f26.proto deleted file mode 100644 index 0085b3481..000000000 --- a/query_benchmark/protos/f26.proto +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a10.a68; -import "f10.proto"; -import "f5.proto"; -message A309 { - optional int32 a263 = 1; - optional int32 a264 = 2; - optional int32 a265 = 3; - optional string a266 = 4; -} -message A310 { - repeated string a267 = 1; - optional string a268 = 2; - repeated A109 a269 = 15; - optional A309 a270 = 3; - optional A104 a271 = 16; -} -message A311 { - optional string a272 = 1; - message A312 { - optional string a52 = 1; - optional string a273 = 2; - optional string a235 = 15; - } - repeated A312 a79 = 15; -} diff --git a/query_benchmark/protos/f27.proto b/query_benchmark/protos/f27.proto deleted file mode 100644 index 2cd62c8b4..000000000 --- a/query_benchmark/protos/f27.proto +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -import "f17.proto"; -import "f12.proto"; -message A321 { - repeated A216 a292 = 1; -} diff --git a/query_benchmark/protos/f28.proto b/query_benchmark/protos/f28.proto deleted file mode 100644 index 78e1e446d..000000000 --- a/query_benchmark/protos/f28.proto +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1.a349; -message A433 { - oneof a105 { - string a192 = 1; - int32 a355 = 2; - bool a356 = 3; - double a191 = 4; - } -}; -message A434 { - optional string a357 = 1; - optional A435 a358 = 2; -} -message A435 { - oneof a359 { - bool a360 = 1; - A436 a361 = 2; - A437 a362 = 3; - } - message A436 { - optional bool a361 = 1; - } - message A437 { - optional A433 a105 = 1; - } -} -enum A438 { - A439 = 0; - A440 = 1; - A441 = 2; - A442 = 3; - A443 = 4; - A444 = 5; - A445 = 6; - A446 = 7; - A447 = 8; - A448 = 9; - A449 = 10; - A450 = 13; - A451 = 14; - A452 = 15; - A453 = 16; - A454 = 17; -}; -message A455 { - optional A438 a363 = 1; - repeated A456 a364 = 2; -}; -message A456 { - oneof a365 { - A455 a366 = 1; - A434 a367 = 2; - A433 a368 = 3; - } -}; -message A457 { - optional string a98 = 1; -}; -message A431 { - enum A458 { - A459 = 0; - A460 = 1; - A461 = 2; - A462 = 3; - A463 = 4; - A464 = 5; - } - optional A458 a369 = 1; - optional A456 a370 = 2; - optional int32 a371 = 3; - optional int32 a372 = 4; - optional A434 a373 = 5; - optional A457 a374 = 16; -}; diff --git a/query_benchmark/protos/f3.proto b/query_benchmark/protos/f3.proto deleted file mode 100644 index e65388134..000000000 --- a/query_benchmark/protos/f3.proto +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -import "f13.proto"; -import "f6.proto"; -package a7; -message A9 { - optional bytes a203 = 1; - optional A189 a204 = 2; -} -message A189 { - optional a205.a206.A190 a207 = 1; - message A191 { - optional int64 a208 = 1; - } - optional A191 a209 = 2; - optional A61 a210 = 3; -} diff --git a/query_benchmark/protos/f4.proto b/query_benchmark/protos/f4.proto deleted file mode 100644 index 14076aea9..000000000 --- a/query_benchmark/protos/f4.proto +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -import "f5.proto"; -package a9; -enum A10 { - A11 = 0; - A12 = 1; - A13 = 2; - A14 = 3; - A15 = 4; - A16 = 5; - A17 = 15; - A18 = 6; - A19 = 9; - A20 = 7; - A21 = 8; - A22 = 16; - A23 = 10; - A24 = 11; - A25 = 12; - A26 = 13; - A27 = 14; - A28 = 20; - A29 = 21; - A30 = 22; - A31 = 23; - A32 = 24; - A33 = 207; - A34 = 30; - A35 = 31; - A36 = 32; - A37 = 35; - A38 = 33; - A39 = 34; - A40 = 50; - A41 = 51; - A42 = 52; - A43 = 53; - A44 = 54; - A45 = 55; - A46 = 56; - A47 = 57; - A48 = 100; - A49 = 200; - A50 = 201; - A51 = 202; - A52 = 203; - A53 = 204; - A54 = 205; - A55 = 206; -}; -extend a10.A56 { - optional A10 a11 = 21713708; - optional bool a12 = 21623477; - optional bool a13 = 23459630; - optional bool a14 = 21596320; - optional bool a15 = 26652850; - optional int32 a16 = 53697879; - optional string a17 = 56871503; -}; -extend a10.A57 { - optional A10 a18 = 21713708; - optional bool a19 = 21623477; - optional bool a20 = 21596320; - optional A58 a21 = 21467048; - optional string a22 = 26652850; -} -message A58 { - message A59 { - required string a23 = 1; - required string a24 = 2; - }; - repeated A59 a25 = 1; -}; -extend a10.A60 { - optional bool a26 = 21596320; - optional bool a27 = 28993747; -}; diff --git a/query_benchmark/protos/f5.proto b/query_benchmark/protos/f5.proto deleted file mode 100644 index ec7d6d957..000000000 --- a/query_benchmark/protos/f5.proto +++ /dev/null @@ -1,351 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a10; -message A108 { - repeated A109 a79 = 1; -} -message A109 { - optional string a52 = 1; - optional string a407 = 2; - repeated string a80 = 3; - repeated int32 a81 = 10; - repeated int32 a82 = 11; - repeated A110 a83 = 4; - repeated A111 a84 = 5; - repeated A112 a85 = 6; - repeated A113 a86 = 7; - optional A60 a87 = 8; - optional A114 a88 = 9; - optional string a408 = 12; -} -message A110 { - optional string a52 = 1; - repeated A113 a73 = 2; - repeated A113 a86 = 6; - repeated A110 a89 = 3; - repeated A111 a84 = 4; - message A115 { - optional int32 a90 = 1; - optional int32 a91 = 2; - optional A116 a87 = 3; - } - repeated A115 a92 = 5; - repeated A117 a93 = 8; - optional A57 a87 = 7; - message A118 { - optional int32 a90 = 1; - optional int32 a91 = 2; - } - repeated A118 a94 = 9; - repeated string a95 = 10; -} -message A116 { - repeated A119 a96 = 999; - extensions 1000 to max; -} -message A113 { - enum A59 { - A120 = 1; - A121 = 2; - A122 = 3; - A123 = 4; - A124 = 5; - A125 = 6; - A126 = 7; - A127 = 8; - A128 = 9; - A129 = 10; - A130 = 11; - A131 = 12; - A132 = 13; - A133 = 14; - A134 = 15; - A135 = 16; - A136 = 17; - A137 = 18; - }; - enum A138 { - A139 = 1; - A140 = 2; - A141 = 3; - }; - optional string a52 = 1; - optional int32 a97 = 3; - optional A138 a98 = 4; - optional A59 a99 = 5; - optional string a100 = 6; - optional string a101 = 2; - optional string a102 = 7; - optional int32 a103 = 9; - optional string a104 = 10; - optional A56 a87 = 8; -} -message A117 { - optional string a52 = 1; - optional A142 a87 = 2; -} -message A111 { - optional string a52 = 1; - repeated A143 a105 = 2; - optional A70 a87 = 3; - message A144 { - optional int32 a90 = 1; - optional int32 a91 = 2; - } - repeated A144 a94 = 4; - repeated string a95 = 5; -} -message A143 { - optional string a52 = 1; - optional int32 a97 = 2; - optional A76 a87 = 3; -} -message A112 { - optional string a52 = 1; - repeated A145 a106 = 2; - repeated A146 a107 = 4; - optional A147 a87 = 3; -} -message A145 { - optional string a52 = 1; - optional string a108 = 2; - optional string a109 = 3; - optional A98 a87 = 4; - optional bool a110 = 5 [default = false]; - optional bool a111 = 6 [default = false]; -} -message A146 { - optional string a52 = 1; - optional string a112 = 2; - optional string a113 = 3; - optional A148 a87 = 4; -} -message A60 { - optional int32 a114 = 2 [default = 2]; - reserved 15; - reserved 22; - optional bool a115 = 24 [default = true]; - reserved 25; - optional string a116 = 1; - optional int32 a117 = 4 [default = 2]; - optional int32 a118 = 5 [default = 2]; - optional bool a119 = 6 [default = true]; - optional bool a120 = 7 [default = true]; - reserved 13; - optional bool a121 = 21 [default = false]; - optional string a122 = 19; - optional bool a123 = 26 [default = false]; - optional string a124 = 8; - optional bool a125 = 10 [default = false]; - optional bool a126 = 27 [default = false]; - optional bool a127 = 28 [default = false]; - optional string a128 = 29; - enum A149 { - A150 = 1; - A151 = 2; - A152 = 3; - } - optional A149 a129 = 9 [default = A150]; - optional string a130 = 11; - optional string a131 = 12; - optional int32 a132 = 14 [default = 1]; - optional bool a133 = 16 [default = false]; - optional bool a134 = 17 [default = false]; - optional bool a135 = 18 [default = false]; - optional bool a136 = 42 [default = false]; - optional bool a31 = 23 [default = false]; - optional bool a137 = 31 [default = false]; - reserved 32; - reserved 33; - reserved 34; - reserved 35; - optional string a138 = 36; - optional string a139 = 37; - optional string a140 = 39; - optional string a141 = 40; - optional string a142 = 41; - optional bool a143 = 43; - optional string a144 = 44; - optional string a145 = 45; - repeated A119 a96 = 999; - extensions 1000 to max; - reserved 38; -} -message A57 { - repeated string a146 = 4; - repeated string a147 = 5; - repeated string a148 = 6; - optional bool a149 = 1 [default = false]; - optional bool a150 = 2 [default = false]; - optional bool a31 = 3 [default = false]; - optional bool a151 = 7; - reserved 8; - reserved 9; - repeated A119 a96 = 999; - extensions 1000 to max; -} -message A56 { - optional A153 a152 = 1 [default = A154]; - enum A153 { - A154 = 0; - A155 = 1; - A156 = 2; - } - optional bool a409 = 2; - optional A157 a153 = 6 [default = A158]; - enum A157 { - A158 = 0; - A159 = 1; - A160 = 2; - } - optional bool a154 = 5 [default = false]; - optional bool a31 = 3 [default = false]; - optional bool a155 = 10 [default = false]; - message A161 { - optional string a52 = 1; - optional string a105 = 2; - }; - repeated A161 a156 = 11; - optional bool a157 = 12 [default = false]; - optional bool a158 = 13 [default = true]; - repeated A119 a96 = 999; - extensions 1000 to max; - reserved 4; -} -message A142 { - repeated A119 a96 = 999; - extensions 1000 to max; -} -message A70 { - optional string a159 = 1; - reserved 4; - optional bool a160 = 2; - optional bool a31 = 3 [default = false]; - reserved 5; - repeated A119 a96 = 999; - extensions 1000 to max; -} -message A76 { - optional bool a31 = 1 [default = false]; - repeated A119 a96 = 999; - extensions 1000 to max; -} -message A147 { - optional bool a161 = 20 [default = false]; - optional double a162 = 16 [default = -1.0]; - optional bool a31 = 33 [default = false]; - repeated A119 a96 = 999; - extensions 1000 to max; -} -message A98 { - enum A162 { - A163 = 0; - A164 = 1; - } - enum A165 { - A67 = 0; - A166 = 1; - A167 = 2; - A168 = 3; - } - enum A169 { - A170 = 0; - A171 = 1; - } - enum A172 { - A173 = 0; - A174 = 1; - A175 = 2; - A176 = 3; - A177 = 4; - } - optional A162 a163 = 7 [default = A163]; - optional double a164 = 8 [default = -1.0]; - optional bool a165 = 9 [default = false]; - optional bool a166 = 10 [default = false]; - optional bool a167 = 26 [default = false]; - optional sint32 a168 = 11 [default = 256]; - optional sint32 a169 = 12 [default = 256]; - optional A165 a170 = 13 [default = A67]; - optional A169 a171 = 15 [default = A170]; - optional A169 a172 = 17 [default = A170]; - optional string a173 = 18; - optional string a174 = 19; - optional bool a110 = 20; - optional bool a111 = 21; - optional string a175 = 22; - optional string a176 = 23; - optional bool a177 = 29; - optional int64 a178 = 24 [default = -1]; - optional int64 a179 = 25 [default = -1]; - enum A178 { - A179 = 0; - A180 = 1; - } - optional A178 a180 = 28 [default = A180]; - optional A172 a181 = 27 [default = A175]; - optional bool a31 = 33 [default = false]; - enum A181 { - A182 = 0; - A183 = 1; - A184 = 2; - } - optional A181 a182 = 34 [default = A182]; - repeated A119 a96 = 999; - extensions 1000 to max; -} -message A148 { - enum A178 { - A179 = 0; - A180 = 1; - } - optional int64 a183 = 1 [default = -1]; - optional int64 a184 = 2 [default = -1]; - optional A178 a185 = 3 [default = A179]; - optional A98.A165 a170 = 4 [default = A67]; - optional string a174 = 5; - optional int32 a168 = 6 [default = 256]; - optional int32 a169 = 7 [default = 256]; - optional double a164 = 8 [default = -1.0]; - optional bool a166 = 9 [default = false]; - optional bool a167 = 10 [default = false]; - optional A98.A172 a181 = 11 [default = A175]; - optional bool a31 = 33 [default = false]; - repeated A119 a96 = 999; - extensions 1000 to max; -} -message A119 { - message A185 { - required string a186 = 1; - required bool a187 = 2; - } - repeated A185 a52 = 2; - optional string a188 = 3; - optional uint64 a189 = 4; - optional int64 a190 = 5; - optional double a191 = 6; - optional bytes a192 = 7; - optional string a193 = 8; -} -message A114 { - repeated A186 a194 = 1; - message A186 { - repeated int32 a195 = 1 [packed = true]; - repeated int32 a196 = 2 [packed = true]; - optional string a197 = 3; - optional string a198 = 4; - repeated string a199 = 6; - } -} -message A187 { - repeated A188 a200 = 1; - message A188 { - repeated int32 a195 = 1 [packed = true]; - optional string a201 = 2; - optional int32 a202 = 3; - optional int32 a91 = 4; - } -} diff --git a/query_benchmark/protos/f6.proto b/query_benchmark/protos/f6.proto deleted file mode 100644 index 4801eb5b6..000000000 --- a/query_benchmark/protos/f6.proto +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a7; -message A61 { - enum A62 { - A63 = 0; - A64 = 1; - A65 = 2; - } - optional A62 a28 = 1; -} diff --git a/query_benchmark/protos/f7.proto b/query_benchmark/protos/f7.proto deleted file mode 100644 index 9f6e65e92..000000000 --- a/query_benchmark/protos/f7.proto +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a0.a1; -enum A66 { - A67 = 0; - A68 = 1; - A69 = 2; -} diff --git a/query_benchmark/protos/f8.proto b/query_benchmark/protos/f8.proto deleted file mode 100644 index 7583baae4..000000000 --- a/query_benchmark/protos/f8.proto +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a10.a29; -import "f5.proto"; -extend a10.A57 { - optional bool a30 = 147618788; - optional bool a32 = 149418587 [default = true]; - optional string a33 = 190288050; -} -extend a10.A70 { - optional bool a34 = 149419467 [default = true]; - optional bool a35 = 163526403; - optional string a36 = 190295313; -} -enum A71 { - A72 = 0; - A73 = 1; - A74 = 2; - A75 = 3; -} -extend a10.A56 { - optional A71 a37 = 179701954 [default = A73]; -} -extend a10.A76 { - optional bool a38 = 162702653 [default = false]; - optional bool a39 = 163486533 [default = false]; - optional bool a40 = 170261731 [default = false]; - repeated string a41 = 179096040; -} -enum A77 { - A67 = 0; - A78 = 1; - A79 = 2; - A80 = 3; - A81 = 4; - A82 = 5; - A83 = 6; - A84 = 7; - A85 = 8; - A86 = 9; - A87 = 10; - A88 = 11; - A89 = 12; - A90 = 13; - A91 = 14; - A92 = 15; - A93 = 16; - A94 = 17; - A95 = 18; - A96 = 100; - A97 = 101; -} -extend a10.A60 { - optional A77 a42 = 155465253 [default = A67]; - optional bytes a43 = 157245250; - optional bool a44 = 180648220 [default = true]; -} -extend a10.A98 { - optional bool a45 = 211030419; -} diff --git a/query_benchmark/protos/f9.proto b/query_benchmark/protos/f9.proto deleted file mode 100644 index 1d894a289..000000000 --- a/query_benchmark/protos/f9.proto +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) 2018, 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. - -syntax = "proto2"; -package a46.a47.a1.a48.a49.a4; -message A99 { - optional double a50 = 1; - optional int32 a51 = 2; - optional string a52 = 3; - repeated string a53 = 4; - optional string a54 = 5; - optional string a55 = 6; - optional string a56 = 7; -} -message A100 { - optional double a50 = 1; - optional int32 a51 = 2; - optional string a52 = 3; - optional string a57 = 4; - optional string a54 = 5; - optional bool a58 = 6; - optional float a59 = 7; - optional string a60 = 8; -} -message A101 { - optional string a52 = 1; - optional string a54 = 2; - optional string a61 = 3; - optional int64 a62 = 4; - optional int64 a63 = 5; - optional string a64 = 6; - optional int64 a65 = 7; - optional int64 a66 = 8; - optional bool a67 = 9; -} diff --git a/query_benchmark/pubspec.yaml b/query_benchmark/pubspec.yaml deleted file mode 100644 index b4b5bd4f7..000000000 --- a/query_benchmark/pubspec.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2022, 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. - -name: query_benchmark -description: Measuring encoding and decoding of a "real-world" protobuf. - -# This package is not intended for consumption on pub.dev. DO NOT publish. -publish_to: none - -environment: - sdk: '>=2.12.0 <3.0.0' - -dependencies: - protobuf: any - -dev_dependencies: - js: ^0.6.3 - lints: ^1.0.0 - protoc_plugin: - path: "../protoc_plugin" - -dependency_overrides: - protobuf: - path: "../protobuf" diff --git a/query_benchmark/run_protoc_plugin.sh b/query_benchmark/run_protoc_plugin.sh deleted file mode 100755 index 958631717..000000000 --- a/query_benchmark/run_protoc_plugin.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -dart run protoc_plugin protoc-gen-dart diff --git a/query_benchmark/testdata/500.pb b/query_benchmark/testdata/500.pb deleted file mode 100644 index edcc1110c50ac32b24e84e912a32ff04c01aa3b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251369 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

5UPf${ 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�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 rxeA?U;HZpi)cuu15i&wW{knhSRl-*b&_P=1 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

QO9 zNikMR4C3{*z`bktN#NRD0gbRwcKL|uN3Uszm42dW$Nw|#MeL~}Br>TR!N0j-`Gaea z2+NInYr*^Lxkberl$|Lz?@Ec8WUJNe*XllBqZ0|`wa#&g*n7qYA)BU-+ncbogfDd-^u#l zSLyt;70=9D>1;{m{@Fek=Uy?7ipLolW75fGK&W@YXLxeUV%L(T0Av}e{A?l?VvA6C zx|%1;r(J)&kuA2S^;tnnAkjE<3BmR{6%YOOTNY`WOjHD@Mby`!8Uyoc)lO$1NXfF8 z3DrAe?n5`uYTkos3o`!E64sKnwbo4w{z3|*Cs={tKo3o`GH!ykZEd%$P_YB2d5rSo zCf^K!ma3qkK{Ek{XHRHCNfXQ5>TuX5EB-Zn^6u~NSw67$fnvL+kl5Ghw#>YyY2KYoVLlNIvSpYeT{;0+HSdP!H_)`aChQEH8jYsdJb2t z6CAQ>{n5RHPa%CY7+4JHscSi z*^^#!d29zS$MiAo9;xWQOPG-5#en5Si~XSu0TAMFC;N|3K4Uqy823YtpyTylpm;kl zO{m$7S}P34iyGsMpe!*vOia_!U}qsD^W6Wv&xN?Rn`=lM3rC{xh$8~}X&!SuvA9O3 zm;cZkEbn{z$unt%k`hZT>+1TnoS3^q=^<}RB|E(&KS~yZ`En|oOJWan?T*4coL2+o zPOi`V@xOKOU3=UYgoH7|5G+~qs19hF0^M#pB(_3<#;|6x*c~f4f7e$1Fy5TOSkwR? ztOvZgL-ZF=77>Fc??m7mK zYKA=~ln!MC!76*LPCNbsTvAX-{pcVliZ;8@_P2yKSp7oV<&fPvm-L%&Sbpvr=W-!g zKM8s&ir{rb6YJdEk}`c-l^I z@4vyl!ubqWf$mX5GM{CbnHjQb5GO(Pw$JUfqF`xgu5;X)9(3NaeEW?jcSK9EY^j%2 zEAB);=r4tN=#&n|oq*(BG$PeWbmX0n#?$h&kRRk)%Ovjz*=Umg_5rdLH%qwDJHVu8 z6EhjNxphOJ+3K|6*8O}L>TBp^Du7sq)qEyU5h*N{HNM>g9x;YD&L@T_nN&a+G5u3y zV#l+C0J{i4LH!~dvyX|ui|is`65IqD75Gl^c5PUlr7D4LI+<;E z*`q1sB86bD7#`)-YAqP$zV~$=6QX%c{Q3Tq*C!NIIZ^3r=pZzQ%AVTd9W!aBtQOgV z5|o@PDG)xfx0>r#YZR@!U0$hNrze79?mze|JSH3m@3_j!hhDU}AEMVLof6*5PYL_$ z{yqfy`s2kSSgFdh$h=UZ&C`O6Szx8b+vPw5`91EJZlKu^_qWfiL6qi?sm2wN4tX0# z<5R1)M$|qs+o>4GJ5Dt#G`FpOhfm*G0e(0iO(-%l)(M>@h@d<+zun0@{C*GU^s`f! zi_tz`MsHS!)8=x!U3dRr-}3LT;c^vLp@>ipXw$^JH1v4YL2Tj5Bz(!a%Po4H$=Dzl zPqqs6@{D%|#$uXJs#TLW{~;8imh=%riI##puin(3ys_|IqSwoa+N*CNIF@n)TL!U9E+$E?oV!T zHSUZ~BqZ-gDE5c*HG>DkyvEDqc_0Wi9^l|?E#J*52i}nJ9ss7zd*}*C z)qV)kANkXVB0M%^7*Qq*1&lUWt?;Bl7*dh6q`t=Jro;9rYRl5HHUtqirXoMX2rR^+ zQPFyUGMP(7MWz$bJlch@W=J~=1SM#Q6BMmdTjv^;el9>yJd;+FOEEI-3~PgaJkNc{ zE$+AWxL-Y!v&3i5g_z`-m?7QH6%PrkyO8})ux%)(AAAj+p#r2 zJgui{%b?QedX_mMn{#GuVlf-+sGh<}MRplh|L6C)XN$(f#ceD?3 zU}|)rLvKEigO{Vd&JhSG`tO{vALd*iA-A)gY_c-OWV5rn_JrTn9~51UJt)g>{FKGA z`>cw$)loPCv{n&2^+2k_T(U)ex^4(UZ&EI20#)vx-!!p8a%^-%$s+)PinF1^!Ry46 z-Dojkb=%Wws#Wp{{qzy)PT>zXnM3f&eakOi!xJt#i+RVy*>gHi$CX9W({A;%QPIy& z8_Py4XP?dO%egI7lBb2L&`Kv`o|7Jn96z#m@b|ze2{4Kb-RapDMLQ!%j9_CmzLYSd z3_gd=Bu%VAoRMC?r(Vw-*tXX}^k<+}_}DRWfuwq&QcI$@=?BBC*Y1hi7zCd}(!1M; z3;9s5R3DTVj2ohiQ$i$PNVkIRsxZqO|IQvvLh(1ujNP-ZJogRU!3JE!MGikxzfnsm z@!&i6cGC}zR1bnz(9=y_l#xD`Q@S>uQQ3N^U^^dXj^ghn= zk?ROvG=?WBM@0}OqsmlGPr`GrO|70z%VkeC;IX$MA{0^(5cQ(bSsv{6c#TZWx9lDK z+8%c+KsSF@(s?@`99wYnCxk_wv96bm2ZSsiOta&tI~xrTUN%=0hW~anm%;eoZlMXl ztm_j14NJUgF@R3<+lYhN9UZ>#*bATyL^4npV&f8|U)oBAHhwZ#gn4fVW94~yv8r+Z z`ozi_aws@|-BkkT$m{=J{GyyqH8|3a{?`NyK-J)K9>sq}!KWn-fMWS&X)HC6Dp z=9Ae;JFR46^=u7_U6lxXDBrUO*6wRh{q2n4;9fjevn0xvTCSKXZFh9o#GrXp8ncWd zrA>Q5xgQu$wBD+iod`5@kwiXJ5f_PIq&ggRrDI^>Kd^U#K2KkG^>y!n5P;%F1t2+t z%XfUs4g8I)KlvE&1we7fUX@pf0Lc+z>9r-CLMHHmXb;&od~$SjaLeI3w%IK|^=HrA zd-YR4@r(cEp5wW2E>y`xvgJUrVJTOF5#Mj^zw$S^Z@RhbX(Fz~PG(6U!p01BB{(+{ zq!BcoREPioRFJb7piZy-^717l|K8Sp$>H$d{qcRvzumh=$mc6Jr|H(ZQ5c-gmF1$Q z_~OC-GR?;W%UZoFdeTFs=bN{t-t4LrNan|W+L7FvRMUd@;FmKSmLjY5oZe#vK)J z$H(d_5=^8Qg~24pdfknSbFrw%sdlnHjjr+>`kQ(bQ%ZiG zy0y-*-k8Tx_(l6Zjjfx{7dn-sR9Mbx+^24EE$(F3Klj_TQzta+CT47#rdt^B`5>xR} zT@KCdVmQ}I)rZLrdWGugy&v2=_*1Y6Gi(`I0&FyAkG%`y9P2Ix=(n0ONBIGQ3HCLs z{>jZ|flQ9^#=%|V`sU#U%cuX;VLO4aY7Fv)>`p&ML=W8^VPIK0k$Edp61wZ-<$@87Wei)&zGC3vGHbvi6hf{J}? zmqtscE$R}gcDF0GD3$X0{>avL4Ob367tRRF=CE-0SN1Gl&w6(L|COo@z5W!|CZ8Li zEX+_rO1F>_JBvy;-dcvrDkHopt8h0TY%j-=ij)sbUpH8(qx8sWeb;qzTFSiUKP}|a zrGQrOcFI*xOdGUMlSSFqh&WfvS!on6s#yt6hIdk`WUDan~KB!LG( zs|Ef%-;qbUy8&ZCNCeB(8BP+a^wqI4gL$;+iLF1pVR_eeY+`!k%!^(ve&Y9z!YiLt zEyy)nBF8t2?xfc}ow+4xIt5R#{$5&-;?^fABJM>CwHRZ3bl)^E1TSd$|3}m>R;a(7K1Z-~tiT z$Up4@TdJoQjY>*Zx=dlWU0=*=En(aZri4XF;68EVto}C(>W_eMp`a2XH!@Km5RO^F zDDH`F(^lh-O|O)siZF3e+e4WxU&} z+jC(x6=jbPDT0px4=B-?OEl&?EbFw%-E8K9VQ<}2d_)ya&jhCC&<;M=JcRIs072>l zKFpSB_AKsgII;USR0=e-jk25^;lJq8mahI2sMq(rvKG3ELXW^gK8r;^oV4Od3RV~3 zORORj=Dn$jVLqu<)2VD{5DwJ2Z@9ssS=GBXnAhtfU&xft%=eHxf@UCKz9yV1bgL71 zVTeOZk%XgUK4vg49``Y#UHs5BasVZ7Bodj$#CB_Ono+V1pEP!#Hrzta6CbHTyJOU9 z_|o%2!k3bo)lp|uZf95y08e%K>1JJgzWH>`9rvYRuFSp+{$Qz>F9g?(SUJ?yY1hGY zXcW{k6Qw<_rN#>P-i@4rfp7PecH2j$+a^Ff&V zk0tY6c8KHI{JP`)OE)dQy#M4m{gN0==R19|CxW>Wj%KR!>`IKCdfIg{*)BKA$U6#- zY-=i~PaQ+PT@l+IgJX-W^HeWKW6?E|FB#rz91BK|!DH+PM<97+6WIg=g7S%SC>~5l zvf&6(zp{x+#*!;WEEqh~j6%`1e0cvgeg4Suu^%hmZifO9a0>d>Sh`hbomDEzq%@dM zW8ql5Gi@Y}|8S4{gT3PKnRwghzH;!^*L3{{-?fK&bLegMBw%T92oY)Fv097}45p<$ zgXo1dulArtJi_atQ}7!sMR{_BKWIcB`x$Lv?dl|2ODUM)9ky32c9A{{H`cRq;Xhl- z3i7(bdV(K8Ij%NP0sk|f_#r-q#E-6vm|(r_W$6X{53?G!&v@xGKI88g;M;fH;IdqF z6P|!qbkqi32TlXCHD-7h8KRds0+uEgJi^ANM89RmOmuEB&L^V$AHN2UTZne&gJ`K% zSb636s=EMTR?1b%-nhG`oOUYRnmt{wq}$ngCcAFh%B4vn%j`CEUOu|Vy@0g`Cmxd# zH3qedwAIkzo2r#AyEYyjXt+itnIod5n;}kotO08*E%P$9VHkn-ZiF6`z zUuxd88bA?{G;3B^2$0Mn zv&F)VSD&@KdJRyntfrjNu{V`1qWx|<~>hD)Q?c~5W9j9u& zV$N%X>0ggNG^I!}#ArI|5Xpw|ow7Mlh;NACGU+cLVIYqi)tHUSJc!LRSO-p@Gfnm8 z5QaOH%TG#hT$Z_ht{-J#djcuH^&}TH`#lqL@OW{_l;XqR9xv<8&174`Fgm|lkOLl7ED z2I2mol*W1Y)qTsW*9Za&wyr%rEY{s#Ip{9QU3>V%J1FKOC&B(m%6W1UpVZkwUIuQ^P(~xbUv4s4H$-+51W@A>!JEZwJGwge8-1iRx z=3~HISd15uh`sFB@M<6%&SgkukO_Ao=SmRRZlUz;X_ZM}KJ7cIyvw%|ZSiC`WlOPh z6cE-g?Qu5(!H{0y{D@n}g7NY;FX$FlbpJ&=9!h%~3?h^t@45$89~xn}ZLWj22Owh! zMQ8R&Mias(cg+>$3efw8a8k>?O%ckNO}^!EUoPGrtx8=r(w3y0AS*d~BE{gSoDt{M z__WeT!x#J+X#aUw8Tc1q<>8_UNR5tn6IlGz%_sM7%DgAFNJdJv z!L+O9#_5UQp=#@JXBeoJ6o-3U@YFjcZ~oM`NVggQ7s@uhcy@j8_xHGakb!0=i~%WI z%p4eIt_DmTQnWfIz9pCJ4D#~fVT2eSPvblD)DCP>9O|eoM*?wo@4VCUsGFcTPafsE zA!#&Q)aKI_iw9CdJeXY87J+dszN%HY|KkStW!y%R)hUA4=WNS937tD&-x&LEEKDfc zBWM!)1Y~_{r@hj*Oc(qyO^3&7xrv^`3o$+@!3!QY)bjr67pEi={W52 z&ZSAZyo^PP>p^dL;&F~oCek`O?&Kr&X0|l<)q{>)_Jr-3(ZQeWanIxd;t?#pE#o9u zj{((ew`0q=dE4$?^Gg9;I*s$1dD27h8pO4JaJ++2c-Zj3r6$@1^D}WR&_mXY@F7v- z6{a&(DV^C!WUkWJ_&zAefJa$_1O1lZuCBV{`7~2c1xoP_qo`)8CztyxrWv1EJjB~&vs4j7?v@piZ<4ytQ0tt_kIENewx4G#-)x|A)}hgZjER)Oc8*jh?GOex;Z7kcS}y2uCxB^MvlnbfGv133jG(NHAV z5A?VXJ@tfC7A;o}Ys(WGqq4Xlc*#uQkKVBS!ZoJ9)U)9vFIBvLH6sp|&XwyVw+z{b zg-N-PElHY&pqayIUvbGVzJVsoLRB-0*`ljWg<-HvhEU^fET4**o7fVKeOCJhbbER zeMABHn z%a3kfzxUb5YM{70P+UHejt~`z_d9q9!lxsla;{k7OMy&29pMvMJ{c(T@ZL#(#e;uh z8QyA#fWOn_cRO4*59o1QNEm`E`qeC72kgs#^77xY{%UHhn!ME*Q=Q`$PfXTqWf>a%}P_U?>$y|it!aq?3 zP8M$YZN%+lRB%kKin0-q!nZH#!6{`O=|Z#sUI5tq@mF-F=l`|O<+zx+Ac&Zw9cjYk z3Lh85GM~9G37c(#Kkf492g$eWTRwb^d{UVYx_Z@aw*XTX;hd_q}gH_$uidP*X$j<2T@2VkhcKa>S)_q#j^u~%jf>y0N5^~*wboX$n0VrHBUPXjH#zmyfd%l2wEaQnLRl2+-t(DEmt zW!1Kq&&QXp4ol{}^8mdi-Voc4NiP*4Kji#Cp}O^2Mq@p2pBXn!Y&LE>v(3rhJf@u= zK78@)*No|+uNl*|q1cVo=xQ{}))$lbFw07LQ*&8ewIZq6tTxZ5tK3iA;G*27t%qno z(%Tfb(HeE2vd4xJN4Ljgb=llLn+Js&o~9_f1V_sux}8m(sq*SGmRGMKWL{Vd){c|O zIuiGc?e;kI>g(a+Y0M*4?ZduQarae!DD7D!OVMVz=@~2qo5Ren{vP!vVfT7xn@WO1 zwR8W>9n!2V#A&jMF1MR;fM{u*D9VsW3r?@Y>9M_%McLWGE4z`nIiWBB(6$HQglHS~ zg?ie-g@rU`4~3r(Ev;V1kiI92?#2H{8u(_)bn{rwT?Oc}aaRtf<&WO~1I63b@@SAx zrn==~QPP+)bgG%LnKZiNe)QlFc(0Ls(#0B#En?&a4_+|0jBe`S z5uLyC;q9{@L5yB1$%R=wEvEX~nqig`=x>*Ep=Es3>xHr-;-=WRd!|JrSA7XyGWG@a zch%ikr{8b0k`M$0qW{w^%THaS(x}i2czuP)I_Y%wJW&T^x>EIZGbsp>aUdWD>SEC4 zP_mOoz#eKWhXrTELlcPz{5$u#7XSmJ?#sl7%ZSg=Nf9+MjT3Wd|_xzfS}6Y7xI|`=roPgF-kq0#oLKmKQLUx>+^iDHDW4` z^}wpDW#ZFbCN^H>a@_y3znc#L;=?%Rk$LLSi{pL%q&vr8k#t~QPm9)iJl)pr#;tR6d7{W0rt$D51?b8Lw#OCtQE zRV^N}EWLdAToFxQ@n;$ehU_(T8|l>~u%`oBHBj#`^A$?Vg``+51eIt)=tM{xZ|At7 zoZY2Kf8BD$PzuQMmb%3<|0Hwueb+#`%JxjDZ=ZWbzc=X*IU=+EG?u8zjz}t=^r=aA zL<%fDrGl%yl3me$C$rAZ7}E98y@PlEwI%yEDMy?cFjP?B2`zC96iRA>xn9xybP`b; zlH3UQDzO~*l{a?9H1$ZGM|uabBoy8By?Q~ES$D&%0Af@l>dw3^17HIxI3N{KHqUtc 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 Date: Tue, 28 Jun 2022 12:53:09 +0200 Subject: [PATCH 16/59] Update workflow --- .github/workflows/dart.yml | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 579ab68f7..cb219e12a 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -68,16 +68,16 @@ jobs: working-directory: protobuf run: dart analyze test job_003: - name: "format_analyze; linux; Dart dev; PKGS: api_benchmark, query_benchmark; `dart format --output=none --set-exit-if-changed .`, `./../tool/setup.sh`, `./compile_protos.sh`, `dart analyze --fatal-infos`" + name: "format_analyze; linux; Dart dev; PKG: api_benchmark; `dart format --output=none --set-exit-if-changed .`, `./../tool/setup.sh`, `./compile_protos.sh`, `dart analyze --fatal-infos`" runs-on: ubuntu-latest steps: - name: Cache Pub hosted dependencies uses: actions/cache@v3 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:api_benchmark-query_benchmark;commands:format-command_0-command_1-analyze_0" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:api_benchmark;commands:format-command_0-command_1-analyze_0" restore-keys: | - os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:api_benchmark-query_benchmark + os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:api_benchmark os:ubuntu-latest;pub-cache-hosted;sdk:dev os:ubuntu-latest;pub-cache-hosted os:ubuntu-latest @@ -107,27 +107,6 @@ jobs: if: "always() && steps.api_benchmark_pub_upgrade.conclusion == 'success'" working-directory: api_benchmark run: dart analyze --fatal-infos - - id: query_benchmark_pub_upgrade - name: query_benchmark; dart pub upgrade - if: "always() && steps.checkout.conclusion == 'success'" - working-directory: query_benchmark - run: dart pub upgrade - - name: "query_benchmark; dart format --output=none --set-exit-if-changed ." - if: "always() && steps.query_benchmark_pub_upgrade.conclusion == 'success'" - working-directory: query_benchmark - run: "dart format --output=none --set-exit-if-changed ." - - name: query_benchmark; ./../tool/setup.sh - if: "always() && steps.query_benchmark_pub_upgrade.conclusion == 'success'" - working-directory: query_benchmark - run: ./../tool/setup.sh - - name: query_benchmark; ./compile_protos.sh - if: "always() && steps.query_benchmark_pub_upgrade.conclusion == 'success'" - working-directory: query_benchmark - run: ./compile_protos.sh - - name: "query_benchmark; dart analyze --fatal-infos" - if: "always() && steps.query_benchmark_pub_upgrade.conclusion == 'success'" - working-directory: query_benchmark - run: dart analyze --fatal-infos job_004: name: "format_analyze; linux; Dart dev; PKG: protobuf; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos`" runs-on: ubuntu-latest From b212ffccc459fbf5f53ba811d2434eac4dd589bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 13:08:26 +0200 Subject: [PATCH 17/59] Remove late vars --- benchmarks/bin/from_binary.dart | 15 +++++++------ benchmarks/bin/from_json_string.dart | 21 +++++++++---------- benchmarks/bin/from_proto3_json_string.dart | 21 +++++++++---------- benchmarks/bin/hash_code.dart | 17 +++++++-------- .../bin/query_benchmark_decode_json.dart | 9 ++++---- .../bin/query_benchmark_encode_binary.dart | 8 +++---- .../bin/query_benchmark_encode_json.dart | 8 +++---- .../bin/query_benchmark_set_nested_value.dart | 8 +++---- benchmarks/bin/to_binary.dart | 15 +++++++------ benchmarks/bin/to_json_string.dart | 15 +++++++------ benchmarks/bin/to_proto3_json_object.dart | 15 +++++++------ benchmarks/bin/to_proto3_json_string.dart | 15 +++++++------ 12 files changed, 78 insertions(+), 89 deletions(-) diff --git a/benchmarks/bin/from_binary.dart b/benchmarks/bin/from_binary.dart index aa4f30892..bf6078992 100644 --- a/benchmarks/bin/from_binary.dart +++ b/benchmarks/bin/from_binary.dart @@ -14,17 +14,16 @@ import 'dart:typed_data'; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final Uint8List _message1Proto2Input; - late final Uint8List _message1Proto3Input; - late final Uint8List _message2Input; + final Uint8List _message1Proto2Input; + final Uint8List _message1Proto3Input; + final Uint8List _message2Input; Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) - : super(name) { - _message1Proto2Input = Uint8List.fromList(message1Proto2Input); - _message1Proto3Input = Uint8List.fromList(message1Proto3Input); - _message2Input = Uint8List.fromList(message2Input); - } + : _message1Proto2Input = Uint8List.fromList(message1Proto2Input), + _message1Proto3Input = Uint8List.fromList(message1Proto3Input), + _message2Input = Uint8List.fromList(message2Input), + super(name); @override void run() { diff --git a/benchmarks/bin/from_json_string.dart b/benchmarks/bin/from_json_string.dart index 0cd4477da..e4c2f399e 100644 --- a/benchmarks/bin/from_json_string.dart +++ b/benchmarks/bin/from_json_string.dart @@ -12,20 +12,19 @@ import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final String _message1Proto2JsonString; - late final String _message1Proto3JsonString; - late final String _message2JsonString; + final String _message1Proto2JsonString; + final String _message1Proto3JsonString; + final String _message2JsonString; Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) - : super(name) { - _message1Proto2JsonString = - p2.GoogleMessage1.fromBuffer(message1Proto2Input).writeToJson(); - _message1Proto3JsonString = - p3.GoogleMessage1.fromBuffer(message1Proto3Input).writeToJson(); - _message2JsonString = - GoogleMessage2.fromBuffer(message2Input).writeToJson(); - } + : _message1Proto2JsonString = + p2.GoogleMessage1.fromBuffer(message1Proto2Input).writeToJson(), + _message1Proto3JsonString = + p3.GoogleMessage1.fromBuffer(message1Proto3Input).writeToJson(), + _message2JsonString = + GoogleMessage2.fromBuffer(message2Input).writeToJson(), + super(name); @override void run() { diff --git a/benchmarks/bin/from_proto3_json_string.dart b/benchmarks/bin/from_proto3_json_string.dart index fab990ae9..c23685b28 100644 --- a/benchmarks/bin/from_proto3_json_string.dart +++ b/benchmarks/bin/from_proto3_json_string.dart @@ -14,20 +14,19 @@ import 'dart:convert' show jsonDecode, jsonEncode; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final String _message1Proto2Proto3JsonString; - late final String _message1Proto3Proto3JsonString; - late final String _message2Proto3JsonString; + final String _message1Proto2Proto3JsonString; + final String _message1Proto3Proto3JsonString; + final String _message2Proto3JsonString; Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) - : super(name) { - _message1Proto2Proto3JsonString = jsonEncode( - p2.GoogleMessage1.fromBuffer(message1Proto2Input).toProto3Json()); - _message1Proto3Proto3JsonString = jsonEncode( - p3.GoogleMessage1.fromBuffer(message1Proto3Input).toProto3Json()); - _message2Proto3JsonString = - jsonEncode(GoogleMessage2.fromBuffer(message2Input).toProto3Json()); - } + : _message1Proto2Proto3JsonString = jsonEncode( + p2.GoogleMessage1.fromBuffer(message1Proto2Input).toProto3Json()), + _message1Proto3Proto3JsonString = jsonEncode( + p3.GoogleMessage1.fromBuffer(message1Proto3Input).toProto3Json()), + _message2Proto3JsonString = + jsonEncode(GoogleMessage2.fromBuffer(message2Input).toProto3Json()), + super(name); @override void run() { diff --git a/benchmarks/bin/hash_code.dart b/benchmarks/bin/hash_code.dart index 7fede11ee..b4fbbc8cf 100644 --- a/benchmarks/bin/hash_code.dart +++ b/benchmarks/bin/hash_code.dart @@ -9,22 +9,19 @@ import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; -import 'dart:convert' show jsonEncode; - import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final p2.GoogleMessage1 _message1Proto2; - late final p3.GoogleMessage1 _message1Proto3; - late final GoogleMessage2 _message2; + final p2.GoogleMessage1 _message1Proto2; + final p3.GoogleMessage1 _message1Proto3; + final GoogleMessage2 _message2; Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) - : super(name) { - _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); - _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); - _message2 = GoogleMessage2.fromBuffer(message2Input); - } + : _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input), + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input), + _message2 = GoogleMessage2.fromBuffer(message2Input), + super(name); @override void run() { diff --git a/benchmarks/bin/query_benchmark_decode_json.dart b/benchmarks/bin/query_benchmark_decode_json.dart index 7a04364f2..5cb53a1f0 100644 --- a/benchmarks/bin/query_benchmark_decode_json.dart +++ b/benchmarks/bin/query_benchmark_decode_json.dart @@ -8,12 +8,11 @@ import 'package:protobuf_benchmarks/readfile.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final String _input; + final String _input; - Benchmark(String name, List input) : super(name) { - f0.A0 a = f0.A0.fromBuffer(input); - _input = a.writeToJson(); - } + Benchmark(String name, List input) + : _input = f0.A0.fromBuffer(input).writeToJson(), + super(name); @override void run() { diff --git a/benchmarks/bin/query_benchmark_encode_binary.dart b/benchmarks/bin/query_benchmark_encode_binary.dart index ee9ed4de5..adc3b4da1 100644 --- a/benchmarks/bin/query_benchmark_encode_binary.dart +++ b/benchmarks/bin/query_benchmark_encode_binary.dart @@ -8,11 +8,11 @@ import 'package:protobuf_benchmarks/readfile.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final f0.A0 _input; + final f0.A0 _input; - Benchmark(String name, List input) : super(name) { - _input = f0.A0.fromBuffer(input); - } + Benchmark(String name, List input) + : _input = f0.A0.fromBuffer(input), + super(name); @override void run() { diff --git a/benchmarks/bin/query_benchmark_encode_json.dart b/benchmarks/bin/query_benchmark_encode_json.dart index f847fa07d..84bdf4798 100644 --- a/benchmarks/bin/query_benchmark_encode_json.dart +++ b/benchmarks/bin/query_benchmark_encode_json.dart @@ -8,11 +8,11 @@ import 'package:protobuf_benchmarks/readfile.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final f0.A0 _input; + final f0.A0 _input; - Benchmark(String name, List input) : super(name) { - _input = f0.A0.fromBuffer(input); - } + Benchmark(String name, List input) + : _input = f0.A0.fromBuffer(input), + super(name); @override void run() { diff --git a/benchmarks/bin/query_benchmark_set_nested_value.dart b/benchmarks/bin/query_benchmark_set_nested_value.dart index 054d534cf..c4142313d 100644 --- a/benchmarks/bin/query_benchmark_set_nested_value.dart +++ b/benchmarks/bin/query_benchmark_set_nested_value.dart @@ -11,11 +11,11 @@ import 'package:benchmark_harness/benchmark_harness.dart'; import 'package:protobuf/protobuf.dart'; class Benchmark extends BenchmarkBase { - late final f0.A0 _input; + final f0.A0 _input; - Benchmark(String name, List input) : super(name) { - _input = f0.A0.fromBuffer(input)..freeze(); - } + Benchmark(String name, List input) + : _input = f0.A0.fromBuffer(input)..freeze(), + super(name); @override void run() { diff --git a/benchmarks/bin/to_binary.dart b/benchmarks/bin/to_binary.dart index 1e5f6825a..0a0c382d1 100644 --- a/benchmarks/bin/to_binary.dart +++ b/benchmarks/bin/to_binary.dart @@ -12,17 +12,16 @@ import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final p2.GoogleMessage1 _message1Proto2; - late final p3.GoogleMessage1 _message1Proto3; - late final GoogleMessage2 _message2; + final p2.GoogleMessage1 _message1Proto2; + final p3.GoogleMessage1 _message1Proto3; + final GoogleMessage2 _message2; Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) - : super(name) { - _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); - _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); - _message2 = GoogleMessage2.fromBuffer(message2Input); - } + : _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input), + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input), + _message2 = GoogleMessage2.fromBuffer(message2Input), + super(name); @override void run() { diff --git a/benchmarks/bin/to_json_string.dart b/benchmarks/bin/to_json_string.dart index edc6a4b26..2eacea714 100644 --- a/benchmarks/bin/to_json_string.dart +++ b/benchmarks/bin/to_json_string.dart @@ -12,17 +12,16 @@ import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final p2.GoogleMessage1 _message1Proto2; - late final p3.GoogleMessage1 _message1Proto3; - late final GoogleMessage2 _message2; + final p2.GoogleMessage1 _message1Proto2; + final p3.GoogleMessage1 _message1Proto3; + final GoogleMessage2 _message2; Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) - : super(name) { - _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); - _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); - _message2 = GoogleMessage2.fromBuffer(message2Input); - } + : _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input), + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input), + _message2 = GoogleMessage2.fromBuffer(message2Input), + super(name); @override void run() { diff --git a/benchmarks/bin/to_proto3_json_object.dart b/benchmarks/bin/to_proto3_json_object.dart index c293606a0..f7e7c5bae 100644 --- a/benchmarks/bin/to_proto3_json_object.dart +++ b/benchmarks/bin/to_proto3_json_object.dart @@ -12,17 +12,16 @@ import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final p2.GoogleMessage1 _message1Proto2; - late final p3.GoogleMessage1 _message1Proto3; - late final GoogleMessage2 _message2; + final p2.GoogleMessage1 _message1Proto2; + final p3.GoogleMessage1 _message1Proto3; + final GoogleMessage2 _message2; Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) - : super(name) { - _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); - _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); - _message2 = GoogleMessage2.fromBuffer(message2Input); - } + : _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input), + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input), + _message2 = GoogleMessage2.fromBuffer(message2Input), + super(name); @override void run() { diff --git a/benchmarks/bin/to_proto3_json_string.dart b/benchmarks/bin/to_proto3_json_string.dart index 44a318703..fdfda506b 100644 --- a/benchmarks/bin/to_proto3_json_string.dart +++ b/benchmarks/bin/to_proto3_json_string.dart @@ -14,17 +14,16 @@ import 'dart:convert' show jsonEncode; import 'package:benchmark_harness/benchmark_harness.dart'; class Benchmark extends BenchmarkBase { - late final p2.GoogleMessage1 _message1Proto2; - late final p3.GoogleMessage1 _message1Proto3; - late final GoogleMessage2 _message2; + final p2.GoogleMessage1 _message1Proto2; + final p3.GoogleMessage1 _message1Proto3; + final GoogleMessage2 _message2; Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) - : super(name) { - _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); - _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); - _message2 = GoogleMessage2.fromBuffer(message2Input); - } + : _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input), + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input), + _message2 = GoogleMessage2.fromBuffer(message2Input), + super(name); @override void run() { From b17ecfd1a00ab7d90e7e45734c03fc7bc8d871fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 13:11:32 +0200 Subject: [PATCH 18/59] Move scripts to tool/, add mono_repo --- .github/workflows/dart.yml | 72 ++++++++++++++++++---- benchmarks/mono_pkg.yaml | 10 +++ benchmarks/{ => tool}/compile_protos.sh | 15 +++-- benchmarks/{ => tool}/run_protoc_plugin.sh | 0 tool/ci.sh | 4 ++ 5 files changed, 83 insertions(+), 18 deletions(-) create mode 100644 benchmarks/mono_pkg.yaml rename benchmarks/{ => tool}/compile_protos.sh (54%) rename benchmarks/{ => tool}/run_protoc_plugin.sh (100%) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index cb219e12a..fa95f8605 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -108,6 +108,46 @@ jobs: working-directory: api_benchmark run: dart analyze --fatal-infos job_004: + name: "format_analyze; linux; Dart dev; PKG: benchmarks; `dart format --output=none --set-exit-if-changed .`, `./../tool/setup.sh`, `./tool/compile_protos.sh`, `dart analyze --fatal-infos`" + runs-on: ubuntu-latest + steps: + - name: Cache Pub hosted dependencies + uses: actions/cache@v3 + with: + path: "~/.pub-cache/hosted" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:benchmarks;commands:format-command_0-command_2-analyze_0" + restore-keys: | + os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:benchmarks + os:ubuntu-latest;pub-cache-hosted;sdk:dev + os:ubuntu-latest;pub-cache-hosted + os:ubuntu-latest + - uses: dart-lang/setup-dart@v1.3 + with: + sdk: dev + - id: checkout + uses: actions/checkout@v3.0.0 + - id: benchmarks_pub_upgrade + name: benchmarks; dart pub upgrade + if: "always() && steps.checkout.conclusion == 'success'" + working-directory: benchmarks + run: dart pub upgrade + - name: "benchmarks; dart format --output=none --set-exit-if-changed ." + if: "always() && steps.benchmarks_pub_upgrade.conclusion == 'success'" + working-directory: benchmarks + run: "dart format --output=none --set-exit-if-changed ." + - name: benchmarks; ./../tool/setup.sh + if: "always() && steps.benchmarks_pub_upgrade.conclusion == 'success'" + working-directory: benchmarks + run: ./../tool/setup.sh + - name: benchmarks; ./tool/compile_protos.sh + if: "always() && steps.benchmarks_pub_upgrade.conclusion == 'success'" + working-directory: benchmarks + run: ./tool/compile_protos.sh + - name: "benchmarks; dart analyze --fatal-infos" + if: "always() && steps.benchmarks_pub_upgrade.conclusion == 'success'" + working-directory: benchmarks + run: dart analyze --fatal-infos + job_005: name: "format_analyze; linux; Dart dev; PKG: protobuf; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos`" runs-on: ubuntu-latest steps: @@ -139,7 +179,7 @@ jobs: if: "always() && steps.protobuf_pub_upgrade.conclusion == 'success'" working-directory: protobuf run: dart analyze --fatal-infos - job_005: + job_006: name: "format_analyze; linux; Dart dev; PKG: protoc_plugin; `dart format --output=none --set-exit-if-changed .`, `./../tool/setup.sh`, `make protos`, `dart analyze --fatal-infos`" runs-on: ubuntu-latest steps: @@ -147,7 +187,7 @@ jobs: uses: actions/cache@v3 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:protoc_plugin;commands:format-command_0-command_2-analyze_0" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:protoc_plugin;commands:format-command_0-command_3-analyze_0" restore-keys: | os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:protoc_plugin os:ubuntu-latest;pub-cache-hosted;sdk:dev @@ -179,7 +219,7 @@ jobs: if: "always() && steps.protoc_plugin_pub_upgrade.conclusion == 'success'" working-directory: protoc_plugin run: dart analyze --fatal-infos - job_006: + job_007: name: "run_tests; linux; Dart 2.12.0; PKG: protobuf; `dart test`" runs-on: ubuntu-latest steps: @@ -213,7 +253,8 @@ jobs: - job_003 - job_004 - job_005 - job_007: + - job_006 + job_008: name: "run_tests; linux; Dart 2.12.0; PKG: protoc_plugin; `./../tool/setup.sh`, `make protos`, `dart test`" runs-on: ubuntu-latest steps: @@ -221,7 +262,7 @@ jobs: uses: actions/cache@v3 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:2.12.0;packages:protoc_plugin;commands:command_0-command_2-test" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:2.12.0;packages:protoc_plugin;commands:command_0-command_3-test" restore-keys: | os:ubuntu-latest;pub-cache-hosted;sdk:2.12.0;packages:protoc_plugin os:ubuntu-latest;pub-cache-hosted;sdk:2.12.0 @@ -255,7 +296,8 @@ jobs: - job_003 - job_004 - job_005 - job_008: + - job_006 + job_009: name: "run_tests; linux; Dart dev; PKG: protobuf; `dart test`" runs-on: ubuntu-latest steps: @@ -289,7 +331,8 @@ jobs: - job_003 - job_004 - job_005 - job_009: + - job_006 + job_010: name: "run_tests; linux; Dart dev; PKG: protoc_plugin; `./../tool/setup.sh`, `make protos`, `dart test`" runs-on: ubuntu-latest steps: @@ -297,7 +340,7 @@ jobs: uses: actions/cache@v3 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:protoc_plugin;commands:command_0-command_2-test" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:protoc_plugin;commands:command_0-command_3-test" restore-keys: | os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:protoc_plugin os:ubuntu-latest;pub-cache-hosted;sdk:dev @@ -331,7 +374,8 @@ jobs: - job_003 - job_004 - job_005 - job_010: + - job_006 + job_011: name: "run_tests; osx; Dart 2.12.0; PKG: protobuf; `dart test`" runs-on: macos-latest steps: @@ -365,7 +409,8 @@ jobs: - job_003 - job_004 - job_005 - job_011: + - job_006 + job_012: name: "run_tests; osx; Dart dev; PKG: protobuf; `dart test`" runs-on: macos-latest steps: @@ -399,7 +444,8 @@ jobs: - job_003 - job_004 - job_005 - job_012: + - job_006 + job_013: name: "run_tests; windows; Dart 2.12.0; PKG: protobuf; `dart test`" runs-on: windows-latest steps: @@ -423,7 +469,8 @@ jobs: - job_003 - job_004 - job_005 - job_013: + - job_006 + job_014: name: "run_tests; windows; Dart dev; PKG: protobuf; `dart test`" runs-on: windows-latest steps: @@ -447,3 +494,4 @@ jobs: - job_003 - job_004 - job_005 + - job_006 diff --git a/benchmarks/mono_pkg.yaml b/benchmarks/mono_pkg.yaml new file mode 100644 index 000000000..df3f45473 --- /dev/null +++ b/benchmarks/mono_pkg.yaml @@ -0,0 +1,10 @@ +# See https://github.com/dart-lang/mono_repo for details + +stages: + - format_analyze: + - group: + - format + - command: ./../tool/setup.sh + - command: ./tool/compile_protos.sh + - analyze: --fatal-infos + sdk: dev diff --git a/benchmarks/compile_protos.sh b/benchmarks/tool/compile_protos.sh similarity index 54% rename from benchmarks/compile_protos.sh rename to benchmarks/tool/compile_protos.sh index 501d7528d..e47781e3f 100755 --- a/benchmarks/compile_protos.sh +++ b/benchmarks/tool/compile_protos.sh @@ -5,6 +5,7 @@ # BSD-style license that can be found in the LICENSE file. SCRIPT_DIR=$(dirname "${BASH_SOURCE}") +BENCHMARK_DIR=$SCRIPT_DIR/.. # These protos don't have any imports SIMPLE_PROTOS=( @@ -18,10 +19,12 @@ set -e mkdir -p lib/generated -protoc --dart_out=lib/generated --plugin=protoc-gen-dart=run_protoc_plugin.sh \ - -I$SCRIPT_DIR/protos \ - "${SIMPLE_PROTOS[@]/#/$SCRIPT_DIR/}" +protoc --dart_out=lib/generated --plugin=protoc-gen-dart=tool/run_protoc_plugin.sh \ + -I$BENCHMARK_DIR/protos \ + "${SIMPLE_PROTOS[@]/#/$BENCHMARK_DIR/}" -protoc --dart_out=lib/generated --plugin=protoc-gen-dart=run_protoc_plugin.sh \ - -I$SCRIPT_DIR/protos/query_benchmark \ - $SCRIPT_DIR/protos/query_benchmark/*.proto +protoc --dart_out=lib/generated --plugin=protoc-gen-dart=tool/run_protoc_plugin.sh \ + -I$BENCHMARK_DIR/protos/query_benchmark \ + $BENCHMARK_DIR/protos/query_benchmark/*.proto + +dart format lib/generated diff --git a/benchmarks/run_protoc_plugin.sh b/benchmarks/tool/run_protoc_plugin.sh similarity index 100% rename from benchmarks/run_protoc_plugin.sh rename to benchmarks/tool/run_protoc_plugin.sh diff --git a/tool/ci.sh b/tool/ci.sh index 3251acc7a..2ee2c18c4 100755 --- a/tool/ci.sh +++ b/tool/ci.sh @@ -88,6 +88,10 @@ for PKG in ${PKGS}; do ./compile_protos.sh || EXIT_CODE=$? ;; command_2) + echo './tool/compile_protos.sh' + ./tool/compile_protos.sh || EXIT_CODE=$? + ;; + command_3) echo 'make protos' make protos || EXIT_CODE=$? ;; From 51e9fadff89f92197a222cf65ef14c1eb1e1886a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 13:28:49 +0200 Subject: [PATCH 19/59] Add a tool to compile benchmarks --- .gitignore | 1 + benchmarks/tool/compile_benchmarks.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100755 benchmarks/tool/compile_benchmarks.sh diff --git a/.gitignore b/.gitignore index e83ffaa2f..b853dd090 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ build/ **/lib/generated/** packages pubspec.lock +benchmarks/out diff --git a/benchmarks/tool/compile_benchmarks.sh b/benchmarks/tool/compile_benchmarks.sh new file mode 100755 index 000000000..1c8c0958f --- /dev/null +++ b/benchmarks/tool/compile_benchmarks.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright (c) 2018, 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. + +SCRIPT_DIR=$(dirname "${BASH_SOURCE}") +BENCHMARK_DIR=$SCRIPT_DIR/.. + +set -e + +mkdir -p out + +for bench in bin/*.dart; do + file=$(basename $bench) + file_no_ext=${file%.dart} + exe_out="out/$file_no_ext.exe" + js_out="out/$file_no_ext.js" + + echo "$file -> $exe_out" + dart compile exe $bench -o $exe_out + echo '' + + echo "$file -> $js_out" + dart compile js -O4 $bench -o $js_out + echo '' +done From 61fa212359ab04ed886903622a19cba3b9f1a3fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 14:14:22 +0200 Subject: [PATCH 20/59] Add script to compile benchmarks faster --- benchmarks/tool/compile_benchmarks.py | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 benchmarks/tool/compile_benchmarks.py diff --git a/benchmarks/tool/compile_benchmarks.py b/benchmarks/tool/compile_benchmarks.py new file mode 100755 index 000000000..b8c8bc240 --- /dev/null +++ b/benchmarks/tool/compile_benchmarks.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2018, 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. + +# This does the same thing as `compile_benchmarks.sh`, but compiles inputs in +# parallel. +# +# $ time ./tool/compile_benchmarks.py +# ... +# ./tool/compile_benchmarks.py 130.47s user 19.48s system 1074% cpu 13.951 total +# +# $ time ./tool/compile_benchmarks.sh +# ... +# ./tool/compile_benchmarks.sh 91.14s user 20.08s system 137% cpu 1:20.97 total + +import os +import subprocess + +try: + os.mkdir('out') +except: + pass + +processes = [] + +def run_cmd(args): + print(' '.join(args)) + + # Ignore outputs, print error messages + processes.append(subprocess.Popen(args, stdout=subprocess.DEVNULL)) + +for file in os.listdir('bin'): + file = os.path.splitext(file)[0] + + run_cmd(['dart', 'compile', 'exe', f'bin/{file}.dart', '-o', f'out/{file}.exe']) + run_cmd(['dart', 'compile', 'js', '-O4', f'bin/{file}.dart', '-o', f'out/{file}.js']) + +print('Waiting for processes to finish...') + +for p in processes: + p.wait() From 3d81be5227bc98510c6d0c08ddab9ff8505fd656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 14:43:45 +0200 Subject: [PATCH 21/59] Divide query_benchmark results by 10 to be compatible with old results --- .../bin/query_benchmark_decode_binary.dart | 3 ++- benchmarks/bin/query_benchmark_decode_json.dart | 3 ++- .../bin/query_benchmark_encode_binary.dart | 3 ++- benchmarks/bin/query_benchmark_encode_json.dart | 3 ++- .../bin/query_benchmark_set_nested_value.dart | 5 +++-- benchmarks/lib/query_benchmark_common.dart | 17 +++++++++++++++++ benchmarks/pubspec.yaml | 3 ++- 7 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 benchmarks/lib/query_benchmark_common.dart diff --git a/benchmarks/bin/query_benchmark_decode_binary.dart b/benchmarks/bin/query_benchmark_decode_binary.dart index c620612bf..31a5a7aea 100644 --- a/benchmarks/bin/query_benchmark_decode_binary.dart +++ b/benchmarks/bin/query_benchmark_decode_binary.dart @@ -3,11 +3,12 @@ // BSD-style license that can be found in the LICENSE file. import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; -class Benchmark extends BenchmarkBase { +class Benchmark extends QueryBenchmark { final List _input; Benchmark(String name, this._input) : super(name); diff --git a/benchmarks/bin/query_benchmark_decode_json.dart b/benchmarks/bin/query_benchmark_decode_json.dart index 5cb53a1f0..53264101e 100644 --- a/benchmarks/bin/query_benchmark_decode_json.dart +++ b/benchmarks/bin/query_benchmark_decode_json.dart @@ -3,11 +3,12 @@ // BSD-style license that can be found in the LICENSE file. import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; -class Benchmark extends BenchmarkBase { +class Benchmark extends QueryBenchmark { final String _input; Benchmark(String name, List input) diff --git a/benchmarks/bin/query_benchmark_encode_binary.dart b/benchmarks/bin/query_benchmark_encode_binary.dart index adc3b4da1..5f24bce23 100644 --- a/benchmarks/bin/query_benchmark_encode_binary.dart +++ b/benchmarks/bin/query_benchmark_encode_binary.dart @@ -3,11 +3,12 @@ // BSD-style license that can be found in the LICENSE file. import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; -class Benchmark extends BenchmarkBase { +class Benchmark extends QueryBenchmark { final f0.A0 _input; Benchmark(String name, List input) diff --git a/benchmarks/bin/query_benchmark_encode_json.dart b/benchmarks/bin/query_benchmark_encode_json.dart index 84bdf4798..939a6c68e 100644 --- a/benchmarks/bin/query_benchmark_encode_json.dart +++ b/benchmarks/bin/query_benchmark_encode_json.dart @@ -3,11 +3,12 @@ // BSD-style license that can be found in the LICENSE file. import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; -class Benchmark extends BenchmarkBase { +class Benchmark extends QueryBenchmark { final f0.A0 _input; Benchmark(String name, List input) diff --git a/benchmarks/bin/query_benchmark_set_nested_value.dart b/benchmarks/bin/query_benchmark_set_nested_value.dart index c4142313d..8aed75f92 100644 --- a/benchmarks/bin/query_benchmark_set_nested_value.dart +++ b/benchmarks/bin/query_benchmark_set_nested_value.dart @@ -2,15 +2,16 @@ // 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:protobuf_benchmarks/readfile.dart'; import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; import 'package:protobuf_benchmarks/generated/f19.pb.dart' as f19; import 'package:protobuf_benchmarks/generated/f2.pb.dart' as f2; +import 'package:protobuf_benchmarks/query_benchmark_common.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; import 'package:benchmark_harness/benchmark_harness.dart'; import 'package:protobuf/protobuf.dart'; -class Benchmark extends BenchmarkBase { +class Benchmark extends QueryBenchmark { final f0.A0 _input; Benchmark(String name, List input) diff --git a/benchmarks/lib/query_benchmark_common.dart b/benchmarks/lib/query_benchmark_common.dart new file mode 100644 index 000000000..0fbe5cd83 --- /dev/null +++ b/benchmarks/lib/query_benchmark_common.dart @@ -0,0 +1,17 @@ +// Copyright (c) 2018, 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'; + +/// `benchmark_harness-2` reports 10x the time the benchmarked code takes. This +/// overrides the `measure` method to divide the result by 10. +abstract class QueryBenchmark extends BenchmarkBase { + QueryBenchmark(String name) : super(name); + + @override + double measure() { + var result = super.measure(); + return result / 10; + } +} diff --git a/benchmarks/pubspec.yaml b/benchmarks/pubspec.yaml index 9e49b8d2d..1beee787f 100644 --- a/benchmarks/pubspec.yaml +++ b/benchmarks/pubspec.yaml @@ -10,10 +10,11 @@ environment: sdk: '>=2.12.0 <3.0.0' dependencies: + # NB. When bumping benchmark_harness check if `QueryBenchmark` needs updating + benchmark_harness: ^2.0.0 protobuf: any dev_dependencies: - benchmark_harness: ^2.0.0 js: ^0.6.3 lints: ^1.0.0 protoc_plugin: From ce608604f2381903fff1c202980c523adf726e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 14:53:46 +0200 Subject: [PATCH 22/59] Fix warnings --- benchmarks/bin/query_benchmark_decode_binary.dart | 2 -- benchmarks/bin/query_benchmark_decode_json.dart | 2 -- benchmarks/bin/query_benchmark_encode_binary.dart | 2 -- benchmarks/bin/query_benchmark_encode_json.dart | 2 -- benchmarks/bin/query_benchmark_set_nested_value.dart | 1 - 5 files changed, 9 deletions(-) diff --git a/benchmarks/bin/query_benchmark_decode_binary.dart b/benchmarks/bin/query_benchmark_decode_binary.dart index 31a5a7aea..a92c0a4b9 100644 --- a/benchmarks/bin/query_benchmark_decode_binary.dart +++ b/benchmarks/bin/query_benchmark_decode_binary.dart @@ -6,8 +6,6 @@ import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -import 'package:benchmark_harness/benchmark_harness.dart'; - class Benchmark extends QueryBenchmark { final List _input; diff --git a/benchmarks/bin/query_benchmark_decode_json.dart b/benchmarks/bin/query_benchmark_decode_json.dart index 53264101e..758768557 100644 --- a/benchmarks/bin/query_benchmark_decode_json.dart +++ b/benchmarks/bin/query_benchmark_decode_json.dart @@ -6,8 +6,6 @@ import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -import 'package:benchmark_harness/benchmark_harness.dart'; - class Benchmark extends QueryBenchmark { final String _input; diff --git a/benchmarks/bin/query_benchmark_encode_binary.dart b/benchmarks/bin/query_benchmark_encode_binary.dart index 5f24bce23..433fbfa0d 100644 --- a/benchmarks/bin/query_benchmark_encode_binary.dart +++ b/benchmarks/bin/query_benchmark_encode_binary.dart @@ -6,8 +6,6 @@ import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -import 'package:benchmark_harness/benchmark_harness.dart'; - class Benchmark extends QueryBenchmark { final f0.A0 _input; diff --git a/benchmarks/bin/query_benchmark_encode_json.dart b/benchmarks/bin/query_benchmark_encode_json.dart index 939a6c68e..da73c5ad6 100644 --- a/benchmarks/bin/query_benchmark_encode_json.dart +++ b/benchmarks/bin/query_benchmark_encode_json.dart @@ -6,8 +6,6 @@ import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -import 'package:benchmark_harness/benchmark_harness.dart'; - class Benchmark extends QueryBenchmark { final f0.A0 _input; diff --git a/benchmarks/bin/query_benchmark_set_nested_value.dart b/benchmarks/bin/query_benchmark_set_nested_value.dart index 8aed75f92..22b05085f 100644 --- a/benchmarks/bin/query_benchmark_set_nested_value.dart +++ b/benchmarks/bin/query_benchmark_set_nested_value.dart @@ -8,7 +8,6 @@ import 'package:protobuf_benchmarks/generated/f2.pb.dart' as f2; import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -import 'package:benchmark_harness/benchmark_harness.dart'; import 'package:protobuf/protobuf.dart'; class Benchmark extends QueryBenchmark { From 1902aca53a201ec2dbff71e91f4d0545e35e1d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 15:00:45 +0200 Subject: [PATCH 23/59] Add README --- benchmarks/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 benchmarks/README.md diff --git a/benchmarks/README.md b/benchmarks/README.md new file mode 100644 index 000000000..796aef160 --- /dev/null +++ b/benchmarks/README.md @@ -0,0 +1,11 @@ +## Running benchmarks + +- Compile protos with `./tool/compile_protos.sh` +- **JIT:** Run benchmark programs in `bin/`, e.g. `dart bin/from_binary.dart` +- **AOT and JS:** + - Compile benchmark programs to native and JS with + `./tool/compile_benchmarks.sh`. If you have Python 3 installed, you can + also run `./tool/compile_benchmarks.py` to compile benchmarks in parallel. + - Run benchmark programs in `out/`: + AOT: `./out/from_binary.exe` + JS: `d8 $DART_SDK/lib/_internal/js_runtime/lib/preambles/d8.js out/from_binary.js` From 1b567e96433814585a6b43e37ebb0f56b463fa54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 15:05:09 +0200 Subject: [PATCH 24/59] Fix readme formatting --- benchmarks/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/README.md b/benchmarks/README.md index 796aef160..11b8bb3ac 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -7,5 +7,5 @@ `./tool/compile_benchmarks.sh`. If you have Python 3 installed, you can also run `./tool/compile_benchmarks.py` to compile benchmarks in parallel. - Run benchmark programs in `out/`: - AOT: `./out/from_binary.exe` - JS: `d8 $DART_SDK/lib/_internal/js_runtime/lib/preambles/d8.js out/from_binary.js` + - AOT: `./out/from_binary.exe` + - JS: `d8 $DART_SDK/lib/_internal/js_runtime/lib/preambles/d8.js out/from_binary.js` From 5256dad8ebd2ff3adf9b829f568a0711b94d2e6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 15:07:18 +0200 Subject: [PATCH 25/59] Commit pubspec.yaml --- benchmarks/pubspec.lock | 187 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 benchmarks/pubspec.lock diff --git a/benchmarks/pubspec.lock b/benchmarks/pubspec.lock new file mode 100644 index 000000000..703333877 --- /dev/null +++ b/benchmarks/pubspec.lock @@ -0,0 +1,187 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + url: "https://pub.dartlang.org" + source: hosted + version: "40.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.0" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.1" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.9.0" + benchmark_harness: + dependency: "direct main" + description: + name: benchmark_harness + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.16.0" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.2" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.2" + dart_style: + dependency: transitive + description: + name: dart_style + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.3" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.2" + fixnum: + dependency: transitive + description: + name: fixnum + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + js: + dependency: "direct dev" + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.4" + lints: + dependency: "direct dev" + description: + name: lints + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.2" + protobuf: + dependency: "direct main" + description: + path: "../protobuf" + relative: true + source: path + version: "3.0.0-dev" + protoc_plugin: + dependency: "direct dev" + description: + path: "../protoc_plugin" + relative: true + source: path + version: "21.0.0-dev" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.1" +sdks: + dart: ">=2.16.0-100.0.dev <3.0.0" From ee2320af371622740e6d328198f01d8c239edef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 09:25:03 +0200 Subject: [PATCH 26/59] Update `QueryBenchmark` documentation --- benchmarks/lib/query_benchmark_common.dart | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/benchmarks/lib/query_benchmark_common.dart b/benchmarks/lib/query_benchmark_common.dart index 0fbe5cd83..00c6dbd15 100644 --- a/benchmarks/lib/query_benchmark_common.dart +++ b/benchmarks/lib/query_benchmark_common.dart @@ -1,11 +1,18 @@ -// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +// Copyright (c) 2022, 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'; -/// `benchmark_harness-2` reports 10x the time the benchmarked code takes. This -/// overrides the `measure` method to divide the result by 10. +/// Use this class in the old "query_benchmark" benchmarks. +/// +/// `benchmark_harness-2` reports 10x the time the benchmarked code takes +/// (https://github.com/dart-lang/benchmark_harness/issues/30). Because +/// query_benchmark previously did not use `benchmark_harness`, when we start +/// using `benchmark_harness` we get 10x larger benchmark results. To avoid +/// this, this class overrides the relevant [BenchmarkBase] method(s) and +/// divides the result by 10 before reporting, making query_benchmark numbers +/// same as before. abstract class QueryBenchmark extends BenchmarkBase { QueryBenchmark(String name) : super(name); From 97b137b8eb47d0c3b79c1c54dabf5a195afae88b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 09:29:21 +0200 Subject: [PATCH 27/59] Remove compile_benchmark.sh, update README --- benchmarks/README.md | 7 +++++-- benchmarks/tool/compile_benchmarks.sh | 27 --------------------------- 2 files changed, 5 insertions(+), 29 deletions(-) delete mode 100755 benchmarks/tool/compile_benchmarks.sh diff --git a/benchmarks/README.md b/benchmarks/README.md index 11b8bb3ac..5fb041b57 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -1,11 +1,14 @@ ## Running benchmarks - Compile protos with `./tool/compile_protos.sh` + - **JIT:** Run benchmark programs in `bin/`, e.g. `dart bin/from_binary.dart` + - **AOT and JS:** + - Compile benchmark programs to native and JS with - `./tool/compile_benchmarks.sh`. If you have Python 3 installed, you can - also run `./tool/compile_benchmarks.py` to compile benchmarks in parallel. + `./tool/compile_benchmarks.py` + - Run benchmark programs in `out/`: - AOT: `./out/from_binary.exe` - JS: `d8 $DART_SDK/lib/_internal/js_runtime/lib/preambles/d8.js out/from_binary.js` diff --git a/benchmarks/tool/compile_benchmarks.sh b/benchmarks/tool/compile_benchmarks.sh deleted file mode 100755 index 1c8c0958f..000000000 --- a/benchmarks/tool/compile_benchmarks.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2018, 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. - -SCRIPT_DIR=$(dirname "${BASH_SOURCE}") -BENCHMARK_DIR=$SCRIPT_DIR/.. - -set -e - -mkdir -p out - -for bench in bin/*.dart; do - file=$(basename $bench) - file_no_ext=${file%.dart} - exe_out="out/$file_no_ext.exe" - js_out="out/$file_no_ext.js" - - echo "$file -> $exe_out" - dart compile exe $bench -o $exe_out - echo '' - - echo "$file -> $js_out" - dart compile js -O4 $bench -o $js_out - echo '' -done From 0075b98e92b03554ec8056e5ea4da4c84245a46f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 09:46:29 +0200 Subject: [PATCH 28/59] Report accurate results in all benchmarks, enable linter --- benchmarks/analysis_options.yaml | 5 ++++ benchmarks/bin/from_binary.dart | 9 ++++--- benchmarks/bin/from_json_string.dart | 5 ++-- benchmarks/bin/from_proto3_json_string.dart | 15 ++++++------ benchmarks/bin/hash_code.dart | 5 ++-- .../bin/query_benchmark_decode_binary.dart | 6 ++--- .../bin/query_benchmark_decode_json.dart | 6 ++--- .../bin/query_benchmark_encode_binary.dart | 4 ++-- .../bin/query_benchmark_encode_json.dart | 4 ++-- .../bin/query_benchmark_set_nested_value.dart | 7 +++--- benchmarks/bin/to_binary.dart | 5 ++-- benchmarks/bin/to_json_string.dart | 5 ++-- benchmarks/bin/to_proto3_json_object.dart | 5 ++-- benchmarks/bin/to_proto3_json_string.dart | 9 ++++--- benchmarks/lib/benchmark_base.dart | 19 +++++++++++++++ benchmarks/lib/query_benchmark_common.dart | 24 ------------------- 16 files changed, 62 insertions(+), 71 deletions(-) create mode 100644 benchmarks/analysis_options.yaml create mode 100644 benchmarks/lib/benchmark_base.dart delete mode 100644 benchmarks/lib/query_benchmark_common.dart diff --git a/benchmarks/analysis_options.yaml b/benchmarks/analysis_options.yaml new file mode 100644 index 000000000..0476eb223 --- /dev/null +++ b/benchmarks/analysis_options.yaml @@ -0,0 +1,5 @@ +include: package:lints/recommended.yaml + +linter: + rules: + - directives_ordering diff --git a/benchmarks/bin/from_binary.dart b/benchmarks/bin/from_binary.dart index bf6078992..f309046e7 100644 --- a/benchmarks/bin/from_binary.dart +++ b/benchmarks/bin/from_binary.dart @@ -2,16 +2,15 @@ // 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:protobuf_benchmarks/readfile.dart'; +import 'dart:typed_data'; + +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; - -import 'dart:typed_data'; - -import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; class Benchmark extends BenchmarkBase { final Uint8List _message1Proto2Input; diff --git a/benchmarks/bin/from_json_string.dart b/benchmarks/bin/from_json_string.dart index e4c2f399e..7a130f020 100644 --- a/benchmarks/bin/from_json_string.dart +++ b/benchmarks/bin/from_json_string.dart @@ -2,14 +2,13 @@ // 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; - -import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; class Benchmark extends BenchmarkBase { final String _message1Proto2JsonString; diff --git a/benchmarks/bin/from_proto3_json_string.dart b/benchmarks/bin/from_proto3_json_string.dart index c23685b28..134c59af8 100644 --- a/benchmarks/bin/from_proto3_json_string.dart +++ b/benchmarks/bin/from_proto3_json_string.dart @@ -2,16 +2,15 @@ // 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:protobuf_benchmarks/readfile.dart'; +import 'dart:convert' show jsonDecode, jsonEncode; + +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; - -import 'dart:convert' show jsonDecode, jsonEncode; - -import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; class Benchmark extends BenchmarkBase { final String _message1Proto2Proto3JsonString; @@ -31,11 +30,11 @@ class Benchmark extends BenchmarkBase { @override void run() { p2.GoogleMessage1.create() - ..mergeFromProto3Json(jsonDecode(_message1Proto2Proto3JsonString)); + .mergeFromProto3Json(jsonDecode(_message1Proto2Proto3JsonString)); p3.GoogleMessage1.create() - ..mergeFromProto3Json(jsonDecode(_message1Proto3Proto3JsonString)); + .mergeFromProto3Json(jsonDecode(_message1Proto3Proto3JsonString)); GoogleMessage2.create() - ..mergeFromProto3Json(jsonDecode(_message2Proto3JsonString)); + .mergeFromProto3Json(jsonDecode(_message2Proto3JsonString)); } } diff --git a/benchmarks/bin/hash_code.dart b/benchmarks/bin/hash_code.dart index b4fbbc8cf..74e7fb6f5 100644 --- a/benchmarks/bin/hash_code.dart +++ b/benchmarks/bin/hash_code.dart @@ -2,14 +2,13 @@ // 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; - -import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; class Benchmark extends BenchmarkBase { final p2.GoogleMessage1 _message1Proto2; diff --git a/benchmarks/bin/query_benchmark_decode_binary.dart b/benchmarks/bin/query_benchmark_decode_binary.dart index a92c0a4b9..dce26f52b 100644 --- a/benchmarks/bin/query_benchmark_decode_binary.dart +++ b/benchmarks/bin/query_benchmark_decode_binary.dart @@ -2,18 +2,18 @@ // 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:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; -import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -class Benchmark extends QueryBenchmark { +class Benchmark extends BenchmarkBase { final List _input; Benchmark(String name, this._input) : super(name); @override void run() { - f0.A0.fromBuffer(this._input); + f0.A0.fromBuffer(_input); } } diff --git a/benchmarks/bin/query_benchmark_decode_json.dart b/benchmarks/bin/query_benchmark_decode_json.dart index 758768557..e0b1ff041 100644 --- a/benchmarks/bin/query_benchmark_decode_json.dart +++ b/benchmarks/bin/query_benchmark_decode_json.dart @@ -2,11 +2,11 @@ // 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:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; -import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -class Benchmark extends QueryBenchmark { +class Benchmark extends BenchmarkBase { final String _input; Benchmark(String name, List input) @@ -15,7 +15,7 @@ class Benchmark extends QueryBenchmark { @override void run() { - f0.A0.fromJson(this._input); + f0.A0.fromJson(_input); } } diff --git a/benchmarks/bin/query_benchmark_encode_binary.dart b/benchmarks/bin/query_benchmark_encode_binary.dart index 433fbfa0d..6d4017e9e 100644 --- a/benchmarks/bin/query_benchmark_encode_binary.dart +++ b/benchmarks/bin/query_benchmark_encode_binary.dart @@ -2,11 +2,11 @@ // 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:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; -import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -class Benchmark extends QueryBenchmark { +class Benchmark extends BenchmarkBase { final f0.A0 _input; Benchmark(String name, List input) diff --git a/benchmarks/bin/query_benchmark_encode_json.dart b/benchmarks/bin/query_benchmark_encode_json.dart index da73c5ad6..44171d2ec 100644 --- a/benchmarks/bin/query_benchmark_encode_json.dart +++ b/benchmarks/bin/query_benchmark_encode_json.dart @@ -2,11 +2,11 @@ // 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:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; -import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -class Benchmark extends QueryBenchmark { +class Benchmark extends BenchmarkBase { final f0.A0 _input; Benchmark(String name, List input) diff --git a/benchmarks/bin/query_benchmark_set_nested_value.dart b/benchmarks/bin/query_benchmark_set_nested_value.dart index 22b05085f..a89add8b3 100644 --- a/benchmarks/bin/query_benchmark_set_nested_value.dart +++ b/benchmarks/bin/query_benchmark_set_nested_value.dart @@ -2,15 +2,14 @@ // 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:protobuf/protobuf.dart'; +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; import 'package:protobuf_benchmarks/generated/f19.pb.dart' as f19; import 'package:protobuf_benchmarks/generated/f2.pb.dart' as f2; -import 'package:protobuf_benchmarks/query_benchmark_common.dart'; import 'package:protobuf_benchmarks/readfile.dart'; -import 'package:protobuf/protobuf.dart'; - -class Benchmark extends QueryBenchmark { +class Benchmark extends BenchmarkBase { final f0.A0 _input; Benchmark(String name, List input) diff --git a/benchmarks/bin/to_binary.dart b/benchmarks/bin/to_binary.dart index 0a0c382d1..a3a461511 100644 --- a/benchmarks/bin/to_binary.dart +++ b/benchmarks/bin/to_binary.dart @@ -2,14 +2,13 @@ // 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; - -import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; class Benchmark extends BenchmarkBase { final p2.GoogleMessage1 _message1Proto2; diff --git a/benchmarks/bin/to_json_string.dart b/benchmarks/bin/to_json_string.dart index 2eacea714..4f1cc2591 100644 --- a/benchmarks/bin/to_json_string.dart +++ b/benchmarks/bin/to_json_string.dart @@ -2,14 +2,13 @@ // 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; - -import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; class Benchmark extends BenchmarkBase { final p2.GoogleMessage1 _message1Proto2; diff --git a/benchmarks/bin/to_proto3_json_object.dart b/benchmarks/bin/to_proto3_json_object.dart index f7e7c5bae..d4005644e 100644 --- a/benchmarks/bin/to_proto3_json_object.dart +++ b/benchmarks/bin/to_proto3_json_object.dart @@ -2,14 +2,13 @@ // 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; - -import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; class Benchmark extends BenchmarkBase { final p2.GoogleMessage1 _message1Proto2; diff --git a/benchmarks/bin/to_proto3_json_string.dart b/benchmarks/bin/to_proto3_json_string.dart index fdfda506b..de636164d 100644 --- a/benchmarks/bin/to_proto3_json_string.dart +++ b/benchmarks/bin/to_proto3_json_string.dart @@ -2,16 +2,15 @@ // 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:protobuf_benchmarks/readfile.dart'; +import 'dart:convert' show jsonEncode; + +import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' as p3; import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; - -import 'dart:convert' show jsonEncode; - -import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; class Benchmark extends BenchmarkBase { final p2.GoogleMessage1 _message1Proto2; diff --git a/benchmarks/lib/benchmark_base.dart b/benchmarks/lib/benchmark_base.dart new file mode 100644 index 000000000..bcd8c560e --- /dev/null +++ b/benchmarks/lib/benchmark_base.dart @@ -0,0 +1,19 @@ +// Copyright (c) 2022, 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' as bh; + +/// A subclass of [bh.BenchmarkBase] to work around +/// https://github.com/dart-lang/benchmark_harness/issues/30. +/// +/// Overrides the relevant [bh.BenchmarkBase] method(s) to report accurate +/// results, rather than 10x the actual results. +abstract class BenchmarkBase extends bh.BenchmarkBase { + BenchmarkBase(String name) : super(name); + + @override + double measure() { + return super.measure() / 10; + } +} diff --git a/benchmarks/lib/query_benchmark_common.dart b/benchmarks/lib/query_benchmark_common.dart deleted file mode 100644 index 00c6dbd15..000000000 --- a/benchmarks/lib/query_benchmark_common.dart +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 2022, 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'; - -/// Use this class in the old "query_benchmark" benchmarks. -/// -/// `benchmark_harness-2` reports 10x the time the benchmarked code takes -/// (https://github.com/dart-lang/benchmark_harness/issues/30). Because -/// query_benchmark previously did not use `benchmark_harness`, when we start -/// using `benchmark_harness` we get 10x larger benchmark results. To avoid -/// this, this class overrides the relevant [BenchmarkBase] method(s) and -/// divides the result by 10 before reporting, making query_benchmark numbers -/// same as before. -abstract class QueryBenchmark extends BenchmarkBase { - QueryBenchmark(String name) : super(name); - - @override - double measure() { - var result = super.measure(); - return result / 10; - } -} From fdd1c7e1f4533faf35cb0a42bdb9fb9bfd6b97a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 09:59:42 +0200 Subject: [PATCH 29/59] Update copyright years in tool/ --- benchmarks/tool/compile_benchmarks.py | 2 +- benchmarks/tool/compile_protos.sh | 2 +- benchmarks/tool/run_protoc_plugin.sh | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.py b/benchmarks/tool/compile_benchmarks.py index b8c8bc240..bae48f097 100755 --- a/benchmarks/tool/compile_benchmarks.py +++ b/benchmarks/tool/compile_benchmarks.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +# Copyright (c) 2022, 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. diff --git a/benchmarks/tool/compile_protos.sh b/benchmarks/tool/compile_protos.sh index e47781e3f..5fd12b833 100755 --- a/benchmarks/tool/compile_protos.sh +++ b/benchmarks/tool/compile_protos.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file +# Copyright (c) 2022, 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. diff --git a/benchmarks/tool/run_protoc_plugin.sh b/benchmarks/tool/run_protoc_plugin.sh index 52cab1273..e32cf9880 100755 --- a/benchmarks/tool/run_protoc_plugin.sh +++ b/benchmarks/tool/run_protoc_plugin.sh @@ -1,3 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2022, 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 run protoc_plugin protoc-gen-dart From d058236975c4222d630ab650331b4d4bf3ce96e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 11:23:45 +0200 Subject: [PATCH 30/59] compile_benchmarks.py: Do not spawn more processes than number of CPUs --- benchmarks/tool/compile_benchmarks.py | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/benchmarks/tool/compile_benchmarks.py b/benchmarks/tool/compile_benchmarks.py index bae48f097..ae1fe151e 100755 --- a/benchmarks/tool/compile_benchmarks.py +++ b/benchmarks/tool/compile_benchmarks.py @@ -15,17 +15,51 @@ # ... # ./tool/compile_benchmarks.sh 91.14s user 20.08s system 137% cpu 1:20.97 total +import multiprocessing import os import subprocess +import time try: os.mkdir('out') except: pass +n_cpus = multiprocessing.cpu_count() + +print('n_cpus:', n_cpus) + processes = [] +def wait_processes(): + global processes + + while True: + new_processes = [] + + # Remove finished processes from the pool + for p in processes: + ret = p.poll() + + if ret == None: + new_processes.append(p) + continue + + if ret != 0: + print('Process returned %' % ret) + sys.exit(1) + + processes = new_processes + + if len(processes) == n_cpus: + time.sleep(1) + else: + return + def run_cmd(args): + if len(processes) >= n_cpus: + wait_processes() + print(' '.join(args)) # Ignore outputs, print error messages From 9c1cf13c4515ee6d688c824bbecfe8de32c0f8d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 11:24:12 +0200 Subject: [PATCH 31/59] compile_benchamrks.py: Update comments --- benchmarks/tool/compile_benchmarks.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.py b/benchmarks/tool/compile_benchmarks.py index ae1fe151e..66a7bc6f0 100755 --- a/benchmarks/tool/compile_benchmarks.py +++ b/benchmarks/tool/compile_benchmarks.py @@ -4,16 +4,7 @@ # 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. -# This does the same thing as `compile_benchmarks.sh`, but compiles inputs in -# parallel. -# -# $ time ./tool/compile_benchmarks.py -# ... -# ./tool/compile_benchmarks.py 130.47s user 19.48s system 1074% cpu 13.951 total -# -# $ time ./tool/compile_benchmarks.sh -# ... -# ./tool/compile_benchmarks.sh 91.14s user 20.08s system 137% cpu 1:20.97 total +# Compiles benchmark programs in `bin/` to native and JS, in parallel. import multiprocessing import os From eae565b190860f134b0752cc51521fa470114a32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 11:25:38 +0200 Subject: [PATCH 32/59] compile_benchmarks.py: Exit with 1 when a subprocess fails --- benchmarks/tool/compile_benchmarks.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/benchmarks/tool/compile_benchmarks.py b/benchmarks/tool/compile_benchmarks.py index 66a7bc6f0..92a9e4fdb 100755 --- a/benchmarks/tool/compile_benchmarks.py +++ b/benchmarks/tool/compile_benchmarks.py @@ -65,4 +65,7 @@ def run_cmd(args): print('Waiting for processes to finish...') for p in processes: - p.wait() + ret = p.wait() + if ret != 0: + print('Process returned %' % ret) + sys.exit(1) From 83c3f5f746081940849fbd232f05faa4887a1669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 13:07:34 +0200 Subject: [PATCH 33/59] Implement benchmark builder in Dart --- benchmarks/pubspec.lock | 22 ++++- benchmarks/pubspec.yaml | 12 +-- benchmarks/tool/compile_benchmarks.dart | 111 ++++++++++++++++++++++++ 3 files changed, 136 insertions(+), 9 deletions(-) create mode 100755 benchmarks/tool/compile_benchmarks.dart diff --git a/benchmarks/pubspec.lock b/benchmarks/pubspec.lock index 703333877..edee7a39b 100644 --- a/benchmarks/pubspec.lock +++ b/benchmarks/pubspec.lock @@ -16,7 +16,7 @@ packages: source: hosted version: "4.1.0" args: - dependency: transitive + dependency: "direct dev" description: name: args url: "https://pub.dartlang.org" @@ -30,7 +30,7 @@ packages: source: hosted version: "2.9.0" benchmark_harness: - dependency: "direct main" + dependency: "direct dev" description: name: benchmark_harness url: "https://pub.dartlang.org" @@ -114,14 +114,21 @@ packages: source: hosted version: "2.1.0" path: - dependency: transitive + dependency: "direct dev" description: name: path url: "https://pub.dartlang.org" source: hosted version: "1.8.2" + pool: + dependency: "direct dev" + description: + name: pool + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.1" protobuf: - dependency: "direct main" + dependency: "direct dev" description: path: "../protobuf" relative: true @@ -148,6 +155,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.9.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" string_scanner: dependency: transitive description: diff --git a/benchmarks/pubspec.yaml b/benchmarks/pubspec.yaml index 1beee787f..8e1345924 100644 --- a/benchmarks/pubspec.yaml +++ b/benchmarks/pubspec.yaml @@ -9,16 +9,18 @@ publish_to: none environment: sdk: '>=2.12.0 <3.0.0' -dependencies: - # NB. When bumping benchmark_harness check if `QueryBenchmark` needs updating - benchmark_harness: ^2.0.0 - protobuf: any - dev_dependencies: + args: ^2.3.1 + # NB. When bumping benchmark_harness check if `benchmark_base.BenchmarkBase` + # needs updating + benchmark_harness: ^2.0.0 js: ^0.6.3 lints: ^1.0.0 + path: ^1.8.2 + pool: ^1.5.1 protoc_plugin: path: '../protoc_plugin' + protobuf: any dependency_overrides: protobuf: diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart new file mode 100755 index 000000000..398b372b7 --- /dev/null +++ b/benchmarks/tool/compile_benchmarks.dart @@ -0,0 +1,111 @@ +#!/usr/bin/env dart + +import 'dart:io' show exit, Platform, Process, Directory; + +import 'package:args/args.dart' show ArgParser; +import 'package:path/path.dart' as path; +import 'package:pool/pool.dart' show Pool; + +Future main(List args) async { + final argParser = ArgParser() + ..addOption('target', mandatory: false, defaultsTo: 'jit,aot,js'); + final parsedArgs = argParser.parse(args); + + var targets = {}; + for (final targetStr in parsedArgs['target'].split(',')) { + switch (targetStr) { + case 'jit': + targets.add(jitTarget); + break; + + case 'aot': + targets.add(aotTarget); + break; + + case 'js': + targets.add(jsTarget); + break; + + default: + print( + 'Unsupported target: $targetStr. Supported targets: jit, aot, js'); + exit(1); + } + } + + // Arg list is immutable, clone it + var sourceFiles = List.from(parsedArgs.rest); + + if (sourceFiles.isEmpty) { + // Compile all files in bin/ + final dir = Directory('bin'); + for (final dirFile in dir.listSync(recursive: false)) { + sourceFiles.add(dirFile.path); + } + } + + final numCpus = Platform.numberOfProcessors; + final pool = Pool(numCpus); + final processes = []; + + for (final sourceFile in sourceFiles) { + for (final target in targets) { + final resource = await pool.request(); + processes.add(target.compile(sourceFile)); + resource.release(); + } + } + + for (final process in processes) { + final process_ = await process; + final exitCode = await process_.exitCode; + if (exitCode != 0) { + print('Process returned exit code $exitCode'); + exit(1); + } + } +} + +class Target { + final String _name; + final List Function(String) _processArgs; + + const Target(this._name, this._processArgs); + + @override + String toString() { + return 'Target($_name)'; + } + + Future compile(String sourceFile) { + final processArgs = _processArgs(sourceFile); + print(processArgs.join(' ')); + return Process.start(processArgs[0], processArgs.sublist(1)); + } +} + +const jitTarget = Target('jit', jitProcessArgs); +const aotTarget = Target('aot', aotProcessArgs); +const jsTarget = Target('js', jsProcessArgs); + +List jitProcessArgs(String sourceFile) { + final baseName = path.basename(sourceFile); + return [ + 'dart', + '--snapshot-kind=kernel', + '--snapshot=out/$baseName.dill', + sourceFile + ]; +} + +List aotProcessArgs(String sourceFile) { + final baseName = path.basename(sourceFile); + final baseNameNoExt = path.withoutExtension(baseName); + return ['dart', 'compile', 'exe', sourceFile, '-o', 'out/$baseNameNoExt.exe']; +} + +List jsProcessArgs(String sourceFile) { + final baseName = path.basename(sourceFile); + final baseNameNoExt = path.withoutExtension(baseName); + return ['dart', 'compile', 'js', sourceFile, '-o', 'out/$baseNameNoExt.js']; +} From 1f627fde3fe8c8016509b749603afed7394f3ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 13:30:24 +0200 Subject: [PATCH 34/59] Remove compile_benchmarks.py, update Dart script --- benchmarks/tool/compile_benchmarks.dart | 38 ++++++++----- benchmarks/tool/compile_benchmarks.py | 71 ------------------------- 2 files changed, 24 insertions(+), 85 deletions(-) delete mode 100755 benchmarks/tool/compile_benchmarks.py diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 398b372b7..dea3145b3 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -8,9 +8,16 @@ import 'package:pool/pool.dart' show Pool; Future main(List args) async { final argParser = ArgParser() - ..addOption('target', mandatory: false, defaultsTo: 'jit,aot,js'); + ..addOption('target', mandatory: false, defaultsTo: 'jit,aot,js') + ..addOption('jobs', abbr: 'j', mandatory: false); + final parsedArgs = argParser.parse(args); + var jobs = Platform.numberOfProcessors; + if (parsedArgs['jobs'] != null) { + jobs = int.parse(parsedArgs['jobs']!); + } + var targets = {}; for (final targetStr in parsedArgs['target'].split(',')) { switch (targetStr) { @@ -44,26 +51,31 @@ Future main(List args) async { } } - final numCpus = Platform.numberOfProcessors; - final pool = Pool(numCpus); - final processes = []; + final commands = []; for (final sourceFile in sourceFiles) { for (final target in targets) { - final resource = await pool.request(); - processes.add(target.compile(sourceFile)); - resource.release(); + commands.add(target.compileArgs(sourceFile)); } } - for (final process in processes) { - final process_ = await process; - final exitCode = await process_.exitCode; + final pool = Pool(jobs); + + final stream = pool.forEach(commands, (a) async { + var command = a as List; + print(command.join(' ')); + return Process.run(command[0], command.sublist(1)); + }); + + await for (final processResult in stream) { + final exitCode = processResult.exitCode; if (exitCode != 0) { print('Process returned exit code $exitCode'); exit(1); } } + + await pool.done; } class Target { @@ -77,10 +89,8 @@ class Target { return 'Target($_name)'; } - Future compile(String sourceFile) { - final processArgs = _processArgs(sourceFile); - print(processArgs.join(' ')); - return Process.start(processArgs[0], processArgs.sublist(1)); + List compileArgs(String sourceFile) { + return _processArgs(sourceFile); } } diff --git a/benchmarks/tool/compile_benchmarks.py b/benchmarks/tool/compile_benchmarks.py deleted file mode 100755 index 92a9e4fdb..000000000 --- a/benchmarks/tool/compile_benchmarks.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright (c) 2022, 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. - -# Compiles benchmark programs in `bin/` to native and JS, in parallel. - -import multiprocessing -import os -import subprocess -import time - -try: - os.mkdir('out') -except: - pass - -n_cpus = multiprocessing.cpu_count() - -print('n_cpus:', n_cpus) - -processes = [] - -def wait_processes(): - global processes - - while True: - new_processes = [] - - # Remove finished processes from the pool - for p in processes: - ret = p.poll() - - if ret == None: - new_processes.append(p) - continue - - if ret != 0: - print('Process returned %' % ret) - sys.exit(1) - - processes = new_processes - - if len(processes) == n_cpus: - time.sleep(1) - else: - return - -def run_cmd(args): - if len(processes) >= n_cpus: - wait_processes() - - print(' '.join(args)) - - # Ignore outputs, print error messages - processes.append(subprocess.Popen(args, stdout=subprocess.DEVNULL)) - -for file in os.listdir('bin'): - file = os.path.splitext(file)[0] - - run_cmd(['dart', 'compile', 'exe', f'bin/{file}.dart', '-o', f'out/{file}.exe']) - run_cmd(['dart', 'compile', 'js', '-O4', f'bin/{file}.dart', '-o', f'out/{file}.js']) - -print('Waiting for processes to finish...') - -for p in processes: - ret = p.wait() - if ret != 0: - print('Process returned %' % ret) - sys.exit(1) From 6e78ad86618db638009c3976b015e4988fa4f0e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 13:31:00 +0200 Subject: [PATCH 35/59] Update README --- benchmarks/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/README.md b/benchmarks/README.md index 5fb041b57..f43033dbe 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -6,8 +6,8 @@ - **AOT and JS:** - - Compile benchmark programs to native and JS with - `./tool/compile_benchmarks.py` + - Compile benchmark programs to native, JS, and JIT snapshots with + `./tool/compile_benchmarks.dart` - Run benchmark programs in `out/`: - AOT: `./out/from_binary.exe` From 9e37586a7c8c798785a1e499da1ca979d542513e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 29 Jun 2022 13:57:31 +0200 Subject: [PATCH 36/59] Update an error message --- benchmarks/tool/compile_benchmarks.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index dea3145b3..71835168a 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -70,7 +70,7 @@ Future main(List args) async { await for (final processResult in stream) { final exitCode = processResult.exitCode; if (exitCode != 0) { - print('Process returned exit code $exitCode'); + print('Process exited with $exitCode'); exit(1); } } From 98800c80c8a99f6118f6d193ee8d8fb036777094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 30 Jun 2022 10:26:35 +0200 Subject: [PATCH 37/59] Make some vars final --- benchmarks/tool/compile_benchmarks.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 71835168a..3cf7211d9 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -18,7 +18,7 @@ Future main(List args) async { jobs = int.parse(parsedArgs['jobs']!); } - var targets = {}; + final targets = {}; for (final targetStr in parsedArgs['target'].split(',')) { switch (targetStr) { case 'jit': @@ -41,7 +41,7 @@ Future main(List args) async { } // Arg list is immutable, clone it - var sourceFiles = List.from(parsedArgs.rest); + final sourceFiles = List.from(parsedArgs.rest); if (sourceFiles.isEmpty) { // Compile all files in bin/ @@ -62,7 +62,7 @@ Future main(List args) async { final pool = Pool(jobs); final stream = pool.forEach(commands, (a) async { - var command = a as List; + final command = a as List; print(command.join(' ')); return Process.run(command[0], command.sublist(1)); }); From 0c1a928ee15dc6f7d862730267b2a56b95aa722f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 30 Jun 2022 10:29:03 +0200 Subject: [PATCH 38/59] Remove a dynamic cast --- benchmarks/tool/compile_benchmarks.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 3cf7211d9..459595d2a 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -1,6 +1,6 @@ #!/usr/bin/env dart -import 'dart:io' show exit, Platform, Process, Directory; +import 'dart:io' show exit, Platform, Process, Directory, ProcessResult; import 'package:args/args.dart' show ArgParser; import 'package:path/path.dart' as path; @@ -51,7 +51,7 @@ Future main(List args) async { } } - final commands = []; + final commands = >[]; for (final sourceFile in sourceFiles) { for (final target in targets) { @@ -61,8 +61,8 @@ Future main(List args) async { final pool = Pool(jobs); - final stream = pool.forEach(commands, (a) async { - final command = a as List; + final stream = pool.forEach, ProcessResult>(commands, + (List command) async { print(command.join(' ')); return Process.run(command[0], command.sublist(1)); }); From 2ef63b4d57fb65b62f69101e27f83a585cced357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 30 Jun 2022 10:30:57 +0200 Subject: [PATCH 39/59] Print process stdout and stderr on failure --- benchmarks/tool/compile_benchmarks.dart | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 459595d2a..8b52e4635 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -71,6 +71,14 @@ Future main(List args) async { final exitCode = processResult.exitCode; if (exitCode != 0) { print('Process exited with $exitCode'); + print( + 'Process stdout ---------------------------------------------------'); + print(processResult.stdout); + print( + 'Process stderr ---------------------------------------------------'); + print(processResult.stderr); + print( + '------------------------------------------------------------------'); exit(1); } } From adf1109eeaa59eed1e171a5086d3183bf395dbb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 30 Jun 2022 10:31:56 +0200 Subject: [PATCH 40/59] Remove redundant `async` --- benchmarks/tool/compile_benchmarks.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 8b52e4635..91e8f8bc3 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -62,7 +62,7 @@ Future main(List args) async { final pool = Pool(jobs); final stream = pool.forEach, ProcessResult>(commands, - (List command) async { + (List command) { print(command.join(' ')); return Process.run(command[0], command.sublist(1)); }); From 424ac756d0e7f19a6762cfa425527470c2d4760b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 30 Jun 2022 10:33:35 +0200 Subject: [PATCH 41/59] Rename aot -> exe --- benchmarks/tool/compile_benchmarks.dart | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 91e8f8bc3..0799c74ff 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -8,7 +8,7 @@ import 'package:pool/pool.dart' show Pool; Future main(List args) async { final argParser = ArgParser() - ..addOption('target', mandatory: false, defaultsTo: 'jit,aot,js') + ..addOption('target', mandatory: false, defaultsTo: 'jit,exe,js') ..addOption('jobs', abbr: 'j', mandatory: false); final parsedArgs = argParser.parse(args); @@ -25,8 +25,8 @@ Future main(List args) async { targets.add(jitTarget); break; - case 'aot': - targets.add(aotTarget); + case 'exe': + targets.add(exeTarget); break; case 'js': @@ -35,7 +35,7 @@ Future main(List args) async { default: print( - 'Unsupported target: $targetStr. Supported targets: jit, aot, js'); + 'Unsupported target: $targetStr. Supported targets: jit, exe, js'); exit(1); } } @@ -103,7 +103,7 @@ class Target { } const jitTarget = Target('jit', jitProcessArgs); -const aotTarget = Target('aot', aotProcessArgs); +const exeTarget = Target('exe', exeProcessArgs); const jsTarget = Target('js', jsProcessArgs); List jitProcessArgs(String sourceFile) { @@ -116,7 +116,7 @@ List jitProcessArgs(String sourceFile) { ]; } -List aotProcessArgs(String sourceFile) { +List exeProcessArgs(String sourceFile) { final baseName = path.basename(sourceFile); final baseNameNoExt = path.withoutExtension(baseName); return ['dart', 'compile', 'exe', sourceFile, '-o', 'out/$baseNameNoExt.exe']; From df3ae1673e7244b0c6e3ab4abaaa774b43995c91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 30 Jun 2022 10:36:12 +0200 Subject: [PATCH 42/59] Create 'out' directory before compilation --- benchmarks/tool/compile_benchmarks.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 0799c74ff..eb328d16a 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -53,6 +53,12 @@ Future main(List args) async { final commands = >[]; + if (sourceFiles.isNotEmpty && targets.isNotEmpty) { + try { + Directory('out').createSync(); + } catch (_) {} + } + for (final sourceFile in sourceFiles) { for (final target in targets) { commands.add(target.compileArgs(sourceFile)); From da2f87a12cb584dd3a3d390353c3eccfe36904e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 30 Jun 2022 10:43:11 +0200 Subject: [PATCH 43/59] Add aot target --- benchmarks/tool/compile_benchmarks.dart | 36 ++++++++++++++++++------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index eb328d16a..bd306add7 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -8,7 +8,7 @@ import 'package:pool/pool.dart' show Pool; Future main(List args) async { final argParser = ArgParser() - ..addOption('target', mandatory: false, defaultsTo: 'jit,exe,js') + ..addOption('target', mandatory: false, defaultsTo: 'aot,exe,jit,js') ..addOption('jobs', abbr: 'j', mandatory: false); final parsedArgs = argParser.parse(args); @@ -21,21 +21,25 @@ Future main(List args) async { final targets = {}; for (final targetStr in parsedArgs['target'].split(',')) { switch (targetStr) { - case 'jit': - targets.add(jitTarget); + case 'aot': + targets.add(aotTarget); break; case 'exe': targets.add(exeTarget); break; + case 'jit': + targets.add(jitTarget); + break; + case 'js': targets.add(jsTarget); break; default: print( - 'Unsupported target: $targetStr. Supported targets: jit, exe, js'); + 'Unsupported target: $targetStr. Supported targets: aot, exe, jit, js'); exit(1); } } @@ -108,17 +112,21 @@ class Target { } } -const jitTarget = Target('jit', jitProcessArgs); +const aotTarget = Target('aot', aotProcessArgs); const exeTarget = Target('exe', exeProcessArgs); +const jitTarget = Target('jit', jitProcessArgs); const jsTarget = Target('js', jsProcessArgs); -List jitProcessArgs(String sourceFile) { +List aotProcessArgs(String sourceFile) { final baseName = path.basename(sourceFile); + final baseNameNoExt = path.withoutExtension(baseName); return [ 'dart', - '--snapshot-kind=kernel', - '--snapshot=out/$baseName.dill', - sourceFile + 'compile', + 'aot-snapshot', + sourceFile, + '-o', + 'out/$baseNameNoExt.aot' ]; } @@ -128,6 +136,16 @@ List exeProcessArgs(String sourceFile) { return ['dart', 'compile', 'exe', sourceFile, '-o', 'out/$baseNameNoExt.exe']; } +List jitProcessArgs(String sourceFile) { + final baseName = path.basename(sourceFile); + return [ + 'dart', + '--snapshot-kind=kernel', + '--snapshot=out/$baseName.dill', + sourceFile + ]; +} + List jsProcessArgs(String sourceFile) { final baseName = path.basename(sourceFile); final baseNameNoExt = path.withoutExtension(baseName); From 37902308da055cefbb3f7c01d155acbe1c9880ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 30 Jun 2022 10:48:31 +0200 Subject: [PATCH 44/59] Only try to compile Dart files --- benchmarks/tool/compile_benchmarks.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index bd306add7..6fe38bacc 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -51,7 +51,11 @@ Future main(List args) async { // Compile all files in bin/ final dir = Directory('bin'); for (final dirFile in dir.listSync(recursive: false)) { - sourceFiles.add(dirFile.path); + // Compiler hangs (instead of failing) when passed an .exe, so only try + // to compile Dart files + if (path.extension(dirFile.path) == '.dart') { + sourceFiles.add(dirFile.path); + } } } From 2f19d56a98d06621d9661d89bcac3deb8eb82260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Mon, 4 Jul 2022 10:58:27 +0200 Subject: [PATCH 45/59] Update dill file name --- benchmarks/tool/compile_benchmarks.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 6fe38bacc..c29ba7820 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -142,10 +142,11 @@ List exeProcessArgs(String sourceFile) { List jitProcessArgs(String sourceFile) { final baseName = path.basename(sourceFile); + final baseNameNoExt = path.withoutExtension(baseName); return [ 'dart', '--snapshot-kind=kernel', - '--snapshot=out/$baseName.dill', + '--snapshot=out/$baseNameNoExt.dill', sourceFile ]; } From 5156dd243b77b999b7cf0425bd8fe16878fec431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Mon, 4 Jul 2022 11:37:13 +0200 Subject: [PATCH 46/59] Add js-production mode --- benchmarks/tool/compile_benchmarks.dart | 30 +++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index c29ba7820..065c40c47 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -8,7 +8,8 @@ import 'package:pool/pool.dart' show Pool; Future main(List args) async { final argParser = ArgParser() - ..addOption('target', mandatory: false, defaultsTo: 'aot,exe,jit,js') + ..addOption('target', + mandatory: false, defaultsTo: 'aot,exe,jit,js,js-production') ..addOption('jobs', abbr: 'j', mandatory: false); final parsedArgs = argParser.parse(args); @@ -37,9 +38,13 @@ Future main(List args) async { targets.add(jsTarget); break; + case 'js-production': + targets.add(jsProductionTarget); + break; + default: print( - 'Unsupported target: $targetStr. Supported targets: aot, exe, jit, js'); + 'Unsupported target: $targetStr. Supported targets: aot, exe, jit, js, js-production'); exit(1); } } @@ -120,6 +125,7 @@ const aotTarget = Target('aot', aotProcessArgs); const exeTarget = Target('exe', exeProcessArgs); const jitTarget = Target('jit', jitProcessArgs); const jsTarget = Target('js', jsProcessArgs); +const jsProductionTarget = Target('js-production', jsProductionProcessArgs); List aotProcessArgs(String sourceFile) { final baseName = path.basename(sourceFile); @@ -156,3 +162,23 @@ List jsProcessArgs(String sourceFile) { final baseNameNoExt = path.withoutExtension(baseName); return ['dart', 'compile', 'js', sourceFile, '-o', 'out/$baseNameNoExt.js']; } + +List jsProductionProcessArgs(String sourceFile) { + // This is used in golem "...-dart2js-production" benchmarks. + // `--benchmarking-production` is not documented, it enables + // `--omit-implicit-checks` and `--trust-primitives`: + // https://github.com/dart-lang/sdk/blob/c48f6fea580178bd34f2d872588dcc1c79bdb01c/pkg/compiler/lib/src/options.dart#L764-L767 + // + // We will probably want to use `-O4` here. + final baseName = path.basename(sourceFile); + final baseNameNoExt = path.withoutExtension(baseName); + return [ + 'dart', + 'compile', + 'js', + sourceFile, + '--benchmarking-production', + '-o', + 'out/$baseNameNoExt.production.js' + ]; +} From 933086b25d0aebf06586f812f8ade93b04b43be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Mon, 4 Jul 2022 15:22:45 +0200 Subject: [PATCH 47/59] Add proto3 JSON object parsing benchmark --- benchmarks/bin/from_proto3_json_object.dart | 49 +++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 benchmarks/bin/from_proto3_json_object.dart diff --git a/benchmarks/bin/from_proto3_json_object.dart b/benchmarks/bin/from_proto3_json_object.dart new file mode 100644 index 000000000..5f85b67c1 --- /dev/null +++ b/benchmarks/bin/from_proto3_json_object.dart @@ -0,0 +1,49 @@ +// Copyright (c) 2018, 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 'dart:convert' show jsonDecode; + +import 'package:protobuf_benchmarks/benchmark_base.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; +import 'package:protobuf_benchmarks/readfile.dart'; + +class Benchmark extends BenchmarkBase { + final Object? _message1Proto2Proto3JsonObject; + final Object? _message1Proto3Proto3JsonObject; + final Object? _message2Proto3JsonObject; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : _message1Proto2Proto3JsonObject = + p2.GoogleMessage1.fromBuffer(message1Proto2Input).toProto3Json(), + _message1Proto3Proto3JsonObject = + p3.GoogleMessage1.fromBuffer(message1Proto3Input).toProto3Json(), + _message2Proto3JsonObject = + GoogleMessage2.fromBuffer(message2Input).toProto3Json(), + super(name); + + @override + void run() { + p2.GoogleMessage1.create() + .mergeFromProto3Json(_message1Proto2Proto3JsonObject); + p3.GoogleMessage1.create() + .mergeFromProto3Json(_message1Proto3Proto3JsonObject); + GoogleMessage2.create().mergeFromProto3Json(_message2Proto3JsonObject); + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_from_proto3_json_string', message1Proto2Input, + message1Proto3Input, message2Input) + .report(); +} From de6a05fec54463b32128322d8a0bf31117e684dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Mon, 4 Jul 2022 15:33:46 +0200 Subject: [PATCH 48/59] Fix warnings --- benchmarks/bin/from_proto3_json_object.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/benchmarks/bin/from_proto3_json_object.dart b/benchmarks/bin/from_proto3_json_object.dart index 5f85b67c1..ce261db57 100644 --- a/benchmarks/bin/from_proto3_json_object.dart +++ b/benchmarks/bin/from_proto3_json_object.dart @@ -2,8 +2,6 @@ // 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 'dart:convert' show jsonDecode; - import 'package:protobuf_benchmarks/benchmark_base.dart'; import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' as p2; From 847124aa1a3aa3f06e598e20a762788b35763fa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 5 Jul 2022 15:57:34 +0200 Subject: [PATCH 49/59] Update benchmark names --- benchmarks/bin/from_binary.dart | 2 +- benchmarks/bin/from_json_string.dart | 4 ++-- benchmarks/bin/from_proto3_json_object.dart | 4 ++-- benchmarks/bin/from_proto3_json_string.dart | 4 ++-- benchmarks/bin/hash_code.dart | 4 ++-- benchmarks/bin/query_benchmark_decode_binary.dart | 2 +- benchmarks/bin/query_benchmark_decode_json.dart | 2 +- benchmarks/bin/query_benchmark_encode_binary.dart | 2 +- benchmarks/bin/query_benchmark_encode_json.dart | 2 +- benchmarks/bin/query_benchmark_set_nested_value.dart | 2 +- benchmarks/bin/to_binary.dart | 4 ++-- benchmarks/bin/to_json_string.dart | 2 +- benchmarks/bin/to_proto3_json_object.dart | 2 +- benchmarks/bin/to_proto3_json_string.dart | 4 ++-- 14 files changed, 20 insertions(+), 20 deletions(-) diff --git a/benchmarks/bin/from_binary.dart b/benchmarks/bin/from_binary.dart index f309046e7..8d5990b17 100644 --- a/benchmarks/bin/from_binary.dart +++ b/benchmarks/bin/from_binary.dart @@ -38,7 +38,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_from_binary', message1Proto2Input, message1Proto3Input, + Benchmark('from_binary', message1Proto2Input, message1Proto3Input, message2Input) .report(); } diff --git a/benchmarks/bin/from_json_string.dart b/benchmarks/bin/from_json_string.dart index 7a130f020..02e22a276 100644 --- a/benchmarks/bin/from_json_string.dart +++ b/benchmarks/bin/from_json_string.dart @@ -39,7 +39,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_from_json_string', message1Proto2Input, - message1Proto3Input, message2Input) + Benchmark('from_json_string', message1Proto2Input, message1Proto3Input, + message2Input) .report(); } diff --git a/benchmarks/bin/from_proto3_json_object.dart b/benchmarks/bin/from_proto3_json_object.dart index ce261db57..1ca424ac2 100644 --- a/benchmarks/bin/from_proto3_json_object.dart +++ b/benchmarks/bin/from_proto3_json_object.dart @@ -41,7 +41,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_from_proto3_json_string', message1Proto2Input, - message1Proto3Input, message2Input) + Benchmark('from_proto3_json_object', message1Proto2Input, message1Proto3Input, + message2Input) .report(); } diff --git a/benchmarks/bin/from_proto3_json_string.dart b/benchmarks/bin/from_proto3_json_string.dart index 134c59af8..f3c8c1e04 100644 --- a/benchmarks/bin/from_proto3_json_string.dart +++ b/benchmarks/bin/from_proto3_json_string.dart @@ -44,7 +44,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_from_proto3_json_string', message1Proto2Input, - message1Proto3Input, message2Input) + Benchmark('from_proto3_json_string', message1Proto2Input, message1Proto3Input, + message2Input) .report(); } diff --git a/benchmarks/bin/hash_code.dart b/benchmarks/bin/hash_code.dart index 74e7fb6f5..5d1e01e67 100644 --- a/benchmarks/bin/hash_code.dart +++ b/benchmarks/bin/hash_code.dart @@ -36,7 +36,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_hashCode', message1Proto2Input, message1Proto3Input, - message2Input) + Benchmark( + 'hash_code', message1Proto2Input, message1Proto3Input, message2Input) .report(); } diff --git a/benchmarks/bin/query_benchmark_decode_binary.dart b/benchmarks/bin/query_benchmark_decode_binary.dart index dce26f52b..d0aad96e5 100644 --- a/benchmarks/bin/query_benchmark_decode_binary.dart +++ b/benchmarks/bin/query_benchmark_decode_binary.dart @@ -19,5 +19,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('protobuf_decode', encoded).report(); + Benchmark('query_benchmark_decode_binary', encoded).report(); } diff --git a/benchmarks/bin/query_benchmark_decode_json.dart b/benchmarks/bin/query_benchmark_decode_json.dart index e0b1ff041..32aea4b37 100644 --- a/benchmarks/bin/query_benchmark_decode_json.dart +++ b/benchmarks/bin/query_benchmark_decode_json.dart @@ -21,5 +21,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('protobuf_decode_json', encoded).report(); + Benchmark('query_benchmark_decode_json', encoded).report(); } diff --git a/benchmarks/bin/query_benchmark_encode_binary.dart b/benchmarks/bin/query_benchmark_encode_binary.dart index 6d4017e9e..50e7c356d 100644 --- a/benchmarks/bin/query_benchmark_encode_binary.dart +++ b/benchmarks/bin/query_benchmark_encode_binary.dart @@ -21,5 +21,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('protobuf_encode', encoded).report(); + Benchmark('query_benchmark_encode_binary', encoded).report(); } diff --git a/benchmarks/bin/query_benchmark_encode_json.dart b/benchmarks/bin/query_benchmark_encode_json.dart index 44171d2ec..1650b6fb7 100644 --- a/benchmarks/bin/query_benchmark_encode_json.dart +++ b/benchmarks/bin/query_benchmark_encode_json.dart @@ -21,5 +21,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('protobuf_encode_json', encoded).report(); + Benchmark('query_benchmark_encode_json', encoded).report(); } diff --git a/benchmarks/bin/query_benchmark_set_nested_value.dart b/benchmarks/bin/query_benchmark_set_nested_value.dart index a89add8b3..33bfc0a07 100644 --- a/benchmarks/bin/query_benchmark_set_nested_value.dart +++ b/benchmarks/bin/query_benchmark_set_nested_value.dart @@ -30,5 +30,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('protobuf_set_nested_value', encoded).report(); + Benchmark('query_benchmark_set_nested_value', encoded).report(); } diff --git a/benchmarks/bin/to_binary.dart b/benchmarks/bin/to_binary.dart index a3a461511..d008c4d0c 100644 --- a/benchmarks/bin/to_binary.dart +++ b/benchmarks/bin/to_binary.dart @@ -36,7 +36,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_to_binary', message1Proto2Input, message1Proto3Input, - message2Input) + Benchmark( + 'to_binary', message1Proto2Input, message1Proto3Input, message2Input) .report(); } diff --git a/benchmarks/bin/to_json_string.dart b/benchmarks/bin/to_json_string.dart index 4f1cc2591..32df02cf2 100644 --- a/benchmarks/bin/to_json_string.dart +++ b/benchmarks/bin/to_json_string.dart @@ -36,7 +36,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_to_json_string', message1Proto2Input, message1Proto3Input, + Benchmark('to_json_string', message1Proto2Input, message1Proto3Input, message2Input) .report(); } diff --git a/benchmarks/bin/to_proto3_json_object.dart b/benchmarks/bin/to_proto3_json_object.dart index d4005644e..8c23790c1 100644 --- a/benchmarks/bin/to_proto3_json_object.dart +++ b/benchmarks/bin/to_proto3_json_object.dart @@ -36,7 +36,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_to_json_string', message1Proto2Input, message1Proto3Input, + Benchmark('to_proto3_json_object', message1Proto2Input, message1Proto3Input, message2Input) .report(); } diff --git a/benchmarks/bin/to_proto3_json_string.dart b/benchmarks/bin/to_proto3_json_string.dart index de636164d..1a3407d27 100644 --- a/benchmarks/bin/to_proto3_json_string.dart +++ b/benchmarks/bin/to_proto3_json_string.dart @@ -38,7 +38,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_to_proto3_json_string', message1Proto2Input, - message1Proto3Input, message2Input) + Benchmark('to_proto3_json_string', message1Proto2Input, message1Proto3Input, + message2Input) .report(); } From f6c00c3cbc0969858f97f880047059b97f506398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 5 Jul 2022 19:10:11 +0200 Subject: [PATCH 50/59] Remove silly comment --- benchmarks/tool/compile_benchmarks.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 065c40c47..346f5a433 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -56,8 +56,6 @@ Future main(List args) async { // Compile all files in bin/ final dir = Directory('bin'); for (final dirFile in dir.listSync(recursive: false)) { - // Compiler hangs (instead of failing) when passed an .exe, so only try - // to compile Dart files if (path.extension(dirFile.path) == '.dart') { sourceFiles.add(dirFile.path); } From f5f334461a2298cc0adedc38d1a6959fae94f1d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 5 Jul 2022 19:16:08 +0200 Subject: [PATCH 51/59] Refactor file list initialization --- benchmarks/tool/compile_benchmarks.dart | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 346f5a433..09a771a82 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -50,16 +50,14 @@ Future main(List args) async { } // Arg list is immutable, clone it - final sourceFiles = List.from(parsedArgs.rest); + var sourceFiles = List.from(parsedArgs.rest); if (sourceFiles.isEmpty) { // Compile all files in bin/ - final dir = Directory('bin'); - for (final dirFile in dir.listSync(recursive: false)) { - if (path.extension(dirFile.path) == '.dart') { - sourceFiles.add(dirFile.path); - } - } + sourceFiles = Directory('bin') + .listSync(recursive: false) + .where((dirFile) => path.extension(dirFile.path) == '.dart') + .toList(); } final commands = >[]; From 751e66149ef8548299e113630ead2c965245d14c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 5 Jul 2022 19:20:27 +0200 Subject: [PATCH 52/59] Use -O4 in JS production mode --- benchmarks/tool/compile_benchmarks.dart | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 09a771a82..5bd101521 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -160,12 +160,6 @@ List jsProcessArgs(String sourceFile) { } List jsProductionProcessArgs(String sourceFile) { - // This is used in golem "...-dart2js-production" benchmarks. - // `--benchmarking-production` is not documented, it enables - // `--omit-implicit-checks` and `--trust-primitives`: - // https://github.com/dart-lang/sdk/blob/c48f6fea580178bd34f2d872588dcc1c79bdb01c/pkg/compiler/lib/src/options.dart#L764-L767 - // - // We will probably want to use `-O4` here. final baseName = path.basename(sourceFile); final baseNameNoExt = path.withoutExtension(baseName); return [ @@ -173,7 +167,7 @@ List jsProductionProcessArgs(String sourceFile) { 'compile', 'js', sourceFile, - '--benchmarking-production', + '-O4', '-o', 'out/$baseNameNoExt.production.js' ]; From 98b0e84bb7b26cc401831310f5bfdd29c85aac4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 5 Jul 2022 19:21:59 +0200 Subject: [PATCH 53/59] Fix type error --- benchmarks/tool/compile_benchmarks.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index 5bd101521..b4f2485be 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -57,6 +57,7 @@ Future main(List args) async { sourceFiles = Directory('bin') .listSync(recursive: false) .where((dirFile) => path.extension(dirFile.path) == '.dart') + .map((dirFile) => dirFile.path) .toList(); } From f2e0fe79f292de7f7d2ca2eb27cd46956b49d89f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 5 Jul 2022 19:28:45 +0200 Subject: [PATCH 54/59] Show failing command when a process fails --- benchmarks/tool/compile_benchmarks.dart | 26 +++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index b4f2485be..e3fb83943 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -77,22 +77,25 @@ Future main(List args) async { final pool = Pool(jobs); - final stream = pool.forEach, ProcessResult>(commands, - (List command) { - print(command.join(' ')); - return Process.run(command[0], command.sublist(1)); + final stream = pool.forEach, CompileProcess>(commands, + (List command) async { + final commandStr = command.join(' '); + print(commandStr); + final result = await Process.run(command[0], command.sublist(1)); + return CompileProcess(commandStr, result); }); - await for (final processResult in stream) { - final exitCode = processResult.exitCode; + await for (final compileProcess in stream) { + final exitCode = compileProcess.result.exitCode; if (exitCode != 0) { print('Process exited with $exitCode'); + print('Command: ${compileProcess.command}'); print( 'Process stdout ---------------------------------------------------'); - print(processResult.stdout); + print(compileProcess.result.stdout); print( 'Process stderr ---------------------------------------------------'); - print(processResult.stderr); + print(compileProcess.result.stderr); print( '------------------------------------------------------------------'); exit(1); @@ -102,6 +105,13 @@ Future main(List args) async { await pool.done; } +class CompileProcess { + final String command; + final ProcessResult result; + + CompileProcess(this.command, this.result); +} + class Target { final String _name; final List Function(String) _processArgs; From c4278022b2cdfe78b97531e6ffb7b6a967d93ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 6 Jul 2022 09:46:25 +0200 Subject: [PATCH 55/59] Report file system errors when creating out dir --- benchmarks/tool/compile_benchmarks.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/benchmarks/tool/compile_benchmarks.dart b/benchmarks/tool/compile_benchmarks.dart index e3fb83943..6e60f995d 100755 --- a/benchmarks/tool/compile_benchmarks.dart +++ b/benchmarks/tool/compile_benchmarks.dart @@ -65,8 +65,11 @@ Future main(List args) async { if (sourceFiles.isNotEmpty && targets.isNotEmpty) { try { - Directory('out').createSync(); - } catch (_) {} + Directory('out').createSync(recursive: true); + } catch (e) { + print("Error while creating 'out' directory: $e"); + exit(1); + } } for (final sourceFile in sourceFiles) { From a01c866e1da416569862f85a54d3a501a64fba21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 6 Jul 2022 11:13:43 +0200 Subject: [PATCH 56/59] Add protoc_version file for Golem --- benchmarks/README.md | 6 ++++++ benchmarks/protoc_version | 1 + 2 files changed, 7 insertions(+) create mode 100644 benchmarks/protoc_version diff --git a/benchmarks/README.md b/benchmarks/README.md index f43033dbe..7d3a449e5 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -12,3 +12,9 @@ - Run benchmark programs in `out/`: - AOT: `./out/from_binary.exe` - JS: `d8 $DART_SDK/lib/_internal/js_runtime/lib/preambles/d8.js out/from_binary.js` + +## Development + +`protoc_version` file specifies the version of protoc Golem will use when +building the benchmarks, and allows updating the protoc version without +changing Golem. diff --git a/benchmarks/protoc_version b/benchmarks/protoc_version new file mode 100644 index 000000000..c598172d8 --- /dev/null +++ b/benchmarks/protoc_version @@ -0,0 +1 @@ +21.2 From ed89a19ec9e2beb85f64a9c732d61d19e9eed5e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 6 Jul 2022 16:07:54 +0200 Subject: [PATCH 57/59] Remove _benchmark_ in query benchmark names --- ...ry_benchmark_decode_binary.dart => query_decode_binary.dart} | 2 +- ...{query_benchmark_decode_json.dart => query_decode_json.dart} | 2 +- ...ry_benchmark_encode_binary.dart => query_encode_binary.dart} | 2 +- ...{query_benchmark_encode_json.dart => query_encode_json.dart} | 2 +- ...chmark_set_nested_value.dart => query_set_nested_value.dart} | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename benchmarks/bin/{query_benchmark_decode_binary.dart => query_decode_binary.dart} (91%) rename benchmarks/bin/{query_benchmark_decode_json.dart => query_decode_json.dart} (92%) rename benchmarks/bin/{query_benchmark_encode_binary.dart => query_encode_binary.dart} (91%) rename benchmarks/bin/{query_benchmark_encode_json.dart => query_encode_json.dart} (91%) rename benchmarks/bin/{query_benchmark_set_nested_value.dart => query_set_nested_value.dart} (94%) diff --git a/benchmarks/bin/query_benchmark_decode_binary.dart b/benchmarks/bin/query_decode_binary.dart similarity index 91% rename from benchmarks/bin/query_benchmark_decode_binary.dart rename to benchmarks/bin/query_decode_binary.dart index d0aad96e5..80a8123c2 100644 --- a/benchmarks/bin/query_benchmark_decode_binary.dart +++ b/benchmarks/bin/query_decode_binary.dart @@ -19,5 +19,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('query_benchmark_decode_binary', encoded).report(); + Benchmark('query_decode_binary', encoded).report(); } diff --git a/benchmarks/bin/query_benchmark_decode_json.dart b/benchmarks/bin/query_decode_json.dart similarity index 92% rename from benchmarks/bin/query_benchmark_decode_json.dart rename to benchmarks/bin/query_decode_json.dart index 32aea4b37..1909b4b1c 100644 --- a/benchmarks/bin/query_benchmark_decode_json.dart +++ b/benchmarks/bin/query_decode_json.dart @@ -21,5 +21,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('query_benchmark_decode_json', encoded).report(); + Benchmark('query_decode_json', encoded).report(); } diff --git a/benchmarks/bin/query_benchmark_encode_binary.dart b/benchmarks/bin/query_encode_binary.dart similarity index 91% rename from benchmarks/bin/query_benchmark_encode_binary.dart rename to benchmarks/bin/query_encode_binary.dart index 50e7c356d..ff0b3b189 100644 --- a/benchmarks/bin/query_benchmark_encode_binary.dart +++ b/benchmarks/bin/query_encode_binary.dart @@ -21,5 +21,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('query_benchmark_encode_binary', encoded).report(); + Benchmark('query_encode_binary', encoded).report(); } diff --git a/benchmarks/bin/query_benchmark_encode_json.dart b/benchmarks/bin/query_encode_json.dart similarity index 91% rename from benchmarks/bin/query_benchmark_encode_json.dart rename to benchmarks/bin/query_encode_json.dart index 1650b6fb7..17789d554 100644 --- a/benchmarks/bin/query_benchmark_encode_json.dart +++ b/benchmarks/bin/query_encode_json.dart @@ -21,5 +21,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('query_benchmark_encode_json', encoded).report(); + Benchmark('query_encode_json', encoded).report(); } diff --git a/benchmarks/bin/query_benchmark_set_nested_value.dart b/benchmarks/bin/query_set_nested_value.dart similarity index 94% rename from benchmarks/bin/query_benchmark_set_nested_value.dart rename to benchmarks/bin/query_set_nested_value.dart index 33bfc0a07..0e9bf5c24 100644 --- a/benchmarks/bin/query_benchmark_set_nested_value.dart +++ b/benchmarks/bin/query_set_nested_value.dart @@ -30,5 +30,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('query_benchmark_set_nested_value', encoded).report(); + Benchmark('query_set_nested_value', encoded).report(); } From 5e9862bdaa208ffb0d5e8829dbd020478038c642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 6 Jul 2022 22:50:23 +0200 Subject: [PATCH 58/59] Report benchmark results as RunTimeRaw instead of RunTime What benchmark_harness calls RunTime is called RunTimeRaw in Golem. Do the translation. --- benchmarks/lib/benchmark_base.dart | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/benchmarks/lib/benchmark_base.dart b/benchmarks/lib/benchmark_base.dart index bcd8c560e..540f70ab0 100644 --- a/benchmarks/lib/benchmark_base.dart +++ b/benchmarks/lib/benchmark_base.dart @@ -4,16 +4,29 @@ import 'package:benchmark_harness/benchmark_harness.dart' as bh; -/// A subclass of [bh.BenchmarkBase] to work around -/// https://github.com/dart-lang/benchmark_harness/issues/30. +/// A subclass of [bh.BenchmarkBase] with two changes: +/// +/// 1. Work around https://github.com/dart-lang/benchmark_harness/issues/30 by +/// dividing the result by 10. +/// +/// 2. Report the results as "RunTimeRaw" instead of "RunTime". What +/// benchmark_harness calls "RunTime" is called "RunTimeRaw" in Golem. /// -/// Overrides the relevant [bh.BenchmarkBase] method(s) to report accurate -/// results, rather than 10x the actual results. abstract class BenchmarkBase extends bh.BenchmarkBase { - BenchmarkBase(String name) : super(name); + BenchmarkBase(String name) : super(name, emitter: const _ResultPrinter()); @override double measure() { return super.measure() / 10; } } + +class _ResultPrinter implements bh.ScoreEmitter { + const _ResultPrinter() : super(); + + @override + void emit(String testName, double value) { + // Same as the default, but prints "RunTimeRaw" instead of "RunTime" + print('$testName(RunTimeRaw): $value us.'); + } +} From aecc575ed63b32936c5a9a7f61422bd1d015e169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Thu, 7 Jul 2022 13:01:05 +0200 Subject: [PATCH 59/59] Add "protobuf_" prefix to test names --- benchmarks/lib/benchmark_base.dart | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/benchmarks/lib/benchmark_base.dart b/benchmarks/lib/benchmark_base.dart index 540f70ab0..cec44ccd5 100644 --- a/benchmarks/lib/benchmark_base.dart +++ b/benchmarks/lib/benchmark_base.dart @@ -4,13 +4,16 @@ import 'package:benchmark_harness/benchmark_harness.dart' as bh; -/// A subclass of [bh.BenchmarkBase] with two changes: +/// A subclass of [bh.BenchmarkBase] with a few changes: /// -/// 1. Work around https://github.com/dart-lang/benchmark_harness/issues/30 by -/// dividing the result by 10. +/// - Work around https://github.com/dart-lang/benchmark_harness/issues/30 by +/// dividing the result by 10. /// -/// 2. Report the results as "RunTimeRaw" instead of "RunTime". What -/// benchmark_harness calls "RunTime" is called "RunTimeRaw" in Golem. +/// - Report the results as "RunTimeRaw" instead of "RunTime". What +/// benchmark_harness calls "RunTime" is called "RunTimeRaw" in Golem. +/// +/// - Add "protobuf_" prefix to test names. This is to make it easier to see +/// what the benchmarks are about in Golem UI. /// abstract class BenchmarkBase extends bh.BenchmarkBase { BenchmarkBase(String name) : super(name, emitter: const _ResultPrinter()); @@ -27,6 +30,6 @@ class _ResultPrinter implements bh.ScoreEmitter { @override void emit(String testName, double value) { // Same as the default, but prints "RunTimeRaw" instead of "RunTime" - print('$testName(RunTimeRaw): $value us.'); + print('protobuf_$testName(RunTimeRaw): $value us.'); } }

QO9 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%0Af@l>dw3^17HIxI3N{KHqUtc z@F=}Dzr%%!WJodCb={l0?|<6zo|{juZ&1vi+ShenL!>8Uor@>#u9eYE z)k8FKG!q`|ze$V*p2FKn3Xgu_@M+^qU@{KHSzR4xV`{aWX99(RVmw_cFH40=Xc4Xo zM91!MP1DMLI#?6NkDCkv<^cc1GnNlu2iKVPyx#S4*{kH;o17m0>D`ZxCxZUqAGfH?79d-Ll3i?*1v{o*b zN`Ymvo|7xbU%St}d;jEJ`<&zT|JI!!*duLJI#_T6^f2|C_#zkDwL{*3>4lhNHS3nE z_RvCtn)Edk#@gM%7@>O4Xo}?01 z+=RYnSR~^ly(;*%`K@DN)NAzwh^jymey%?gR`pJp6RGPXKW_+MA|_^BF21# zdH2(n|9*{txEPJ`;da}vxr6btBWjO&Ql3h`A;`^KI>oOYi*zs%&Xq=qWN+q81Zv}4 zgGFDHgFgmkIRlPlHbyr0PWtkZUopJP$3_FQ9t5)bv_K7?o{BLqOi7F-4fJk3#=PJ| z2FVRE6@8zj=U%$jCE(7i#*tiXS_q5^a)Kqk6S)bRMkb2OWT3W6Rk%;=a{+GCx)9-k z^9XI5k2=c2ihR@zbwL}?(Ri*n&UvO6%uM-j?O8r@4HvT9X{xgkFeAU{4^|qHdc5Ut zc&oO-(i3d1sy46FU8zS($!?^ySoa$79Fwa22YUzLW#5S816!}~(p%qMiyBtsaH#2C z;St;EU>cGusB``^^e%k;q9B#29I8?Z;4hF9@H5-eHH;qg!^pT*2L-0p&u9C?6xo!_ zu$CVR^N1#dJLRd!{lEL%mvStRXzV1avzBK|6ax$l#`5KvY4p2tm`*$6RZP$%P{np7 zeSQSLci;Pz<)^N3c$UJ;n(R-^BlEa7Ig5IRPER@?oB3Qy-JWsUQkeuK0cI^{y~Zaq zlC9-RlL7zG-odwGub}bS&{CSAY0)OgWfA3tv6&N3i)Cj3)`J(#iO(TU%5R58EFgB3 znm$8^8`ZvZA0&ujJ;)8)y+me}h%nK_5QK~iVRbaXq85|@_aisC5AJc_yW#BvTwLjh z!VwxWKm}iM94&g2BU;|rntE-Fa4G>;UTbrs4~7Bs&Bo$Lv+50+tP7`=$m$5wgrODm zG1=-9WT_=ce%>WI9OysZ_Va>UaPgv37JR76ko+!})$NxZBC>c6h?%v}Na<@-(@q$Ne^M0o+JG_$M7X+g`|E26X>xf?EW5uFh7v(tYy4Z?o zx(EDw_Wlmi?YH&x4XWH(*g=BR#tZ|;D5&`(m^~jGazd; zuhm6*c>QAR$?GZ$Pu#|$ROUkkTPHQC*cvlA7!gasQP3Az@af=u$;aoJPCZ#)g?+Ye zHp$0_v2--f61mV>_}}*bzuvwzR+98Qi?g%4!4))#53)TpAeBeN@j6q}_uIzn-M-&% z)zw!Jo$jux?&^DYRrTd4D2{Qg#6*VJhRBW-qWFiMSP7WKHVF|3TmC_SC<+K>BO+qS zh!6!~B0UHK^hscmh96J<6K-8h^NE|)))t0|>$(h8b z_G6eWhGV#$d>?Ek@opo&U&(ST9ovbM5i=ZPnOp|MdTK_?Ck95A`}kFYFl%8yS@va5 z7BtO-cyKbnlD?aru|%8X0iLp2}i=9->TPKaF8=|n)x?t@ngzGBWYqWN^$3k(bS z)PgU;X`$<{pQPdVWU5-J=cGEN98;N2RU(jPD>aggbs?`d;ZCz+yrQxwbmskoWM=c3 z?V2bLPeeJMhCWB4V1tCwLLQ+A+A(tg=kq%#Y{Bys&^chi7`mtzpyzx4=mq}cx7f%f zQTB+XWWy|;XbJU2tKr#P z1iQ2Sd^{pt#LflrvF}OcWAwb2vYw|6Kyr}MHimnn!S5ly3mtSj*R{v;3|s+GTk;Zp z5ca?L)i1G+9``~z&>$3GeHNo)fA{_OJ^NKC*BCbk`Rt(5->>o#E7v%T)0smmQxT2r z{-8z5tC#NTjQL0ixfFfkafPAzH|qw*tObWHYFzg;4p^6>XFVhrVS$IS_ABpd6L zQ`ntSJj1gx`$$2w8nJIHmW%{9k_aqF0VpaDk<3i$-C#tRrw*|#lH=08lVz}#swlQ{ z*>$J97^KEillzBvP;tr~c~;&M7TN3e_MOd(6z%L-U=Q&5nf$O?&e*9ld(~e15eiO! z`0V-9)3sK0*G*4bbqK$wq^>ddw;~54z4WV*Qf%6+Wt!XQUJQ+Vt7X4a4jIZI$%4~u z7eNDPTVdI;^9RmYKAqtk`vW@p5*A?nP40wqr~7td$uTi5`-LnG)CUJ~*w6ICbb4rQ z<#A>@&XGr#)NlC`7BsW z+J=N=84ol}ZW7W3XBZ-i0{F*dU4VN4Djt+3Z3N1A&{eGR@b_Nk|L8X3o#{`vTeC2n z8q-yN*HDMKlwz3GX)L`w^wW?fUw5L5Or)^uPe!d`C^VE4FUgs}+otdce^IUj2T#yjPaPjYDC;En79f8TL~Q7a;gBPF`BZ?da|9%){NvN)!CK`-2ZstN`WdSEWnrx8R*pm zyj$Y)WasX6+^32ohQSI{$yo*A=_hXycMzMt?KH1#LX%)An#oL}NeFBDdcpZz%@?!T zS;_3own@QAkJ7bu&{NF!?|q4Z5r5{4JI~N#6Dc{K+ae;ps^N5Pv!HgnL=0;wpuW^V zg3)o>Tz}2k34Rm=q>tbD{<-t6;8ZC<63o!{^Fkq3+^N+;jIqp)N)vz$<>{zVRu07j z#mXKIA)3Xy`1)86sO9Y%bx>B2p~FtmkDc@1eEIqJ-?}Qz*3-t)Xb3(% z5-N17%K~IMLy=I}m(O{I{(*GS_E&bpUM>(?h_O|!!PaBJ1%kB?WJoZNcGRO40y21j znt&FEGYG?wXb4B(VW57yT3P_7$*Nnpt^+PNUAOBUUTn`#e9`^4d%Ua@7~G}jU8+9R z`O3y%TO5L$Zjf%JX^s~sia4E#^~$_1RpL$VUq7?CkF{zj)2Vi>GYz-{%JH;>Ezt8l z#oWif?Dcwr0l(jO@8AC=qT_pReV)4DE9cDawxg_?f!TJPTphamr9KF))L?v2^CSBc z-A`Mk#dOi|qYhYOX~Q3Lef5lE)uj?^1)qQ&3hJfD%zg%V#RynU9a^7x-1JYw^mcgY zS%ocYx$BJ_g{DrtaqeUQkag=BMUuqS%rO{&6r^A-rm zTDaRYeVJe*Q5vtJrC=%5ZDuO|=tVCz^`y0KDXgmHk=e?5JB47VWMuR)vvT0H0bTw5 zQLh*12S5d9pu0m7=KKg?BeMeUfxN zY^Fb<4S@`tI!-naU6Iq3_tbR<9&{``K$Y+PCyxKhEpnH&>9#vrbVb!$k`7gIKa2%? zYNL?|Zv$NjgB6Npp6(|2P(PjL&zFDp=4TOm87u;B5M>P zLzS&K_7Q65w_9)2-fLGIy+Ld3iElfuGN-VcR@?WT3^ZLS-c^?3vIY6dY(vi_B-$^< zOtVwY*O#d79%ZBj_uF^49>;K0cw|dLXsRswi#`b9=mervpA9$!BM|_TfVWydQ45W- z`^`v!FfV%pFHqUs>t0_Z>h}i%q3FGT{KD<@vNFVetHXKGD7FGM_TsS`AJ_ddhSg#UWRz30*A-u%f&pMCT>{QG78&ACNypu$*XW_fMK{o%_TsAGQZXg2p109zpJ z-*_xK|!jezJaep>k zt`3M`Bf@P#)`?Dx)Nv7)+4OhpV~!&N-c>NBQqVvbBs1&8}Al|Ai)eCdmNQi|3Gzg+Qofb2y zEB@OH+}+qrOYM&=tmi*>>_FOm(SIO?b;{8#Qlal&Ke@pI76z|80hR1{`Q?}M7$hr! zY!4EnSvegf=oz!R0v>~8#mk@jYBt2Es@t(IIl4V3V~o%h3gJ2?eG&3HJcZXg{{ZI5Rk_E~EHOs@drJb&a~x|sL+Iei?FH``Xc0$)T>6T@X>rD`oDl#F)e zL>Fb@o{~~9wN+xCr$FZ4KXZNP1@0YW&t<9blnxudZnfsT^KDv+44AV&$iyFsf;!0S zu$Hlcoa4JFhZGQ%M~2W4h+ow0dOfEfor+>8##{yZjSH>+x_v2PWUeeO4}5Ik6?BP$-Y ztNucfAiyplcSrOD#0@wc&;?8PWND(pdgk8ZU7us)&^um#BqXRzWAEOtyu|<0TYy|@ zqlq|)EPMH4)3@uE1s#--W@6X|MW)c*`(gz%l`772Ypu}_G)+)FnKA>p{2kZtp~9fd z9{T(W4*aBHcGA{r4n4H%J+^5<+dGdmGLh5&C?V9)b^w)@jK2bPda8(e*#1W5QOt); zo=K-8duL;z*oCa7R)C96<;~XF!gdsuQZG)j53(ZT{-Cc9`#k6zu~dPJ0T_Hte8g;b zNfZ*(B={~Hn?v5owavj$&|Kp2aLVVqc^ z&K(Ly{SlwVUK7Tm41_E+(r>-Q|A$+!mev}+S+*~LktrO#2sOi!Kh~&#W8%VRR*iTB zz_Uafae;lIRmw`$m2b=>mcU&D)hotbqdrR$uxFu1flNS9Z)0;J+0rhjQ9>&kimguo zwiLcQG#}lekSFZ(`dmLuJHTuSgOhxDDr};CaHA6qn0>3$(3f>98ZRL*JJWt>knpP9nX=LVCT8{$Y-D22H>PdGoe&Nw^+ zApp@hW>tW~@58sCzpRIpsVCB_F0+Ab88qqs@M1dFit!6_r`z*v_R!q#$EwmU6c2i$ zUF^-OY?Wd7{(Lz6s4<}caLS|%^(-8IxZo{u_~G*whhJ0Q8jV3?I3KkthD-}e>c>;< z#jZGPF6$XF{VJp(|KLpg{kO*9hxty|1NaZroYv`jD>tfiDpZJ=LF;_HLITu*vE+hi!a zDka7EpfeN9)@X6j^9HJ^(Y>!RCkR#g-wPUUM|R-+N1W6Av}MFi1cV_9EXlQdN@HN; z0}}@fC#p1nX&GVzC)#nu0tM7C>7xp-`Tp7~>mPl!jTl5^f3h zFkuH5o%ynCuScDx+h@m#EOub9FfLa}G_g(ND|h&>++xSC7xP)a=VDsYs>aweEEJOi zUu`z^)yu)SCY5@-UZ6PZc8u|OYBc(KQ!J1xf;#(;lg9G`9HticBC_t3uA%2=AqJ~9 zfF|a(EwfK(ir=A*&h?7@H!H9QpyuZLKE?*u-foPo9@{iJ*+PSL^R}>>6r}xNJ*`1& zYtH@5QDugOIlyvY*I3=Gn#xoyO2Y({@)lOQ2}N%U0n6WU{{HBN=Z~OD0kLE(io(9x zGg7LtjdrT#gsg;`%V@UQ>sFQ4MQ~ROkHfQGA>rRFhD^|E<@zF6_az0-?^I!(JEHAK z5L{^$f^SHvAr5|2iagep-5{cRWGpCIY&;ajIr*mh@1uG}>Hy1uvn?dMi>w3>>}YL< zdJplgK8&X)18E|T*VRFaHs{i$ACET*s*cK1ts!%Nc88mCLuY+krYZu7C^%m+_KcG_ z4lP#2d|Z1_Kw^+FV+fbb7 zD#BXHq>J%Ypw#pA8%9o?YWr9`-wEXpO0NszX<8kKlm5gDAjPdyi_Qm5JISoOwv}$y zNa5L9Ihr3^C-}m_kk=RVx?%~doA}CQ@iLYcUs>=iMj#SD5{MuTf~T_Nf~bCQ!K@n z?L)Pe$`|G`2VJ%d$Aa*(|VSZ zg4{n?XrJ356+NEBIJ!M7E1ta|$i?D3?$MT>s2DfoRW;sNcsA{HsFzB~f%R^)D1{hf zKX$^u3FddWdiA~vWeMb&EG)1^I*UDrhW%<2ZAXIK6ZcgeFM!0vind7p61gwm;XtGMAr|+s??2aIv}_n!%_@s+d3CL;<@DSnw<}4*Z7E6r z8ryOUgVieUy6u%;X+{s7R&dd6=K%bSFLE=F-a6!WIc=xOnXz}!%4x+!ZeO~{?UZCA zP^y=-cGClFJ^9XTEBqYCf9)1EXtiE2T#rvTo#{Sak1Ue2h<|)A^085MF`N`-IhvXo zv-oD*H4i?I<}Ej76a#3ve({X^0dfE`aKa{vHlAzbf^W1Dluu_UTHT=ZmK{gu3{>-E zCpjZv`30_sGvDp)kKFQSy8r#RS+2xG{zm}A$kbZkWR3xKE!UWA?k)`xkwhVb~DM(*1U-x+rtsy2I5tM`s>EIcuz7_&jC* zf~e0W9f-w}Gz5-?joY8R$ba(|n7~?KRUG(=-AY?*)+?xQD0@czR(iH?#f(v{mlguu z=)k*~o8!6M1M17SZ?kOP*7X_GtzRXxa4MGhn1jX9&#U%U{X|QtzFl3;02kb9%FYb~ z8*Ir!A4r~~iWQ?Afi$YH#az$;Wq^t3c6|VlXnd3onwYlXt4GZ%)Si=&s#VisLFSv6 z7cy6o#_Dg~;(BMLS1>tFs!w?oz<^Mj5yTfNg+i)ySQN8EDb9A_R<+h&=MVi!H8EAz zTe2yGoM88hNe;ezG%AsTvdwnzv@ePMOJ}1DJ(-`q1+Q>@nik8^(Oj;pv-&hXZUxr9 z*^!qr z6?g3e_d8c&-5LqnJA_$be`xQH4&32@TkYeQa6s*QQP2_ch9eP=>K}T1;jq^~K(U8M z^$5ouhZsu^Z17-O0A}{wB@eYxz7ek_nxjlQF=&qTMN%*;wX&J_&9Tv&|FluBjGYfxyNWX&8wZ2%+$38;!cz1g+Xa$%$I4Iu%ypRYl{@U>V|uchag5$ z2L@(?DxQ4fwzRfVv#vqd3=G#|kq#wElW;l&Olg~o zkuuPb5a&wyiW zm9*oHSkfd21^RPy(eKr9{*JHWNxh*kbbnAXXoDm1BS0e6NFe&bb3pY8em@hbCM0PH z%NRUC?h+z%I`X=R>(IG#8ZkyQZCt5yRtoWA zyP9Go1cP0<*pHdbSZiD9>?hp6e2H6dPO^f`YfFviGW>wE!|!PFc-&#=@q`26(}2DO zD>w-WACC>1T)_PZo<0b@$S_A-|3kNksY=c0!aMOTwZXP3wj-h9G~eDdc3HE(-R%42 zZos?K0;72|JgKB|LOnAaOq{qrOmjz@$EoLqa18Cny4_-Sc4%*{VOX>15cG#D%*qOw zPR|eVRn{dp3ihB&E`$BPw|1drn8n-mU9qMtl0#|TVNrinJ#YI`a^0*PN^-sa>VH4u zzHugg{Uqvtq9pVzPx!u1ogF8W#aUqCNBH+5j0q~eSLnn9ieRJdtvq}ZOb82QNbDuo zi26W}hnjsu1_1Ad9@?MRUsc4#=OO;Comm#;|n#Rd;H_c zMWnq?4;za{aoS|_5up-<#U5wkEjfoC#YrAx;yn#B5o!mUHCv&Vd3;)H%#^WPcgZVG zTg6Fa>XeZe`BZcM0O*hdPQEL2fo!X)B~e;UY@kPj>G|#@@Vxz0z$C5;Np03_YO*26 z#uO8cgUwi3*PGd0aa~xMRLNwk?b3i!XV_`#(>)0YS9dr9CQLVqE_d^LAAgbmlUr~x z)h}it@GOm+^<7oUC)M(N4su;3nn{M{g}hHnZ>xejPB-SMXvVYGGSj@y;MPBN=KAe3 z?j6j^0~vdjg0_5-=Ktn!l?m{PHdx^)s}0O;L~_?)E)T|B7hc>ix1Yli08o$|3SVu01#r(7x6?rq@@T#!~i=y zuvC%Xd49ZhSjn#<$?PI%0+HS5$7`iXy6x=_Hq}r(UCact!~JOHt(Ak*@FK1H^f@^m zE7zBhZP1oc^l3)B03p@#5?zCrkt$>_S`iN*CZI)wjMM_Tt1%JPe4jQrcnLq zxDx#h@u&#iu-_NkxTH(!XLF z?`9J0+tM(u%B98zTD@#6%kz$AmX?)tQfar+aZ+12*(=v3w(p0geuMlnI4nZeacIuj z0Q}h*|I@cwW8+ye;@x_ExoQ)q_H1wnw|gUXh3tDFJsg25Z_thCD$*s(_$sGAo&*9{6j=*>BgD*zuh*9GwEuoE6t{q_e4i|2ZSbuz%y_Gr8g z*a|+59nk*#1O9jcTtVlHvDO?L?wv94YARS>SFJwrZgDg^j-1MMd8YR?iu@87^Q)VF-^Z7g*@z zpPik*+Ya;G{Lrp8UqOuRM&`E-!fFo@X;x}h5j=TFfBoawQm@J zA!1KpgzqF2rx~yE_bcGzXFj{dAP9mbx&YdKiz%Y4gPp<>am*|b?@ouZyj9vtHI+bF z5A9}YeH|ZffDadIkn+xPAH9+U?a!via8>_?Wq|UY2qOKCE(8;`hiWYTZ-uk|^NakC z-va$tpN-e!M);7OrJH6h*hw#tmX)Va=rD7ej-(hZJyxwnKyKa{Tts5&jn`fizd~Xo zXn@T`dG4qNqvGJSQNReW7EFK~62{9N(7wkZ5>9Y{IBDE2Uml-g6pJSVN%U4%HXYTtVna6kVd_pviD^gD(R z;JS1Y>JI@;->7UISkW0k+=;Bk>->abJ*t?k*XVbkF~fjC_)#1c35TxivTThr}P~Rt;M@QjP0V~w&^J^gR^isqI=?!(aUbO z;yj$q1t!HXEQ|r2FAz+IDfl)tSWHuc&yQkgAF~ght%cb5W|t}r zI6U}MXED8js;+IgpCEUb5|3?TQ1q+d%md7pE7w!sK7PH^xmWV60`If|yjB_YAjh-H zBw5xQEb^tVO6BZ8p0DQ9@wl4f{@@Nb;JVKAu;#);*fo7NH|Q66V4X-PwdpCLL*n~VYZ+;)Ei=Bj&jIv-3GxBmDA0ZYOIId zz<5;JXzOA+Q?87M$!apHX}gxTQm6YvdeD(ZhfJ^>HfhX%%=M>K>RwL7u5gtd+r_dv zfapMNw0}I&tOOnKN}DCvdMI^cf5PHx8!czDE8q-|^qX3YTO*KS9;q@WCNKpqq;F->?g-7;(Klp*H#l-W1XEw_CbGCt@Rq|%}5UF1v3VU^Q_X;)J<*^TO8KQVp=_D zlT@KmyZ3YKWJSr#Uuj+8OmO9OF%mVw~JarxgRMJYlhc`% zm{^Eq%gG1e`bp+urVKlKbZ`bH9GZeg0@R+)yvo?j8C?RxdR$sA|fom#VvyC>a5y zaR^%o{`JxAM)e?8flj2~LJ51Xz_9fYg0Opoowg3Rf}${}ouWMufNVi0T}*6Hx{&pH zQ1kP6oz%BpwRh>&};23SiEl@F#-;Za5Sc z*n@JMqO@_*b~L=r4V+Q6s*HGcw6UTiXIObQtZ?u$`K6KFCcp}-=}cj*n(fTzyJn_5 z+8zj*9wOdqf9iv5-oX_DW}#uXSqMJ@>Cp2`N^?!B{~p zjm2$A7#~@)8Pjz;^6g&ADC~`RdjU8L$S4v-JVI5)_W-;2om)h2B=wLjY33oktY+fg zdVg6R$h+7!<1zid=1^F~=e2ey(8;Z9+hx_ijUPG-+2u_jLT+lT$Z%Jt3;Q&Xb@{nQhsnAae+HS4QNr4{Q}XN-|PQBN$#so5^SGu!3r zkd#VJ=*p%*G6Np4fU9*=aR3lX$G8`5`OHy(t#BJ@nR<892(7o}QVVijkRnN?w&k+F z-I-PQ5z*_bHU08nGWH6=t+dJ(r^$K3qIv|V4D4{;`c&-k9Yk`8IKJzMnhRW@`@*P#UxX#aqq2Ef1Q3-ME$2Yp7V*@e}YG}0l^~j*T!Jsc{pMKdW*@-G8124zlL{Sjg{qSW+<);gXVDWFP2)~T{qGn zja8`?&4cQo+G!^}#dUczsTQl%T`}c}#^Q>cjb`XbQ2bz^j^74B(eFh5d^Iah;gI#aDZsv-#{LSJb z-(DM&=CGKr$E8>Q=Nb3MXI&)oZoCVq%X2EpRw5_NM9Y}YB7&J3YW@0f@s_C0gG@6y zb}Li}GVktat&of8hiECz3GlUApB4~rv)jM|Z)lZ{4ASu=#3ke*GJ0|z1{B?6ez0!B z-?y&4&$GP|f58)E)aAZceL?=~FTMAJkG}AKKlMY`QJ0^;@qOGUUp#gAX$W9o5!jJx zbr%TujczQ}wfK)BR1|}fU8E7LbeI4E1*>GvarpniEs8`$2tt{wg8;B)WfrS?WFe8N zq?PQhQl0yk;b8 z=|)txiFg36u`<8(x_xhEY88)tN`!}22_YH6 a291 = 2; +} diff --git a/benchmarks/protos/query_benchmark/f22.proto b/benchmarks/protos/query_benchmark/f22.proto new file mode 100644 index 000000000..4ec044a48 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f22.proto @@ -0,0 +1,96 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a0.a1; +import "f8.proto"; +import "f1.proto"; +import "f21.proto"; +import "f16.proto"; +import "f7.proto"; +import "f27.proto"; +import "f28.proto"; +import "f23.proto"; +import "f11.proto"; +import "f24.proto"; +import "f4.proto"; +import "f12.proto"; +message A419 { + repeated A420 a320 = 1; + optional A321 a291 = 2; +}; +message A421 { + optional bytes a321 = 1; + optional bool a322 = 6 [default = false]; + optional bytes a323 = 2; + repeated A420 a324 = 3; + optional A321 a325 = 4; + optional A231 a241 = 5; + map a326 = 7; + optional A422 a327 = 8; + optional string a224 = 9; +}; +message A420 { + optional int32 a328 = 1; + optional int32 a329 = 2; + oneof a99 { + A423 a330 = 3; + A424 a331 = 4; + } +} +message A423 { + optional a0.a1.a232.A239 a332 = 6; + optional string a224 = 7; + optional A231 a241 = 8; + oneof a99 { + a0.a1.A106 a333 = 1; + a0.a1.A293 a334 = 4; + A217 a335 = 3; + A232 a242 = 5; + } + reserved 2; +} +message A424 { + optional a0.a1.a232.A239 a336 = 3; + optional a0.a1.a232.A241 a337 = 7; + optional a0.a1.A107 a338 = 1; + optional A210 a2 = 2; + optional A425 a339 = 5; + optional bytes a340 = 4; + optional bool a341 = 6 [default = false]; + optional A231 a241 = 16; +} +message A425 { + enum A426 { + A235 = 0; + A427 = 1; + A428 = 2; + A429 = 3; + } + optional A426 a342 = 1; +} +message A231 { + optional bool a322 = 1 [default = false]; + optional bool a341 = 2 [default = false]; + optional bool a343 = 3 [default = false]; + optional int32 a344 = 4; + optional bool a345 = 6; + optional A430 a346 = 5; + optional bytes a347 = 7; + optional A66 a348 = 8; +}; +message A430 { + repeated a0.a1.a349.A431 a350 = 5; + repeated A420 a320 = 6; +} +message A432 { + optional string a351 = 1; + optional string a278 = 2; + optional bytes a352 = 3; + optional A66 a348 = 4; +} +message A422 { + repeated A432 a353 = 1; + repeated string a354 = 2; +} diff --git a/benchmarks/protos/query_benchmark/f23.proto b/benchmarks/protos/query_benchmark/f23.proto new file mode 100644 index 000000000..1a9dfe6df --- /dev/null +++ b/benchmarks/protos/query_benchmark/f23.proto @@ -0,0 +1,95 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a0.a1.a232; +import "f1.proto"; +import "f4.proto"; +import "f12.proto"; +message A233 { + enum A234 { + A235 = 0; + A236 = 1; + A237 = 2; + A238 = 3; + } + optional A234 a243 = 1; + optional string a244 = 2; + optional string a245 = 3; +} +message A239 { + optional string a246 = 3; + optional string a247 = 2; + optional string a248 = 8; + optional string a249 = 1; + optional string a250 = 4; + optional string a251 = 5; + optional A240 a252 = 6; + optional string a253 = 7; + optional string a254 = 9; + optional string a255 = 10; + optional string a256 = 11; +} +message A240 { + reserved 3, 4; + optional string a245 = 1; + optional string a257 = 2; +} +message A241 { + enum A59 { + A235 = 0; + A242 = 14; + A243 = 4; + A244 = 47; + A245 = 33; + A246 = 5; + A247 = 45; + A248 = 2; + A249 = 28; + A250 = 13; + A251 = 29; + A252 = 27; + A253 = 42; + A254 = 18; + A255 = 31; + A256 = 25; + A257 = 3; + A258 = 7; + A259 = 8; + A260 = 24; + A261 = 9; + A262 = 6; + A263 = 19; + A264 = 15; + A265 = 10; + A266 = 11; + A267 = 35; + A268 = 20; + A269 = 1; + A270 = 41; + A271 = 12; + A272 = 26; + A273 = 17; + A274 = 34; + A275 = 23; + A276 = 40; + A277 = 46; + A278 = 51; + A279 = 16; + A280 = 30; + A281 = 38; + A282 = 21; + A283 = 22; + A284 = 49; + A285 = 32; + A286 = 36; + A287 = 37; + A288 = 39; + A289 = 48; + A290 = 50; + A291 = 43; + A292 = 44; + } + optional A59 a99 = 1; +} diff --git a/benchmarks/protos/query_benchmark/f24.proto b/benchmarks/protos/query_benchmark/f24.proto new file mode 100644 index 000000000..5b8a7edfe --- /dev/null +++ b/benchmarks/protos/query_benchmark/f24.proto @@ -0,0 +1,10 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a0.a1; +import "f12.proto"; +message A293 { + optional string a5 = 1; +} diff --git a/benchmarks/protos/query_benchmark/f25.proto b/benchmarks/protos/query_benchmark/f25.proto new file mode 100644 index 000000000..c64f666a3 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f25.proto @@ -0,0 +1,25 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a260; +enum A294 { + A295 = 0; + A296 = 1; + A297 = 10; + A298 = 20; + A299 = 21; + A300 = 30; + A301 = 40; + A302 = 50; + A303 = 58; + A304 = 60; + A305 = 70; + A306 = 80; + A307 = 1000; +}; +message A308 { + optional A294 a261 = 1; + optional string a262 = 2; +}; diff --git a/benchmarks/protos/query_benchmark/f26.proto b/benchmarks/protos/query_benchmark/f26.proto new file mode 100644 index 000000000..0085b3481 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f26.proto @@ -0,0 +1,30 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a10.a68; +import "f10.proto"; +import "f5.proto"; +message A309 { + optional int32 a263 = 1; + optional int32 a264 = 2; + optional int32 a265 = 3; + optional string a266 = 4; +} +message A310 { + repeated string a267 = 1; + optional string a268 = 2; + repeated A109 a269 = 15; + optional A309 a270 = 3; + optional A104 a271 = 16; +} +message A311 { + optional string a272 = 1; + message A312 { + optional string a52 = 1; + optional string a273 = 2; + optional string a235 = 15; + } + repeated A312 a79 = 15; +} diff --git a/benchmarks/protos/query_benchmark/f27.proto b/benchmarks/protos/query_benchmark/f27.proto new file mode 100644 index 000000000..2cd62c8b4 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f27.proto @@ -0,0 +1,11 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a0.a1; +import "f17.proto"; +import "f12.proto"; +message A321 { + repeated A216 a292 = 1; +} diff --git a/benchmarks/protos/query_benchmark/f28.proto b/benchmarks/protos/query_benchmark/f28.proto new file mode 100644 index 000000000..78e1e446d --- /dev/null +++ b/benchmarks/protos/query_benchmark/f28.proto @@ -0,0 +1,79 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a0.a1.a349; +message A433 { + oneof a105 { + string a192 = 1; + int32 a355 = 2; + bool a356 = 3; + double a191 = 4; + } +}; +message A434 { + optional string a357 = 1; + optional A435 a358 = 2; +} +message A435 { + oneof a359 { + bool a360 = 1; + A436 a361 = 2; + A437 a362 = 3; + } + message A436 { + optional bool a361 = 1; + } + message A437 { + optional A433 a105 = 1; + } +} +enum A438 { + A439 = 0; + A440 = 1; + A441 = 2; + A442 = 3; + A443 = 4; + A444 = 5; + A445 = 6; + A446 = 7; + A447 = 8; + A448 = 9; + A449 = 10; + A450 = 13; + A451 = 14; + A452 = 15; + A453 = 16; + A454 = 17; +}; +message A455 { + optional A438 a363 = 1; + repeated A456 a364 = 2; +}; +message A456 { + oneof a365 { + A455 a366 = 1; + A434 a367 = 2; + A433 a368 = 3; + } +}; +message A457 { + optional string a98 = 1; +}; +message A431 { + enum A458 { + A459 = 0; + A460 = 1; + A461 = 2; + A462 = 3; + A463 = 4; + A464 = 5; + } + optional A458 a369 = 1; + optional A456 a370 = 2; + optional int32 a371 = 3; + optional int32 a372 = 4; + optional A434 a373 = 5; + optional A457 a374 = 16; +}; diff --git a/benchmarks/protos/query_benchmark/f3.proto b/benchmarks/protos/query_benchmark/f3.proto new file mode 100644 index 000000000..e65388134 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f3.proto @@ -0,0 +1,20 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +import "f13.proto"; +import "f6.proto"; +package a7; +message A9 { + optional bytes a203 = 1; + optional A189 a204 = 2; +} +message A189 { + optional a205.a206.A190 a207 = 1; + message A191 { + optional int64 a208 = 1; + } + optional A191 a209 = 2; + optional A61 a210 = 3; +} diff --git a/benchmarks/protos/query_benchmark/f4.proto b/benchmarks/protos/query_benchmark/f4.proto new file mode 100644 index 000000000..14076aea9 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f4.proto @@ -0,0 +1,81 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +import "f5.proto"; +package a9; +enum A10 { + A11 = 0; + A12 = 1; + A13 = 2; + A14 = 3; + A15 = 4; + A16 = 5; + A17 = 15; + A18 = 6; + A19 = 9; + A20 = 7; + A21 = 8; + A22 = 16; + A23 = 10; + A24 = 11; + A25 = 12; + A26 = 13; + A27 = 14; + A28 = 20; + A29 = 21; + A30 = 22; + A31 = 23; + A32 = 24; + A33 = 207; + A34 = 30; + A35 = 31; + A36 = 32; + A37 = 35; + A38 = 33; + A39 = 34; + A40 = 50; + A41 = 51; + A42 = 52; + A43 = 53; + A44 = 54; + A45 = 55; + A46 = 56; + A47 = 57; + A48 = 100; + A49 = 200; + A50 = 201; + A51 = 202; + A52 = 203; + A53 = 204; + A54 = 205; + A55 = 206; +}; +extend a10.A56 { + optional A10 a11 = 21713708; + optional bool a12 = 21623477; + optional bool a13 = 23459630; + optional bool a14 = 21596320; + optional bool a15 = 26652850; + optional int32 a16 = 53697879; + optional string a17 = 56871503; +}; +extend a10.A57 { + optional A10 a18 = 21713708; + optional bool a19 = 21623477; + optional bool a20 = 21596320; + optional A58 a21 = 21467048; + optional string a22 = 26652850; +} +message A58 { + message A59 { + required string a23 = 1; + required string a24 = 2; + }; + repeated A59 a25 = 1; +}; +extend a10.A60 { + optional bool a26 = 21596320; + optional bool a27 = 28993747; +}; diff --git a/benchmarks/protos/query_benchmark/f5.proto b/benchmarks/protos/query_benchmark/f5.proto new file mode 100644 index 000000000..ec7d6d957 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f5.proto @@ -0,0 +1,351 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a10; +message A108 { + repeated A109 a79 = 1; +} +message A109 { + optional string a52 = 1; + optional string a407 = 2; + repeated string a80 = 3; + repeated int32 a81 = 10; + repeated int32 a82 = 11; + repeated A110 a83 = 4; + repeated A111 a84 = 5; + repeated A112 a85 = 6; + repeated A113 a86 = 7; + optional A60 a87 = 8; + optional A114 a88 = 9; + optional string a408 = 12; +} +message A110 { + optional string a52 = 1; + repeated A113 a73 = 2; + repeated A113 a86 = 6; + repeated A110 a89 = 3; + repeated A111 a84 = 4; + message A115 { + optional int32 a90 = 1; + optional int32 a91 = 2; + optional A116 a87 = 3; + } + repeated A115 a92 = 5; + repeated A117 a93 = 8; + optional A57 a87 = 7; + message A118 { + optional int32 a90 = 1; + optional int32 a91 = 2; + } + repeated A118 a94 = 9; + repeated string a95 = 10; +} +message A116 { + repeated A119 a96 = 999; + extensions 1000 to max; +} +message A113 { + enum A59 { + A120 = 1; + A121 = 2; + A122 = 3; + A123 = 4; + A124 = 5; + A125 = 6; + A126 = 7; + A127 = 8; + A128 = 9; + A129 = 10; + A130 = 11; + A131 = 12; + A132 = 13; + A133 = 14; + A134 = 15; + A135 = 16; + A136 = 17; + A137 = 18; + }; + enum A138 { + A139 = 1; + A140 = 2; + A141 = 3; + }; + optional string a52 = 1; + optional int32 a97 = 3; + optional A138 a98 = 4; + optional A59 a99 = 5; + optional string a100 = 6; + optional string a101 = 2; + optional string a102 = 7; + optional int32 a103 = 9; + optional string a104 = 10; + optional A56 a87 = 8; +} +message A117 { + optional string a52 = 1; + optional A142 a87 = 2; +} +message A111 { + optional string a52 = 1; + repeated A143 a105 = 2; + optional A70 a87 = 3; + message A144 { + optional int32 a90 = 1; + optional int32 a91 = 2; + } + repeated A144 a94 = 4; + repeated string a95 = 5; +} +message A143 { + optional string a52 = 1; + optional int32 a97 = 2; + optional A76 a87 = 3; +} +message A112 { + optional string a52 = 1; + repeated A145 a106 = 2; + repeated A146 a107 = 4; + optional A147 a87 = 3; +} +message A145 { + optional string a52 = 1; + optional string a108 = 2; + optional string a109 = 3; + optional A98 a87 = 4; + optional bool a110 = 5 [default = false]; + optional bool a111 = 6 [default = false]; +} +message A146 { + optional string a52 = 1; + optional string a112 = 2; + optional string a113 = 3; + optional A148 a87 = 4; +} +message A60 { + optional int32 a114 = 2 [default = 2]; + reserved 15; + reserved 22; + optional bool a115 = 24 [default = true]; + reserved 25; + optional string a116 = 1; + optional int32 a117 = 4 [default = 2]; + optional int32 a118 = 5 [default = 2]; + optional bool a119 = 6 [default = true]; + optional bool a120 = 7 [default = true]; + reserved 13; + optional bool a121 = 21 [default = false]; + optional string a122 = 19; + optional bool a123 = 26 [default = false]; + optional string a124 = 8; + optional bool a125 = 10 [default = false]; + optional bool a126 = 27 [default = false]; + optional bool a127 = 28 [default = false]; + optional string a128 = 29; + enum A149 { + A150 = 1; + A151 = 2; + A152 = 3; + } + optional A149 a129 = 9 [default = A150]; + optional string a130 = 11; + optional string a131 = 12; + optional int32 a132 = 14 [default = 1]; + optional bool a133 = 16 [default = false]; + optional bool a134 = 17 [default = false]; + optional bool a135 = 18 [default = false]; + optional bool a136 = 42 [default = false]; + optional bool a31 = 23 [default = false]; + optional bool a137 = 31 [default = false]; + reserved 32; + reserved 33; + reserved 34; + reserved 35; + optional string a138 = 36; + optional string a139 = 37; + optional string a140 = 39; + optional string a141 = 40; + optional string a142 = 41; + optional bool a143 = 43; + optional string a144 = 44; + optional string a145 = 45; + repeated A119 a96 = 999; + extensions 1000 to max; + reserved 38; +} +message A57 { + repeated string a146 = 4; + repeated string a147 = 5; + repeated string a148 = 6; + optional bool a149 = 1 [default = false]; + optional bool a150 = 2 [default = false]; + optional bool a31 = 3 [default = false]; + optional bool a151 = 7; + reserved 8; + reserved 9; + repeated A119 a96 = 999; + extensions 1000 to max; +} +message A56 { + optional A153 a152 = 1 [default = A154]; + enum A153 { + A154 = 0; + A155 = 1; + A156 = 2; + } + optional bool a409 = 2; + optional A157 a153 = 6 [default = A158]; + enum A157 { + A158 = 0; + A159 = 1; + A160 = 2; + } + optional bool a154 = 5 [default = false]; + optional bool a31 = 3 [default = false]; + optional bool a155 = 10 [default = false]; + message A161 { + optional string a52 = 1; + optional string a105 = 2; + }; + repeated A161 a156 = 11; + optional bool a157 = 12 [default = false]; + optional bool a158 = 13 [default = true]; + repeated A119 a96 = 999; + extensions 1000 to max; + reserved 4; +} +message A142 { + repeated A119 a96 = 999; + extensions 1000 to max; +} +message A70 { + optional string a159 = 1; + reserved 4; + optional bool a160 = 2; + optional bool a31 = 3 [default = false]; + reserved 5; + repeated A119 a96 = 999; + extensions 1000 to max; +} +message A76 { + optional bool a31 = 1 [default = false]; + repeated A119 a96 = 999; + extensions 1000 to max; +} +message A147 { + optional bool a161 = 20 [default = false]; + optional double a162 = 16 [default = -1.0]; + optional bool a31 = 33 [default = false]; + repeated A119 a96 = 999; + extensions 1000 to max; +} +message A98 { + enum A162 { + A163 = 0; + A164 = 1; + } + enum A165 { + A67 = 0; + A166 = 1; + A167 = 2; + A168 = 3; + } + enum A169 { + A170 = 0; + A171 = 1; + } + enum A172 { + A173 = 0; + A174 = 1; + A175 = 2; + A176 = 3; + A177 = 4; + } + optional A162 a163 = 7 [default = A163]; + optional double a164 = 8 [default = -1.0]; + optional bool a165 = 9 [default = false]; + optional bool a166 = 10 [default = false]; + optional bool a167 = 26 [default = false]; + optional sint32 a168 = 11 [default = 256]; + optional sint32 a169 = 12 [default = 256]; + optional A165 a170 = 13 [default = A67]; + optional A169 a171 = 15 [default = A170]; + optional A169 a172 = 17 [default = A170]; + optional string a173 = 18; + optional string a174 = 19; + optional bool a110 = 20; + optional bool a111 = 21; + optional string a175 = 22; + optional string a176 = 23; + optional bool a177 = 29; + optional int64 a178 = 24 [default = -1]; + optional int64 a179 = 25 [default = -1]; + enum A178 { + A179 = 0; + A180 = 1; + } + optional A178 a180 = 28 [default = A180]; + optional A172 a181 = 27 [default = A175]; + optional bool a31 = 33 [default = false]; + enum A181 { + A182 = 0; + A183 = 1; + A184 = 2; + } + optional A181 a182 = 34 [default = A182]; + repeated A119 a96 = 999; + extensions 1000 to max; +} +message A148 { + enum A178 { + A179 = 0; + A180 = 1; + } + optional int64 a183 = 1 [default = -1]; + optional int64 a184 = 2 [default = -1]; + optional A178 a185 = 3 [default = A179]; + optional A98.A165 a170 = 4 [default = A67]; + optional string a174 = 5; + optional int32 a168 = 6 [default = 256]; + optional int32 a169 = 7 [default = 256]; + optional double a164 = 8 [default = -1.0]; + optional bool a166 = 9 [default = false]; + optional bool a167 = 10 [default = false]; + optional A98.A172 a181 = 11 [default = A175]; + optional bool a31 = 33 [default = false]; + repeated A119 a96 = 999; + extensions 1000 to max; +} +message A119 { + message A185 { + required string a186 = 1; + required bool a187 = 2; + } + repeated A185 a52 = 2; + optional string a188 = 3; + optional uint64 a189 = 4; + optional int64 a190 = 5; + optional double a191 = 6; + optional bytes a192 = 7; + optional string a193 = 8; +} +message A114 { + repeated A186 a194 = 1; + message A186 { + repeated int32 a195 = 1 [packed = true]; + repeated int32 a196 = 2 [packed = true]; + optional string a197 = 3; + optional string a198 = 4; + repeated string a199 = 6; + } +} +message A187 { + repeated A188 a200 = 1; + message A188 { + repeated int32 a195 = 1 [packed = true]; + optional string a201 = 2; + optional int32 a202 = 3; + optional int32 a91 = 4; + } +} diff --git a/benchmarks/protos/query_benchmark/f6.proto b/benchmarks/protos/query_benchmark/f6.proto new file mode 100644 index 000000000..4801eb5b6 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f6.proto @@ -0,0 +1,14 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a7; +message A61 { + enum A62 { + A63 = 0; + A64 = 1; + A65 = 2; + } + optional A62 a28 = 1; +} diff --git a/benchmarks/protos/query_benchmark/f7.proto b/benchmarks/protos/query_benchmark/f7.proto new file mode 100644 index 000000000..9f6e65e92 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f7.proto @@ -0,0 +1,11 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a0.a1; +enum A66 { + A67 = 0; + A68 = 1; + A69 = 2; +} diff --git a/benchmarks/protos/query_benchmark/f8.proto b/benchmarks/protos/query_benchmark/f8.proto new file mode 100644 index 000000000..7583baae4 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f8.proto @@ -0,0 +1,63 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a10.a29; +import "f5.proto"; +extend a10.A57 { + optional bool a30 = 147618788; + optional bool a32 = 149418587 [default = true]; + optional string a33 = 190288050; +} +extend a10.A70 { + optional bool a34 = 149419467 [default = true]; + optional bool a35 = 163526403; + optional string a36 = 190295313; +} +enum A71 { + A72 = 0; + A73 = 1; + A74 = 2; + A75 = 3; +} +extend a10.A56 { + optional A71 a37 = 179701954 [default = A73]; +} +extend a10.A76 { + optional bool a38 = 162702653 [default = false]; + optional bool a39 = 163486533 [default = false]; + optional bool a40 = 170261731 [default = false]; + repeated string a41 = 179096040; +} +enum A77 { + A67 = 0; + A78 = 1; + A79 = 2; + A80 = 3; + A81 = 4; + A82 = 5; + A83 = 6; + A84 = 7; + A85 = 8; + A86 = 9; + A87 = 10; + A88 = 11; + A89 = 12; + A90 = 13; + A91 = 14; + A92 = 15; + A93 = 16; + A94 = 17; + A95 = 18; + A96 = 100; + A97 = 101; +} +extend a10.A60 { + optional A77 a42 = 155465253 [default = A67]; + optional bytes a43 = 157245250; + optional bool a44 = 180648220 [default = true]; +} +extend a10.A98 { + optional bool a45 = 211030419; +} diff --git a/benchmarks/protos/query_benchmark/f9.proto b/benchmarks/protos/query_benchmark/f9.proto new file mode 100644 index 000000000..1d894a289 --- /dev/null +++ b/benchmarks/protos/query_benchmark/f9.proto @@ -0,0 +1,36 @@ +// Copyright (c) 2018, 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. + +syntax = "proto2"; +package a46.a47.a1.a48.a49.a4; +message A99 { + optional double a50 = 1; + optional int32 a51 = 2; + optional string a52 = 3; + repeated string a53 = 4; + optional string a54 = 5; + optional string a55 = 6; + optional string a56 = 7; +} +message A100 { + optional double a50 = 1; + optional int32 a51 = 2; + optional string a52 = 3; + optional string a57 = 4; + optional string a54 = 5; + optional bool a58 = 6; + optional float a59 = 7; + optional string a60 = 8; +} +message A101 { + optional string a52 = 1; + optional string a54 = 2; + optional string a61 = 3; + optional int64 a62 = 4; + optional int64 a63 = 5; + optional string a64 = 6; + optional int64 a65 = 7; + optional int64 a66 = 8; + optional bool a67 = 9; +} diff --git a/benchmarks/pubspec.yaml b/benchmarks/pubspec.yaml new file mode 100644 index 000000000..9e49b8d2d --- /dev/null +++ b/benchmarks/pubspec.yaml @@ -0,0 +1,24 @@ +# Copyright (c) 2018, 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. + +name: protobuf_benchmarks +description: Benchmarks various protobuf functions +publish_to: none + +environment: + sdk: '>=2.12.0 <3.0.0' + +dependencies: + protobuf: any + +dev_dependencies: + benchmark_harness: ^2.0.0 + js: ^0.6.3 + lints: ^1.0.0 + protoc_plugin: + path: '../protoc_plugin' + +dependency_overrides: + protobuf: + path: "../protobuf" diff --git a/benchmarks/run_protoc_plugin.sh b/benchmarks/run_protoc_plugin.sh new file mode 100755 index 000000000..52cab1273 --- /dev/null +++ b/benchmarks/run_protoc_plugin.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +dart run protoc_plugin protoc-gen-dart diff --git a/benchmarks/update_payloads.dart b/benchmarks/update_payloads.dart new file mode 100644 index 000000000..2e9f5b322 --- /dev/null +++ b/benchmarks/update_payloads.dart @@ -0,0 +1,13 @@ +import 'dart:io'; + +List googleMessage1Proto3Payload = [10, 22, 103, 111, 111, 103, 108, 101, 95, 109, 101, 115, 115, 97, 103, 101, 49, 95, 112, 114, 111, 116, 111, 51, 18, 32, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 46, 112, 114, 111, 116, 111, 51, 46, 71, 111, 111, 103, 108, 101, 77, 101, 115, 115, 97, 103, 101, 49, 26, 228, 1, 10, 0, 16, 8, 24, 203, 143, 126, 34, 6, 51, 75, 43, 54, 41, 35, 74, 89, 49, 48, 41, 50, 117, 105, 83, 117, 111, 88, 76, 49, 94, 41, 118, 125, 105, 99, 70, 64, 62, 80, 40, 106, 60, 116, 35, 126, 116, 122, 92, 108, 103, 63, 63, 83, 38, 40, 60, 104, 114, 55, 69, 86, 115, 39, 108, 123, 39, 53, 96, 71, 111, 104, 99, 95, 40, 61, 116, 32, 101, 83, 32, 115, 123, 95, 73, 63, 105, 67, 119, 97, 71, 93, 76, 39, 42, 80, 117, 53, 40, 38, 119, 95, 58, 52, 123, 126, 90, 96, 1, 104, 0, 112, 1, 122, 89, 8, 25, 16, 36, 122, 67, 34, 63, 54, 80, 89, 52, 93, 76, 50, 99, 60, 125, 126, 50, 59, 92, 84, 86, 70, 95, 119, 94, 91, 64, 89, 102, 98, 73, 99, 42, 118, 47, 78, 43, 90, 45, 111, 89, 117, 97, 87, 90, 114, 52, 67, 59, 53, 105, 98, 124, 42, 115, 64, 82, 67, 66, 98, 117, 118, 114, 81, 51, 103, 40, 107, 44, 78, 169, 1, 84, 255, 67, 8, 222, 26, 10, 39, 176, 1, 38, 184, 1, 1, 136, 1, 0, 146, 1, 10, 123, 61, 81, 119, 102, 101, 126, 35, 110, 123, 152, 4, 136, 145, 97, 160, 6, 31]; + +List googleMessage1Proto2Payload = [10, 22, 103, 111, 111, 103, 108, 101, 95, 109, 101, 115, 115, 97, 103, 101, 49, 95, 112, 114, 111, 116, 111, 50, 18, 32, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 46, 112, 114, 111, 116, 111, 50, 46, 71, 111, 111, 103, 108, 101, 77, 101, 115, 115, 97, 103, 101, 49, 26, 228, 1, 10, 0, 16, 8, 24, 203, 143, 126, 34, 6, 51, 75, 43, 54, 41, 35, 74, 89, 49, 48, 41, 50, 117, 105, 83, 117, 111, 88, 76, 49, 94, 41, 118, 125, 105, 99, 70, 64, 62, 80, 40, 106, 60, 116, 35, 126, 116, 122, 92, 108, 103, 63, 63, 83, 38, 40, 60, 104, 114, 55, 69, 86, 115, 39, 108, 123, 39, 53, 96, 71, 111, 104, 99, 95, 40, 61, 116, 32, 101, 83, 32, 115, 123, 95, 73, 63, 105, 67, 119, 97, 71, 93, 76, 39, 42, 80, 117, 53, 40, 38, 119, 95, 58, 52, 123, 126, 90, 96, 1, 104, 0, 112, 1, 122, 89, 8, 25, 16, 36, 122, 67, 34, 63, 54, 80, 89, 52, 93, 76, 50, 99, 60, 125, 126, 50, 59, 92, 84, 86, 70, 95, 119, 94, 91, 64, 89, 102, 98, 73, 99, 42, 118, 47, 78, 43, 90, 45, 111, 89, 117, 97, 87, 90, 114, 52, 67, 59, 53, 105, 98, 124, 42, 115, 64, 82, 67, 66, 98, 117, 118, 114, 81, 51, 103, 40, 107, 44, 78, 169, 1, 84, 255, 67, 8, 222, 26, 10, 39, 176, 1, 38, 184, 1, 1, 136, 1, 0, 146, 1, 10, 123, 61, 81, 119, 102, 101, 126, 35, 110, 123, 152, 4, 136, 145, 97, 160, 6, 31]; + +List googleMessage2Payload = [10, 15, 103, 111, 111, 103, 108, 101, 95, 109, 101, 115, 115, 97, 103, 101, 50, 18, 32, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 46, 112, 114, 111, 116, 111, 50, 46, 71, 111, 111, 103, 108, 101, 77, 101, 115, 115, 97, 103, 101, 50, 26, 218, 148, 5, 18, 148, 11, 12, 159, 106, 219, 218, 153, 123, 59, 231, 187, 44, 192, 146, 231, 195, 61, 147, 118, 58, 219, 219, 223, 227, 137, 230, 90, 222, 190, 241, 149, 78, 3, 171, 0, 201, 101, 26, 254, 5, 70, 247, 116, 74, 69, 13, 117, 222, 72, 88, 188, 44, 61, 118, 144, 119, 44, 187, 224, 245, 127, 186, 189, 74, 81, 108, 41, 20, 146, 29, 93, 34, 149, 113, 244, 227, 102, 148, 158, 123, 112, 124, 150, 101, 53, 104, 17, 141, 27, 137, 156, 169, 58, 8, 133, 139, 58, 42, 249, 216, 228, 96, 76, 42, 250, 153, 151, 203, 129, 172, 16, 151, 28, 101, 132, 3, 35, 87, 21, 232, 91, 155, 249, 9, 128, 180, 232, 140, 235, 104, 169, 60, 155, 198, 151, 16, 47, 107, 107, 155, 209, 69, 11, 111, 120, 5, 140, 213, 131, 130, 104, 227, 21, 16, 124, 73, 103, 67, 170, 70, 177, 10, 224, 25, 2, 212, 252, 86, 205, 116, 211, 184, 235, 122, 23, 22, 143, 137, 144, 123, 39, 19, 9, 105, 0, 198, 38, 139, 74, 78, 169, 236, 193, 37, 233, 198, 101, 242, 109, 163, 9, 54, 7, 14, 174, 175, 247, 155, 248, 102, 185, 221, 178, 46, 30, 158, 1, 118, 24, 59, 174, 112, 11, 127, 203, 231, 247, 197, 144, 81, 177, 157, 28, 237, 114, 240, 12, 250, 187, 80, 207, 139, 146, 227, 149, 203, 58, 146, 7, 75, 196, 238, 217, 49, 245, 152, 42, 135, 67, 199, 184, 49, 10, 167, 181, 27, 193, 197, 188, 45, 146, 7, 187, 199, 108, 34, 221, 40, 234, 255, 172, 101, 190, 69, 140, 194, 195, 234, 247, 217, 197, 132, 182, 243, 152, 157, 128, 234, 46, 121, 10, 117, 213, 217, 185, 189, 50, 17, 197, 210, 186, 2, 156, 67, 26, 83, 114, 197, 27, 242, 87, 214, 205, 226, 103, 13, 80, 199, 47, 206, 162, 242, 249, 113, 245, 55, 143, 229, 140, 206, 144, 177, 37, 37, 31, 195, 232, 114, 217, 69, 42, 186, 207, 59, 33, 52, 167, 242, 113, 171, 108, 106, 226, 246, 47, 199, 9, 43, 78, 227, 195, 141, 57, 77, 98, 165, 176, 168, 195, 164, 37, 222, 238, 233, 164, 232, 35, 189, 79, 193, 143, 156, 116, 224, 97, 37, 207, 47, 245, 87, 185, 188, 36, 246, 129, 157, 129, 129, 217, 123, 131, 255, 47, 204, 134, 142, 124, 249, 81, 71, 164, 75, 219, 141, 83, 39, 25, 89, 235, 61, 214, 129, 179, 108, 234, 104, 185, 247, 104, 7, 103, 161, 228, 211, 61, 144, 109, 167, 90, 210, 168, 214, 221, 173, 179, 110, 224, 150, 162, 90, 131, 39, 150, 156, 164, 1, 76, 195, 225, 29, 212, 132, 144, 74, 224, 2, 103, 8, 79, 195, 186, 113, 255, 25, 149, 0, 164, 5, 184, 124, 136, 35, 85, 13, 131, 63, 11, 71, 46, 60, 67, 169, 197, 60, 253, 35, 69, 147, 205, 176, 6, 216, 70, 223, 159, 18, 40, 124, 7, 164, 93, 70, 10, 101, 149, 177, 47, 131, 198, 161, 246, 31, 217, 19, 127, 16, 171, 194, 27, 113, 187, 17, 56, 7, 117, 175, 220, 118, 109, 113, 22, 142, 64, 138, 222, 252, 159, 96, 167, 76, 243, 193, 204, 43, 186, 231, 255, 50, 95, 143, 102, 102, 97, 149, 232, 76, 14, 2, 239, 229, 212, 185, 21, 85, 139, 103, 222, 78, 53, 131, 113, 75, 27, 207, 125, 249, 68, 12, 77, 142, 176, 170, 22, 222, 10, 176, 45, 171, 161, 146, 238, 156, 112, 193, 119, 58, 172, 118, 160, 82, 8, 176, 253, 220, 29, 26, 74, 146, 23, 239, 7, 2, 181, 96, 53, 42, 162, 54, 74, 219, 58, 51, 173, 163, 149, 213, 219, 90, 87, 67, 76, 206, 107, 251, 134, 255, 172, 58, 192, 239, 101, 155, 147, 178, 138, 236, 231, 15, 139, 77, 151, 118, 43, 197, 23, 213, 3, 90, 70, 72, 63, 240, 58, 212, 162, 57, 150, 186, 218, 53, 125, 104, 117, 91, 117, 158, 159, 250, 24, 168, 238, 203, 206, 9, 172, 214, 162, 166, 227, 177, 252, 82, 243, 119, 175, 116, 96, 191, 16, 81, 85, 44, 53, 86, 208, 47, 0, 208, 79, 120, 53, 8, 65, 157, 90, 116, 34, 49, 39, 203, 151, 240, 214, 41, 57, 43, 116, 253, 171, 1, 62, 223, 234, 199, 83, 193, 150, 119, 57, 124, 214, 209, 86, 106, 123, 243, 16, 85, 29, 59, 82, 47, 151, 68, 185, 101, 86, 11, 28, 165, 186, 2, 37, 78, 58, 86, 30, 122, 74, 153, 222, 170, 247, 171, 245, 197, 154, 107, 173, 70, 26, 30, 224, 112, 175, 14, 71, 166, 13, 237, 106, 138, 91, 148, 194, 211, 172, 7, 47, 37, 213, 149, 10, 131, 93, 167, 55, 236, 79, 244, 203, 234, 94, 214, 138, 156, 34, 181, 159, 44, 14, 120, 109, 93, 47, 83, 79, 99, 232, 33, 25, 146, 60, 135, 112, 132, 19, 93, 18, 7, 214, 91, 86, 24, 33, 127, 44, 132, 9, 37, 177, 247, 103, 3, 23, 93, 40, 173, 84, 9, 88, 212, 3, 45, 218, 57, 174, 214, 101, 5, 136, 197, 162, 152, 86, 178, 33, 84, 59, 175, 39, 202, 89, 195, 112, 34, 42, 56, 112, 19, 92, 102, 8, 8, 175, 2, 87, 41, 62, 232, 209, 85, 30, 4, 157, 236, 84, 207, 173, 100, 60, 211, 114, 164, 226, 141, 122, 64, 188, 184, 14, 117, 102, 82, 168, 34, 188, 153, 232, 83, 91, 247, 22, 82, 222, 209, 171, 85, 37, 132, 205, 91, 139, 11, 215, 136, 244, 100, 38, 33, 135, 22, 108, 133, 218, 91, 239, 204, 91, 122, 47, 187, 230, 89, 9, 68, 189, 31, 198, 16, 225, 37, 26, 56, 234, 179, 234, 90, 122, 31, 46, 88, 114, 199, 204, 68, 138, 144, 120, 130, 225, 223, 249, 170, 84, 18, 116, 50, 1, 147, 203, 212, 157, 21, 63, 98, 252, 52, 154, 39, 113, 148, 82, 59, 76, 215, 72, 31, 141, 197, 185, 44, 166, 67, 46, 2, 43, 111, 227, 215, 62, 184, 89, 231, 84, 89, 186, 93, 135, 105, 71, 85, 245, 81, 17, 77, 141, 190, 94, 124, 202, 84, 164, 60, 217, 158, 46, 89, 230, 61, 55, 140, 81, 195, 232, 185, 59, 106, 231, 243, 29, 234, 152, 35, 125, 100, 54, 85, 50, 225, 117, 109, 17, 102, 13, 234, 19, 29, 14, 181, 43, 96, 118, 73, 50, 187, 4, 50, 104, 88, 17, 34, 214, 106, 95, 224, 188, 129, 190, 116, 104, 216, 39, 4, 200, 202, 122, 234, 181, 254, 165, 30, 91, 49, 200, 188, 115, 78, 241, 194, 95, 3, 237, 218, 208, 82, 150, 166, 7, 44, 45, 146, 94, 153, 77, 82, 57, 114, 129, 104, 64, 26, 124, 106, 178, 242, 198, 165, 162, 162, 108, 109, 143, 252, 21, 100, 235, 77, 51, 117, 51, 212, 226, 137, 208, 19, 192, 194, 227, 117, 131, 1, 205, 137, 129, 68, 134, 130, 39, 222, 139, 240, 3, 101, 192, 192, 2, 98, 132, 233, 103, 236, 62, 12, 52, 108, 56, 243, 153, 158, 50, 4, 193, 45, 31, 106, 160, 6, 122, 208, 221, 104, 37, 85, 233, 66, 208, 125, 200, 16, 17, 93, 62, 250, 13, 150, 195, 193, 84, 21, 12, 146, 232, 137, 172, 135, 47, 214, 69, 86, 32, 251, 231, 179, 11, 254, 198, 233, 34, 241, 155, 187, 43, 137, 140, 212, 198, 199, 31, 136, 167, 223, 177, 101, 195, 75, 127, 156, 168, 98, 19, 250, 55, 114, 240, 21, 118, 138, 239, 15, 207, 218, 158, 99, 121, 81, 103, 94, 252, 216, 193, 104, 182, 188, 174, 64, 74, 130, 239, 192, 127, 42, 64, 192, 221, 161, 131, 184, 153, 118, 94, 60, 215, 16, 184, 204, 64, 78, 235, 114, 227, 32, 159, 208, 161, 171, 67, 122, 195, 175, 203, 243, 154, 46, 144, 165, 154, 222, 133, 216, 205, 174, 197, 133, 121, 132, 144, 166, 4, 226, 0, 251, 150, 125, 220, 94, 139, 111, 31, 50, 94, 9, 245, 234, 171, 106, 161, 169, 128, 19, 50, 97, 200, 19, 164, 53, 91, 25, 86, 28, 27, 156, 118, 225, 174, 207, 93, 29, 81, 49, 25, 42, 191, 82, 122, 195, 185, 218, 218, 24, 255, 208, 255, 81, 32, 229, 168, 4, 83, 40, 26, 93, 177, 138, 168, 62, 98, 21, 48, 115, 107, 40, 81, 76, 91, 84, 71, 41, 117, 65, 87, 52, 60, 54, 114, 95, 106, 44, 83, 120, 128, 200, 162, 205, 191, 233, 148, 234, 118, 250, 1, 15, 13, 22, 150, 126, 63, 29, 173, 151, 16, 63, 69, 99, 229, 119, 63, 84, 83, 40, 86, 93, 226, 191, 108, 63, 98, 29, 44, 48, 76, 123, 57, 118, 55, 47, 56, 93, 74, 45, 83, 66, 53, 79, 67, 68, 87, 75, 106, 100, 56, 75, 124, 55, 38, 106, 54, 120, 128, 160, 150, 148, 169, 144, 178, 161, 113, 250, 1, 17, 13, 168, 105, 110, 62, 29, 28, 16, 242, 61, 56, 1, 69, 234, 29, 11, 63, 84, 83, 40, 61, 93, 230, 215, 197, 62, 98, 22, 122, 45, 91, 73, 64, 36, 35, 88, 72, 82, 55, 105, 61, 72, 91, 49, 68, 53, 45, 71, 118, 32, 120, 128, 224, 218, 237, 191, 136, 214, 237, 254, 1, 250, 1, 12, 13, 119, 112, 218, 60, 29, 247, 98, 87, 63, 56, 0, 84, 83, 40, 117, 93, 246, 232, 192, 62, 98, 44, 71, 62, 60, 126, 115, 112, 83, 53, 104, 46, 42, 102, 97, 94, 34, 74, 126, 60, 76, 108, 56, 37, 101, 90, 70, 38, 76, 121, 46, 88, 88, 116, 44, 94, 48, 41, 53, 55, 117, 76, 116, 69, 71, 54, 120, 128, 134, 208, 242, 193, 174, 128, 149, 143, 1, 250, 1, 12, 13, 22, 187, 204, 62, 29, 182, 24, 58, 63, 56, 0, 84, 83, 40, 124, 93, 199, 59, 12, 63, 98, 38, 34, 83, 125, 42, 43, 66, 88, 97, 88, 108, 67, 89, 39, 47, 84, 53, 90, 34, 78, 119, 52, 103, 70, 32, 119, 113, 92, 78, 78, 32, 64, 52, 123, 89, 86, 36, 117, 33, 120, 128, 168, 203, 194, 136, 219, 218, 148, 70, 250, 1, 12, 13, 174, 130, 79, 63, 29, 18, 18, 2, 63, 56, 1, 84, 83, 40, 82, 93, 176, 19, 198, 61, 98, 23, 40, 59, 62, 56, 97, 117, 106, 98, 104, 37, 63, 57, 45, 125, 49, 56, 101, 41, 50, 87, 75, 46, 92, 120, 128, 192, 130, 212, 215, 242, 147, 160, 189, 1, 250, 1, 12, 13, 246, 153, 22, 63, 29, 55, 74, 1, 63, 56, 0, 84, 83, 40, 75, 93, 196, 145, 244, 62, 98, 20, 96, 71, 96, 41, 60, 118, 92, 83, 67, 108, 88, 52, 92, 74, 117, 57, 60, 118, 118, 110, 120, 128, 204, 165, 154, 192, 208, 172, 210, 37, 250, 1, 10, 13, 84, 201, 163, 61, 29, 29, 71, 207, 62, 84, 83, 40, 43, 93, 58, 248, 136, 61, 98, 26, 92, 121, 93, 111, 95, 49, 86, 50, 53, 40, 93, 93, 48, 111, 39, 84, 99, 65, 60, 88, 67, 109, 98, 102, 51, 59, 120, 128, 168, 132, 197, 217, 196, 162, 168, 204, 1, 250, 1, 10, 13, 219, 75, 210, 62, 29, 71, 26, 69, 63, 84, 83, 40, 24, 93, 128, 223, 24, 63, 98, 48, 33, 64, 35, 95, 124, 126, 99, 98, 91, 34, 34, 71, 66, 56, 91, 44, 38, 111, 58, 86, 100, 42, 102, 98, 110, 54, 118, 91, 68, 87, 47, 72, 35, 78, 91, 61, 45, 48, 41, 85, 32, 94, 95, 85, 64, 70, 64, 77, 120, 128, 200, 157, 147, 161, 167, 236, 153, 75, 250, 1, 10, 13, 55, 46, 37, 62, 29, 30, 92, 6, 63, 84, 83, 40, 72, 93, 183, 212, 252, 62, 98, 27, 90, 115, 117, 88, 63, 111, 102, 40, 39, 62, 36, 114, 89, 67, 114, 91, 61, 126, 117, 102, 100, 86, 38, 73, 48, 65, 72, 120, 128, 208, 216, 211, 138, 239, 196, 157, 114, 250, 1, 12, 13, 61, 84, 219, 62, 29, 203, 233, 62, 61, 56, 0, 84, 83, 40, 7, 93, 17, 169, 22, 63, 98, 55, 120, 72, 90, 101, 99, 108, 63, 66, 77, 120, 63, 91, 98, 102, 34, 76, 112, 57, 48, 91, 111, 105, 35, 108, 76, 72, 125, 71, 112, 94, 34, 41, 125, 58, 96, 122, 56, 117, 89, 49, 85, 67, 55, 93, 101, 109, 77, 90, 69, 72, 86, 105, 36, 72, 103, 120, 128, 200, 144, 243, 202, 198, 132, 153, 20, 250, 1, 12, 13, 175, 11, 200, 62, 29, 46, 120, 79, 63, 56, 0, 84, 83, 40, 36, 93, 31, 193, 81, 63, 98, 45, 119, 81, 109, 117, 54, 93, 71, 37, 39, 52, 122, 95, 125, 38, 75, 82, 68, 39, 94, 121, 66, 33, 72, 39, 55, 36, 84, 81, 81, 85, 74, 92, 61, 67, 92, 113, 72, 103, 79, 47, 37, 84, 62, 51, 91, 120, 128, 143, 144, 232, 209, 249, 128, 193, 142, 1, 250, 1, 5, 13, 105, 246, 134, 61, 84, 83, 40, 46, 93, 26, 91, 150, 62, 98, 28, 90, 32, 101, 89, 64, 74, 118, 40, 102, 93, 49, 40, 116, 83, 81, 105, 61, 65, 90, 72, 89, 42, 92, 87, 78, 116, 109, 97, 120, 128, 132, 220, 139, 172, 173, 224, 221, 28, 250, 1, 12, 13, 131, 50, 230, 62, 29, 100, 93, 14, 62, 56, 1, 200, 4, 23, 84, 83, 40, 29, 93, 16, 113, 104, 63, 98, 32, 84, 99, 35, 124, 119, 101, 104, 97, 42, 61, 39, 47, 33, 108, 73, 62, 104, 74, 121, 97, 80, 66, 46, 43, 75, 92, 52, 115, 59, 79, 51, 117, 120, 128, 208, 164, 204, 160, 254, 164, 226, 84, 250, 1, 10, 13, 216, 28, 33, 63, 29, 118, 27, 118, 63, 84, 83, 40, 7, 93, 149, 33, 142, 62, 98, 29, 67, 98, 97, 112, 72, 82, 57, 70, 100, 108, 115, 106, 44, 67, 82, 55, 83, 69, 49, 84, 118, 80, 58, 81, 116, 69, 89, 41, 49, 120, 128, 168, 214, 142, 248, 160, 178, 245, 192, 1, 250, 1, 12, 13, 218, 98, 197, 62, 29, 237, 130, 88, 63, 56, 0, 84, 83, 40, 5, 93, 106, 25, 198, 62, 98, 29, 103, 55, 111, 39, 111, 115, 99, 102, 111, 63, 40, 47, 44, 96, 93, 42, 53, 105, 80, 66, 114, 71, 48, 123, 34, 119, 48, 53, 52, 120, 128, 232, 184, 209, 246, 196, 198, 139, 181, 1, 250, 1, 5, 13, 95, 144, 27, 61, 84, 83, 40, 52, 93, 105, 160, 185, 61, 98, 27, 125, 106, 32, 98, 62, 64, 95, 51, 105, 74, 49, 107, 54, 76, 72, 82, 69, 46, 38, 113, 96, 81, 63, 38, 115, 37, 119, 120, 128, 160, 161, 225, 228, 247, 137, 138, 91, 250, 1, 10, 13, 61, 107, 248, 62, 29, 159, 209, 6, 63, 84, 83, 40, 53, 93, 235, 228, 150, 62, 98, 27, 96, 38, 45, 116, 93, 70, 118, 72, 111, 47, 40, 124, 126, 47, 107, 74, 102, 98, 109, 56, 123, 83, 71, 76, 74, 121, 110, 120, 128, 252, 134, 155, 196, 234, 183, 216, 161, 1, 250, 1, 10, 13, 198, 157, 218, 62, 29, 144, 227, 117, 63, 84, 83, 40, 90, 93, 25, 104, 125, 62, 98, 25, 34, 116, 42, 47, 63, 82, 116, 125, 55, 93, 34, 80, 73, 66, 38, 100, 56, 76, 123, 106, 99, 47, 63, 44, 94, 120, 128, 136, 210, 235, 202, 173, 144, 221, 214, 1, 250, 1, 10, 13, 214, 48, 230, 62, 29, 15, 79, 52, 63, 84, 83, 40, 74, 93, 87, 121, 38, 63, 98, 22, 32, 115, 74, 112, 122, 42, 36, 91, 43, 52, 109, 111, 33, 62, 81, 117, 35, 40, 114, 41, 32, 123, 120, 128, 216, 216, 187, 217, 195, 197, 221, 127, 250, 1, 12, 13, 134, 116, 109, 63, 29, 131, 57, 10, 63, 56, 1, 84, 83, 40, 71, 93, 205, 37, 122, 63, 98, 38, 80, 93, 39, 49, 69, 88, 92, 45, 37, 87, 70, 123, 95, 91, 65, 103, 124, 114, 45, 32, 90, 103, 93, 66, 111, 78, 93, 36, 115, 81, 60, 41, 83, 39, 43, 76, 44, 91, 120, 128, 140, 175, 135, 167, 238, 248, 186, 184, 1, 250, 1, 5, 13, 147, 71, 217, 62, 84, 83, 40, 86, 93, 171, 223, 195, 62, 98, 48, 111, 74, 96, 117, 73, 67, 90, 55, 122, 95, 99, 84, 66, 104, 32, 100, 64, 118, 122, 88, 56, 83, 59, 61, 71, 88, 80, 115, 90, 64, 72, 100, 62, 53, 118, 50, 96, 120, 36, 57, 73, 92, 86, 92, 68, 126, 99, 65, 120, 128, 184, 190, 172, 151, 177, 243, 227, 186, 1, 250, 1, 10, 13, 86, 201, 211, 62, 29, 38, 172, 145, 62, 84, 83, 40, 67, 93, 203, 233, 243, 62, 98, 42, 40, 43, 60, 47, 67, 78, 112, 114, 101, 92, 89, 54, 126, 54, 45, 112, 108, 35, 71, 113, 96, 47, 91, 124, 93, 120, 72, 116, 46, 71, 51, 37, 117, 55, 54, 42, 90, 35, 61, 74, 51, 69, 120, 128, 168, 211, 239, 213, 227, 154, 253, 89, 250, 1, 10, 13, 211, 95, 127, 63, 29, 98, 142, 118, 63, 84, 83, 40, 50, 93, 53, 83, 201, 62, 98, 29, 103, 86, 80, 93, 67, 114, 95, 107, 119, 78, 63, 80, 74, 37, 123, 99, 61, 73, 83, 64, 102, 32, 35, 54, 105, 100, 124, 94, 59, 120, 128, 144, 184, 184, 199, 245, 192, 195, 187, 1, 250, 1, 10, 13, 253, 91, 33, 63, 29, 48, 88, 8, 60, 84, 83, 40, 32, 93, 61, 148, 8, 63, 98, 36, 95, 61, 93, 105, 110, 50, 53, 74, 61, 90, 59, 82, 114, 68, 55, 96, 69, 85, 71, 37, 93, 103, 82, 57, 115, 94, 117, 33, 80, 75, 114, 62, 56, 118, 68, 93, 120, 128, 216, 225, 198, 174, 198, 141, 182, 9, 250, 1, 7, 13, 148, 4, 10, 63, 56, 1, 84, 83, 40, 44, 93, 108, 63, 230, 61, 98, 47, 59, 97, 72, 122, 54, 113, 87, 70, 89, 39, 38, 88, 50, 116, 119, 106, 68, 116, 48, 60, 51, 121, 113, 102, 123, 57, 122, 126, 89, 90, 112, 122, 37, 121, 65, 38, 42, 61, 92, 107, 61, 90, 117, 68, 107, 101, 37, 120, 160, 253, 190, 181, 224, 234, 247, 171, 131, 1, 250, 1, 5, 13, 206, 189, 239, 62, 84, 83, 40, 109, 93, 2, 137, 47, 63, 98, 25, 93, 73, 37, 117, 65, 110, 96, 125, 123, 117, 88, 107, 125, 53, 42, 82, 55, 82, 112, 95, 38, 56, 67, 125, 88, 120, 192, 193, 185, 208, 160, 141, 204, 131, 133, 1, 250, 1, 7, 13, 38, 58, 245, 62, 56, 1, 84, 83, 40, 30, 93, 181, 115, 90, 62, 98, 40, 120, 82, 102, 120, 51, 81, 32, 35, 32, 54, 73, 62, 95, 117, 100, 109, 119, 46, 97, 51, 108, 79, 90, 50, 90, 68, 37, 38, 61, 61, 65, 101, 103, 103, 124, 38, 37, 37, 33, 88, 120, 128, 240, 225, 233, 154, 141, 143, 206, 67, 250, 1, 5, 13, 240, 151, 86, 62, 84, 83, 40, 66, 93, 237, 103, 28, 63, 98, 37, 53, 102, 87, 77, 57, 105, 43, 62, 56, 35, 70, 73, 118, 83, 61, 109, 75, 120, 101, 98, 116, 99, 86, 118, 119, 94, 104, 113, 45, 41, 96, 89, 124, 32, 124, 115, 108, 120, 128, 152, 173, 254, 152, 233, 233, 242, 74, 250, 1, 5, 13, 175, 127, 77, 63, 84, 83, 40, 68, 93, 107, 143, 63, 62, 98, 27, 34, 76, 99, 65, 83, 46, 80, 102, 51, 44, 88, 77, 110, 100, 81, 48, 96, 84, 90, 32, 56, 49, 47, 66, 108, 75, 118, 120, 128, 224, 174, 150, 137, 138, 246, 178, 201, 1, 250, 1, 10, 13, 52, 175, 222, 62, 29, 2, 190, 104, 60, 84, 83, 40, 111, 93, 64, 27, 3, 62, 98, 31, 49, 80, 114, 54, 113, 85, 68, 79, 56, 42, 120, 123, 39, 43, 46, 59, 75, 99, 44, 34, 49, 82, 119, 111, 61, 65, 84, 39, 55, 120, 61, 120, 128, 224, 169, 160, 235, 142, 206, 130, 25, 250, 1, 10, 13, 232, 208, 131, 62, 29, 103, 111, 238, 62, 84, 83, 40, 37, 93, 215, 207, 158, 62, 98, 47, 112, 58, 61, 42, 47, 43, 103, 46, 55, 50, 58, 96, 60, 90, 43, 101, 116, 112, 121, 94, 87, 34, 120, 79, 33, 61, 56, 62, 108, 102, 99, 90, 110, 112, 73, 49, 69, 33, 113, 38, 105, 105, 87, 43, 39, 114, 106, 120, 128, 240, 174, 135, 202, 155, 247, 186, 208, 1, 250, 1, 10, 13, 64, 83, 81, 63, 29, 177, 93, 21, 63, 84, 83, 40, 38, 93, 212, 202, 209, 62, 98, 40, 81, 92, 100, 110, 64, 108, 41, 113, 113, 73, 64, 80, 77, 95, 113, 75, 49, 120, 63, 114, 125, 115, 115, 108, 73, 109, 72, 46, 81, 91, 79, 52, 73, 60, 40, 49, 43, 89, 111, 88, 120, 128, 160, 173, 217, 174, 232, 233, 202, 245, 1, 250, 1, 10, 13, 168, 68, 69, 59, 29, 6, 194, 82, 62, 84, 83, 40, 43, 93, 81, 233, 220, 62, 98, 33, 39, 92, 70, 32, 63, 74, 115, 56, 73, 72, 93, 103, 118, 68, 82, 67, 122, 63, 54, 120, 43, 38, 49, 86, 96, 63, 86, 41, 102, 122, 125, 95, 82, 120, 128, 236, 156, 242, 135, 229, 230, 145, 49, 250, 1, 10, 13, 41, 31, 183, 62, 29, 96, 170, 51, 62, 84, 83, 40, 2, 93, 249, 170, 17, 62, 98, 45, 50, 49, 91, 123, 32, 115, 74, 72, 51, 53, 60, 52, 123, 95, 123, 71, 61, 33, 74, 111, 63, 32, 114, 105, 80, 77, 73, 125, 52, 82, 34, 66, 65, 108, 45, 37, 61, 47, 37, 61, 44, 55, 43, 65, 108, 120, 128, 168, 250, 198, 134, 149, 210, 183, 67, 250, 1, 5, 13, 142, 168, 123, 63, 84, 83, 40, 40, 93, 192, 49, 51, 63, 98, 24, 43, 38, 64, 100, 49, 109, 50, 61, 112, 75, 82, 73, 75, 51, 96, 50, 121, 113, 47, 81, 118, 42, 46, 123, 120, 128, 208, 236, 238, 197, 254, 228, 246, 18, 250, 1, 7, 13, 25, 155, 54, 63, 56, 0, 84, 83, 40, 111, 93, 129, 179, 4, 63, 98, 51, 124, 126, 79, 43, 58, 41, 75, 97, 92, 48, 126, 122, 103, 76, 98, 82, 115, 95, 35, 74, 47, 114, 94, 110, 107, 107, 33, 119, 68, 87, 76, 101, 61, 107, 114, 75, 34, 61, 49, 42, 52, 79, 60, 97, 47, 86, 47, 93, 74, 72, 57, 120, 128, 222, 189, 196, 152, 240, 237, 163, 7, 250, 1, 10, 13, 51, 41, 58, 61, 29, 56, 208, 222, 62, 84, 83, 40, 45, 93, 130, 93, 227, 61, 98, 26, 63, 96, 63, 78, 40, 83, 61, 36, 99, 57, 92, 122, 88, 55, 79, 86, 77, 120, 53, 94, 85, 124, 94, 53, 91, 67, 120, 128, 156, 205, 216, 151, 217, 233, 196, 189, 1, 250, 1, 10, 13, 71, 142, 115, 63, 29, 56, 76, 163, 62, 84, 83, 40, 53, 93, 112, 148, 46, 63, 98, 54, 115, 73, 103, 44, 65, 124, 97, 34, 96, 50, 55, 125, 116, 120, 51, 36, 51, 120, 98, 85, 42, 51, 98, 84, 65, 33, 42, 114, 99, 37, 65, 101, 59, 87, 104, 81, 111, 42, 46, 88, 107, 118, 84, 75, 61, 126, 104, 60, 72, 62, 58, 33, 91, 112, 120, 128, 160, 175, 224, 243, 239, 249, 130, 73, 250, 1, 12, 13, 162, 231, 43, 63, 29, 44, 105, 58, 63, 56, 0, 84, 83, 40, 98, 93, 88, 182, 172, 62, 98, 29, 114, 110, 61, 91, 112, 81, 97, 61, 47, 96, 51, 40, 106, 41, 105, 51, 94, 55, 54, 66, 55, 109, 73, 68, 105, 63, 42, 73, 33, 120, 128, 148, 197, 188, 145, 157, 169, 228, 139, 1, 250, 1, 5, 13, 125, 250, 75, 63, 84, 83, 40, 80, 93, 246, 80, 171, 62, 98, 29, 108, 101, 123, 88, 120, 89, 107, 60, 75, 44, 102, 42, 50, 54, 81, 39, 66, 33, 77, 123, 70, 40, 37, 68, 119, 112, 80, 70, 56, 120, 128, 216, 161, 203, 180, 192, 141, 218, 164, 1, 250, 1, 12, 13, 203, 139, 150, 61, 29, 159, 21, 98, 63, 56, 1, 84, 83, 40, 95, 93, 120, 1, 121, 63, 98, 26, 67, 108, 90, 100, 92, 74, 38, 107, 96, 98, 58, 87, 41, 87, 66, 94, 39, 62, 95, 119, 100, 95, 87, 96, 40, 41, 120, 128, 144, 207, 163, 152, 135, 249, 156, 49, 250, 1, 12, 13, 141, 86, 26, 61, 29, 125, 100, 48, 62, 56, 0, 84, 83, 40, 109, 93, 199, 70, 9, 63, 98, 28, 73, 57, 46, 57, 102, 60, 111, 80, 63, 60, 67, 97, 93, 56, 71, 110, 117, 91, 126, 85, 118, 110, 55, 98, 53, 121, 92, 83, 120, 128, 156, 198, 147, 145, 222, 177, 156, 137, 1, 250, 1, 5, 13, 209, 164, 11, 61, 84, 83, 40, 78, 93, 198, 163, 32, 63, 98, 30, 111, 102, 46, 110, 73, 40, 118, 105, 77, 46, 87, 72, 60, 117, 34, 110, 96, 84, 45, 83, 37, 59, 91, 89, 33, 74, 35, 108, 94, 59, 120, 128, 152, 171, 136, 247, 195, 217, 194, 184, 1, 250, 1, 10, 13, 17, 252, 154, 62, 29, 232, 172, 45, 63, 84, 83, 40, 94, 93, 89, 77, 88, 63, 98, 25, 118, 42, 87, 68, 108, 99, 53, 40, 104, 54, 110, 69, 63, 118, 108, 114, 81, 116, 38, 86, 83, 42, 83, 109, 125, 120, 128, 225, 228, 153, 204, 137, 166, 206, 7, 250, 1, 12, 13, 48, 238, 212, 61, 29, 79, 167, 241, 61, 56, 0, 84, 83, 40, 90, 93, 34, 180, 146, 62, 98, 26, 102, 85, 37, 43, 100, 40, 47, 64, 111, 111, 51, 114, 66, 50, 37, 99, 117, 112, 72, 119, 70, 89, 48, 60, 107, 85, 120, 128, 232, 237, 166, 191, 196, 238, 182, 99, 250, 1, 7, 13, 219, 182, 205, 62, 56, 1, 84, 83, 40, 77, 93, 21, 13, 213, 61, 98, 32, 117, 36, 122, 39, 111, 58, 106, 40, 105, 65, 84, 54, 102, 63, 55, 49, 91, 120, 64, 51, 57, 104, 106, 115, 45, 68, 103, 63, 47, 61, 104, 87, 120, 128, 236, 204, 252, 251, 238, 230, 228, 29, 250, 1, 12, 13, 173, 236, 58, 63, 29, 53, 58, 158, 62, 56, 1, 84, 83, 40, 52, 93, 103, 37, 233, 61, 98, 25, 52, 73, 42, 104, 93, 86, 113, 67, 73, 123, 83, 68, 46, 76, 71, 70, 111, 45, 57, 39, 120, 74, 81, 75, 120, 120, 128, 144, 173, 173, 254, 249, 232, 234, 59, 250, 1, 7, 13, 214, 17, 21, 63, 56, 1, 84, 83, 40, 1, 93, 181, 245, 225, 59, 98, 26, 34, 73, 105, 80, 100, 117, 40, 80, 42, 51, 34, 105, 122, 107, 106, 105, 47, 60, 48, 110, 116, 47, 84, 63, 48, 104, 120, 128, 176, 170, 198, 142, 133, 211, 178, 117, 250, 1, 12, 13, 207, 171, 38, 63, 29, 114, 179, 83, 63, 56, 0, 84, 83, 40, 126, 93, 141, 156, 99, 63, 98, 54, 66, 72, 120, 42, 89, 93, 103, 80, 61, 63, 35, 37, 37, 47, 79, 101, 96, 46, 60, 59, 107, 49, 42, 113, 115, 73, 63, 122, 125, 73, 96, 119, 52, 44, 71, 81, 113, 96, 48, 81, 83, 95, 80, 85, 44, 79, 58, 33, 57, 49, 124, 95, 116, 99, 120, 128, 156, 184, 201, 193, 225, 193, 203, 140, 1, 250, 1, 10, 13, 166, 218, 45, 62, 29, 10, 70, 161, 62, 84, 83, 40, 9, 93, 10, 169, 103, 62, 98, 73, 48, 61, 108, 82, 114, 93, 42, 111, 119, 103, 124, 115, 32, 125, 106, 102, 44, 96, 83, 101, 68, 47, 62, 96, 107, 76, 32, 35, 79, 35, 55, 51, 106, 74, 32, 51, 102, 44, 92, 119, 33, 94, 65, 56, 60, 61, 124, 97, 41, 124, 124, 78, 104, 65, 111, 32, 126, 43, 101, 70, 92, 39, 63, 116, 80, 104, 40, 84, 125, 86, 126, 126, 36, 120, 128, 248, 244, 131, 250, 200, 167, 159, 208, 1, 250, 1, 5, 13, 17, 208, 52, 63, 84, 83, 40, 92, 93, 200, 122, 78, 63, 98, 65, 37, 67, 78, 78, 62, 120, 82, 37, 103, 73, 73, 89, 126, 52, 90, 70, 53, 58, 121, 62, 75, 103, 83, 52, 72, 99, 82, 124, 125, 74, 45, 92, 42, 51, 120, 102, 55, 119, 62, 45, 108, 110, 103, 62, 94, 121, 126, 66, 68, 87, 109, 64, 104, 70, 64, 60, 111, 57, 38, 90, 70, 85, 39, 61, 60, 120, 128, 176, 171, 214, 188, 255, 218, 178, 229, 1, 250, 1, 5, 13, 105, 240, 252, 62, 84, 83, 40, 99, 93, 48, 187, 142, 62, 98, 39, 114, 47, 61, 123, 107, 81, 92, 126, 53, 84, 77, 99, 47, 88, 69, 91, 107, 115, 99, 113, 91, 118, 124, 112, 99, 102, 54, 102, 74, 33, 114, 74, 51, 39, 80, 72, 80, 68, 123, 120, 128, 232, 245, 147, 158, 179, 174, 159, 241, 1, 250, 1, 5, 13, 233, 113, 53, 63, 84, 83, 40, 38, 93, 75, 173, 29, 63, 98, 33, 99, 87, 117, 54, 124, 97, 97, 79, 118, 106, 119, 93, 123, 50, 75, 55, 37, 59, 116, 84, 51, 97, 35, 80, 39, 40, 124, 42, 71, 118, 110, 46, 62, 120, 128, 160, 179, 213, 196, 132, 154, 171, 165, 1, 250, 1, 12, 13, 100, 33, 132, 62, 29, 184, 4, 134, 62, 56, 1, 84, 83, 40, 63, 93, 113, 180, 134, 62, 98, 40, 37, 104, 80, 122, 94, 58, 73, 83, 53, 36, 44, 118, 88, 109, 103, 71, 34, 84, 68, 46, 116, 99, 86, 40, 32, 123, 105, 62, 95, 120, 50, 73, 84, 34, 110, 107, 97, 101, 67, 53, 120, 128, 192, 175, 198, 208, 151, 252, 178, 83, 250, 1, 5, 13, 25, 73, 11, 63, 84, 83, 40, 94, 93, 215, 124, 137, 61, 98, 29, 58, 32, 53, 63, 86, 115, 54, 99, 72, 65, 67, 64, 49, 71, 122, 98, 80, 42, 114, 60, 112, 97, 65, 86, 126, 122, 100, 59, 49, 120, 128, 130, 156, 226, 206, 141, 224, 145, 21, 250, 1, 12, 13, 249, 131, 1, 63, 29, 228, 181, 175, 62, 56, 1, 84, 83, 40, 63, 93, 74, 228, 79, 63, 98, 26, 32, 102, 74, 102, 107, 98, 78, 33, 51, 93, 78, 89, 57, 106, 95, 100, 82, 96, 74, 52, 87, 93, 93, 64, 91, 47, 120, 128, 208, 153, 175, 182, 233, 204, 249, 120, 250, 1, 10, 13, 99, 12, 6, 63, 29, 42, 49, 137, 62, 84, 83, 40, 106, 93, 193, 179, 5, 61, 98, 61, 67, 96, 89, 122, 123, 37, 66, 39, 88, 65, 96, 46, 120, 80, 64, 74, 79, 80, 73, 124, 95, 82, 59, 53, 65, 40, 41, 43, 92, 103, 123, 102, 66, 90, 42, 119, 94, 111, 99, 94, 47, 89, 112, 113, 118, 78, 100, 111, 58, 99, 73, 32, 111, 114, 66, 112, 69, 68, 88, 114, 123, 120, 128, 174, 173, 196, 149, 241, 234, 162, 32, 250, 1, 5, 13, 93, 12, 226, 62, 84, 83, 40, 106, 93, 79, 241, 198, 62, 98, 34, 121, 106, 62, 69, 71, 106, 95, 108, 105, 108, 38, 96, 72, 62, 114, 67, 57, 111, 119, 61, 123, 118, 78, 55, 57, 82, 58, 55, 111, 98, 119, 47, 32, 76, 120, 128, 176, 172, 128, 176, 173, 227, 130, 124, 250, 1, 5, 13, 99, 52, 53, 63, 84, 83, 40, 51, 93, 55, 230, 225, 62, 98, 55, 114, 119, 105, 51, 37, 38, 60, 47, 124, 38, 101, 79, 97, 70, 81, 81, 72, 34, 59, 38, 43, 116, 80, 72, 124, 38, 115, 117, 95, 122, 65, 46, 124, 110, 124, 126, 83, 103, 113, 72, 121, 41, 84, 52, 81, 64, 33, 81, 92, 77, 36, 121, 71, 63, 61, 120, 128, 224, 162, 200, 191, 134, 150, 194, 252, 1, 250, 1, 10, 13, 28, 247, 213, 62, 29, 0, 208, 178, 62, 84, 83, 40, 29, 93, 164, 197, 123, 63, 98, 47, 49, 69, 79, 34, 99, 86, 82, 113, 72, 81, 125, 96, 48, 114, 43, 34, 64, 59, 118, 92, 37, 66, 57, 49, 118, 70, 102, 92, 80, 32, 86, 50, 81, 114, 54, 84, 89, 81, 79, 121, 108, 46, 40, 43, 79, 66, 105, 120, 128, 240, 195, 182, 138, 133, 159, 180, 70, 250, 1, 10, 13, 2, 16, 91, 62, 69, 12, 86, 148, 62, 84, 83, 40, 80, 93, 166, 67, 0, 62, 98, 101, 74, 89, 119, 109, 44, 61, 43, 61, 111, 116, 65, 72, 121, 107, 46, 60, 91, 86, 72, 109, 107, 123, 110, 118, 58, 46, 97, 83, 92, 50, 72, 53, 67, 75, 103, 118, 122, 71, 71, 60, 70, 50, 42, 118, 107, 95, 48, 99, 51, 76, 119, 93, 114, 109, 63, 77, 106, 32, 83, 125, 90, 86, 95, 92, 76, 44, 36, 78, 35, 55, 65, 51, 46, 44, 70, 88, 112, 118, 43, 90, 124, 125, 63, 47, 58, 105, 65, 84, 43, 57, 44, 121, 115, 72, 96, 110, 81, 77, 74, 95, 90, 120, 128, 144, 203, 236, 250, 128, 217, 228, 214, 1, 250, 1, 5, 13, 4, 142, 43, 63, 84, 83, 40, 122, 93, 91, 144, 253, 61, 98, 29, 99, 78, 102, 70, 101, 91, 114, 116, 120, 32, 92, 55, 80, 66, 97, 105, 79, 67, 104, 42, 70, 63, 100, 74, 87, 39, 67, 76, 74, 120, 128, 240, 225, 243, 143, 160, 143, 158, 255, 1, 250, 1, 12, 13, 3, 233, 152, 62, 29, 35, 98, 159, 62, 56, 0, 84, 83, 40, 4, 93, 212, 88, 17, 63, 98, 23, 59, 90, 45, 68, 92, 56, 37, 121, 72, 35, 87, 33, 42, 103, 116, 43, 60, 117, 113, 100, 67, 104, 59, 120, 128, 216, 252, 163, 157, 205, 229, 159, 234, 1, 250, 1, 5, 13, 221, 146, 40, 63, 84, 83, 40, 32, 93, 140, 76, 209, 62, 98, 27, 73, 121, 99, 62, 115, 76, 107, 70, 47, 65, 125, 43, 112, 64, 68, 60, 70, 126, 38, 56, 99, 84, 114, 126, 70, 79, 62, 120, 128, 146, 222, 133, 163, 137, 241, 173, 152, 1, 250, 1, 7, 13, 21, 81, 5, 63, 56, 0, 84, 83, 40, 39, 93, 85, 229, 57, 63, 98, 32, 69, 113, 91, 32, 99, 100, 98, 83, 62, 64, 101, 105, 62, 105, 33, 67, 126, 76, 116, 111, 88, 125, 98, 115, 38, 100, 119, 67, 46, 89, 115, 111, 120, 192, 235, 239, 186, 217, 220, 254, 214, 5, 250, 1, 5, 13, 211, 56, 134, 62, 84, 83, 40, 93, 93, 18, 18, 126, 63, 98, 31, 100, 67, 87, 97, 60, 82, 121, 66, 110, 41, 96, 92, 78, 121, 50, 37, 73, 77, 44, 70, 46, 102, 121, 126, 108, 62, 68, 100, 76, 117, 101, 120, 128, 241, 250, 142, 131, 136, 215, 247, 7, 250, 1, 10, 13, 127, 4, 39, 61, 29, 57, 191, 172, 60, 84, 83, 40, 82, 93, 41, 165, 29, 63, 98, 28, 115, 50, 82, 38, 36, 63, 37, 123, 35, 58, 116, 51, 70, 110, 70, 84, 44, 63, 111, 125, 73, 88, 116, 124, 45, 53, 117, 120, 120, 128, 136, 216, 247, 197, 203, 192, 189, 175, 1, 250, 1, 10, 13, 229, 73, 31, 63, 29, 183, 85, 23, 63, 84, 83, 40, 59, 93, 90, 174, 150, 62, 98, 23, 87, 48, 54, 122, 38, 65, 110, 97, 125, 122, 81, 73, 48, 61, 92, 78, 48, 119, 98, 49, 95, 49, 59, 120, 128, 156, 176, 240, 254, 217, 129, 131, 40, 250, 1, 12, 13, 250, 56, 14, 63, 29, 221, 57, 108, 63, 56, 1, 200, 4, 54, 84, 83, 40, 16, 93, 185, 246, 22, 63, 98, 65, 71, 97, 71, 119, 110, 94, 47, 89, 37, 125, 32, 59, 74, 92, 67, 83, 124, 118, 57, 73, 50, 98, 116, 59, 91, 69, 116, 120, 69, 45, 82, 69, 85, 69, 83, 110, 33, 56, 78, 124, 63, 86, 114, 100, 48, 67, 101, 93, 120, 33, 122, 118, 47, 97, 69, 100, 108, 44, 59, 72, 104, 53, 52, 119, 74, 120, 128, 160, 206, 231, 185, 152, 242, 188, 206, 1, 250, 1, 10, 13, 23, 37, 60, 63, 29, 145, 75, 94, 61, 84, 83, 40, 12, 93, 42, 47, 12, 63, 98, 56, 81, 99, 72, 59, 41, 90, 111, 47, 42, 55, 94, 54, 126, 68, 50, 91, 54, 114, 126, 109, 33, 116, 123, 38, 51, 41, 66, 121, 57, 85, 92, 96, 83, 68, 78, 55, 77, 114, 88, 105, 116, 93, 34, 35, 104, 81, 53, 110, 100, 110, 67, 114, 37, 59, 82, 92, 120, 128, 232, 240, 199, 178, 212, 134, 191, 95, 250, 1, 5, 13, 200, 68, 184, 62, 84, 83, 40, 10, 93, 101, 203, 127, 63, 98, 65, 56, 116, 116, 83, 89, 125, 98, 89, 117, 122, 45, 66, 57, 53, 120, 67, 113, 119, 60, 96, 114, 82, 53, 74, 49, 105, 91, 56, 113, 112, 79, 43, 106, 88, 80, 32, 103, 77, 73, 106, 110, 91, 120, 105, 96, 32, 88, 111, 66, 46, 105, 109, 37, 69, 44, 101, 95, 73, 66, 111, 66, 73, 103, 36, 74, 120, 160, 205, 157, 242, 211, 234, 236, 145, 4, 250, 1, 10, 13, 38, 197, 20, 63, 29, 29, 48, 46, 63, 84, 83, 40, 89, 93, 164, 133, 108, 63, 98, 34, 91, 68, 78, 81, 113, 55, 88, 74, 105, 48, 48, 106, 117, 98, 38, 96, 38, 68, 76, 106, 64, 61, 43, 88, 72, 69, 114, 116, 62, 93, 72, 119, 44, 73, 120, 128, 216, 169, 191, 152, 164, 205, 250, 195, 1, 250, 1, 10, 13, 40, 29, 201, 62, 29, 103, 107, 165, 62, 84, 83, 40, 67, 93, 152, 236, 11, 63, 98, 37, 115, 45, 52, 94, 49, 95, 86, 82, 36, 125, 105, 123, 50, 52, 119, 87, 61, 57, 117, 41, 75, 68, 99, 43, 43, 103, 56, 94, 76, 48, 96, 65, 82, 111, 87, 92, 43, 120, 128, 184, 171, 178, 186, 175, 219, 146, 211, 1, 250, 1, 10, 13, 196, 144, 110, 63, 29, 165, 44, 109, 63, 84, 83, 40, 108, 93, 151, 164, 91, 63, 98, 48, 110, 117, 84, 97, 54, 98, 51, 112, 52, 43, 71, 72, 40, 79, 73, 41, 83, 73, 70, 118, 38, 115, 61, 71, 72, 65, 91, 58, 76, 94, 64, 124, 55, 89, 84, 108, 85, 73, 80, 84, 75, 90, 122, 84, 120, 42, 103, 40, 120, 128, 174, 201, 172, 243, 233, 202, 228, 154, 1, 250, 1, 5, 13, 121, 126, 132, 60, 84, 83, 40, 14, 93, 157, 133, 253, 62, 98, 28, 81, 121, 106, 121, 88, 45, 57, 115, 39, 119, 68, 84, 106, 74, 48, 78, 121, 91, 83, 41, 119, 113, 75, 74, 119, 104, 77, 62, 120, 128, 144, 195, 207, 233, 240, 152, 252, 204, 1, 250, 1, 5, 13, 215, 50, 9, 63, 84, 83, 40, 9, 93, 155, 138, 230, 62, 98, 43, 84, 112, 75, 61, 109, 90, 52, 71, 48, 92, 77, 82, 54, 69, 104, 78, 120, 57, 46, 87, 77, 32, 86, 94, 77, 63, 34, 110, 95, 121, 58, 83, 112, 120, 32, 121, 125, 114, 95, 63, 70, 43, 120, 120, 128, 232, 226, 207, 196, 195, 150, 254, 164, 1, 250, 1, 12, 13, 195, 135, 192, 62, 29, 205, 53, 109, 63, 56, 0, 84, 83, 40, 67, 93, 29, 18, 127, 63, 98, 54, 125, 69, 63, 68, 78, 124, 83, 57, 107, 110, 77, 87, 68, 103, 53, 65, 121, 96, 60, 68, 109, 79, 38, 88, 110, 48, 65, 39, 58, 59, 84, 43, 79, 111, 96, 84, 121, 46, 66, 123, 76, 96, 49, 35, 50, 102, 33, 67, 99, 120, 73, 55, 119, 45, 120, 128, 218, 215, 214, 171, 221, 189, 181, 23, 250, 1, 12, 13, 98, 80, 246, 62, 29, 182, 221, 167, 62, 56, 1, 84, 83, 40, 71, 93, 206, 155, 159, 62, 98, 33, 90, 76, 125, 80, 57, 65, 40, 84, 38, 95, 71, 106, 62, 64, 119, 45, 62, 34, 69, 39, 47, 125, 66, 65, 112, 61, 51, 65, 94, 50, 53, 51, 88, 120, 128, 254, 225, 161, 173, 239, 143, 142, 7, 250, 1, 5, 13, 143, 0, 173, 62, 84, 83, 40, 0, 93, 243, 233, 47, 63, 98, 33, 96, 104, 111, 93, 76, 60, 35, 81, 93, 119, 86, 52, 34, 47, 60, 64, 77, 46, 92, 41, 92, 95, 123, 46, 101, 117, 114, 74, 51, 50, 58, 32, 119, 120, 128, 212, 167, 171, 231, 152, 189, 218, 186, 1, 250, 1, 5, 13, 32, 73, 36, 63, 84, 83, 40, 33, 93, 71, 239, 14, 63, 98, 36, 72, 97, 97, 62, 110, 51, 69, 91, 44, 91, 35, 119, 114, 42, 116, 98, 117, 36, 33, 108, 96, 119, 85, 72, 88, 62, 75, 93, 86, 60, 86, 81, 35, 106, 37, 75, 120, 128, 160, 224, 144, 207, 226, 129, 134, 249, 1, 250, 1, 10, 13, 188, 196, 71, 63, 29, 139, 3, 79, 63, 84, 83, 40, 58, 93, 26, 249, 17, 63, 98, 27, 82, 88, 57, 111, 81, 64, 40, 68, 60, 33, 70, 91, 75, 115, 80, 44, 57, 100, 80, 103, 102, 37, 111, 37, 80, 115, 39, 120, 192, 156, 224, 183, 134, 228, 129, 190, 7, 250, 1, 12, 13, 125, 126, 222, 62, 29, 169, 226, 65, 63, 56, 0, 84, 83, 40, 30, 93, 156, 54, 12, 63, 98, 61, 54, 46, 62, 59, 87, 39, 124, 66, 57, 57, 58, 47, 116, 87, 118, 83, 63, 96, 37, 60, 99, 110, 77, 104, 52, 62, 92, 56, 35, 121, 83, 117, 47, 39, 52, 100, 50, 111, 96, 93, 83, 68, 76, 106, 84, 116, 90, 60, 48, 80, 41, 39, 37, 121, 111, 70, 95, 84, 39, 56, 74, 120, 128, 232, 230, 216, 188, 198, 182, 198, 91, 250, 1, 5, 13, 110, 166, 166, 62, 84, 83, 40, 41, 93, 249, 138, 57, 63, 98, 62, 68, 126, 108, 66, 49, 65, 79, 126, 71, 104, 63, 65, 97, 52, 63, 99, 64, 40, 82, 112, 76, 111, 53, 55, 109, 37, 93, 103, 71, 51, 110, 37, 46, 37, 47, 116, 109, 120, 126, 47, 89, 39, 93, 49, 79, 36, 125, 63, 103, 84, 41, 91, 107, 77, 56, 84, 105, 85, 84, 44, 98, 102, 120, 128, 240, 170, 232, 201, 139, 215, 194, 74, 250, 1, 10, 13, 59, 254, 87, 62, 29, 144, 206, 110, 63, 84, 83, 40, 34, 93, 211, 131, 82, 62, 98, 26, 91, 37, 73, 116, 70, 40, 67, 54, 68, 49, 35, 103, 104, 38, 61, 32, 114, 41, 50, 57, 95, 108, 90, 43, 56, 67, 120, 128, 136, 196, 235, 141, 209, 160, 220, 238, 1, 250, 1, 10, 13, 163, 214, 233, 62, 29, 196, 169, 91, 63, 84, 83, 40, 63, 93, 178, 246, 224, 62, 98, 65, 56, 53, 112, 65, 58, 61, 94, 98, 82, 72, 54, 114, 66, 102, 108, 107, 37, 68, 101, 99, 42, 101, 32, 82, 110, 73, 62, 92, 35, 53, 118, 68, 116, 102, 106, 81, 118, 100, 35, 97, 51, 70, 95, 111, 72, 120, 56, 67, 74, 87, 108, 38, 43, 106, 62, 81, 52, 61, 81, 111, 126, 33, 94, 60, 80, 120, 128, 224, 237, 217, 207, 131, 238, 206, 109, 250, 1, 5, 13, 4, 134, 122, 63, 84, 83, 40, 77, 93, 179, 47, 118, 63, 98, 63, 59, 115, 63, 64, 36, 79, 99, 38, 47, 41, 116, 49, 121, 50, 74, 71, 112, 56, 41, 72, 56, 60, 89, 50, 51, 98, 50, 102, 66, 63, 86, 122, 92, 71, 47, 98, 76, 100, 39, 58, 90, 75, 36, 51, 91, 94, 37, 110, 52, 115, 94, 88, 115, 50, 98, 125, 57, 45, 45, 64, 61, 124, 98, 120, 128, 128, 159, 170, 189, 238, 247, 209, 234, 1, 250, 1, 10, 13, 192, 87, 7, 63, 29, 89, 34, 112, 63, 84, 83, 40, 68, 93, 28, 222, 6, 63, 98, 35, 35, 102, 122, 43, 49, 109, 108, 108, 56, 69, 85, 83, 92, 67, 82, 77, 95, 125, 39, 74, 99, 49, 72, 63, 86, 101, 124, 92, 103, 52, 96, 97, 42, 82, 106, 120, 128, 172, 175, 182, 135, 237, 250, 178, 187, 1, 250, 1, 5, 13, 133, 19, 111, 63, 84, 83, 40, 68, 93, 154, 109, 210, 62, 98, 24, 37, 68, 117, 101, 114, 86, 89, 99, 121, 74, 52, 47, 83, 113, 40, 109, 113, 62, 90, 83, 74, 112, 48, 36, 120, 192, 177, 162, 200, 160, 138, 147, 194, 132, 1, 250, 1, 12, 13, 57, 10, 57, 63, 29, 157, 24, 96, 63, 56, 0, 84, 83, 40, 14, 93, 166, 136, 21, 63, 98, 49, 38, 84, 44, 86, 34, 38, 109, 74, 84, 104, 124, 34, 34, 50, 82, 37, 44, 111, 34, 99, 120, 46, 62, 126, 123, 51, 52, 112, 97, 46, 98, 48, 88, 66, 68, 95, 34, 124, 111, 34, 32, 70, 104, 113, 85, 72, 110, 124, 81, 120, 128, 168, 166, 163, 199, 158, 178, 154, 125, 250, 1, 5, 13, 78, 170, 23, 63, 84, 83, 40, 5, 93, 93, 171, 208, 62, 98, 44, 69, 94, 119, 53, 45, 90, 109, 113, 123, 104, 70, 38, 108, 72, 95, 109, 113, 34, 46, 32, 32, 99, 81, 68, 76, 72, 82, 68, 54, 62, 99, 85, 94, 104, 50, 98, 76, 74, 116, 66, 33, 47, 35, 93, 120, 128, 248, 238, 209, 213, 178, 247, 142, 173, 1, 250, 1, 10, 13, 114, 113, 74, 63, 29, 240, 149, 66, 63, 84, 83, 40, 126, 93, 20, 185, 31, 62, 98, 36, 47, 94, 122, 73, 35, 70, 97, 44, 82, 104, 99, 39, 73, 91, 93, 36, 112, 70, 36, 54, 123, 64, 71, 45, 107, 125, 111, 96, 115, 35, 95, 95, 83, 53, 38, 95, 120, 128, 208, 162, 160, 140, 155, 149, 130, 226, 1, 250, 1, 7, 13, 129, 247, 247, 61, 56, 1, 84, 83, 40, 45, 93, 215, 48, 3, 63, 98, 30, 86, 121, 96, 48, 59, 86, 83, 69, 88, 79, 68, 99, 104, 50, 109, 55, 108, 93, 37, 86, 32, 55, 78, 40, 36, 82, 52, 84, 124, 58, 120, 128, 208, 199, 213, 173, 135, 189, 172, 93, 250, 1, 12, 13, 81, 77, 75, 63, 29, 28, 88, 49, 63, 56, 1, 84, 83, 40, 49, 93, 12, 234, 208, 62, 98, 56, 102, 123, 79, 71, 59, 59, 59, 82, 59, 122, 106, 35, 55, 71, 123, 77, 85, 106, 80, 63, 74, 87, 44, 104, 66, 126, 71, 62, 105, 87, 33, 35, 108, 71, 79, 112, 45, 92, 58, 100, 123, 123, 108, 40, 102, 48, 60, 84, 62, 55, 54, 118, 52, 37, 123, 46, 120, 128, 144, 161, 177, 157, 230, 136, 138, 235, 1, 250, 1, 7, 13, 233, 126, 61, 63, 32, 0, 84, 83, 40, 37, 93, 112, 139, 95, 63, 98, 43, 124, 103, 98, 120, 103, 53, 111, 118, 42, 63, 119, 79, 106, 67, 78, 105, 35, 33, 49, 97, 113, 126, 81, 65, 42, 110, 103, 74, 64, 32, 70, 88, 125, 112, 126, 51, 41, 47, 126, 122, 76, 92, 51, 120, 128, 176, 162, 150, 160, 243, 146, 178, 118, 250, 1, 10, 13, 8, 7, 160, 62, 29, 18, 232, 210, 62, 84, 83, 40, 54, 93, 127, 182, 46, 63, 98, 28, 76, 67, 108, 100, 113, 89, 33, 124, 53, 65, 110, 119, 76, 68, 86, 42, 119, 62, 80, 121, 68, 58, 96, 114, 33, 54, 53, 52, 120, 128, 232, 217, 204, 172, 207, 206, 229, 228, 1, 250, 1, 10, 13, 172, 163, 25, 63, 29, 129, 31, 47, 61, 84, 83, 40, 88, 93, 90, 207, 201, 62, 98, 48, 38, 124, 123, 51, 96, 101, 67, 110, 33, 124, 103, 64, 38, 77, 39, 38, 41, 32, 125, 117, 78, 60, 49, 98, 120, 99, 91, 68, 108, 49, 91, 60, 43, 82, 70, 70, 89, 118, 54, 87, 45, 42, 67, 61, 119, 82, 121, 103, 120, 128, 172, 158, 211, 216, 218, 242, 153, 19, 250, 1, 7, 13, 28, 57, 18, 62, 48, 1, 84, 83, 40, 75, 93, 214, 29, 94, 61, 98, 32, 107, 118, 105, 106, 57, 57, 124, 42, 125, 34, 110, 64, 74, 52, 83, 39, 95, 76, 50, 104, 70, 104, 67, 120, 115, 105, 69, 104, 115, 55, 94, 79, 120, 128, 194, 144, 194, 208, 142, 132, 145, 132, 1, 250, 1, 5, 13, 18, 68, 128, 62, 84, 83, 40, 41, 93, 30, 161, 31, 63, 98, 62, 91, 91, 63, 92, 57, 77, 46, 39, 83, 123, 77, 62, 70, 95, 77, 95, 79, 111, 94, 35, 82, 111, 118, 78, 115, 51, 54, 102, 67, 63, 61, 50, 116, 119, 74, 36, 45, 84, 78, 119, 90, 59, 68, 118, 60, 39, 66, 51, 105, 125, 126, 50, 88, 59, 40, 107, 99, 111, 104, 37, 55, 70, 120, 128, 136, 255, 138, 190, 193, 248, 215, 91, 250, 1, 5, 13, 27, 240, 90, 62, 84, 83, 40, 83, 93, 133, 168, 142, 62, 98, 56, 73, 78, 52, 72, 82, 121, 64, 101, 72, 55, 74, 126, 50, 107, 112, 34, 124, 68, 63, 43, 89, 88, 110, 94, 63, 60, 107, 72, 96, 51, 86, 48, 56, 33, 93, 114, 125, 64, 75, 37, 112, 114, 114, 112, 64, 99, 93, 123, 52, 52, 72, 63, 116, 83, 96, 111, 120, 128, 248, 216, 198, 170, 220, 199, 181, 212, 1, 250, 1, 12, 13, 64, 92, 15, 63, 29, 36, 234, 187, 61, 56, 0, 84, 83, 40, 18, 93, 199, 70, 107, 63, 98, 27, 36, 52, 95, 58, 102, 48, 46, 124, 36, 92, 120, 57, 57, 101, 101, 125, 62, 91, 93, 111, 52, 76, 105, 55, 59, 100, 64, 120, 128, 152, 210, 247, 252, 166, 145, 189, 231, 1, 250, 1, 12, 13, 58, 79, 90, 62, 29, 47, 176, 217, 62, 56, 0, 84, 83, 40, 28, 93, 246, 59, 106, 63, 98, 27, 120, 109, 93, 48, 38, 124, 77, 109, 54, 47, 107, 70, 90, 57, 121, 41, 96, 54, 76, 87, 61, 98, 87, 73, 72, 125, 34, 120, 128, 192, 188, 232, 210, 216, 227, 195, 106, 250, 1, 12, 13, 75, 220, 174, 62, 29, 15, 24, 67, 63, 56, 1, 84, 83, 40, 48, 93, 85, 61, 52, 63, 98, 53, 65, 64, 118, 40, 108, 56, 93, 48, 33, 124, 60, 125, 111, 96, 74, 69, 98, 82, 49, 106, 92, 89, 53, 54, 51, 103, 39, 121, 93, 76, 77, 84, 71, 98, 56, 120, 34, 33, 114, 125, 109, 70, 59, 101, 58, 75, 87, 61, 87, 73, 92, 53, 73, 120, 128, 128, 137, 206, 185, 243, 199, 240, 204, 1, 250, 1, 5, 13, 194, 219, 127, 61, 84, 83, 40, 95, 93, 151, 254, 239, 61, 98, 50, 96, 115, 37, 48, 99, 82, 83, 79, 103, 85, 45, 71, 80, 66, 97, 95, 50, 123, 54, 61, 78, 123, 102, 47, 105, 66, 51, 111, 55, 42, 109, 92, 80, 109, 65, 45, 109, 109, 42, 114, 103, 54, 81, 117, 74, 116, 38, 38, 122, 85, 120, 128, 230, 246, 229, 205, 177, 182, 175, 31, 250, 1, 12, 13, 218, 170, 35, 63, 29, 119, 246, 82, 63, 56, 0, 84, 83, 40, 79, 93, 183, 144, 54, 63, 98, 37, 44, 116, 69, 64, 62, 99, 55, 92, 102, 79, 118, 98, 32, 83, 112, 68, 112, 67, 85, 56, 73, 112, 100, 115, 60, 45, 115, 97, 114, 48, 109, 38, 49, 93, 33, 120, 71, 120, 128, 128, 207, 191, 168, 236, 247, 252, 98, 250, 1, 10, 13, 249, 193, 10, 63, 29, 81, 236, 37, 61, 84, 83, 40, 125, 93, 33, 26, 98, 63, 98, 30, 46, 121, 125, 66, 37, 71, 99, 113, 107, 75, 115, 66, 58, 58, 47, 80, 36, 49, 110, 85, 104, 86, 97, 112, 80, 66, 82, 118, 123, 39, 120, 128, 176, 189, 160, 173, 133, 235, 131, 234, 1, 250, 1, 5, 13, 84, 132, 5, 63, 84, 83, 40, 35, 93, 138, 170, 13, 63, 98, 39, 98, 105, 117, 120, 39, 76, 124, 33, 68, 66, 49, 110, 66, 101, 105, 118, 100, 66, 52, 72, 42, 87, 56, 44, 112, 97, 115, 108, 117, 99, 91, 65, 40, 100, 87, 68, 89, 42, 41, 120, 128, 220, 169, 177, 202, 213, 205, 138, 46, 250, 1, 12, 13, 27, 172, 21, 63, 29, 237, 40, 65, 63, 56, 0, 84, 83, 40, 41, 93, 251, 203, 39, 63, 98, 65, 97, 126, 108, 45, 37, 65, 76, 61, 112, 73, 42, 81, 105, 39, 69, 88, 48, 42, 95, 101, 110, 102, 93, 45, 68, 60, 90, 56, 113, 111, 66, 69, 120, 77, 47, 97, 39, 94, 112, 66, 46, 36, 54, 59, 76, 114, 111, 35, 99, 104, 71, 92, 80, 88, 110, 121, 65, 94, 104, 103, 102, 52, 74, 32, 39, 120, 128, 128, 156, 180, 139, 241, 223, 161, 219, 1, 250, 1, 10, 13, 10, 225, 22, 63, 29, 79, 225, 147, 62, 84, 83, 40, 116, 93, 98, 37, 51, 63, 98, 55, 80, 80, 57, 60, 87, 106, 79, 66, 95, 81, 75, 87, 84, 41, 72, 100, 116, 64, 94, 52, 64, 72, 117, 40, 91, 121, 89, 53, 51, 104, 58, 84, 43, 32, 56, 117, 66, 51, 33, 35, 73, 126, 125, 54, 60, 46, 94, 65, 87, 65, 110, 55, 92, 97, 66, 120, 128, 211, 247, 183, 193, 153, 189, 191, 139, 1, 250, 1, 5, 13, 61, 254, 28, 63, 84, 83, 40, 23, 93, 10, 219, 44, 63, 98, 26, 92, 49, 58, 46, 118, 55, 118, 75, 83, 111, 82, 65, 96, 63, 90, 105, 64, 73, 94, 106, 76, 58, 55, 93, 112, 120, 120, 192, 235, 161, 196, 223, 220, 142, 162, 4, 250, 1, 10, 13, 59, 23, 107, 63, 29, 172, 37, 218, 62, 84, 83, 40, 81, 93, 149, 105, 39, 62, 98, 26, 59, 49, 82, 67, 113, 47, 112, 39, 126, 69, 98, 43, 80, 37, 32, 46, 119, 33, 118, 33, 94, 122, 69, 51, 65, 120, 120, 128, 224, 157, 138, 138, 248, 237, 209, 208, 1, 250, 1, 12, 13, 72, 82, 155, 62, 29, 65, 22, 122, 63, 56, 0, 84, 83, 40, 125, 93, 202, 55, 11, 61, 98, 53, 117, 96, 54, 48, 45, 122, 103, 90, 79, 65, 94, 69, 105, 47, 102, 88, 112, 106, 41, 117, 80, 91, 80, 63, 106, 63, 33, 120, 82, 83, 41, 106, 70, 95, 53, 111, 109, 111, 33, 124, 57, 60, 81, 60, 59, 32, 72, 50, 50, 35, 75, 50, 42, 120, 128, 191, 180, 131, 244, 242, 163, 155, 12, 250, 1, 5, 13, 13, 208, 5, 63, 84, 83, 40, 34, 93, 188, 17, 47, 62, 98, 62, 118, 68, 108, 121, 109, 39, 123, 56, 115, 125, 42, 121, 118, 106, 33, 105, 44, 92, 52, 41, 51, 35, 105, 117, 109, 102, 79, 39, 117, 95, 62, 45, 122, 94, 118, 74, 51, 35, 74, 52, 85, 36, 71, 33, 62, 56, 59, 56, 74, 72, 125, 75, 61, 48, 123, 114, 90, 118, 43, 39, 87, 115, 120, 128, 248, 203, 213, 254, 189, 223, 172, 45, 250, 1, 5, 13, 128, 111, 89, 62, 84, 83, 40, 85, 93, 248, 96, 120, 63, 98, 31, 125, 55, 115, 85, 85, 41, 49, 126, 82, 47, 91, 103, 87, 85, 75, 55, 92, 77, 97, 113, 110, 105, 98, 35, 111, 60, 118, 66, 92, 97, 98, 120, 128, 190, 251, 203, 151, 230, 219, 223, 26, 250, 1, 10, 13, 96, 127, 179, 62, 29, 118, 138, 178, 62, 84, 83, 40, 34, 93, 94, 164, 49, 61, 98, 26, 68, 115, 113, 115, 57, 62, 92, 108, 55, 113, 62, 84, 91, 64, 54, 114, 81, 108, 45, 52, 83, 111, 101, 57, 49, 109, 120, 128, 196, 237, 206, 245, 153, 236, 246, 172, 1, 250, 1, 5, 13, 237, 244, 88, 63, 84, 83, 40, 58, 93, 107, 94, 215, 62, 98, 27, 70, 54, 59, 70, 114, 103, 90, 108, 88, 80, 45, 116, 107, 125, 124, 66, 102, 60, 74, 110, 96, 83, 51, 37, 79, 83, 46, 120, 128, 224, 170, 182, 185, 157, 214, 178, 203, 1, 250, 1, 12, 13, 30, 9, 49, 63, 29, 125, 229, 228, 62, 56, 1, 84, 83, 40, 100, 93, 194, 86, 175, 62, 98, 43, 110, 74, 40, 56, 52, 76, 78, 56, 100, 52, 92, 38, 94, 36, 103, 60, 110, 39, 36, 69, 92, 102, 113, 34, 54, 118, 62, 89, 34, 43, 45, 82, 65, 84, 124, 82, 115, 41, 81, 110, 123, 86, 123, 120, 128, 236, 158, 164, 213, 218, 246, 161, 170, 1, 250, 1, 7, 13, 1, 159, 18, 63, 56, 1, 84, 83, 40, 107, 93, 238, 110, 255, 62, 98, 49, 70, 59, 114, 66, 119, 68, 99, 39, 87, 38, 34, 61, 46, 115, 53, 89, 38, 41, 99, 41, 39, 52, 72, 101, 85, 52, 73, 38, 106, 82, 75, 55, 38, 110, 50, 102, 56, 106, 90, 123, 112, 116, 121, 109, 38, 52, 96, 39, 64, 120, 128, 176, 188, 151, 248, 128, 227, 187, 46, 250, 1, 5, 13, 142, 82, 135, 62, 84, 83, 40, 60, 93, 169, 255, 140, 62, 98, 27, 102, 72, 49, 113, 44, 108, 98, 122, 92, 60, 37, 90, 106, 54, 63, 96, 78, 65, 58, 77, 102, 56, 49, 57, 90, 95, 65, 120, 128, 176, 236, 224, 178, 150, 227, 134, 70, 250, 1, 5, 13, 183, 117, 182, 62, 84, 83, 40, 91, 93, 36, 67, 218, 62, 98, 55, 57, 125, 124, 63, 69, 32, 115, 43, 125, 118, 33, 51, 88, 116, 51, 59, 124, 64, 69, 113, 32, 125, 126, 82, 77, 54, 119, 55, 76, 74, 46, 88, 119, 114, 106, 92, 108, 118, 120, 96, 89, 53, 60, 86, 101, 37, 88, 67, 70, 67, 67, 50, 123, 113, 71, 120, 128, 232, 186, 134, 217, 188, 214, 179, 37, 250, 1, 10, 13, 243, 189, 124, 63, 29, 222, 148, 226, 62, 84, 83, 40, 107, 93, 30, 90, 39, 62, 98, 65, 40, 91, 94, 82, 103, 71, 58, 100, 42, 86, 77, 38, 71, 100, 56, 106, 96, 72, 107, 72, 92, 83, 111, 40, 39, 123, 92, 38, 75, 79, 93, 66, 37, 104, 87, 124, 85, 105, 109, 61, 106, 115, 57, 111, 117, 61, 106, 54, 89, 91, 89, 85, 93, 72, 81, 83, 106, 86, 74, 107, 106, 52, 57, 89, 119, 120, 128, 237, 150, 252, 209, 233, 182, 225, 14, 250, 1, 5, 13, 80, 106, 235, 59, 84, 83, 40, 82, 93, 230, 51, 13, 62, 98, 26, 58, 52, 118, 89, 77, 93, 104, 58, 32, 49, 105, 49, 69, 76, 110, 116, 39, 100, 92, 55, 35, 50, 126, 62, 33, 82, 120, 128, 224, 145, 196, 171, 165, 142, 161, 73, 250, 1, 10, 13, 178, 183, 27, 63, 29, 122, 54, 41, 63, 84, 83, 40, 116, 93, 171, 67, 75, 63, 98, 53, 60, 44, 41, 62, 71, 98, 122, 47, 106, 104, 57, 106, 68, 96, 90, 68, 102, 74, 99, 112, 68, 67, 70, 41, 40, 52, 87, 88, 122, 38, 46, 90, 40, 69, 77, 36, 60, 45, 70, 50, 43, 84, 112, 77, 105, 70, 90, 93, 70, 46, 110, 47, 121, 120, 128, 217, 210, 240, 182, 198, 149, 133, 10, 250, 1, 12, 13, 186, 62, 208, 62, 29, 133, 211, 108, 63, 56, 1, 84, 83, 40, 0, 93, 245, 220, 111, 62, 98, 78, 50, 42, 66, 52, 99, 89, 93, 98, 126, 51, 86, 40, 88, 35, 81, 100, 110, 81, 119, 62, 96, 89, 121, 50, 108, 55, 126, 95, 33, 125, 84, 62, 60, 118, 52, 39, 104, 64, 45, 115, 43, 98, 90, 73, 110, 37, 53, 43, 72, 65, 86, 70, 108, 96, 84, 87, 48, 48, 71, 75, 90, 125, 97, 33, 94, 55, 107, 97, 110, 73, 123, 78, 68, 36, 50, 125, 126, 79, 120, 128, 220, 223, 225, 165, 217, 253, 141, 174, 1, 250, 1, 10, 13, 100, 170, 61, 63, 29, 101, 83, 175, 60, 84, 83, 40, 109, 93, 128, 91, 123, 62, 98, 28, 94, 70, 46, 80, 90, 66, 91, 118, 87, 119, 96, 56, 45, 33, 89, 106, 87, 57, 83, 60, 125, 69, 39, 33, 103, 77, 86, 88, 120, 128, 192, 234, 213, 202, 142, 212, 174, 213, 1, 250, 1, 10, 13, 231, 239, 79, 63, 29, 87, 82, 44, 63, 84, 83, 40, 56, 93, 27, 166, 63, 63, 98, 55, 101, 34, 89, 80, 102, 48, 63, 50, 82, 67, 85, 99, 106, 36, 123, 68, 100, 106, 76, 77, 85, 56, 57, 62, 44, 103, 44, 106, 34, 55, 105, 56, 54, 80, 70, 126, 32, 58, 111, 40, 52, 41, 75, 34, 81, 61, 124, 72, 89, 52, 122, 34, 51, 123, 49, 120, 128, 216, 213, 225, 170, 197, 173, 141, 61, 250, 1, 5, 13, 62, 31, 65, 63, 84, 83, 40, 35, 93, 12, 53, 191, 62, 98, 27, 125, 36, 83, 48, 59, 88, 61, 77, 57, 92, 124, 68, 73, 121, 68, 57, 75, 108, 55, 108, 110, 106, 98, 48, 109, 60, 102, 120, 128, 246, 189, 232, 208, 177, 239, 195, 134, 1, 250, 1, 10, 13, 166, 104, 141, 62, 29, 240, 53, 168, 62, 84, 83, 40, 119, 93, 150, 92, 115, 62, 98, 49, 100, 118, 113, 36, 95, 120, 48, 72, 51, 111, 98, 106, 92, 110, 80, 40, 110, 97, 100, 95, 80, 76, 83, 50, 65, 66, 65, 126, 112, 56, 50, 121, 98, 101, 94, 82, 39, 63, 89, 82, 92, 109, 89, 126, 40, 118, 83, 125, 106, 120, 128, 200, 252, 176, 169, 161, 228, 135, 84, 250, 1, 10, 13, 164, 93, 106, 62, 29, 178, 137, 22, 63, 84, 83, 40, 77, 93, 164, 42, 138, 62, 98, 39, 101, 56, 66, 95, 98, 61, 86, 49, 87, 121, 92, 103, 40, 118, 48, 124, 33, 78, 40, 49, 35, 97, 114, 84, 42, 73, 110, 67, 51, 50, 35, 89, 64, 73, 32, 70, 48, 71, 92, 120, 128, 192, 247, 147, 186, 137, 188, 159, 38, 250, 1, 5, 13, 205, 138, 117, 63, 84, 83, 40, 57, 93, 202, 82, 117, 62, 98, 26, 94, 66, 63, 110, 91, 109, 108, 92, 102, 79, 71, 54, 36, 68, 108, 85, 56, 77, 51, 124, 68, 118, 34, 71, 93, 118, 120, 128, 176, 156, 177, 236, 242, 226, 137, 227, 1, 250, 1, 10, 13, 200, 37, 78, 63, 29, 8, 158, 25, 63, 84, 83, 40, 107, 93, 78, 107, 75, 63, 98, 27, 53, 86, 74, 51, 50, 105, 90, 50, 84, 70, 84, 59, 42, 119, 50, 122, 33, 66, 112, 68, 109, 103, 77, 113, 103, 64, 119, 120, 128, 196, 141, 230, 242, 165, 236, 176, 150, 1, 250, 1, 5, 13, 194, 192, 57, 63, 84, 83, 40, 4, 93, 49, 223, 127, 63, 98, 39, 35, 116, 99, 49, 94, 88, 48, 90, 107, 92, 59, 93, 86, 111, 90, 118, 79, 75, 122, 104, 73, 103, 76, 125, 77, 41, 88, 75, 112, 112, 73, 76, 81, 70, 80, 69, 70, 101, 82, 120, 128, 156, 135, 140, 174, 223, 185, 224, 46, 250, 1, 12, 13, 145, 108, 85, 63, 29, 229, 107, 63, 63, 56, 0, 84, 83, 40, 94, 93, 164, 163, 6, 63, 98, 26, 42, 118, 34, 44, 72, 72, 100, 105, 58, 85, 59, 72, 100, 99, 85, 32, 100, 104, 121, 51, 109, 44, 48, 62, 53, 80, 120, 128, 168, 128, 148, 211, 180, 130, 160, 98, 250, 1, 5, 13, 100, 157, 106, 63, 84, 83, 40, 74, 93, 113, 131, 109, 63, 98, 31, 97, 97, 100, 75, 66, 49, 86, 63, 72, 72, 100, 97, 55, 112, 52, 123, 96, 33, 124, 65, 42, 125, 43, 83, 99, 125, 102, 98, 118, 118, 94, 120, 128, 152, 225, 241, 188, 223, 137, 142, 231, 1, 250, 1, 12, 13, 154, 66, 66, 62, 29, 148, 122, 178, 62, 56, 1, 200, 4, 76, 84, 83, 40, 89, 93, 6, 118, 136, 62, 98, 49, 65, 67, 73, 69, 63, 80, 78, 43, 115, 63, 41, 56, 110, 103, 121, 53, 109, 99, 86, 49, 103, 68, 74, 114, 71, 80, 104, 118, 79, 117, 124, 90, 56, 71, 95, 88, 119, 100, 93, 89, 37, 87, 41, 70, 88, 94, 40, 118, 113, 120, 128, 224, 242, 170, 207, 144, 150, 215, 250, 1, 250, 1, 12, 13, 44, 241, 8, 63, 29, 133, 34, 34, 62, 56, 0, 84, 83, 40, 66, 93, 154, 226, 4, 63, 98, 31, 123, 119, 85, 124, 110, 102, 86, 91, 125, 65, 78, 126, 71, 39, 64, 61, 40, 38, 123, 44, 47, 59, 36, 58, 104, 72, 113, 36, 83, 66, 109, 120, 128, 184, 244, 201, 243, 168, 163, 207, 74, 250, 1, 5, 13, 179, 25, 60, 63, 84, 83, 40, 113, 93, 33, 138, 52, 63, 98, 47, 96, 66, 103, 110, 113, 77, 123, 42, 37, 42, 94, 95, 110, 80, 93, 74, 40, 38, 69, 65, 96, 115, 59, 51, 69, 116, 81, 39, 91, 83, 118, 56, 81, 67, 95, 121, 64, 54, 42, 93, 51, 48, 125, 47, 42, 104, 35, 120, 128, 208, 198, 255, 224, 241, 180, 252, 68, 250, 1, 5, 13, 34, 81, 100, 63, 84, 83, 40, 116, 93, 156, 183, 56, 63, 98, 34, 80, 64, 83, 34, 107, 39, 84, 73, 124, 123, 115, 77, 81, 50, 69, 46, 74, 112, 99, 42, 113, 123, 103, 46, 79, 116, 43, 40, 92, 113, 125, 49, 99, 109, 120, 128, 172, 154, 172, 213, 201, 210, 225, 51, 250, 1, 10, 13, 236, 72, 108, 63, 29, 134, 136, 122, 63, 84, 83, 40, 44, 93, 110, 27, 97, 63, 98, 27, 113, 107, 108, 44, 97, 62, 98, 76, 123, 100, 89, 87, 97, 49, 108, 114, 83, 88, 68, 82, 117, 123, 75, 108, 43, 124, 98, 120, 128, 240, 170, 201, 236, 235, 214, 202, 98, 250, 1, 10, 13, 53, 129, 51, 63, 29, 124, 177, 76, 63, 84, 83, 40, 59, 93, 7, 16, 50, 62, 98, 31, 41, 123, 112, 61, 36, 111, 38, 111, 108, 72, 46, 67, 34, 57, 59, 32, 117, 122, 113, 63, 88, 109, 125, 117, 63, 32, 33, 99, 91, 120, 104, 120, 128, 136, 231, 215, 130, 190, 184, 190, 149, 1, 250, 1, 10, 13, 61, 74, 126, 62, 29, 220, 161, 221, 62, 84, 83, 40, 60, 93, 31, 108, 58, 63, 98, 51, 63, 78, 109, 99, 81, 84, 101, 76, 108, 39, 105, 112, 96, 97, 114, 103, 121, 45, 87, 59, 125, 121, 125, 36, 109, 65, 51, 115, 94, 125, 43, 88, 107, 85, 95, 70, 44, 45, 108, 35, 40, 80, 40, 56, 53, 47, 34, 120, 37, 33, 53, 120, 128, 138, 134, 130, 196, 206, 176, 144, 15, 250, 1, 5, 13, 204, 251, 89, 63, 84, 83, 40, 24, 93, 7, 207, 62, 63, 98, 50, 68, 80, 105, 116, 48, 64, 112, 109, 110, 122, 49, 37, 42, 33, 75, 90, 108, 63, 83, 50, 77, 113, 101, 109, 94, 62, 57, 109, 92, 104, 33, 102, 88, 109, 58, 116, 66, 55, 92, 98, 54, 97, 57, 60, 36, 42, 118, 119, 89, 69, 120, 128, 204, 199, 225, 182, 219, 188, 140, 182, 1, 250, 1, 12, 13, 133, 57, 72, 63, 29, 89, 207, 158, 62, 56, 1, 84, 83, 40, 34, 93, 144, 144, 8, 63, 98, 32, 106, 122, 54, 112, 38, 35, 48, 38, 121, 74, 75, 59, 102, 85, 56, 84, 97, 112, 123, 106, 88, 72, 105, 83, 70, 65, 51, 55, 63, 54, 72, 89, 120, 184, 200, 158, 151, 179, 195, 244, 70, 250, 1, 7, 13, 198, 148, 63, 63, 48, 0, 84, 83, 40, 51, 93, 160, 187, 28, 60, 98, 34, 107, 91, 50, 81, 50, 65, 88, 93, 91, 49, 36, 45, 114, 40, 76, 35, 78, 121, 65, 49, 97, 73, 99, 111, 120, 101, 99, 33, 113, 102, 125, 75, 113, 83, 120, 128, 168, 234, 174, 174, 205, 210, 246, 242, 1, 250, 1, 5, 13, 29, 199, 97, 62, 84, 83, 40, 97, 93, 154, 162, 136, 62, 98, 49, 69, 39, 48, 117, 106, 48, 47, 41, 76, 45, 123, 86, 38, 108, 103, 53, 62, 66, 118, 66, 87, 76, 93, 87, 107, 115, 50, 87, 58, 63, 50, 55, 57, 52, 83, 58, 32, 107, 93, 83, 95, 110, 57, 85, 36, 58, 96, 49, 99, 120, 128, 136, 233, 134, 218, 184, 200, 182, 208, 1, 250, 1, 10, 13, 15, 187, 102, 62, 29, 123, 228, 9, 63, 84, 83, 40, 39, 93, 140, 98, 205, 62, 98, 41, 96, 120, 72, 88, 41, 118, 125, 86, 110, 45, 122, 100, 60, 112, 56, 76, 53, 81, 99, 67, 98, 103, 50, 39, 82, 80, 50, 32, 115, 94, 41, 94, 120, 114, 83, 90, 113, 70, 97, 101, 84, 120, 128, 243, 220, 217, 134, 154, 231, 205, 12, 250, 1, 5, 13, 244, 63, 216, 59, 84, 83, 40, 16, 93, 76, 171, 30, 63, 98, 32, 63, 124, 111, 119, 54, 70, 98, 110, 121, 99, 120, 101, 65, 37, 88, 99, 124, 98, 47, 35, 59, 106, 73, 61, 93, 89, 109, 111, 124, 109, 89, 103, 120, 128, 195, 181, 156, 189, 155, 172, 227, 9, 250, 1, 5, 13, 211, 162, 234, 62, 84, 83, 40, 26, 93, 242, 64, 8, 63, 98, 54, 66, 40, 92, 55, 70, 110, 126, 47, 89, 115, 80, 65, 40, 34, 86, 69, 111, 41, 62, 83, 83, 82, 57, 92, 87, 114, 112, 43, 41, 48, 95, 116, 112, 37, 65, 116, 37, 118, 92, 76, 107, 58, 98, 105, 41, 76, 102, 122, 55, 51, 118, 124, 44, 95, 120, 128, 224, 146, 174, 171, 142, 150, 241, 126, 250, 1, 12, 13, 243, 234, 84, 63, 29, 215, 237, 80, 63, 56, 0, 84, 83, 40, 84, 93, 68, 124, 8, 63, 98, 56, 125, 114, 37, 73, 52, 90, 79, 35, 96, 97, 64, 120, 76, 113, 102, 57, 111, 79, 82, 43, 44, 116, 115, 116, 57, 97, 104, 49, 38, 81, 38, 36, 55, 41, 77, 119, 52, 57, 85, 78, 124, 99, 58, 85, 114, 125, 80, 57, 119, 101, 126, 61, 77, 84, 70, 40, 120, 128, 176, 199, 149, 231, 145, 187, 172, 127, 250, 1, 5, 13, 239, 69, 44, 62, 84, 83, 40, 20, 93, 158, 51, 5, 63, 98, 18, 113, 61, 123, 47, 90, 59, 96, 66, 68, 110, 36, 86, 121, 36, 45, 71, 90, 62, 120, 160, 129, 153, 152, 251, 136, 200, 193, 3, 250, 1, 12, 13, 244, 67, 147, 62, 29, 139, 9, 58, 62, 56, 0, 84, 83, 40, 33, 93, 165, 36, 176, 62, 98, 45, 81, 104, 86, 98, 97, 69, 120, 36, 41, 35, 92, 94, 102, 43, 121, 87, 60, 45, 116, 41, 96, 72, 67, 73, 70, 125, 77, 96, 46, 115, 64, 66, 36, 90, 92, 113, 99, 125, 95, 126, 117, 126, 76, 117, 70, 120, 128, 160, 198, 141, 250, 128, 178, 236, 62, 250, 1, 5, 13, 42, 115, 44, 63, 84, 83, 40, 62, 93, 189, 161, 190, 62, 98, 64, 73, 125, 35, 88, 47, 95, 41, 68, 45, 60, 99, 118, 55, 117, 53, 98, 57, 89, 44, 77, 40, 115, 62, 77, 117, 50, 96, 122, 76, 34, 119, 61, 125, 60, 99, 116, 60, 105, 116, 122, 83, 76, 86, 96, 123, 39, 93, 41, 55, 51, 45, 115, 83, 33, 58, 85, 94, 85, 98, 124, 125, 45, 118, 43, 120, 128, 128, 130, 137, 214, 242, 143, 200, 176, 1, 250, 1, 5, 13, 160, 100, 203, 62, 84, 83, 40, 118, 93, 87, 138, 114, 63, 98, 24, 49, 63, 69, 78, 100, 48, 121, 91, 61, 92, 80, 110, 84, 87, 98, 57, 115, 35, 104, 124, 34, 46, 53, 102, 120, 128, 169, 228, 195, 195, 195, 162, 158, 10, 250, 1, 5, 13, 149, 140, 106, 63, 84, 83, 40, 122, 93, 189, 87, 205, 62, 98, 96, 84, 74, 60, 85, 45, 98, 118, 118, 108, 93, 47, 66, 39, 94, 55, 34, 36, 114, 71, 70, 73, 93, 54, 64, 91, 123, 119, 34, 41, 94, 72, 108, 51, 83, 38, 113, 63, 122, 96, 112, 95, 106, 75, 53, 115, 69, 117, 67, 118, 51, 98, 50, 79, 85, 123, 118, 51, 123, 120, 49, 105, 116, 108, 46, 53, 65, 47, 83, 87, 69, 97, 41, 50, 86, 102, 93, 49, 33, 76, 53, 37, 84, 43, 117, 122, 53, 61, 93, 86, 47, 93, 67, 33, 78, 38, 106, 120, 128, 144, 194, 211, 207, 239, 144, 156, 253, 1, 250, 1, 5, 13, 168, 151, 157, 62, 84, 83, 40, 126, 93, 42, 203, 6, 63, 98, 39, 54, 66, 106, 80, 80, 89, 32, 120, 110, 61, 100, 50, 79, 98, 43, 53, 104, 118, 50, 32, 36, 80, 123, 72, 103, 62, 39, 99, 79, 122, 95, 115, 33, 121, 126, 98, 105, 90, 68, 120, 128, 152, 161, 189, 186, 186, 137, 234, 45, 250, 1, 5, 13, 118, 186, 97, 62, 84, 83, 40, 48, 93, 253, 107, 82, 63, 98, 32, 56, 73, 74, 115, 61, 66, 112, 33, 38, 42, 125, 77, 101, 69, 65, 104, 50, 81, 59, 72, 114, 93, 112, 48, 85, 99, 71, 75, 46, 81, 112, 106, 120, 128, 232, 168, 201, 218, 198, 198, 202, 212, 1, 250, 1, 10, 13, 155, 158, 48, 63, 29, 22, 49, 52, 63, 84, 83, 40, 126, 93, 47, 102, 151, 62, 98, 27, 73, 104, 64, 93, 121, 89, 104, 34, 75, 56, 61, 71, 112, 49, 110, 120, 122, 122, 90, 87, 58, 62, 89, 121, 69, 114, 83, 120, 128, 176, 232, 159, 132, 250, 194, 254, 161, 1, 250, 1, 5, 13, 221, 144, 78, 62, 84, 83, 40, 104, 93, 5, 35, 31, 61, 98, 42, 97, 66, 76, 103, 103, 122, 105, 120, 35, 39, 45, 41, 74, 42, 35, 61, 63, 33, 113, 99, 101, 40, 70, 33, 43, 47, 69, 56, 39, 37, 79, 110, 92, 53, 90, 37, 67, 72, 38, 124, 48, 34, 120, 128, 168, 146, 156, 233, 162, 146, 225, 201, 1, 250, 1, 12, 13, 208, 120, 1, 63, 29, 239, 89, 4, 62, 56, 0, 84, 83, 40, 19, 93, 66, 153, 85, 63, 98, 52, 65, 85, 52, 55, 64, 43, 60, 89, 122, 74, 92, 88, 84, 81, 113, 125, 86, 62, 76, 53, 78, 125, 120, 117, 121, 115, 82, 99, 80, 117, 116, 118, 33, 85, 117, 80, 112, 55, 78, 80, 119, 33, 42, 120, 107, 77, 72, 94, 48, 88, 120, 109, 120, 128, 208, 148, 202, 247, 207, 164, 209, 94, 250, 1, 10, 13, 123, 26, 108, 63, 29, 203, 38, 176, 62, 84, 83, 40, 47, 93, 13, 215, 33, 63, 98, 51, 61, 61, 75, 87, 88, 40, 36, 84, 100, 86, 125, 90, 64, 45, 63, 110, 123, 61, 77, 115, 126, 41, 75, 75, 114, 82, 119, 124, 39, 48, 40, 53, 82, 115, 83, 121, 34, 119, 62, 119, 37, 67, 39, 118, 74, 36, 111, 75, 88, 125, 106, 120, 128, 184, 255, 232, 185, 223, 251, 199, 206, 1, 250, 1, 12, 13, 4, 142, 94, 63, 29, 37, 144, 255, 62, 56, 1, 84, 83, 40, 25, 93, 80, 161, 89, 63, 98, 27, 32, 100, 37, 48, 38, 77, 83, 77, 104, 40, 75, 89, 68, 108, 35, 125, 84, 109, 91, 34, 84, 33, 110, 98, 76, 67, 41, 120, 128, 132, 243, 174, 230, 145, 152, 247, 178, 1, 250, 1, 10, 13, 248, 128, 245, 62, 29, 187, 80, 180, 62, 84, 83, 40, 3, 93, 168, 224, 125, 62, 98, 38, 63, 40, 34, 51, 56, 103, 125, 117, 83, 72, 96, 122, 68, 113, 52, 48, 102, 91, 62, 96, 32, 49, 60, 125, 117, 66, 99, 98, 67, 45, 32, 71, 38, 51, 57, 60, 105, 110, 120, 128, 184, 175, 139, 164, 228, 251, 218, 92, 250, 1, 5, 13, 196, 243, 77, 63, 84, 83, 40, 105, 93, 20, 191, 58, 63, 98, 60, 77, 44, 63, 114, 62, 90, 47, 119, 93, 112, 35, 64, 54, 46, 107, 35, 60, 117, 35, 59, 81, 69, 72, 57, 116, 48, 87, 119, 70, 119, 118, 80, 112, 58, 98, 48, 94, 34, 36, 41, 82, 75, 78, 46, 67, 100, 124, 42, 79, 101, 81, 110, 104, 83, 52, 40, 99, 38, 125, 45, 120, 128, 188, 194, 176, 208, 223, 147, 132, 131, 1, 250, 1, 7, 13, 254, 8, 125, 62, 56, 1, 84, 83, 40, 93, 93, 94, 131, 113, 63, 98, 32, 81, 79, 122, 75, 91, 68, 58, 113, 121, 104, 37, 118, 57, 116, 48, 51, 77, 71, 95, 69, 39, 102, 60, 38, 90, 75, 87, 36, 117, 39, 58, 121, 120, 128, 168, 209, 146, 140, 176, 138, 149, 225, 1, 250, 1, 10, 13, 254, 249, 85, 62, 29, 75, 86, 90, 63, 84, 83, 40, 27, 93, 79, 136, 80, 60, 98, 26, 94, 115, 64, 55, 124, 110, 106, 46, 48, 73, 48, 108, 121, 83, 110, 112, 64, 113, 105, 50, 116, 111, 47, 107, 53, 122, 120, 128, 160, 143, 193, 187, 128, 250, 136, 111, 250, 1, 10, 13, 26, 176, 243, 62, 29, 73, 99, 235, 61, 84, 83, 40, 18, 93, 253, 243, 118, 61, 98, 62, 35, 122, 50, 110, 83, 63, 45, 42, 119, 81, 118, 73, 34, 71, 54, 123, 82, 74, 41, 71, 65, 39, 34, 43, 109, 99, 83, 33, 33, 123, 61, 35, 35, 67, 44, 112, 103, 100, 59, 80, 50, 102, 113, 95, 124, 70, 44, 68, 125, 126, 64, 34, 33, 100, 99, 123, 120, 38, 32, 110, 106, 43, 120, 128, 254, 176, 202, 241, 239, 135, 211, 140, 1, 250, 1, 5, 13, 110, 64, 118, 63, 84, 83, 40, 27, 93, 69, 160, 95, 63, 98, 24, 70, 93, 59, 68, 51, 108, 47, 87, 53, 89, 53, 65, 46, 70, 86, 47, 35, 34, 90, 58, 34, 61, 95, 47, 120, 128, 208, 175, 140, 253, 251, 252, 226, 117, 250, 1, 12, 13, 89, 240, 46, 63, 29, 164, 147, 54, 63, 56, 0, 200, 4, 93, 84, 83, 40, 8, 93, 180, 44, 37, 63, 98, 36, 116, 75, 41, 32, 78, 40, 88, 106, 82, 114, 72, 79, 41, 102, 87, 119, 89, 55, 90, 40, 39, 64, 120, 112, 41, 125, 43, 76, 81, 40, 97, 112, 47, 123, 63, 116, 120, 128, 167, 195, 220, 240, 185, 154, 228, 133, 1, 250, 1, 10, 13, 113, 132, 206, 62, 29, 235, 190, 184, 61, 84, 83, 40, 9, 93, 76, 235, 223, 62, 98, 44, 54, 40, 71, 88, 108, 85, 72, 63, 104, 42, 53, 43, 124, 86, 84, 82, 56, 118, 80, 123, 44, 56, 74, 48, 86, 63, 45, 71, 97, 115, 51, 46, 82, 94, 111, 56, 80, 55, 59, 71, 98, 44, 104, 125, 120, 128, 184, 214, 186, 199, 207, 179, 213, 187, 1, 250, 1, 5, 13, 202, 180, 58, 63, 84, 83, 40, 23, 93, 176, 226, 199, 62, 98, 36, 105, 66, 107, 79, 87, 42, 61, 125, 93, 55, 33, 76, 71, 32, 93, 116, 118, 38, 87, 62, 101, 60, 33, 32, 90, 40, 56, 126, 78, 75, 99, 112, 46, 103, 92, 63, 120, 128, 145, 183, 171, 193, 136, 185, 219, 138, 1, 250, 1, 5, 13, 213, 230, 51, 63, 84, 83, 40, 72, 93, 44, 95, 217, 62, 98, 27, 64, 112, 90, 57, 53, 109, 32, 98, 78, 114, 38, 69, 45, 113, 94, 77, 64, 106, 115, 79, 112, 61, 78, 49, 83, 48, 62, 120, 128, 128, 223, 206, 234, 231, 247, 245, 212, 1, 250, 1, 10, 13, 41, 237, 187, 62, 29, 31, 13, 161, 62, 84, 83, 40, 102, 93, 75, 103, 83, 62, 98, 30, 79, 47, 125, 116, 96, 103, 105, 108, 39, 85, 80, 91, 68, 61, 98, 59, 41, 47, 125, 60, 110, 39, 86, 34, 66, 73, 101, 37, 78, 64, 120, 128, 240, 155, 159, 130, 128, 223, 249, 42, 250, 1, 10, 13, 65, 200, 49, 62, 29, 249, 44, 137, 61, 84, 83, 40, 110, 93, 4, 2, 102, 63, 98, 59, 125, 115, 105, 107, 88, 33, 39, 71, 59, 108, 114, 107, 53, 76, 35, 85, 51, 63, 80, 68, 72, 87, 122, 81, 55, 34, 100, 61, 102, 54, 63, 84, 81, 71, 100, 70, 63, 66, 69, 59, 102, 94, 59, 52, 78, 92, 79, 88, 75, 105, 43, 112, 85, 77, 77, 69, 120, 55, 84, 120, 128, 176, 221, 242, 233, 229, 234, 149, 73, 250, 1, 5, 13, 172, 195, 151, 62, 84, 83, 40, 98, 93, 243, 252, 42, 63, 98, 48, 36, 77, 61, 57, 109, 102, 91, 54, 112, 120, 53, 92, 104, 60, 101, 34, 89, 81, 44, 112, 124, 42, 78, 126, 35, 121, 62, 76, 39, 108, 110, 125, 124, 126, 54, 102, 49, 67, 97, 112, 110, 83, 57, 118, 63, 111, 99, 41, 120, 128, 176, 187, 174, 252, 141, 219, 243, 26, 250, 1, 5, 13, 206, 65, 95, 62, 84, 83, 40, 119, 93, 68, 105, 55, 61, 98, 60, 48, 119, 98, 121, 125, 62, 53, 115, 72, 47, 46, 36, 42, 54, 95, 105, 37, 125, 112, 54, 111, 58, 33, 72, 112, 87, 94, 50, 53, 53, 57, 114, 114, 106, 109, 36, 60, 60, 104, 114, 45, 108, 71, 95, 68, 53, 107, 41, 48, 121, 35, 52, 67, 98, 51, 116, 118, 57, 41, 70, 120, 128, 136, 205, 188, 154, 218, 232, 228, 211, 1, 250, 1, 5, 13, 173, 253, 250, 60, 84, 83, 40, 82, 93, 41, 52, 76, 62, 98, 89, 116, 59, 48, 63, 71, 91, 76, 104, 53, 125, 41, 34, 114, 64, 36, 90, 106, 85, 34, 58, 49, 36, 78, 48, 86, 120, 44, 34, 51, 65, 52, 42, 47, 52, 106, 41, 37, 76, 96, 83, 76, 58, 126, 68, 88, 49, 34, 85, 53, 77, 91, 40, 32, 67, 33, 112, 107, 32, 104, 78, 78, 74, 84, 114, 105, 126, 114, 93, 85, 121, 85, 61, 115, 78, 109, 117, 36, 41, 86, 69, 118, 86, 108, 100, 101, 43, 42, 107, 51, 120, 128, 248, 255, 145, 170, 189, 255, 143, 120, 250, 1, 5, 13, 8, 203, 154, 62, 84, 83, 40, 6, 93, 227, 56, 53, 63, 98, 41, 50, 37, 34, 100, 43, 90, 89, 61, 67, 32, 58, 119, 61, 52, 80, 84, 42, 107, 97, 72, 66, 86, 119, 92, 111, 45, 93, 116, 39, 74, 91, 93, 80, 89, 96, 73, 106, 48, 120, 78, 124, 120, 128, 128, 228, 129, 235, 253, 159, 142, 11, 250, 1, 10, 13, 108, 236, 8, 63, 29, 166, 11, 17, 63, 84, 83, 40, 66, 93, 117, 62, 76, 63, 98, 47, 71, 118, 88, 54, 40, 45, 90, 90, 64, 91, 44, 68, 116, 124, 123, 99, 54, 120, 68, 92, 71, 98, 82, 39, 105, 121, 114, 51, 75, 59, 35, 65, 42, 35, 101, 102, 60, 112, 65, 77, 35, 116, 57, 37, 60, 69, 59, 120, 128, 160, 130, 231, 251, 239, 145, 184, 121, 250, 1, 5, 13, 36, 92, 5, 63, 84, 83, 40, 33, 93, 117, 102, 88, 63, 98, 54, 89, 49, 116, 68, 99, 67, 80, 75, 46, 58, 70, 47, 37, 87, 106, 57, 112, 55, 52, 71, 68, 87, 117, 89, 81, 73, 76, 106, 67, 93, 119, 96, 50, 73, 73, 47, 52, 94, 33, 67, 106, 68, 51, 50, 91, 101, 52, 77, 81, 43, 73, 98, 60, 112, 120, 128, 188, 155, 159, 182, 193, 219, 249, 58, 250, 1, 5, 13, 77, 123, 174, 60, 84, 83, 40, 36, 93, 111, 106, 149, 62, 98, 55, 113, 58, 118, 101, 40, 79, 66, 100, 124, 90, 45, 90, 37, 50, 54, 112, 91, 32, 67, 98, 124, 107, 53, 126, 57, 55, 52, 52, 68, 64, 125, 71, 115, 120, 107, 101, 75, 37, 60, 99, 111, 117, 103, 89, 63, 117, 38, 54, 75, 74, 52, 74, 93, 87, 62, 120, 128, 140, 166, 133, 193, 221, 176, 170, 136, 1, 250, 1, 5, 13, 242, 127, 98, 61, 84, 83, 40, 115, 93, 222, 250, 235, 62, 98, 35, 111, 58, 45, 64, 91, 91, 101, 101, 43, 70, 79, 68, 86, 99, 95, 113, 38, 35, 91, 95, 66, 48, 125, 104, 120, 44, 82, 105, 60, 90, 101, 96, 84, 88, 75, 120, 128, 220, 162, 150, 250, 221, 149, 178, 55, 250, 1, 5, 13, 48, 120, 50, 63, 84, 83, 40, 71, 93, 178, 218, 8, 62, 98, 30, 124, 88, 48, 121, 110, 122, 38, 93, 102, 125, 100, 55, 34, 73, 55, 41, 95, 60, 68, 70, 78, 40, 123, 73, 80, 96, 110, 111, 124, 55, 120, 128, 140, 136, 232, 147, 221, 192, 192, 158, 1, 250, 1, 5, 13, 51, 217, 41, 62, 84, 83, 40, 64, 93, 189, 228, 103, 63, 98, 26, 93, 38, 50, 53, 46, 108, 114, 77, 106, 107, 86, 66, 98, 55, 61, 79, 107, 44, 62, 46, 92, 115, 92, 101, 73, 46, 120, 128, 176, 138, 216, 147, 250, 210, 192, 17, 250, 1, 10, 13, 86, 62, 106, 62, 29, 237, 39, 44, 63, 84, 83, 40, 63, 93, 66, 226, 61, 63, 98, 34, 84, 101, 43, 106, 48, 118, 73, 46, 86, 83, 32, 60, 48, 113, 45, 125, 86, 82, 77, 75, 42, 112, 66, 57, 104, 72, 75, 107, 32, 96, 92, 109, 59, 36, 120, 128, 148, 145, 170, 192, 159, 137, 209, 130, 1, 250, 1, 5, 13, 13, 139, 34, 63, 84, 83, 40, 73, 93, 74, 36, 237, 62, 98, 48, 44, 88, 65, 125, 102, 89, 91, 86, 76, 114, 59, 48, 84, 98, 50, 35, 92, 99, 67, 113, 33, 103, 74, 92, 45, 117, 118, 50, 33, 43, 111, 80, 69, 42, 70, 115, 41, 44, 42, 103, 92, 50, 122, 87, 80, 111, 43, 121, 120, 128, 184, 241, 252, 214, 209, 139, 231, 78, 250, 1, 5, 13, 206, 194, 129, 62, 84, 83, 40, 52, 93, 95, 1, 161, 62, 98, 28, 56, 101, 74, 67, 45, 99, 111, 112, 98, 72, 85, 65, 35, 105, 105, 73, 60, 62, 120, 80, 88, 91, 52, 110, 107, 113, 44, 61, 120, 128, 200, 219, 166, 190, 216, 220, 181, 99, 250, 1, 10, 13, 47, 13, 120, 63, 29, 179, 10, 22, 63, 84, 83, 40, 96, 93, 128, 101, 52, 63, 98, 67, 81, 55, 95, 95, 34, 101, 69, 59, 57, 36, 51, 91, 89, 84, 101, 37, 97, 92, 59, 62, 118, 99, 92, 80, 91, 86, 58, 87, 81, 38, 101, 112, 108, 93, 80, 81, 41, 104, 58, 87, 83, 52, 63, 86, 33, 50, 50, 61, 69, 56, 40, 63, 59, 73, 107, 108, 90, 47, 36, 74, 75, 108, 105, 50, 62, 66, 110, 120, 128, 184, 223, 181, 236, 222, 251, 173, 122, 250, 1, 5, 13, 241, 52, 49, 61, 84, 83, 40, 26, 93, 3, 74, 117, 63, 98, 28, 119, 66, 99, 105, 98, 68, 37, 79, 72, 68, 124, 49, 57, 125, 70, 84, 66, 112, 98, 118, 121, 100, 110, 44, 101, 74, 44, 56, 120, 128, 136, 236, 175, 170, 173, 224, 254, 83, 250, 1, 12, 13, 172, 153, 189, 62, 29, 92, 22, 118, 62, 56, 0, 84, 83, 40, 23, 93, 196, 128, 151, 62, 98, 47, 47, 124, 87, 95, 41, 72, 84, 95, 90, 38, 77, 91, 79, 52, 118, 108, 76, 41, 64, 60, 33, 50, 82, 87, 35, 55, 55, 108, 112, 37, 45, 98, 126, 124, 109, 73, 124, 98, 103, 57, 66, 58, 42, 104, 93, 42, 121, 120, 128, 216, 172, 142, 211, 173, 229, 242, 117, 250, 1, 5, 13, 0, 22, 175, 62, 200, 4, 107, 84, 83, 40, 115, 93, 20, 138, 12, 62, 98, 54, 119, 116, 58, 123, 73, 126, 91, 112, 49, 102, 110, 85, 119, 106, 92, 82, 69, 77, 111, 104, 65, 39, 121, 102, 40, 104, 120, 120, 61, 62, 76, 126, 46, 32, 105, 42, 97, 113, 126, 124, 38, 118, 40, 90, 75, 83, 112, 114, 76, 71, 81, 113, 33, 45, 120, 128, 200, 154, 207, 156, 173, 212, 249, 228, 1, 250, 1, 10, 13, 5, 79, 89, 63, 29, 196, 46, 114, 63, 84, 83, 40, 68, 93, 235, 245, 94, 63, 98, 58, 95, 37, 97, 83, 113, 58, 110, 70, 119, 32, 81, 111, 83, 78, 113, 98, 73, 125, 63, 59, 83, 119, 38, 75, 116, 108, 89, 125, 33, 52, 120, 47, 46, 125, 63, 118, 67, 67, 53, 63, 91, 45, 119, 114, 122, 87, 124, 67, 47, 73, 65, 113, 90, 55, 62, 102, 126, 53, 120, 128, 248, 131, 168, 234, 187, 159, 192, 210, 1, 250, 1, 5, 13, 197, 29, 96, 61, 84, 83, 40, 86, 93, 6, 188, 88, 63, 98, 54, 69, 98, 38, 66, 96, 85, 46, 121, 62, 38, 103, 126, 94, 70, 32, 51, 80, 61, 110, 53, 109, 86, 114, 38, 83, 118, 94, 87, 119, 45, 100, 48, 93, 106, 102, 53, 107, 87, 117, 71, 52, 52, 43, 58, 42, 90, 87, 119, 102, 107, 100, 63, 53, 74, 120, 224, 157, 209, 167, 216, 237, 137, 189, 4, 250, 1, 12, 13, 118, 241, 82, 63, 29, 154, 206, 85, 63, 56, 0, 200, 4, 103, 84, 83, 40, 97, 93, 219, 129, 103, 63, 98, 33, 85, 34, 48, 64, 87, 64, 115, 95, 106, 70, 119, 71, 70, 32, 88, 75, 88, 123, 119, 62, 102, 112, 43, 72, 69, 121, 51, 103, 119, 68, 107, 105, 44, 120, 128, 192, 189, 222, 148, 130, 236, 243, 65, 250, 1, 12, 13, 216, 134, 39, 63, 29, 6, 0, 73, 62, 56, 1, 84, 83, 40, 118, 93, 144, 144, 6, 63, 98, 50, 57, 99, 55, 122, 69, 107, 119, 109, 73, 72, 66, 55, 35, 116, 74, 47, 99, 117, 103, 122, 92, 45, 43, 102, 69, 90, 46, 58, 117, 65, 70, 80, 94, 73, 93, 90, 78, 116, 101, 91, 77, 43, 104, 62, 84, 45, 103, 115, 97, 65, 120, 128, 248, 223, 132, 239, 194, 255, 165, 248, 1, 250, 1, 10, 13, 251, 45, 151, 62, 29, 180, 116, 68, 62, 84, 83, 40, 124, 93, 19, 50, 100, 63, 98, 56, 44, 87, 79, 85, 105, 93, 92, 119, 39, 34, 113, 87, 89, 54, 111, 95, 110, 48, 43, 76, 80, 68, 108, 50, 56, 113, 57, 88, 84, 71, 42, 62, 96, 83, 81, 34, 125, 63, 122, 125, 111, 51, 96, 60, 98, 84, 45, 92, 113, 96, 43, 43, 38, 80, 68, 102, 120, 128, 176, 145, 193, 220, 236, 138, 137, 228, 1, 250, 1, 5, 13, 219, 45, 157, 62, 84, 83, 40, 39, 93, 195, 146, 106, 63, 98, 65, 67, 36, 67, 95, 119, 82, 118, 37, 100, 108, 97, 78, 52, 44, 92, 60, 98, 79, 79, 98, 100, 92, 102, 115, 60, 125, 55, 47, 47, 105, 55, 96, 34, 35, 90, 107, 111, 32, 68, 47, 92, 40, 119, 36, 125, 91, 118, 121, 115, 39, 35, 58, 108, 89, 50, 102, 61, 78, 67, 120, 58, 103, 117, 121, 84, 120, 192, 218, 197, 147, 240, 211, 173, 156, 129, 1, 250, 1, 10, 13, 254, 204, 240, 62, 29, 245, 226, 56, 62, 84, 83, 40, 66, 93, 195, 215, 87, 63, 98, 47, 76, 98, 42, 63, 38, 92, 100, 97, 116, 95, 39, 61, 59, 39, 102, 123, 114, 71, 111, 115, 77, 64, 92, 75, 116, 116, 49, 124, 79, 124, 46, 101, 71, 35, 89, 64, 48, 76, 83, 85, 34, 90, 89, 98, 113, 124, 75, 120, 128, 232, 182, 138, 189, 214, 182, 211, 232, 1, 250, 1, 10, 13, 80, 82, 79, 62, 29, 139, 94, 22, 63, 84, 83, 40, 17, 93, 78, 178, 97, 61, 98, 53, 64, 93, 66, 44, 37, 94, 74, 48, 74, 102, 50, 118, 80, 64, 116, 56, 76, 69, 107, 69, 114, 57, 112, 114, 101, 121, 88, 118, 72, 66, 105, 118, 111, 41, 68, 105, 95, 77, 59, 80, 34, 66, 43, 59, 72, 97, 49, 80, 39, 51, 64, 108, 107, 120, 128, 240, 246, 206, 181, 217, 182, 247, 94, 250, 1, 5, 13, 121, 26, 58, 62, 84, 83, 40, 9, 93, 81, 71, 75, 63, 98, 50, 79, 69, 43, 38, 82, 103, 39, 123, 58, 39, 71, 123, 42, 87, 126, 42, 59, 67, 80, 46, 85, 73, 36, 103, 39, 111, 53, 34, 123, 43, 41, 119, 61, 125, 48, 40, 48, 74, 79, 90, 35, 62, 45, 90, 105, 84, 124, 91, 65, 98, 120, 128, 128, 159, 199, 200, 140, 248, 185, 65, 250, 1, 12, 13, 246, 218, 188, 62, 29, 73, 134, 44, 63, 56, 1, 84, 83, 40, 28, 93, 36, 214, 106, 61, 98, 85, 64, 66, 125, 98, 82, 37, 126, 47, 124, 79, 93, 44, 70, 117, 121, 111, 115, 116, 42, 55, 59, 72, 125, 82, 113, 89, 95, 57, 89, 101, 55, 68, 103, 43, 102, 108, 75, 107, 40, 125, 63, 125, 92, 58, 117, 111, 52, 75, 104, 95, 78, 106, 109, 125, 104, 119, 67, 74, 111, 119, 69, 101, 84, 55, 55, 56, 68, 59, 47, 44, 67, 39, 108, 44, 118, 61, 107, 99, 92, 34, 68, 51, 79, 121, 54, 120, 128, 196, 203, 220, 188, 158, 220, 228, 59, 250, 1, 5, 13, 223, 240, 19, 63, 84, 83, 40, 97, 93, 178, 85, 182, 62, 98, 43, 110, 72, 32, 123, 47, 87, 89, 72, 69, 34, 92, 75, 120, 59, 92, 59, 71, 125, 96, 38, 74, 43, 95, 109, 108, 83, 49, 53, 90, 32, 106, 96, 89, 120, 64, 98, 67, 42, 92, 83, 61, 116, 69, 120, 128, 152, 204, 223, 162, 194, 225, 252, 87, 250, 1, 5, 13, 16, 7, 127, 63, 84, 83, 40, 72, 93, 58, 53, 233, 62, 98, 76, 119, 114, 94, 109, 77, 117, 98, 117, 98, 104, 50, 46, 91, 70, 67, 109, 68, 54, 122, 112, 32, 122, 120, 119, 60, 64, 45, 103, 85, 101, 125, 110, 54, 40, 57, 66, 123, 50, 60, 106, 118, 34, 92, 121, 48, 123, 33, 45, 121, 39, 33, 74, 36, 100, 75, 123, 121, 101, 80, 45, 104, 122, 64, 124, 105, 67, 119, 83, 45, 33, 112, 50, 120, 47, 121, 124, 120, 128, 160, 154, 197, 166, 250, 209, 169, 41, 250, 1, 5, 13, 174, 39, 124, 63, 84, 83, 40, 94, 93, 106, 192, 175, 62, 98, 43, 63, 126, 109, 78, 100, 83, 106, 80, 91, 60, 72, 53, 96, 47, 34, 123, 96, 95, 48, 108, 36, 77, 32, 120, 53, 109, 80, 115, 106, 77, 93, 122, 126, 48, 109, 104, 44, 113, 55, 54, 87, 70, 118, 120, 128, 144, 214, 170, 189, 232, 176, 213, 234, 1, 250, 1, 10, 13, 190, 79, 23, 63, 29, 219, 26, 32, 63, 84, 83, 40, 65, 93, 82, 82, 69, 63, 98, 79, 45, 124, 59, 93, 109, 120, 60, 112, 126, 116, 57, 117, 34, 117, 100, 46, 94, 76, 54, 80, 65, 57, 110, 110, 71, 120, 52, 92, 85, 47, 63, 88, 60, 102, 102, 108, 49, 126, 45, 37, 114, 123, 104, 55, 87, 65, 52, 97, 96, 103, 48, 43, 68, 32, 72, 114, 46, 76, 53, 115, 99, 94, 59, 110, 84, 95, 89, 58, 47, 118, 124, 95, 63, 48, 92, 68, 79, 86, 54, 120, 128, 196, 202, 175, 233, 157, 212, 252, 9, 250, 1, 5, 13, 146, 144, 55, 63, 84, 83, 40, 67, 93, 229, 216, 115, 63, 98, 55, 109, 126, 52, 51, 59, 62, 114, 94, 100, 104, 56, 65, 51, 96, 120, 98, 119, 103, 120, 81, 105, 106, 80, 107, 52, 67, 35, 66, 86, 53, 47, 47, 48, 99, 77, 111, 63, 75, 61, 123, 59, 56, 55, 117, 39, 110, 72, 98, 86, 115, 62, 62, 106, 32, 49, 120, 128, 183, 160, 178, 192, 183, 131, 146, 131, 1, 250, 1, 5, 13, 243, 55, 249, 62, 84, 83, 40, 53, 93, 143, 15, 127, 63, 98, 24, 119, 58, 79, 39, 79, 89, 40, 48, 79, 51, 41, 66, 75, 73, 124, 54, 80, 82, 90, 99, 68, 121, 63, 107, 120, 128, 192, 165, 155, 171, 156, 172, 218, 217, 1, 250, 1, 10, 13, 86, 199, 102, 63, 29, 224, 251, 85, 63, 84, 83, 40, 48, 93, 38, 164, 47, 62, 98, 63, 82, 74, 64, 118, 75, 68, 96, 106, 49, 103, 59, 126, 94, 120, 79, 76, 80, 113, 115, 109, 105, 95, 78, 115, 99, 90, 125, 122, 99, 67, 88, 105, 98, 126, 123, 103, 103, 75, 126, 37, 59, 74, 63, 106, 62, 100, 100, 32, 111, 63, 50, 35, 122, 86, 69, 113, 123, 76, 50, 112, 70, 101, 39, 120, 128, 216, 202, 156, 207, 220, 213, 228, 102, 250, 1, 5, 13, 207, 250, 34, 62, 84, 83, 40, 65, 93, 7, 33, 147, 62, 98, 72, 94, 123, 102, 99, 37, 113, 110, 81, 63, 63, 99, 84, 125, 116, 124, 42, 67, 49, 84, 109, 44, 89, 42, 107, 59, 56, 46, 94, 85, 66, 82, 91, 108, 73, 37, 36, 40, 90, 44, 49, 44, 36, 38, 81, 55, 119, 51, 122, 73, 90, 99, 90, 89, 98, 46, 37, 113, 121, 72, 107, 99, 48, 123, 124, 108, 40, 103, 84, 111, 119, 34, 104, 120, 128, 136, 215, 150, 158, 190, 184, 181, 7, 250, 1, 5, 13, 170, 159, 190, 62, 84, 83, 40, 87, 93, 251, 104, 175, 61, 98, 61, 82, 87, 83, 67, 36, 50, 52, 121, 94, 119, 33, 42, 58, 126, 50, 45, 50, 64, 76, 122, 40, 41, 100, 47, 47, 94, 43, 80, 88, 121, 85, 54, 33, 38, 82, 57, 70, 37, 103, 81, 122, 33, 61, 116, 38, 93, 57, 111, 101, 115, 86, 99, 117, 101, 126, 73, 113, 68, 51, 69, 38, 120, 128, 208, 168, 181, 251, 141, 197, 170, 219, 1, 250, 1, 5, 13, 136, 147, 179, 62, 84, 83, 40, 89, 93, 94, 72, 181, 62, 98, 49, 106, 40, 52, 76, 119, 102, 44, 87, 122, 32, 38, 106, 111, 40, 81, 68, 59, 105, 99, 67, 113, 63, 58, 38, 41, 71, 34, 113, 66, 74, 54, 95, 89, 82, 59, 84, 37, 67, 109, 45, 73, 43, 122, 100, 120, 93, 34, 59, 96, 120, 192, 185, 163, 148, 160, 204, 155, 162, 129, 1, 250, 1, 5, 13, 193, 248, 71, 63, 84, 83, 40, 119, 93, 189, 135, 35, 63, 98, 61, 63, 79, 74, 109, 45, 67, 80, 100, 58, 53, 79, 104, 69, 49, 61, 108, 124, 62, 118, 122, 86, 121, 101, 67, 84, 44, 74, 68, 101, 48, 65, 95, 60, 34, 58, 34, 111, 101, 118, 32, 61, 71, 47, 116, 75, 122, 82, 76, 100, 77, 99, 97, 114, 126, 38, 68, 105, 38, 56, 32, 119, 120, 128, 215, 156, 158, 177, 186, 229, 241, 15, 250, 1, 5, 13, 226, 174, 123, 63, 84, 83, 40, 12, 93, 112, 203, 97, 63, 98, 32, 110, 76, 67, 118, 58, 124, 54, 70, 118, 92, 46, 106, 111, 119, 88, 89, 124, 95, 56, 76, 94, 108, 60, 123, 116, 56, 104, 77, 118, 39, 50, 73, 120, 192, 185, 239, 255, 192, 203, 251, 254, 135, 1, 250, 1, 5, 13, 22, 181, 23, 60, 84, 83, 40, 79, 93, 192, 133, 247, 62, 98, 45, 47, 85, 73, 80, 76, 58, 122, 65, 118, 89, 120, 46, 94, 70, 121, 74, 100, 91, 53, 34, 48, 70, 33, 33, 51, 104, 79, 111, 73, 100, 100, 110, 60, 43, 73, 71, 54, 102, 126, 67, 112, 122, 37, 58, 63, 120, 128, 248, 142, 194, 187, 151, 247, 144, 79, 250, 1, 5, 13, 219, 204, 81, 63, 84, 83, 40, 63, 93, 28, 200, 12, 62, 98, 31, 103, 99, 72, 106, 88, 61, 103, 83, 71, 61, 99, 106, 43, 118, 50, 116, 41, 112, 83, 123, 82, 52, 125, 92, 112, 48, 53, 65, 102, 97, 88, 120, 128, 248, 193, 165, 245, 181, 143, 172, 120, 250, 1, 7, 13, 31, 220, 126, 63, 32, 1, 84, 83, 40, 87, 93, 31, 78, 39, 60, 98, 24, 59, 36, 98, 108, 96, 114, 109, 73, 59, 88, 101, 35, 114, 68, 53, 104, 58, 83, 89, 83, 101, 107, 121, 72, 120, 128, 202, 228, 170, 188, 206, 164, 214, 12, 250, 1, 10, 13, 66, 178, 207, 62, 29, 242, 255, 76, 63, 84, 83, 40, 92, 93, 175, 53, 55, 63, 98, 44, 105, 107, 72, 53, 49, 89, 37, 45, 102, 58, 94, 69, 83, 65, 56, 74, 49, 78, 65, 76, 110, 94, 75, 40, 46, 58, 78, 41, 58, 99, 58, 38, 40, 100, 80, 108, 61, 109, 96, 106, 48, 91, 83, 56, 120, 128, 136, 201, 228, 139, 204, 200, 164, 122, 250, 1, 5, 13, 233, 192, 15, 62, 84, 83, 40, 24, 93, 254, 37, 228, 62, 98, 69, 97, 125, 117, 119, 74, 57, 116, 42, 63, 64, 38, 117, 42, 122, 114, 34, 32, 87, 61, 109, 111, 74, 44, 67, 108, 86, 60, 50, 43, 51, 44, 32, 40, 36, 71, 60, 108, 66, 91, 109, 110, 70, 76, 123, 102, 106, 95, 52, 104, 80, 56, 67, 110, 67, 89, 54, 112, 82, 42, 114, 124, 98, 125, 44, 51, 37, 109, 38, 83, 120, 128, 248, 166, 136, 137, 197, 183, 194, 200, 1, 250, 1, 5, 13, 116, 182, 98, 62, 84, 83, 40, 81, 93, 156, 166, 116, 63, 98, 72, 78, 125, 73, 125, 48, 92, 34, 118, 39, 73, 89, 122, 104, 49, 99, 73, 48, 75, 58, 55, 104, 112, 44, 71, 64, 103, 96, 124, 88, 95, 50, 59, 89, 71, 63, 69, 48, 56, 96, 116, 40, 122, 116, 56, 67, 49, 74, 115, 41, 92, 67, 42, 121, 69, 50, 93, 112, 34, 92, 71, 123, 36, 62, 71, 55, 62, 64, 64, 112, 61, 57, 119, 120, 128, 168, 244, 218, 207, 175, 162, 215, 99, 250, 1, 5, 13, 139, 131, 197, 62, 84, 83, 40, 20, 93, 81, 141, 78, 63, 98, 76, 123, 115, 35, 46, 60, 107, 114, 123, 60, 39, 64, 52, 53, 97, 84, 45, 90, 56, 120, 35, 92, 76, 33, 37, 112, 42, 34, 106, 66, 75, 64, 85, 54, 68, 96, 124, 126, 78, 42, 47, 49, 65, 43, 47, 124, 43, 43, 47, 104, 43, 60, 80, 75, 43, 48, 78, 114, 124, 61, 50, 105, 39, 88, 112, 102, 106, 124, 111, 33, 87, 46, 44, 46, 104, 113, 58, 120, 128, 184, 137, 189, 241, 194, 203, 232, 45, 250, 1, 5, 13, 100, 246, 88, 63, 84, 83, 40, 10, 93, 87, 249, 55, 63, 98, 24, 125, 114, 34, 54, 46, 110, 41, 43, 52, 49, 41, 33, 48, 118, 69, 41, 104, 58, 72, 49, 46, 59, 46, 49, 120, 128, 144, 209, 198, 207, 242, 136, 181, 252, 1, 250, 1, 10, 13, 239, 195, 50, 62, 29, 253, 234, 184, 62, 84, 83, 40, 88, 93, 197, 224, 133, 62, 98, 44, 116, 45, 33, 116, 88, 51, 117, 37, 65, 97, 119, 97, 113, 90, 110, 77, 44, 122, 54, 66, 103, 81, 39, 72, 117, 85, 98, 100, 112, 57, 124, 75, 70, 113, 63, 36, 40, 44, 87, 98, 78, 36, 70, 87, 120, 128, 240, 180, 134, 248, 245, 166, 179, 192, 1, 250, 1, 10, 13, 102, 168, 255, 62, 29, 75, 92, 151, 62, 84, 83, 40, 85, 93, 105, 140, 165, 62, 98, 48, 98, 111, 53, 43, 63, 79, 67, 37, 88, 125, 34, 80, 49, 51, 40, 100, 75, 58, 126, 59, 106, 68, 32, 66, 82, 114, 99, 42, 79, 119, 70, 57, 34, 69, 45, 72, 103, 64, 39, 65, 122, 125, 79, 45, 85, 50, 61, 111, 120, 128, 184, 239, 136, 245, 197, 251, 198, 168, 1, 250, 1, 5, 13, 176, 180, 92, 63, 200, 4, 5, 84, 83, 40, 27, 93, 123, 79, 152, 62, 98, 28, 68, 83, 62, 110, 113, 87, 75, 107, 56, 85, 95, 87, 103, 77, 107, 38, 94, 123, 43, 51, 93, 63, 107, 116, 113, 108, 64, 85, 120, 128, 232, 216, 132, 158, 210, 198, 165, 240, 1, 250, 1, 5, 13, 225, 50, 76, 63, 84, 83, 40, 80, 93, 196, 141, 96, 63, 98, 18, 49, 124, 93, 112, 110, 89, 117, 103, 90, 85, 98, 71, 110, 84, 108, 100, 80, 104, 120, 128, 240, 243, 200, 154, 227, 158, 199, 212, 1, 250, 1, 10, 13, 254, 141, 101, 63, 29, 176, 213, 108, 63, 84, 83, 40, 2, 93, 162, 21, 39, 63, 98, 61, 36, 102, 72, 123, 36, 55, 116, 118, 75, 119, 107, 70, 105, 110, 121, 55, 37, 38, 66, 87, 39, 92, 68, 38, 60, 126, 91, 37, 42, 45, 102, 122, 47, 62, 89, 42, 70, 92, 112, 80, 101, 93, 54, 78, 34, 46, 34, 116, 85, 81, 89, 110, 85, 73, 86, 70, 66, 65, 94, 37, 91, 120, 128, 208, 188, 255, 254, 226, 228, 251, 106, 250, 1, 5, 13, 138, 116, 77, 63, 84, 83, 40, 40, 93, 4, 174, 62, 62, 98, 37, 112, 54, 75, 53, 111, 112, 72, 53, 112, 113, 73, 69, 116, 35, 46, 124, 101, 78, 88, 82, 118, 68, 101, 103, 50, 103, 36, 124, 107, 116, 116, 112, 119, 61, 49, 119, 86, 120, 128, 184, 255, 191, 238, 203, 251, 255, 84, 250, 1, 12, 13, 83, 118, 59, 63, 29, 73, 215, 44, 63, 56, 0, 84, 83, 40, 76, 93, 220, 91, 54, 63, 98, 24, 86, 44, 32, 77, 62, 80, 40, 116, 64, 51, 107, 57, 75, 79, 98, 34, 40, 107, 75, 73, 123, 123, 88, 77, 120, 128, 248, 207, 166, 167, 211, 255, 180, 74, 250, 1, 12, 13, 17, 117, 89, 63, 29, 57, 7, 109, 62, 56, 0, 200, 4, 9, 84, 83, 40, 96, 93, 94, 218, 106, 63, 98, 44, 65, 61, 96, 47, 90, 49, 57, 101, 75, 99, 32, 84, 92, 43, 35, 101, 71, 114, 91, 93, 115, 101, 48, 103, 90, 83, 82, 117, 76, 58, 97, 109, 87, 59, 73, 123, 105, 64, 39, 112, 109, 38, 126, 100, 120, 128, 216, 205, 170, 159, 203, 237, 212, 250, 1, 250, 1, 10, 13, 21, 21, 211, 62, 29, 114, 157, 117, 63, 84, 83, 40, 45, 93, 119, 47, 11, 63, 98, 49, 42, 109, 82, 74, 42, 35, 91, 45, 119, 83, 39, 94, 67, 56, 48, 33, 49, 123, 64, 97, 38, 123, 38, 106, 106, 110, 108, 101, 74, 107, 51, 87, 48, 65, 65, 76, 47, 67, 77, 55, 109, 109, 112, 108, 32, 49, 74, 109, 110, 120, 128, 200, 255, 167, 235, 201, 252, 191, 218, 1, 250, 1, 5, 13, 53, 81, 69, 63, 84, 83, 40, 57, 93, 132, 65, 30, 63, 98, 76, 95, 76, 46, 102, 102, 94, 58, 54, 117, 98, 44, 64, 79, 78, 33, 117, 99, 113, 109, 78, 40, 114, 55, 42, 57, 106, 88, 68, 125, 118, 101, 34, 103, 123, 79, 115, 50, 100, 71, 99, 50, 33, 119, 43, 100, 75, 79, 98, 72, 118, 42, 112, 122, 123, 82, 107, 52, 36, 76, 123, 37, 116, 55, 125, 123, 42, 87, 83, 125, 44, 98, 125, 74, 41, 60, 39, 120, 128, 192, 136, 220, 182, 234, 195, 224, 121, 250, 1, 7, 13, 161, 166, 7, 62, 32, 0, 84, 83, 40, 103, 93, 22, 101, 144, 62, 98, 25, 117, 123, 39, 107, 116, 38, 107, 73, 98, 95, 46, 55, 74, 93, 60, 104, 120, 46, 89, 114, 123, 99, 59, 51, 44, 120, 128, 144, 253, 196, 181, 252, 232, 167, 52, 250, 1, 12, 13, 18, 58, 90, 63, 29, 231, 130, 42, 63, 32, 0, 200, 4, 107, 84, 83, 40, 11, 93, 50, 74, 40, 63, 98, 31, 94, 96, 47, 120, 48, 50, 39, 35, 107, 42, 58, 76, 84, 101, 126, 74, 126, 62, 33, 124, 105, 121, 62, 49, 96, 114, 94, 77, 52, 43, 125, 120, 128, 160, 184, 250, 208, 137, 194, 211, 109, 250, 1, 12, 13, 145, 199, 19, 63, 29, 254, 193, 253, 62, 56, 1, 200, 4, 98, 84, 83, 40, 61, 93, 173, 188, 189, 62, 98, 48, 87, 101, 39, 86, 38, 112, 72, 109, 94, 69, 71, 70, 95, 44, 110, 42, 115, 99, 65, 125, 56, 60, 83, 88, 110, 95, 43, 72, 116, 37, 45, 52, 123, 91, 101, 59, 117, 51, 114, 77, 103, 113, 52, 57, 38, 109, 75, 112, 120, 128, 144, 236, 184, 160, 255, 224, 198, 131, 1, 250, 1, 5, 13, 212, 101, 239, 62, 84, 83, 40, 78, 93, 33, 142, 96, 63, 98, 28, 71, 79, 42, 59, 50, 78, 102, 69, 100, 32, 119, 89, 56, 50, 73, 36, 70, 83, 52, 95, 112, 115, 54, 69, 40, 58, 81, 33, 120, 128, 210, 245, 169, 227, 151, 173, 207, 28, 250, 1, 12, 13, 119, 31, 140, 62, 29, 114, 175, 204, 62, 56, 0, 84, 83, 40, 55, 93, 201, 141, 135, 62, 98, 77, 108, 76, 80, 74, 41, 71, 76, 76, 103, 102, 120, 90, 33, 115, 68, 70, 74, 78, 56, 122, 35, 82, 57, 100, 50, 119, 123, 101, 49, 74, 89, 79, 47, 125, 68, 123, 83, 123, 74, 107, 51, 67, 44, 78, 76, 77, 57, 93, 91, 108, 110, 118, 48, 78, 53, 57, 51, 107, 55, 48, 74, 101, 59, 60, 45, 73, 74, 34, 78, 71, 114, 78, 36, 75, 102, 94, 69, 120, 128, 192, 190, 184, 142, 211, 243, 195, 99, 250, 1, 5, 13, 229, 109, 126, 62, 84, 83, 40, 91, 93, 235, 158, 39, 63, 98, 25, 62, 41, 67, 91, 97, 63, 95, 104, 43, 104, 102, 99, 57, 65, 76, 39, 111, 64, 35, 34, 54, 46, 52, 121, 64, 120, 128, 136, 140, 245, 205, 167, 224, 168, 239, 1, 250, 1, 12, 13, 212, 75, 54, 63, 29, 171, 212, 62, 63, 56, 1, 84, 83, 40, 110, 93, 212, 109, 218, 62, 98, 59, 83, 82, 81, 44, 92, 119, 95, 74, 41, 105, 57, 67, 93, 43, 105, 105, 42, 58, 87, 85, 72, 52, 97, 71, 47, 116, 73, 58, 110, 90, 120, 50, 55, 64, 51, 49, 103, 52, 111, 47, 47, 117, 120, 55, 124, 106, 85, 109, 85, 41, 89, 76, 125, 61, 126, 63, 111, 42, 123, 120, 128, 160, 218, 128, 210, 242, 209, 133, 96, 250, 1, 5, 13, 144, 75, 248, 62, 84, 83, 40, 49, 93, 43, 159, 32, 63, 98, 23, 78, 112, 38, 44, 61, 119, 88, 34, 116, 73, 71, 70, 82, 58, 73, 73, 68, 62, 90, 100, 100, 33, 75, 120, 128, 142, 137, 140, 226, 237, 200, 224, 26, 250, 1, 10, 13, 40, 162, 110, 63, 29, 245, 236, 173, 62, 84, 83, 40, 110, 93, 173, 10, 174, 62, 98, 57, 92, 55, 40, 96, 105, 57, 74, 69, 117, 93, 56, 116, 124, 38, 99, 34, 86, 118, 76, 36, 70, 96, 87, 72, 114, 95, 117, 77, 69, 114, 50, 124, 36, 56, 68, 92, 65, 101, 91, 56, 111, 35, 82, 101, 37, 100, 102, 94, 60, 72, 92, 34, 114, 110, 121, 123, 95, 120, 128, 208, 152, 193, 154, 226, 196, 137, 212, 1, 250, 1, 10, 13, 66, 122, 79, 63, 29, 135, 222, 202, 61, 84, 83, 40, 46, 93, 134, 60, 120, 63, 98, 62, 32, 35, 74, 58, 112, 100, 96, 38, 96, 111, 58, 51, 51, 66, 45, 113, 66, 45, 120, 55, 48, 123, 54, 48, 41, 53, 61, 72, 124, 98, 119, 82, 116, 114, 35, 78, 58, 106, 115, 34, 124, 53, 103, 107, 102, 95, 90, 87, 109, 108, 59, 94, 48, 43, 107, 35, 107, 58, 49, 90, 70, 56, 120, 128, 201, 220, 157, 247, 203, 228, 237, 12, 250, 1, 5, 13, 245, 116, 123, 63, 84, 83, 40, 115, 93, 73, 227, 63, 63, 98, 43, 61, 64, 62, 93, 86, 87, 57, 117, 58, 121, 52, 73, 73, 72, 90, 101, 89, 47, 70, 56, 66, 105, 38, 126, 98, 32, 88, 57, 90, 99, 45, 104, 116, 126, 65, 57, 56, 47, 54, 98, 69, 57, 112, 120, 128, 240, 197, 218, 189, 152, 175, 212, 237, 1, 250, 1, 5, 13, 161, 76, 83, 63, 84, 83, 40, 45, 93, 139, 6, 88, 63, 98, 71, 103, 126, 95, 94, 119, 86, 93, 69, 83, 57, 63, 122, 86, 126, 32, 58, 85, 108, 74, 84, 73, 38, 64, 76, 73, 120, 99, 114, 40, 119, 52, 48, 64, 47, 112, 57, 121, 37, 52, 50, 55, 89, 109, 32, 120, 52, 94, 99, 69, 125, 59, 37, 67, 108, 70, 96, 93, 50, 52, 126, 114, 105, 60, 90, 37, 46, 89, 71, 45, 101, 63, 120, 128, 152, 246, 166, 212, 233, 177, 183, 65, 250, 1, 5, 13, 1, 44, 23, 63, 84, 83, 40, 32, 93, 78, 47, 157, 62, 98, 50, 111, 56, 64, 83, 53, 57, 126, 76, 42, 92, 47, 107, 83, 103, 47, 91, 103, 111, 52, 62, 76, 61, 50, 121, 105, 89, 55, 85, 95, 93, 106, 76, 43, 79, 86, 72, 61, 94, 126, 100, 115, 60, 49, 125, 116, 66, 38, 94, 125, 42, 120, 128, 224, 239, 181, 153, 224, 253, 174, 203, 1, 250, 1, 5, 13, 10, 226, 43, 63, 84, 83, 40, 47, 93, 191, 168, 110, 63, 98, 68, 111, 81, 37, 69, 104, 90, 33, 72, 108, 76, 113, 98, 95, 36, 49, 102, 62, 40, 111, 79, 74, 47, 43, 52, 36, 70, 83, 88, 87, 85, 37, 42, 40, 50, 94, 36, 66, 118, 116, 68, 98, 74, 79, 100, 44, 50, 98, 34, 77, 54, 107, 79, 111, 114, 78, 96, 69, 112, 64, 66, 39, 72, 111, 55, 70, 103, 89, 77, 120, 128, 132, 204, 156, 214, 155, 224, 228, 177, 1, 250, 1, 5, 13, 33, 33, 9, 62, 84, 83, 40, 48, 93, 240, 77, 209, 62, 98, 64, 50, 75, 107, 126, 95, 70, 40, 113, 99, 81, 43, 65, 104, 85, 58, 53, 99, 125, 93, 81, 85, 82, 61, 57, 89, 55, 61, 67, 88, 53, 92, 64, 113, 68, 60, 67, 38, 78, 32, 126, 104, 78, 93, 84, 61, 78, 77, 112, 76, 68, 105, 70, 78, 113, 112, 95, 46, 82, 69, 71, 41, 99, 56, 78, 120, 128, 200, 244, 182, 211, 189, 164, 183, 113, 250, 1, 5, 13, 2, 13, 70, 63, 84, 83, 40, 62, 93, 224, 240, 196, 62, 98, 31, 56, 117, 46, 52, 124, 94, 104, 38, 116, 103, 123, 43, 104, 75, 117, 51, 74, 53, 113, 126, 82, 92, 53, 83, 41, 88, 116, 36, 53, 46, 95, 120, 128, 208, 231, 245, 154, 141, 189, 174, 69, 250, 1, 10, 13, 251, 186, 126, 63, 29, 72, 195, 200, 61, 200, 4, 75, 84, 83, 40, 72, 93, 243, 56, 110, 62, 98, 37, 84, 73, 110, 41, 105, 106, 70, 85, 57, 94, 92, 108, 37, 35, 94, 119, 79, 112, 91, 96, 89, 43, 67, 104, 99, 112, 101, 39, 72, 43, 95, 114, 63, 124, 117, 106, 34, 120, 128, 240, 201, 195, 159, 240, 206, 156, 115, 250, 1, 12, 13, 85, 255, 66, 63, 29, 50, 186, 89, 63, 56, 1, 84, 83, 40, 124, 93, 222, 227, 82, 63, 98, 78, 120, 56, 55, 48, 43, 32, 91, 79, 55, 123, 117, 91, 72, 37, 38, 68, 120, 37, 63, 45, 46, 125, 105, 76, 39, 45, 115, 116, 88, 40, 105, 113, 91, 60, 73, 80, 76, 95, 89, 38, 108, 91, 71, 117, 73, 65, 76, 100, 122, 80, 111, 107, 78, 111, 96, 122, 77, 105, 41, 125, 44, 101, 117, 47, 49, 35, 32, 44, 91, 85, 119, 56, 74, 56, 64, 81, 86, 115, 120, 128, 201, 179, 200, 144, 201, 156, 195, 132, 1, 250, 1, 5, 13, 91, 12, 58, 63, 84, 83, 40, 84, 93, 99, 143, 33, 62, 98, 57, 121, 40, 56, 125, 66, 106, 91, 78, 34, 97, 86, 91, 120, 38, 100, 56, 99, 69, 64, 64, 41, 69, 87, 86, 65, 53, 78, 46, 67, 89, 102, 67, 61, 124, 107, 109, 118, 51, 95, 52, 80, 44, 82, 54, 96, 109, 63, 57, 108, 61, 47, 92, 68, 63, 37, 83, 79, 120, 128, 152, 218, 190, 226, 170, 209, 245, 86, 250, 1, 5, 13, 202, 107, 32, 63, 84, 83, 40, 17, 93, 128, 58, 151, 62, 98, 38, 76, 42, 72, 121, 51, 61, 123, 58, 117, 64, 79, 100, 44, 111, 124, 113, 65, 117, 82, 117, 53, 65, 37, 73, 41, 125, 125, 119, 55, 62, 54, 87, 82, 119, 35, 33, 42, 59, 120, 128, 220, 199, 191, 196, 219, 189, 252, 61, 250, 1, 5, 13, 225, 191, 0, 63, 84, 83, 40, 47, 93, 56, 222, 125, 63, 98, 79, 117, 123, 94, 118, 56, 79, 40, 97, 46, 106, 40, 54, 38, 43, 36, 125, 112, 52, 63, 36, 35, 87, 42, 119, 49, 51, 107, 122, 103, 37, 71, 35, 82, 53, 74, 40, 106, 49, 101, 78, 110, 85, 48, 74, 78, 60, 112, 118, 123, 43, 74, 57, 48, 63, 123, 61, 112, 101, 101, 36, 98, 44, 120, 40, 66, 37, 99, 112, 96, 123, 51, 94, 77, 111, 52, 76, 71, 95, 73, 120, 128, 208, 253, 188, 189, 218, 236, 231, 113, 250, 1, 5, 13, 18, 61, 184, 62, 84, 83, 40, 112, 93, 114, 216, 126, 63, 98, 51, 92, 89, 46, 113, 51, 57, 45, 54, 36, 75, 97, 107, 98, 91, 39, 39, 73, 88, 32, 54, 32, 118, 107, 106, 63, 42, 78, 117, 49, 60, 111, 97, 108, 44, 60, 77, 52, 50, 80, 86, 82, 100, 47, 50, 107, 36, 80, 112, 63, 87, 126, 120, 128, 236, 172, 227, 196, 208, 230, 154, 166, 1, 250, 1, 5, 13, 51, 61, 182, 62, 84, 83, 40, 83, 93, 184, 233, 125, 63, 98, 30, 100, 109, 66, 81, 40, 106, 54, 37, 102, 90, 126, 125, 85, 62, 89, 114, 54, 39, 73, 98, 59, 103, 88, 126, 59, 88, 92, 85, 89, 60, 120, 128, 184, 178, 205, 141, 183, 147, 235, 69, 250, 1, 5, 13, 101, 203, 169, 62, 84, 83, 40, 19, 93, 217, 254, 17, 62, 98, 41, 86, 95, 113, 95, 71, 106, 59, 94, 71, 87, 107, 38, 122, 81, 101, 100, 104, 52, 119, 122, 98, 124, 53, 66, 54, 78, 46, 96, 74, 74, 39, 95, 111, 72, 103, 121, 32, 85, 95, 93, 70, 120, 128, 216, 133, 131, 202, 168, 173, 152, 208, 1, 250, 1, 10, 13, 255, 121, 172, 62, 29, 14, 155, 66, 60, 84, 83, 40, 25, 93, 160, 83, 100, 62, 98, 37, 93, 42, 111, 116, 83, 63, 70, 50, 73, 88, 73, 78, 73, 119, 92, 90, 51, 124, 80, 43, 53, 82, 105, 107, 99, 51, 84, 58, 83, 39, 92, 52, 47, 33, 112, 35, 111, 120, 128, 160, 195, 254, 185, 248, 153, 244, 72, 250, 1, 10, 13, 12, 226, 103, 63, 29, 81, 180, 63, 63, 84, 83, 40, 33, 93, 213, 9, 34, 63, 98, 24, 125, 46, 79, 80, 43, 102, 32, 106, 71, 66, 80, 39, 126, 43, 64, 35, 48, 63, 105, 44, 93, 66, 123, 53, 120, 128, 180, 185, 169, 149, 174, 203, 203, 170, 1, 250, 1, 7, 13, 182, 89, 214, 62, 56, 0, 200, 4, 75, 84, 83, 40, 98, 93, 155, 198, 36, 63, 98, 127, 38, 103, 114, 88, 83, 91, 60, 51, 39, 108, 57, 104, 94, 57, 99, 39, 34, 101, 98, 107, 69, 86, 124, 44, 125, 91, 49, 57, 48, 99, 94, 71, 32, 105, 60, 103, 52, 69, 86, 99, 102, 123, 56, 123, 113, 116, 98, 97, 81, 55, 69, 65, 117, 125, 55, 78, 106, 101, 90, 119, 73, 34, 34, 67, 46, 113, 103, 116, 124, 122, 114, 91, 46, 125, 37, 72, 62, 32, 57, 40, 119, 79, 102, 120, 61, 61, 81, 34, 81, 108, 123, 77, 105, 93, 58, 99, 121, 115, 109, 32, 45, 109, 100, 85, 68, 104, 50, 118, 119, 110, 48, 105, 75, 82, 126, 120, 58, 41, 37, 112, 64, 100, 66, 47, 126, 68, 113, 120, 128, 164, 255, 202, 228, 192, 250, 215, 64, 250, 1, 5, 13, 108, 126, 53, 63, 84, 83, 40, 43, 93, 78, 142, 247, 62, 98, 36, 73, 50, 57, 121, 42, 106, 49, 84, 84, 42, 89, 41, 98, 92, 49, 33, 55, 94, 64, 73, 112, 110, 124, 94, 72, 74, 84, 86, 126, 118, 98, 50, 87, 64, 102, 87, 120, 128, 152, 166, 131, 163, 190, 177, 154, 152, 1, 250, 1, 5, 13, 195, 52, 23, 63, 84, 83, 40, 112, 93, 152, 134, 32, 62, 98, 21, 41, 84, 80, 102, 101, 90, 94, 82, 108, 66, 90, 112, 66, 118, 92, 89, 53, 90, 80, 95, 53, 120, 192, 238, 156, 152, 136, 244, 230, 78, 250, 1, 10, 13, 243, 102, 14, 63, 29, 126, 88, 36, 63, 84, 83, 40, 51, 93, 167, 47, 210, 62, 98, 116, 81, 66, 117, 88, 111, 94, 105, 49, 63, 60, 62, 53, 120, 109, 106, 34, 104, 91, 60, 112, 111, 96, 98, 44, 66, 86, 39, 52, 120, 78, 126, 114, 63, 62, 41, 60, 91, 51, 82, 122, 39, 49, 86, 64, 59, 126, 96, 98, 115, 50, 112, 120, 64, 84, 86, 111, 94, 105, 54, 56, 86, 84, 55, 112, 61, 74, 117, 89, 99, 78, 69, 84, 40, 64, 105, 94, 42, 66, 111, 67, 116, 67, 64, 102, 92, 37, 81, 105, 102, 56, 92, 113, 124, 58, 68, 81, 120, 100, 34, 111, 40, 39, 125, 69, 107, 60, 112, 32, 106, 119, 101, 60, 120, 113, 66, 51, 120, 128, 168, 182, 167, 198, 195, 178, 187, 28, 250, 1, 5, 13, 6, 242, 2, 63, 84, 83, 40, 27, 93, 242, 191, 125, 62, 98, 28, 120, 43, 113, 75, 113, 83, 86, 108, 123, 56, 101, 68, 63, 126, 59, 109, 68, 121, 121, 63, 52, 80, 126, 109, 81, 63, 119, 43, 120, 128, 208, 200, 223, 222, 255, 196, 252, 245, 1, 250, 1, 5, 13, 100, 197, 51, 62, 84, 83, 40, 38, 93, 154, 181, 212, 62, 98, 46, 80, 106, 118, 123, 52, 82, 82, 56, 100, 35, 36, 81, 50, 65, 123, 121, 86, 83, 110, 57, 85, 115, 34, 71, 44, 35, 120, 81, 90, 75, 116, 106, 122, 61, 115, 84, 39, 62, 88, 112, 71, 97, 90, 49, 76, 76, 120, 128, 248, 139, 249, 185, 188, 223, 200, 207, 1, 250, 1, 10, 13, 27, 154, 48, 62, 29, 47, 119, 191, 62, 84, 83, 40, 124, 93, 46, 114, 12, 63, 98, 38, 67, 65, 35, 112, 91, 103, 79, 111, 48, 88, 33, 92, 57, 46, 57, 86, 116, 77, 70, 113, 55, 122, 124, 113, 114, 57, 112, 122, 94, 71, 104, 45, 92, 118, 80, 72, 118, 75, 120, 128, 130, 162, 208, 228, 141, 144, 130, 32, 250, 1, 10, 13, 161, 197, 77, 63, 29, 251, 5, 22, 63, 84, 83, 40, 61, 93, 55, 214, 214, 62, 98, 39, 56, 69, 37, 64, 34, 51, 117, 101, 98, 123, 43, 60, 72, 68, 48, 125, 66, 117, 83, 49, 103, 110, 114, 126, 66, 92, 111, 94, 72, 53, 89, 58, 104, 82, 99, 75, 109, 119, 109, 120, 128, 152, 151, 201, 135, 194, 185, 201, 95, 250, 1, 10, 13, 34, 28, 66, 63, 29, 215, 93, 47, 63, 84, 83, 40, 8, 93, 52, 208, 55, 62, 98, 57, 81, 89, 39, 36, 101, 77, 115, 117, 35, 60, 94, 72, 82, 37, 125, 69, 67, 54, 61, 76, 66, 111, 82, 117, 96, 100, 48, 73, 39, 108, 72, 38, 104, 97, 77, 103, 85, 107, 119, 122, 65, 98, 54, 75, 114, 58, 120, 103, 121, 72, 67, 81, 67, 88, 109, 96, 39, 120, 128, 204, 239, 133, 205, 226, 252, 174, 24, 250, 1, 5, 13, 96, 93, 188, 62, 84, 83, 40, 2, 93, 237, 196, 157, 62, 98, 42, 73, 109, 54, 115, 88, 94, 111, 87, 53, 110, 86, 61, 66, 43, 94, 89, 38, 34, 69, 106, 71, 79, 94, 72, 117, 97, 47, 114, 107, 96, 67, 72, 118, 92, 118, 115, 32, 87, 58, 91, 40, 47, 120, 128, 208, 221, 184, 139, 245, 236, 197, 219, 1, 250, 1, 5, 13, 203, 65, 25, 63, 84, 83, 40, 101, 93, 110, 146, 87, 62, 98, 60, 33, 77, 46, 38, 32, 46, 124, 53, 116, 121, 47, 108, 125, 117, 78, 123, 106, 84, 75, 46, 70, 100, 51, 106, 89, 78, 103, 105, 97, 56, 106, 37, 91, 97, 96, 97, 100, 100, 96, 53, 74, 96, 103, 124, 100, 50, 89, 68, 44, 44, 68, 47, 45, 93, 108, 60, 58, 67, 76, 81, 120, 128, 128, 130, 179, 198, 242, 143, 152, 179, 1, 250, 1, 5, 13, 254, 153, 83, 62, 84, 83, 40, 68, 93, 238, 184, 33, 63, 98, 62, 46, 42, 49, 59, 52, 108, 55, 37, 115, 54, 99, 100, 123, 53, 37, 71, 116, 67, 93, 85, 115, 90, 118, 125, 115, 67, 70, 64, 56, 46, 110, 54, 45, 43, 110, 89, 32, 61, 47, 62, 115, 62, 59, 118, 121, 39, 64, 36, 61, 37, 91, 34, 85, 124, 103, 82, 50, 50, 70, 112, 70, 118, 120, 128, 144, 138, 236, 156, 250, 208, 224, 230, 1, 250, 1, 5, 13, 155, 90, 55, 63, 84, 83, 40, 52, 93, 52, 69, 238, 62, 98, 28, 87, 112, 70, 75, 70, 86, 51, 62, 97, 84, 62, 32, 36, 108, 35, 65, 34, 51, 82, 107, 96, 47, 66, 59, 70, 108, 118, 61, 120, 128, 224, 180, 214, 238, 226, 165, 179, 245, 1, 250, 1, 10, 13, 17, 150, 120, 63, 29, 137, 148, 4, 63, 84, 83, 40, 73, 93, 93, 60, 0, 63, 98, 54, 76, 78, 79, 93, 113, 93, 37, 109, 54, 59, 51, 52, 50, 46, 89, 109, 36, 115, 89, 49, 90, 106, 72, 77, 42, 36, 88, 95, 117, 70, 100, 35, 103, 79, 86, 61, 83, 99, 48, 84, 76, 124, 73, 115, 47, 39, 52, 94, 60, 79, 114, 40, 119, 68, 120, 128, 152, 183, 146, 190, 167, 185, 147, 241, 1, 250, 1, 5, 13, 101, 68, 47, 63, 84, 83, 40, 9, 93, 159, 111, 155, 60, 98, 40, 82, 108, 37, 69, 119, 111, 85, 47, 76, 98, 87, 60, 58, 64, 98, 36, 100, 93, 65, 83, 61, 35, 111, 121, 66, 69, 82, 91, 43, 66, 90, 116, 54, 81, 48, 66, 79, 39, 36, 89, 120, 128, 192, 157, 203, 226, 228, 235, 217, 40, 250, 1, 10, 13, 203, 177, 127, 63, 29, 29, 89, 29, 63, 84, 83, 40, 65, 93, 112, 34, 148, 61, 98, 45, 32, 53, 82, 69, 114, 95, 54, 63, 82, 99, 79, 124, 42, 34, 82, 60, 121, 36, 41, 39, 98, 38, 103, 47, 64, 83, 92, 88, 103, 53, 61, 72, 62, 114, 66, 47, 32, 54, 55, 97, 67, 84, 99, 109, 96, 120, 128, 220, 142, 161, 134, 211, 245, 136, 178, 1, 250, 1, 10, 13, 157, 171, 198, 62, 29, 85, 210, 85, 61, 84, 83, 40, 65, 93, 155, 6, 156, 62, 98, 31, 66, 122, 80, 72, 67, 121, 76, 67, 36, 62, 35, 93, 87, 60, 69, 39, 93, 55, 95, 66, 60, 99, 107, 71, 99, 45, 66, 121, 78, 122, 47, 120, 128, 224, 244, 149, 194, 182, 166, 175, 75, 250, 1, 5, 13, 15, 22, 156, 61, 84, 83, 40, 56, 93, 166, 139, 92, 63, 98, 100, 66, 118, 116, 78, 72, 98, 92, 49, 119, 94, 101, 124, 70, 72, 88, 102, 45, 68, 46, 32, 94, 46, 40, 100, 54, 87, 82, 115, 41, 47, 74, 86, 45, 73, 34, 47, 103, 103, 55, 95, 95, 82, 114, 104, 125, 48, 122, 81, 116, 51, 33, 50, 119, 73, 51, 51, 109, 48, 56, 111, 47, 103, 39, 104, 51, 46, 111, 123, 69, 73, 125, 69, 45, 78, 64, 44, 59, 63, 102, 37, 91, 33, 125, 116, 46, 55, 93, 98, 54, 110, 64, 87, 78, 70, 80, 118, 74, 42, 84, 110, 120, 128, 252, 169, 209, 128, 223, 207, 138, 44, 250, 1, 5, 13, 80, 11, 124, 63, 84, 83, 40, 16, 93, 121, 168, 232, 62, 98, 60, 52, 91, 37, 73, 40, 38, 118, 78, 72, 50, 52, 46, 104, 50, 90, 123, 80, 44, 101, 85, 40, 70, 117, 102, 124, 72, 97, 49, 105, 119, 100, 93, 116, 82, 95, 81, 50, 51, 89, 47, 118, 113, 46, 59, 49, 65, 46, 55, 79, 88, 61, 51, 55, 85, 66, 109, 100, 62, 75, 95, 120, 128, 140, 219, 204, 144, 198, 216, 229, 49, 250, 1, 5, 13, 87, 77, 60, 63, 84, 83, 40, 90, 93, 186, 120, 3, 63, 98, 40, 77, 86, 57, 53, 81, 40, 105, 60, 81, 86, 94, 53, 55, 89, 84, 91, 58, 73, 96, 49, 89, 80, 69, 62, 48, 113, 108, 114, 103, 121, 105, 48, 46, 92, 109, 90, 40, 119, 101, 70, 120, 128, 184, 233, 159, 141, 184, 203, 254, 233, 1, 250, 1, 5, 13, 108, 2, 109, 60, 84, 83, 40, 86, 93, 6, 155, 45, 63, 98, 40, 118, 44, 85, 43, 105, 111, 68, 121, 36, 82, 118, 123, 48, 121, 37, 94, 58, 117, 84, 87, 107, 77, 39, 90, 107, 120, 82, 66, 98, 58, 65, 88, 110, 99, 71, 35, 59, 97, 41, 118, 120, 128, 176, 223, 243, 249, 173, 251, 157, 72, 250, 1, 10, 13, 76, 100, 84, 63, 29, 168, 38, 255, 61, 84, 83, 40, 78, 93, 92, 140, 58, 63, 98, 66, 112, 73, 46, 113, 38, 43, 120, 76, 41, 115, 72, 37, 122, 62, 111, 60, 33, 55, 105, 49, 62, 44, 75, 81, 34, 67, 88, 107, 92, 33, 123, 65, 75, 116, 121, 78, 67, 79, 92, 46, 72, 43, 101, 111, 126, 124, 63, 66, 56, 89, 83, 87, 65, 73, 70, 99, 124, 92, 111, 98, 82, 44, 111, 39, 119, 39, 120, 128, 200, 180, 202, 153, 204, 164, 211, 204, 1, 250, 1, 5, 13, 11, 96, 139, 61, 84, 83, 40, 48, 93, 134, 55, 178, 62, 98, 53, 120, 81, 90, 91, 104, 50, 70, 91, 82, 36, 35, 54, 82, 34, 77, 68, 32, 33, 77, 53, 80, 102, 95, 120, 90, 59, 59, 93, 118, 118, 67, 57, 125, 118, 96, 34, 124, 100, 96, 52, 61, 65, 42, 106, 94, 60, 88, 108, 89, 82, 38, 87, 88, 120, 128, 140, 146, 189, 210, 221, 144, 233, 147, 1, 250, 1, 10, 13, 98, 38, 86, 63, 29, 165, 232, 64, 62, 84, 83, 40, 108, 93, 182, 23, 45, 63, 98, 60, 32, 76, 117, 104, 99, 90, 96, 105, 55, 90, 64, 75, 70, 59, 64, 56, 119, 47, 91, 115, 58, 62, 97, 77, 35, 68, 112, 107, 96, 110, 39, 78, 48, 60, 99, 52, 61, 83, 92, 78, 42, 116, 36, 124, 76, 46, 44, 106, 54, 63, 54, 95, 84, 123, 69, 97, 105, 72, 100, 63, 120, 128, 192, 147, 160, 151, 245, 155, 129, 99, 250, 1, 5, 13, 192, 145, 96, 63, 84, 83, 40, 11, 93, 159, 148, 216, 62, 98, 24, 83, 112, 58, 42, 86, 43, 122, 67, 82, 44, 105, 68, 58, 99, 33, 116, 55, 37, 84, 64, 88, 70, 120, 51, 120, 128, 208, 138, 175, 254, 141, 213, 248, 242, 1, 250, 1, 12, 13, 96, 57, 192, 60, 29, 27, 27, 224, 62, 56, 1, 84, 83, 40, 104, 93, 172, 18, 152, 62, 98, 48, 100, 54, 107, 91, 73, 90, 114, 33, 51, 43, 67, 113, 45, 72, 50, 33, 70, 37, 70, 110, 40, 99, 62, 102, 110, 44, 118, 39, 52, 84, 97, 38, 84, 54, 71, 83, 88, 94, 58, 69, 34, 53, 112, 73, 124, 101, 57, 80, 120, 160, 237, 174, 150, 224, 233, 246, 178, 129, 1, 250, 1, 10, 13, 217, 159, 98, 63, 29, 220, 242, 28, 63, 84, 83, 40, 47, 93, 240, 231, 245, 62, 98, 57, 126, 52, 32, 118, 36, 107, 60, 99, 106, 108, 94, 72, 61, 61, 118, 32, 94, 72, 103, 106, 33, 108, 113, 114, 115, 105, 41, 114, 69, 38, 62, 121, 61, 87, 85, 34, 70, 91, 83, 113, 125, 97, 54, 72, 50, 32, 95, 72, 65, 80, 65, 76, 113, 88, 76, 50, 65, 120, 128, 236, 255, 128, 168, 225, 254, 135, 19, 250, 1, 5, 13, 251, 64, 230, 60, 84, 83, 40, 34, 93, 118, 153, 48, 63, 98, 58, 72, 61, 100, 77, 100, 43, 100, 103, 116, 89, 34, 115, 117, 108, 62, 85, 73, 96, 115, 42, 96, 80, 116, 99, 113, 39, 99, 43, 67, 95, 56, 89, 57, 48, 84, 67, 81, 121, 76, 116, 121, 96, 76, 117, 63, 87, 123, 107, 45, 91, 119, 76, 46, 47, 32, 118, 72, 33, 120, 128, 136, 146, 246, 185, 179, 144, 177, 207, 1, 250, 1, 12, 13, 108, 223, 34, 63, 29, 158, 48, 209, 62, 56, 1, 84, 83, 40, 48, 93, 69, 181, 96, 62, 98, 27, 64, 72, 90, 100, 55, 122, 36, 78, 51, 125, 47, 32, 35, 125, 67, 58, 43, 118, 124, 102, 102, 107, 74, 41, 47, 92, 122, 120, 128, 128, 138, 134, 216, 154, 208, 176, 192, 1, 250, 1, 5, 13, 121, 12, 163, 62, 200, 4, 106, 84, 83, 40, 60, 93, 205, 76, 177, 62, 98, 66, 60, 56, 85, 118, 124, 54, 84, 50, 87, 72, 56, 48, 32, 32, 115, 73, 92, 64, 80, 78, 91, 92, 77, 83, 124, 80, 85, 90, 32, 83, 48, 67, 80, 109, 99, 106, 72, 76, 61, 115, 66, 106, 46, 61, 82, 58, 41, 47, 104, 80, 114, 124, 62, 125, 100, 94, 105, 33, 120, 75, 96, 120, 49, 35, 56, 116, 120, 128, 136, 173, 206, 186, 198, 232, 242, 212, 1, 250, 1, 5, 13, 25, 115, 60, 62, 84, 83, 40, 37, 93, 213, 103, 178, 61, 98, 51, 33, 48, 34, 92, 44, 111, 78, 47, 32, 98, 70, 70, 112, 78, 96, 50, 36, 81, 41, 37, 33, 70, 82, 113, 51, 72, 88, 42, 37, 93, 90, 119, 114, 96, 79, 98, 122, 97, 113, 115, 48, 89, 32, 54, 36, 58, 40, 98, 66, 37, 111, 120, 128, 146, 205, 166, 242, 141, 233, 180, 146, 1, 250, 1, 5, 13, 111, 181, 181, 61, 84, 83, 40, 30, 93, 6, 242, 153, 61, 98, 70, 89, 92, 48, 72, 98, 54, 67, 42, 66, 39, 78, 83, 48, 125, 125, 55, 66, 94, 52, 116, 70, 69, 60, 108, 120, 64, 117, 103, 32, 108, 76, 110, 91, 89, 117, 37, 105, 56, 47, 92, 107, 79, 93, 46, 84, 102, 118, 99, 68, 108, 77, 77, 115, 65, 95, 51, 64, 66, 79, 65, 64, 91, 42, 84, 90, 95, 118, 86, 40, 119, 120, 128, 228, 178, 222, 247, 169, 150, 243, 60, 250, 1, 10, 13, 140, 46, 214, 61, 29, 143, 215, 255, 62, 84, 83, 40, 72, 93, 243, 24, 178, 61, 98, 35, 118, 103, 45, 55, 49, 72, 49, 66, 50, 63, 125, 122, 58, 120, 97, 100, 70, 103, 108, 60, 48, 68, 40, 83, 116, 110, 64, 91, 75, 64, 67, 125, 60, 57, 104, 120, 128, 220, 179, 225, 132, 223, 157, 139, 59, 250, 1, 10, 13, 85, 130, 76, 62, 29, 253, 145, 239, 61, 84, 83, 40, 39, 93, 7, 226, 109, 63, 98, 47, 46, 56, 119, 53, 91, 99, 92, 92, 69, 51, 38, 65, 97, 57, 118, 81, 94, 88, 66, 65, 39, 85, 117, 113, 122, 32, 93, 33, 48, 54, 81, 59, 74, 115, 45, 118, 76, 113, 119, 49, 50, 98, 54, 56, 57, 34, 59, 120, 128, 135, 238, 194, 160, 185, 240, 150, 132, 1, 250, 1, 5, 13, 218, 52, 180, 62, 84, 83, 40, 29, 93, 66, 80, 76, 63, 98, 62, 89, 103, 122, 112, 88, 66, 38, 57, 90, 38, 91, 76, 47, 97, 105, 118, 109, 44, 126, 37, 107, 96, 49, 47, 68, 63, 93, 87, 120, 100, 90, 94, 120, 73, 118, 82, 78, 34, 84, 84, 69, 87, 60, 43, 86, 53, 39, 85, 79, 43, 76, 117, 65, 48, 32, 119, 86, 107, 75, 57, 99, 78, 120, 128, 216, 137, 149, 210, 177, 205, 168, 44, 250, 1, 10, 13, 66, 228, 102, 63, 29, 1, 139, 229, 62, 84, 83, 40, 122, 93, 218, 172, 9, 63, 98, 72, 100, 105, 54, 71, 106, 87, 74, 95, 51, 67, 38, 87, 46, 56, 39, 39, 109, 55, 99, 61, 104, 73, 125, 123, 97, 86, 58, 111, 118, 55, 70, 95, 90, 97, 65, 107, 56, 98, 96, 62, 118, 80, 107, 84, 80, 52, 61, 33, 91, 70, 82, 94, 102, 94, 105, 59, 106, 58, 101, 52, 60, 89, 103, 123, 124, 69, 124, 75, 117, 59, 109, 42, 120, 128, 224, 154, 235, 182, 234, 213, 217, 72, 250, 1, 5, 13, 125, 122, 197, 62, 84, 83, 40, 50, 93, 232, 2, 127, 62, 98, 21, 93, 73, 74, 77, 56, 56, 51, 79, 100, 102, 120, 123, 118, 38, 32, 124, 123, 75, 34, 60, 103, 120, 128, 192, 180, 219, 220, 134, 164, 219, 106, 250, 1, 12, 13, 180, 253, 20, 63, 29, 8, 178, 231, 61, 56, 0, 84, 83, 40, 107, 93, 103, 35, 237, 61, 98, 39, 64, 87, 71, 40, 65, 56, 82, 92, 65, 111, 56, 123, 35, 69, 56, 54, 53, 76, 32, 84, 111, 58, 112, 45, 41, 66, 41, 78, 109, 113, 63, 53, 71, 45, 114, 118, 60, 94, 86, 120, 128, 224, 232, 167, 219, 233, 197, 190, 218, 1, 250, 1, 10, 13, 211, 99, 196, 62, 29, 199, 33, 217, 62, 84, 83, 40, 83, 93, 218, 225, 17, 62, 98, 25, 99, 79, 125, 118, 79, 88, 65, 93, 54, 59, 58, 37, 102, 57, 125, 126, 46, 35, 110, 79, 79, 34, 83, 116, 82, 120, 128, 140, 176, 223, 224, 205, 128, 251, 43, 250, 1, 12, 13, 118, 251, 111, 63, 29, 116, 32, 18, 63, 56, 1, 84, 83, 40, 38, 93, 8, 149, 42, 62, 98, 52, 70, 91, 98, 73, 88, 67, 50, 126, 52, 79, 97, 126, 43, 114, 108, 48, 35, 95, 87, 84, 65, 88, 47, 92, 96, 123, 40, 68, 47, 94, 106, 103, 120, 44, 114, 73, 36, 111, 68, 90, 123, 36, 90, 126, 109, 35, 72, 34, 100, 47, 118, 117, 120, 128, 144, 185, 231, 215, 129, 201, 187, 39, 250, 1, 10, 13, 44, 135, 63, 63, 29, 170, 149, 81, 63, 84, 83, 40, 103, 93, 70, 205, 237, 62, 98, 31, 37, 103, 92, 58, 109, 110, 85, 99, 120, 37, 126, 126, 67, 44, 50, 58, 124, 88, 60, 125, 47, 110, 92, 83, 38, 94, 126, 103, 115, 74, 49, 120, 128, 152, 195, 228, 249, 181, 153, 164, 40, 250, 1, 5, 13, 36, 250, 91, 61, 84, 83, 40, 122, 93, 180, 217, 123, 63, 98, 55, 39, 103, 63, 46, 52, 36, 59, 115, 125, 72, 34, 64, 35, 99, 91, 63, 46, 80, 111, 60, 53, 42, 41, 52, 46, 110, 109, 110, 77, 114, 97, 121, 70, 45, 42, 82, 92, 74, 40, 121, 115, 122, 94, 42, 35, 62, 123, 35, 56, 43, 35, 107, 52, 95, 103, 120, 128, 200, 205, 228, 135, 202, 236, 164, 124, 250, 1, 10, 13, 43, 99, 38, 63, 29, 63, 222, 249, 61, 84, 83, 40, 126, 93, 95, 202, 197, 62, 98, 43, 53, 75, 69, 43, 102, 40, 120, 116, 88, 41, 97, 99, 72, 117, 72, 58, 75, 125, 48, 110, 114, 105, 86, 66, 111, 116, 100, 102, 69, 45, 115, 81, 74, 98, 99, 72, 84, 83, 67, 122, 69, 38, 73, 120, 128, 152, 255, 184, 242, 184, 249, 199, 147, 1, 250, 1, 10, 13, 90, 195, 219, 62, 29, 128, 245, 163, 62, 84, 83, 40, 46, 93, 0, 246, 164, 62, 98, 48, 55, 77, 80, 94, 122, 48, 80, 74, 115, 35, 59, 113, 66, 49, 79, 75, 53, 48, 57, 101, 49, 32, 100, 119, 90, 53, 73, 108, 64, 72, 120, 80, 81, 69, 79, 118, 91, 52, 85, 58, 49, 56, 83, 81, 55, 80, 87, 51, 120, 128, 248, 187, 227, 152, 189, 223, 155, 72, 250, 1, 5, 13, 61, 12, 124, 63, 84, 83, 40, 118, 93, 207, 127, 129, 62, 98, 45, 37, 92, 44, 55, 103, 88, 36, 100, 102, 99, 42, 75, 42, 105, 63, 123, 97, 87, 110, 32, 89, 125, 83, 120, 75, 51, 95, 41, 93, 53, 55, 65, 78, 96, 75, 116, 57, 56, 47, 34, 48, 112, 83, 77, 45, 120, 128, 211, 180, 182, 193, 149, 165, 179, 139, 1, 250, 1, 5, 13, 0, 147, 209, 62, 84, 83, 40, 60, 93, 101, 157, 62, 62, 98, 75, 90, 81, 124, 46, 119, 93, 38, 41, 51, 106, 83, 120, 121, 39, 80, 75, 104, 123, 72, 61, 74, 98, 73, 72, 108, 111, 104, 74, 37, 106, 66, 107, 49, 119, 35, 98, 58, 50, 86, 35, 69, 106, 38, 76, 90, 41, 54, 105, 34, 33, 68, 44, 125, 47, 102, 118, 40, 83, 65, 40, 115, 90, 35, 71, 71, 102, 102, 34, 35, 108, 49, 85, 68, 69, 119, 120, 128, 248, 137, 193, 142, 192, 207, 136, 84, 250, 1, 5, 13, 252, 101, 35, 63, 84, 83, 40, 122, 93, 106, 100, 78, 63, 98, 50, 98, 89, 126, 72, 35, 70, 54, 109, 33, 48, 43, 90, 101, 112, 78, 46, 105, 103, 93, 36, 115, 65, 52, 101, 52, 111, 109, 102, 87, 55, 40, 57, 43, 102, 93, 78, 116, 50, 126, 33, 49, 119, 100, 112, 119, 50, 75, 100, 117, 55, 120, 128, 160, 233, 199, 195, 131, 202, 190, 19, 250, 1, 10, 13, 41, 96, 102, 63, 29, 205, 77, 125, 63, 84, 83, 40, 116, 93, 72, 101, 110, 63, 98, 25, 65, 68, 56, 51, 51, 87, 79, 54, 105, 40, 113, 78, 126, 50, 32, 56, 87, 104, 92, 114, 122, 91, 66, 109, 34, 120, 128, 248, 248, 141, 214, 182, 199, 239, 176, 1, 250, 1, 12, 13, 9, 129, 207, 61, 29, 97, 61, 87, 63, 56, 0, 84, 83, 40, 12, 93, 16, 101, 65, 62, 98, 40, 58, 51, 108, 60, 41, 92, 125, 106, 72, 96, 97, 122, 104, 38, 98, 76, 81, 117, 126, 85, 45, 65, 36, 125, 100, 34, 74, 49, 110, 77, 94, 117, 96, 117, 86, 59, 49, 117, 117, 91, 120, 128, 152, 157, 250, 250, 198, 233, 209, 76, 250, 1, 5, 13, 169, 160, 120, 63, 84, 83, 40, 26, 93, 9, 4, 62, 62, 98, 47, 56, 96, 89, 103, 63, 119, 86, 121, 64, 82, 36, 120, 46, 110, 86, 39, 49, 108, 123, 121, 34, 106, 58, 113, 78, 70, 58, 91, 126, 67, 123, 48, 45, 113, 100, 36, 71, 98, 112, 118, 118, 100, 85, 45, 112, 92, 44, 120, 128, 184, 163, 216, 213, 204, 155, 194, 173, 1, 250, 1, 12, 13, 200, 132, 164, 62, 29, 105, 56, 84, 63, 56, 0, 84, 83, 40, 100, 93, 171, 97, 169, 59, 98, 36, 57, 46, 76, 70, 102, 56, 119, 92, 122, 121, 123, 86, 115, 107, 60, 41, 82, 94, 78, 122, 37, 35, 61, 53, 44, 33, 112, 58, 120, 61, 48, 121, 48, 47, 114, 98, 120, 128, 208, 248, 252, 163, 255, 196, 231, 159, 1, 250, 1, 12, 13, 126, 65, 37, 63, 29, 1, 238, 43, 63, 56, 0, 84, 83, 40, 118, 93, 242, 155, 138, 62, 98, 47, 122, 105, 88, 86, 123, 112, 111, 55, 107, 48, 121, 111, 121, 53, 112, 55, 57, 101, 70, 93, 99, 92, 105, 34, 69, 100, 119, 88, 113, 115, 125, 36, 34, 107, 39, 83, 91, 85, 36, 32, 73, 96, 80, 126, 126, 64, 52, 120, 128, 184, 198, 157, 202, 187, 179, 236, 209, 1, 250, 1, 7, 13, 224, 157, 91, 63, 32, 1, 84, 83, 40, 48, 93, 112, 48, 113, 63, 98, 61, 35, 59, 85, 61, 32, 85, 49, 55, 120, 55, 69, 118, 49, 117, 108, 46, 46, 61, 90, 98, 96, 70, 51, 35, 44, 105, 35, 36, 79, 58, 101, 113, 79, 36, 33, 101, 53, 104, 82, 38, 68, 107, 38, 50, 58, 88, 109, 40, 82, 38, 78, 84, 68, 96, 56, 91, 40, 82, 49, 53, 81, 120, 128, 212, 203, 148, 130, 168, 221, 164, 145, 1, 250, 1, 5, 13, 38, 52, 64, 63, 84, 83, 40, 82, 93, 14, 19, 3, 63, 98, 40, 83, 71, 45, 115, 39, 120, 68, 105, 84, 62, 116, 63, 32, 103, 82, 123, 121, 80, 73, 107, 49, 77, 110, 106, 69, 93, 98, 87, 61, 83, 55, 36, 71, 96, 102, 49, 96, 52, 75, 44, 120, 128, 213, 167, 208, 145, 166, 189, 130, 141, 1, 250, 1, 5, 13, 229, 22, 70, 63, 84, 83, 40, 105, 93, 9, 158, 183, 62, 98, 101, 67, 59, 39, 105, 94, 57, 86, 91, 61, 113, 63, 37, 87, 65, 78, 72, 53, 108, 76, 32, 38, 111, 118, 62, 33, 64, 58, 101, 36, 60, 97, 71, 93, 76, 70, 41, 86, 119, 119, 35, 123, 91, 101, 85, 65, 96, 89, 62, 100, 35, 117, 59, 61, 109, 59, 83, 67, 103, 104, 61, 126, 112, 87, 33, 47, 119, 71, 42, 121, 69, 113, 61, 115, 72, 35, 74, 42, 65, 124, 63, 102, 122, 32, 32, 69, 69, 41, 110, 48, 114, 100, 109, 46, 90, 36, 43, 35, 100, 69, 73, 57, 120, 128, 128, 213, 233, 231, 132, 168, 205, 190, 1, 250, 1, 5, 13, 93, 112, 196, 62, 84, 83, 40, 42, 93, 73, 86, 58, 62, 98, 30, 88, 71, 115, 105, 112, 72, 34, 106, 73, 86, 35, 111, 86, 90, 105, 109, 87, 121, 38, 95, 35, 47, 57, 68, 119, 70, 69, 122, 82, 38, 120, 128, 136, 206, 255, 243, 194, 240, 252, 159, 1, 250, 1, 10, 13, 238, 240, 17, 63, 29, 211, 32, 45, 63, 84, 83, 40, 105, 93, 227, 62, 78, 63, 98, 48, 125, 53, 37, 63, 74, 98, 35, 100, 35, 33, 59, 76, 41, 91, 91, 97, 84, 61, 95, 45, 72, 45, 78, 113, 74, 35, 38, 56, 66, 62, 76, 46, 102, 109, 106, 87, 82, 89, 91, 124, 32, 74, 53, 67, 91, 120, 59, 63, 120, 128, 144, 140, 134, 146, 151, 225, 176, 115, 250, 1, 5, 13, 18, 56, 195, 62, 84, 83, 40, 88, 93, 201, 219, 130, 62, 98, 25, 32, 96, 67, 112, 101, 50, 115, 70, 91, 106, 65, 100, 83, 44, 100, 59, 111, 36, 47, 121, 97, 98, 45, 125, 118, 120, 128, 237, 211, 203, 192, 229, 158, 221, 16, 250, 1, 5, 13, 129, 11, 110, 62, 84, 83, 40, 64, 93, 236, 40, 63, 63, 98, 46, 102, 65, 125, 91, 52, 45, 38, 73, 121, 112, 63, 100, 53, 64, 53, 41, 80, 110, 78, 52, 32, 78, 113, 53, 104, 85, 61, 83, 69, 120, 89, 123, 67, 94, 115, 72, 66, 40, 63, 125, 94, 112, 117, 50, 110, 52, 120, 128, 136, 153, 161, 226, 167, 200, 137, 60, 250, 1, 5, 13, 138, 78, 181, 62, 84, 83, 40, 117, 93, 10, 94, 99, 63, 98, 30, 69, 60, 102, 59, 102, 56, 79, 104, 114, 93, 111, 82, 36, 33, 54, 66, 65, 85, 75, 107, 101, 71, 78, 80, 85, 47, 87, 94, 69, 83, 120, 128, 139, 166, 209, 209, 213, 176, 138, 141, 1, 250, 1, 12, 13, 4, 151, 117, 63, 29, 200, 52, 29, 63, 56, 1, 200, 4, 67, 84, 83, 40, 39, 93, 62, 224, 101, 62, 98, 51, 39, 119, 91, 120, 88, 53, 97, 46, 44, 108, 116, 122, 75, 113, 117, 116, 44, 46, 124, 108, 53, 101, 86, 95, 111, 67, 62, 83, 115, 118, 83, 77, 120, 45, 57, 93, 111, 114, 45, 50, 107, 65, 73, 65, 98, 99, 120, 96, 51, 38, 78, 120, 128, 196, 210, 152, 155, 148, 148, 197, 45, 250, 1, 5, 13, 23, 118, 14, 63, 84, 83, 40, 64, 93, 58, 125, 126, 63, 98, 77, 64, 64, 122, 40, 53, 118, 46, 58, 52, 57, 70, 34, 62, 88, 55, 37, 56, 33, 106, 32, 115, 60, 52, 123, 44, 73, 92, 64, 108, 72, 50, 119, 72, 46, 120, 61, 115, 105, 118, 59, 93, 39, 52, 40, 60, 97, 90, 40, 122, 32, 53, 63, 105, 79, 43, 35, 43, 125, 123, 107, 57, 109, 76, 106, 38, 78, 88, 47, 94, 121, 48, 78, 42, 79, 65, 107, 39, 120, 128, 214, 147, 160, 250, 184, 157, 129, 17, 250, 1, 5, 13, 99, 209, 43, 63, 84, 83, 40, 56, 93, 119, 164, 80, 63, 98, 46, 84, 68, 107, 51, 113, 46, 120, 34, 116, 49, 117, 109, 43, 34, 111, 89, 73, 33, 108, 40, 74, 72, 32, 111, 102, 53, 58, 45, 62, 122, 126, 62, 81, 125, 99, 72, 95, 87, 52, 63, 95, 45, 105, 103, 58, 95, 120, 128, 128, 229, 234, 191, 244, 167, 214, 254, 1, 250, 1, 10, 13, 189, 24, 242, 62, 29, 176, 91, 5, 63, 84, 83, 40, 23, 93, 87, 0, 38, 63, 98, 40, 42, 113, 65, 66, 43, 67, 123, 75, 91, 114, 107, 98, 120, 50, 87, 59, 45, 61, 70, 121, 113, 108, 76, 72, 61, 93, 56, 85, 38, 54, 108, 90, 45, 61, 116, 75, 47, 90, 88, 37, 120, 128, 240, 135, 171, 139, 253, 190, 216, 218, 1, 250, 1, 10, 13, 224, 109, 245, 61, 29, 207, 30, 24, 63, 84, 83, 40, 58, 93, 157, 171, 96, 63, 98, 61, 73, 112, 85, 98, 68, 113, 47, 42, 55, 107, 60, 68, 120, 36, 76, 43, 70, 69, 68, 38, 48, 85, 90, 60, 43, 44, 81, 100, 65, 53, 101, 51, 32, 83, 115, 108, 97, 113, 97, 68, 92, 80, 116, 80, 87, 38, 54, 85, 43, 120, 61, 100, 51, 69, 99, 114, 53, 56, 86, 56, 63, 120, 128, 128, 237, 231, 204, 250, 231, 190, 57, 250, 1, 5, 13, 67, 171, 66, 63, 84, 83, 40, 2, 93, 189, 157, 126, 61, 98, 35, 41, 68, 68, 48, 95, 72, 83, 99, 126, 72, 95, 96, 41, 100, 37, 116, 122, 89, 71, 119, 32, 126, 90, 111, 33, 86, 72, 59, 73, 37, 50, 102, 115, 74, 78, 120, 128, 232, 145, 255, 234, 200, 142, 249, 215, 1, 250, 1, 12, 13, 214, 43, 88, 63, 29, 192, 77, 203, 62, 56, 0, 84, 83, 40, 64, 93, 34, 58, 68, 63, 98, 23, 33, 52, 123, 35, 50, 43, 83, 80, 66, 67, 112, 64, 40, 37, 41, 104, 84, 46, 41, 32, 55, 57, 121, 120, 128, 214, 214, 233, 158, 180, 181, 205, 30, 250, 1, 12, 13, 102, 213, 107, 63, 29, 137, 120, 76, 63, 56, 1, 84, 83, 40, 29, 93, 160, 56, 190, 62, 98, 79, 36, 85, 46, 118, 46, 125, 106, 93, 107, 110, 74, 115, 105, 39, 96, 65, 70, 106, 69, 68, 119, 59, 55, 64, 79, 81, 102, 57, 101, 43, 69, 76, 61, 45, 61, 109, 97, 72, 120, 38, 61, 43, 103, 63, 93, 43, 76, 50, 56, 115, 81, 33, 56, 111, 74, 103, 62, 109, 71, 92, 55, 81, 118, 96, 72, 124, 85, 92, 104, 113, 95, 124, 112, 63, 39, 108, 83, 118, 97, 120, 128, 180, 241, 207, 206, 172, 139, 255, 48, 250, 1, 5, 13, 128, 144, 51, 61, 84, 83, 40, 69, 93, 122, 151, 11, 60, 98, 33, 113, 88, 67, 52, 77, 97, 84, 79, 115, 33, 59, 110, 107, 51, 39, 117, 96, 84, 111, 73, 69, 52, 84, 47, 119, 104, 93, 52, 70, 43, 35, 88, 98, 120, 128, 248, 155, 152, 163, 242, 223, 193, 65, 250, 1, 10, 13, 237, 126, 112, 61, 29, 202, 32, 162, 61, 84, 83, 40, 6, 93, 57, 254, 66, 63, 98, 43, 40, 121, 51, 66, 107, 122, 84, 80, 58, 88, 76, 32, 33, 110, 51, 42, 89, 92, 36, 52, 59, 99, 35, 64, 40, 104, 125, 98, 43, 59, 46, 126, 113, 118, 76, 117, 53, 35, 72, 88, 89, 71, 77, 120, 128, 145, 141, 244, 208, 137, 233, 160, 135, 1, 250, 1, 10, 13, 146, 140, 64, 63, 29, 46, 141, 205, 62, 84, 83, 40, 12, 93, 72, 90, 90, 62, 98, 42, 69, 87, 117, 71, 34, 111, 76, 67, 117, 114, 57, 35, 124, 113, 68, 126, 74, 76, 46, 42, 65, 61, 116, 86, 52, 75, 89, 115, 53, 125, 87, 97, 94, 105, 60, 83, 69, 101, 124, 33, 74, 40, 120, 128, 128, 204, 244, 239, 245, 223, 164, 255, 1, 250, 1, 10, 13, 240, 168, 182, 62, 29, 206, 40, 69, 63, 84, 83, 40, 49, 93, 146, 253, 30, 63, 98, 57, 102, 34, 78, 90, 58, 55, 126, 113, 39, 98, 62, 51, 85, 53, 87, 46, 119, 58, 86, 67, 51, 84, 112, 89, 99, 79, 44, 95, 57, 61, 82, 108, 110, 111, 113, 113, 102, 67, 60, 74, 95, 118, 53, 112, 38, 81, 70, 107, 113, 121, 39, 38, 50, 34, 71, 49, 49, 120, 128, 240, 218, 154, 174, 145, 215, 213, 241, 1, 250, 1, 5, 13, 175, 7, 102, 63, 84, 83, 40, 99, 93, 162, 167, 244, 61, 98, 42, 62, 88, 104, 47, 81, 68, 101, 66, 101, 70, 83, 125, 44, 98, 59, 63, 126, 83, 50, 41, 64, 108, 63, 54, 75, 89, 107, 71, 96, 95, 112, 76, 81, 62, 64, 62, 75, 96, 83, 45, 95, 72, 120, 128, 237, 133, 229, 197, 229, 174, 168, 16, 250, 1, 5, 13, 106, 166, 7, 63, 84, 83, 40, 67, 93, 14, 31, 191, 61, 98, 39, 38, 62, 44, 112, 49, 65, 99, 97, 106, 81, 56, 82, 99, 119, 87, 61, 97, 37, 85, 38, 75, 108, 65, 124, 115, 61, 126, 36, 72, 118, 97, 107, 98, 66, 83, 77, 59, 110, 78, 120, 128, 156, 186, 152, 174, 228, 209, 195, 64, 250, 1, 5, 13, 244, 238, 67, 63, 84, 83, 40, 105, 93, 240, 27, 11, 63, 98, 27, 110, 37, 119, 124, 91, 85, 66, 101, 37, 124, 76, 92, 56, 124, 47, 124, 114, 65, 94, 56, 114, 110, 76, 110, 64, 67, 42, 120, 192, 131, 255, 149, 202, 155, 248, 175, 3, 250, 1, 12, 13, 14, 188, 94, 63, 29, 48, 244, 19, 63, 56, 0, 84, 83, 40, 38, 93, 217, 203, 32, 63, 98, 25, 57, 81, 118, 122, 64, 66, 78, 38, 49, 91, 110, 54, 101, 58, 79, 44, 112, 90, 45, 42, 86, 96, 32, 88, 41, 120, 128, 176, 145, 197, 188, 249, 138, 169, 80, 250, 1, 12, 13, 7, 52, 129, 62, 29, 55, 221, 230, 62, 56, 0, 84, 83, 40, 109, 93, 199, 241, 245, 62, 98, 51, 118, 47, 32, 126, 75, 55, 33, 82, 126, 48, 49, 97, 50, 92, 88, 90, 40, 89, 116, 33, 123, 118, 50, 36, 87, 81, 61, 113, 100, 42, 35, 101, 62, 46, 118, 39, 101, 59, 36, 116, 111, 39, 46, 120, 69, 126, 108, 123, 80, 32, 47, 120, 128, 232, 232, 174, 139, 217, 198, 246, 107, 250, 1, 10, 13, 246, 117, 233, 62, 29, 248, 252, 87, 63, 84, 83, 40, 65, 93, 239, 167, 127, 63, 98, 42, 123, 122, 70, 120, 120, 47, 109, 115, 44, 75, 66, 36, 100, 80, 116, 107, 85, 126, 49, 115, 104, 57, 94, 88, 100, 65, 65, 99, 122, 50, 57, 76, 92, 118, 43, 105, 116, 42, 122, 96, 57, 58, 120, 128, 216, 225, 226, 203, 182, 141, 150, 103, 250, 1, 10, 13, 30, 106, 111, 63, 29, 70, 37, 32, 63, 84, 83, 40, 95, 93, 69, 238, 115, 62, 98, 45, 126, 43, 66, 58, 75, 94, 91, 54, 98, 59, 109, 52, 87, 108, 41, 119, 120, 49, 117, 71, 108, 69, 42, 118, 75, 36, 80, 90, 77, 75, 100, 123, 123, 42, 65, 87, 88, 119, 109, 109, 32, 96, 71, 77, 39, 120, 128, 144, 254, 162, 238, 235, 240, 151, 242, 1, 250, 1, 10, 13, 248, 142, 186, 62, 29, 207, 95, 94, 63, 84, 83, 40, 21, 93, 158, 49, 183, 62, 98, 46, 114, 103, 101, 64, 72, 88, 32, 74, 110, 70, 45, 33, 103, 54, 86, 112, 56, 76, 74, 80, 63, 33, 66, 39, 70, 44, 124, 92, 111, 85, 97, 92, 73, 43, 87, 124, 54, 90, 96, 103, 87, 45, 41, 70, 95, 125, 120, 128, 160, 218, 204, 203, 149, 210, 229, 117, 250, 1, 10, 13, 200, 67, 57, 62, 29, 51, 192, 104, 63, 84, 83, 40, 29, 93, 22, 214, 34, 63, 98, 30, 116, 71, 94, 34, 113, 68, 93, 120, 60, 91, 67, 90, 56, 100, 79, 86, 92, 93, 88, 89, 92, 106, 97, 120, 50, 119, 122, 70, 71, 52, 120, 128, 144, 254, 218, 156, 148, 241, 215, 229, 1, 250, 1, 5, 13, 23, 39, 57, 63, 200, 4, 77, 84, 83, 40, 117, 93, 81, 223, 74, 63, 98, 60, 53, 106, 41, 101, 87, 87, 97, 68, 44, 51, 82, 111, 97, 47, 71, 59, 82, 61, 91, 32, 41, 100, 100, 111, 120, 72, 54, 81, 40, 110, 94, 32, 63, 120, 58, 107, 83, 118, 33, 34, 122, 70, 85, 101, 95, 40, 57, 55, 32, 119, 57, 71, 125, 119, 97, 79, 37, 56, 108, 46, 120, 128, 196, 253, 192, 245, 164, 236, 135, 172, 1, 250, 1, 5, 13, 29, 123, 44, 62, 84, 83, 40, 37, 93, 185, 168, 154, 62, 98, 27, 84, 81, 79, 104, 115, 91, 103, 90, 60, 89, 36, 98, 47, 126, 48, 112, 47, 126, 80, 47, 85, 54, 33, 71, 54, 106, 101, 120, 128, 220, 150, 177, 182, 235, 181, 137, 36, 250, 1, 5, 13, 48, 178, 235, 61, 84, 83, 40, 108, 93, 13, 133, 45, 63, 98, 31, 106, 42, 56, 49, 45, 88, 80, 66, 68, 48, 93, 43, 68, 115, 126, 64, 38, 40, 122, 126, 65, 94, 44, 101, 61, 79, 40, 81, 41, 116, 76, 120, 128, 232, 148, 128, 216, 210, 166, 129, 192, 1, 250, 1, 5, 13, 158, 108, 224, 62, 84, 83, 40, 117, 93, 156, 184, 136, 62, 98, 45, 87, 117, 108, 34, 56, 93, 92, 44, 125, 119, 43, 92, 82, 55, 73, 94, 49, 47, 113, 63, 43, 125, 81, 114, 92, 79, 126, 56, 78, 98, 46, 96, 75, 89, 70, 73, 56, 37, 98, 64, 100, 82, 45, 109, 49, 120, 128, 144, 159, 145, 235, 128, 249, 137, 111, 250, 1, 10, 13, 136, 39, 13, 63, 29, 123, 243, 136, 62, 84, 83, 40, 84, 93, 196, 195, 112, 62, 98, 63, 59, 64, 86, 88, 45, 88, 67, 120, 68, 103, 94, 67, 92, 58, 105, 73, 48, 119, 112, 32, 69, 43, 75, 80, 90, 88, 112, 99, 96, 105, 122, 100, 88, 56, 71, 108, 41, 114, 76, 108, 37, 62, 95, 122, 96, 64, 116, 113, 36, 103, 97, 91, 71, 94, 111, 47, 115, 38, 125, 83, 103, 95, 55, 120, 128, 232, 204, 236, 233, 165, 230, 228, 206, 1, 250, 1, 5, 13, 73, 230, 75, 63, 84, 83, 40, 119, 93, 27, 196, 70, 63, 98, 42, 68, 114, 123, 64, 61, 75, 35, 121, 38, 75, 80, 110, 57, 98, 125, 94, 120, 39, 63, 60, 121, 71, 56, 120, 35, 116, 119, 36, 69, 39, 37, 46, 102, 85, 80, 126, 40, 70, 68, 47, 68, 100, 120, 128, 216, 137, 166, 204, 184, 205, 176, 226, 1, 250, 1, 5, 13, 50, 70, 53, 63, 84, 83, 40, 46, 93, 116, 226, 109, 62, 98, 95, 99, 112, 105, 33, 62, 82, 76, 92, 111, 123, 89, 34, 60, 71, 83, 126, 84, 126, 69, 66, 40, 98, 50, 126, 86, 81, 97, 47, 119, 53, 93, 84, 85, 108, 48, 39, 58, 68, 103, 81, 96, 42, 101, 83, 69, 37, 42, 124, 91, 69, 47, 105, 61, 32, 45, 32, 93, 105, 73, 107, 112, 61, 100, 90, 62, 37, 76, 78, 55, 75, 99, 48, 54, 115, 96, 125, 124, 94, 89, 80, 71, 100, 82, 82, 37, 115, 54, 84, 94, 47, 72, 79, 121, 123, 96, 120, 128, 172, 233, 170, 145, 243, 202, 214, 48, 250, 1, 5, 13, 244, 115, 199, 62, 84, 83, 40, 14, 93, 95, 176, 98, 62, 98, 54, 63, 88, 90, 100, 48, 96, 126, 82, 73, 63, 47, 35, 126, 48, 119, 67, 43, 105, 49, 85, 74, 109, 118, 111, 39, 34, 51, 53, 57, 50, 60, 88, 113, 73, 57, 119, 107, 32, 66, 112, 38, 64, 108, 53, 79, 44, 73, 62, 33, 87, 84, 88, 51, 84, 120, 128, 136, 206, 233, 209, 217, 240, 204, 99, 250, 1, 5, 13, 32, 111, 4, 63, 84, 83, 40, 86, 93, 100, 159, 72, 63, 98, 48, 92, 45, 77, 104, 56, 54, 35, 86, 48, 85, 118, 126, 86, 43, 71, 63, 79, 41, 33, 97, 64, 122, 88, 115, 52, 97, 92, 98, 68, 61, 94, 103, 55, 33, 66, 53, 67, 60, 39, 85, 50, 119, 122, 115, 71, 33, 33, 73, 120, 128, 188, 204, 192, 216, 218, 227, 132, 24, 250, 1, 5, 13, 245, 58, 94, 63, 84, 83, 40, 7, 93, 181, 59, 44, 63, 98, 63, 79, 126, 74, 96, 83, 88, 84, 86, 88, 63, 49, 114, 118, 47, 103, 85, 104, 50, 123, 50, 34, 75, 78, 71, 32, 100, 76, 50, 96, 51, 81, 81, 55, 125, 55, 55, 85, 96, 96, 106, 103, 80, 123, 113, 101, 40, 124, 55, 57, 74, 96, 126, 118, 113, 93, 36, 79, 34, 96, 109, 43, 65, 117, 120, 128, 152, 136, 167, 150, 193, 193, 184, 178, 1, 250, 1, 10, 13, 225, 40, 79, 63, 29, 139, 31, 43, 63, 84, 83, 40, 77, 93, 185, 10, 108, 63, 98, 51, 119, 80, 126, 39, 80, 49, 74, 81, 78, 91, 96, 119, 103, 52, 120, 53, 82, 82, 90, 68, 63, 51, 102, 83, 126, 113, 94, 69, 89, 86, 37, 38, 76, 36, 63, 103, 74, 88, 77, 101, 71, 44, 84, 115, 65, 104, 38, 117, 72, 96, 114, 120, 128, 132, 224, 180, 172, 142, 128, 166, 36, 250, 1, 5, 13, 217, 219, 104, 61, 84, 83, 40, 28, 93, 93, 217, 22, 63, 98, 33, 99, 104, 75, 40, 93, 81, 36, 118, 119, 86, 90, 74, 99, 116, 48, 105, 120, 36, 115, 124, 50, 93, 114, 50, 54, 107, 103, 124, 120, 98, 105, 32, 55, 120, 128, 216, 195, 168, 151, 205, 157, 196, 186, 1, 250, 1, 12, 13, 239, 242, 29, 63, 29, 39, 238, 125, 63, 40, 1, 200, 4, 64, 84, 83, 40, 105, 93, 159, 170, 83, 62, 98, 36, 67, 53, 92, 60, 101, 61, 66, 33, 55, 117, 120, 53, 48, 56, 69, 38, 117, 57, 112, 112, 104, 39, 125, 52, 108, 89, 51, 55, 57, 49, 105, 72, 52, 96, 88, 124, 120, 192, 140, 150, 145, 176, 228, 176, 137, 129, 1, 250, 1, 10, 13, 169, 172, 17, 63, 29, 174, 82, 234, 62, 84, 83, 40, 117, 93, 180, 5, 223, 62, 98, 36, 102, 100, 34, 105, 84, 111, 126, 38, 83, 41, 101, 94, 125, 73, 59, 54, 71, 79, 43, 42, 42, 102, 38, 43, 79, 32, 79, 94, 71, 38, 63, 108, 119, 71, 34, 66, 120, 128, 184, 213, 175, 214, 245, 171, 253, 121, 250, 1, 10, 13, 152, 129, 226, 62, 29, 81, 97, 129, 62, 84, 83, 40, 98, 93, 187, 164, 86, 62, 98, 62, 49, 100, 40, 36, 105, 54, 54, 60, 101, 88, 38, 63, 109, 62, 126, 93, 118, 58, 83, 64, 63, 93, 77, 104, 119, 101, 85, 71, 120, 59, 124, 55, 65, 117, 120, 33, 125, 38, 100, 105, 56, 65, 96, 76, 56, 77, 42, 40, 35, 99, 36, 47, 99, 73, 115, 82, 55, 62, 44, 35, 95, 110, 120, 128, 248, 160, 242, 131, 185, 135, 146, 48, 250, 1, 10, 13, 11, 239, 228, 62, 29, 161, 78, 29, 63, 84, 83, 40, 104, 93, 199, 133, 123, 63, 98, 60, 118, 69, 124, 94, 111, 84, 104, 39, 124, 124, 32, 80, 73, 91, 77, 67, 52, 55, 108, 82, 119, 34, 69, 105, 95, 121, 97, 41, 73, 125, 54, 113, 72, 78, 50, 97, 37, 37, 51, 90, 121, 65, 117, 85, 54, 108, 97, 71, 50, 74, 46, 51, 108, 60, 38, 116, 32, 51, 126, 117, 120, 128, 152, 163, 242, 157, 221, 153, 146, 239, 1, 250, 1, 5, 13, 165, 169, 41, 63, 84, 83, 40, 82, 93, 129, 206, 125, 63, 98, 78, 102, 46, 39, 122, 72, 106, 62, 47, 35, 50, 87, 85, 43, 111, 83, 113, 55, 57, 118, 125, 110, 34, 37, 44, 72, 61, 97, 113, 37, 61, 102, 58, 99, 118, 109, 40, 101, 102, 125, 71, 44, 126, 47, 89, 99, 79, 104, 47, 94, 45, 94, 88, 103, 94, 47, 99, 40, 121, 81, 42, 40, 75, 42, 101, 75, 60, 113, 52, 33, 74, 44, 79, 58, 79, 112, 111, 113, 74, 120, 128, 188, 188, 228, 166, 219, 227, 163, 182, 1, 250, 1, 5, 13, 132, 192, 108, 63, 84, 83, 40, 69, 93, 253, 183, 7, 63, 98, 43, 50, 118, 94, 45, 82, 36, 103, 42, 126, 106, 53, 115, 62, 96, 115, 73, 46, 70, 93, 84, 45, 51, 33, 46, 61, 56, 109, 62, 112, 93, 81, 88, 85, 85, 56, 50, 39, 61, 105, 108, 75, 118, 75, 120, 128, 148, 245, 233, 140, 164, 169, 207, 44, 250, 1, 10, 13, 144, 181, 143, 62, 29, 135, 198, 209, 62, 84, 83, 40, 22, 93, 201, 58, 48, 62, 98, 44, 122, 71, 60, 33, 58, 126, 68, 125, 117, 79, 111, 58, 54, 72, 56, 64, 56, 91, 61, 104, 71, 97, 66, 112, 92, 112, 40, 54, 103, 95, 114, 117, 39, 92, 66, 72, 65, 80, 62, 85, 48, 57, 59, 86, 120, 128, 200, 163, 228, 156, 207, 156, 162, 61, 250, 1, 5, 13, 103, 26, 253, 62, 84, 83, 40, 72, 93, 31, 37, 9, 61, 98, 40, 93, 42, 39, 94, 41, 70, 103, 56, 37, 75, 67, 72, 118, 46, 54, 53, 92, 120, 50, 88, 37, 110, 126, 103, 61, 102, 88, 46, 70, 107, 67, 45, 57, 37, 87, 92, 87, 52, 108, 95, 120, 128, 184, 245, 155, 238, 209, 171, 223, 241, 1, 250, 1, 5, 13, 31, 165, 211, 61, 84, 83, 40, 47, 93, 234, 10, 101, 63, 98, 62, 44, 116, 94, 34, 34, 37, 120, 83, 60, 125, 124, 110, 42, 63, 64, 65, 109, 89, 113, 56, 39, 53, 47, 112, 85, 89, 92, 71, 43, 81, 98, 123, 74, 41, 90, 71, 40, 85, 43, 64, 113, 110, 112, 59, 40, 104, 81, 56, 114, 74, 113, 59, 55, 43, 109, 118, 101, 108, 75, 72, 72, 81, 120, 128, 220, 247, 220, 214, 228, 189, 231, 181, 1, 250, 1, 5, 13, 201, 24, 72, 63, 84, 83, 40, 35, 93, 120, 150, 71, 60, 98, 56, 67, 32, 99, 120, 57, 55, 77, 81, 69, 56, 68, 114, 104, 108, 39, 68, 84, 96, 95, 71, 100, 63, 59, 99, 97, 58, 42, 97, 119, 64, 70, 38, 33, 38, 68, 80, 84, 121, 48, 89, 108, 100, 100, 84, 82, 113, 36, 94, 65, 36, 123, 102, 43, 113, 60, 36, 120, 128, 128, 142, 188, 139, 253, 239, 224, 219, 1, 250, 1, 5, 13, 168, 228, 104, 58, 84, 83, 40, 31, 93, 83, 87, 126, 63, 98, 95, 45, 107, 89, 36, 113, 62, 113, 97, 71, 85, 110, 89, 79, 37, 90, 126, 89, 102, 49, 110, 54, 74, 64, 114, 67, 94, 121, 46, 105, 64, 107, 84, 97, 49, 75, 33, 43, 96, 97, 51, 32, 65, 54, 106, 52, 66, 55, 37, 55, 60, 73, 124, 109, 71, 104, 97, 74, 101, 96, 50, 67, 99, 118, 38, 104, 58, 119, 61, 88, 88, 115, 120, 36, 124, 110, 115, 51, 84, 94, 33, 71, 116, 117, 77, 118, 110, 101, 58, 72, 105, 85, 68, 126, 79, 111, 120, 128, 220, 201, 143, 146, 195, 205, 252, 37, 250, 1, 5, 13, 90, 29, 224, 62, 84, 83, 40, 21, 93, 45, 177, 157, 60, 98, 49, 120, 73, 120, 76, 94, 72, 79, 119, 111, 88, 115, 77, 117, 39, 94, 106, 78, 108, 73, 47, 121, 84, 92, 116, 110, 34, 79, 120, 84, 45, 82, 74, 35, 82, 101, 86, 77, 72, 55, 37, 70, 117, 116, 96, 83, 59, 95, 61, 64, 120, 128, 192, 222, 180, 251, 150, 244, 165, 219, 1, 250, 1, 5, 13, 45, 227, 178, 62, 84, 83, 40, 61, 93, 24, 216, 26, 58, 98, 23, 32, 39, 68, 107, 36, 92, 91, 120, 86, 67, 98, 37, 73, 73, 66, 64, 39, 60, 38, 85, 68, 103, 36, 120, 128, 200, 183, 204, 250, 180, 188, 227, 212, 1, 250, 1, 5, 13, 124, 174, 117, 63, 84, 83, 40, 43, 93, 48, 63, 9, 63, 98, 40, 65, 49, 87, 111, 107, 37, 74, 34, 75, 64, 105, 73, 106, 90, 44, 110, 81, 49, 91, 42, 112, 61, 123, 57, 70, 59, 119, 90, 55, 34, 100, 111, 98, 41, 57, 102, 125, 82, 118, 32, 120, 128, 224, 168, 236, 200, 143, 198, 226, 126, 250, 1, 10, 13, 30, 98, 210, 62, 29, 118, 249, 102, 63, 84, 83, 40, 126, 93, 240, 166, 154, 62, 98, 61, 114, 58, 122, 56, 120, 81, 77, 63, 53, 97, 36, 53, 62, 72, 79, 45, 110, 106, 73, 91, 120, 101, 96, 64, 68, 112, 125, 58, 90, 43, 73, 70, 123, 123, 82, 32, 123, 66, 62, 79, 55, 79, 77, 71, 53, 81, 94, 42, 70, 114, 47, 91, 76, 67, 66, 45, 88, 89, 114, 39, 83, 120, 128, 236, 229, 167, 144, 220, 174, 190, 26, 250, 1, 5, 13, 153, 210, 55, 63, 84, 83, 40, 13, 93, 213, 66, 129, 62, 98, 16, 93, 56, 66, 116, 79, 48, 75, 75, 120, 68, 73, 55, 57, 43, 114, 49, 120, 128, 208, 245, 137, 254, 129, 173, 207, 240, 1, 250, 1, 10, 13, 122, 28, 94, 63, 29, 48, 6, 64, 63, 84, 83, 40, 121, 93, 53, 11, 78, 63, 98, 33, 121, 88, 88, 69, 70, 66, 79, 55, 123, 35, 106, 67, 47, 87, 56, 60, 52, 118, 98, 98, 48, 82, 125, 120, 116, 63, 78, 32, 116, 94, 63, 123, 46, 120, 128, 236, 216, 148, 167, 224, 198, 165, 185, 1, 250, 1, 10, 13, 219, 48, 52, 63, 29, 120, 209, 41, 63, 84, 83, 40, 97, 93, 210, 155, 255, 62, 98, 64, 40, 109, 123, 51, 124, 64, 93, 115, 42, 83, 89, 116, 95, 123, 37, 56, 91, 70, 90, 95, 79, 39, 115, 79, 65, 60, 99, 109, 53, 99, 115, 88, 82, 99, 109, 115, 102, 123, 84, 92, 59, 33, 53, 121, 69, 32, 126, 67, 118, 116, 109, 60, 36, 41, 126, 33, 121, 76, 113, 96, 92, 110, 94, 69, 120, 128, 176, 208, 210, 138, 158, 131, 149, 213, 1, 250, 1, 5, 13, 28, 185, 205, 59, 84, 83, 40, 45, 93, 165, 157, 115, 63, 98, 71, 45, 48, 80, 94, 112, 124, 67, 78, 113, 120, 41, 65, 61, 63, 117, 63, 116, 86, 83, 73, 100, 108, 121, 57, 42, 115, 126, 75, 65, 110, 58, 69, 93, 35, 53, 102, 67, 47, 74, 39, 100, 80, 47, 32, 67, 80, 67, 60, 119, 62, 79, 40, 75, 119, 54, 64, 53, 55, 83, 124, 124, 119, 44, 34, 94, 99, 98, 57, 41, 47, 122, 120, 128, 208, 207, 178, 193, 250, 252, 148, 94, 250, 1, 5, 13, 118, 217, 6, 62, 84, 83, 40, 59, 93, 154, 50, 54, 63, 98, 57, 51, 92, 121, 117, 89, 80, 98, 82, 35, 63, 50, 120, 101, 108, 116, 81, 44, 90, 77, 41, 108, 67, 45, 65, 94, 108, 41, 50, 104, 67, 104, 122, 125, 51, 34, 98, 58, 65, 121, 75, 58, 68, 41, 97, 76, 105, 124, 75, 52, 92, 109, 43, 94, 66, 118, 111, 79, 120, 128, 232, 249, 183, 185, 181, 206, 191, 203, 1, 250, 1, 5, 13, 38, 20, 114, 62, 84, 83, 40, 102, 93, 248, 41, 209, 62, 98, 60, 79, 104, 94, 85, 54, 121, 81, 106, 50, 54, 106, 95, 34, 110, 71, 58, 74, 116, 115, 110, 93, 125, 44, 84, 93, 60, 90, 60, 50, 51, 97, 42, 44, 36, 105, 90, 73, 43, 53, 111, 75, 96, 34, 69, 35, 74, 91, 83, 78, 85, 36, 98, 65, 124, 104, 80, 92, 41, 119, 120, 120, 128, 244, 193, 171, 174, 162, 143, 220, 41, 250, 1, 5, 13, 198, 246, 95, 62, 84, 83, 40, 74, 93, 119, 90, 125, 63, 98, 27, 83, 96, 83, 124, 36, 107, 111, 62, 94, 36, 67, 124, 123, 101, 81, 50, 95, 39, 108, 92, 46, 126, 104, 47, 59, 57, 124, 120, 128, 212, 145, 255, 210, 176, 141, 249, 43, 250, 1, 12, 13, 15, 210, 81, 62, 29, 183, 91, 149, 62, 56, 1, 84, 83, 40, 30, 93, 255, 63, 175, 61, 98, 62, 35, 113, 66, 118, 94, 79, 98, 100, 101, 35, 61, 88, 107, 84, 118, 87, 100, 57, 55, 71, 122, 111, 84, 119, 67, 97, 106, 109, 79, 43, 67, 82, 45, 116, 120, 115, 47, 59, 33, 87, 42, 118, 72, 122, 74, 85, 79, 99, 38, 103, 77, 34, 57, 110, 44, 50, 60, 73, 82, 124, 99, 115, 120, 128, 148, 196, 217, 227, 165, 161, 204, 157, 1, 250, 1, 5, 13, 201, 204, 27, 63, 84, 83, 40, 85, 93, 132, 149, 70, 63, 98, 53, 75, 118, 91, 35, 71, 73, 55, 94, 61, 36, 71, 89, 76, 109, 50, 38, 103, 102, 92, 64, 56, 61, 103, 101, 86, 100, 103, 36, 114, 53, 96, 109, 58, 96, 41, 87, 40, 34, 64, 36, 105, 90, 80, 39, 105, 97, 124, 100, 105, 93, 44, 78, 124, 120, 128, 164, 141, 160, 181, 165, 234, 128, 170, 1, 250, 1, 5, 13, 241, 176, 4, 63, 84, 83, 40, 18, 93, 194, 35, 24, 62, 98, 70, 116, 75, 98, 96, 51, 107, 39, 67, 89, 63, 106, 99, 89, 124, 101, 69, 87, 85, 93, 107, 96, 123, 116, 102, 34, 57, 52, 41, 49, 111, 122, 47, 122, 73, 51, 85, 93, 67, 85, 109, 73, 98, 47, 66, 49, 33, 48, 95, 70, 40, 68, 104, 114, 65, 76, 119, 86, 122, 93, 121, 86, 125, 50, 104, 67, 91, 104, 47, 105, 47, 120, 128, 160, 136, 253, 237, 146, 194, 232, 96, 250, 1, 5, 13, 100, 181, 88, 62, 84, 83, 40, 0, 93, 170, 238, 84, 63, 98, 83, 66, 124, 107, 81, 84, 33, 41, 84, 98, 40, 74, 50, 59, 89, 124, 58, 126, 97, 100, 91, 54, 74, 80, 69, 125, 85, 56, 32, 116, 54, 64, 48, 103, 35, 125, 78, 44, 36, 69, 91, 112, 34, 59, 41, 62, 49, 64, 46, 50, 79, 48, 37, 78, 67, 88, 118, 76, 69, 82, 126, 104, 40, 94, 75, 103, 58, 73, 55, 90, 77, 46, 121, 60, 41, 106, 52, 47, 70, 39, 108, 52, 41, 109, 120, 128, 176, 164, 169, 230, 128, 163, 202, 178, 1, 250, 1, 5, 13, 168, 192, 142, 61, 84, 83, 40, 35, 93, 238, 211, 48, 63, 98, 72, 68, 74, 38, 34, 101, 81, 69, 114, 103, 66, 110, 65, 35, 103, 41, 83, 99, 64, 53, 104, 69, 88, 67, 103, 37, 61, 101, 106, 95, 57, 57, 69, 76, 87, 36, 107, 83, 74, 71, 72, 117, 53, 34, 112, 63, 36, 35, 36, 43, 84, 41, 36, 111, 81, 60, 106, 38, 62, 124, 71, 106, 90, 50, 78, 41, 73, 116, 75, 98, 60, 126, 57, 120, 128, 248, 243, 235, 206, 212, 159, 223, 246, 1, 250, 1, 5, 13, 60, 210, 77, 63, 84, 83, 40, 109, 93, 211, 250, 35, 62, 98, 81, 86, 82, 71, 32, 58, 96, 95, 42, 48, 52, 84, 122, 58, 57, 101, 53, 76, 32, 92, 59, 34, 83, 103, 117, 47, 87, 65, 109, 85, 110, 43, 35, 94, 45, 52, 83, 117, 124, 45, 42, 122, 40, 62, 115, 116, 121, 48, 73, 85, 104, 107, 119, 47, 86, 44, 35, 105, 81, 111, 97, 62, 112, 83, 64, 41, 80, 59, 45, 36, 50, 63, 79, 114, 82, 63, 121, 52, 114, 32, 53, 70, 120, 168, 224, 188, 129, 191, 130, 230, 117, 250, 1, 5, 13, 97, 139, 127, 62, 84, 83, 40, 101, 93, 50, 69, 7, 61, 98, 36, 50, 114, 40, 32, 49, 104, 68, 44, 74, 106, 41, 83, 125, 106, 68, 93, 35, 68, 67, 73, 60, 37, 92, 54, 50, 109, 117, 80, 90, 59, 70, 88, 102, 60, 117, 92, 120, 128, 198, 188, 164, 227, 178, 228, 163, 154, 1, 250, 1, 7, 13, 112, 62, 7, 62, 32, 1, 84, 83, 40, 53, 93, 232, 126, 113, 63, 98, 51, 67, 71, 102, 53, 69, 54, 40, 91, 87, 67, 83, 114, 66, 101, 45, 54, 112, 109, 66, 113, 115, 81, 47, 67, 80, 108, 96, 116, 102, 73, 117, 80, 122, 78, 119, 93, 116, 32, 107, 86, 109, 115, 35, 118, 114, 101, 68, 86, 104, 70, 66, 120, 128, 164, 150, 155, 255, 177, 178, 217, 40, 250, 1, 5, 13, 126, 196, 0, 63, 84, 83, 40, 71, 93, 40, 26, 132, 61, 98, 97, 113, 56, 66, 100, 88, 85, 50, 116, 45, 76, 34, 119, 115, 108, 79, 64, 111, 34, 107, 35, 32, 77, 55, 80, 106, 72, 42, 43, 63, 39, 87, 32, 69, 72, 38, 68, 81, 59, 51, 32, 91, 125, 116, 73, 111, 108, 80, 104, 57, 38, 81, 59, 99, 81, 37, 67, 32, 113, 121, 48, 75, 39, 84, 37, 116, 33, 81, 74, 102, 42, 109, 84, 109, 106, 71, 33, 87, 109, 95, 124, 119, 65, 113, 57, 85, 60, 60, 114, 66, 98, 68, 95, 64, 35, 83, 83, 72, 120, 128, 200, 194, 179, 189, 173, 148, 156, 235, 1, 250, 1, 5, 13, 99, 141, 13, 63, 84, 83, 40, 104, 93, 136, 5, 146, 62, 98, 27, 37, 33, 46, 55, 124, 76, 119, 41, 36, 106, 50, 49, 124, 56, 42, 52, 59, 79, 87, 100, 94, 39, 36, 101, 46, 52, 106, 120, 128, 254, 223, 234, 164, 234, 255, 213, 31, 250, 1, 5, 13, 87, 8, 95, 63, 84, 83, 40, 74, 93, 63, 52, 64, 63, 98, 42, 56, 112, 96, 113, 63, 98, 33, 87, 110, 68, 104, 62, 118, 49, 77, 66, 105, 73, 63, 45, 64, 123, 41, 91, 124, 124, 72, 41, 104, 97, 96, 54, 75, 35, 120, 64, 59, 69, 106, 80, 57, 118, 120, 128, 168, 217, 154, 172, 218, 202, 213, 225, 1, 250, 1, 5, 13, 116, 252, 173, 62, 84, 83, 40, 113, 93, 198, 39, 66, 63, 98, 42, 44, 83, 95, 112, 32, 108, 83, 74, 71, 59, 103, 37, 115, 65, 57, 118, 110, 44, 98, 82, 114, 115, 56, 45, 38, 68, 93, 109, 114, 72, 51, 104, 101, 52, 112, 116, 73, 118, 96, 114, 97, 32, 120, 128, 152, 157, 249, 217, 179, 233, 201, 207, 1, 250, 1, 5, 13, 33, 248, 35, 63, 84, 83, 40, 74, 93, 153, 69, 113, 62, 98, 64, 81, 72, 55, 66, 40, 91, 92, 66, 116, 55, 58, 82, 105, 91, 46, 100, 87, 125, 40, 125, 62, 94, 80, 67, 77, 118, 75, 110, 111, 114, 56, 90, 84, 111, 113, 53, 86, 79, 64, 86, 43, 66, 63, 88, 89, 118, 45, 37, 100, 124, 71, 92, 84, 88, 118, 113, 119, 114, 116, 48, 48, 108, 82, 34, 120, 128, 184, 248, 174, 189, 200, 195, 247, 126, 250, 1, 5, 13, 172, 20, 43, 63, 84, 83, 40, 123, 93, 212, 194, 111, 63, 98, 30, 104, 120, 46, 39, 93, 81, 114, 122, 63, 119, 104, 85, 105, 69, 42, 114, 74, 90, 38, 122, 119, 32, 61, 99, 90, 47, 70, 61, 111, 61, 120, 128, 184, 148, 185, 169, 182, 163, 201, 77, 250, 1, 5, 13, 196, 36, 113, 63, 84, 83, 40, 118, 93, 138, 4, 81, 62, 98, 64, 59, 106, 109, 63, 126, 35, 101, 122, 82, 126, 41, 62, 70, 105, 97, 95, 86, 67, 89, 33, 33, 104, 90, 74, 75, 77, 42, 84, 43, 34, 61, 110, 91, 85, 42, 63, 36, 42, 91, 35, 52, 124, 76, 61, 89, 60, 104, 91, 91, 47, 101, 54, 64, 119, 50, 81, 47, 67, 114, 81, 119, 49, 111, 80, 120, 128, 144, 150, 253, 170, 251, 176, 233, 215, 1, 250, 1, 5, 13, 83, 252, 138, 62, 84, 83, 40, 87, 93, 62, 169, 86, 63, 98, 67, 95, 66, 91, 75, 102, 86, 108, 35, 59, 61, 111, 47, 100, 78, 120, 122, 59, 39, 78, 99, 67, 87, 47, 95, 54, 42, 42, 35, 44, 123, 91, 64, 90, 119, 123, 56, 83, 58, 78, 104, 42, 46, 53, 113, 83, 99, 107, 72, 56, 115, 52, 89, 106, 124, 76, 39, 50, 122, 52, 92, 75, 104, 117, 62, 97, 78, 84, 120, 128, 248, 154, 220, 252, 193, 215, 225, 229, 1, 250, 1, 10, 13, 205, 239, 7, 63, 29, 20, 242, 42, 63, 84, 83, 40, 51, 93, 81, 93, 28, 60, 98, 67, 88, 100, 88, 53, 65, 61, 43, 82, 61, 97, 106, 56, 102, 33, 84, 92, 75, 115, 37, 88, 37, 113, 61, 65, 55, 117, 47, 36, 47, 32, 117, 87, 76, 51, 33, 38, 67, 54, 100, 116, 111, 97, 62, 104, 125, 93, 87, 95, 121, 118, 64, 93, 89, 109, 122, 101, 70, 55, 124, 74, 45, 38, 66, 61, 107, 50, 106, 120, 128, 144, 157, 204, 200, 133, 233, 225, 196, 1, 250, 1, 5, 13, 11, 188, 195, 59, 84, 83, 40, 62, 93, 116, 179, 136, 62, 98, 52, 52, 47, 48, 104, 67, 82, 83, 66, 88, 62, 79, 42, 56, 95, 55, 125, 93, 56, 58, 94, 44, 57, 57, 102, 104, 62, 33, 124, 107, 113, 35, 95, 74, 92, 43, 78, 73, 37, 86, 51, 113, 115, 68, 44, 93, 122, 42, 93, 83, 52, 45, 58, 120, 128, 240, 146, 215, 235, 248, 150, 185, 221, 1, 250, 1, 10, 13, 147, 39, 84, 63, 29, 2, 117, 15, 62, 84, 83, 40, 120, 93, 40, 144, 99, 63, 98, 87, 72, 126, 37, 81, 86, 86, 102, 58, 110, 95, 90, 83, 103, 83, 88, 97, 39, 108, 55, 116, 45, 40, 108, 52, 67, 72, 87, 100, 104, 120, 90, 79, 48, 89, 33, 38, 81, 96, 59, 60, 92, 112, 109, 59, 78, 41, 107, 95, 84, 88, 94, 34, 116, 38, 102, 63, 50, 111, 46, 45, 126, 34, 81, 117, 36, 43, 67, 46, 82, 81, 47, 69, 80, 121, 55, 60, 57, 80, 100, 57, 92, 118, 48, 48, 58, 88, 89, 120, 128, 142, 168, 208, 193, 238, 192, 130, 141, 1, 250, 1, 5, 13, 31, 64, 91, 63, 84, 83, 40, 86, 93, 84, 205, 95, 63, 98, 46, 96, 81, 46, 61, 90, 62, 119, 55, 67, 100, 93, 45, 34, 72, 56, 81, 121, 109, 74, 37, 96, 43, 115, 80, 40, 112, 64, 90, 74, 80, 58, 59, 112, 93, 77, 115, 66, 92, 92, 124, 65, 56, 65, 84, 126, 104, 120, 128, 156, 134, 171, 146, 216, 177, 216, 146, 1, 250, 1, 5, 13, 47, 65, 64, 63, 84, 83, 40, 2, 93, 102, 90, 151, 61, 98, 93, 94, 58, 70, 90, 50, 85, 92, 92, 52, 104, 125, 61, 107, 113, 74, 65, 59, 67, 121, 68, 46, 61, 49, 77, 99, 71, 104, 63, 80, 62, 99, 88, 88, 67, 112, 126, 116, 53, 75, 119, 54, 100, 72, 114, 125, 36, 75, 78, 41, 93, 77, 105, 108, 93, 119, 65, 40, 120, 118, 106, 107, 61, 44, 117, 37, 69, 99, 72, 32, 75, 76, 37, 119, 34, 45, 73, 116, 62, 78, 95, 122, 58, 53, 114, 112, 120, 106, 122, 75, 79, 117, 122, 62, 120, 128, 216, 179, 228, 138, 167, 157, 163, 214, 1, 250, 1, 5, 13, 73, 66, 240, 61, 84, 83, 40, 117, 93, 146, 226, 23, 63, 98, 84, 81, 109, 88, 63, 35, 77, 93, 48, 71, 113, 106, 79, 77, 76, 105, 73, 55, 110, 81, 39, 56, 37, 43, 90, 104, 123, 80, 84, 80, 102, 55, 118, 52, 111, 66, 80, 117, 63, 118, 107, 87, 97, 72, 39, 32, 75, 124, 35, 44, 80, 39, 112, 88, 112, 64, 76, 97, 125, 86, 39, 124, 40, 95, 96, 89, 114, 58, 92, 42, 57, 83, 118, 119, 100, 78, 85, 91, 36, 89, 61, 125, 77, 72, 126, 120, 128, 176, 191, 168, 177, 229, 250, 195, 85, 250, 1, 5, 13, 10, 8, 204, 62, 84, 83, 40, 39, 93, 232, 155, 187, 62, 98, 37, 79, 116, 109, 118, 104, 111, 110, 78, 34, 102, 76, 44, 48, 63, 119, 114, 123, 47, 120, 114, 65, 105, 111, 93, 67, 57, 40, 78, 95, 96, 33, 52, 84, 118, 44, 52, 74, 120, 128, 232, 216, 161, 217, 235, 198, 141, 81, 250, 1, 10, 13, 62, 84, 27, 62, 29, 235, 218, 164, 61, 84, 83, 40, 113, 93, 64, 59, 209, 57, 98, 38, 83, 115, 86, 77, 44, 94, 84, 85, 34, 79, 76, 74, 32, 101, 36, 48, 83, 78, 102, 64, 110, 65, 101, 56, 86, 56, 50, 99, 71, 64, 33, 112, 124, 65, 54, 122, 38, 116, 120, 128, 166, 234, 142, 238, 185, 210, 246, 17, 250, 1, 10, 13, 130, 146, 222, 62, 29, 106, 143, 111, 63, 84, 83, 40, 12, 93, 226, 54, 37, 63, 98, 76, 80, 102, 42, 118, 70, 47, 57, 40, 94, 63, 84, 48, 50, 46, 62, 118, 115, 75, 112, 45, 97, 78, 90, 76, 94, 79, 40, 41, 94, 66, 61, 70, 101, 98, 53, 80, 75, 65, 107, 83, 45, 55, 65, 81, 71, 49, 35, 108, 103, 125, 56, 125, 40, 122, 122, 33, 43, 92, 55, 118, 38, 48, 73, 60, 33, 46, 73, 78, 119, 108, 74, 81, 95, 60, 126, 74, 120, 128, 134, 175, 138, 251, 185, 248, 210, 18, 250, 1, 5, 13, 174, 102, 211, 61, 84, 83, 40, 7, 93, 232, 200, 239, 62, 98, 59, 75, 59, 65, 95, 41, 63, 61, 105, 103, 51, 69, 109, 41, 116, 76, 124, 109, 37, 79, 56, 102, 84, 115, 122, 82, 101, 62, 106, 122, 80, 115, 33, 87, 106, 74, 106, 109, 104, 50, 97, 111, 95, 102, 99, 71, 92, 72, 105, 111, 34, 91, 40, 89, 107, 100, 118, 70, 70, 45, 120, 128, 224, 244, 211, 175, 129, 166, 159, 48, 250, 1, 5, 13, 156, 231, 144, 60, 84, 83, 40, 66, 93, 152, 226, 81, 63, 98, 75, 54, 63, 67, 53, 62, 73, 97, 47, 36, 113, 108, 72, 39, 109, 47, 82, 116, 61, 83, 122, 120, 115, 107, 71, 107, 37, 83, 67, 71, 90, 110, 95, 61, 112, 79, 68, 36, 70, 42, 64, 46, 114, 86, 53, 107, 67, 93, 40, 54, 114, 55, 38, 77, 86, 116, 65, 82, 122, 73, 56, 116, 61, 102, 73, 35, 45, 42, 54, 61, 106, 78, 78, 50, 50, 108, 120, 128, 234, 144, 138, 161, 208, 134, 209, 136, 1, 250, 1, 5, 13, 57, 4, 158, 62, 84, 83, 40, 72, 93, 111, 231, 28, 63, 98, 69, 71, 71, 74, 45, 84, 66, 103, 50, 102, 123, 45, 112, 40, 123, 112, 74, 111, 43, 45, 50, 94, 57, 71, 105, 75, 67, 104, 114, 58, 104, 109, 36, 123, 64, 33, 112, 73, 47, 50, 38, 58, 122, 66, 58, 47, 120, 70, 81, 65, 102, 123, 121, 47, 67, 122, 46, 32, 96, 97, 48, 89, 116, 118, 124, 45, 41, 115, 102, 121, 120, 144, 247, 248, 140, 160, 185, 199, 231, 128, 1, 250, 1, 5, 13, 22, 88, 45, 60, 84, 83, 40, 85, 93, 74, 228, 109, 63, 98, 31, 39, 118, 99, 117, 45, 90, 81, 123, 54, 81, 83, 108, 115, 115, 88, 69, 114, 112, 104, 77, 33, 75, 68, 36, 69, 44, 38, 36, 95, 87, 64, 120, 128, 152, 207, 197, 228, 178, 249, 172, 94, 250, 1, 10, 13, 153, 172, 148, 62, 29, 204, 119, 128, 60, 84, 83, 40, 11, 93, 90, 50, 238, 62, 98, 29, 54, 56, 113, 37, 47, 51, 67, 67, 66, 48, 56, 53, 59, 65, 39, 47, 55, 50, 118, 90, 81, 95, 80, 32, 84, 76, 60, 93, 48, 120, 128, 192, 198, 192, 203, 194, 179, 132, 103, 250, 1, 5, 13, 51, 17, 3, 63, 84, 83, 40, 109, 93, 39, 117, 73, 63, 98, 51, 43, 46, 90, 125, 98, 62, 109, 40, 33, 96, 52, 114, 111, 104, 62, 80, 49, 78, 41, 41, 76, 121, 86, 102, 113, 80, 97, 118, 100, 50, 85, 94, 70, 73, 47, 50, 75, 49, 83, 115, 41, 82, 80, 126, 59, 44, 99, 99, 125, 45, 126, 120, 128, 164, 177, 129, 213, 164, 138, 139, 168, 1, 250, 1, 5, 13, 237, 65, 213, 62, 84, 83, 40, 95, 93, 24, 102, 160, 62, 98, 64, 49, 87, 114, 43, 50, 91, 118, 66, 109, 42, 85, 76, 70, 88, 43, 36, 126, 122, 52, 32, 121, 72, 86, 74, 100, 108, 124, 119, 86, 50, 55, 55, 93, 43, 125, 90, 88, 37, 65, 55, 50, 48, 97, 115, 101, 94, 60, 43, 113, 41, 126, 66, 50, 103, 67, 103, 32, 71, 69, 68, 93, 125, 106, 91, 120, 128, 216, 217, 183, 215, 220, 205, 189, 110, 250, 1, 5, 13, 253, 19, 161, 62, 84, 83, 40, 104, 93, 128, 85, 144, 62, 98, 61, 90, 80, 74, 121, 88, 123, 109, 105, 102, 98, 100, 38, 80, 113, 37, 77, 50, 116, 36, 117, 103, 53, 89, 48, 94, 123, 89, 51, 68, 38, 33, 71, 111, 33, 80, 65, 93, 37, 104, 54, 120, 89, 33, 60, 98, 63, 115, 107, 119, 61, 72, 124, 57, 119, 82, 68, 117, 58, 59, 92, 66, 120, 128, 168, 219, 218, 201, 167, 218, 213, 205, 1, 250, 1, 5, 13, 150, 79, 197, 62, 84, 83, 40, 85, 93, 170, 61, 46, 63, 98, 45, 60, 53, 78, 65, 99, 110, 45, 43, 109, 123, 46, 52, 60, 76, 62, 40, 108, 59, 38, 92, 36, 46, 119, 78, 43, 74, 67, 105, 44, 114, 62, 52, 63, 91, 70, 42, 68, 74, 51, 78, 59, 112, 75, 122, 68, 120, 128, 206, 151, 154, 185, 229, 188, 209, 22, 250, 1, 5, 13, 148, 16, 25, 63, 84, 83, 40, 103, 93, 103, 24, 118, 63, 98, 49, 83, 85, 62, 61, 35, 92, 46, 60, 126, 53, 57, 74, 66, 126, 121, 93, 120, 115, 96, 37, 52, 98, 66, 39, 87, 65, 50, 97, 124, 41, 122, 112, 84, 109, 88, 61, 32, 117, 60, 125, 56, 109, 69, 52, 121, 35, 119, 113, 81, 120, 128, 192, 129, 147, 163, 246, 139, 152, 40, 250, 1, 12, 13, 133, 7, 232, 62, 29, 176, 193, 147, 62, 56, 1, 84, 83, 40, 95, 93, 23, 213, 63, 63, 98, 76, 111, 50, 54, 101, 96, 74, 75, 63, 117, 58, 71, 116, 84, 70, 92, 92, 34, 87, 97, 108, 70, 61, 45, 45, 83, 73, 63, 48, 95, 93, 94, 120, 108, 37, 103, 42, 104, 48, 90, 83, 107, 77, 78, 121, 81, 45, 66, 75, 115, 95, 72, 98, 53, 122, 65, 82, 36, 41, 49, 55, 42, 59, 95, 55, 90, 78, 40, 78, 93, 81, 114, 112, 124, 46, 32, 119, 120, 128, 168, 143, 138, 189, 189, 250, 208, 232, 1, 250, 1, 10, 13, 199, 22, 86, 62, 29, 38, 197, 28, 63, 84, 83, 40, 50, 93, 211, 129, 152, 61, 98, 66, 115, 59, 126, 53, 122, 98, 113, 99, 53, 38, 94, 125, 67, 72, 80, 109, 55, 62, 35, 37, 114, 108, 66, 107, 86, 101, 39, 122, 72, 99, 111, 78, 106, 48, 54, 126, 96, 33, 94, 106, 54, 106, 72, 74, 52, 114, 88, 101, 78, 41, 85, 116, 86, 64, 51, 38, 119, 50, 93, 53, 91, 117, 58, 80, 53, 47, 120, 128, 176, 247, 148, 211, 133, 187, 167, 153, 1, 250, 1, 5, 13, 98, 183, 75, 62, 84, 83, 40, 23, 93, 103, 21, 5, 63, 98, 44, 45, 53, 94, 56, 109, 40, 67, 118, 87, 99, 44, 65, 75, 63, 45, 122, 119, 74, 123, 48, 38, 77, 67, 73, 46, 63, 79, 118, 53, 36, 95, 70, 83, 123, 123, 64, 53, 62, 81, 43, 97, 32, 89, 121, 120, 128, 146, 240, 212, 157, 144, 129, 167, 12, 250, 1, 7, 13, 128, 148, 144, 62, 56, 0, 84, 83, 40, 121, 93, 171, 127, 189, 62, 98, 45, 58, 55, 103, 54, 32, 74, 94, 113, 53, 41, 78, 88, 75, 97, 83, 35, 101, 108, 78, 67, 108, 100, 89, 120, 112, 78, 38, 115, 72, 64, 114, 116, 83, 83, 122, 107, 119, 47, 82, 81, 60, 77, 126, 52, 35, 120, 128, 160, 219, 133, 220, 129, 218, 173, 67, 250, 1, 5, 13, 97, 13, 104, 62, 84, 83, 40, 40, 93, 112, 235, 130, 61, 98, 48, 117, 65, 77, 122, 87, 85, 84, 93, 110, 68, 81, 68, 106, 72, 115, 54, 88, 37, 119, 102, 102, 43, 85, 57, 124, 38, 63, 101, 68, 116, 63, 56, 102, 109, 82, 126, 69, 121, 122, 125, 70, 46, 41, 106, 32, 44, 81, 36, 120, 128, 239, 163, 242, 225, 246, 158, 146, 143, 1, 250, 1, 5, 13, 39, 1, 122, 63, 84, 83, 40, 55, 93, 189, 228, 239, 62, 98, 31, 61, 87, 62, 105, 106, 51, 124, 81, 54, 110, 56, 120, 37, 57, 92, 123, 116, 116, 112, 94, 41, 120, 64, 88, 34, 106, 57, 111, 84, 58, 89, 120, 128, 160, 192, 204, 150, 142, 130, 228, 180, 1, 250, 1, 5, 13, 24, 211, 234, 62, 84, 83, 40, 108, 93, 183, 228, 114, 63, 98, 61, 47, 78, 104, 51, 49, 124, 73, 102, 87, 116, 47, 100, 102, 79, 84, 46, 53, 44, 106, 66, 67, 55, 101, 102, 32, 120, 44, 123, 122, 52, 112, 76, 51, 62, 77, 76, 44, 97, 94, 96, 95, 50, 103, 98, 113, 37, 82, 64, 126, 43, 68, 58, 96, 78, 86, 119, 104, 33, 50, 56, 111, 120, 128, 228, 215, 197, 199, 156, 190, 173, 188, 1, 250, 1, 10, 13, 95, 166, 73, 63, 29, 238, 156, 187, 62, 84, 83, 40, 5, 93, 239, 186, 50, 63, 98, 68, 81, 71, 34, 39, 33, 83, 77, 41, 98, 49, 78, 34, 116, 121, 70, 106, 124, 111, 111, 85, 107, 99, 102, 84, 99, 43, 78, 70, 112, 50, 70, 69, 93, 47, 82, 42, 62, 118, 41, 111, 108, 86, 106, 69, 73, 101, 44, 55, 112, 36, 79, 122, 82, 77, 118, 109, 96, 76, 67, 117, 36, 39, 56, 80, 105, 41, 68, 100, 120, 128, 180, 159, 199, 198, 155, 251, 185, 180, 1, 250, 1, 5, 13, 87, 143, 150, 62, 84, 83, 40, 58, 93, 253, 134, 92, 61, 98, 45, 101, 126, 104, 52, 119, 65, 42, 124, 126, 54, 84, 107, 97, 74, 113, 48, 56, 100, 73, 113, 83, 51, 107, 100, 62, 57, 90, 64, 65, 70, 111, 84, 87, 74, 53, 83, 99, 97, 116, 63, 65, 69, 117, 108, 81, 120, 128, 252, 164, 223, 163, 214, 167, 250, 59, 250, 1, 10, 13, 10, 253, 82, 63, 29, 42, 130, 167, 62, 84, 83, 40, 30, 93, 73, 52, 84, 62, 98, 55, 76, 97, 113, 89, 80, 81, 51, 36, 117, 94, 101, 105, 91, 88, 69, 32, 51, 54, 53, 62, 75, 85, 111, 42, 79, 45, 61, 125, 51, 113, 74, 59, 42, 45, 121, 46, 98, 125, 120, 98, 63, 95, 107, 54, 88, 87, 105, 61, 70, 81, 56, 87, 41, 119, 103, 120, 128, 200, 254, 173, 206, 176, 244, 239, 242, 1, 250, 1, 5, 13, 68, 111, 90, 63, 84, 83, 40, 94, 93, 229, 13, 231, 61, 98, 29, 67, 52, 52, 111, 35, 51, 73, 95, 77, 93, 55, 61, 53, 60, 82, 125, 106, 105, 88, 80, 118, 66, 126, 86, 96, 88, 114, 50, 49, 120, 172, 254, 165, 207, 225, 242, 175, 51, 250, 1, 10, 13, 179, 201, 41, 61, 29, 91, 220, 153, 62, 84, 83, 40, 120, 93, 164, 10, 94, 63, 98, 24, 85, 77, 43, 110, 103, 34, 46, 119, 60, 94, 47, 52, 35, 58, 85, 121, 123, 43, 56, 54, 51, 32, 52, 93, 120, 128, 144, 195, 243, 134, 130, 153, 156, 21, 250, 1, 7, 13, 71, 1, 227, 62, 56, 0, 84, 83, 40, 31, 93, 199, 126, 244, 62, 98, 62, 39, 90, 121, 66, 65, 102, 37, 114, 122, 33, 86, 66, 125, 38, 64, 70, 76, 84, 87, 91, 55, 73, 119, 36, 99, 95, 85, 56, 76, 95, 61, 97, 118, 74, 52, 36, 52, 113, 97, 83, 80, 38, 32, 42, 96, 115, 52, 120, 115, 54, 97, 116, 104, 91, 53, 93, 97, 117, 93, 97, 48, 107, 120, 128, 152, 221, 164, 182, 181, 233, 165, 178, 1, 250, 1, 5, 13, 210, 130, 144, 62, 84, 83, 40, 89, 93, 79, 188, 98, 63, 98, 62, 74, 83, 112, 60, 50, 90, 114, 35, 43, 48, 72, 109, 66, 111, 74, 91, 68, 54, 125, 72, 120, 59, 52, 86, 65, 62, 52, 126, 67, 99, 96, 101, 69, 107, 72, 96, 40, 87, 36, 39, 33, 100, 80, 36, 53, 115, 82, 108, 55, 83, 71, 46, 60, 58, 123, 47, 62, 58, 121, 114, 69, 115, 120, 128, 200, 144, 221, 250, 206, 132, 233, 213, 1, 250, 1, 5, 13, 38, 71, 205, 62, 84, 83, 40, 63, 93, 159, 70, 50, 63, 98, 33, 71, 86, 71, 104, 83, 107, 50, 117, 70, 51, 106, 48, 65, 76, 106, 70, 102, 110, 60, 81, 72, 43, 111, 56, 65, 109, 92, 48, 96, 45, 36, 41, 84, 120, 128, 184, 214, 182, 248, 202, 179, 181, 195, 1, 250, 1, 10, 13, 208, 125, 239, 62, 29, 113, 113, 118, 63, 84, 83, 40, 49, 93, 124, 181, 245, 62, 98, 73, 32, 90, 123, 70, 114, 103, 68, 46, 119, 76, 39, 126, 44, 112, 41, 124, 57, 59, 101, 47, 71, 101, 47, 34, 52, 57, 47, 96, 90, 110, 32, 110, 33, 57, 110, 96, 85, 34, 55, 40, 114, 51, 116, 47, 40, 97, 32, 51, 32, 86, 56, 48, 53, 53, 38, 58, 75, 121, 49, 89, 88, 99, 82, 41, 76, 56, 124, 114, 34, 72, 71, 55, 36, 120, 128, 136, 146, 175, 202, 168, 144, 249, 210, 1, 250, 1, 5, 13, 124, 67, 149, 62, 84, 83, 40, 26, 93, 133, 53, 86, 63, 98, 34, 126, 120, 81, 56, 122, 95, 36, 86, 110, 88, 107, 50, 83, 52, 90, 111, 92, 78, 46, 95, 107, 98, 111, 100, 45, 48, 86, 47, 32, 43, 87, 121, 113, 73, 120, 128, 208, 236, 187, 135, 244, 228, 222, 187, 1, 250, 1, 7, 13, 73, 150, 34, 60, 56, 1, 84, 83, 40, 43, 93, 125, 165, 35, 63, 98, 26, 35, 78, 82, 92, 94, 49, 95, 77, 51, 107, 71, 70, 46, 44, 83, 36, 60, 41, 108, 43, 105, 40, 115, 85, 99, 33, 120, 128, 136, 171, 196, 218, 202, 216, 162, 109, 250, 1, 12, 13, 145, 65, 172, 62, 29, 61, 98, 215, 61, 56, 1, 84, 83, 40, 77, 93, 129, 69, 46, 62, 98, 56, 60, 112, 42, 48, 56, 37, 48, 83, 76, 98, 67, 66, 87, 99, 72, 108, 62, 69, 47, 118, 113, 53, 113, 121, 90, 123, 120, 93, 63, 63, 67, 75, 49, 55, 42, 61, 34, 67, 106, 55, 119, 57, 93, 39, 100, 80, 124, 126, 88, 36, 33, 99, 87, 98, 61, 39, 120, 128, 200, 169, 216, 223, 162, 204, 194, 126, 250, 1, 5, 13, 49, 220, 44, 62, 84, 83, 40, 71, 93, 19, 210, 149, 62, 98, 29, 43, 82, 51, 45, 62, 119, 49, 64, 89, 43, 106, 122, 89, 119, 126, 88, 86, 106, 53, 41, 126, 121, 37, 58, 61, 95, 114, 78, 120, 120, 128, 191, 233, 197, 144, 246, 203, 174, 132, 1, 250, 1, 10, 13, 163, 179, 162, 62, 29, 180, 44, 90, 63, 84, 83, 40, 102, 93, 209, 104, 252, 62, 98, 72, 43, 69, 37, 80, 103, 108, 63, 91, 68, 76, 57, 38, 41, 94, 98, 99, 79, 51, 121, 75, 60, 48, 77, 120, 110, 94, 36, 97, 70, 86, 108, 120, 45, 42, 107, 89, 83, 38, 35, 72, 104, 66, 84, 87, 32, 55, 85, 51, 106, 53, 82, 42, 118, 65, 50, 121, 118, 43, 96, 40, 103, 92, 53, 109, 95, 64, 120, 125, 113, 41, 48, 73, 120, 128, 184, 208, 222, 242, 192, 131, 245, 149, 1, 250, 1, 5, 13, 73, 141, 5, 63, 84, 83, 40, 88, 93, 119, 250, 111, 63, 98, 40, 91, 116, 119, 87, 41, 111, 118, 49, 35, 97, 33, 107, 119, 113, 97, 71, 68, 121, 95, 43, 45, 102, 118, 95, 61, 86, 65, 97, 36, 40, 121, 68, 93, 56, 62, 34, 50, 41, 126, 119, 120, 128, 184, 161, 205, 239, 200, 139, 234, 93, 250, 1, 5, 13, 198, 104, 35, 61, 84, 83, 40, 98, 93, 137, 33, 124, 63, 98, 20, 62, 45, 38, 32, 71, 103, 36, 54, 113, 86, 107, 115, 124, 56, 57, 82, 78, 53, 44, 121, 120, 128, 136, 130, 240, 187, 201, 144, 128, 223, 1, 250, 1, 5, 13, 211, 247, 33, 63, 84, 83, 40, 17, 93, 152, 101, 42, 63, 98, 60, 82, 94, 52, 59, 121, 103, 69, 41, 123, 120, 64, 48, 80, 64, 57, 60, 35, 99, 82, 39, 75, 73, 36, 121, 110, 76, 72, 80, 118, 110, 55, 97, 32, 70, 76, 103, 82, 104, 59, 42, 49, 98, 119, 36, 119, 41, 33, 46, 122, 111, 117, 34, 41, 38, 51, 41, 90, 58, 75, 77, 120, 128, 148, 149, 144, 197, 145, 169, 129, 169, 1, 250, 1, 5, 13, 243, 183, 98, 63, 200, 4, 24, 84, 83, 40, 16, 93, 146, 149, 47, 63, 98, 38, 93, 48, 42, 114, 81, 104, 58, 72, 72, 116, 103, 80, 126, 33, 101, 74, 58, 84, 38, 120, 52, 88, 120, 50, 67, 44, 56, 60, 108, 106, 60, 80, 107, 66, 57, 120, 118, 58, 120, 128, 140, 251, 162, 190, 225, 216, 151, 55, 250, 1, 5, 13, 188, 244, 156, 61, 84, 83, 40, 79, 93, 191, 96, 27, 63, 98, 54, 96, 48, 75, 87, 90, 57, 101, 35, 35, 63, 43, 51, 77, 37, 54, 118, 78, 68, 80, 124, 90, 92, 88, 55, 100, 92, 103, 107, 82, 32, 44, 126, 60, 89, 118, 104, 102, 107, 81, 126, 86, 105, 102, 123, 68, 87, 116, 51, 98, 32, 106, 35, 86, 94, 120, 128, 144, 170, 170, 147, 138, 209, 210, 126, 250, 1, 5, 13, 173, 176, 24, 61, 84, 83, 40, 73, 93, 63, 188, 85, 62, 98, 51, 113, 125, 80, 120, 80, 35, 50, 44, 117, 114, 45, 76, 48, 98, 114, 81, 69, 112, 116, 91, 113, 45, 103, 83, 41, 82, 52, 40, 72, 93, 90, 115, 49, 82, 121, 83, 77, 92, 57, 99, 105, 56, 97, 33, 38, 53, 110, 40, 47, 36, 56, 120, 128, 204, 194, 193, 211, 219, 148, 140, 19, 250, 1, 5, 13, 61, 75, 20, 62, 84, 83, 40, 120, 93, 100, 182, 178, 62, 98, 52, 100, 54, 124, 111, 124, 109, 41, 99, 56, 56, 57, 59, 93, 104, 63, 36, 104, 87, 49, 113, 89, 75, 101, 77, 114, 99, 44, 120, 67, 69, 76, 101, 54, 49, 52, 61, 79, 108, 59, 116, 95, 83, 72, 104, 107, 121, 48, 63, 111, 32, 79, 85, 120, 128, 224, 167, 225, 157, 238, 189, 138, 123, 250, 1, 5, 13, 151, 52, 178, 61, 84, 83, 40, 94, 93, 252, 74, 136, 62, 98, 48, 79, 79, 123, 57, 97, 48, 64, 114, 106, 83, 36, 76, 83, 34, 83, 123, 59, 59, 50, 37, 34, 123, 96, 120, 82, 108, 41, 66, 116, 118, 105, 46, 73, 122, 108, 126, 111, 33, 51, 78, 51, 85, 125, 56, 116, 98, 106, 108, 120, 128, 176, 144, 199, 215, 152, 131, 185, 59, 250, 1, 5, 13, 232, 226, 8, 63, 84, 83, 40, 33, 93, 100, 204, 42, 63, 98, 47, 116, 96, 54, 83, 110, 35, 101, 115, 39, 124, 124, 114, 105, 117, 35, 87, 53, 84, 43, 58, 40, 99, 113, 76, 125, 72, 35, 110, 33, 59, 117, 66, 93, 41, 56, 103, 99, 57, 48, 108, 58, 62, 70, 54, 87, 42, 78, 120, 128, 192, 255, 251, 159, 232, 251, 223, 255, 1, 250, 1, 5, 13, 194, 245, 43, 63, 84, 83, 40, 25, 93, 83, 236, 19, 63, 98, 61, 118, 70, 126, 86, 49, 110, 105, 84, 69, 126, 118, 113, 106, 38, 90, 53, 95, 92, 58, 114, 123, 68, 62, 126, 105, 60, 91, 115, 114, 121, 35, 46, 109, 99, 126, 122, 94, 82, 38, 120, 121, 99, 105, 108, 67, 75, 90, 47, 124, 116, 109, 66, 69, 63, 90, 81, 40, 126, 108, 116, 50, 120, 128, 160, 198, 156, 152, 237, 177, 228, 114, 250, 1, 5, 13, 47, 28, 48, 63, 84, 83, 40, 57, 93, 57, 219, 116, 63, 98, 25, 103, 36, 39, 38, 94, 85, 45, 85, 64, 120, 56, 89, 81, 90, 61, 96, 75, 118, 124, 43, 96, 104, 78, 41, 76, 120, 128, 160, 166, 143, 239, 211, 177, 250, 110, 250, 1, 10, 13, 204, 85, 41, 63, 29, 85, 105, 57, 63, 84, 83, 40, 23, 93, 229, 26, 61, 63, 98, 63, 36, 33, 62, 112, 91, 71, 83, 40, 61, 62, 96, 107, 37, 69, 66, 119, 85, 67, 78, 51, 101, 126, 99, 63, 58, 125, 85, 124, 88, 107, 117, 71, 67, 89, 116, 54, 58, 95, 126, 117, 44, 67, 88, 93, 73, 115, 98, 40, 102, 84, 60, 59, 54, 124, 32, 36, 61, 126, 86, 92, 112, 85, 79, 120, 128, 240, 166, 180, 232, 228, 182, 162, 66, 250, 1, 5, 13, 233, 105, 216, 62, 84, 83, 40, 34, 93, 16, 80, 215, 62, 98, 84, 75, 79, 43, 92, 116, 68, 87, 38, 66, 69, 37, 116, 69, 59, 76, 54, 36, 79, 90, 48, 70, 88, 111, 120, 59, 41, 65, 36, 85, 115, 39, 53, 48, 75, 55, 87, 90, 119, 70, 117, 93, 117, 92, 94, 55, 41, 48, 65, 68, 63, 74, 33, 108, 40, 33, 113, 95, 50, 64, 107, 34, 82, 80, 78, 61, 111, 100, 121, 35, 115, 91, 43, 40, 100, 82, 79, 122, 49, 96, 50, 120, 32, 95, 54, 120, 128, 240, 217, 224, 246, 128, 207, 133, 182, 1, 250, 1, 5, 13, 113, 112, 128, 61, 84, 83, 40, 53, 93, 166, 138, 161, 61, 98, 25, 73, 69, 119, 71, 86, 90, 115, 42, 69, 46, 64, 71, 67, 53, 61, 79, 99, 63, 120, 40, 85, 81, 117, 77, 81, 120, 128, 146, 232, 170, 162, 144, 193, 214, 146, 1, 250, 1, 5, 13, 156, 64, 91, 63, 84, 83, 40, 2, 93, 81, 96, 93, 63, 98, 52, 57, 38, 55, 70, 93, 79, 93, 123, 51, 83, 76, 111, 71, 41, 108, 111, 56, 110, 98, 97, 48, 82, 40, 44, 64, 81, 119, 78, 73, 117, 72, 104, 113, 55, 44, 39, 40, 32, 100, 101, 95, 83, 79, 106, 76, 55, 45, 71, 40, 92, 56, 62, 120, 128, 172, 241, 227, 182, 222, 138, 159, 20, 250, 1, 5, 13, 22, 66, 169, 62, 84, 83, 40, 88, 93, 65, 195, 60, 63, 98, 51, 124, 43, 38, 44, 87, 46, 81, 61, 42, 98, 125, 47, 124, 101, 103, 56, 41, 124, 33, 92, 34, 61, 95, 40, 67, 79, 69, 107, 93, 42, 90, 81, 84, 69, 42, 124, 121, 88, 45, 80, 33, 50, 95, 104, 56, 124, 74, 66, 116, 32, 52, 120, 128, 244, 151, 227, 130, 166, 191, 153, 150, 1, 250, 1, 10, 13, 229, 142, 158, 62, 29, 250, 171, 119, 61, 84, 83, 40, 89, 93, 232, 129, 42, 63, 98, 49, 74, 125, 103, 39, 104, 100, 95, 32, 40, 75, 90, 86, 91, 106, 61, 79, 111, 80, 90, 111, 92, 118, 110, 69, 37, 34, 118, 92, 116, 73, 52, 79, 97, 73, 81, 123, 112, 38, 103, 59, 81, 94, 95, 108, 66, 114, 102, 42, 97, 120, 128, 168, 191, 188, 139, 207, 250, 227, 219, 1, 250, 1, 5, 13, 238, 148, 174, 62, 84, 83, 40, 101, 93, 162, 109, 225, 62, 98, 47, 114, 34, 83, 46, 66, 34, 101, 109, 34, 42, 94, 55, 43, 116, 49, 56, 65, 94, 104, 104, 63, 62, 124, 55, 34, 34, 49, 59, 107, 122, 48, 41, 71, 37, 110, 71, 124, 108, 77, 35, 33, 76, 79, 84, 32, 85, 55, 120, 128, 232, 240, 242, 131, 193, 134, 151, 125, 250, 1, 5, 13, 66, 43, 16, 63, 84, 83, 40, 108, 93, 10, 218, 170, 62, 98, 64, 37, 86, 35, 42, 84, 36, 60, 44, 63, 112, 74, 34, 39, 121, 85, 110, 37, 38, 104, 59, 84, 48, 101, 102, 114, 109, 72, 54, 76, 105, 51, 100, 121, 90, 43, 81, 67, 121, 57, 67, 96, 96, 46, 50, 86, 73, 71, 89, 74, 101, 50, 118, 107, 85, 106, 115, 112, 60, 55, 101, 90, 37, 94, 84, 120, 128, 176, 205, 191, 179, 237, 234, 252, 81, 250, 1, 5, 13, 234, 57, 56, 63, 84, 83, 40, 10, 93, 97, 215, 235, 62, 98, 57, 110, 35, 74, 42, 107, 69, 89, 114, 34, 82, 47, 72, 69, 110, 106, 101, 87, 60, 119, 67, 110, 54, 96, 39, 98, 83, 103, 90, 33, 88, 84, 113, 65, 123, 106, 71, 58, 39, 42, 70, 122, 119, 113, 61, 44, 109, 63, 107, 57, 119, 124, 64, 107, 99, 91, 88, 66, 120, 128, 172, 130, 252, 133, 238, 146, 224, 175, 1, 250, 1, 10, 13, 215, 12, 210, 62, 29, 57, 73, 129, 62, 84, 83, 40, 81, 93, 209, 39, 126, 63, 98, 52, 112, 72, 124, 61, 38, 73, 35, 67, 75, 80, 49, 81, 72, 118, 67, 66, 121, 116, 52, 123, 64, 40, 91, 52, 37, 93, 63, 50, 36, 118, 95, 113, 104, 123, 38, 72, 64, 110, 103, 116, 103, 116, 76, 75, 46, 57, 58, 99, 52, 126, 72, 81, 120, 128, 206, 149, 143, 163, 242, 172, 249, 5, 250, 1, 7, 13, 131, 130, 46, 63, 40, 1, 200, 4, 95, 84, 83, 40, 102, 93, 4, 178, 65, 63, 98, 68, 55, 71, 42, 112, 63, 83, 112, 63, 104, 75, 112, 121, 34, 43, 44, 62, 51, 74, 91, 47, 38, 107, 67, 90, 124, 37, 77, 45, 109, 39, 61, 61, 91, 87, 86, 63, 106, 118, 85, 119, 90, 110, 79, 109, 114, 57, 124, 60, 68, 100, 77, 50, 44, 93, 97, 75, 36, 78, 114, 58, 38, 98, 80, 97, 45, 82, 62, 74, 120, 128, 184, 183, 135, 211, 200, 187, 187, 70, 250, 1, 5, 13, 57, 32, 77, 63, 84, 83, 40, 68, 93, 23, 62, 153, 62, 98, 64, 116, 98, 83, 54, 59, 84, 103, 98, 39, 48, 103, 41, 89, 43, 48, 124, 116, 43, 59, 59, 35, 59, 113, 119, 62, 109, 95, 63, 122, 82, 103, 87, 48, 48, 61, 73, 42, 74, 47, 79, 102, 48, 50, 116, 122, 70, 40, 34, 65, 64, 84, 72, 80, 55, 57, 88, 111, 91, 119, 77, 115, 71, 103, 84, 120, 128, 164, 135, 216, 230, 159, 186, 192, 181, 1, 250, 1, 5, 13, 46, 161, 42, 62, 84, 83, 40, 117, 93, 41, 51, 218, 62, 98, 43, 108, 102, 114, 73, 123, 107, 83, 113, 41, 123, 123, 118, 101, 93, 124, 89, 125, 63, 39, 120, 118, 100, 88, 77, 81, 97, 90, 63, 72, 93, 76, 106, 77, 94, 53, 90, 76, 42, 76, 100, 98, 70, 79, 120, 128, 208, 147, 249, 253, 143, 157, 201, 239, 1, 250, 1, 10, 13, 104, 128, 40, 63, 29, 242, 68, 118, 60, 84, 83, 40, 94, 93, 234, 87, 110, 62, 98, 52, 74, 45, 86, 40, 40, 126, 80, 40, 45, 68, 118, 57, 48, 52, 73, 74, 78, 49, 72, 38, 71, 65, 44, 114, 114, 65, 53, 80, 53, 101, 110, 80, 121, 68, 116, 59, 39, 68, 97, 78, 45, 44, 77, 39, 50, 50, 84, 77, 123, 36, 67, 77, 120, 128, 136, 238, 168, 191, 199, 240, 198, 75, 250, 1, 5, 13, 230, 153, 43, 63, 84, 83, 40, 103, 93, 124, 7, 175, 61, 98, 110, 32, 98, 52, 102, 104, 32, 114, 71, 85, 70, 62, 106, 63, 46, 67, 41, 78, 121, 120, 58, 115, 36, 95, 95, 108, 103, 83, 48, 65, 65, 119, 58, 86, 107, 59, 67, 48, 122, 100, 44, 57, 38, 81, 107, 114, 104, 45, 109, 96, 58, 125, 93, 102, 82, 51, 122, 34, 83, 120, 33, 76, 97, 37, 52, 77, 36, 52, 82, 114, 126, 120, 83, 52, 107, 33, 109, 82, 115, 108, 36, 89, 100, 79, 39, 67, 58, 82, 36, 88, 63, 65, 91, 33, 99, 95, 87, 32, 60, 61, 110, 84, 89, 122, 96, 64, 73, 73, 122, 81, 69, 120, 128, 160, 242, 208, 150, 240, 145, 135, 181, 1, 250, 1, 5, 13, 21, 42, 22, 62, 84, 83, 40, 94, 93, 149, 246, 99, 63, 98, 64, 70, 102, 50, 125, 112, 51, 80, 47, 121, 82, 93, 60, 81, 79, 43, 73, 108, 54, 86, 124, 78, 126, 105, 109, 101, 120, 111, 87, 82, 50, 119, 51, 116, 44, 61, 119, 69, 33, 74, 41, 61, 68, 95, 72, 35, 35, 118, 120, 110, 39, 87, 49, 86, 104, 69, 70, 124, 67, 56, 119, 66, 119, 92, 102, 120, 128, 208, 237, 219, 169, 159, 237, 222, 205, 1, 250, 1, 10, 13, 3, 122, 227, 62, 29, 110, 145, 214, 62, 84, 83, 40, 50, 93, 70, 216, 71, 62, 98, 37, 50, 36, 106, 106, 76, 94, 41, 63, 65, 106, 97, 33, 118, 104, 74, 89, 102, 91, 43, 101, 117, 122, 33, 104, 82, 102, 68, 103, 119, 109, 87, 90, 80, 102, 91, 35, 107, 120, 128, 220, 237, 227, 168, 222, 237, 158, 51, 250, 1, 10, 13, 151, 4, 218, 61, 29, 202, 242, 219, 61, 84, 83, 40, 37, 93, 84, 149, 148, 61, 98, 36, 90, 87, 85, 117, 75, 47, 50, 45, 114, 109, 60, 95, 60, 55, 34, 34, 55, 101, 57, 65, 71, 82, 50, 39, 79, 48, 45, 70, 109, 64, 81, 32, 72, 110, 64, 73, 120, 128, 168, 135, 161, 163, 199, 186, 136, 154, 1, 250, 1, 5, 13, 215, 229, 34, 63, 84, 83, 40, 36, 93, 62, 117, 104, 62, 98, 30, 85, 106, 122, 105, 62, 112, 73, 68, 33, 105, 45, 67, 111, 121, 94, 39, 68, 78, 69, 58, 34, 106, 62, 81, 60, 59, 54, 76, 117, 87, 120, 128, 232, 245, 147, 157, 213, 174, 159, 233, 1, 250, 1, 5, 13, 171, 21, 29, 63, 84, 83, 40, 56, 93, 148, 21, 53, 61, 98, 56, 107, 92, 87, 72, 104, 94, 101, 103, 68, 35, 51, 45, 48, 78, 48, 56, 37, 100, 55, 32, 51, 105, 75, 72, 77, 34, 89, 124, 77, 73, 122, 82, 120, 107, 46, 33, 79, 122, 100, 101, 84, 57, 70, 59, 62, 46, 43, 103, 60, 93, 81, 41, 67, 73, 111, 33, 120, 128, 210, 245, 251, 162, 142, 173, 223, 151, 1, 250, 1, 5, 13, 116, 70, 30, 62, 84, 83, 40, 120, 93, 144, 204, 59, 63, 98, 40, 36, 104, 58, 121, 40, 95, 51, 68, 64, 47, 103, 41, 126, 80, 75, 120, 67, 47, 42, 62, 118, 113, 95, 110, 118, 112, 47, 79, 122, 44, 110, 64, 32, 126, 96, 106, 126, 75, 50, 93, 120, 128, 240, 212, 208, 253, 155, 167, 133, 121, 250, 1, 5, 13, 68, 190, 60, 63, 84, 83, 40, 52, 93, 241, 183, 16, 62, 98, 28, 117, 72, 42, 113, 125, 118, 93, 33, 35, 91, 110, 50, 40, 74, 35, 54, 80, 99, 72, 51, 63, 71, 41, 32, 110, 95, 121, 119, 120, 128, 240, 198, 196, 143, 153, 183, 164, 252, 1, 250, 1, 12, 13, 6, 6, 237, 62, 29, 38, 129, 193, 62, 56, 0, 200, 4, 56, 84, 83, 40, 67, 93, 71, 119, 110, 63, 98, 47, 78, 102, 60, 80, 35, 78, 109, 60, 67, 47, 78, 97, 83, 71, 122, 45, 54, 61, 51, 109, 77, 62, 42, 35, 62, 124, 101, 36, 87, 55, 94, 103, 85, 81, 83, 79, 51, 51, 69, 100, 81, 42, 101, 111, 63, 124, 69, 120, 128, 148, 224, 248, 135, 162, 129, 198, 191, 1, 250, 1, 5, 13, 14, 110, 129, 60, 84, 83, 40, 40, 93, 57, 153, 19, 62, 98, 42, 113, 54, 100, 74, 48, 91, 56, 50, 38, 103, 104, 100, 43, 80, 102, 43, 34, 115, 74, 120, 35, 118, 77, 59, 67, 88, 58, 98, 64, 86, 54, 34, 56, 42, 107, 80, 112, 38, 67, 115, 122, 32, 120, 128, 156, 157, 142, 229, 214, 233, 241, 168, 1, 250, 1, 10, 13, 85, 113, 119, 63, 29, 236, 55, 65, 63, 84, 83, 40, 49, 93, 248, 121, 26, 63, 98, 36, 63, 88, 112, 67, 90, 85, 68, 42, 122, 103, 72, 39, 86, 65, 85, 112, 79, 81, 101, 76, 33, 99, 54, 58, 122, 80, 86, 125, 34, 88, 81, 83, 125, 126, 121, 42, 120, 128, 252, 222, 236, 135, 228, 247, 229, 190, 1, 250, 1, 10, 13, 220, 160, 70, 62, 29, 147, 138, 29, 63, 84, 83, 40, 59, 93, 9, 38, 95, 63, 98, 67, 126, 112, 103, 72, 126, 107, 81, 68, 46, 109, 74, 34, 119, 87, 90, 66, 86, 72, 42, 126, 70, 40, 65, 54, 116, 40, 87, 70, 74, 66, 61, 118, 57, 88, 34, 113, 77, 112, 122, 100, 36, 88, 114, 105, 38, 81, 37, 70, 62, 103, 118, 105, 80, 76, 76, 118, 79, 80, 83, 117, 51, 42, 121, 107, 80, 83, 103, 120, 128, 156, 241, 166, 165, 231, 137, 183, 170, 1, 250, 1, 10, 13, 84, 169, 16, 63, 29, 215, 31, 66, 63, 84, 83, 40, 111, 93, 70, 185, 58, 63, 98, 62, 76, 69, 121, 108, 52, 86, 47, 67, 34, 49, 40, 98, 74, 83, 70, 107, 43, 42, 66, 123, 61, 37, 80, 121, 94, 39, 57, 82, 104, 101, 111, 85, 114, 49, 60, 42, 82, 95, 98, 119, 65, 48, 114, 33, 34, 55, 64, 124, 45, 123, 51, 75, 69, 118, 72, 71, 115, 32, 46, 45, 61, 91, 120, 128, 232, 128, 218, 153, 178, 134, 208, 205, 1, 250, 1, 5, 13, 218, 176, 154, 62, 84, 83, 40, 44, 93, 249, 93, 5, 63, 98, 54, 110, 56, 54, 59, 56, 75, 71, 74, 90, 45, 49, 78, 118, 71, 101, 59, 69, 108, 81, 68, 48, 123, 104, 116, 54, 82, 81, 85, 89, 100, 85, 86, 95, 79, 71, 39, 101, 112, 98, 103, 36, 121, 59, 59, 54, 68, 40, 101, 70, 33, 54, 108, 106, 123, 120, 128, 160, 212, 193, 156, 141, 162, 141, 45, 250, 1, 10, 13, 68, 251, 93, 63, 29, 85, 57, 0, 63, 84, 83, 40, 44, 93, 5, 150, 96, 61, 98, 56, 101, 120, 112, 111, 117, 86, 90, 110, 70, 126, 93, 84, 83, 42, 104, 64, 53, 95, 77, 94, 112, 73, 106, 46, 88, 78, 104, 106, 99, 46, 84, 87, 68, 107, 123, 110, 50, 42, 69, 99, 90, 85, 96, 102, 104, 75, 97, 97, 34, 91, 43, 51, 34, 97, 51, 59, 120, 128, 196, 200, 176, 162, 163, 196, 132, 147, 1, 250, 1, 5, 13, 87, 157, 50, 63, 84, 83, 40, 31, 93, 198, 223, 211, 62, 98, 72, 109, 110, 42, 55, 74, 37, 47, 103, 45, 121, 46, 43, 57, 104, 35, 58, 103, 36, 69, 44, 107, 38, 104, 40, 35, 64, 85, 97, 87, 95, 96, 78, 113, 125, 117, 107, 74, 73, 59, 98, 59, 120, 83, 39, 76, 126, 120, 56, 94, 119, 83, 41, 61, 42, 90, 102, 37, 34, 51, 41, 79, 77, 47, 77, 57, 94, 56, 59, 114, 55, 111, 62, 120, 128, 152, 156, 219, 212, 187, 225, 217, 96, 250, 1, 10, 13, 235, 146, 49, 63, 29, 153, 125, 86, 63, 84, 83, 40, 109, 93, 13, 113, 6, 63, 98, 45, 96, 90, 36, 71, 60, 35, 95, 44, 86, 49, 103, 66, 47, 101, 72, 53, 50, 50, 109, 105, 38, 109, 109, 102, 93, 69, 71, 40, 52, 65, 90, 58, 103, 52, 68, 71, 47, 97, 51, 73, 79, 64, 97, 76, 80, 120, 128, 216, 219, 220, 142, 211, 221, 229, 245, 1, 250, 1, 10, 13, 182, 150, 52, 63, 29, 238, 173, 2, 63, 84, 83, 40, 52, 93, 75, 115, 195, 61, 98, 46, 85, 79, 33, 40, 75, 113, 107, 60, 104, 118, 91, 86, 118, 53, 86, 76, 90, 121, 65, 32, 37, 80, 126, 68, 57, 101, 44, 65, 53, 100, 97, 117, 96, 43, 106, 42, 56, 94, 104, 81, 90, 114, 119, 59, 109, 119, 120, 128, 136, 188, 134, 242, 169, 224, 179, 55, 250, 1, 10, 13, 160, 160, 240, 62, 29, 237, 27, 100, 63, 84, 83, 40, 4, 93, 222, 53, 156, 62, 98, 51, 104, 46, 70, 35, 37, 79, 92, 110, 101, 101, 74, 39, 35, 53, 100, 117, 107, 73, 75, 52, 122, 49, 111, 68, 50, 87, 98, 85, 64, 60, 94, 75, 50, 72, 119, 102, 57, 40, 101, 89, 90, 111, 35, 106, 48, 106, 115, 38, 41, 34, 92, 120, 192, 165, 154, 137, 243, 172, 210, 201, 5, 250, 1, 10, 13, 49, 59, 219, 62, 29, 205, 88, 82, 63, 84, 83, 40, 44, 93, 29, 223, 18, 63, 98, 35, 62, 34, 112, 76, 107, 38, 77, 72, 39, 125, 115, 90, 60, 124, 92, 99, 98, 113, 88, 43, 46, 37, 51, 70, 99, 92, 76, 62, 95, 90, 34, 67, 38, 65, 72, 120, 128, 236, 170, 194, 201, 225, 214, 146, 32, 250, 1, 5, 13, 226, 239, 117, 62, 84, 83, 40, 34, 93, 61, 120, 79, 63, 98, 44, 83, 65, 89, 98, 50, 118, 56, 104, 43, 69, 120, 63, 86, 53, 53, 71, 57, 109, 73, 103, 47, 89, 47, 104, 75, 122, 80, 83, 121, 83, 68, 76, 73, 36, 36, 104, 84, 65, 33, 79, 75, 115, 64, 119, 120, 128, 128, 191, 226, 203, 159, 248, 147, 222, 1, 250, 1, 5, 13, 125, 142, 145, 62, 84, 83, 40, 57, 93, 2, 103, 20, 62, 98, 61, 112, 120, 47, 73, 108, 80, 93, 121, 50, 111, 54, 54, 69, 99, 109, 87, 32, 75, 117, 82, 48, 75, 114, 118, 107, 121, 60, 58, 56, 54, 34, 48, 79, 66, 98, 33, 68, 122, 95, 119, 69, 42, 86, 99, 43, 106, 41, 102, 37, 104, 118, 58, 68, 119, 124, 69, 37, 56, 92, 113, 51, 120, 128, 140, 133, 247, 133, 211, 168, 184, 175, 1, 250, 1, 5, 13, 155, 41, 46, 63, 84, 83, 40, 120, 93, 239, 180, 79, 63, 98, 44, 38, 102, 34, 33, 108, 50, 37, 107, 125, 45, 38, 115, 47, 107, 33, 111, 85, 53, 79, 63, 103, 107, 86, 69, 61, 122, 44, 62, 108, 99, 33, 72, 91, 117, 36, 35, 39, 101, 56, 85, 113, 77, 69, 106, 120, 128, 136, 253, 183, 190, 207, 232, 191, 243, 1, 250, 1, 5, 13, 7, 33, 2, 63, 84, 83, 40, 113, 93, 68, 241, 236, 62, 98, 60, 91, 33, 93, 46, 49, 91, 37, 57, 47, 91, 98, 112, 38, 102, 125, 57, 43, 92, 56, 57, 102, 124, 104, 110, 123, 120, 76, 57, 69, 107, 79, 108, 38, 95, 97, 107, 37, 114, 55, 32, 111, 106, 115, 74, 34, 71, 79, 43, 79, 43, 94, 56, 56, 91, 100, 93, 56, 109, 49, 55, 120, 128, 212, 208, 164, 186, 154, 133, 165, 20, 250, 1, 10, 13, 52, 254, 73, 63, 29, 168, 224, 94, 63, 84, 83, 40, 47, 93, 135, 218, 6, 62, 98, 60, 117, 106, 69, 36, 50, 52, 55, 69, 55, 73, 123, 41, 61, 107, 84, 73, 65, 104, 58, 44, 54, 84, 73, 121, 35, 82, 55, 97, 32, 112, 36, 118, 79, 62, 44, 91, 41, 39, 61, 118, 71, 114, 32, 50, 104, 84, 122, 34, 91, 109, 108, 34, 88, 55, 117, 65, 64, 75, 32, 95, 120, 128, 160, 185, 189, 143, 231, 201, 235, 251, 1, 250, 1, 10, 13, 171, 239, 14, 63, 29, 83, 154, 200, 62, 84, 83, 40, 50, 93, 240, 51, 196, 62, 98, 36, 36, 88, 125, 95, 119, 63, 58, 75, 66, 99, 66, 83, 55, 49, 78, 86, 53, 38, 50, 36, 34, 62, 55, 72, 106, 59, 93, 38, 93, 121, 113, 77, 89, 108, 99, 122, 120, 128, 224, 238, 148, 171, 220, 245, 166, 123, 250, 1, 10, 13, 171, 234, 181, 62, 29, 20, 165, 51, 63, 84, 83, 40, 60, 93, 187, 91, 7, 63, 98, 93, 85, 53, 82, 82, 108, 40, 57, 81, 40, 102, 78, 51, 65, 65, 101, 65, 85, 115, 92, 96, 51, 109, 72, 113, 116, 121, 74, 77, 82, 90, 114, 66, 99, 81, 76, 40, 99, 116, 124, 51, 68, 84, 85, 50, 66, 58, 56, 74, 124, 89, 69, 76, 38, 107, 62, 103, 108, 96, 93, 114, 93, 107, 125, 76, 115, 44, 78, 110, 116, 92, 92, 96, 118, 73, 60, 93, 56, 53, 79, 90, 96, 126, 79, 120, 52, 69, 60, 118, 50, 99, 59, 35, 54, 120, 128, 142, 251, 198, 145, 241, 216, 183, 15, 250, 1, 5, 13, 184, 176, 13, 63, 84, 83, 40, 74, 93, 247, 82, 17, 63, 98, 33, 40, 62, 53, 106, 72, 85, 63, 123, 99, 85, 92, 78, 96, 78, 86, 48, 35, 49, 94, 60, 37, 56, 77, 111, 86, 91, 48, 65, 88, 73, 107, 115, 100, 120, 128, 135, 243, 166, 193, 181, 152, 183, 138, 1, 250, 1, 5, 13, 159, 248, 46, 62, 84, 83, 40, 115, 93, 102, 241, 138, 62, 98, 78, 110, 56, 72, 47, 123, 79, 110, 94, 71, 81, 52, 100, 114, 51, 120, 117, 59, 80, 110, 111, 69, 51, 107, 68, 125, 67, 58, 105, 103, 105, 88, 62, 95, 117, 51, 120, 53, 44, 41, 103, 93, 48, 46, 42, 122, 92, 101, 53, 113, 125, 72, 86, 64, 38, 115, 91, 75, 36, 49, 88, 53, 37, 118, 93, 119, 117, 36, 123, 32, 32, 95, 46, 71, 39, 49, 52, 36, 97, 120, 128, 148, 235, 233, 182, 170, 217, 206, 182, 1, 250, 1, 5, 13, 61, 241, 178, 62, 84, 83, 40, 81, 93, 225, 146, 69, 61, 98, 82, 118, 105, 64, 34, 125, 88, 34, 86, 76, 48, 122, 79, 81, 88, 57, 80, 50, 37, 87, 104, 53, 112, 61, 58, 46, 56, 115, 94, 87, 104, 91, 110, 122, 48, 45, 45, 60, 117, 118, 74, 121, 72, 82, 78, 51, 118, 84, 88, 122, 82, 79, 66, 104, 114, 110, 37, 75, 38, 114, 100, 100, 66, 126, 98, 84, 43, 84, 65, 74, 43, 52, 59, 45, 44, 110, 107, 62, 109, 39, 55, 99, 59, 120, 128, 184, 250, 225, 180, 216, 211, 143, 91, 250, 1, 5, 13, 88, 176, 54, 61, 84, 83, 40, 34, 93, 182, 148, 129, 62, 98, 36, 38, 39, 65, 40, 96, 54, 34, 50, 101, 86, 72, 110, 120, 39, 66, 51, 45, 110, 62, 51, 53, 91, 36, 34, 102, 92, 126, 91, 32, 72, 93, 122, 73, 60, 37, 76, 120, 128, 192, 228, 245, 159, 137, 164, 174, 255, 1, 250, 1, 5, 13, 53, 14, 186, 62, 84, 83, 40, 56, 93, 137, 4, 122, 63, 98, 34, 56, 121, 70, 55, 67, 78, 115, 126, 115, 80, 45, 115, 100, 38, 34, 73, 35, 63, 64, 36, 55, 70, 49, 61, 120, 76, 69, 92, 33, 117, 51, 106, 68, 64, 120, 128, 152, 200, 140, 160, 192, 193, 228, 120, 250, 1, 10, 13, 38, 112, 142, 62, 29, 174, 178, 102, 62, 200, 4, 100, 84, 83, 40, 83, 93, 46, 241, 131, 62, 98, 44, 103, 126, 102, 79, 58, 105, 54, 66, 58, 90, 72, 95, 34, 69, 101, 113, 104, 41, 62, 117, 40, 55, 124, 125, 60, 66, 79, 67, 43, 103, 52, 55, 95, 39, 59, 55, 95, 97, 34, 46, 54, 35, 65, 70, 120, 128, 236, 219, 198, 170, 252, 222, 181, 60, 250, 1, 5, 13, 78, 139, 10, 63, 84, 83, 40, 96, 93, 223, 24, 125, 63, 98, 47, 90, 40, 81, 44, 76, 103, 48, 80, 33, 103, 51, 119, 57, 113, 54, 81, 70, 49, 126, 121, 42, 77, 49, 38, 39, 47, 94, 36, 116, 86, 81, 104, 89, 80, 104, 35, 53, 40, 105, 118, 118, 106, 54, 118, 78, 41, 115, 120, 128, 172, 214, 135, 214, 208, 178, 189, 176, 1, 250, 1, 10, 13, 120, 43, 76, 63, 29, 233, 240, 84, 63, 84, 83, 40, 126, 93, 204, 118, 146, 62, 98, 66, 83, 109, 115, 44, 117, 74, 37, 61, 41, 43, 90, 73, 54, 74, 61, 104, 41, 51, 60, 62, 70, 39, 34, 63, 54, 58, 87, 124, 58, 58, 56, 37, 87, 54, 52, 106, 91, 91, 44, 106, 35, 76, 109, 107, 47, 108, 96, 36, 107, 43, 58, 88, 82, 96, 115, 76, 106, 84, 116, 91, 114, 39, 34, 109, 114, 84, 120, 128, 160, 190, 170, 248, 129, 242, 211, 109, 250, 1, 5, 13, 126, 175, 30, 59, 84, 83, 40, 29, 93, 213, 253, 6, 63, 98, 40, 45, 77, 38, 80, 59, 121, 57, 54, 47, 73, 88, 83, 49, 47, 32, 94, 81, 118, 65, 102, 126, 39, 101, 80, 118, 122, 74, 126, 120, 89, 122, 96, 109, 56, 125, 108, 81, 34, 68, 121, 120, 128, 254, 240, 158, 195, 241, 135, 247, 153, 1, 250, 1, 5, 13, 31, 235, 13, 63, 84, 83, 40, 49, 93, 235, 96, 231, 62, 98, 62, 34, 63, 117, 113, 109, 51, 35, 122, 93, 78, 82, 37, 102, 85, 89, 64, 78, 57, 61, 84, 78, 119, 101, 119, 49, 50, 44, 79, 81, 71, 83, 74, 97, 59, 77, 87, 36, 87, 48, 100, 86, 126, 34, 62, 101, 119, 38, 123, 71, 36, 74, 120, 55, 111, 123, 41, 88, 125, 96, 90, 38, 82, 120, 128, 220, 163, 148, 133, 219, 157, 162, 55, 250, 1, 5, 13, 17, 243, 112, 62, 84, 83, 40, 119, 93, 82, 187, 177, 61, 98, 44, 67, 75, 39, 33, 59, 117, 40, 87, 124, 78, 117, 70, 49, 57, 44, 48, 39, 77, 123, 89, 50, 113, 62, 67, 125, 37, 118, 85, 93, 36, 86, 107, 68, 93, 84, 90, 115, 70, 103, 83, 112, 95, 113, 76, 120, 128, 252, 228, 173, 231, 219, 167, 238, 26, 250, 1, 5, 13, 198, 154, 73, 62, 84, 83, 40, 102, 93, 66, 33, 209, 62, 98, 60, 78, 117, 74, 122, 57, 64, 116, 80, 44, 99, 34, 54, 126, 82, 120, 120, 119, 42, 34, 82, 99, 81, 59, 96, 101, 71, 104, 82, 32, 113, 48, 107, 56, 79, 38, 103, 89, 90, 81, 36, 103, 35, 77, 48, 67, 80, 84, 61, 101, 120, 83, 41, 48, 57, 97, 124, 90, 105, 53, 112, 120, 128, 184, 204, 152, 217, 183, 227, 196, 201, 1, 250, 1, 5, 13, 87, 139, 185, 62, 84, 83, 40, 64, 93, 20, 42, 140, 62, 98, 23, 82, 54, 125, 78, 75, 49, 62, 60, 87, 124, 106, 96, 35, 43, 60, 52, 114, 74, 107, 38, 61, 39, 90, 120, 128, 208, 193, 230, 239, 239, 140, 180, 254, 1, 250, 1, 10, 13, 214, 184, 79, 63, 29, 163, 81, 201, 61, 84, 83, 40, 17, 93, 75, 132, 85, 63, 98, 78, 69, 95, 76, 69, 82, 51, 92, 45, 82, 38, 112, 84, 89, 55, 80, 50, 78, 33, 120, 78, 76, 33, 125, 43, 85, 73, 123, 75, 90, 126, 96, 66, 36, 78, 117, 119, 80, 69, 45, 110, 77, 46, 96, 108, 88, 55, 76, 38, 86, 71, 79, 107, 47, 93, 66, 68, 97, 64, 110, 41, 55, 49, 81, 83, 68, 78, 80, 42, 64, 87, 97, 41, 114, 42, 33, 61, 63, 48, 120, 128, 240, 253, 195, 161, 132, 239, 159, 68, 250, 1, 5, 13, 28, 218, 165, 62, 84, 83, 40, 122, 93, 204, 87, 102, 63, 98, 24, 116, 51, 78, 115, 51, 69, 44, 81, 53, 47, 85, 36, 86, 60, 92, 44, 71, 42, 101, 65, 100, 125, 101, 70, 120, 152, 191, 161, 150, 173, 249, 139, 118, 250, 1, 12, 13, 176, 202, 73, 61, 29, 128, 128, 33, 63, 56, 0, 84, 83, 40, 6, 93, 143, 174, 3, 63, 98, 64, 109, 79, 44, 64, 60, 62, 36, 80, 59, 42, 125, 110, 65, 81, 82, 110, 82, 100, 96, 50, 103, 72, 88, 90, 48, 117, 76, 39, 123, 46, 104, 39, 76, 100, 65, 38, 119, 54, 32, 61, 40, 118, 109, 91, 66, 117, 91, 51, 115, 41, 81, 118, 66, 112, 104, 69, 118, 81, 48, 69, 113, 123, 83, 44, 120, 128, 196, 232, 187, 162, 148, 196, 222, 44, 250, 1, 5, 13, 156, 65, 105, 63, 84, 83, 40, 44, 93, 1, 118, 35, 63, 98, 26, 48, 76, 117, 60, 100, 67, 42, 112, 89, 123, 55, 58, 57, 56, 51, 113, 92, 113, 99, 91, 123, 123, 46, 70, 38, 89, 120, 128, 156, 246, 159, 193, 218, 177, 255, 58, 250, 1, 5, 13, 65, 138, 242, 61, 84, 83, 40, 46, 93, 83, 148, 47, 63, 98, 51, 58, 75, 84, 126, 35, 70, 50, 52, 50, 126, 101, 118, 107, 121, 57, 116, 44, 88, 104, 97, 79, 78, 51, 101, 96, 51, 61, 79, 54, 42, 119, 126, 77, 119, 97, 107, 100, 58, 52, 107, 94, 72, 94, 99, 116, 36, 48, 51, 44, 48, 76, 120, 128, 168, 226, 201, 175, 159, 146, 206, 110, 250, 1, 5, 13, 109, 27, 184, 62, 84, 83, 40, 86, 93, 127, 153, 64, 62, 98, 30, 106, 56, 110, 61, 111, 40, 98, 124, 39, 39, 102, 73, 115, 55, 77, 47, 113, 67, 123, 34, 39, 111, 78, 111, 92, 35, 42, 66, 38, 93, 120, 192, 251, 152, 187, 171, 221, 199, 217, 7, 250, 1, 10, 13, 86, 10, 35, 63, 29, 162, 180, 74, 63, 84, 83, 40, 92, 93, 196, 133, 103, 63, 98, 61, 83, 117, 123, 68, 99, 123, 74, 86, 92, 46, 89, 60, 122, 94, 32, 90, 78, 70, 94, 42, 122, 104, 125, 96, 107, 125, 64, 118, 73, 34, 41, 93, 45, 65, 121, 56, 117, 126, 56, 37, 92, 56, 113, 97, 35, 102, 46, 98, 37, 35, 85, 54, 44, 90, 122, 105, 119, 59, 87, 100, 90, 120, 128, 176, 141, 131, 236, 132, 235, 152, 68, 250, 1, 5, 13, 249, 110, 12, 62, 84, 83, 40, 77, 93, 97, 6, 81, 61, 98, 51, 122, 46, 89, 99, 102, 99, 79, 45, 88, 77, 97, 118, 59, 92, 37, 111, 92, 112, 70, 75, 114, 81, 82, 69, 48, 64, 89, 70, 82, 74, 41, 43, 55, 92, 39, 87, 83, 126, 62, 62, 38, 40, 82, 45, 57, 113, 91, 93, 82, 115, 125, 120, 128, 232, 144, 234, 218, 179, 134, 209, 214, 1, 250, 1, 5, 13, 207, 117, 60, 63, 84, 83, 40, 18, 93, 176, 234, 63, 62, 98, 41, 73, 91, 52, 83, 70, 42, 40, 90, 46, 67, 85, 95, 94, 84, 76, 60, 93, 82, 39, 69, 105, 125, 69, 43, 61, 99, 123, 115, 94, 75, 72, 69, 41, 74, 93, 123, 62, 74, 119, 52, 124, 120, 128, 144, 234, 170, 212, 238, 208, 214, 61, 250, 1, 5, 13, 12, 21, 192, 62, 84, 83, 40, 97, 93, 31, 228, 52, 63, 98, 55, 50, 124, 40, 37, 86, 64, 45, 94, 103, 71, 74, 53, 40, 53, 97, 45, 52, 122, 98, 121, 48, 86, 51, 118, 80, 124, 50, 90, 114, 71, 60, 90, 91, 71, 43, 102, 114, 109, 39, 43, 58, 101, 64, 35, 50, 101, 53, 52, 53, 38, 103, 81, 96, 109, 82, 120, 128, 128, 180, 243, 185, 133, 160, 155, 207, 1, 250, 1, 5, 13, 45, 144, 67, 63, 84, 83, 40, 22, 93, 26, 207, 12, 63, 98, 23, 89, 45, 82, 106, 63, 43, 111, 89, 95, 42, 121, 58, 69, 115, 86, 94, 73, 53, 48, 99, 105, 102, 125, 120, 128, 148, 130, 168, 197, 158, 145, 192, 49, 250, 1, 10, 13, 35, 250, 77, 63, 29, 160, 28, 41, 63, 200, 4, 98, 84, 83, 40, 118, 93, 28, 59, 78, 63, 98, 48, 115, 79, 124, 97, 57, 77, 124, 103, 122, 32, 119, 65, 44, 85, 42, 59, 106, 66, 92, 41, 47, 41, 69, 88, 76, 105, 113, 47, 46, 125, 96, 64, 118, 107, 106, 89, 123, 87, 44, 70, 88, 118, 78, 53, 56, 66, 92, 49, 120, 128, 224, 249, 207, 230, 137, 206, 255, 111, 250, 1, 5, 13, 26, 169, 196, 61, 84, 83, 40, 2, 93, 193, 93, 154, 62, 98, 64, 44, 111, 93, 106, 42, 68, 53, 78, 91, 109, 89, 124, 63, 86, 74, 63, 105, 79, 62, 51, 53, 54, 79, 55, 90, 48, 64, 42, 45, 95, 59, 37, 123, 67, 51, 39, 46, 32, 79, 87, 66, 92, 106, 106, 60, 80, 116, 96, 118, 61, 71, 67, 105, 109, 38, 117, 63, 69, 48, 121, 36, 43, 65, 122, 120, 128, 128, 141, 212, 148, 135, 232, 160, 68, 250, 1, 5, 13, 246, 15, 13, 63, 84, 83, 40, 0, 93, 100, 66, 117, 63, 98, 47, 67, 67, 49, 105, 32, 101, 111, 88, 74, 100, 121, 41, 58, 94, 50, 111, 55, 118, 58, 45, 60, 60, 102, 103, 111, 84, 82, 54, 59, 110, 55, 103, 80, 120, 61, 82, 44, 93, 67, 35, 124, 77, 74, 89, 74, 38, 94, 120, 128, 176, 213, 188, 136, 140, 171, 229, 49, 250, 1, 10, 13, 172, 223, 107, 63, 29, 180, 237, 4, 63, 84, 83, 40, 89, 93, 202, 17, 30, 63, 98, 43, 58, 113, 94, 38, 92, 72, 120, 74, 50, 88, 60, 91, 76, 50, 88, 65, 65, 95, 99, 89, 83, 54, 47, 109, 113, 44, 61, 104, 116, 46, 62, 105, 43, 92, 77, 93, 58, 55, 117, 98, 99, 119, 112, 120, 128, 128, 140, 232, 196, 143, 224, 192, 49, 250, 1, 5, 13, 255, 193, 54, 62, 84, 83, 40, 104, 93, 199, 151, 12, 62, 98, 71, 56, 77, 61, 35, 56, 109, 41, 39, 36, 97, 111, 51, 79, 43, 48, 85, 36, 58, 82, 79, 111, 99, 121, 38, 42, 105, 32, 117, 90, 69, 106, 93, 34, 126, 36, 59, 86, 43, 38, 122, 34, 84, 73, 122, 73, 35, 70, 87, 83, 66, 107, 42, 93, 62, 60, 83, 82, 54, 119, 77, 109, 51, 75, 93, 118, 50, 49, 79, 38, 115, 125, 120, 128, 168, 172, 233, 222, 194, 226, 202, 246, 1, 250, 1, 5, 13, 144, 4, 86, 62, 84, 83, 40, 73, 93, 249, 7, 246, 62, 98, 25, 58, 58, 126, 92, 38, 67, 71, 65, 56, 88, 96, 126, 99, 98, 80, 103, 63, 50, 87, 45, 109, 40, 106, 36, 55, 120, 128, 152, 210, 210, 237, 188, 145, 149, 237, 1, 250, 1, 5, 13, 88, 38, 103, 63, 84, 83, 40, 66, 93, 33, 101, 40, 63, 98, 64, 67, 114, 117, 38, 111, 33, 56, 83, 89, 112, 42, 69, 112, 51, 37, 53, 50, 77, 107, 84, 44, 93, 101, 91, 73, 94, 49, 79, 121, 68, 52, 76, 116, 98, 115, 100, 106, 120, 114, 96, 56, 51, 100, 64, 77, 103, 124, 116, 101, 109, 37, 67, 41, 124, 82, 100, 45, 57, 91, 49, 111, 104, 88, 53, 120, 128, 200, 164, 143, 218, 182, 164, 250, 208, 1, 250, 1, 5, 13, 36, 169, 36, 63, 84, 83, 40, 63, 93, 229, 66, 28, 62, 98, 51, 63, 63, 74, 56, 90, 43, 60, 119, 120, 68, 46, 97, 97, 60, 105, 43, 63, 112, 66, 119, 48, 46, 87, 80, 60, 96, 112, 78, 90, 79, 99, 110, 55, 109, 85, 69, 67, 107, 104, 125, 95, 89, 107, 103, 43, 121, 78, 82, 126, 76, 116, 120, 128, 144, 140, 210, 188, 250, 224, 144, 229, 1, 250, 1, 10, 13, 110, 236, 142, 62, 29, 26, 213, 20, 63, 84, 83, 40, 124, 93, 46, 151, 51, 62, 98, 116, 102, 120, 123, 120, 58, 108, 61, 72, 96, 62, 74, 114, 102, 67, 103, 83, 39, 68, 55, 85, 65, 111, 68, 66, 50, 61, 79, 45, 89, 119, 84, 95, 111, 68, 94, 73, 110, 111, 99, 114, 60, 66, 39, 108, 79, 91, 107, 90, 100, 65, 99, 117, 63, 71, 109, 118, 84, 88, 101, 123, 61, 48, 110, 103, 104, 106, 35, 65, 100, 61, 99, 54, 96, 68, 57, 126, 103, 87, 113, 86, 80, 116, 71, 55, 51, 94, 63, 71, 85, 102, 116, 54, 42, 102, 85, 43, 83, 62, 35, 100, 87, 74, 116, 70, 93, 77, 53, 122, 46, 110, 46, 124, 102, 47, 75, 71, 120, 128, 208, 140, 137, 156, 236, 228, 200, 224, 1, 250, 1, 5, 13, 56, 149, 18, 63, 84, 83, 40, 69, 93, 252, 247, 227, 61, 98, 59, 74, 90, 106, 124, 71, 77, 44, 120, 110, 45, 74, 73, 83, 45, 125, 38, 126, 32, 89, 101, 72, 68, 57, 102, 88, 119, 78, 121, 58, 45, 67, 124, 105, 120, 57, 123, 94, 118, 126, 48, 65, 59, 43, 32, 68, 100, 72, 88, 48, 69, 72, 102, 123, 109, 96, 38, 65, 36, 68, 120, 128, 140, 131, 191, 237, 249, 152, 248, 63, 250, 1, 5, 13, 140, 213, 123, 63, 84, 83, 40, 23, 93, 128, 90, 39, 63, 98, 40, 96, 105, 77, 94, 89, 114, 33, 71, 39, 33, 73, 68, 45, 56, 56, 66, 115, 78, 117, 104, 116, 100, 91, 32, 123, 55, 51, 89, 89, 82, 78, 49, 47, 92, 74, 54, 117, 37, 110, 101, 120, 128, 200, 154, 197, 162, 187, 212, 169, 148, 1, 250, 1, 5, 13, 100, 253, 121, 63, 84, 83, 40, 43, 93, 54, 77, 58, 63, 98, 78, 82, 73, 83, 108, 41, 97, 79, 32, 40, 72, 104, 123, 46, 77, 98, 66, 95, 70, 108, 84, 81, 55, 53, 80, 109, 34, 75, 109, 95, 47, 89, 118, 68, 117, 76, 81, 99, 69, 80, 118, 34, 78, 41, 101, 114, 77, 39, 72, 66, 76, 38, 103, 47, 107, 51, 58, 52, 35, 126, 39, 54, 97, 63, 119, 109, 112, 87, 56, 32, 48, 93, 57, 117, 117, 81, 35, 46, 78, 120, 128, 248, 235, 146, 170, 219, 223, 150, 209, 1, 250, 1, 5, 13, 58, 89, 169, 62, 84, 83, 40, 119, 93, 50, 115, 226, 60, 98, 42, 74, 51, 41, 113, 103, 87, 97, 50, 61, 96, 69, 73, 96, 64, 47, 48, 119, 34, 117, 110, 72, 50, 109, 107, 112, 57, 57, 48, 43, 101, 69, 95, 44, 51, 54, 43, 110, 123, 41, 126, 85, 108, 120, 128, 136, 189, 181, 249, 177, 232, 171, 110, 250, 1, 10, 13, 197, 157, 120, 63, 29, 58, 75, 94, 63, 84, 83, 40, 59, 93, 28, 225, 94, 62, 98, 41, 49, 114, 125, 86, 89, 73, 43, 89, 56, 69, 60, 32, 77, 62, 81, 38, 87, 58, 101, 60, 76, 42, 35, 65, 122, 120, 117, 56, 90, 63, 112, 120, 68, 37, 40, 60, 45, 46, 107, 54, 33, 120, 128, 216, 144, 219, 137, 201, 133, 217, 205, 1, 250, 1, 5, 13, 101, 116, 122, 63, 84, 83, 40, 92, 93, 196, 227, 4, 63, 98, 109, 122, 91, 95, 36, 102, 58, 97, 44, 48, 103, 39, 111, 91, 90, 96, 82, 114, 125, 119, 84, 67, 91, 71, 54, 52, 119, 72, 78, 79, 59, 113, 44, 60, 111, 126, 61, 54, 52, 115, 37, 46, 107, 51, 61, 33, 75, 81, 83, 42, 99, 45, 91, 37, 49, 45, 62, 51, 73, 110, 109, 113, 51, 92, 115, 116, 121, 82, 107, 90, 67, 60, 94, 42, 114, 69, 87, 71, 42, 53, 103, 70, 115, 67, 107, 45, 54, 38, 43, 97, 95, 41, 107, 68, 37, 50, 122, 46, 63, 72, 38, 120, 100, 119, 102, 71, 78, 81, 49, 106, 120, 128, 216, 137, 137, 169, 160, 205, 200, 200, 1, 250, 1, 5, 13, 23, 11, 104, 63, 84, 83, 40, 11, 93, 23, 32, 95, 62, 98, 43, 38, 71, 124, 110, 112, 102, 93, 115, 71, 42, 121, 57, 79, 57, 36, 95, 74, 72, 40, 97, 46, 110, 96, 123, 92, 67, 93, 100, 115, 64, 43, 104, 32, 86, 62, 92, 53, 44, 61, 87, 105, 50, 81, 120, 128, 208, 220, 233, 217, 153, 229, 205, 206, 1, 250, 1, 10, 13, 134, 206, 121, 63, 29, 138, 54, 241, 62, 84, 83, 40, 115, 93, 118, 193, 102, 62, 98, 27, 76, 81, 64, 45, 109, 70, 37, 54, 101, 33, 49, 76, 40, 119, 126, 38, 125, 49, 56, 120, 122, 70, 74, 62, 42, 79, 118, 120, 128, 152, 131, 184, 136, 162, 153, 192, 123, 250, 1, 10, 13, 150, 97, 158, 62, 29, 105, 95, 140, 61, 84, 83, 40, 125, 93, 238, 83, 40, 62, 98, 32, 76, 72, 55, 66, 32, 124, 122, 89, 80, 39, 118, 52, 121, 111, 79, 112, 50, 74, 91, 107, 52, 125, 58, 37, 39, 33, 35, 61, 78, 41, 120, 95, 120, 128, 207, 214, 180, 240, 247, 180, 165, 131, 1, 250, 1, 10, 13, 93, 208, 197, 60, 29, 196, 72, 248, 58, 84, 83, 40, 84, 93, 176, 72, 44, 63, 98, 61, 91, 38, 33, 53, 93, 71, 114, 79, 53, 68, 57, 32, 38, 104, 113, 74, 49, 122, 78, 46, 50, 59, 125, 121, 92, 43, 71, 45, 55, 49, 118, 111, 110, 48, 86, 67, 90, 85, 85, 85, 70, 85, 112, 92, 104, 61, 72, 63, 38, 53, 111, 38, 81, 81, 77, 64, 40, 38, 88, 82, 32, 120, 128, 192, 170, 132, 253, 250, 211, 162, 93, 250, 1, 5, 13, 173, 237, 128, 62, 84, 83, 40, 5, 93, 222, 235, 237, 62, 98, 33, 72, 48, 116, 50, 78, 110, 91, 69, 119, 102, 91, 73, 64, 48, 62, 98, 39, 39, 34, 65, 112, 62, 61, 98, 53, 59, 83, 124, 34, 85, 96, 61, 108, 120, 128, 234, 201, 229, 210, 215, 206, 172, 150, 1, 250, 1, 5, 13, 236, 166, 170, 62, 84, 83, 40, 17, 93, 84, 226, 9, 63, 98, 58, 45, 87, 69, 52, 96, 88, 105, 112, 118, 102, 116, 57, 111, 119, 93, 53, 97, 90, 42, 114, 50, 123, 51, 59, 93, 66, 65, 38, 62, 91, 47, 112, 50, 46, 121, 79, 92, 44, 47, 101, 82, 112, 62, 83, 93, 99, 49, 93, 34, 39, 43, 84, 53, 57, 65, 48, 67, 42, 120, 128, 248, 193, 140, 153, 204, 143, 228, 200, 1, 250, 1, 10, 13, 54, 140, 157, 62, 29, 130, 212, 116, 62, 84, 83, 40, 89, 93, 171, 133, 8, 63, 98, 41, 58, 86, 36, 39, 96, 124, 46, 88, 84, 74, 68, 64, 64, 93, 94, 92, 121, 49, 99, 36, 54, 79, 90, 90, 119, 108, 105, 43, 81, 85, 113, 78, 110, 61, 35, 123, 88, 91, 80, 95, 115, 120, 128, 144, 180, 208, 185, 251, 160, 131, 63, 250, 1, 5, 13, 21, 46, 18, 63, 84, 83, 40, 12, 93, 151, 154, 88, 63, 98, 52, 120, 32, 81, 99, 76, 91, 44, 82, 94, 60, 105, 123, 72, 46, 114, 51, 34, 38, 125, 88, 116, 80, 35, 90, 98, 35, 61, 95, 36, 47, 102, 120, 80, 105, 126, 108, 55, 70, 37, 121, 101, 123, 47, 33, 56, 126, 47, 76, 92, 76, 113, 71, 120, 128, 200, 199, 180, 169, 191, 188, 164, 203, 1, 250, 1, 5, 13, 30, 113, 2, 63, 84, 83, 40, 121, 93, 168, 63, 213, 62, 98, 46, 124, 118, 33, 72, 61, 75, 77, 79, 84, 112, 74, 94, 46, 38, 122, 90, 33, 36, 113, 120, 64, 33, 65, 98, 114, 112, 35, 87, 61, 63, 64, 32, 109, 87, 111, 64, 69, 91, 91, 58, 77, 95, 75, 71, 83, 80, 120, 128, 176, 144, 177, 135, 153, 131, 137, 41, 250, 1, 5, 13, 209, 148, 16, 63, 84, 83, 40, 64, 93, 147, 1, 111, 62, 98, 67, 70, 83, 93, 34, 39, 122, 85, 61, 84, 76, 71, 117, 49, 53, 79, 74, 111, 86, 54, 90, 53, 68, 71, 87, 74, 95, 85, 121, 46, 66, 82, 76, 38, 39, 119, 107, 65, 107, 80, 115, 106, 39, 38, 46, 113, 86, 78, 54, 118, 41, 95, 102, 63, 117, 32, 33, 44, 38, 86, 70, 68, 90, 46, 50, 121, 122, 111, 120, 128, 149, 237, 215, 209, 165, 233, 190, 141, 1, 250, 1, 5, 13, 225, 173, 154, 62, 84, 83, 40, 88, 93, 159, 66, 193, 61, 98, 90, 36, 38, 65, 111, 46, 61, 56, 101, 114, 49, 62, 34, 37, 98, 106, 45, 48, 38, 117, 95, 59, 52, 41, 78, 47, 119, 115, 52, 118, 102, 68, 120, 52, 32, 90, 95, 124, 38, 113, 98, 114, 63, 98, 53, 38, 88, 41, 79, 46, 108, 94, 35, 69, 34, 108, 110, 123, 113, 95, 53, 73, 36, 110, 44, 107, 69, 108, 36, 39, 42, 48, 42, 52, 50, 107, 122, 80, 115, 72, 85, 109, 68, 37, 41, 39, 65, 82, 49, 50, 106, 120, 128, 152, 234, 163, 155, 163, 209, 158, 218, 1, 250, 1, 5, 13, 107, 197, 238, 61, 84, 83, 40, 49, 93, 58, 40, 33, 63, 98, 52, 57, 110, 80, 86, 72, 96, 107, 36, 71, 36, 92, 84, 109, 51, 54, 113, 61, 40, 72, 42, 70, 37, 126, 100, 36, 74, 113, 91, 112, 59, 70, 36, 100, 87, 120, 124, 73, 121, 74, 103, 105, 104, 123, 33, 76, 82, 82, 63, 122, 64, 76, 90, 120, 128, 144, 153, 244, 197, 130, 201, 161, 88, 250, 1, 10, 13, 196, 125, 145, 62, 29, 197, 116, 98, 62, 84, 83, 40, 26, 93, 104, 13, 85, 63, 98, 50, 107, 82, 125, 109, 47, 51, 43, 92, 87, 111, 53, 57, 57, 71, 67, 93, 96, 63, 92, 41, 125, 55, 80, 118, 81, 95, 79, 109, 107, 66, 73, 66, 100, 45, 92, 70, 75, 120, 89, 85, 111, 67, 116, 97, 60, 37, 97, 120, 41, 124, 120, 128, 189, 199, 152, 224, 231, 187, 196, 129, 1, 250, 1, 10, 13, 142, 243, 114, 63, 29, 89, 104, 20, 63, 84, 83, 40, 13, 93, 47, 201, 89, 63, 98, 71, 84, 33, 39, 59, 79, 98, 61, 111, 52, 70, 114, 83, 43, 105, 123, 49, 102, 101, 39, 57, 89, 66, 110, 89, 76, 125, 86, 100, 110, 65, 77, 106, 90, 59, 40, 69, 68, 93, 42, 114, 82, 83, 95, 59, 73, 80, 85, 47, 44, 107, 57, 52, 79, 112, 55, 49, 50, 76, 110, 80, 43, 87, 33, 114, 119, 39, 120, 111, 96, 86, 107, 120, 128, 186, 213, 198, 225, 207, 171, 181, 140, 1, 250, 1, 10, 13, 179, 253, 30, 63, 29, 111, 85, 82, 62, 84, 83, 40, 93, 93, 175, 119, 123, 61, 98, 58, 98, 83, 48, 122, 72, 71, 88, 34, 39, 57, 58, 105, 35, 118, 50, 119, 109, 89, 102, 121, 81, 108, 66, 65, 87, 100, 77, 84, 32, 48, 88, 60, 42, 49, 78, 94, 60, 115, 39, 99, 125, 125, 106, 94, 107, 46, 107, 105, 68, 115, 58, 33, 75, 106, 82, 116, 48, 109, 120, 128, 220, 139, 132, 241, 199, 221, 160, 47, 250, 1, 5, 13, 5, 203, 51, 63, 84, 83, 40, 118, 93, 46, 233, 58, 61, 98, 47, 34, 117, 95, 125, 95, 113, 71, 83, 90, 120, 81, 35, 123, 83, 33, 98, 84, 73, 120, 99, 48, 43, 116, 86, 111, 62, 93, 88, 77, 78, 80, 67, 105, 121, 123, 115, 126, 109, 78, 121, 65, 111, 56, 65, 79, 71, 110, 120, 128, 128, 180, 253, 223, 234, 159, 235, 255, 1, 250, 1, 5, 13, 152, 224, 95, 63, 84, 83, 40, 60, 93, 68, 89, 130, 62, 98, 49, 120, 105, 53, 115, 117, 33, 40, 45, 64, 51, 110, 37, 44, 72, 45, 57, 33, 86, 45, 99, 102, 121, 125, 65, 63, 114, 83, 39, 72, 78, 93, 100, 32, 54, 87, 89, 83, 38, 37, 114, 117, 96, 45, 102, 82, 105, 43, 120, 65, 120, 128, 246, 195, 147, 159, 180, 159, 156, 20, 250, 1, 5, 13, 168, 193, 80, 63, 84, 83, 40, 53, 93, 139, 153, 60, 63, 98, 28, 104, 80, 125, 106, 114, 83, 34, 76, 32, 100, 113, 84, 41, 37, 117, 111, 83, 100, 122, 81, 57, 108, 38, 107, 55, 110, 84, 103, 120, 128, 192, 203, 230, 200, 225, 219, 180, 79, 250, 1, 10, 13, 103, 252, 58, 63, 29, 205, 166, 138, 62, 84, 83, 40, 85, 93, 179, 226, 108, 62, 98, 59, 125, 55, 100, 88, 109, 95, 81, 34, 69, 117, 122, 59, 49, 73, 100, 52, 40, 109, 72, 114, 117, 76, 122, 74, 50, 83, 36, 125, 58, 112, 58, 74, 49, 62, 42, 109, 49, 55, 100, 36, 72, 78, 114, 118, 42, 80, 37, 69, 111, 82, 82, 119, 112, 108, 63, 81, 59, 57, 70, 120, 128, 232, 251, 179, 228, 181, 222, 159, 163, 1, 250, 1, 5, 13, 197, 154, 31, 63, 84, 83, 40, 68, 93, 226, 129, 63, 63, 98, 84, 84, 91, 80, 41, 114, 62, 117, 35, 111, 40, 67, 73, 70, 88, 36, 64, 96, 77, 94, 46, 102, 62, 65, 89, 67, 125, 88, 82, 118, 112, 74, 72, 116, 102, 62, 58, 88, 70, 50, 38, 120, 79, 97, 110, 76, 67, 120, 119, 54, 119, 100, 107, 123, 68, 32, 53, 57, 117, 101, 115, 101, 67, 43, 126, 92, 122, 84, 94, 58, 104, 102, 58, 59, 87, 52, 55, 92, 81, 45, 32, 37, 95, 59, 126, 120, 128, 254, 244, 193, 252, 238, 167, 143, 16, 250, 1, 5, 13, 167, 225, 39, 63, 84, 83, 40, 58, 93, 218, 26, 1, 63, 98, 59, 102, 40, 33, 98, 96, 61, 64, 84, 67, 97, 50, 81, 109, 57, 93, 76, 49, 74, 79, 68, 48, 103, 88, 102, 104, 100, 109, 37, 39, 44, 115, 125, 78, 36, 118, 49, 103, 36, 88, 125, 55, 94, 115, 121, 63, 91, 49, 107, 34, 110, 108, 95, 46, 39, 63, 126, 79, 58, 120, 120, 128, 208, 226, 169, 239, 147, 149, 206, 250, 1, 250, 1, 5, 13, 31, 100, 250, 62, 84, 83, 40, 36, 93, 57, 81, 243, 62, 98, 67, 54, 108, 51, 34, 105, 65, 76, 100, 44, 113, 81, 45, 80, 114, 94, 70, 45, 82, 34, 35, 56, 62, 51, 110, 70, 99, 118, 96, 76, 42, 92, 78, 122, 49, 92, 44, 44, 88, 70, 73, 84, 42, 95, 109, 92, 121, 110, 44, 112, 114, 107, 72, 75, 55, 52, 119, 88, 68, 91, 38, 73, 106, 55, 34, 52, 34, 49, 120, 128, 172, 166, 243, 192, 237, 178, 154, 42, 250, 1, 5, 13, 25, 11, 110, 62, 84, 83, 40, 65, 93, 57, 70, 143, 62, 98, 47, 83, 43, 88, 77, 45, 93, 69, 49, 75, 115, 106, 111, 89, 62, 52, 35, 99, 123, 100, 82, 102, 124, 64, 126, 105, 113, 93, 89, 90, 104, 79, 117, 62, 88, 55, 60, 113, 105, 39, 57, 51, 50, 47, 49, 94, 121, 93, 120, 128, 248, 202, 182, 155, 233, 215, 180, 90, 250, 1, 5, 13, 86, 192, 45, 59, 84, 83, 40, 125, 93, 158, 98, 242, 62, 98, 58, 66, 80, 125, 82, 86, 106, 89, 99, 58, 32, 107, 86, 98, 68, 116, 80, 33, 38, 118, 48, 120, 116, 75, 63, 84, 109, 46, 64, 110, 52, 121, 88, 91, 59, 45, 68, 64, 37, 96, 81, 56, 38, 107, 57, 70, 90, 75, 108, 104, 72, 91, 92, 40, 109, 83, 76, 37, 94, 120, 128, 136, 150, 128, 234, 182, 176, 129, 125, 250, 1, 5, 13, 71, 181, 66, 63, 84, 83, 40, 79, 93, 197, 20, 137, 62, 98, 57, 115, 38, 37, 50, 121, 70, 55, 80, 48, 122, 68, 68, 119, 114, 41, 49, 119, 121, 65, 65, 86, 69, 88, 61, 80, 109, 103, 95, 62, 97, 39, 119, 117, 125, 49, 100, 51, 52, 95, 37, 85, 55, 56, 96, 55, 98, 117, 95, 67, 114, 101, 35, 70, 57, 97, 77, 77, 120, 128, 232, 155, 203, 224, 179, 222, 217, 95, 250, 1, 5, 13, 166, 5, 49, 63, 84, 83, 40, 17, 93, 23, 201, 39, 63, 98, 58, 86, 49, 78, 115, 76, 78, 120, 97, 67, 125, 99, 57, 60, 107, 62, 45, 118, 37, 108, 118, 40, 60, 74, 122, 36, 80, 91, 60, 99, 55, 76, 81, 82, 69, 125, 38, 105, 107, 105, 52, 124, 125, 126, 116, 34, 104, 42, 76, 66, 64, 85, 96, 116, 52, 86, 57, 101, 83, 120, 128, 176, 196, 168, 159, 140, 163, 196, 106, 250, 1, 5, 13, 170, 234, 118, 63, 84, 83, 40, 109, 93, 33, 112, 33, 63, 98, 53, 124, 43, 81, 49, 101, 117, 109, 56, 67, 43, 59, 88, 121, 41, 61, 85, 119, 58, 69, 47, 120, 67, 97, 106, 92, 61, 110, 100, 63, 53, 123, 109, 65, 64, 32, 114, 67, 111, 35, 52, 94, 42, 123, 74, 69, 60, 58, 76, 123, 48, 90, 84, 86, 120, 128, 144, 213, 163, 149, 198, 168, 157, 90, 250, 1, 5, 13, 144, 154, 51, 63, 84, 83, 40, 77, 93, 12, 194, 222, 62, 98, 42, 102, 84, 71, 38, 41, 120, 45, 46, 77, 55, 89, 41, 73, 50, 39, 55, 49, 79, 110, 70, 55, 68, 63, 35, 66, 103, 46, 90, 71, 54, 93, 92, 69, 73, 92, 59, 90, 45, 85, 48, 109, 60, 120, 128, 208, 135, 139, 181, 142, 189, 216, 117, 250, 1, 5, 13, 15, 95, 99, 61, 84, 83, 40, 85, 93, 246, 195, 185, 62, 98, 69, 81, 125, 82, 61, 69, 51, 115, 51, 49, 65, 52, 68, 98, 64, 105, 82, 101, 54, 88, 123, 98, 32, 84, 107, 91, 35, 121, 93, 87, 122, 76, 58, 66, 32, 53, 48, 39, 41, 112, 74, 104, 50, 55, 58, 38, 54, 73, 52, 70, 59, 85, 96, 75, 99, 94, 81, 72, 102, 96, 65, 57, 54, 90, 54, 116, 121, 33, 98, 42, 120, 128, 160, 214, 203, 153, 228, 177, 221, 204, 1, 250, 1, 5, 13, 126, 225, 229, 62, 84, 83, 40, 79, 93, 139, 83, 197, 62, 98, 45, 46, 51, 80, 104, 57, 100, 69, 88, 100, 54, 59, 68, 106, 109, 94, 64, 99, 102, 64, 72, 79, 49, 81, 87, 32, 69, 44, 52, 101, 42, 108, 112, 120, 60, 61, 79, 46, 104, 46, 33, 59, 103, 83, 126, 62, 120, 128, 168, 248, 219, 199, 151, 194, 223, 108, 250, 1, 10, 13, 211, 70, 212, 61, 29, 21, 63, 247, 61, 84, 83, 40, 46, 93, 61, 0, 184, 62, 98, 57, 70, 112, 42, 51, 116, 124, 96, 119, 103, 115, 88, 48, 113, 90, 73, 74, 75, 78, 80, 46, 50, 122, 88, 62, 45, 102, 92, 81, 56, 47, 59, 32, 113, 67, 98, 122, 101, 101, 70, 64, 109, 53, 32, 58, 71, 42, 116, 120, 85, 114, 69, 90, 89, 52, 48, 75, 56, 120, 128, 200, 185, 141, 141, 147, 204, 235, 100, 250, 1, 5, 13, 229, 188, 125, 61, 84, 83, 40, 18, 93, 84, 117, 170, 62, 98, 53, 47, 95, 88, 87, 87, 62, 78, 118, 78, 100, 100, 39, 48, 63, 123, 121, 61, 117, 35, 113, 98, 123, 68, 104, 96, 69, 93, 51, 55, 97, 121, 95, 57, 32, 94, 85, 71, 98, 110, 107, 70, 34, 38, 46, 95, 83, 73, 116, 51, 80, 122, 115, 34, 120, 128, 180, 145, 208, 244, 153, 139, 129, 165, 1, 250, 1, 5, 13, 250, 56, 33, 63, 84, 83, 40, 24, 93, 102, 216, 143, 62, 98, 65, 110, 118, 50, 96, 58, 94, 107, 105, 37, 108, 47, 95, 70, 82, 90, 39, 54, 74, 96, 116, 53, 41, 44, 123, 103, 32, 102, 102, 38, 92, 124, 67, 76, 58, 87, 106, 92, 42, 44, 66, 58, 68, 90, 101, 58, 52, 107, 125, 64, 108, 106, 111, 122, 60, 36, 101, 105, 54, 119, 58, 119, 37, 98, 71, 110, 120, 128, 216, 169, 205, 252, 213, 205, 234, 228, 1, 250, 1, 5, 13, 220, 249, 71, 62, 84, 83, 40, 16, 93, 156, 230, 112, 63, 98, 58, 110, 73, 44, 62, 62, 90, 112, 78, 69, 96, 83, 51, 103, 70, 56, 112, 45, 72, 48, 53, 113, 33, 70, 50, 113, 73, 52, 96, 50, 117, 78, 34, 95, 35, 80, 66, 94, 81, 91, 96, 51, 55, 67, 84, 68, 38, 48, 94, 74, 85, 97, 66, 34, 117, 39, 109, 35, 120, 120, 128, 228, 212, 192, 199, 150, 166, 133, 188, 1, 250, 1, 5, 13, 109, 47, 98, 63, 84, 83, 40, 50, 93, 219, 177, 37, 62, 98, 67, 59, 79, 50, 80, 82, 99, 116, 116, 50, 90, 107, 78, 34, 90, 92, 113, 109, 106, 57, 85, 54, 91, 52, 43, 32, 105, 123, 98, 63, 101, 36, 102, 58, 36, 122, 115, 65, 114, 82, 75, 104, 84, 67, 38, 85, 82, 115, 76, 48, 49, 43, 97, 90, 110, 119, 94, 59, 38, 80, 104, 103, 50, 85, 75, 86, 36, 51, 120, 128, 192, 203, 210, 207, 142, 220, 148, 253, 1, 250, 1, 5, 13, 49, 45, 42, 63, 84, 83, 40, 96, 93, 37, 141, 0, 63, 98, 39, 122, 55, 109, 108, 97, 55, 45, 85, 76, 116, 79, 82, 46, 90, 66, 44, 75, 43, 59, 88, 58, 65, 105, 98, 86, 125, 118, 79, 80, 62, 117, 107, 71, 96, 48, 73, 108, 34, 53, 120, 128, 152, 145, 193, 144, 175, 137, 137, 53, 250, 1, 5, 13, 210, 191, 21, 62, 84, 83, 40, 64, 93, 41, 161, 33, 61, 98, 36, 114, 56, 94, 70, 112, 51, 119, 103, 113, 67, 47, 52, 88, 77, 42, 53, 99, 63, 92, 36, 46, 126, 98, 42, 77, 73, 120, 62, 72, 116, 115, 74, 105, 61, 117, 73, 120, 128, 192, 145, 203, 206, 228, 139, 217, 244, 1, 250, 1, 5, 13, 103, 99, 19, 63, 84, 83, 40, 8, 93, 4, 107, 153, 62, 98, 28, 88, 85, 36, 72, 55, 75, 86, 122, 97, 108, 81, 39, 80, 75, 116, 114, 85, 84, 120, 70, 58, 88, 63, 123, 78, 100, 74, 58, 120, 128, 144, 198, 150, 249, 128, 177, 180, 201, 1, 250, 1, 10, 13, 212, 57, 45, 63, 29, 3, 92, 161, 62, 200, 4, 16, 84, 83, 40, 34, 93, 81, 133, 171, 62, 98, 77, 75, 87, 122, 57, 113, 33, 114, 124, 92, 90, 67, 108, 120, 61, 72, 35, 114, 66, 92, 94, 34, 126, 54, 39, 120, 82, 32, 60, 68, 33, 78, 69, 108, 48, 32, 60, 119, 59, 97, 119, 83, 60, 123, 99, 88, 97, 106, 44, 112, 83, 108, 122, 78, 90, 61, 75, 65, 114, 64, 63, 32, 86, 88, 91, 44, 124, 32, 104, 61, 43, 42, 86, 96, 100, 42, 100, 35, 120, 128, 184, 240, 132, 203, 239, 131, 167, 67, 250, 1, 10, 13, 155, 16, 251, 62, 29, 79, 236, 123, 62, 84, 83, 40, 95, 93, 12, 82, 95, 63, 98, 58, 74, 111, 51, 82, 117, 50, 114, 84, 122, 36, 122, 66, 118, 124, 99, 64, 87, 90, 96, 33, 110, 101, 72, 53, 58, 105, 79, 87, 71, 110, 67, 40, 86, 44, 43, 103, 71, 88, 39, 109, 116, 103, 48, 37, 91, 61, 109, 45, 33, 98, 121, 115, 85, 101, 35, 100, 71, 125, 120, 128, 196, 236, 136, 212, 159, 228, 198, 160, 1, 250, 1, 5, 13, 5, 66, 8, 62, 84, 83, 40, 87, 93, 16, 105, 145, 62, 98, 61, 44, 43, 96, 114, 106, 105, 112, 123, 120, 125, 82, 114, 44, 39, 85, 67, 89, 123, 122, 65, 85, 99, 116, 79, 82, 111, 40, 70, 64, 72, 64, 121, 43, 89, 90, 36, 68, 103, 82, 35, 59, 37, 105, 123, 64, 97, 89, 123, 47, 35, 68, 59, 48, 64, 100, 71, 54, 48, 63, 121, 96, 120, 128, 220, 136, 144, 215, 233, 197, 128, 185, 1, 250, 1, 5, 13, 82, 122, 31, 63, 84, 83, 40, 63, 93, 1, 33, 35, 63, 98, 47, 88, 103, 81, 75, 80, 125, 112, 73, 118, 37, 80, 121, 119, 47, 111, 53, 44, 55, 60, 36, 37, 104, 106, 116, 51, 108, 52, 72, 87, 66, 112, 73, 58, 62, 102, 121, 40, 80, 93, 36, 82, 112, 56, 58, 51, 77, 61, 120, 144, 176, 196, 150, 128, 129, 163, 180, 129, 1, 250, 1, 5, 13, 210, 29, 254, 62, 84, 83, 40, 91, 93, 233, 230, 12, 63, 98, 38, 51, 62, 74, 87, 110, 124, 91, 55, 98, 105, 72, 113, 84, 52, 39, 95, 89, 71, 117, 45, 90, 88, 55, 80, 51, 79, 80, 97, 100, 78, 51, 119, 114, 109, 93, 42, 110, 102, 120, 128, 168, 248, 252, 163, 155, 194, 231, 117, 250, 1, 5, 13, 18, 248, 119, 63, 84, 83, 40, 58, 93, 0, 81, 133, 62, 98, 52, 121, 58, 42, 126, 99, 37, 44, 109, 99, 88, 88, 86, 120, 89, 39, 120, 68, 62, 75, 121, 82, 51, 86, 79, 126, 102, 86, 124, 112, 113, 79, 120, 96, 65, 94, 124, 70, 51, 107, 74, 84, 118, 106, 89, 63, 59, 115, 35, 34, 116, 66, 88, 120, 128, 224, 189, 140, 184, 135, 238, 227, 192, 1, 250, 1, 5, 13, 27, 210, 5, 63, 84, 83, 40, 93, 93, 175, 193, 59, 63, 98, 41, 98, 89, 32, 123, 78, 47, 124, 113, 41, 95, 117, 87, 122, 42, 82, 48, 82, 33, 68, 90, 72, 124, 48, 98, 114, 82, 121, 122, 79, 117, 72, 46, 91, 119, 57, 107, 50, 110, 123, 69, 121, 120, 128, 208, 252, 232, 254, 231, 228, 199, 246, 1, 250, 1, 5, 13, 241, 209, 0, 63, 84, 83, 40, 84, 93, 189, 113, 196, 62, 98, 56, 60, 40, 119, 65, 49, 38, 78, 45, 43, 60, 101, 73, 60, 41, 123, 52, 33, 66, 51, 54, 103, 123, 35, 111, 101, 124, 98, 37, 125, 95, 79, 76, 80, 62, 86, 73, 33, 88, 61, 110, 120, 33, 79, 90, 83, 66, 117, 101, 126, 48, 120, 85, 60, 72, 92, 64, 120, 194, 143, 166, 141, 143, 252, 176, 8, 250, 1, 5, 13, 57, 84, 172, 61, 84, 83, 40, 79, 93, 112, 186, 90, 62, 98, 44, 67, 73, 46, 74, 108, 56, 120, 125, 82, 82, 50, 71, 36, 67, 61, 101, 75, 71, 59, 67, 39, 124, 37, 109, 102, 120, 47, 39, 97, 54, 67, 120, 124, 40, 75, 79, 114, 37, 109, 58, 72, 118, 50, 76, 120, 128, 192, 196, 130, 151, 131, 164, 148, 125, 250, 1, 5, 13, 193, 9, 4, 63, 84, 83, 40, 65, 93, 14, 10, 109, 63, 98, 70, 43, 117, 115, 92, 107, 56, 44, 70, 67, 64, 99, 114, 40, 113, 60, 60, 46, 57, 74, 123, 119, 108, 114, 70, 89, 32, 121, 47, 105, 88, 111, 53, 72, 55, 123, 106, 65, 102, 45, 100, 123, 37, 43, 82, 64, 122, 50, 86, 90, 117, 62, 99, 38, 84, 32, 61, 34, 77, 35, 106, 61, 124, 91, 106, 79, 78, 74, 112, 116, 80, 120, 128, 176, 138, 140, 182, 171, 211, 224, 121, 250, 1, 5, 13, 181, 254, 209, 62, 84, 83, 40, 15, 93, 16, 88, 58, 63, 98, 67, 32, 113, 97, 64, 37, 94, 109, 67, 83, 115, 57, 43, 46, 114, 54, 93, 104, 114, 98, 66, 70, 125, 72, 64, 34, 112, 79, 64, 96, 42, 121, 118, 88, 64, 84, 45, 91, 97, 72, 68, 123, 121, 72, 103, 80, 68, 64, 86, 90, 55, 102, 39, 99, 103, 62, 33, 73, 64, 62, 51, 46, 76, 97, 73, 120, 66, 82, 120, 128, 152, 204, 199, 237, 185, 225, 188, 103, 250, 1, 5, 13, 32, 35, 159, 62, 84, 83, 40, 11, 93, 11, 70, 176, 60, 98, 32, 38, 74, 62, 69, 76, 85, 95, 110, 92, 80, 119, 101, 73, 66, 113, 51, 111, 34, 83, 99, 58, 67, 52, 53, 78, 55, 126, 110, 46, 113, 82, 57, 120, 128, 248, 135, 186, 200, 201, 191, 208, 195, 1, 250, 1, 5, 13, 78, 17, 100, 62, 84, 83, 40, 85, 93, 189, 91, 35, 63, 98, 72, 69, 66, 113, 74, 104, 80, 96, 98, 53, 102, 55, 38, 38, 47, 97, 106, 104, 67, 102, 98, 53, 40, 117, 52, 86, 112, 96, 106, 125, 94, 50, 52, 97, 53, 108, 77, 47, 41, 122, 105, 97, 81, 32, 103, 32, 119, 103, 126, 47, 102, 79, 46, 78, 124, 70, 60, 75, 93, 114, 118, 111, 116, 99, 86, 83, 35, 67, 111, 65, 52, 91, 95, 120, 128, 152, 215, 238, 134, 206, 185, 245, 182, 1, 250, 1, 5, 13, 23, 22, 120, 63, 84, 83, 40, 1, 93, 46, 38, 54, 63, 98, 52, 40, 46, 52, 93, 40, 97, 90, 54, 46, 36, 101, 100, 109, 80, 33, 81, 53, 35, 120, 107, 108, 72, 51, 123, 84, 118, 92, 121, 43, 110, 100, 80, 123, 98, 52, 60, 73, 52, 109, 45, 58, 77, 71, 79, 61, 93, 34, 112, 51, 41, 73, 69, 120, 192, 170, 246, 131, 150, 212, 178, 159, 5, 250, 1, 5, 13, 241, 199, 89, 62, 84, 83, 40, 115, 93, 19, 216, 39, 63, 98, 29, 122, 55, 41, 48, 36, 96, 42, 62, 62, 52, 104, 43, 59, 99, 39, 32, 52, 107, 81, 62, 33, 99, 94, 118, 116, 107, 102, 33, 69, 120, 128, 232, 199, 186, 215, 208, 190, 212, 42, 250, 1, 10, 13, 61, 172, 246, 62, 29, 148, 240, 62, 63, 84, 83, 40, 100, 93, 54, 135, 15, 63, 98, 47, 65, 49, 43, 93, 40, 89, 67, 40, 48, 40, 115, 117, 84, 78, 34, 72, 49, 54, 97, 87, 92, 55, 88, 50, 59, 56, 120, 40, 120, 126, 101, 33, 63, 101, 66, 117, 116, 86, 98, 119, 122, 119, 82, 85, 34, 125, 54, 120, 128, 136, 162, 236, 202, 197, 144, 226, 33, 250, 1, 10, 13, 117, 29, 127, 63, 29, 119, 223, 117, 63, 84, 83, 40, 18, 93, 210, 17, 118, 62, 98, 54, 37, 51, 119, 41, 88, 119, 66, 111, 95, 58, 46, 48, 66, 113, 86, 110, 43, 44, 83, 90, 83, 104, 92, 99, 99, 34, 47, 60, 33, 95, 40, 124, 112, 78, 123, 44, 108, 57, 60, 123, 52, 113, 55, 95, 105, 66, 51, 47, 71, 71, 45, 114, 72, 82, 120, 128, 224, 248, 249, 253, 173, 198, 207, 89, 250, 1, 7, 13, 197, 185, 148, 62, 32, 1, 84, 83, 40, 26, 93, 87, 183, 197, 62, 98, 47, 86, 103, 37, 109, 126, 50, 49, 62, 114, 117, 73, 33, 112, 110, 86, 70, 96, 80, 124, 121, 65, 109, 32, 115, 89, 82, 53, 84, 61, 107, 95, 85, 89, 115, 100, 52, 46, 36, 55, 77, 87, 35, 64, 57, 125, 69, 59, 120, 128, 197, 191, 210, 128, 169, 252, 147, 133, 1, 250, 1, 5, 13, 198, 34, 90, 63, 84, 83, 40, 17, 93, 14, 65, 145, 60, 98, 47, 105, 88, 56, 34, 103, 103, 49, 52, 76, 123, 92, 32, 38, 53, 115, 71, 124, 41, 66, 55, 92, 56, 79, 66, 62, 77, 101, 117, 51, 55, 49, 98, 49, 105, 117, 123, 64, 112, 124, 75, 123, 110, 106, 80, 122, 34, 57, 120, 128, 234, 152, 228, 194, 207, 198, 161, 7, 250, 1, 10, 13, 34, 212, 218, 61, 29, 195, 75, 122, 63, 84, 83, 40, 40, 93, 52, 222, 111, 63, 98, 63, 78, 115, 68, 80, 41, 117, 99, 58, 34, 59, 32, 53, 106, 120, 110, 59, 62, 118, 39, 43, 44, 117, 59, 108, 77, 125, 70, 59, 51, 96, 106, 53, 120, 55, 51, 60, 69, 68, 114, 73, 45, 98, 72, 95, 109, 85, 101, 33, 50, 124, 100, 51, 117, 50, 108, 88, 88, 86, 35, 42, 78, 71, 38, 120, 128, 192, 212, 192, 133, 253, 163, 133, 172, 1, 250, 1, 5, 13, 61, 219, 0, 63, 84, 83, 40, 98, 93, 87, 140, 149, 62, 98, 64, 82, 101, 82, 117, 121, 35, 92, 125, 73, 76, 90, 125, 118, 56, 69, 41, 54, 122, 87, 63, 101, 73, 90, 98, 110, 65, 103, 121, 100, 91, 40, 47, 36, 57, 50, 59, 94, 39, 106, 47, 56, 51, 67, 43, 124, 87, 43, 113, 41, 62, 111, 68, 118, 74, 84, 41, 42, 110, 38, 87, 58, 98, 57, 108, 120, 128, 168, 136, 147, 150, 177, 194, 152, 177, 1, 250, 1, 5, 13, 91, 46, 231, 62, 84, 83, 40, 119, 93, 12, 243, 36, 63, 98, 45, 38, 41, 73, 46, 48, 72, 39, 81, 38, 79, 101, 55, 53, 117, 111, 70, 107, 98, 55, 89, 99, 41, 48, 110, 32, 50, 115, 85, 121, 86, 101, 81, 92, 77, 106, 32, 115, 96, 52, 78, 67, 34, 34, 90, 41, 120, 128, 192, 216, 161, 205, 158, 196, 141, 234, 1, 250, 1, 5, 13, 199, 239, 182, 62, 84, 83, 40, 48, 93, 13, 17, 92, 63, 98, 49, 114, 32, 97, 50, 64, 120, 124, 119, 89, 45, 124, 83, 81, 87, 79, 104, 51, 89, 103, 43, 111, 81, 43, 77, 104, 54, 97, 38, 85, 101, 48, 111, 79, 98, 39, 85, 36, 62, 60, 83, 108, 39, 58, 82, 55, 121, 112, 74, 81, 120, 128, 232, 201, 184, 199, 213, 206, 196, 109, 250, 1, 12, 13, 177, 44, 100, 63, 29, 242, 184, 103, 62, 56, 1, 200, 4, 33, 84, 83, 40, 3, 93, 118, 110, 177, 62, 98, 39, 116, 51, 73, 42, 55, 117, 66, 115, 124, 44, 36, 109, 79, 121, 99, 116, 60, 52, 61, 103, 54, 87, 54, 109, 68, 54, 83, 99, 111, 122, 54, 54, 96, 101, 96, 112, 116, 50, 60, 120, 128, 168, 178, 190, 222, 183, 146, 243, 243, 1, 250, 1, 5, 13, 234, 142, 55, 63, 84, 83, 40, 51, 93, 186, 6, 16, 63, 98, 42, 42, 117, 35, 122, 87, 45, 32, 119, 69, 122, 57, 41, 60, 124, 90, 100, 32, 66, 94, 35, 33, 116, 109, 45, 104, 56, 114, 32, 42, 118, 70, 35, 111, 34, 43, 119, 64, 59, 122, 85, 111, 34, 120, 128, 248, 131, 142, 225, 223, 159, 240, 108, 250, 1, 10, 13, 42, 123, 142, 62, 29, 158, 19, 207, 62, 84, 83, 40, 79, 93, 242, 218, 191, 62, 98, 52, 114, 57, 76, 59, 83, 37, 66, 83, 53, 39, 116, 49, 62, 57, 32, 109, 77, 84, 54, 57, 58, 112, 98, 68, 100, 70, 40, 50, 125, 36, 82, 102, 45, 116, 126, 102, 93, 90, 113, 124, 76, 77, 117, 112, 74, 42, 91, 59, 111, 52, 67, 100, 120, 128, 222, 173, 189, 201, 234, 237, 234, 22, 250, 1, 5, 13, 55, 36, 186, 62, 84, 83, 40, 12, 93, 14, 218, 164, 60, 98, 81, 85, 40, 85, 45, 123, 47, 84, 48, 83, 46, 36, 73, 58, 57, 48, 113, 98, 56, 107, 107, 122, 113, 120, 90, 105, 108, 66, 105, 95, 109, 85, 105, 106, 124, 48, 84, 37, 100, 33, 60, 119, 100, 60, 60, 37, 50, 33, 85, 36, 80, 34, 119, 86, 60, 38, 99, 47, 122, 66, 47, 108, 106, 79, 101, 87, 57, 93, 60, 40, 90, 108, 124, 54, 78, 115, 54, 84, 91, 84, 87, 106, 120, 128, 184, 185, 232, 172, 175, 203, 195, 230, 1, 250, 1, 5, 13, 182, 254, 57, 63, 84, 83, 40, 20, 93, 130, 84, 72, 63, 98, 60, 93, 51, 78, 118, 75, 69, 41, 65, 112, 79, 45, 52, 85, 99, 107, 83, 100, 76, 73, 99, 37, 96, 39, 72, 111, 46, 82, 69, 106, 67, 126, 37, 64, 122, 121, 38, 47, 68, 92, 52, 98, 90, 68, 125, 102, 33, 126, 119, 104, 35, 38, 63, 59, 74, 101, 124, 43, 37, 39, 61, 120, 128, 176, 142, 227, 143, 131, 243, 152, 111, 250, 1, 5, 13, 130, 158, 52, 63, 84, 83, 40, 73, 93, 6, 212, 244, 62, 98, 54, 80, 39, 114, 90, 104, 100, 68, 63, 111, 52, 32, 73, 59, 41, 97, 109, 47, 89, 91, 102, 60, 95, 104, 116, 52, 124, 121, 41, 61, 62, 65, 126, 36, 118, 77, 94, 46, 67, 46, 35, 93, 102, 78, 39, 74, 59, 96, 34, 67, 57, 45, 56, 39, 110, 120, 128, 224, 251, 128, 225, 133, 222, 135, 23, 250, 1, 10, 13, 121, 122, 85, 63, 29, 242, 146, 161, 62, 84, 83, 40, 123, 93, 216, 76, 202, 62, 98, 65, 107, 105, 59, 33, 81, 114, 32, 69, 68, 90, 34, 95, 106, 74, 88, 41, 85, 49, 96, 74, 120, 59, 119, 100, 36, 49, 40, 119, 52, 101, 93, 64, 48, 125, 66, 56, 66, 100, 124, 52, 74, 117, 60, 70, 64, 89, 66, 109, 77, 101, 89, 93, 92, 82, 76, 79, 113, 85, 124, 63, 105, 39, 49, 93, 124, 120, 128, 224, 236, 250, 186, 227, 229, 214, 215, 1, 250, 1, 10, 13, 91, 59, 251, 62, 29, 210, 79, 78, 63, 84, 83, 40, 11, 93, 23, 35, 168, 62, 98, 61, 102, 112, 52, 76, 32, 34, 126, 81, 68, 74, 109, 58, 73, 77, 43, 126, 99, 93, 80, 113, 70, 107, 102, 92, 73, 66, 100, 93, 72, 94, 42, 84, 100, 46, 126, 104, 73, 47, 82, 74, 80, 64, 49, 82, 81, 79, 92, 98, 81, 124, 124, 112, 59, 54, 119, 121, 41, 87, 34, 92, 60, 120, 128, 220, 249, 187, 213, 217, 205, 223, 171, 1, 250, 1, 5, 13, 131, 87, 176, 61, 84, 83, 40, 91, 93, 146, 183, 170, 62, 98, 48, 57, 84, 58, 77, 66, 85, 83, 42, 38, 64, 38, 90, 52, 43, 121, 100, 33, 44, 74, 97, 56, 56, 78, 54, 37, 95, 113, 45, 116, 45, 47, 56, 76, 50, 55, 122, 66, 52, 47, 71, 72, 101, 53, 116, 113, 63, 116, 75, 120, 128, 223, 147, 171, 193, 245, 157, 217, 138, 1, 250, 1, 10, 13, 138, 43, 108, 63, 29, 202, 41, 146, 62, 84, 83, 40, 26, 93, 165, 75, 34, 63, 98, 37, 35, 38, 32, 37, 36, 72, 98, 98, 70, 53, 120, 48, 108, 46, 33, 114, 126, 66, 107, 124, 35, 56, 82, 35, 89, 67, 100, 105, 69, 37, 123, 113, 123, 90, 72, 44, 54, 120, 128, 184, 199, 170, 178, 186, 187, 212, 113, 250, 1, 10, 13, 141, 205, 156, 62, 29, 188, 202, 74, 63, 84, 83, 40, 58, 93, 216, 185, 54, 63, 98, 51, 34, 79, 59, 99, 36, 49, 115, 88, 40, 85, 78, 54, 89, 106, 83, 124, 75, 96, 98, 119, 61, 64, 57, 39, 52, 49, 100, 116, 91, 42, 37, 32, 80, 62, 53, 34, 102, 117, 62, 83, 117, 108, 124, 70, 66, 100, 33, 93, 87, 57, 73, 120, 128, 152, 222, 153, 164, 182, 241, 205, 80, 250, 1, 5, 13, 30, 43, 184, 61, 84, 83, 40, 69, 93, 172, 244, 206, 62, 98, 38, 97, 54, 52, 78, 113, 76, 126, 123, 125, 80, 77, 100, 58, 84, 80, 53, 84, 65, 47, 33, 80, 67, 114, 99, 79, 48, 38, 60, 66, 96, 72, 119, 123, 119, 83, 106, 81, 71, 120, 128, 176, 131, 177, 231, 254, 154, 136, 187, 1, 250, 1, 5, 13, 88, 89, 161, 61, 84, 83, 40, 115, 93, 205, 59, 87, 63, 98, 46, 125, 117, 116, 126, 102, 41, 38, 35, 115, 57, 120, 81, 117, 61, 67, 79, 125, 97, 69, 97, 89, 61, 39, 85, 104, 66, 33, 100, 99, 45, 117, 39, 42, 95, 69, 123, 110, 79, 72, 124, 53, 62, 107, 47, 125, 73, 120, 224, 238, 206, 164, 160, 246, 246, 164, 130, 1, 250, 1, 5, 13, 199, 216, 105, 62, 84, 83, 40, 52, 93, 247, 215, 174, 60, 98, 52, 72, 105, 96, 52, 54, 96, 109, 63, 54, 67, 40, 65, 63, 101, 67, 112, 71, 54, 119, 70, 96, 78, 57, 72, 76, 58, 80, 119, 86, 62, 64, 106, 61, 96, 100, 44, 69, 116, 72, 99, 46, 79, 57, 36, 116, 115, 126, 37, 106, 44, 34, 106, 120, 128, 224, 133, 174, 136, 247, 173, 240, 39, 250, 1, 5, 13, 175, 219, 39, 60, 84, 83, 40, 43, 93, 101, 68, 111, 63, 98, 43, 79, 56, 103, 123, 47, 117, 103, 119, 34, 60, 35, 93, 33, 55, 74, 81, 108, 51, 56, 49, 53, 52, 83, 88, 59, 74, 44, 73, 59, 85, 77, 60, 64, 106, 91, 45, 45, 76, 84, 56, 102, 64, 33, 120, 128, 152, 171, 149, 156, 174, 217, 170, 75, 250, 1, 5, 13, 253, 245, 86, 63, 84, 83, 40, 43, 93, 23, 2, 61, 61, 98, 29, 82, 97, 79, 125, 41, 103, 46, 99, 59, 100, 47, 95, 99, 104, 61, 91, 76, 110, 102, 60, 53, 91, 61, 68, 64, 93, 126, 73, 115, 120, 128, 224, 241, 138, 211, 255, 141, 215, 152, 1, 250, 1, 10, 13, 100, 109, 116, 63, 29, 215, 245, 63, 63, 84, 83, 40, 119, 93, 55, 231, 207, 62, 98, 48, 88, 103, 107, 87, 67, 83, 50, 39, 63, 72, 125, 107, 112, 79, 72, 100, 84, 104, 41, 35, 109, 118, 67, 43, 92, 74, 103, 99, 110, 41, 104, 70, 101, 60, 47, 85, 111, 116, 74, 50, 42, 46, 60, 116, 70, 83, 108, 79, 120, 144, 206, 207, 134, 236, 240, 252, 180, 2, 250, 1, 5, 13, 159, 235, 34, 62, 84, 83, 40, 81, 93, 181, 113, 68, 62, 98, 57, 93, 117, 88, 97, 68, 96, 121, 120, 106, 77, 55, 53, 95, 86, 38, 83, 63, 114, 116, 94, 62, 117, 120, 94, 90, 78, 100, 41, 92, 56, 98, 95, 75, 86, 104, 110, 99, 76, 49, 46, 121, 80, 71, 92, 118, 38, 53, 110, 77, 56, 47, 45, 57, 125, 114, 102, 124, 120, 128, 216, 184, 132, 177, 221, 197, 163, 119, 250, 1, 5, 13, 107, 4, 155, 61, 84, 83, 40, 113, 93, 201, 13, 117, 63, 98, 57, 112, 59, 82, 105, 86, 105, 40, 109, 54, 111, 114, 97, 101, 99, 108, 78, 59, 102, 84, 57, 116, 90, 68, 40, 85, 70, 77, 98, 33, 113, 106, 69, 59, 50, 41, 53, 115, 113, 64, 59, 44, 33, 55, 72, 60, 74, 83, 57, 38, 55, 96, 49, 82, 91, 38, 53, 118, 120, 128, 140, 237, 134, 198, 232, 232, 182, 57, 250, 1, 5, 13, 147, 56, 92, 62, 84, 83, 40, 21, 93, 22, 241, 152, 62, 98, 46, 69, 107, 68, 36, 76, 70, 82, 90, 87, 90, 73, 70, 56, 45, 114, 67, 122, 106, 42, 113, 51, 92, 104, 48, 88, 114, 94, 44, 114, 61, 73, 93, 47, 126, 101, 53, 114, 67, 111, 36, 32, 93, 77, 92, 55, 105, 120, 128, 156, 235, 131, 151, 242, 217, 158, 35, 250, 1, 5, 13, 91, 234, 249, 62, 84, 83, 40, 24, 93, 94, 222, 92, 63, 98, 31, 123, 94, 41, 61, 40, 104, 35, 51, 75, 89, 102, 69, 102, 58, 48, 106, 54, 57, 70, 93, 79, 86, 122, 37, 113, 84, 46, 43, 119, 109, 88, 120, 128, 190, 169, 229, 146, 232, 203, 170, 150, 1, 250, 1, 7, 13, 3, 86, 112, 63, 56, 0, 84, 83, 40, 44, 93, 8, 101, 70, 63, 98, 38, 83, 113, 117, 124, 49, 94, 119, 53, 61, 89, 118, 51, 76, 76, 83, 32, 39, 83, 66, 68, 99, 36, 75, 82, 89, 118, 59, 92, 32, 85, 75, 102, 119, 69, 55, 68, 66, 73, 120, 128, 140, 211, 204, 184, 245, 152, 229, 59, 250, 1, 10, 13, 159, 141, 89, 63, 29, 196, 171, 39, 63, 84, 83, 40, 91, 93, 246, 118, 64, 63, 98, 27, 55, 93, 122, 94, 75, 58, 88, 40, 69, 93, 124, 37, 79, 70, 67, 66, 58, 66, 58, 53, 102, 45, 48, 58, 38, 52, 46, 120, 128, 176, 183, 233, 219, 133, 187, 203, 82, 250, 1, 10, 13, 196, 174, 37, 63, 29, 160, 128, 160, 61, 84, 83, 40, 64, 93, 136, 127, 58, 63, 98, 25, 126, 59, 51, 115, 94, 56, 110, 65, 71, 76, 38, 40, 122, 64, 103, 125, 126, 39, 49, 77, 67, 78, 32, 41, 77, 120, 128, 144, 221, 221, 218, 134, 233, 237, 213, 1, 250, 1, 10, 13, 42, 17, 23, 63, 29, 215, 120, 118, 62, 84, 83, 40, 15, 93, 2, 130, 115, 63, 98, 72, 74, 62, 45, 54, 38, 51, 50, 78, 98, 34, 82, 120, 109, 57, 39, 39, 63, 101, 76, 48, 93, 86, 117, 34, 65, 79, 59, 42, 70, 125, 94, 88, 53, 75, 34, 102, 122, 99, 57, 83, 106, 79, 67, 46, 122, 74, 96, 101, 33, 69, 64, 113, 105, 121, 60, 114, 72, 42, 115, 85, 119, 39, 40, 100, 66, 121, 98, 65, 54, 64, 44, 90, 120, 128, 128, 225, 168, 183, 143, 136, 198, 186, 1, 250, 1, 5, 13, 152, 76, 107, 63, 84, 83, 40, 49, 93, 135, 101, 28, 62, 98, 52, 51, 102, 39, 118, 110, 84, 41, 32, 93, 108, 109, 58, 47, 46, 62, 111, 110, 99, 91, 99, 71, 93, 107, 32, 102, 62, 78, 96, 56, 101, 70, 113, 84, 45, 95, 96, 35, 124, 101, 67, 125, 39, 39, 85, 44, 71, 50, 40, 33, 60, 106, 103, 120, 128, 228, 191, 213, 196, 148, 254, 171, 165, 1, 250, 1, 5, 13, 169, 104, 46, 63, 84, 83, 40, 93, 93, 210, 225, 12, 63, 98, 53, 122, 38, 47, 80, 37, 72, 103, 119, 69, 123, 100, 33, 78, 92, 107, 113, 124, 56, 100, 64, 86, 53, 115, 63, 43, 70, 94, 123, 121, 94, 85, 115, 70, 43, 101, 123, 108, 52, 62, 85, 63, 47, 47, 48, 97, 49, 88, 68, 80, 120, 105, 35, 122, 120, 128, 144, 175, 141, 128, 143, 249, 234, 51, 250, 1, 5, 13, 79, 93, 121, 63, 84, 83, 40, 91, 93, 18, 49, 76, 62, 98, 83, 111, 68, 93, 104, 107, 124, 102, 69, 112, 89, 66, 117, 110, 37, 103, 121, 47, 33, 71, 37, 98, 92, 121, 109, 57, 74, 32, 116, 82, 119, 32, 45, 32, 104, 123, 110, 95, 107, 82, 49, 72, 105, 111, 86, 53, 77, 96, 115, 33, 40, 106, 68, 84, 95, 79, 50, 74, 111, 78, 64, 124, 113, 114, 120, 89, 53, 117, 37, 40, 119, 57, 67, 77, 54, 92, 120, 108, 67, 87, 107, 105, 44, 114, 120, 128, 128, 137, 249, 150, 133, 200, 200, 183, 1, 250, 1, 5, 13, 10, 144, 7, 62, 84, 83, 40, 78, 93, 246, 172, 22, 63, 98, 71, 64, 57, 104, 68, 111, 60, 50, 52, 86, 118, 118, 124, 32, 87, 90, 106, 40, 110, 71, 118, 62, 34, 85, 69, 39, 55, 98, 85, 111, 125, 73, 107, 125, 92, 84, 107, 62, 83, 72, 39, 58, 34, 38, 34, 116, 69, 86, 52, 46, 65, 106, 89, 100, 98, 57, 61, 99, 67, 61, 87, 89, 92, 67, 87, 76, 42, 125, 67, 35, 110, 75, 120, 128, 168, 224, 221, 184, 178, 130, 238, 197, 1, 250, 1, 5, 13, 128, 165, 201, 62, 84, 83, 40, 43, 93, 159, 119, 35, 63, 98, 74, 60, 123, 83, 80, 96, 96, 78, 70, 77, 50, 110, 39, 58, 66, 54, 40, 122, 53, 112, 76, 93, 93, 77, 84, 105, 70, 51, 49, 63, 116, 54, 52, 67, 38, 124, 65, 47, 113, 92, 118, 43, 53, 116, 69, 93, 35, 99, 32, 107, 102, 79, 61, 84, 114, 126, 93, 78, 126, 101, 57, 76, 60, 39, 88, 122, 89, 98, 52, 69, 116, 119, 40, 88, 120, 120, 128, 236, 168, 181, 174, 216, 198, 170, 46, 250, 1, 5, 13, 123, 241, 215, 62, 84, 83, 40, 95, 93, 149, 65, 169, 61, 98, 32, 117, 101, 98, 50, 68, 88, 69, 119, 95, 80, 38, 62, 113, 48, 44, 66, 73, 109, 46, 60, 73, 35, 63, 78, 90, 118, 109, 71, 99, 90, 80, 86, 120, 128, 176, 222, 172, 238, 153, 243, 229, 242, 1, 250, 1, 10, 13, 219, 131, 209, 62, 29, 243, 218, 184, 61, 84, 83, 40, 126, 93, 99, 132, 17, 63, 98, 36, 58, 119, 77, 50, 34, 121, 50, 45, 39, 34, 102, 123, 54, 78, 83, 58, 74, 93, 113, 70, 51, 87, 76, 106, 124, 52, 36, 32, 79, 72, 74, 39, 44, 107, 47, 116, 120, 128, 128, 178, 206, 186, 247, 143, 243, 85, 250, 1, 5, 13, 242, 55, 214, 61, 84, 83, 40, 51, 93, 201, 242, 196, 61, 98, 76, 45, 65, 83, 115, 38, 74, 77, 44, 123, 60, 74, 104, 53, 88, 66, 97, 74, 98, 53, 109, 117, 50, 93, 93, 87, 94, 110, 73, 62, 93, 89, 64, 54, 104, 56, 113, 36, 87, 99, 82, 101, 119, 35, 51, 124, 96, 113, 82, 73, 77, 74, 123, 115, 88, 50, 122, 98, 116, 60, 70, 90, 35, 108, 61, 97, 41, 81, 76, 64, 79, 92, 113, 126, 97, 39, 125, 120, 128, 138, 154, 193, 162, 209, 208, 137, 148, 1, 250, 1, 5, 13, 59, 111, 228, 62, 84, 83, 40, 85, 93, 15, 236, 101, 63, 98, 60, 108, 60, 32, 112, 51, 92, 75, 93, 85, 60, 46, 47, 59, 60, 118, 98, 42, 100, 80, 114, 47, 68, 50, 120, 111, 87, 124, 50, 80, 52, 107, 56, 52, 70, 88, 62, 34, 123, 42, 37, 92, 115, 117, 35, 65, 77, 86, 97, 106, 68, 114, 73, 121, 108, 102, 71, 41, 39, 33, 91, 120, 128, 168, 228, 198, 234, 207, 162, 182, 212, 1, 250, 1, 5, 13, 156, 154, 138, 62, 84, 83, 40, 18, 93, 165, 139, 177, 62, 98, 57, 80, 117, 122, 116, 98, 87, 95, 46, 90, 74, 53, 58, 78, 46, 86, 65, 33, 59, 70, 43, 65, 66, 62, 71, 94, 48, 52, 122, 121, 77, 69, 67, 101, 84, 82, 74, 82, 96, 125, 50, 100, 99, 110, 78, 86, 75, 120, 121, 79, 94, 90, 67, 114, 34, 126, 46, 87, 120, 128, 232, 205, 227, 130, 150, 238, 156, 69, 250, 1, 10, 13, 56, 125, 101, 62, 29, 230, 17, 7, 63, 84, 83, 40, 46, 93, 80, 38, 56, 63, 98, 79, 51, 44, 37, 113, 84, 120, 91, 44, 110, 63, 61, 51, 69, 92, 82, 111, 112, 51, 55, 57, 74, 59, 114, 34, 80, 99, 85, 68, 114, 126, 75, 75, 110, 32, 79, 98, 72, 99, 118, 126, 62, 67, 111, 58, 38, 94, 91, 65, 90, 103, 98, 33, 58, 41, 58, 119, 56, 34, 65, 111, 67, 55, 56, 110, 114, 112, 68, 69, 44, 111, 70, 44, 60, 55, 122, 38, 75, 87, 123, 120, 128, 128, 128, 215, 168, 175, 128, 184, 109, 250, 1, 10, 13, 235, 13, 164, 61, 29, 154, 250, 77, 62, 84, 83, 40, 96, 93, 232, 106, 245, 61, 98, 37, 60, 74, 48, 101, 101, 87, 74, 69, 65, 38, 90, 38, 43, 32, 71, 52, 57, 53, 53, 106, 65, 85, 99, 35, 45, 51, 76, 95, 38, 79, 104, 48, 78, 45, 82, 72, 96, 120, 128, 184, 174, 202, 167, 169, 243, 210, 83, 250, 1, 5, 13, 45, 82, 43, 63, 84, 83, 40, 69, 93, 227, 13, 199, 62, 98, 44, 32, 105, 54, 91, 115, 122, 74, 48, 102, 87, 112, 124, 124, 105, 102, 101, 45, 87, 81, 43, 105, 63, 113, 60, 74, 87, 125, 76, 126, 83, 90, 85, 95, 69, 64, 106, 77, 70, 56, 55, 33, 78, 62, 119, 120, 128, 160, 218, 255, 158, 235, 209, 253, 116, 250, 1, 5, 13, 56, 65, 74, 62, 84, 83, 40, 64, 93, 171, 45, 187, 62, 98, 65, 107, 98, 83, 37, 45, 73, 90, 96, 119, 120, 49, 59, 124, 124, 49, 51, 123, 59, 61, 87, 72, 122, 55, 101, 62, 57, 41, 59, 32, 121, 68, 55, 39, 90, 96, 59, 32, 84, 71, 54, 106, 95, 114, 83, 53, 124, 58, 36, 61, 43, 122, 91, 116, 119, 121, 111, 74, 108, 102, 115, 64, 62, 95, 124, 83, 120, 128, 216, 186, 253, 222, 191, 213, 235, 247, 1, 250, 1, 5, 13, 116, 108, 90, 62, 84, 83, 40, 45, 93, 130, 79, 151, 62, 98, 42, 116, 51, 70, 114, 38, 107, 103, 40, 99, 79, 65, 126, 37, 124, 116, 125, 104, 65, 46, 96, 111, 112, 50, 109, 83, 117, 75, 126, 116, 126, 59, 103, 119, 102, 71, 118, 84, 103, 110, 44, 49, 103, 120, 128, 232, 186, 160, 233, 169, 214, 131, 95, 250, 1, 5, 13, 198, 87, 156, 62, 84, 83, 40, 48, 93, 40, 83, 98, 63, 98, 35, 58, 64, 106, 125, 106, 87, 37, 96, 75, 36, 33, 87, 63, 48, 64, 104, 50, 99, 52, 89, 38, 61, 85, 124, 73, 32, 82, 34, 79, 39, 41, 116, 73, 94, 90, 120, 128, 200, 169, 232, 209, 193, 204, 194, 142, 1, 250, 1, 5, 13, 100, 99, 89, 62, 84, 83, 40, 114, 93, 160, 95, 86, 62, 98, 41, 99, 98, 55, 59, 67, 117, 123, 72, 94, 106, 72, 85, 34, 40, 106, 109, 124, 106, 109, 84, 106, 36, 34, 49, 67, 121, 44, 45, 95, 84, 53, 83, 60, 79, 80, 117, 110, 33, 50, 38, 77, 120, 128, 216, 128, 160, 201, 209, 133, 128, 202, 1, 250, 1, 10, 13, 102, 129, 97, 63, 29, 111, 195, 118, 62, 84, 83, 40, 9, 93, 168, 136, 5, 63, 98, 49, 39, 107, 94, 111, 93, 63, 69, 65, 72, 94, 95, 37, 118, 72, 105, 109, 103, 41, 85, 115, 57, 81, 87, 115, 126, 123, 88, 102, 39, 51, 47, 106, 42, 113, 114, 63, 78, 110, 118, 117, 46, 121, 39, 112, 53, 104, 41, 105, 60, 120, 128, 232, 255, 230, 148, 187, 254, 183, 84, 250, 1, 5, 13, 18, 129, 82, 63, 84, 83, 40, 99, 93, 88, 254, 44, 63, 98, 60, 51, 56, 84, 52, 105, 112, 97, 101, 94, 58, 53, 79, 116, 122, 37, 84, 73, 63, 119, 50, 95, 100, 62, 74, 102, 93, 53, 113, 110, 74, 71, 68, 68, 42, 118, 88, 61, 43, 99, 125, 53, 47, 79, 95, 112, 65, 64, 109, 35, 52, 114, 63, 117, 87, 32, 77, 120, 41, 76, 44, 120, 128, 240, 227, 179, 213, 216, 158, 158, 79, 250, 1, 5, 13, 244, 251, 83, 63, 84, 83, 40, 115, 93, 219, 170, 86, 62, 98, 47, 113, 112, 42, 105, 36, 76, 54, 62, 90, 121, 123, 80, 53, 93, 89, 69, 61, 71, 109, 90, 87, 40, 77, 107, 41, 72, 94, 52, 93, 87, 67, 69, 55, 59, 109, 126, 54, 85, 104, 86, 124, 83, 99, 122, 90, 79, 55, 120, 128, 164, 242, 202, 228, 154, 146, 215, 164, 1, 250, 1, 5, 13, 34, 90, 255, 62, 84, 83, 40, 10, 93, 108, 67, 82, 63, 98, 45, 50, 33, 60, 91, 104, 66, 61, 95, 90, 108, 34, 95, 35, 86, 86, 57, 121, 111, 89, 46, 102, 94, 55, 92, 35, 67, 81, 49, 89, 49, 67, 99, 85, 104, 48, 68, 121, 94, 36, 91, 120, 116, 46, 105, 121, 120, 128, 168, 154, 139, 222, 195, 210, 217, 240, 1, 250, 1, 5, 13, 198, 157, 45, 63, 84, 83, 40, 49, 93, 195, 168, 70, 61, 98, 78, 54, 61, 75, 116, 120, 39, 83, 105, 94, 88, 68, 112, 44, 38, 72, 72, 61, 41, 57, 69, 49, 62, 58, 106, 124, 52, 112, 79, 76, 98, 46, 98, 45, 44, 67, 115, 119, 110, 92, 96, 91, 90, 59, 37, 95, 106, 108, 110, 100, 64, 91, 106, 70, 125, 113, 118, 34, 95, 119, 99, 54, 35, 60, 123, 74, 97, 99, 126, 97, 84, 80, 78, 76, 88, 105, 86, 35, 53, 120, 128, 191, 200, 237, 145, 251, 195, 236, 142, 1, 250, 1, 5, 13, 242, 198, 61, 62, 84, 83, 40, 53, 93, 137, 18, 136, 60, 98, 29, 106, 44, 38, 67, 59, 46, 57, 75, 112, 55, 117, 119, 74, 87, 62, 63, 90, 125, 39, 108, 45, 47, 111, 44, 61, 109, 52, 59, 115, 120, 128, 176, 147, 242, 204, 248, 154, 145, 231, 1, 250, 1, 5, 13, 23, 106, 14, 63, 84, 83, 40, 93, 93, 19, 1, 152, 62, 98, 61, 52, 56, 47, 116, 38, 69, 84, 101, 53, 99, 56, 88, 84, 45, 49, 55, 98, 89, 44, 41, 90, 115, 90, 60, 121, 37, 77, 120, 124, 87, 35, 97, 48, 91, 53, 63, 46, 74, 83, 87, 82, 38, 118, 75, 86, 83, 104, 95, 35, 36, 48, 51, 71, 92, 96, 64, 93, 114, 121, 33, 118, 120, 128, 176, 158, 245, 167, 245, 242, 169, 80, 250, 1, 5, 13, 223, 117, 65, 63, 84, 83, 40, 81, 93, 243, 96, 43, 63, 98, 30, 85, 72, 120, 119, 113, 41, 56, 37, 84, 86, 83, 123, 47, 100, 69, 60, 108, 116, 120, 70, 111, 57, 82, 121, 115, 96, 58, 79, 82, 95, 120, 128, 144, 188, 170, 228, 129, 225, 211, 115, 250, 1, 10, 13, 252, 86, 161, 62, 29, 132, 235, 137, 62, 84, 83, 40, 99, 93, 217, 148, 20, 60, 98, 61, 43, 111, 103, 49, 121, 119, 45, 114, 37, 44, 68, 77, 46, 84, 100, 41, 101, 110, 55, 110, 59, 116, 125, 35, 48, 109, 104, 82, 115, 95, 53, 97, 68, 99, 58, 75, 37, 99, 125, 78, 98, 70, 77, 108, 79, 51, 44, 122, 108, 86, 48, 78, 34, 122, 99, 54, 112, 100, 33, 43, 46, 120, 128, 184, 206, 179, 184, 147, 243, 156, 78, 250, 1, 5, 13, 140, 105, 126, 63, 84, 83, 40, 48, 93, 93, 86, 103, 63, 98, 79, 97, 41, 73, 57, 56, 36, 33, 111, 104, 44, 116, 70, 49, 82, 123, 97, 109, 100, 61, 79, 102, 95, 72, 126, 35, 89, 64, 98, 113, 63, 40, 70, 40, 117, 109, 42, 97, 96, 84, 81, 46, 94, 57, 110, 110, 110, 95, 49, 36, 73, 64, 116, 97, 116, 47, 34, 95, 74, 53, 93, 99, 62, 124, 72, 35, 77, 61, 58, 100, 113, 32, 45, 48, 106, 64, 40, 69, 89, 48, 120, 128, 224, 254, 180, 163, 249, 245, 167, 155, 1, 250, 1, 5, 13, 74, 26, 113, 63, 84, 83, 40, 19, 93, 86, 17, 40, 63, 98, 72, 72, 126, 51, 100, 51, 102, 106, 73, 54, 74, 117, 109, 111, 96, 111, 106, 64, 81, 69, 75, 49, 72, 50, 99, 117, 83, 39, 91, 38, 58, 33, 99, 84, 94, 84, 73, 110, 104, 41, 83, 121, 72, 104, 97, 57, 124, 80, 70, 85, 109, 110, 98, 84, 97, 77, 126, 107, 78, 110, 95, 94, 46, 66, 123, 72, 50, 56, 48, 44, 70, 123, 87, 120, 128, 176, 218, 166, 241, 247, 210, 181, 53, 250, 1, 5, 13, 17, 248, 89, 63, 84, 83, 40, 66, 93, 113, 52, 65, 63, 98, 39, 94, 79, 74, 119, 35, 95, 38, 56, 74, 62, 46, 113, 49, 84, 93, 64, 120, 73, 115, 106, 38, 108, 57, 39, 99, 63, 58, 47, 113, 54, 58, 98, 47, 100, 64, 59, 36, 117, 91, 120, 128, 168, 171, 241, 223, 170, 218, 138, 255, 1, 250, 1, 5, 13, 58, 144, 185, 61, 84, 83, 40, 13, 93, 183, 183, 3, 63, 98, 81, 42, 35, 70, 126, 86, 103, 90, 93, 124, 124, 102, 97, 113, 54, 66, 52, 99, 68, 118, 70, 51, 35, 75, 97, 76, 52, 66, 60, 35, 108, 116, 97, 122, 59, 47, 36, 61, 64, 98, 70, 54, 87, 61, 100, 71, 34, 77, 36, 96, 96, 119, 89, 49, 98, 60, 38, 86, 99, 81, 66, 69, 62, 90, 47, 40, 37, 101, 86, 39, 62, 117, 66, 97, 79, 48, 91, 101, 101, 57, 73, 101, 120, 128, 140, 239, 243, 213, 239, 248, 158, 40, 250, 1, 5, 13, 67, 179, 28, 63, 84, 83, 40, 44, 93, 0, 130, 98, 63, 98, 52, 58, 80, 56, 125, 40, 76, 89, 109, 64, 32, 118, 124, 45, 92, 66, 60, 117, 124, 66, 106, 84, 119, 96, 82, 96, 64, 112, 73, 40, 91, 40, 99, 56, 58, 108, 84, 77, 88, 125, 112, 60, 84, 65, 79, 56, 93, 87, 40, 118, 45, 111, 64, 120, 128, 166, 209, 246, 195, 179, 138, 181, 159, 1, 250, 1, 10, 13, 156, 123, 18, 63, 29, 83, 175, 168, 62, 84, 83, 40, 45, 93, 88, 75, 83, 63, 98, 37, 100, 60, 103, 91, 47, 101, 99, 119, 51, 99, 113, 110, 109, 109, 61, 125, 81, 77, 32, 86, 49, 58, 35, 104, 103, 82, 121, 107, 103, 76, 97, 122, 74, 100, 103, 59, 54, 120, 128, 196, 146, 195, 243, 163, 148, 153, 156, 1, 250, 1, 5, 13, 123, 168, 10, 62, 84, 83, 40, 104, 93, 215, 184, 35, 63, 98, 45, 86, 37, 120, 100, 57, 40, 62, 82, 65, 100, 40, 63, 106, 92, 74, 56, 125, 114, 92, 107, 118, 47, 101, 34, 118, 67, 40, 38, 33, 102, 60, 64, 49, 120, 89, 53, 41, 35, 78, 73, 90, 57, 69, 102, 88, 120, 128, 160, 245, 246, 218, 253, 169, 183, 80, 250, 1, 5, 13, 151, 213, 42, 63, 84, 83, 40, 10, 93, 152, 95, 158, 62, 98, 48, 35, 55, 64, 79, 35, 100, 71, 62, 118, 109, 116, 32, 56, 80, 89, 72, 103, 45, 112, 35, 53, 47, 122, 68, 51, 48, 93, 104, 126, 72, 58, 99, 32, 103, 125, 79, 122, 112, 46, 51, 50, 117, 49, 52, 88, 72, 65, 103, 120, 128, 168, 209, 215, 172, 177, 138, 189, 229, 1, 250, 1, 5, 13, 125, 7, 163, 62, 84, 83, 40, 107, 93, 125, 124, 245, 62, 98, 46, 109, 36, 40, 114, 60, 123, 59, 113, 39, 93, 62, 78, 82, 49, 32, 80, 82, 42, 76, 117, 126, 92, 112, 62, 124, 101, 107, 105, 109, 116, 124, 96, 86, 108, 116, 122, 95, 42, 51, 126, 84, 59, 44, 84, 86, 98, 120, 128, 248, 187, 184, 151, 184, 223, 195, 88, 250, 1, 5, 13, 98, 190, 209, 62, 84, 83, 40, 54, 93, 211, 98, 88, 63, 98, 46, 53, 96, 112, 121, 77, 48, 51, 104, 116, 85, 47, 81, 35, 49, 95, 93, 118, 101, 59, 36, 111, 71, 118, 76, 65, 99, 80, 59, 102, 58, 36, 68, 65, 124, 95, 59, 110, 92, 62, 100, 103, 117, 52, 92, 111, 35, 120, 128, 204, 255, 136, 228, 217, 252, 199, 160, 1, 250, 1, 5, 13, 227, 51, 114, 63, 84, 83, 40, 111, 93, 235, 200, 109, 63, 98, 65, 106, 123, 43, 68, 32, 108, 105, 67, 88, 105, 95, 118, 34, 90, 81, 105, 47, 37, 80, 67, 110, 58, 70, 86, 59, 121, 51, 57, 92, 61, 74, 85, 71, 109, 79, 39, 57, 124, 124, 114, 81, 74, 35, 83, 36, 112, 115, 89, 43, 37, 114, 50, 72, 79, 42, 79, 84, 83, 40, 38, 89, 79, 102, 58, 62, 120, 128, 171, 239, 203, 241, 212, 250, 222, 140, 1, 250, 1, 5, 13, 194, 202, 252, 62, 84, 83, 40, 26, 93, 50, 6, 238, 61, 98, 77, 73, 80, 50, 40, 93, 113, 67, 54, 113, 81, 74, 37, 88, 45, 87, 73, 56, 44, 118, 99, 126, 82, 101, 115, 117, 56, 33, 99, 104, 52, 122, 65, 95, 78, 97, 84, 96, 41, 106, 93, 101, 57, 98, 33, 92, 32, 32, 65, 46, 111, 38, 123, 87, 79, 43, 118, 106, 61, 49, 68, 111, 94, 77, 92, 86, 41, 69, 42, 75, 35, 104, 46, 65, 57, 124, 101, 110, 120, 128, 160, 178, 180, 139, 227, 145, 163, 219, 1, 250, 1, 5, 13, 164, 37, 119, 62, 84, 83, 40, 113, 93, 187, 33, 130, 62, 98, 42, 94, 85, 119, 46, 125, 105, 47, 66, 106, 104, 66, 118, 69, 108, 38, 106, 37, 73, 83, 90, 117, 117, 43, 39, 118, 90, 61, 82, 69, 39, 38, 38, 59, 44, 48, 41, 85, 78, 87, 63, 53, 102, 120, 128, 248, 172, 222, 186, 160, 231, 242, 213, 1, 250, 1, 5, 13, 59, 73, 137, 62, 84, 83, 40, 49, 93, 4, 97, 118, 62, 98, 50, 122, 76, 117, 121, 105, 57, 98, 58, 65, 104, 73, 111, 55, 67, 75, 92, 124, 99, 98, 60, 91, 56, 91, 124, 52, 85, 113, 52, 69, 46, 53, 112, 97, 95, 94, 111, 91, 74, 60, 107, 67, 33, 106, 71, 94, 100, 55, 52, 114, 87, 120, 128, 168, 141, 159, 139, 187, 234, 248, 98, 250, 1, 5, 13, 183, 66, 118, 63, 84, 83, 40, 72, 93, 234, 238, 195, 61, 98, 48, 90, 98, 112, 120, 100, 51, 71, 78, 115, 50, 82, 88, 46, 86, 99, 91, 33, 81, 70, 117, 120, 89, 77, 51, 61, 79, 62, 92, 65, 109, 68, 57, 58, 88, 37, 123, 126, 97, 100, 40, 68, 115, 44, 87, 116, 38, 86, 95, 120, 128, 176, 245, 234, 212, 128, 171, 215, 64, 250, 1, 5, 13, 210, 6, 120, 62, 84, 83, 40, 72, 93, 138, 170, 126, 62, 98, 41, 84, 94, 48, 32, 52, 92, 90, 53, 115, 105, 45, 38, 109, 57, 61, 85, 81, 103, 91, 62, 107, 62, 81, 36, 77, 117, 62, 55, 119, 93, 45, 42, 55, 45, 99, 90, 72, 36, 102, 66, 38, 120, 128, 132, 228, 223, 161, 152, 160, 254, 63, 250, 1, 5, 13, 30, 191, 86, 62, 84, 83, 40, 76, 93, 244, 171, 62, 63, 98, 47, 37, 105, 90, 104, 33, 46, 102, 90, 55, 74, 54, 45, 43, 82, 62, 61, 67, 61, 53, 92, 35, 110, 96, 84, 97, 44, 77, 33, 57, 55, 60, 42, 119, 60, 71, 44, 98, 78, 117, 79, 69, 78, 126, 97, 77, 77, 60, 120, 128, 128, 230, 154, 232, 148, 176, 214, 193, 1, 250, 1, 5, 13, 229, 0, 219, 62, 84, 83, 40, 6, 93, 206, 162, 49, 63, 98, 36, 49, 125, 123, 99, 54, 40, 38, 38, 115, 96, 101, 65, 126, 46, 44, 52, 110, 43, 49, 90, 116, 70, 101, 55, 83, 111, 125, 38, 51, 111, 123, 87, 52, 84, 42, 44, 120, 128, 200, 159, 184, 244, 208, 252, 193, 123, 250, 1, 5, 13, 39, 53, 22, 63, 84, 83, 40, 22, 93, 231, 247, 18, 61, 98, 70, 91, 71, 34, 110, 94, 45, 126, 83, 65, 57, 76, 69, 55, 73, 108, 106, 55, 99, 47, 70, 42, 126, 113, 36, 100, 46, 44, 74, 35, 32, 55, 54, 121, 46, 125, 77, 68, 118, 88, 70, 111, 74, 100, 121, 67, 85, 64, 106, 103, 63, 115, 56, 71, 105, 120, 92, 85, 125, 42, 79, 32, 84, 79, 64, 33, 53, 75, 40, 75, 62, 120, 128, 128, 197, 185, 246, 137, 168, 204, 179, 1, 250, 1, 10, 13, 231, 115, 174, 62, 29, 45, 17, 233, 61, 84, 83, 40, 97, 93, 193, 30, 17, 63, 98, 21, 94, 58, 119, 95, 46, 109, 65, 97, 98, 43, 126, 110, 47, 52, 64, 119, 70, 108, 40, 69, 58, 120, 128, 240, 226, 148, 175, 139, 151, 166, 249, 1, 250, 1, 5, 13, 89, 144, 192, 62, 84, 83, 40, 117, 93, 93, 246, 18, 62, 98, 73, 42, 55, 62, 72, 120, 83, 45, 94, 51, 58, 65, 93, 61, 122, 97, 94, 114, 107, 53, 34, 70, 59, 114, 42, 70, 32, 83, 34, 67, 59, 99, 117, 126, 82, 35, 85, 34, 56, 105, 87, 112, 47, 122, 121, 126, 58, 40, 112, 69, 101, 71, 46, 46, 117, 102, 109, 67, 52, 34, 119, 126, 43, 59, 119, 85, 75, 93, 106, 119, 44, 92, 90, 33, 120, 128, 192, 243, 157, 154, 235, 155, 239, 209, 1, 250, 1, 5, 13, 160, 205, 51, 62, 84, 83, 40, 30, 93, 112, 164, 173, 62, 98, 64, 120, 43, 44, 118, 97, 91, 92, 114, 85, 103, 41, 106, 52, 49, 109, 53, 113, 87, 101, 115, 34, 68, 82, 91, 61, 120, 57, 41, 108, 44, 80, 100, 79, 77, 74, 40, 116, 33, 60, 79, 93, 36, 32, 99, 84, 126, 98, 121, 109, 68, 47, 37, 74, 65, 61, 84, 87, 80, 88, 104, 65, 82, 38, 72, 120, 128, 186, 193, 225, 179, 206, 139, 140, 158, 1, 250, 1, 10, 13, 149, 230, 194, 62, 29, 131, 18, 147, 62, 84, 83, 40, 94, 93, 124, 235, 60, 63, 98, 48, 100, 64, 111, 58, 54, 54, 124, 67, 110, 39, 62, 53, 62, 58, 72, 123, 75, 58, 46, 48, 117, 80, 68, 71, 83, 45, 43, 125, 87, 77, 47, 98, 122, 51, 41, 35, 62, 105, 51, 43, 63, 48, 104, 72, 58, 83, 34, 55, 120, 128, 248, 251, 177, 234, 186, 223, 143, 211, 1, 250, 1, 5, 13, 136, 47, 237, 62, 84, 83, 40, 98, 93, 92, 94, 216, 61, 98, 133, 1, 45, 86, 111, 52, 122, 72, 102, 40, 42, 126, 107, 64, 118, 90, 57, 43, 49, 68, 92, 97, 38, 34, 111, 100, 102, 122, 45, 32, 42, 115, 63, 43, 98, 37, 85, 68, 67, 116, 40, 117, 34, 43, 33, 63, 68, 71, 81, 94, 57, 118, 38, 57, 110, 40, 35, 42, 101, 42, 77, 126, 58, 102, 124, 54, 95, 95, 93, 112, 37, 116, 103, 59, 59, 101, 94, 121, 33, 80, 63, 62, 73, 78, 101, 51, 109, 37, 59, 89, 34, 74, 94, 56, 71, 40, 91, 59, 45, 106, 95, 99, 105, 95, 89, 67, 47, 105, 124, 40, 73, 40, 41, 53, 105, 46, 85, 107, 32, 105, 71, 89, 68, 36, 110, 89, 54, 79, 114, 51, 42, 66, 108, 54, 111, 120, 128, 144, 224, 195, 211, 247, 128, 158, 80, 250, 1, 5, 13, 188, 212, 11, 63, 84, 83, 40, 96, 93, 210, 22, 99, 63, 98, 70, 66, 35, 35, 39, 51, 47, 120, 65, 72, 77, 56, 81, 111, 58, 66, 66, 37, 63, 101, 112, 126, 45, 95, 117, 105, 125, 39, 59, 114, 68, 46, 89, 107, 117, 93, 102, 68, 81, 49, 115, 117, 55, 108, 33, 90, 96, 57, 39, 74, 115, 105, 59, 109, 119, 116, 52, 67, 44, 61, 52, 40, 92, 78, 35, 62, 93, 101, 120, 92, 91, 120, 128, 168, 212, 157, 209, 209, 162, 237, 124, 250, 1, 10, 13, 167, 98, 10, 63, 29, 44, 31, 28, 62, 84, 83, 40, 108, 93, 229, 37, 114, 63, 98, 67, 103, 63, 93, 59, 41, 99, 126, 112, 126, 89, 113, 107, 115, 33, 72, 67, 55, 52, 123, 106, 56, 104, 105, 98, 123, 122, 64, 74, 109, 117, 54, 45, 123, 124, 45, 116, 100, 112, 51, 80, 41, 107, 79, 72, 75, 113, 112, 119, 51, 56, 100, 63, 50, 38, 96, 125, 85, 122, 63, 46, 67, 84, 34, 40, 67, 100, 110, 120, 128, 176, 227, 196, 254, 254, 154, 166, 244, 1, 250, 1, 5, 13, 147, 140, 95, 63, 84, 83, 40, 68, 93, 11, 221, 37, 63, 98, 72, 70, 32, 75, 97, 76, 57, 64, 54, 41, 41, 71, 54, 85, 48, 118, 122, 117, 59, 46, 63, 104, 81, 37, 44, 83, 104, 70, 37, 102, 35, 121, 36, 95, 89, 62, 62, 102, 67, 52, 100, 52, 100, 53, 36, 122, 61, 76, 119, 76, 105, 119, 90, 100, 52, 115, 116, 121, 62, 45, 99, 114, 59, 78, 38, 47, 67, 85, 122, 112, 87, 51, 82, 120, 128, 182, 225, 152, 193, 175, 139, 198, 137, 1, 250, 1, 5, 13, 1, 137, 223, 62, 84, 83, 40, 13, 93, 14, 81, 54, 61, 98, 72, 59, 33, 48, 54, 60, 77, 88, 123, 42, 62, 63, 75, 100, 73, 68, 71, 53, 80, 113, 120, 53, 47, 115, 87, 103, 80, 38, 115, 85, 69, 83, 58, 41, 111, 88, 119, 45, 118, 71, 68, 98, 82, 123, 112, 36, 41, 53, 71, 51, 106, 60, 86, 87, 48, 109, 44, 45, 88, 78, 106, 71, 99, 69, 99, 105, 36, 65, 116, 111, 75, 58, 61, 120, 128, 250, 180, 236, 232, 209, 167, 227, 12, 250, 1, 5, 13, 119, 138, 241, 62, 84, 83, 40, 30, 93, 139, 80, 51, 63, 98, 47, 50, 34, 83, 93, 59, 94, 96, 105, 40, 124, 98, 120, 33, 76, 105, 84, 72, 91, 124, 125, 44, 55, 39, 126, 103, 64, 86, 102, 80, 125, 77, 42, 120, 43, 120, 43, 37, 112, 79, 103, 35, 91, 91, 107, 65, 72, 114, 120, 128, 172, 139, 249, 133, 212, 218, 200, 175, 1, 250, 1, 5, 13, 26, 118, 46, 63, 84, 83, 40, 92, 93, 113, 53, 100, 63, 98, 46, 75, 79, 56, 86, 122, 121, 83, 116, 121, 39, 120, 57, 41, 79, 87, 126, 117, 82, 94, 78, 87, 44, 52, 121, 80, 91, 59, 93, 62, 76, 51, 38, 106, 41, 33, 89, 96, 83, 124, 48, 80, 122, 84, 95, 42, 65, 120, 128, 200, 175, 168, 232, 190, 252, 194, 194, 1, 250, 1, 10, 13, 75, 159, 150, 62, 29, 38, 94, 66, 63, 84, 83, 40, 55, 93, 55, 98, 118, 63, 98, 32, 111, 34, 54, 61, 63, 58, 61, 38, 63, 94, 116, 86, 76, 115, 114, 77, 32, 78, 124, 61, 66, 85, 77, 125, 91, 86, 83, 111, 46, 41, 126, 116, 120, 128, 168, 174, 153, 158, 206, 242, 202, 241, 1, 250, 1, 10, 13, 181, 139, 2, 63, 29, 223, 101, 188, 62, 84, 83, 40, 5, 93, 0, 193, 12, 63, 98, 66, 106, 96, 63, 67, 77, 93, 81, 91, 67, 39, 107, 55, 114, 80, 108, 106, 43, 89, 58, 83, 56, 96, 103, 102, 76, 118, 53, 95, 126, 97, 123, 80, 110, 120, 53, 108, 93, 120, 115, 119, 123, 65, 56, 79, 103, 88, 58, 88, 49, 42, 104, 118, 40, 79, 60, 41, 120, 87, 118, 85, 71, 112, 91, 97, 43, 58, 120, 128, 196, 248, 144, 154, 171, 196, 135, 54, 250, 1, 5, 13, 56, 198, 112, 63, 84, 83, 40, 36, 93, 172, 154, 93, 59, 98, 74, 44, 49, 100, 66, 86, 117, 72, 56, 125, 115, 92, 92, 77, 116, 119, 37, 71, 63, 92, 43, 115, 37, 34, 62, 79, 42, 101, 85, 67, 77, 48, 64, 60, 49, 125, 87, 50, 101, 119, 69, 96, 95, 89, 34, 119, 105, 67, 101, 104, 38, 113, 40, 60, 48, 44, 38, 46, 69, 113, 76, 47, 113, 115, 80, 98, 60, 64, 60, 118, 64, 113, 96, 70, 54, 120, 128, 240, 144, 131, 151, 242, 134, 153, 184, 1, 250, 1, 5, 13, 113, 7, 80, 62, 84, 83, 40, 58, 93, 228, 230, 145, 58, 98, 80, 69, 101, 102, 126, 107, 61, 90, 40, 35, 44, 36, 118, 72, 107, 115, 75, 54, 109, 107, 41, 63, 91, 73, 38, 110, 72, 51, 48, 96, 38, 101, 119, 89, 46, 32, 44, 100, 48, 37, 85, 116, 90, 57, 51, 55, 126, 118, 38, 108, 122, 32, 90, 70, 66, 95, 105, 59, 96, 48, 67, 42, 73, 70, 124, 69, 44, 61, 58, 107, 102, 101, 38, 104, 53, 51, 100, 66, 53, 109, 111, 120, 128, 176, 238, 156, 136, 158, 243, 230, 193, 1, 250, 1, 5, 13, 155, 28, 11, 62, 84, 83, 40, 46, 93, 144, 131, 57, 63, 98, 59, 37, 42, 80, 55, 77, 53, 111, 36, 126, 97, 75, 75, 51, 60, 109, 43, 97, 92, 57, 37, 53, 121, 113, 49, 46, 122, 71, 38, 113, 63, 113, 124, 38, 96, 118, 58, 90, 37, 107, 85, 118, 96, 38, 38, 105, 103, 80, 37, 71, 98, 46, 115, 113, 61, 79, 42, 56, 63, 40, 120, 128, 192, 246, 192, 152, 145, 180, 135, 196, 1, 250, 1, 5, 13, 18, 171, 81, 63, 84, 83, 40, 98, 93, 161, 20, 62, 62, 98, 33, 94, 111, 77, 68, 81, 68, 82, 80, 91, 112, 99, 46, 83, 115, 107, 71, 70, 73, 65, 94, 47, 49, 125, 42, 103, 49, 107, 34, 58, 123, 56, 102, 44, 120, 128, 144, 215, 228, 254, 250, 184, 165, 64, 250, 1, 5, 13, 75, 235, 206, 62, 84, 83, 40, 29, 93, 65, 48, 146, 62, 98, 43, 66, 125, 96, 115, 49, 81, 34, 46, 47, 122, 54, 76, 119, 97, 40, 76, 43, 33, 76, 112, 67, 91, 64, 88, 79, 53, 95, 88, 123, 33, 36, 76, 84, 44, 36, 74, 96, 105, 125, 95, 122, 122, 88, 120, 128, 130, 148, 209, 147, 147, 160, 137, 157, 1, 250, 1, 5, 13, 41, 217, 14, 63, 84, 83, 40, 71, 93, 26, 7, 186, 62, 98, 40, 58, 47, 58, 33, 77, 120, 68, 118, 101, 93, 40, 68, 122, 113, 73, 50, 45, 118, 104, 118, 106, 92, 92, 107, 64, 35, 108, 117, 71, 35, 42, 35, 120, 114, 68, 72, 97, 126, 85, 83, 120, 128, 210, 229, 226, 130, 144, 173, 150, 150, 1, 250, 1, 10, 13, 142, 76, 93, 62, 29, 184, 100, 162, 62, 84, 83, 40, 102, 93, 173, 216, 22, 63, 98, 84, 69, 34, 109, 81, 104, 74, 61, 107, 94, 86, 92, 81, 77, 95, 73, 44, 78, 79, 98, 82, 37, 74, 40, 76, 33, 79, 46, 64, 53, 101, 86, 62, 110, 51, 122, 33, 125, 67, 93, 87, 108, 54, 58, 59, 103, 117, 51, 62, 44, 71, 97, 100, 91, 58, 82, 121, 120, 65, 80, 57, 60, 124, 86, 119, 32, 61, 98, 58, 100, 71, 45, 42, 112, 42, 101, 109, 47, 108, 99, 42, 59, 110, 52, 109, 120, 128, 214, 146, 163, 219, 176, 149, 153, 7, 250, 1, 5, 13, 247, 97, 90, 63, 84, 83, 40, 89, 93, 92, 248, 12, 63, 98, 62, 95, 32, 40, 92, 114, 68, 58, 110, 95, 65, 59, 73, 51, 120, 89, 99, 57, 86, 114, 80, 84, 100, 105, 44, 92, 69, 124, 77, 103, 103, 114, 46, 90, 45, 89, 99, 63, 80, 55, 76, 111, 117, 45, 108, 80, 58, 118, 66, 52, 80, 83, 77, 125, 50, 126, 121, 53, 123, 126, 76, 70, 108, 120, 128, 139, 135, 172, 247, 214, 184, 224, 10, 250, 1, 5, 13, 37, 122, 105, 63, 84, 83, 40, 61, 93, 46, 170, 17, 62, 98, 69, 110, 37, 63, 117, 67, 103, 62, 70, 96, 94, 87, 124, 90, 66, 77, 90, 56, 55, 52, 69, 47, 71, 45, 94, 77, 67, 81, 105, 37, 35, 109, 53, 63, 67, 74, 113, 34, 61, 44, 106, 46, 86, 81, 64, 66, 56, 64, 91, 126, 107, 83, 110, 98, 40, 124, 70, 118, 95, 72, 32, 54, 83, 65, 93, 111, 65, 93, 55, 118, 120, 128, 216, 187, 183, 136, 216, 221, 187, 80, 250, 1, 5, 13, 100, 11, 22, 63, 84, 83, 40, 120, 93, 133, 131, 239, 61, 98, 69, 72, 55, 88, 117, 108, 59, 52, 34, 116, 106, 57, 78, 126, 82, 54, 69, 35, 121, 66, 116, 43, 84, 89, 52, 115, 80, 33, 90, 40, 100, 66, 51, 88, 99, 57, 111, 67, 80, 42, 67, 52, 124, 65, 104, 40, 46, 112, 109, 70, 113, 115, 96, 53, 37, 126, 115, 92, 67, 34, 60, 58, 88, 120, 48, 72, 37, 117, 58, 56, 120, 128, 204, 247, 141, 221, 233, 188, 239, 51, 250, 1, 10, 13, 58, 105, 131, 60, 29, 130, 148, 7, 63, 84, 83, 40, 106, 93, 239, 201, 123, 63, 98, 42, 95, 45, 50, 112, 44, 100, 95, 51, 52, 54, 111, 96, 125, 82, 100, 69, 50, 32, 78, 109, 41, 90, 36, 49, 63, 34, 55, 85, 84, 32, 111, 64, 112, 55, 68, 112, 96, 107, 54, 60, 92, 38, 120, 128, 232, 184, 158, 206, 173, 198, 243, 48, 250, 1, 5, 13, 196, 135, 49, 63, 84, 83, 40, 41, 93, 121, 191, 61, 63, 98, 27, 39, 67, 84, 114, 51, 33, 36, 34, 115, 37, 41, 32, 80, 42, 77, 41, 93, 52, 70, 78, 111, 102, 45, 114, 99, 70, 104, 120, 128, 208, 172, 133, 163, 248, 228, 170, 152, 1, 250, 1, 5, 13, 59, 164, 56, 62, 84, 83, 40, 3, 93, 183, 152, 120, 62, 98, 42, 65, 113, 88, 122, 115, 33, 97, 107, 110, 60, 110, 66, 63, 103, 95, 59, 44, 109, 82, 72, 47, 59, 111, 118, 64, 53, 97, 46, 108, 55, 113, 112, 113, 108, 103, 46, 118, 47, 88, 40, 122, 71, 120, 128, 224, 132, 162, 249, 237, 165, 144, 202, 1, 250, 1, 10, 13, 118, 170, 65, 62, 29, 158, 193, 90, 60, 84, 83, 40, 47, 93, 128, 121, 78, 63, 98, 56, 43, 35, 42, 91, 67, 93, 89, 39, 37, 33, 97, 89, 94, 62, 83, 126, 86, 74, 124, 80, 81, 126, 81, 67, 124, 53, 74, 76, 102, 99, 93, 116, 123, 71, 86, 42, 97, 90, 77, 50, 55, 101, 97, 44, 53, 84, 121, 104, 71, 71, 32, 102, 35, 114, 58, 43, 120, 128, 248, 253, 167, 248, 171, 239, 191, 194, 1, 250, 1, 5, 13, 190, 63, 61, 63, 84, 83, 40, 83, 93, 113, 0, 21, 62, 98, 55, 50, 44, 63, 65, 67, 107, 93, 54, 103, 73, 61, 122, 123, 106, 56, 107, 61, 68, 46, 72, 58, 97, 37, 63, 99, 118, 113, 40, 45, 74, 88, 122, 123, 64, 32, 43, 69, 64, 104, 72, 118, 99, 32, 125, 42, 36, 105, 56, 90, 78, 109, 44, 88, 54, 114, 120, 128, 144, 148, 142, 200, 143, 161, 241, 192, 1, 250, 1, 5, 13, 229, 174, 148, 61, 84, 83, 40, 0, 93, 244, 143, 36, 63, 98, 57, 75, 121, 84, 40, 60, 112, 66, 126, 91, 105, 44, 70, 123, 91, 100, 80, 86, 96, 39, 52, 94, 45, 89, 77, 94, 92, 75, 66, 101, 76, 79, 36, 69, 98, 60, 78, 66, 90, 98, 45, 103, 37, 45, 77, 78, 39, 112, 80, 114, 100, 59, 110, 126, 106, 125, 62, 64, 120, 128, 203, 233, 217, 190, 221, 204, 206, 10, 250, 1, 5, 13, 51, 231, 223, 62, 84, 83, 40, 85, 93, 159, 187, 196, 62, 98, 84, 32, 57, 46, 58, 39, 33, 57, 63, 54, 46, 122, 124, 121, 76, 89, 126, 43, 125, 86, 106, 122, 78, 32, 49, 95, 37, 89, 99, 124, 46, 58, 49, 35, 103, 102, 106, 125, 51, 70, 38, 87, 48, 92, 86, 64, 113, 37, 61, 67, 62, 52, 40, 114, 116, 73, 80, 56, 124, 89, 34, 70, 84, 65, 39, 114, 105, 121, 49, 101, 109, 33, 119, 87, 79, 50, 105, 113, 73, 111, 109, 126, 59, 64, 93, 120, 128, 168, 183, 255, 142, 167, 186, 251, 247, 1, 250, 1, 5, 13, 200, 228, 72, 62, 84, 83, 40, 39, 93, 166, 207, 17, 62, 98, 37, 62, 54, 82, 32, 88, 67, 95, 35, 110, 84, 98, 85, 118, 114, 87, 85, 61, 59, 79, 66, 97, 94, 93, 110, 44, 107, 35, 42, 52, 98, 45, 95, 75, 107, 113, 78, 59, 120, 160, 243, 144, 132, 204, 154, 135, 161, 2, 250, 1, 5, 13, 92, 149, 169, 62, 84, 83, 40, 26, 93, 106, 66, 85, 63, 98, 57, 47, 122, 61, 101, 58, 117, 43, 99, 105, 64, 93, 97, 122, 74, 95, 87, 99, 114, 107, 64, 84, 110, 43, 70, 34, 42, 43, 33, 40, 58, 60, 123, 59, 82, 82, 99, 64, 40, 113, 117, 118, 70, 73, 66, 79, 125, 80, 65, 50, 118, 86, 45, 83, 114, 58, 64, 111, 120, 128, 200, 179, 193, 158, 183, 156, 139, 244, 1, 250, 1, 10, 13, 243, 158, 53, 63, 29, 244, 71, 44, 62, 84, 83, 40, 99, 93, 131, 244, 228, 61, 98, 74, 90, 79, 36, 97, 70, 71, 119, 123, 54, 91, 33, 117, 73, 45, 68, 103, 117, 36, 88, 104, 109, 49, 98, 47, 72, 72, 55, 49, 115, 73, 67, 97, 43, 107, 107, 120, 62, 109, 87, 41, 72, 54, 95, 122, 43, 92, 73, 45, 122, 39, 32, 94, 86, 33, 60, 72, 108, 115, 57, 124, 47, 101, 39, 108, 55, 62, 105, 92, 65, 75, 73, 40, 76, 79, 120, 128, 176, 148, 132, 217, 236, 162, 161, 44, 250, 1, 5, 13, 82, 102, 19, 63, 84, 83, 40, 65, 93, 17, 230, 62, 63, 98, 43, 35, 106, 126, 42, 54, 107, 72, 99, 43, 41, 79, 66, 44, 73, 84, 89, 120, 97, 46, 114, 98, 107, 114, 107, 106, 79, 92, 119, 50, 38, 96, 100, 119, 37, 112, 77, 125, 36, 79, 59, 67, 82, 51, 120, 128, 168, 160, 220, 235, 227, 130, 226, 86, 250, 1, 5, 13, 145, 114, 11, 62, 84, 83, 40, 125, 93, 107, 20, 167, 62, 98, 26, 126, 83, 114, 85, 93, 71, 93, 35, 54, 119, 50, 63, 102, 47, 80, 81, 36, 72, 105, 74, 38, 88, 38, 90, 116, 50, 120, 128, 152, 151, 138, 198, 173, 185, 209, 111, 250, 1, 12, 13, 60, 11, 253, 62, 29, 76, 11, 46, 62, 56, 1, 84, 83, 40, 23, 93, 86, 97, 41, 63, 98, 63, 107, 48, 93, 67, 63, 80, 34, 60, 57, 33, 89, 85, 107, 100, 103, 44, 113, 33, 47, 55, 65, 83, 56, 70, 77, 55, 96, 74, 84, 46, 114, 93, 101, 82, 82, 86, 80, 45, 50, 83, 70, 77, 48, 37, 126, 79, 110, 48, 74, 102, 92, 46, 73, 121, 60, 55, 118, 54, 117, 39, 110, 87, 103, 120, 128, 149, 237, 135, 130, 169, 233, 190, 15, 250, 1, 5, 13, 126, 219, 20, 62, 84, 83, 40, 120, 93, 34, 68, 86, 63, 98, 73, 56, 49, 49, 90, 100, 110, 90, 112, 115, 66, 50, 71, 124, 71, 79, 32, 108, 81, 99, 52, 106, 53, 58, 94, 58, 54, 42, 99, 109, 100, 38, 118, 35, 94, 86, 126, 56, 44, 119, 63, 109, 41, 72, 116, 99, 110, 119, 95, 63, 87, 122, 88, 72, 101, 36, 34, 117, 82, 63, 77, 100, 118, 34, 46, 60, 59, 67, 61, 112, 80, 102, 95, 88, 120, 128, 152, 208, 145, 246, 183, 129, 141, 177, 1, 250, 1, 5, 13, 79, 80, 207, 62, 84, 83, 40, 87, 93, 29, 156, 77, 63, 98, 80, 69, 121, 74, 61, 73, 68, 54, 105, 76, 77, 61, 90, 83, 40, 101, 107, 73, 90, 118, 38, 57, 87, 72, 75, 90, 110, 109, 111, 58, 126, 36, 62, 66, 53, 80, 87, 115, 48, 58, 81, 106, 67, 111, 108, 37, 98, 61, 72, 32, 114, 47, 104, 79, 90, 82, 108, 80, 126, 98, 90, 86, 70, 79, 76, 73, 125, 55, 61, 87, 46, 118, 56, 64, 68, 59, 116, 103, 90, 69, 118, 120, 128, 144, 178, 162, 248, 231, 144, 147, 194, 1, 250, 1, 5, 13, 0, 223, 199, 62, 84, 83, 40, 106, 93, 105, 38, 207, 62, 98, 91, 110, 58, 110, 102, 97, 98, 38, 116, 77, 94, 122, 68, 115, 66, 67, 39, 74, 126, 111, 113, 122, 118, 72, 42, 63, 93, 37, 117, 88, 106, 41, 49, 85, 41, 92, 46, 46, 80, 90, 115, 39, 34, 106, 96, 73, 118, 33, 68, 54, 62, 75, 81, 84, 125, 74, 119, 112, 100, 71, 36, 93, 48, 60, 97, 85, 104, 109, 106, 100, 52, 119, 121, 68, 122, 105, 120, 43, 103, 95, 71, 91, 95, 94, 57, 62, 86, 91, 87, 93, 100, 61, 120, 128, 152, 192, 201, 230, 187, 129, 204, 55, 250, 1, 5, 13, 92, 240, 194, 61, 84, 83, 40, 71, 93, 35, 205, 117, 62, 98, 46, 118, 101, 40, 42, 95, 40, 53, 95, 33, 70, 81, 45, 88, 51, 80, 107, 40, 37, 126, 72, 124, 80, 34, 66, 125, 45, 54, 44, 32, 118, 78, 112, 109, 100, 114, 51, 35, 93, 126, 63, 69, 32, 92, 114, 108, 73, 120, 128, 247, 128, 208, 128, 182, 135, 128, 133, 1, 250, 1, 5, 13, 14, 163, 190, 62, 84, 83, 40, 17, 93, 35, 8, 107, 63, 98, 79, 52, 67, 41, 45, 57, 69, 99, 100, 43, 82, 113, 41, 94, 42, 118, 96, 63, 115, 64, 61, 104, 74, 37, 95, 34, 124, 114, 46, 85, 84, 41, 113, 32, 40, 98, 43, 102, 96, 75, 76, 79, 61, 81, 75, 76, 60, 65, 82, 123, 43, 42, 47, 34, 110, 46, 104, 61, 72, 42, 59, 81, 84, 47, 86, 73, 126, 41, 85, 70, 107, 120, 94, 72, 115, 109, 75, 120, 89, 50, 120, 128, 168, 194, 191, 229, 186, 146, 252, 92, 250, 1, 5, 13, 197, 143, 31, 63, 84, 83, 40, 43, 93, 13, 85, 69, 62, 98, 72, 73, 74, 120, 111, 48, 120, 120, 108, 61, 85, 47, 121, 121, 45, 121, 34, 77, 51, 106, 43, 47, 49, 75, 102, 46, 33, 98, 110, 99, 54, 69, 95, 49, 66, 100, 44, 79, 47, 119, 91, 77, 125, 91, 41, 56, 120, 114, 61, 125, 87, 100, 81, 111, 52, 34, 56, 126, 50, 96, 47, 54, 41, 41, 39, 47, 78, 104, 87, 72, 109, 81, 62, 120, 128, 184, 147, 195, 225, 201, 155, 153, 37, 250, 1, 5, 13, 94, 2, 33, 62, 84, 83, 40, 82, 93, 243, 223, 59, 62, 98, 61, 85, 66, 77, 53, 45, 68, 112, 43, 80, 114, 110, 123, 63, 76, 45, 61, 77, 103, 68, 67, 115, 83, 120, 104, 47, 59, 115, 48, 37, 69, 54, 96, 86, 112, 97, 91, 99, 75, 34, 112, 56, 124, 85, 60, 95, 108, 55, 123, 96, 51, 111, 82, 105, 58, 60, 34, 72, 100, 37, 113, 80, 120, 128, 224, 166, 217, 234, 147, 182, 202, 213, 1, 250, 1, 5, 13, 238, 196, 128, 61, 84, 83, 40, 14, 93, 170, 76, 35, 63, 98, 67, 46, 68, 78, 105, 80, 89, 34, 101, 83, 42, 117, 125, 92, 41, 66, 36, 119, 79, 113, 85, 98, 118, 60, 83, 95, 51, 126, 69, 48, 64, 88, 118, 74, 94, 80, 71, 103, 49, 47, 89, 109, 107, 53, 47, 70, 36, 107, 90, 97, 108, 87, 48, 51, 84, 120, 54, 40, 122, 42, 61, 90, 91, 85, 50, 81, 125, 82, 120, 128, 144, 218, 207, 255, 138, 209, 253, 252, 1, 250, 1, 5, 13, 4, 27, 22, 63, 84, 83, 40, 121, 93, 92, 108, 149, 62, 98, 45, 102, 63, 55, 102, 117, 96, 44, 45, 90, 70, 67, 99, 66, 104, 72, 99, 116, 100, 58, 62, 107, 38, 113, 126, 50, 54, 35, 93, 71, 80, 109, 34, 102, 81, 112, 111, 122, 109, 34, 84, 123, 109, 78, 118, 54, 120, 128, 168, 168, 212, 174, 217, 194, 162, 245, 1, 250, 1, 5, 13, 163, 113, 74, 62, 84, 83, 40, 55, 93, 146, 245, 188, 61, 98, 69, 58, 93, 56, 61, 92, 78, 95, 77, 56, 83, 95, 93, 77, 100, 42, 87, 65, 123, 112, 118, 87, 103, 38, 97, 101, 66, 125, 86, 122, 103, 58, 35, 88, 85, 44, 114, 85, 100, 42, 34, 48, 66, 97, 58, 66, 117, 77, 40, 68, 62, 116, 122, 65, 81, 79, 81, 86, 85, 87, 58, 80, 40, 82, 80, 56, 91, 36, 119, 87, 120, 128, 250, 240, 230, 179, 207, 135, 183, 158, 1, 250, 1, 5, 13, 2, 240, 116, 60, 84, 83, 40, 79, 93, 173, 159, 92, 63, 98, 65, 110, 101, 53, 37, 107, 63, 110, 115, 116, 50, 91, 114, 63, 97, 39, 37, 89, 60, 32, 45, 110, 80, 40, 110, 49, 33, 102, 113, 85, 79, 46, 61, 56, 40, 82, 106, 58, 76, 105, 53, 103, 70, 91, 117, 117, 92, 120, 120, 124, 114, 125, 121, 32, 77, 35, 61, 93, 69, 114, 106, 87, 123, 61, 68, 36, 120, 128, 240, 149, 167, 192, 147, 175, 185, 41, 250, 1, 10, 13, 105, 229, 27, 63, 29, 84, 160, 122, 62, 84, 83, 40, 20, 93, 129, 131, 148, 62, 98, 46, 106, 45, 81, 105, 68, 72, 116, 49, 120, 84, 40, 108, 116, 98, 81, 51, 60, 105, 37, 52, 44, 115, 88, 126, 93, 107, 40, 54, 113, 87, 34, 97, 105, 96, 40, 111, 71, 54, 41, 89, 72, 76, 76, 62, 98, 105, 120, 128, 188, 159, 174, 151, 226, 251, 241, 10, 250, 1, 5, 13, 196, 249, 29, 63, 84, 83, 40, 109, 93, 142, 90, 85, 63, 98, 44, 33, 111, 50, 121, 46, 118, 84, 82, 44, 88, 64, 93, 62, 65, 81, 70, 35, 51, 90, 97, 107, 38, 96, 74, 107, 95, 70, 57, 60, 114, 99, 76, 68, 34, 85, 50, 79, 111, 82, 48, 59, 116, 41, 80, 120, 128, 144, 159, 150, 148, 253, 248, 177, 161, 1, 250, 1, 5, 13, 133, 184, 72, 63, 84, 83, 40, 18, 93, 234, 49, 241, 61, 98, 104, 107, 60, 102, 114, 32, 48, 35, 122, 46, 102, 46, 78, 79, 58, 53, 56, 115, 114, 56, 60, 106, 63, 117, 50, 96, 73, 70, 117, 123, 48, 50, 32, 81, 59, 77, 32, 43, 112, 76, 52, 125, 90, 35, 103, 97, 35, 96, 32, 94, 111, 91, 68, 81, 112, 63, 76, 69, 84, 50, 86, 104, 44, 125, 125, 83, 45, 123, 52, 107, 53, 45, 35, 70, 36, 61, 48, 59, 46, 80, 92, 103, 69, 54, 44, 83, 108, 78, 95, 122, 33, 90, 86, 93, 116, 74, 112, 92, 37, 52, 83, 38, 76, 52, 73, 120, 128, 224, 131, 149, 219, 149, 158, 168, 217, 1, 250, 1, 5, 13, 140, 91, 24, 63, 84, 83, 40, 124, 93, 163, 161, 240, 62, 98, 31, 83, 47, 48, 55, 35, 84, 109, 67, 117, 112, 73, 102, 94, 60, 56, 106, 89, 85, 68, 81, 89, 75, 82, 53, 120, 123, 86, 59, 49, 107, 73, 120, 128, 216, 161, 198, 213, 192, 141, 178, 121, 250, 1, 5, 13, 218, 33, 82, 63, 84, 83, 40, 1, 93, 111, 242, 253, 61, 98, 63, 107, 111, 67, 82, 41, 38, 38, 122, 106, 90, 76, 116, 105, 52, 72, 111, 44, 52, 76, 114, 39, 91, 122, 61, 39, 125, 82, 49, 41, 71, 78, 119, 92, 48, 75, 122, 54, 34, 58, 74, 82, 79, 103, 89, 76, 38, 107, 38, 104, 123, 60, 101, 65, 46, 35, 48, 116, 38, 75, 42, 82, 115, 113, 120, 128, 164, 187, 143, 213, 139, 218, 251, 47, 250, 1, 5, 13, 13, 130, 5, 62, 84, 83, 40, 69, 93, 236, 32, 126, 62, 98, 50, 88, 104, 76, 89, 42, 120, 33, 63, 87, 115, 64, 111, 32, 49, 76, 72, 44, 43, 103, 85, 78, 44, 59, 38, 47, 85, 47, 118, 93, 93, 67, 77, 119, 110, 51, 61, 59, 66, 50, 108, 64, 110, 75, 59, 84, 53, 75, 120, 38, 75, 120, 128, 216, 185, 208, 155, 192, 205, 131, 221, 1, 250, 1, 5, 13, 201, 117, 129, 62, 84, 83, 40, 47, 93, 112, 13, 122, 63, 98, 27, 104, 75, 76, 70, 73, 83, 104, 42, 96, 120, 79, 113, 118, 48, 125, 46, 45, 105, 119, 122, 53, 95, 96, 126, 81, 121, 42, 120, 128, 154, 193, 231, 243, 209, 137, 188, 158, 1, 250, 1, 10, 13, 251, 143, 86, 63, 29, 33, 187, 74, 62, 84, 83, 40, 116, 93, 194, 244, 0, 62, 98, 57, 41, 122, 38, 102, 111, 115, 119, 94, 36, 53, 45, 82, 107, 97, 62, 58, 121, 119, 61, 122, 63, 72, 102, 40, 106, 77, 116, 79, 72, 81, 57, 77, 33, 67, 104, 123, 42, 54, 61, 57, 112, 57, 117, 32, 81, 45, 50, 110, 91, 110, 59, 119, 116, 123, 107, 96, 51, 120, 128, 200, 162, 186, 195, 232, 148, 210, 124, 250, 1, 5, 13, 139, 59, 118, 63, 84, 83, 40, 45, 93, 188, 255, 124, 63, 98, 54, 72, 53, 81, 122, 95, 80, 72, 120, 65, 48, 99, 89, 36, 42, 38, 81, 102, 86, 92, 58, 37, 115, 89, 53, 65, 88, 36, 86, 39, 104, 45, 58, 122, 58, 71, 35, 68, 36, 113, 92, 105, 117, 57, 94, 87, 62, 111, 112, 101, 46, 75, 70, 63, 39, 120, 128, 160, 163, 236, 142, 235, 153, 226, 246, 1, 250, 1, 5, 13, 53, 163, 13, 63, 84, 83, 40, 79, 93, 242, 65, 149, 62, 98, 40, 89, 39, 76, 112, 112, 88, 35, 72, 93, 105, 98, 34, 45, 98, 100, 32, 80, 46, 89, 121, 93, 35, 103, 50, 112, 120, 61, 101, 122, 115, 65, 113, 71, 40, 73, 106, 47, 120, 37, 96, 120, 128, 184, 198, 252, 153, 190, 179, 228, 207, 1, 250, 1, 10, 13, 22, 12, 28, 62, 29, 206, 88, 44, 63, 84, 83, 40, 8, 93, 185, 156, 30, 62, 98, 65, 99, 32, 103, 96, 62, 85, 105, 121, 96, 93, 86, 62, 57, 32, 118, 59, 60, 77, 104, 72, 111, 89, 37, 56, 121, 111, 86, 41, 120, 62, 79, 66, 96, 36, 44, 120, 84, 36, 91, 61, 86, 119, 102, 74, 114, 75, 117, 120, 46, 69, 62, 95, 118, 93, 62, 41, 121, 78, 102, 78, 125, 95, 33, 65, 46, 120, 128, 146, 169, 182, 211, 138, 201, 178, 155, 1, 250, 1, 5, 13, 137, 85, 36, 63, 84, 83, 40, 28, 93, 145, 98, 93, 63, 98, 65, 125, 101, 55, 113, 74, 112, 119, 114, 90, 69, 77, 120, 93, 122, 83, 126, 110, 74, 35, 100, 35, 125, 37, 61, 45, 62, 117, 117, 68, 60, 93, 109, 96, 38, 47, 94, 39, 109, 76, 107, 70, 53, 63, 40, 57, 84, 64, 100, 76, 66, 62, 104, 89, 79, 110, 32, 96, 121, 99, 43, 121, 33, 78, 62, 102, 120, 128, 200, 232, 230, 242, 167, 196, 182, 85, 250, 1, 5, 13, 186, 46, 130, 62, 84, 83, 40, 74, 93, 190, 96, 72, 63, 98, 43, 116, 118, 32, 125, 54, 62, 108, 93, 123, 35, 87, 125, 49, 73, 33, 124, 116, 51, 49, 54, 47, 124, 45, 41, 64, 113, 69, 102, 33, 65, 89, 60, 103, 121, 87, 74, 62, 106, 67, 48, 34, 65, 99, 120, 128, 224, 128, 173, 190, 152, 134, 232, 242, 1, 250, 1, 5, 13, 21, 142, 5, 62, 84, 83, 40, 17, 93, 46, 10, 67, 63, 98, 58, 86, 76, 64, 113, 75, 38, 65, 90, 118, 105, 117, 92, 67, 120, 38, 91, 90, 73, 59, 53, 54, 113, 86, 94, 41, 111, 32, 51, 109, 57, 55, 124, 51, 41, 109, 57, 95, 78, 45, 53, 70, 62, 95, 95, 71, 45, 126, 55, 123, 100, 41, 75, 112, 117, 81, 100, 116, 97, 120, 128, 248, 189, 197, 137, 198, 239, 171, 97, 250, 1, 5, 13, 142, 158, 30, 63, 84, 83, 40, 9, 93, 92, 18, 17, 62, 98, 35, 108, 93, 82, 120, 72, 58, 43, 107, 123, 44, 60, 37, 110, 119, 49, 117, 54, 123, 112, 103, 55, 40, 47, 106, 44, 61, 86, 40, 67, 125, 101, 81, 46, 57, 81, 120, 160, 229, 201, 185, 167, 171, 206, 204, 3, 250, 1, 5, 13, 142, 140, 21, 62, 84, 83, 40, 61, 93, 47, 54, 54, 63, 98, 54, 99, 44, 48, 104, 123, 47, 106, 39, 89, 82, 126, 74, 107, 105, 62, 117, 100, 77, 102, 108, 43, 99, 34, 71, 125, 70, 105, 117, 85, 69, 47, 103, 103, 55, 44, 90, 39, 62, 51, 91, 64, 53, 123, 84, 68, 82, 120, 103, 111, 66, 107, 83, 70, 96, 120, 128, 184, 168, 201, 201, 198, 195, 202, 75, 250, 1, 5, 13, 24, 207, 15, 58, 84, 83, 40, 13, 93, 121, 30, 66, 63, 98, 82, 106, 85, 69, 116, 81, 51, 67, 54, 98, 84, 93, 98, 109, 69, 58, 42, 76, 117, 102, 76, 34, 74, 77, 34, 38, 50, 89, 91, 65, 39, 94, 44, 80, 62, 83, 92, 54, 75, 99, 104, 49, 46, 110, 68, 42, 44, 84, 70, 56, 60, 52, 97, 56, 92, 101, 63, 40, 67, 109, 62, 89, 102, 115, 91, 116, 80, 50, 79, 113, 93, 114, 33, 49, 125, 58, 114, 91, 40, 119, 120, 93, 50, 120, 128, 244, 230, 241, 149, 145, 183, 142, 175, 1, 250, 1, 5, 13, 180, 67, 72, 61, 84, 83, 40, 109, 93, 145, 226, 120, 63, 98, 49, 115, 114, 87, 51, 84, 114, 92, 69, 46, 74, 57, 51, 79, 88, 121, 36, 84, 90, 72, 51, 79, 58, 65, 114, 99, 126, 74, 115, 96, 70, 67, 111, 104, 118, 92, 62, 119, 93, 40, 32, 67, 107, 110, 111, 88, 71, 88, 62, 126, 120, 128, 160, 224, 199, 233, 234, 129, 190, 204, 1, 250, 1, 5, 13, 203, 166, 37, 63, 84, 83, 40, 95, 93, 191, 245, 30, 63, 98, 46, 94, 76, 88, 80, 99, 79, 84, 71, 103, 99, 103, 38, 73, 74, 87, 122, 90, 44, 118, 81, 72, 110, 99, 74, 81, 58, 59, 70, 44, 116, 39, 104, 91, 52, 41, 74, 35, 108, 51, 45, 83, 87, 90, 39, 39, 105, 120, 128, 136, 255, 187, 226, 196, 248, 223, 147, 1, 250, 1, 10, 13, 202, 182, 119, 63, 29, 236, 99, 52, 60, 84, 83, 40, 46, 93, 130, 160, 191, 62, 98, 46, 76, 102, 53, 50, 110, 104, 45, 126, 73, 51, 46, 59, 114, 92, 126, 74, 53, 64, 45, 119, 108, 119, 104, 125, 111, 52, 91, 67, 102, 43, 63, 69, 104, 80, 89, 33, 69, 33, 57, 97, 116, 109, 104, 120, 68, 60, 120, 128, 160, 232, 248, 235, 145, 194, 198, 223, 1, 250, 1, 10, 13, 208, 204, 229, 62, 29, 57, 155, 172, 61, 84, 83, 40, 41, 93, 44, 240, 109, 63, 98, 54, 91, 114, 74, 85, 83, 124, 55, 65, 90, 44, 105, 55, 62, 115, 104, 81, 65, 34, 124, 36, 51, 38, 74, 34, 126, 46, 110, 88, 83, 76, 48, 59, 71, 50, 98, 81, 62, 122, 38, 36, 46, 94, 94, 84, 43, 85, 74, 37, 91, 105, 69, 72, 42, 57, 120, 128, 184, 247, 199, 251, 189, 187, 191, 220, 1, 250, 1, 5, 13, 164, 211, 12, 63, 84, 83, 40, 53, 93, 161, 224, 212, 62, 98, 172, 1, 86, 68, 45, 93, 109, 46, 122, 77, 110, 43, 48, 55, 51, 70, 123, 119, 117, 83, 71, 117, 118, 72, 99, 105, 123, 104, 39, 103, 48, 45, 76, 46, 41, 117, 67, 96, 117, 79, 112, 79, 88, 92, 102, 62, 115, 68, 86, 125, 76, 49, 67, 48, 44, 81, 80, 45, 96, 67, 97, 36, 39, 51, 60, 96, 94, 34, 45, 60, 35, 58, 34, 70, 98, 119, 60, 57, 97, 68, 116, 86, 50, 41, 59, 126, 105, 59, 34, 86, 69, 53, 126, 82, 108, 107, 72, 69, 64, 37, 95, 113, 55, 58, 121, 49, 47, 123, 77, 52, 52, 54, 75, 60, 77, 42, 113, 125, 119, 61, 117, 66, 126, 85, 117, 108, 59, 78, 89, 117, 79, 118, 120, 92, 99, 35, 63, 119, 46, 41, 110, 109, 109, 109, 65, 47, 105, 98, 37, 98, 121, 73, 77, 34, 46, 61, 113, 96, 67, 45, 117, 95, 66, 86, 99, 61, 61, 110, 87, 73, 105, 121, 111, 109, 120, 128, 252, 218, 173, 202, 233, 215, 237, 62, 250, 1, 5, 13, 245, 36, 177, 61, 84, 83, 40, 69, 93, 253, 97, 62, 62, 98, 31, 52, 102, 34, 88, 73, 117, 123, 37, 73, 117, 77, 70, 48, 94, 83, 32, 51, 46, 75, 54, 41, 36, 112, 122, 42, 90, 119, 126, 89, 94, 83, 120, 128, 203, 143, 247, 252, 213, 252, 184, 9, 250, 1, 10, 13, 193, 56, 65, 63, 29, 246, 102, 44, 63, 84, 83, 40, 58, 93, 93, 254, 34, 63, 98, 54, 42, 61, 54, 75, 90, 94, 115, 70, 64, 48, 57, 42, 70, 110, 90, 63, 91, 61, 40, 47, 116, 39, 77, 110, 125, 123, 74, 105, 66, 71, 94, 79, 50, 117, 116, 117, 119, 32, 90, 73, 47, 74, 89, 120, 64, 109, 88, 106, 36, 51, 73, 73, 87, 60, 120, 128, 168, 185, 163, 226, 179, 202, 155, 96, 250, 1, 10, 13, 32, 197, 234, 60, 29, 191, 123, 84, 63, 84, 83, 40, 51, 93, 242, 142, 243, 62, 98, 95, 94, 52, 42, 36, 120, 81, 104, 118, 79, 120, 100, 71, 91, 98, 93, 32, 73, 77, 83, 77, 47, 66, 95, 101, 46, 124, 52, 119, 117, 46, 114, 38, 80, 82, 123, 53, 37, 69, 95, 70, 87, 117, 41, 112, 63, 107, 109, 102, 121, 59, 61, 84, 59, 119, 61, 59, 83, 68, 116, 123, 61, 112, 33, 64, 38, 93, 117, 41, 101, 71, 122, 36, 109, 45, 117, 57, 56, 110, 69, 66, 47, 76, 124, 90, 112, 62, 106, 88, 52, 96, 97, 96, 80, 99, 41, 120, 128, 176, 233, 133, 142, 246, 202, 174, 94, 250, 1, 5, 13, 129, 124, 98, 63, 84, 83, 40, 96, 93, 127, 8, 71, 63, 98, 60, 96, 116, 100, 33, 81, 64, 57, 101, 45, 33, 35, 34, 100, 125, 82, 107, 112, 114, 69, 79, 103, 114, 61, 115, 36, 101, 57, 83, 41, 36, 47, 68, 79, 36, 100, 77, 74, 75, 75, 58, 87, 87, 92, 86, 49, 93, 123, 98, 124, 118, 56, 114, 78, 56, 34, 108, 87, 111, 123, 107, 120, 128, 205, 249, 134, 161, 233, 204, 183, 136, 1, 250, 1, 5, 13, 56, 87, 58, 63, 84, 83, 40, 80, 93, 198, 200, 212, 61, 98, 48, 113, 93, 81, 96, 56, 37, 65, 68, 71, 43, 118, 47, 54, 101, 97, 69, 104, 86, 85, 50, 107, 60, 117, 54, 33, 119, 117, 89, 78, 94, 51, 113, 122, 82, 100, 82, 44, 59, 73, 119, 84, 114, 74, 66, 65, 113, 85, 112, 120, 128, 228, 199, 171, 178, 157, 190, 220, 146, 1, 250, 1, 5, 13, 199, 125, 16, 63, 84, 83, 40, 3, 93, 36, 10, 250, 62, 98, 57, 47, 73, 61, 84, 103, 58, 94, 64, 47, 103, 116, 103, 119, 37, 52, 99, 33, 47, 57, 76, 45, 92, 92, 119, 112, 83, 116, 47, 65, 36, 75, 120, 92, 100, 97, 81, 52, 47, 106, 112, 92, 41, 104, 108, 124, 98, 74, 59, 93, 113, 110, 125, 60, 85, 65, 82, 107, 120, 128, 172, 208, 158, 134, 224, 130, 245, 177, 1, 250, 1, 5, 13, 152, 104, 52, 63, 84, 83, 40, 26, 93, 167, 169, 199, 62, 98, 64, 79, 125, 42, 59, 123, 43, 50, 67, 98, 78, 113, 67, 72, 111, 35, 114, 111, 122, 46, 40, 89, 81, 78, 53, 76, 92, 39, 67, 46, 100, 110, 75, 86, 75, 44, 43, 94, 80, 32, 86, 55, 118, 121, 66, 123, 90, 115, 100, 61, 95, 122, 73, 84, 43, 106, 125, 78, 115, 110, 63, 36, 110, 53, 124, 120, 128, 144, 249, 209, 154, 146, 201, 143, 213, 1, 250, 1, 10, 13, 47, 208, 205, 62, 29, 78, 97, 76, 63, 84, 83, 40, 122, 93, 222, 19, 51, 63, 98, 45, 119, 51, 63, 121, 86, 111, 98, 86, 43, 56, 113, 104, 65, 37, 78, 104, 68, 117, 75, 96, 46, 91, 105, 96, 96, 82, 72, 96, 123, 98, 85, 109, 118, 34, 69, 75, 91, 79, 124, 58, 39, 70, 67, 90, 124, 120, 128, 168, 216, 149, 185, 192, 194, 173, 201, 1, 250, 1, 10, 13, 183, 89, 49, 63, 29, 202, 155, 69, 63, 200, 4, 93, 84, 83, 40, 26, 93, 49, 52, 142, 62, 98, 67, 79, 64, 59, 83, 60, 72, 93, 57, 35, 71, 33, 89, 72, 98, 35, 112, 63, 94, 34, 45, 116, 120, 48, 88, 103, 56, 47, 99, 41, 111, 93, 121, 103, 72, 38, 76, 90, 77, 41, 34, 124, 53, 120, 113, 38, 107, 122, 119, 120, 100, 66, 42, 99, 38, 68, 86, 48, 98, 107, 36, 57, 120, 47, 51, 104, 39, 113, 120, 128, 184, 156, 247, 191, 163, 227, 185, 127, 250, 1, 5, 13, 155, 75, 33, 63, 84, 83, 40, 71, 93, 100, 110, 107, 62, 98, 36, 112, 85, 32, 48, 94, 126, 61, 82, 122, 61, 54, 106, 68, 77, 83, 54, 97, 35, 79, 60, 119, 96, 37, 103, 35, 38, 101, 41, 125, 121, 122, 59, 66, 78, 80, 84, 120, 128, 176, 145, 160, 155, 133, 139, 129, 218, 1, 250, 1, 5, 13, 144, 43, 100, 63, 84, 83, 40, 91, 93, 156, 255, 19, 63, 98, 68, 113, 48, 112, 102, 35, 46, 106, 100, 53, 112, 48, 122, 44, 56, 61, 48, 80, 56, 45, 88, 56, 52, 83, 33, 65, 121, 71, 116, 123, 125, 82, 107, 61, 119, 74, 103, 111, 62, 99, 116, 58, 33, 114, 45, 104, 126, 47, 41, 49, 64, 36, 74, 103, 43, 62, 92, 91, 111, 68, 41, 101, 117, 104, 54, 61, 67, 92, 52, 120, 128, 224, 227, 228, 228, 139, 158, 166, 104, 250, 1, 5, 13, 56, 130, 14, 63, 84, 83, 40, 42, 93, 141, 150, 64, 62, 98, 31, 83, 56, 62, 55, 64, 69, 55, 65, 106, 62, 98, 90, 121, 39, 35, 50, 88, 108, 43, 32, 120, 90, 46, 67, 55, 92, 110, 68, 65, 121, 59, 120, 128, 216, 220, 173, 224, 213, 229, 237, 80, 250, 1, 10, 13, 207, 246, 53, 60, 29, 88, 47, 91, 63, 84, 83, 40, 115, 93, 241, 24, 255, 62, 98, 55, 108, 39, 60, 54, 87, 34, 62, 71, 51, 45, 59, 54, 63, 74, 90, 32, 73, 63, 56, 119, 41, 121, 126, 99, 85, 113, 32, 111, 34, 38, 89, 40, 48, 83, 68, 81, 80, 116, 71, 118, 60, 102, 48, 42, 64, 88, 36, 117, 63, 58, 50, 96, 89, 125, 69, 120, 128, 184, 134, 225, 237, 193, 179, 136, 238, 1, 250, 1, 5, 13, 181, 150, 180, 61, 84, 83, 40, 74, 93, 112, 65, 43, 63, 98, 33, 101, 34, 78, 68, 44, 82, 51, 38, 107, 37, 41, 78, 84, 119, 64, 91, 65, 104, 115, 66, 124, 108, 41, 79, 102, 115, 120, 78, 49, 45, 82, 72, 119, 120, 128, 218, 182, 188, 147, 201, 181, 227, 155, 1, 250, 1, 10, 13, 70, 178, 46, 63, 29, 32, 174, 98, 63, 84, 83, 40, 103, 93, 215, 129, 185, 62, 98, 98, 36, 86, 45, 82, 56, 112, 53, 107, 93, 103, 56, 65, 35, 40, 51, 53, 98, 119, 119, 125, 92, 55, 89, 99, 115, 93, 82, 95, 86, 63, 54, 75, 109, 126, 100, 60, 52, 73, 84, 56, 58, 122, 54, 48, 53, 110, 41, 73, 53, 97, 81, 104, 123, 111, 101, 107, 124, 72, 94, 90, 61, 84, 52, 61, 80, 107, 83, 36, 67, 117, 33, 56, 67, 95, 98, 96, 33, 72, 78, 36, 83, 41, 74, 115, 109, 77, 79, 125, 57, 119, 63, 106, 106, 121, 122, 100, 102, 119, 120, 128, 224, 192, 197, 234, 226, 133, 172, 212, 1, 250, 1, 5, 13, 202, 26, 221, 62, 84, 83, 40, 36, 93, 106, 242, 100, 61, 98, 56, 37, 62, 96, 56, 69, 59, 44, 36, 106, 83, 121, 89, 38, 51, 42, 63, 79, 35, 60, 84, 106, 75, 86, 53, 77, 72, 100, 125, 121, 40, 105, 37, 103, 78, 36, 44, 51, 85, 40, 51, 113, 52, 44, 106, 112, 48, 114, 102, 90, 70, 72, 90, 44, 101, 58, 88, 120, 128, 168, 215, 244, 139, 198, 186, 165, 223, 1, 250, 1, 5, 13, 141, 191, 231, 62, 84, 83, 40, 98, 93, 196, 121, 118, 63, 98, 35, 86, 45, 42, 97, 105, 116, 113, 86, 47, 124, 44, 121, 122, 40, 98, 85, 62, 106, 68, 61, 84, 124, 67, 82, 94, 46, 119, 33, 52, 74, 68, 103, 106, 43, 91, 120, 128, 160, 219, 180, 203, 147, 218, 165, 219, 1, 250, 1, 5, 13, 146, 47, 203, 61, 84, 83, 40, 56, 93, 68, 254, 145, 60, 98, 50, 123, 62, 59, 86, 92, 57, 78, 95, 35, 35, 99, 58, 123, 38, 76, 70, 88, 105, 87, 34, 91, 123, 111, 66, 100, 87, 68, 46, 110, 76, 125, 76, 115, 104, 72, 126, 56, 70, 101, 57, 48, 77, 115, 125, 80, 48, 72, 96, 61, 100, 120, 128, 163, 149, 197, 146, 150, 170, 169, 5, 250, 1, 5, 13, 40, 124, 113, 63, 84, 83, 40, 65, 93, 251, 53, 211, 62, 98, 61, 69, 126, 77, 120, 113, 36, 116, 64, 111, 86, 36, 54, 69, 50, 93, 77, 45, 50, 35, 62, 113, 45, 39, 112, 113, 84, 47, 98, 111, 42, 72, 36, 122, 76, 67, 72, 80, 63, 83, 96, 67, 110, 93, 61, 120, 57, 105, 53, 34, 111, 86, 111, 118, 51, 84, 56, 118, 91, 38, 61, 116, 120, 128, 154, 149, 151, 143, 217, 169, 185, 24, 250, 1, 5, 13, 22, 106, 254, 62, 84, 83, 40, 92, 93, 66, 54, 21, 62, 98, 68, 32, 59, 120, 110, 53, 123, 109, 94, 65, 121, 35, 79, 105, 119, 87, 105, 120, 96, 126, 83, 88, 44, 103, 119, 42, 81, 115, 56, 53, 107, 50, 63, 119, 47, 120, 125, 111, 70, 108, 115, 104, 49, 85, 56, 81, 104, 44, 99, 78, 83, 123, 80, 79, 49, 84, 114, 83, 33, 99, 98, 39, 84, 72, 85, 103, 98, 86, 90, 120, 128, 200, 252, 232, 207, 219, 228, 199, 254, 1, 250, 1, 10, 13, 144, 63, 26, 63, 29, 132, 205, 110, 63, 84, 83, 40, 66, 93, 187, 250, 95, 63, 98, 66, 43, 106, 70, 86, 78, 69, 65, 69, 47, 105, 97, 110, 96, 111, 101, 89, 37, 74, 110, 97, 41, 107, 51, 104, 126, 80, 109, 49, 80, 100, 115, 89, 74, 91, 67, 69, 46, 60, 36, 90, 66, 61, 118, 105, 101, 101, 38, 113, 112, 32, 120, 47, 42, 110, 105, 62, 86, 93, 86, 124, 86, 48, 115, 73, 116, 40, 120, 128, 208, 137, 216, 240, 134, 205, 192, 49, 250, 1, 5, 13, 166, 40, 88, 61, 84, 83, 40, 58, 93, 162, 217, 172, 62, 98, 70, 75, 103, 69, 51, 63, 107, 115, 72, 34, 57, 74, 123, 64, 80, 107, 100, 79, 90, 113, 36, 110, 79, 100, 39, 35, 49, 73, 77, 116, 93, 65, 33, 69, 79, 84, 48, 104, 117, 79, 124, 74, 45, 90, 61, 82, 90, 111, 67, 93, 47, 87, 105, 50, 70, 80, 122, 35, 62, 48, 46, 66, 70, 83, 68, 118, 72, 85, 111, 122, 90, 120, 128, 248, 247, 172, 159, 214, 191, 231, 250, 1, 250, 1, 5, 13, 110, 51, 26, 63, 84, 83, 40, 14, 93, 187, 179, 97, 63, 98, 55, 89, 96, 116, 71, 83, 72, 64, 37, 110, 100, 37, 87, 109, 125, 126, 89, 45, 74, 100, 65, 90, 35, 89, 53, 69, 42, 37, 32, 71, 35, 51, 125, 94, 61, 108, 111, 37, 90, 105, 103, 108, 60, 87, 110, 63, 63, 89, 86, 112, 65, 76, 80, 115, 104, 57, 120, 128, 152, 212, 150, 217, 220, 161, 181, 201, 1, 250, 1, 5, 13, 227, 25, 155, 61, 84, 83, 40, 83, 93, 81, 49, 146, 60, 98, 42, 73, 66, 64, 93, 106, 81, 38, 120, 80, 49, 46, 83, 82, 95, 124, 83, 62, 74, 106, 117, 38, 79, 77, 47, 38, 86, 97, 42, 116, 36, 53, 104, 70, 89, 64, 68, 75, 94, 107, 61, 56, 70, 120, 128, 172, 150, 200, 209, 222, 178, 193, 140, 1, 250, 1, 12, 13, 6, 61, 197, 62, 29, 163, 38, 48, 63, 56, 1, 84, 83, 40, 119, 93, 239, 91, 87, 63, 98, 43, 117, 52, 122, 43, 59, 103, 122, 120, 116, 49, 87, 52, 110, 123, 35, 75, 123, 69, 44, 120, 62, 88, 40, 94, 94, 77, 92, 94, 70, 41, 76, 55, 92, 113, 51, 95, 41, 42, 76, 93, 93, 71, 79, 120, 128, 144, 153, 148, 180, 226, 200, 161, 36, 250, 1, 10, 13, 86, 28, 152, 61, 29, 229, 51, 21, 63, 84, 83, 40, 61, 93, 39, 71, 154, 62, 98, 49, 67, 92, 72, 59, 96, 33, 81, 60, 44, 59, 76, 109, 43, 59, 82, 106, 99, 63, 87, 123, 103, 66, 66, 113, 120, 78, 58, 118, 41, 108, 87, 38, 126, 64, 59, 104, 95, 49, 85, 91, 63, 118, 83, 109, 92, 93, 82, 65, 115, 120, 128, 248, 242, 189, 162, 231, 151, 239, 90, 250, 1, 5, 13, 198, 178, 17, 63, 84, 83, 40, 94, 93, 12, 251, 42, 59, 98, 62, 81, 84, 32, 57, 86, 66, 50, 101, 89, 51, 62, 98, 69, 110, 105, 32, 104, 43, 82, 104, 122, 92, 111, 109, 84, 52, 58, 123, 119, 34, 69, 54, 112, 38, 77, 106, 59, 79, 41, 109, 67, 116, 101, 99, 53, 43, 54, 109, 103, 65, 43, 88, 35, 124, 36, 116, 99, 49, 100, 65, 39, 54, 120, 128, 168, 144, 231, 252, 236, 130, 185, 103, 250, 1, 5, 13, 137, 214, 20, 63, 84, 83, 40, 102, 93, 143, 101, 162, 61, 98, 32, 112, 63, 65, 126, 100, 57, 33, 99, 69, 38, 117, 44, 88, 72, 124, 75, 51, 86, 118, 108, 51, 114, 34, 88, 39, 41, 105, 102, 101, 45, 40, 45, 120, 128, 168, 189, 210, 162, 202, 234, 147, 115, 250, 1, 10, 13, 200, 248, 18, 62, 29, 7, 210, 137, 62, 84, 83, 40, 115, 93, 162, 36, 239, 62, 98, 37, 104, 92, 113, 86, 62, 87, 125, 125, 86, 88, 59, 67, 90, 34, 54, 96, 32, 115, 125, 61, 104, 118, 90, 78, 57, 125, 56, 125, 103, 54, 75, 47, 38, 126, 74, 121, 36, 120, 128, 152, 205, 255, 143, 192, 233, 252, 29, 250, 1, 5, 13, 171, 40, 96, 63, 84, 83, 40, 36, 93, 184, 59, 48, 61, 98, 53, 89, 79, 80, 77, 66, 42, 42, 112, 76, 116, 57, 59, 89, 99, 112, 33, 66, 60, 64, 63, 126, 53, 64, 45, 44, 61, 91, 87, 59, 91, 105, 32, 98, 56, 46, 71, 42, 33, 118, 114, 46, 44, 59, 64, 49, 114, 75, 59, 88, 120, 97, 119, 82, 120, 128, 176, 255, 168, 239, 130, 251, 199, 250, 1, 250, 1, 5, 13, 79, 36, 52, 61, 84, 83, 40, 49, 93, 11, 89, 30, 62, 98, 50, 67, 65, 37, 78, 81, 85, 112, 43, 56, 88, 64, 84, 72, 117, 65, 69, 76, 49, 114, 121, 32, 122, 56, 112, 63, 125, 66, 120, 112, 76, 102, 52, 104, 57, 102, 94, 112, 68, 91, 86, 73, 53, 119, 58, 43, 101, 48, 34, 64, 82, 120, 128, 134, 185, 129, 193, 179, 200, 139, 136, 1, 250, 1, 5, 13, 64, 8, 71, 63, 84, 83, 40, 22, 93, 138, 27, 229, 62, 98, 18, 46, 72, 40, 51, 46, 83, 50, 118, 57, 107, 113, 43, 107, 47, 46, 97, 83, 40, 120, 128, 160, 204, 246, 152, 240, 225, 180, 199, 1, 250, 1, 5, 13, 131, 93, 153, 62, 84, 83, 40, 63, 93, 186, 147, 70, 63, 98, 50, 34, 125, 101, 88, 109, 63, 88, 62, 70, 123, 36, 62, 42, 62, 86, 93, 53, 39, 67, 82, 123, 44, 72, 126, 121, 32, 114, 94, 125, 124, 52, 115, 122, 67, 69, 42, 76, 84, 101, 113, 62, 121, 68, 117, 39, 76, 37, 111, 42, 117, 120, 128, 232, 251, 216, 237, 214, 222, 199, 237, 1, 250, 1, 5, 13, 23, 159, 244, 62, 84, 83, 40, 117, 93, 234, 217, 120, 63, 98, 45, 109, 116, 84, 102, 94, 108, 75, 120, 64, 72, 102, 48, 67, 101, 119, 75, 48, 96, 65, 81, 51, 33, 102, 82, 118, 76, 122, 35, 83, 39, 43, 102, 122, 124, 85, 80, 84, 101, 117, 119, 69, 69, 89, 123, 46, 120, 128, 200, 131, 231, 226, 178, 156, 184, 116, 250, 1, 10, 13, 12, 57, 211, 61, 29, 149, 23, 165, 62, 84, 83, 40, 115, 93, 12, 182, 38, 63, 98, 40, 100, 49, 44, 70, 104, 107, 45, 34, 110, 49, 112, 72, 68, 56, 61, 126, 52, 69, 48, 71, 118, 74, 105, 72, 43, 109, 71, 106, 67, 32, 67, 91, 44, 116, 66, 121, 90, 83, 51, 104, 120, 128, 184, 245, 232, 229, 179, 171, 199, 174, 1, 250, 1, 5, 13, 69, 152, 5, 63, 84, 83, 40, 115, 93, 18, 119, 56, 63, 98, 35, 39, 124, 32, 65, 93, 46, 97, 99, 46, 79, 102, 57, 70, 98, 58, 122, 68, 65, 94, 109, 108, 52, 59, 78, 116, 66, 68, 95, 49, 70, 36, 68, 83, 37, 65, 120, 128, 192, 184, 176, 210, 134, 196, 131, 147, 1, 250, 1, 5, 13, 144, 203, 78, 63, 84, 83, 40, 8, 93, 149, 128, 13, 62, 98, 52, 52, 62, 94, 77, 92, 46, 40, 82, 118, 56, 56, 67, 32, 114, 40, 118, 113, 96, 80, 75, 58, 105, 33, 82, 102, 74, 65, 101, 65, 65, 44, 45, 62, 52, 74, 79, 46, 102, 94, 64, 108, 111, 77, 71, 120, 34, 36, 81, 74, 45, 78, 76, 120, 128, 168, 187, 230, 250, 197, 218, 179, 38, 250, 1, 10, 13, 33, 215, 27, 63, 29, 52, 45, 91, 63, 84, 83, 40, 56, 93, 27, 23, 153, 62, 98, 47, 44, 101, 49, 107, 66, 49, 84, 44, 42, 37, 106, 71, 87, 104, 42, 33, 48, 94, 74, 60, 89, 88, 99, 70, 110, 58, 51, 113, 95, 113, 99, 66, 126, 51, 33, 32, 76, 83, 74, 93, 119, 58, 110, 124, 56, 41, 113, 120, 128, 220, 173, 174, 245, 222, 237, 242, 49, 250, 1, 10, 13, 152, 137, 193, 62, 29, 72, 154, 230, 62, 84, 83, 40, 15, 93, 186, 58, 116, 63, 98, 50, 70, 46, 97, 83, 33, 106, 123, 39, 124, 97, 75, 56, 64, 72, 72, 68, 102, 42, 83, 92, 52, 108, 67, 62, 105, 102, 45, 100, 71, 110, 78, 52, 101, 104, 122, 112, 80, 77, 126, 96, 86, 66, 95, 53, 110, 86, 92, 110, 96, 77, 120, 128, 144, 251, 166, 218, 252, 216, 183, 210, 1, 250, 1, 5, 13, 151, 153, 139, 62, 84, 83, 40, 114, 93, 61, 74, 250, 62, 98, 62, 102, 89, 105, 67, 104, 58, 93, 54, 94, 46, 51, 55, 81, 87, 76, 86, 115, 56, 42, 114, 37, 112, 44, 46, 79, 51, 42, 61, 36, 121, 48, 52, 61, 55, 33, 65, 39, 45, 100, 100, 35, 63, 99, 80, 33, 86, 36, 36, 66, 42, 88, 68, 47, 35, 72, 117, 76, 91, 114, 85, 48, 63, 120, 128, 154, 167, 148, 131, 207, 185, 162, 153, 1, 250, 1, 5, 13, 15, 135, 54, 63, 84, 83, 40, 124, 93, 21, 194, 126, 63, 98, 60, 120, 58, 85, 43, 78, 101, 83, 69, 110, 100, 44, 90, 44, 120, 46, 37, 122, 120, 64, 107, 36, 57, 109, 43, 115, 75, 57, 46, 83, 99, 44, 126, 83, 34, 92, 105, 77, 55, 90, 113, 111, 104, 52, 99, 104, 113, 79, 121, 71, 42, 67, 57, 66, 49, 121, 94, 76, 74, 54, 35, 120, 128, 252, 203, 254, 222, 200, 223, 244, 59, 250, 1, 5, 13, 208, 7, 201, 62, 84, 83, 40, 107, 93, 150, 5, 235, 61, 98, 72, 87, 45, 39, 41, 59, 68, 86, 99, 61, 77, 122, 59, 37, 42, 65, 34, 123, 63, 102, 73, 63, 114, 91, 65, 39, 124, 60, 35, 32, 87, 69, 74, 118, 41, 43, 91, 105, 69, 94, 35, 83, 95, 122, 115, 53, 94, 89, 66, 41, 52, 38, 44, 94, 71, 106, 100, 80, 100, 33, 61, 39, 83, 99, 101, 40, 80, 67, 122, 125, 100, 55, 86, 120, 128, 152, 200, 128, 183, 151, 193, 132, 87, 250, 1, 5, 13, 170, 201, 52, 63, 84, 83, 40, 113, 93, 131, 82, 43, 63, 98, 37, 119, 102, 43, 72, 67, 121, 120, 107, 80, 57, 107, 79, 62, 69, 43, 36, 67, 64, 122, 126, 122, 53, 107, 100, 58, 93, 67, 67, 123, 79, 75, 122, 81, 42, 108, 104, 89, 120, 128, 200, 184, 190, 249, 202, 196, 243, 203, 1, 250, 1, 10, 13, 13, 7, 112, 63, 29, 235, 127, 8, 62, 84, 83, 40, 76, 93, 114, 99, 106, 63, 98, 48, 52, 109, 99, 114, 92, 88, 89, 50, 50, 63, 103, 117, 99, 97, 122, 69, 45, 100, 86, 85, 110, 32, 109, 112, 125, 51, 88, 66, 74, 106, 70, 110, 69, 36, 32, 124, 33, 71, 33, 106, 104, 104, 61, 43, 50, 91, 70, 42, 120, 128, 136, 186, 192, 164, 220, 208, 131, 104, 250, 1, 5, 13, 96, 66, 80, 62, 84, 83, 40, 57, 93, 14, 133, 95, 62, 98, 58, 85, 35, 40, 51, 32, 114, 116, 72, 126, 55, 103, 71, 119, 120, 80, 95, 97, 124, 68, 101, 98, 106, 107, 37, 98, 97, 93, 66, 108, 78, 84, 55, 63, 50, 56, 65, 122, 107, 123, 45, 81, 87, 107, 81, 33, 116, 51, 57, 43, 101, 72, 111, 109, 100, 80, 105, 54, 35, 120, 128, 224, 196, 239, 160, 163, 166, 252, 65, 250, 1, 5, 13, 49, 21, 164, 62, 84, 83, 40, 27, 93, 53, 123, 7, 63, 98, 52, 90, 79, 98, 80, 40, 101, 95, 46, 100, 116, 32, 55, 51, 42, 126, 58, 35, 108, 78, 67, 55, 39, 38, 99, 72, 89, 96, 78, 42, 119, 59, 93, 119, 126, 124, 59, 110, 80, 108, 76, 89, 123, 33, 82, 111, 86, 80, 70, 105, 123, 126, 99, 120, 128, 192, 239, 250, 221, 145, 252, 214, 106, 250, 1, 5, 13, 184, 78, 87, 63, 84, 83, 40, 36, 93, 186, 19, 11, 63, 98, 56, 72, 125, 39, 77, 37, 49, 36, 107, 88, 66, 62, 52, 45, 99, 75, 82, 126, 33, 105, 58, 37, 82, 115, 113, 41, 57, 99, 45, 120, 87, 109, 39, 99, 72, 113, 111, 73, 63, 70, 71, 119, 52, 121, 76, 56, 60, 56, 38, 79, 76, 100, 109, 38, 32, 77, 116, 120, 128, 169, 192, 159, 236, 200, 130, 252, 14, 250, 1, 10, 13, 232, 185, 98, 62, 29, 219, 77, 194, 62, 84, 83, 40, 99, 93, 203, 189, 243, 62, 98, 20, 117, 114, 33, 83, 54, 79, 100, 112, 91, 40, 94, 90, 66, 66, 112, 88, 70, 89, 107, 33, 120, 128, 224, 190, 186, 195, 251, 245, 211, 81, 250, 1, 5, 13, 145, 95, 36, 63, 200, 4, 58, 84, 83, 40, 109, 93, 190, 229, 95, 59, 98, 53, 33, 98, 121, 124, 100, 52, 122, 91, 121, 33, 64, 119, 120, 33, 108, 83, 53, 115, 67, 37, 51, 98, 92, 92, 60, 98, 90, 87, 105, 111, 56, 70, 46, 83, 52, 107, 105, 115, 117, 115, 98, 125, 71, 64, 79, 96, 77, 87, 126, 77, 70, 104, 40, 120, 128, 216, 215, 161, 200, 210, 189, 141, 103, 250, 1, 10, 13, 98, 148, 77, 63, 29, 120, 162, 162, 62, 84, 83, 40, 8, 93, 55, 135, 158, 62, 98, 62, 95, 33, 88, 66, 113, 41, 104, 121, 104, 68, 108, 32, 104, 65, 125, 78, 65, 52, 58, 60, 45, 90, 53, 35, 88, 59, 73, 78, 62, 65, 102, 117, 101, 75, 51, 115, 59, 63, 44, 62, 87, 85, 118, 40, 105, 125, 99, 36, 106, 88, 74, 87, 35, 105, 48, 37, 106, 84, 105, 85, 95, 57, 120, 128, 176, 221, 222, 231, 129, 235, 245, 79, 250, 1, 5, 13, 49, 200, 210, 62, 84, 83, 40, 82, 93, 67, 203, 104, 63, 98, 58, 57, 60, 46, 41, 51, 34, 40, 123, 99, 86, 98, 45, 57, 89, 87, 68, 99, 100, 117, 46, 113, 123, 59, 46, 40, 101, 85, 85, 94, 61, 121, 79, 73, 114, 99, 70, 117, 96, 68, 72, 79, 38, 37, 88, 65, 93, 59, 47, 125, 58, 84, 117, 80, 79, 36, 61, 33, 32, 120, 192, 237, 250, 234, 132, 236, 214, 215, 1, 250, 1, 5, 13, 27, 100, 245, 62, 84, 83, 40, 58, 93, 223, 152, 5, 63, 98, 78, 61, 70, 92, 51, 98, 69, 117, 48, 78, 34, 64, 77, 93, 107, 117, 98, 107, 74, 73, 69, 87, 67, 103, 35, 126, 120, 109, 70, 69, 116, 96, 118, 123, 125, 104, 94, 122, 46, 121, 116, 57, 108, 107, 81, 85, 34, 113, 56, 70, 62, 51, 85, 35, 38, 121, 121, 93, 89, 51, 104, 87, 78, 106, 88, 65, 73, 81, 95, 35, 55, 102, 93, 79, 84, 44, 105, 86, 54, 120, 128, 140, 236, 236, 132, 222, 224, 230, 61, 250, 1, 5, 13, 162, 254, 120, 63, 84, 83, 40, 10, 93, 193, 164, 16, 63, 98, 67, 126, 39, 97, 43, 114, 117, 35, 109, 33, 65, 122, 48, 61, 105, 33, 51, 48, 44, 79, 49, 52, 47, 86, 85, 37, 78, 120, 47, 66, 71, 43, 53, 97, 33, 78, 99, 118, 54, 85, 91, 91, 52, 54, 68, 98, 63, 55, 65, 103, 67, 37, 65, 76, 117, 64, 111, 79, 43, 37, 68, 123, 115, 75, 89, 54, 100, 78, 120, 128, 220, 178, 218, 228, 234, 149, 211, 165, 1, 250, 1, 5, 13, 166, 138, 144, 62, 84, 83, 40, 39, 93, 241, 50, 150, 62, 98, 63, 120, 85, 115, 85, 32, 119, 50, 114, 101, 55, 86, 70, 125, 65, 105, 104, 106, 95, 94, 52, 106, 48, 49, 95, 103, 103, 92, 46, 125, 111, 122, 38, 74, 39, 43, 106, 88, 63, 64, 118, 60, 56, 63, 45, 68, 77, 77, 55, 75, 122, 98, 91, 91, 41, 80, 104, 68, 51, 109, 55, 59, 35, 115, 120, 128, 184, 164, 161, 174, 177, 163, 138, 242, 1, 250, 1, 5, 13, 41, 30, 151, 62, 84, 83, 40, 64, 93, 184, 193, 116, 63, 98, 50, 117, 53, 125, 47, 74, 63, 102, 118, 82, 112, 36, 58, 57, 58, 68, 97, 34, 44, 62, 74, 65, 86, 66, 70, 68, 81, 40, 91, 57, 67, 73, 112, 115, 81, 86, 33, 77, 107, 55, 60, 115, 49, 125, 119, 64, 120, 83, 124, 117, 65, 120, 128, 176, 207, 219, 189, 129, 251, 220, 237, 1, 250, 1, 5, 13, 78, 123, 65, 63, 84, 83, 40, 123, 93, 6, 58, 110, 61, 98, 61, 89, 62, 114, 87, 105, 120, 54, 43, 93, 46, 70, 50, 69, 103, 98, 66, 52, 53, 116, 34, 85, 47, 88, 74, 38, 75, 125, 43, 100, 119, 81, 97, 114, 110, 118, 55, 46, 117, 34, 62, 37, 104, 83, 110, 81, 45, 82, 106, 57, 83, 44, 91, 114, 121, 78, 73, 101, 71, 80, 62, 121, 120, 128, 139, 251, 183, 179, 215, 216, 191, 15, 250, 1, 5, 13, 186, 70, 204, 62, 84, 83, 40, 92, 93, 221, 229, 33, 63, 98, 81, 100, 63, 86, 111, 75, 51, 62, 51, 85, 123, 108, 91, 104, 120, 119, 119, 50, 113, 49, 106, 116, 109, 120, 63, 77, 81, 101, 68, 98, 67, 122, 66, 109, 50, 108, 109, 123, 121, 109, 63, 109, 71, 61, 125, 97, 108, 123, 78, 88, 69, 102, 56, 52, 121, 102, 117, 70, 55, 66, 120, 76, 120, 80, 49, 33, 73, 109, 86, 44, 42, 123, 56, 36, 113, 123, 76, 80, 121, 92, 95, 85, 120, 128, 148, 182, 142, 128, 160, 177, 243, 31, 250, 1, 5, 13, 247, 65, 74, 63, 84, 83, 40, 38, 93, 114, 99, 33, 63, 98, 60, 97, 45, 114, 75, 117, 71, 99, 87, 115, 113, 115, 118, 43, 123, 55, 126, 68, 66, 77, 73, 78, 52, 66, 125, 57, 69, 75, 89, 97, 67, 53, 45, 51, 84, 63, 59, 121, 43, 53, 98, 55, 95, 48, 126, 39, 84, 69, 125, 69, 96, 48, 115, 61, 114, 45, 76, 106, 116, 49, 80, 120, 128, 176, 218, 171, 159, 253, 210, 221, 250, 1, 250, 1, 5, 13, 121, 238, 222, 61, 84, 83, 40, 113, 93, 180, 157, 254, 62, 98, 34, 91, 102, 99, 85, 92, 122, 37, 57, 45, 106, 50, 109, 36, 66, 117, 99, 32, 77, 52, 33, 51, 65, 111, 64, 71, 113, 80, 37, 120, 100, 102, 45, 105, 95, 120, 128, 208, 186, 161, 179, 146, 213, 139, 48, 250, 1, 5, 13, 195, 145, 175, 62, 84, 83, 40, 107, 93, 105, 162, 84, 63, 98, 51, 64, 73, 90, 117, 102, 81, 96, 62, 72, 72, 125, 76, 79, 77, 117, 116, 59, 58, 117, 67, 45, 106, 74, 32, 63, 71, 36, 36, 36, 67, 126, 84, 114, 48, 44, 105, 69, 61, 90, 61, 94, 41, 72, 40, 38, 76, 52, 56, 54, 116, 68, 120, 128, 220, 222, 195, 225, 221, 245, 157, 140, 1, 250, 1, 5, 13, 27, 11, 226, 62, 84, 83, 40, 59, 93, 10, 39, 48, 63, 98, 68, 85, 126, 90, 85, 62, 77, 91, 58, 36, 72, 72, 88, 63, 65, 43, 78, 125, 94, 87, 99, 36, 65, 66, 120, 114, 50, 107, 109, 46, 126, 117, 43, 70, 77, 85, 105, 105, 102, 59, 111, 35, 110, 68, 94, 92, 114, 116, 117, 43, 69, 70, 73, 113, 103, 93, 52, 92, 97, 98, 44, 96, 108, 43, 37, 82, 61, 50, 112, 120, 128, 136, 230, 201, 188, 223, 176, 206, 228, 1, 250, 1, 5, 13, 120, 111, 177, 62, 84, 83, 40, 91, 93, 64, 131, 116, 62, 98, 37, 67, 103, 95, 53, 124, 98, 60, 126, 61, 117, 98, 104, 88, 76, 56, 93, 111, 65, 45, 40, 36, 47, 46, 53, 98, 62, 43, 62, 96, 36, 42, 105, 96, 47, 37, 41, 39, 120, 128, 184, 151, 218, 198, 176, 187, 209, 181, 1, 250, 1, 12, 13, 134, 13, 119, 62, 29, 44, 246, 109, 63, 56, 0, 84, 83, 40, 88, 93, 95, 189, 82, 63, 98, 28, 106, 42, 66, 76, 38, 36, 83, 32, 72, 51, 92, 50, 52, 88, 73, 81, 93, 87, 124, 62, 56, 106, 119, 39, 72, 70, 47, 85, 120, 128, 248, 149, 186, 156, 211, 175, 209, 54, 250, 1, 12, 13, 227, 191, 232, 61, 29, 7, 127, 91, 62, 56, 1, 200, 4, 43, 84, 83, 40, 42, 93, 6, 46, 190, 62, 98, 46, 42, 64, 113, 36, 57, 44, 35, 96, 85, 36, 123, 112, 80, 92, 117, 88, 64, 71, 67, 85, 32, 50, 58, 35, 95, 116, 125, 87, 62, 125, 121, 112, 115, 53, 63, 48, 107, 82, 98, 50, 53, 41, 65, 35, 75, 84, 120, 128, 176, 196, 185, 202, 135, 163, 204, 211, 1, 250, 1, 10, 13, 25, 37, 108, 63, 29, 176, 217, 5, 63, 84, 83, 40, 66, 93, 69, 62, 94, 63, 98, 58, 58, 123, 105, 66, 119, 38, 110, 68, 68, 45, 75, 66, 87, 41, 43, 124, 59, 61, 100, 108, 109, 99, 49, 63, 117, 111, 54, 86, 42, 54, 37, 37, 107, 43, 94, 116, 41, 113, 70, 42, 123, 46, 62, 36, 105, 101, 105, 120, 64, 87, 66, 89, 107, 100, 37, 85, 106, 74, 120, 128, 208, 251, 178, 247, 255, 220, 151, 187, 1, 250, 1, 5, 13, 228, 24, 186, 61, 84, 83, 40, 105, 93, 183, 26, 130, 62, 98, 51, 57, 45, 40, 69, 85, 75, 74, 53, 115, 72, 118, 90, 111, 95, 69, 45, 85, 48, 37, 60, 53, 82, 114, 74, 56, 39, 38, 40, 42, 94, 69, 61, 57, 99, 115, 48, 123, 68, 47, 62, 78, 43, 99, 121, 98, 48, 115, 68, 48, 92, 115, 120, 128, 208, 155, 212, 180, 247, 220, 161, 165, 1, 250, 1, 5, 13, 182, 99, 21, 61, 84, 83, 40, 67, 93, 40, 38, 245, 60, 98, 71, 102, 58, 92, 44, 78, 69, 65, 43, 52, 35, 88, 64, 44, 106, 53, 49, 49, 32, 101, 108, 42, 110, 120, 103, 40, 51, 96, 119, 76, 105, 41, 58, 102, 96, 44, 117, 62, 55, 96, 120, 45, 126, 78, 117, 41, 111, 103, 89, 121, 75, 98, 59, 60, 100, 119, 119, 64, 115, 36, 59, 99, 72, 94, 74, 120, 62, 89, 74, 94, 63, 113, 120, 128, 144, 214, 249, 174, 137, 177, 205, 247, 1, 250, 1, 5, 13, 183, 77, 168, 62, 84, 83, 40, 102, 93, 255, 253, 42, 63, 98, 38, 42, 63, 34, 94, 55, 74, 39, 125, 32, 39, 109, 124, 33, 103, 52, 84, 74, 51, 69, 52, 99, 64, 36, 123, 105, 53, 60, 122, 90, 89, 104, 122, 78, 37, 108, 87, 61, 52, 120, 128, 216, 209, 218, 140, 165, 141, 213, 229, 1, 250, 1, 5, 13, 153, 192, 85, 63, 84, 83, 40, 81, 93, 189, 153, 228, 62, 98, 77, 93, 67, 43, 65, 87, 97, 73, 106, 70, 101, 121, 88, 122, 105, 59, 38, 116, 34, 46, 44, 66, 69, 61, 113, 77, 123, 122, 91, 54, 53, 70, 84, 86, 57, 97, 95, 112, 72, 92, 90, 80, 111, 51, 35, 33, 117, 41, 35, 60, 55, 63, 105, 97, 80, 40, 56, 37, 56, 114, 91, 102, 109, 83, 49, 62, 68, 34, 96, 40, 90, 53, 75, 68, 83, 90, 81, 50, 120, 128, 140, 252, 184, 132, 222, 224, 199, 163, 1, 250, 1, 5, 13, 79, 115, 87, 63, 84, 83, 40, 73, 93, 31, 126, 92, 63, 98, 53, 118, 62, 125, 116, 92, 114, 38, 49, 73, 90, 87, 84, 33, 114, 98, 59, 33, 99, 92, 115, 71, 121, 97, 34, 115, 68, 45, 116, 85, 37, 106, 71, 59, 104, 110, 78, 85, 59, 97, 80, 123, 79, 94, 32, 92, 118, 66, 95, 119, 54, 48, 86, 51, 120, 128, 232, 207, 161, 235, 168, 254, 140, 218, 1, 250, 1, 5, 13, 74, 178, 226, 62, 84, 83, 40, 123, 93, 211, 54, 35, 63, 98, 126, 122, 33, 55, 100, 48, 91, 67, 110, 47, 57, 56, 36, 51, 101, 101, 33, 43, 119, 119, 59, 96, 69, 124, 34, 77, 123, 62, 115, 52, 52, 87, 62, 113, 112, 89, 58, 73, 106, 106, 115, 58, 48, 76, 92, 42, 91, 99, 80, 74, 84, 40, 106, 81, 96, 122, 85, 36, 53, 55, 51, 60, 78, 90, 122, 96, 121, 49, 66, 43, 75, 87, 63, 44, 36, 32, 80, 119, 63, 118, 112, 56, 109, 73, 94, 43, 108, 107, 48, 117, 36, 53, 51, 82, 86, 86, 106, 85, 80, 123, 47, 73, 65, 68, 125, 123, 103, 93, 77, 96, 74, 92, 100, 62, 70, 122, 77, 37, 122, 110, 115, 45, 33, 76, 39, 53, 68, 120, 128, 240, 254, 226, 172, 224, 246, 151, 230, 1, 250, 1, 5, 13, 92, 254, 15, 63, 84, 83, 40, 59, 93, 148, 182, 96, 62, 98, 53, 122, 71, 66, 102, 70, 117, 72, 74, 97, 67, 46, 61, 79, 74, 70, 80, 116, 44, 90, 40, 101, 89, 96, 39, 34, 72, 116, 61, 103, 87, 122, 40, 32, 75, 78, 53, 65, 86, 126, 37, 37, 89, 57, 75, 101, 110, 81, 33, 95, 100, 78, 95, 121, 120, 128, 208, 160, 143, 208, 246, 132, 250, 48, 250, 1, 5, 13, 3, 96, 249, 62, 84, 83, 40, 44, 93, 5, 170, 58, 63, 98, 63, 58, 100, 125, 33, 43, 97, 41, 71, 38, 61, 35, 122, 48, 47, 62, 44, 85, 35, 44, 64, 53, 65, 50, 118, 115, 92, 35, 41, 59, 45, 92, 124, 46, 79, 38, 112, 33, 35, 120, 118, 47, 35, 94, 81, 77, 37, 79, 84, 48, 82, 67, 64, 66, 32, 80, 120, 82, 38, 44, 77, 94, 32, 44, 120, 128, 160, 219, 191, 223, 241, 217, 253, 117, 250, 1, 5, 13, 63, 172, 44, 63, 84, 83, 40, 9, 93, 81, 120, 79, 63, 98, 47, 95, 41, 76, 43, 82, 41, 52, 48, 49, 97, 95, 73, 110, 45, 78, 119, 103, 104, 59, 90, 45, 126, 45, 61, 121, 117, 75, 56, 46, 118, 102, 112, 70, 55, 110, 75, 98, 70, 112, 54, 45, 110, 62, 54, 113, 92, 61, 120, 128, 224, 180, 193, 139, 141, 166, 139, 44, 250, 1, 5, 13, 45, 234, 41, 62, 84, 83, 40, 10, 93, 205, 113, 191, 62, 98, 51, 46, 68, 75, 95, 96, 123, 46, 49, 91, 93, 123, 34, 58, 122, 110, 35, 87, 61, 34, 53, 65, 119, 37, 76, 61, 95, 118, 75, 61, 88, 43, 40, 39, 82, 87, 76, 121, 86, 45, 79, 83, 53, 53, 87, 48, 108, 36, 58, 35, 89, 101, 120, 128, 208, 137, 179, 144, 255, 204, 152, 131, 1, 250, 1, 10, 13, 217, 10, 10, 62, 29, 48, 6, 91, 63, 84, 83, 40, 3, 93, 9, 184, 116, 62, 98, 63, 62, 125, 66, 32, 36, 98, 115, 35, 82, 115, 121, 102, 66, 65, 40, 32, 47, 82, 96, 43, 97, 77, 60, 79, 91, 91, 71, 98, 113, 40, 122, 52, 80, 65, 46, 122, 52, 45, 74, 112, 65, 50, 36, 60, 114, 61, 119, 96, 80, 100, 113, 89, 48, 117, 84, 112, 97, 113, 68, 72, 58, 48, 48, 120, 128, 248, 185, 139, 215, 188, 207, 219, 184, 1, 250, 1, 5, 13, 236, 117, 107, 63, 84, 83, 40, 91, 93, 111, 113, 108, 62, 98, 73, 33, 51, 45, 107, 34, 40, 111, 104, 79, 72, 126, 92, 61, 99, 102, 50, 44, 54, 65, 36, 89, 107, 60, 56, 65, 103, 33, 85, 49, 33, 89, 68, 45, 39, 117, 76, 66, 120, 110, 80, 63, 44, 36, 71, 97, 53, 38, 100, 83, 125, 36, 51, 85, 96, 91, 52, 117, 115, 74, 58, 38, 58, 87, 77, 110, 90, 79, 54, 108, 57, 110, 50, 70, 120, 128, 192, 180, 198, 201, 225, 163, 179, 107, 250, 1, 10, 13, 126, 218, 53, 63, 29, 244, 195, 241, 62, 84, 83, 40, 94, 93, 136, 25, 100, 63, 98, 45, 86, 44, 96, 59, 33, 51, 123, 69, 109, 75, 75, 96, 86, 78, 78, 84, 74, 37, 84, 86, 88, 38, 100, 110, 119, 58, 46, 112, 108, 101, 123, 46, 76, 33, 61, 61, 88, 105, 56, 68, 80, 72, 108, 35, 106, 120, 128, 230, 181, 128, 194, 178, 174, 131, 144, 1, 250, 1, 10, 13, 216, 218, 49, 63, 29, 234, 240, 172, 62, 84, 83, 40, 90, 93, 242, 152, 90, 63, 98, 83, 69, 93, 119, 48, 60, 79, 70, 112, 67, 102, 36, 43, 88, 39, 79, 60, 51, 85, 48, 48, 123, 95, 108, 47, 37, 47, 57, 97, 36, 107, 87, 109, 44, 122, 63, 62, 53, 59, 99, 109, 117, 102, 69, 80, 63, 69, 111, 100, 83, 78, 118, 44, 47, 82, 117, 100, 112, 103, 43, 44, 54, 100, 108, 87, 47, 53, 125, 93, 103, 49, 38, 119, 112, 66, 57, 52, 57, 60, 111, 94, 63, 83, 46, 120, 128, 168, 145, 180, 162, 179, 138, 161, 72, 250, 1, 7, 13, 167, 43, 96, 63, 48, 0, 84, 83, 40, 83, 93, 42, 142, 25, 63, 98, 61, 37, 90, 76, 77, 48, 86, 86, 49, 120, 109, 65, 41, 70, 50, 124, 66, 71, 126, 59, 108, 57, 96, 75, 84, 119, 75, 108, 98, 85, 55, 99, 100, 86, 68, 87, 44, 99, 88, 103, 57, 106, 40, 58, 75, 122, 101, 56, 45, 85, 107, 46, 115, 46, 113, 63, 67, 46, 119, 84, 99, 105, 120, 128, 192, 236, 209, 212, 133, 228, 142, 113, 250, 1, 5, 13, 116, 207, 30, 63, 84, 83, 40, 87, 93, 107, 135, 203, 61, 98, 56, 91, 82, 33, 89, 111, 94, 109, 55, 33, 33, 49, 70, 126, 89, 50, 51, 94, 44, 105, 41, 111, 85, 100, 36, 52, 125, 106, 36, 36, 78, 117, 76, 87, 66, 62, 51, 54, 83, 100, 45, 63, 91, 44, 111, 46, 124, 47, 62, 66, 79, 42, 103, 112, 88, 57, 38, 120, 128, 216, 158, 242, 236, 208, 245, 145, 231, 1, 250, 1, 5, 13, 81, 220, 119, 63, 84, 83, 40, 49, 93, 98, 22, 92, 63, 98, 58, 114, 105, 51, 81, 43, 99, 109, 92, 59, 126, 124, 43, 70, 92, 104, 51, 72, 116, 116, 54, 109, 76, 96, 83, 68, 46, 90, 126, 40, 55, 69, 57, 46, 114, 57, 85, 72, 89, 100, 74, 47, 81, 35, 67, 82, 126, 64, 51, 111, 37, 93, 119, 39, 45, 35, 70, 40, 95, 120, 128, 216, 166, 168, 181, 194, 181, 194, 19, 250, 1, 5, 13, 40, 75, 119, 63, 84, 83, 40, 12, 93, 117, 116, 82, 63, 98, 89, 83, 35, 88, 98, 123, 83, 67, 50, 106, 109, 47, 74, 39, 60, 72, 61, 33, 68, 108, 71, 46, 35, 89, 77, 50, 32, 110, 114, 76, 103, 76, 103, 65, 64, 125, 126, 105, 110, 34, 107, 111, 92, 58, 110, 103, 91, 38, 102, 124, 106, 93, 104, 47, 96, 95, 80, 72, 43, 80, 123, 100, 79, 101, 34, 65, 71, 41, 102, 61, 72, 82, 49, 66, 32, 86, 81, 103, 106, 100, 86, 121, 39, 116, 97, 41, 99, 88, 95, 95, 120, 128, 224, 148, 200, 215, 255, 165, 193, 188, 1, 250, 1, 5, 13, 124, 6, 18, 63, 84, 83, 40, 83, 93, 46, 86, 165, 62, 98, 58, 38, 39, 63, 118, 55, 77, 64, 81, 62, 72, 83, 56, 76, 69, 46, 41, 45, 103, 93, 69, 121, 33, 92, 89, 36, 119, 93, 109, 73, 38, 112, 113, 114, 113, 60, 120, 55, 90, 80, 60, 68, 36, 91, 94, 65, 72, 92, 61, 74, 85, 82, 100, 119, 56, 68, 36, 73, 100, 120, 128, 136, 215, 235, 173, 164, 184, 221, 238, 1, 250, 1, 5, 13, 47, 122, 167, 62, 84, 83, 40, 105, 93, 7, 123, 6, 63, 98, 45, 40, 55, 87, 96, 68, 89, 41, 52, 113, 82, 55, 64, 33, 116, 69, 125, 56, 90, 59, 63, 67, 114, 83, 43, 121, 89, 77, 55, 78, 81, 103, 49, 77, 113, 123, 67, 38, 95, 36, 34, 52, 53, 99, 126, 77, 120, 128, 240, 143, 152, 249, 236, 254, 192, 201, 1, 250, 1, 5, 13, 197, 226, 123, 62, 84, 83, 40, 62, 93, 171, 189, 38, 63, 98, 67, 74, 76, 56, 35, 78, 46, 52, 99, 76, 102, 105, 44, 112, 100, 64, 106, 37, 114, 47, 120, 34, 119, 88, 85, 56, 43, 45, 47, 84, 92, 66, 66, 125, 88, 35, 36, 79, 45, 125, 98, 102, 94, 89, 119, 57, 116, 66, 79, 67, 52, 71, 98, 40, 85, 91, 82, 115, 97, 106, 66, 33, 37, 47, 110, 67, 71, 46, 120, 128, 158, 166, 201, 160, 247, 177, 202, 32, 250, 1, 5, 13, 201, 156, 47, 63, 84, 83, 40, 36, 93, 116, 6, 148, 62, 98, 46, 119, 116, 75, 49, 66, 61, 95, 60, 67, 104, 93, 107, 63, 53, 94, 58, 71, 124, 80, 48, 108, 66, 90, 97, 97, 79, 106, 83, 113, 101, 42, 109, 40, 119, 79, 109, 91, 68, 56, 52, 52, 68, 71, 89, 67, 57, 120, 128, 152, 220, 136, 199, 181, 225, 197, 105, 250, 1, 5, 13, 162, 154, 25, 63, 84, 83, 40, 90, 93, 113, 255, 12, 62, 98, 33, 102, 58, 49, 42, 77, 85, 58, 105, 78, 113, 82, 43, 74, 92, 93, 110, 99, 71, 100, 112, 93, 34, 99, 59, 123, 72, 122, 32, 62, 72, 96, 49, 110, 120, 128, 160, 245, 185, 139, 228, 169, 207, 219, 1, 250, 1, 10, 13, 189, 249, 125, 63, 29, 150, 21, 87, 63, 84, 83, 40, 80, 93, 68, 42, 121, 63, 98, 55, 73, 121, 83, 113, 116, 70, 97, 40, 121, 105, 123, 83, 85, 70, 115, 114, 78, 99, 85, 116, 45, 37, 90, 57, 74, 38, 49, 65, 59, 101, 92, 108, 50, 101, 124, 106, 61, 107, 45, 61, 89, 114, 77, 48, 36, 106, 114, 57, 61, 123, 53, 58, 58, 102, 110, 120, 128, 236, 156, 143, 182, 221, 230, 249, 176, 1, 250, 1, 5, 13, 234, 92, 166, 62, 84, 83, 40, 34, 93, 42, 29, 207, 62, 98, 56, 109, 52, 63, 108, 52, 45, 46, 65, 110, 73, 40, 84, 97, 86, 55, 59, 58, 87, 73, 53, 95, 51, 118, 36, 62, 79, 66, 82, 74, 118, 88, 76, 35, 69, 62, 40, 57, 38, 57, 35, 116, 72, 35, 111, 52, 70, 83, 99, 34, 74, 84, 108, 115, 36, 101, 90, 120, 128, 204, 244, 176, 247, 249, 164, 135, 40, 250, 1, 5, 13, 25, 17, 143, 62, 84, 83, 40, 60, 93, 141, 204, 54, 63, 98, 67, 105, 91, 117, 119, 112, 91, 80, 59, 55, 47, 33, 51, 61, 70, 63, 54, 47, 39, 110, 118, 122, 94, 79, 32, 65, 106, 87, 126, 94, 99, 106, 126, 87, 84, 56, 56, 82, 43, 126, 88, 116, 55, 75, 114, 72, 64, 78, 77, 99, 78, 74, 53, 74, 85, 103, 43, 43, 116, 85, 37, 35, 81, 92, 83, 67, 34, 90, 120, 128, 128, 191, 192, 129, 253, 247, 131, 98, 250, 1, 5, 13, 223, 167, 25, 62, 84, 83, 40, 8, 93, 210, 151, 52, 63, 98, 41, 35, 40, 53, 33, 99, 50, 92, 87, 33, 60, 42, 58, 47, 56, 84, 83, 34, 107, 45, 45, 93, 85, 120, 85, 67, 90, 119, 78, 69, 100, 100, 62, 93, 106, 70, 45, 52, 83, 36, 119, 77, 120, 128, 132, 211, 137, 217, 142, 152, 205, 40, 250, 1, 5, 13, 89, 227, 11, 63, 84, 83, 40, 95, 93, 13, 0, 111, 63, 98, 35, 54, 76, 58, 110, 78, 88, 124, 32, 120, 37, 77, 46, 95, 93, 41, 58, 46, 49, 59, 87, 106, 92, 67, 112, 70, 62, 77, 102, 53, 94, 63, 33, 49, 91, 44, 120, 128, 224, 178, 208, 166, 128, 150, 131, 19, 250, 1, 10, 13, 231, 64, 36, 63, 29, 88, 77, 42, 63, 84, 83, 40, 116, 93, 216, 11, 251, 61, 98, 61, 103, 61, 99, 101, 119, 126, 83, 117, 122, 92, 63, 44, 55, 48, 46, 89, 41, 72, 71, 47, 43, 53, 106, 57, 101, 76, 124, 36, 80, 122, 92, 78, 57, 48, 110, 76, 119, 93, 119, 71, 105, 87, 107, 87, 63, 51, 104, 32, 77, 82, 36, 52, 55, 103, 32, 82, 82, 73, 126, 75, 33, 120, 128, 196, 147, 252, 135, 149, 156, 225, 191, 1, 250, 1, 10, 13, 126, 144, 196, 62, 29, 211, 132, 127, 63, 84, 83, 40, 0, 93, 56, 112, 87, 63, 98, 69, 114, 39, 64, 96, 97, 74, 79, 126, 68, 83, 73, 51, 121, 82, 99, 124, 86, 125, 118, 72, 54, 80, 48, 60, 121, 77, 93, 76, 70, 58, 50, 107, 86, 78, 63, 96, 94, 107, 111, 89, 100, 56, 67, 76, 41, 62, 79, 76, 103, 36, 119, 69, 40, 87, 89, 65, 118, 36, 102, 51, 107, 35, 88, 41, 64, 92, 91, 75, 50, 120, 192, 206, 191, 178, 224, 244, 252, 147, 131, 1, 250, 1, 5, 13, 8, 62, 159, 62, 84, 83, 40, 99, 93, 127, 187, 22, 62, 98, 70, 61, 98, 125, 45, 98, 51, 90, 125, 49, 99, 65, 65, 108, 98, 126, 115, 125, 105, 90, 36, 92, 108, 97, 94, 57, 43, 75, 98, 35, 57, 101, 101, 45, 55, 106, 115, 91, 51, 51, 111, 44, 53, 89, 62, 54, 103, 83, 120, 91, 86, 52, 56, 98, 101, 80, 79, 33, 62, 115, 87, 102, 119, 121, 118, 125, 90, 52, 84, 119, 43, 120, 128, 228, 153, 137, 164, 167, 206, 201, 33, 250, 1, 5, 13, 104, 205, 70, 63, 84, 83, 40, 71, 93, 78, 44, 69, 63, 98, 74, 119, 70, 50, 66, 72, 81, 87, 81, 38, 76, 37, 76, 35, 70, 101, 59, 113, 61, 63, 91, 41, 51, 59, 97, 63, 91, 82, 126, 33, 80, 62, 73, 97, 120, 109, 42, 60, 94, 117, 66, 32, 52, 112, 77, 113, 80, 87, 108, 109, 92, 56, 122, 74, 121, 95, 99, 43, 80, 35, 107, 125, 88, 80, 84, 45, 91, 106, 42, 88, 91, 125, 51, 70, 124, 120, 128, 160, 224, 155, 251, 174, 130, 222, 79, 250, 1, 5, 13, 12, 214, 96, 63, 84, 83, 40, 45, 93, 56, 190, 78, 63, 98, 52, 111, 109, 35, 100, 48, 68, 55, 67, 125, 103, 56, 41, 125, 107, 90, 41, 67, 71, 99, 60, 63, 53, 101, 76, 52, 49, 93, 37, 83, 77, 62, 107, 66, 61, 95, 52, 104, 56, 71, 44, 61, 105, 92, 34, 113, 79, 92, 50, 87, 61, 88, 51, 120, 128, 188, 167, 174, 143, 223, 187, 242, 22, 250, 1, 5, 13, 178, 118, 113, 61, 84, 83, 40, 60, 93, 193, 82, 28, 63, 98, 79, 40, 85, 80, 125, 101, 49, 110, 80, 72, 75, 101, 95, 43, 69, 64, 43, 126, 86, 125, 84, 87, 98, 90, 100, 83, 75, 76, 54, 116, 42, 91, 60, 111, 37, 44, 50, 102, 72, 70, 43, 122, 44, 88, 69, 104, 124, 38, 50, 124, 77, 51, 88, 38, 119, 34, 68, 122, 107, 73, 58, 99, 88, 91, 62, 111, 73, 111, 38, 56, 46, 67, 86, 48, 114, 89, 75, 41, 53, 122, 120, 128, 248, 135, 226, 132, 155, 191, 144, 74, 250, 1, 10, 13, 34, 218, 198, 62, 29, 170, 22, 144, 62, 84, 83, 40, 33, 93, 174, 39, 210, 62, 98, 69, 118, 34, 53, 119, 35, 103, 55, 122, 126, 43, 70, 66, 79, 58, 84, 62, 45, 126, 120, 109, 41, 92, 72, 51, 62, 85, 58, 100, 111, 113, 116, 73, 62, 52, 71, 109, 51, 118, 35, 80, 118, 72, 86, 36, 75, 55, 122, 110, 95, 91, 73, 68, 65, 74, 61, 57, 88, 33, 89, 77, 77, 81, 42, 44, 54, 124, 35, 59, 114, 120, 128, 216, 147, 191, 204, 233, 157, 249, 94, 250, 1, 5, 13, 204, 110, 242, 61, 84, 83, 40, 28, 93, 178, 95, 119, 63, 98, 88, 72, 118, 96, 37, 68, 103, 38, 89, 75, 36, 52, 72, 79, 39, 115, 117, 45, 53, 49, 61, 85, 35, 68, 62, 74, 108, 78, 51, 95, 122, 120, 80, 51, 72, 120, 82, 92, 51, 51, 57, 82, 114, 33, 76, 117, 98, 102, 116, 46, 68, 101, 81, 120, 118, 70, 69, 82, 66, 89, 87, 57, 114, 121, 80, 43, 98, 52, 39, 46, 65, 57, 120, 33, 119, 106, 97, 33, 118, 71, 103, 38, 88, 37, 58, 53, 71, 87, 60, 120, 192, 223, 211, 159, 192, 252, 157, 253, 129, 1, 250, 1, 5, 13, 131, 155, 9, 63, 84, 83, 40, 126, 93, 55, 26, 140, 62, 98, 83, 88, 91, 32, 95, 120, 80, 65, 50, 78, 95, 101, 108, 42, 107, 79, 33, 44, 100, 67, 90, 121, 113, 80, 95, 108, 94, 58, 98, 43, 119, 37, 90, 65, 126, 64, 68, 119, 42, 104, 80, 85, 53, 57, 69, 113, 55, 47, 73, 118, 86, 47, 60, 47, 68, 63, 102, 42, 63, 113, 57, 53, 93, 39, 85, 89, 43, 74, 42, 75, 43, 40, 33, 122, 114, 36, 100, 88, 43, 109, 85, 79, 112, 107, 120, 128, 176, 225, 224, 200, 255, 138, 134, 198, 1, 250, 1, 5, 13, 84, 238, 66, 63, 84, 83, 40, 96, 93, 148, 91, 232, 62, 98, 64, 123, 95, 88, 58, 88, 56, 79, 58, 119, 45, 98, 107, 102, 107, 36, 125, 107, 77, 45, 64, 60, 63, 90, 46, 126, 81, 60, 105, 68, 112, 82, 108, 112, 94, 78, 74, 113, 111, 79, 104, 75, 87, 44, 86, 116, 63, 38, 104, 74, 114, 32, 38, 91, 71, 46, 92, 36, 74, 58, 39, 123, 101, 117, 38, 120, 128, 208, 214, 217, 233, 226, 180, 205, 205, 1, 250, 1, 5, 13, 163, 174, 102, 63, 84, 83, 40, 120, 93, 39, 196, 164, 61, 98, 58, 61, 89, 43, 122, 124, 67, 116, 99, 51, 35, 56, 95, 74, 83, 63, 80, 112, 76, 49, 73, 80, 113, 70, 71, 85, 72, 108, 100, 97, 37, 124, 125, 68, 125, 74, 112, 102, 36, 40, 55, 81, 74, 72, 32, 49, 90, 91, 71, 70, 68, 52, 45, 100, 80, 86, 75, 50, 99, 120, 128, 128, 194, 201, 216, 239, 143, 204, 50, 250, 1, 5, 13, 181, 252, 12, 63, 84, 83, 40, 73, 93, 90, 107, 46, 62, 98, 77, 33, 45, 38, 58, 59, 75, 41, 77, 105, 108, 67, 120, 118, 37, 72, 69, 54, 122, 108, 68, 62, 61, 112, 110, 57, 114, 71, 125, 93, 34, 94, 83, 95, 65, 72, 59, 121, 117, 62, 47, 62, 119, 89, 71, 104, 106, 89, 81, 35, 108, 77, 73, 103, 50, 112, 99, 60, 54, 32, 71, 36, 42, 111, 102, 45, 111, 57, 85, 91, 45, 75, 63, 91, 92, 37, 70, 98, 120, 128, 232, 152, 250, 237, 185, 198, 209, 55, 250, 1, 5, 13, 248, 222, 128, 61, 84, 83, 40, 61, 93, 233, 164, 136, 62, 98, 65, 117, 121, 112, 84, 52, 107, 77, 79, 99, 125, 98, 116, 118, 42, 52, 39, 113, 57, 120, 81, 35, 116, 117, 65, 46, 109, 42, 45, 74, 33, 114, 48, 82, 46, 46, 47, 126, 50, 120, 35, 107, 37, 118, 46, 103, 73, 100, 81, 112, 62, 111, 47, 44, 123, 53, 32, 36, 78, 70, 69, 96, 63, 36, 98, 43, 120, 128, 136, 148, 132, 229, 205, 160, 161, 68, 250, 1, 5, 13, 77, 241, 186, 62, 84, 83, 40, 96, 93, 224, 218, 118, 63, 98, 69, 36, 40, 95, 64, 116, 100, 125, 124, 102, 88, 100, 41, 87, 59, 44, 49, 99, 36, 85, 119, 45, 43, 79, 107, 82, 66, 75, 32, 52, 34, 52, 38, 123, 85, 108, 53, 47, 109, 54, 54, 55, 35, 61, 117, 97, 60, 40, 36, 119, 81, 71, 78, 107, 111, 110, 120, 87, 115, 109, 82, 57, 124, 104, 100, 68, 93, 45, 34, 78, 120, 128, 200, 205, 209, 175, 194, 236, 140, 115, 250, 1, 10, 13, 239, 243, 108, 60, 29, 76, 185, 98, 63, 84, 83, 40, 102, 93, 203, 35, 168, 62, 98, 37, 96, 41, 108, 89, 42, 54, 57, 71, 40, 97, 90, 101, 57, 44, 101, 115, 93, 59, 32, 99, 124, 58, 58, 87, 80, 35, 46, 37, 84, 34, 80, 82, 96, 76, 46, 100, 43, 120, 128, 224, 154, 173, 213, 156, 214, 233, 125, 250, 1, 10, 13, 192, 254, 69, 63, 29, 115, 251, 19, 63, 200, 4, 33, 84, 83, 40, 108, 93, 218, 208, 97, 63, 98, 56, 38, 42, 93, 67, 33, 59, 90, 56, 101, 115, 41, 65, 70, 110, 53, 40, 38, 39, 51, 113, 38, 49, 39, 37, 107, 124, 33, 103, 94, 80, 72, 74, 42, 69, 51, 77, 114, 94, 45, 105, 121, 104, 105, 94, 86, 42, 103, 116, 117, 116, 98, 79, 37, 32, 109, 115, 120, 128, 129, 246, 247, 198, 134, 176, 191, 4, 250, 1, 5, 13, 245, 187, 21, 63, 84, 83, 40, 73, 93, 60, 190, 39, 61, 98, 56, 58, 113, 88, 52, 74, 94, 55, 32, 90, 102, 52, 70, 121, 73, 118, 60, 70, 72, 78, 97, 53, 44, 113, 104, 108, 120, 68, 42, 86, 62, 75, 59, 39, 41, 78, 40, 48, 85, 51, 118, 114, 102, 57, 47, 95, 60, 85, 91, 40, 81, 77, 89, 41, 116, 109, 46, 120, 128, 208, 180, 235, 130, 141, 165, 219, 127, 250, 1, 5, 13, 135, 104, 83, 63, 84, 83, 40, 51, 93, 38, 140, 3, 63, 98, 53, 58, 44, 73, 59, 59, 120, 63, 111, 121, 110, 43, 112, 52, 86, 109, 77, 113, 98, 40, 80, 67, 104, 34, 37, 112, 112, 49, 49, 58, 64, 40, 65, 46, 98, 92, 102, 61, 124, 115, 102, 123, 100, 96, 57, 69, 92, 69, 82, 38, 63, 60, 60, 101, 120, 128, 128, 199, 168, 206, 145, 184, 196, 242, 1, 250, 1, 10, 13, 114, 81, 20, 62, 29, 235, 179, 2, 63, 84, 83, 40, 13, 93, 84, 46, 191, 62, 98, 47, 74, 73, 102, 45, 84, 89, 102, 105, 97, 81, 120, 39, 48, 115, 110, 65, 84, 93, 40, 103, 94, 52, 75, 94, 43, 121, 36, 107, 90, 56, 84, 44, 91, 120, 82, 73, 126, 110, 47, 38, 82, 90, 121, 114, 88, 126, 47, 120, 128, 216, 213, 210, 166, 204, 173, 149, 181, 1, 250, 1, 10, 13, 59, 197, 239, 62, 29, 207, 193, 192, 62, 84, 83, 40, 44, 93, 230, 60, 255, 62, 98, 54, 72, 65, 99, 53, 124, 40, 34, 90, 85, 121, 46, 72, 123, 108, 75, 54, 65, 68, 66, 100, 77, 33, 53, 36, 57, 87, 38, 43, 106, 91, 62, 54, 118, 37, 99, 58, 53, 60, 76, 117, 107, 84, 80, 87, 75, 81, 118, 107, 83, 119, 38, 39, 33, 91, 120, 128, 168, 232, 162, 208, 191, 194, 150, 130, 1, 250, 1, 10, 13, 231, 41, 208, 62, 29, 120, 140, 253, 61, 84, 83, 40, 84, 93, 45, 175, 117, 63, 98, 71, 68, 34, 117, 110, 120, 91, 119, 80, 118, 41, 48, 33, 36, 119, 75, 120, 120, 79, 93, 87, 103, 96, 57, 87, 113, 85, 55, 53, 59, 35, 60, 46, 84, 64, 39, 115, 117, 101, 87, 123, 83, 32, 126, 98, 66, 118, 33, 47, 84, 97, 40, 117, 77, 40, 51, 98, 103, 61, 123, 66, 68, 97, 53, 115, 107, 34, 75, 99, 111, 86, 34, 120, 128, 178, 149, 136, 134, 135, 171, 193, 26, 250, 1, 12, 13, 149, 232, 107, 63, 29, 142, 207, 48, 63, 56, 0, 84, 83, 40, 95, 93, 206, 169, 47, 63, 98, 68, 86, 53, 121, 84, 39, 95, 88, 121, 69, 96, 76, 44, 68, 43, 87, 104, 52, 86, 113, 105, 43, 117, 63, 75, 60, 62, 125, 95, 116, 125, 106, 37, 74, 33, 49, 40, 34, 109, 60, 33, 91, 120, 69, 65, 125, 86, 75, 74, 74, 73, 98, 42, 48, 124, 85, 95, 116, 77, 55, 103, 97, 120, 37, 71, 116, 71, 97, 66, 120, 128, 248, 253, 141, 239, 220, 239, 239, 248, 1, 250, 1, 5, 13, 79, 32, 255, 62, 84, 83, 40, 93, 93, 235, 8, 207, 62, 98, 46, 58, 111, 46, 49, 79, 125, 77, 100, 114, 82, 53, 74, 58, 95, 115, 77, 74, 80, 50, 83, 85, 83, 63, 97, 114, 125, 75, 86, 116, 40, 80, 121, 98, 60, 111, 64, 109, 68, 48, 118, 32, 81, 116, 47, 99, 90, 120, 128, 222, 167, 157, 226, 237, 189, 234, 145, 1, 250, 1, 5, 13, 109, 252, 96, 62, 84, 83, 40, 67, 93, 4, 237, 86, 62, 98, 47, 118, 73, 61, 50, 111, 101, 79, 75, 62, 81, 81, 117, 110, 105, 33, 58, 102, 124, 111, 82, 94, 38, 64, 58, 82, 35, 94, 47, 125, 56, 112, 54, 35, 96, 48, 38, 92, 80, 75, 41, 111, 66, 37, 93, 69, 42, 97, 120, 128, 241, 134, 185, 139, 137, 183, 200, 14, 250, 1, 5, 13, 125, 66, 19, 62, 84, 83, 40, 55, 93, 194, 193, 94, 63, 98, 44, 47, 68, 32, 84, 112, 41, 34, 95, 108, 39, 63, 77, 37, 96, 58, 114, 46, 89, 121, 92, 54, 81, 102, 97, 59, 32, 97, 115, 72, 64, 84, 34, 83, 68, 96, 113, 35, 44, 63, 124, 90, 112, 94, 34, 120, 128, 232, 188, 135, 184, 202, 230, 187, 192, 1, 250, 1, 5, 13, 5, 227, 96, 63, 84, 83, 40, 0, 93, 84, 196, 120, 63, 98, 83, 42, 54, 83, 80, 50, 108, 92, 92, 93, 61, 56, 111, 70, 45, 54, 75, 81, 61, 120, 95, 126, 71, 110, 33, 57, 124, 34, 69, 113, 99, 49, 71, 32, 100, 105, 49, 107, 36, 110, 102, 103, 35, 52, 100, 114, 79, 86, 76, 89, 51, 79, 50, 121, 63, 124, 97, 71, 81, 54, 53, 105, 55, 106, 120, 43, 112, 110, 97, 67, 37, 94, 77, 78, 50, 119, 122, 51, 41, 46, 104, 69, 85, 106, 120, 128, 176, 234, 180, 180, 136, 211, 166, 84, 250, 1, 7, 13, 179, 171, 92, 62, 48, 1, 84, 83, 40, 60, 93, 15, 170, 44, 63, 98, 70, 102, 39, 105, 57, 108, 89, 124, 80, 56, 58, 89, 33, 95, 115, 40, 83, 84, 33, 98, 103, 71, 33, 78, 61, 67, 77, 110, 52, 75, 43, 99, 43, 67, 46, 121, 60, 59, 68, 96, 116, 53, 71, 98, 119, 79, 44, 41, 81, 76, 55, 42, 50, 60, 100, 56, 100, 87, 75, 117, 63, 105, 103, 36, 44, 85, 77, 93, 81, 121, 106, 120, 128, 140, 216, 144, 196, 233, 192, 133, 161, 1, 250, 1, 5, 13, 26, 84, 41, 62, 84, 83, 40, 43, 93, 126, 207, 80, 63, 98, 49, 82, 32, 62, 85, 109, 54, 67, 61, 102, 52, 33, 81, 110, 93, 116, 53, 99, 110, 77, 64, 42, 76, 66, 85, 66, 33, 78, 87, 86, 97, 125, 121, 112, 77, 50, 56, 69, 34, 93, 95, 122, 75, 32, 111, 42, 36, 94, 126, 91, 120, 128, 160, 191, 221, 181, 228, 249, 235, 91, 250, 1, 10, 13, 169, 247, 145, 61, 29, 13, 225, 219, 62, 84, 83, 40, 87, 93, 172, 190, 127, 63, 98, 35, 98, 37, 92, 104, 51, 108, 102, 107, 101, 37, 53, 39, 95, 64, 75, 92, 110, 97, 49, 108, 69, 93, 75, 82, 74, 61, 65, 78, 123, 113, 90, 84, 56, 113, 105, 120, 128, 174, 169, 246, 140, 247, 202, 178, 17, 250, 1, 5, 13, 53, 34, 31, 63, 84, 83, 40, 81, 93, 92, 208, 83, 63, 98, 67, 111, 119, 46, 101, 122, 89, 35, 68, 61, 82, 125, 116, 68, 55, 115, 89, 36, 89, 42, 61, 116, 74, 56, 111, 114, 74, 96, 109, 109, 85, 63, 33, 49, 113, 64, 116, 54, 119, 80, 120, 70, 120, 35, 122, 124, 124, 53, 61, 68, 55, 101, 81, 80, 63, 121, 69, 95, 62, 113, 80, 120, 52, 85, 103, 51, 124, 99, 120, 128, 200, 155, 182, 248, 207, 220, 177, 195, 1, 250, 1, 5, 13, 205, 215, 102, 63, 84, 83, 40, 125, 93, 117, 30, 190, 62, 98, 58, 44, 41, 48, 117, 122, 70, 60, 114, 117, 52, 66, 73, 85, 111, 108, 79, 112, 119, 122, 52, 119, 38, 126, 32, 49, 66, 59, 103, 126, 56, 98, 70, 69, 115, 89, 72, 64, 72, 125, 125, 67, 74, 123, 60, 85, 106, 126, 118, 69, 77, 113, 89, 122, 104, 75, 37, 41, 48, 120, 128, 128, 190, 178, 155, 133, 240, 147, 219, 1, 250, 1, 5, 13, 7, 172, 23, 63, 84, 83, 40, 14, 93, 134, 63, 12, 63, 98, 47, 114, 92, 80, 122, 36, 97, 54, 67, 47, 71, 121, 123, 112, 76, 42, 98, 73, 70, 66, 68, 65, 81, 70, 41, 75, 91, 72, 83, 63, 47, 100, 68, 114, 110, 86, 62, 106, 89, 102, 61, 96, 34, 62, 73, 95, 126, 119, 120, 128, 248, 157, 223, 199, 208, 239, 249, 125, 250, 1, 5, 13, 76, 92, 116, 63, 84, 83, 40, 50, 93, 212, 90, 60, 63, 98, 23, 61, 53, 101, 50, 65, 54, 71, 79, 71, 57, 97, 36, 126, 98, 84, 40, 34, 116, 106, 118, 111, 95, 37, 120, 128, 168, 180, 155, 248, 186, 162, 219, 90, 250, 1, 12, 13, 216, 171, 167, 62, 29, 178, 120, 76, 62, 56, 1, 84, 83, 40, 54, 93, 99, 16, 238, 62, 98, 89, 99, 73, 87, 120, 72, 71, 47, 45, 91, 52, 39, 67, 42, 62, 35, 125, 124, 62, 102, 43, 117, 116, 40, 47, 78, 117, 92, 48, 34, 114, 46, 58, 125, 35, 99, 111, 42, 43, 86, 59, 68, 121, 70, 95, 99, 82, 101, 64, 33, 100, 65, 115, 52, 61, 85, 109, 65, 72, 73, 81, 105, 126, 43, 103, 38, 107, 69, 38, 89, 51, 115, 113, 103, 75, 101, 122, 78, 71, 75, 122, 48, 60, 46, 60, 81, 58, 38, 96, 76, 120, 128, 144, 218, 165, 144, 253, 208, 173, 114, 250, 1, 5, 13, 188, 30, 248, 62, 84, 83, 40, 86, 93, 231, 57, 46, 63, 98, 70, 36, 81, 69, 110, 93, 89, 118, 45, 94, 102, 109, 112, 78, 44, 104, 86, 89, 63, 120, 123, 77, 65, 77, 111, 109, 54, 106, 101, 100, 88, 100, 100, 50, 49, 98, 120, 63, 44, 111, 108, 83, 109, 81, 85, 63, 75, 34, 46, 60, 41, 114, 85, 84, 100, 51, 98, 35, 84, 33, 71, 110, 49, 72, 37, 34, 40, 94, 61, 72, 110, 120, 128, 134, 135, 240, 179, 170, 184, 128, 159, 1, 250, 1, 5, 13, 11, 40, 246, 62, 84, 83, 40, 63, 93, 11, 239, 253, 61, 98, 44, 72, 95, 111, 119, 79, 66, 51, 92, 73, 91, 101, 46, 47, 77, 124, 32, 117, 105, 42, 72, 125, 66, 69, 75, 83, 55, 108, 100, 101, 76, 113, 68, 37, 72, 59, 82, 113, 43, 37, 94, 51, 49, 103, 108, 120, 128, 224, 186, 246, 230, 138, 214, 179, 42, 250, 1, 5, 13, 178, 47, 93, 63, 84, 83, 40, 117, 93, 125, 158, 54, 62, 98, 52, 63, 71, 120, 76, 66, 38, 45, 38, 57, 67, 68, 56, 84, 78, 118, 123, 104, 65, 40, 102, 49, 74, 46, 105, 100, 75, 53, 107, 89, 88, 44, 95, 61, 91, 68, 61, 83, 69, 33, 126, 59, 52, 57, 78, 102, 107, 41, 99, 58, 106, 35, 124, 120, 128, 224, 221, 168, 172, 134, 238, 197, 226, 1, 250, 1, 10, 13, 237, 104, 66, 62, 29, 209, 45, 126, 63, 84, 83, 40, 112, 93, 111, 226, 134, 62, 98, 80, 47, 102, 118, 112, 64, 75, 96, 55, 99, 121, 120, 42, 88, 71, 67, 63, 41, 74, 123, 48, 95, 34, 120, 66, 80, 81, 110, 85, 46, 117, 43, 92, 79, 36, 68, 93, 42, 46, 122, 104, 88, 54, 35, 112, 47, 89, 96, 66, 94, 93, 95, 102, 34, 99, 88, 44, 109, 83, 63, 109, 92, 42, 40, 108, 109, 60, 89, 83, 35, 101, 53, 122, 79, 51, 87, 72, 125, 39, 50, 118, 120, 128, 192, 220, 193, 221, 236, 227, 141, 236, 1, 250, 1, 5, 13, 56, 237, 232, 62, 84, 83, 40, 114, 93, 235, 69, 2, 63, 98, 61, 54, 68, 89, 106, 74, 55, 111, 85, 109, 44, 43, 77, 46, 54, 35, 113, 126, 44, 63, 120, 72, 100, 55, 109, 44, 48, 45, 101, 64, 72, 124, 49, 51, 87, 86, 73, 98, 110, 41, 107, 116, 94, 45, 67, 39, 42, 57, 103, 36, 64, 118, 99, 44, 124, 40, 81, 45, 106, 94, 58, 41, 120, 128, 239, 130, 249, 240, 244, 150, 200, 13, 250, 1, 5, 13, 86, 50, 99, 62, 84, 83, 40, 49, 93, 137, 88, 31, 62, 98, 63, 121, 57, 86, 95, 88, 47, 48, 35, 82, 35, 104, 87, 114, 102, 33, 118, 69, 97, 32, 81, 56, 37, 54, 79, 37, 59, 118, 48, 109, 98, 107, 73, 103, 52, 45, 112, 98, 40, 74, 48, 102, 95, 88, 121, 62, 120, 57, 36, 92, 67, 98, 70, 52, 114, 116, 116, 34, 39, 89, 60, 56, 126, 52, 120, 128, 184, 137, 175, 141, 209, 203, 248, 234, 1, 250, 1, 5, 13, 39, 106, 118, 62, 84, 83, 40, 42, 93, 195, 106, 84, 63, 98, 42, 94, 88, 48, 51, 60, 54, 111, 105, 87, 75, 59, 48, 43, 34, 114, 82, 74, 126, 68, 52, 115, 62, 56, 109, 91, 77, 45, 119, 102, 75, 103, 98, 125, 42, 90, 74, 76, 47, 70, 47, 68, 40, 120, 128, 156, 220, 240, 196, 222, 225, 133, 167, 1, 250, 1, 10, 13, 14, 222, 216, 62, 29, 143, 207, 60, 63, 84, 83, 40, 114, 93, 37, 131, 252, 62, 98, 81, 58, 68, 76, 104, 112, 113, 42, 122, 63, 64, 65, 86, 109, 41, 119, 35, 44, 98, 88, 49, 32, 71, 71, 37, 59, 87, 52, 111, 107, 33, 111, 39, 101, 125, 114, 82, 57, 97, 118, 112, 115, 47, 58, 42, 43, 87, 87, 38, 75, 37, 48, 100, 45, 99, 77, 113, 124, 70, 77, 56, 92, 57, 46, 62, 80, 58, 112, 110, 53, 69, 104, 73, 107, 102, 61, 112, 45, 61, 121, 98, 32, 120, 128, 168, 149, 171, 242, 194, 170, 217, 146, 1, 250, 1, 5, 13, 125, 253, 194, 62, 84, 83, 40, 93, 93, 231, 221, 87, 63, 98, 48, 42, 120, 33, 79, 32, 85, 113, 52, 94, 51, 89, 32, 122, 88, 111, 101, 103, 112, 38, 59, 101, 120, 69, 69, 92, 100, 94, 76, 105, 55, 78, 116, 71, 77, 69, 64, 111, 62, 52, 110, 117, 53, 44, 83, 99, 112, 49, 99, 120, 128, 190, 205, 201, 129, 241, 235, 204, 140, 1, 250, 1, 5, 13, 152, 76, 120, 63, 84, 83, 40, 31, 93, 247, 139, 153, 62, 98, 50, 61, 74, 42, 49, 82, 91, 114, 58, 117, 69, 73, 71, 100, 99, 87, 77, 51, 79, 117, 72, 91, 54, 68, 79, 108, 113, 96, 106, 83, 121, 67, 108, 126, 50, 87, 124, 66, 52, 108, 52, 75, 121, 120, 80, 106, 99, 109, 32, 57, 99, 120, 128, 184, 145, 224, 159, 202, 139, 129, 66, 250, 1, 5, 13, 209, 149, 25, 63, 84, 83, 40, 9, 93, 138, 252, 82, 63, 98, 59, 96, 38, 37, 89, 68, 96, 121, 40, 102, 122, 33, 92, 71, 82, 44, 90, 42, 125, 97, 97, 124, 97, 61, 115, 100, 40, 35, 96, 81, 110, 73, 105, 101, 48, 81, 80, 118, 104, 110, 44, 57, 66, 50, 124, 78, 46, 60, 59, 114, 94, 88, 81, 118, 68, 112, 125, 104, 48, 116, 120, 128, 188, 185, 142, 135, 232, 203, 243, 38, 250, 1, 5, 13, 75, 58, 34, 63, 84, 83, 40, 32, 93, 124, 146, 18, 63, 98, 82, 119, 81, 55, 117, 55, 33, 91, 98, 65, 47, 84, 71, 89, 79, 64, 69, 85, 107, 103, 109, 113, 53, 118, 113, 65, 62, 82, 103, 101, 114, 82, 79, 33, 107, 58, 74, 54, 55, 36, 58, 55, 123, 55, 66, 65, 123, 55, 78, 71, 106, 62, 80, 116, 74, 99, 97, 89, 68, 84, 119, 77, 114, 123, 77, 92, 37, 70, 109, 53, 116, 46, 62, 102, 76, 85, 117, 125, 84, 80, 68, 39, 36, 120, 128, 252, 241, 196, 172, 215, 143, 167, 43, 250, 1, 10, 13, 4, 43, 115, 63, 29, 46, 104, 11, 63, 84, 83, 40, 2, 93, 41, 177, 29, 63, 98, 78, 85, 39, 87, 111, 112, 97, 44, 108, 67, 126, 104, 100, 60, 85, 72, 57, 82, 91, 32, 105, 71, 115, 109, 99, 37, 115, 48, 112, 73, 83, 33, 121, 90, 73, 112, 101, 92, 36, 60, 91, 89, 95, 49, 118, 52, 110, 51, 110, 93, 105, 108, 62, 83, 55, 51, 96, 57, 115, 106, 124, 81, 58, 66, 111, 125, 110, 42, 113, 100, 97, 91, 77, 63, 68, 47, 102, 98, 117, 120, 128, 168, 215, 225, 231, 182, 186, 141, 190, 1, 250, 1, 5, 13, 1, 90, 110, 62, 84, 83, 40, 84, 93, 175, 88, 177, 62, 98, 49, 50, 94, 101, 97, 70, 66, 54, 47, 76, 104, 57, 63, 41, 63, 61, 65, 119, 69, 99, 65, 42, 122, 46, 62, 126, 47, 40, 75, 125, 66, 69, 84, 61, 48, 40, 98, 42, 59, 72, 102, 90, 84, 53, 114, 52, 32, 58, 111, 73, 120, 128, 204, 215, 200, 149, 219, 188, 197, 172, 1, 250, 1, 5, 13, 185, 186, 122, 63, 84, 83, 40, 11, 93, 10, 233, 4, 63, 98, 57, 62, 54, 54, 80, 71, 98, 54, 58, 106, 48, 41, 66, 99, 34, 119, 54, 89, 54, 92, 124, 123, 101, 84, 101, 58, 41, 125, 115, 56, 33, 92, 68, 61, 35, 126, 121, 112, 49, 97, 87, 49, 76, 111, 67, 44, 79, 80, 125, 66, 88, 111, 42, 64, 42, 84, 87, 97, 120, 128, 136, 181, 145, 201, 201, 168, 139, 66, 250, 1, 5, 13, 229, 142, 110, 62, 84, 83, 40, 39, 93, 54, 183, 55, 63, 98, 57, 66, 34, 104, 83, 100, 37, 96, 34, 125, 69, 71, 84, 37, 107, 79, 117, 48, 89, 105, 88, 32, 81, 94, 49, 82, 36, 50, 77, 70, 55, 63, 122, 68, 114, 109, 74, 38, 111, 70, 74, 110, 122, 67, 51, 71, 84, 59, 61, 37, 97, 81, 118, 75, 100, 99, 112, 66, 120, 128, 224, 158, 168, 201, 150, 246, 193, 202, 1, 250, 1, 10, 13, 8, 98, 18, 60, 29, 150, 42, 44, 63, 84, 83, 40, 109, 93, 127, 236, 77, 62, 98, 69, 91, 101, 37, 75, 48, 50, 124, 37, 110, 63, 50, 63, 104, 37, 45, 75, 104, 124, 104, 115, 72, 100, 101, 72, 79, 94, 46, 124, 39, 78, 110, 102, 87, 91, 62, 92, 45, 122, 68, 40, 63, 32, 113, 49, 100, 43, 122, 94, 98, 118, 109, 35, 118, 125, 105, 117, 32, 92, 123, 80, 35, 32, 124, 64, 79, 74, 103, 45, 101, 120, 128, 248, 187, 149, 216, 193, 223, 171, 193, 1, 250, 1, 10, 13, 69, 101, 159, 62, 29, 104, 90, 80, 63, 84, 83, 40, 74, 93, 107, 109, 42, 63, 98, 59, 83, 72, 113, 84, 98, 67, 99, 79, 58, 48, 96, 107, 110, 88, 112, 72, 91, 80, 126, 115, 37, 63, 34, 81, 96, 57, 67, 109, 119, 49, 88, 32, 74, 55, 73, 65, 35, 75, 120, 87, 108, 83, 101, 108, 95, 99, 91, 46, 59, 61, 115, 108, 110, 99, 90, 52, 69, 64, 114, 120, 128, 180, 217, 246, 182, 147, 203, 181, 183, 1, 250, 1, 5, 13, 240, 212, 175, 57, 84, 83, 40, 113, 93, 231, 109, 20, 63, 98, 58, 40, 86, 96, 65, 86, 47, 79, 68, 48, 86, 70, 38, 81, 88, 53, 113, 124, 92, 53, 81, 89, 61, 107, 48, 101, 92, 53, 122, 98, 88, 79, 87, 118, 123, 92, 54, 126, 66, 36, 125, 107, 120, 99, 53, 71, 93, 41, 90, 48, 78, 117, 107, 105, 67, 124, 106, 105, 79, 120, 128, 200, 219, 242, 153, 216, 220, 149, 207, 1, 250, 1, 10, 13, 80, 121, 112, 63, 29, 172, 136, 112, 63, 84, 83, 40, 69, 93, 137, 115, 47, 63, 98, 85, 87, 39, 109, 47, 84, 123, 125, 113, 90, 87, 54, 101, 96, 89, 86, 104, 40, 83, 89, 105, 51, 97, 99, 109, 83, 125, 113, 75, 79, 102, 42, 36, 54, 55, 43, 46, 89, 77, 83, 94, 49, 91, 58, 51, 83, 93, 59, 49, 51, 101, 82, 69, 63, 105, 77, 116, 66, 32, 91, 86, 41, 82, 66, 114, 77, 49, 78, 73, 77, 72, 47, 89, 32, 122, 87, 86, 70, 79, 57, 117, 98, 96, 56, 104, 51, 120, 128, 168, 194, 253, 189, 163, 146, 236, 91, 250, 1, 5, 13, 226, 141, 55, 63, 84, 83, 40, 59, 93, 121, 175, 67, 63, 98, 73, 54, 106, 88, 113, 123, 84, 94, 57, 70, 101, 65, 46, 112, 98, 106, 86, 120, 69, 68, 49, 117, 77, 114, 101, 101, 114, 72, 58, 89, 95, 104, 76, 34, 95, 55, 92, 85, 102, 35, 69, 120, 61, 126, 105, 118, 102, 112, 124, 76, 49, 58, 62, 64, 58, 113, 103, 119, 113, 44, 41, 44, 68, 94, 102, 124, 115, 44, 49, 75, 45, 33, 49, 65, 120, 128, 176, 229, 223, 191, 245, 170, 254, 253, 1, 250, 1, 5, 13, 197, 195, 130, 62, 84, 83, 40, 74, 93, 47, 174, 246, 62, 98, 21, 40, 109, 125, 34, 74, 108, 71, 68, 73, 44, 102, 108, 79, 100, 98, 89, 121, 56, 84, 93, 56, 120, 128, 200, 237, 242, 236, 183, 236, 150, 231, 1, 250, 1, 5, 13, 161, 59, 2, 61, 84, 83, 40, 77, 93, 101, 139, 42, 63, 98, 62, 81, 63, 48, 41, 123, 65, 34, 57, 57, 110, 35, 46, 38, 97, 86, 54, 66, 82, 103, 68, 67, 123, 71, 61, 86, 71, 100, 98, 121, 53, 58, 106, 67, 66, 120, 77, 55, 59, 76, 106, 100, 83, 53, 117, 95, 75, 114, 86, 124, 70, 116, 58, 58, 53, 60, 85, 118, 114, 81, 84, 91, 62, 120, 128, 184, 213, 174, 181, 193, 171, 245, 170, 1, 250, 1, 5, 13, 192, 163, 36, 61, 84, 83, 40, 69, 93, 51, 102, 128, 62, 98, 104, 105, 99, 104, 41, 126, 39, 37, 124, 95, 111, 101, 81, 93, 42, 84, 46, 100, 82, 64, 32, 80, 46, 37, 66, 85, 68, 104, 119, 46, 69, 51, 49, 65, 71, 97, 46, 109, 115, 71, 109, 52, 61, 84, 76, 110, 68, 53, 70, 32, 77, 88, 108, 98, 82, 102, 91, 93, 69, 83, 90, 61, 45, 110, 57, 91, 83, 48, 53, 72, 69, 64, 112, 42, 81, 107, 50, 88, 88, 83, 48, 47, 66, 119, 95, 108, 69, 78, 109, 95, 37, 79, 71, 64, 107, 80, 39, 78, 58, 111, 58, 52, 126, 124, 89, 120, 128, 152, 136, 168, 163, 187, 193, 192, 18, 250, 1, 5, 13, 13, 80, 63, 63, 84, 83, 40, 88, 93, 52, 181, 52, 62, 98, 73, 102, 83, 35, 37, 113, 66, 75, 121, 53, 46, 76, 54, 37, 65, 84, 66, 116, 119, 80, 61, 33, 100, 99, 61, 104, 56, 122, 48, 69, 61, 82, 37, 98, 61, 39, 44, 34, 74, 84, 124, 64, 85, 112, 64, 109, 89, 53, 114, 73, 89, 100, 52, 54, 68, 47, 34, 110, 100, 59, 89, 70, 59, 84, 119, 90, 71, 82, 103, 58, 72, 64, 74, 67, 120, 128, 224, 162, 203, 152, 255, 149, 218, 196, 1, 250, 1, 5, 13, 58, 176, 119, 63, 84, 83, 40, 57, 93, 254, 94, 94, 63, 98, 70, 67, 79, 47, 34, 40, 101, 106, 88, 62, 109, 62, 46, 37, 60, 60, 46, 122, 85, 37, 33, 120, 100, 69, 38, 76, 87, 32, 57, 57, 112, 98, 71, 98, 46, 75, 53, 44, 86, 61, 84, 104, 62, 59, 89, 52, 88, 53, 44, 35, 59, 71, 124, 118, 73, 120, 94, 41, 41, 84, 80, 101, 81, 62, 77, 43, 118, 74, 117, 111, 39, 120, 160, 197, 150, 171, 198, 169, 180, 217, 3, 250, 1, 5, 13, 48, 250, 193, 62, 84, 83, 40, 31, 93, 113, 164, 2, 63, 98, 55, 55, 89, 72, 107, 112, 115, 66, 114, 53, 124, 72, 101, 80, 57, 52, 108, 43, 35, 33, 108, 110, 55, 32, 109, 78, 61, 46, 62, 59, 123, 57, 35, 100, 69, 50, 62, 53, 61, 55, 96, 45, 113, 59, 64, 36, 68, 70, 49, 96, 35, 122, 125, 66, 73, 97, 120, 220, 161, 199, 167, 219, 141, 186, 188, 1, 250, 1, 10, 13, 2, 36, 27, 63, 29, 12, 94, 28, 63, 84, 83, 40, 39, 93, 118, 44, 11, 63, 98, 46, 100, 36, 86, 57, 99, 68, 32, 42, 39, 117, 86, 109, 107, 63, 95, 123, 122, 94, 104, 41, 118, 124, 92, 56, 33, 59, 96, 58, 99, 49, 100, 90, 32, 98, 123, 41, 58, 34, 92, 94, 67, 59, 41, 106, 75, 44, 120, 128, 164, 164, 139, 227, 159, 162, 218, 152, 1, 250, 1, 5, 13, 235, 54, 236, 60, 84, 83, 40, 97, 93, 232, 42, 57, 63, 98, 60, 36, 121, 112, 51, 92, 102, 70, 62, 55, 71, 99, 101, 70, 116, 48, 123, 109, 40, 67, 86, 97, 119, 34, 41, 100, 90, 114, 112, 107, 115, 40, 93, 80, 125, 44, 105, 105, 107, 38, 52, 98, 122, 105, 52, 122, 93, 116, 52, 89, 79, 62, 41, 94, 51, 35, 44, 119, 102, 78, 33, 120, 128, 176, 162, 180, 142, 154, 147, 162, 112, 250, 1, 5, 13, 241, 11, 13, 63, 84, 83, 40, 66, 93, 202, 44, 191, 62, 98, 119, 62, 38, 52, 71, 103, 70, 49, 33, 34, 46, 115, 101, 45, 108, 46, 38, 101, 93, 54, 59, 84, 126, 125, 61, 121, 32, 112, 34, 60, 36, 64, 45, 72, 70, 116, 115, 72, 76, 76, 51, 61, 60, 39, 80, 63, 61, 125, 43, 88, 72, 59, 53, 61, 54, 109, 63, 39, 118, 76, 103, 84, 47, 100, 125, 109, 101, 60, 102, 118, 57, 92, 57, 49, 35, 124, 55, 119, 77, 125, 92, 33, 101, 73, 115, 104, 43, 111, 50, 87, 85, 108, 81, 126, 99, 93, 46, 87, 40, 98, 88, 33, 55, 52, 62, 106, 34, 35, 58, 56, 85, 71, 88, 120, 111, 101, 110, 101, 111, 53, 120, 128, 144, 161, 240, 159, 151, 137, 130, 89, 250, 1, 5, 13, 156, 250, 100, 63, 84, 83, 40, 13, 93, 98, 133, 29, 62, 98, 116, 65, 76, 43, 57, 76, 68, 110, 95, 110, 106, 68, 91, 105, 81, 43, 40, 101, 39, 85, 120, 34, 45, 51, 87, 47, 125, 110, 72, 102, 114, 32, 98, 118, 40, 113, 112, 95, 103, 85, 116, 72, 117, 88, 109, 84, 51, 122, 61, 90, 102, 78, 90, 63, 48, 44, 51, 57, 82, 42, 78, 85, 70, 119, 122, 106, 96, 100, 96, 94, 57, 72, 125, 81, 95, 79, 43, 84, 69, 35, 122, 34, 80, 108, 126, 68, 69, 67, 102, 123, 94, 87, 44, 93, 39, 63, 34, 124, 93, 34, 114, 78, 58, 93, 64, 62, 79, 40, 94, 95, 32, 94, 115, 79, 46, 75, 36, 120, 128, 248, 131, 201, 217, 202, 159, 200, 204, 1, 250, 1, 5, 13, 7, 90, 108, 63, 84, 83, 40, 71, 93, 219, 231, 200, 62, 98, 45, 61, 125, 100, 32, 97, 59, 64, 74, 64, 77, 46, 118, 66, 47, 75, 103, 113, 76, 96, 116, 60, 99, 39, 122, 32, 99, 92, 78, 90, 58, 72, 36, 39, 92, 85, 80, 84, 93, 94, 34, 47, 93, 62, 49, 113, 120, 128, 240, 147, 220, 140, 175, 159, 225, 95, 250, 1, 5, 13, 196, 118, 2, 63, 84, 83, 40, 42, 93, 218, 110, 50, 63, 98, 92, 98, 49, 44, 55, 96, 40, 88, 118, 105, 126, 125, 94, 112, 110, 37, 37, 41, 110, 101, 89, 122, 51, 51, 108, 93, 100, 94, 69, 116, 40, 56, 50, 60, 107, 119, 41, 59, 108, 69, 83, 123, 89, 105, 94, 96, 67, 61, 110, 56, 44, 104, 119, 106, 101, 102, 79, 124, 63, 89, 123, 73, 51, 33, 96, 102, 106, 65, 37, 118, 123, 104, 59, 72, 49, 92, 65, 72, 84, 44, 57, 70, 110, 45, 104, 62, 64, 71, 86, 36, 72, 43, 123, 120, 128, 248, 221, 163, 227, 193, 239, 157, 154, 1, 250, 1, 5, 13, 67, 91, 225, 62, 84, 83, 40, 13, 93, 103, 124, 65, 63, 98, 68, 88, 40, 118, 117, 34, 55, 119, 59, 66, 77, 78, 88, 40, 69, 38, 71, 51, 63, 84, 89, 38, 55, 66, 70, 66, 105, 33, 77, 112, 108, 39, 126, 39, 116, 103, 63, 93, 54, 54, 47, 118, 113, 70, 112, 113, 110, 78, 93, 65, 98, 104, 114, 116, 78, 97, 64, 101, 80, 82, 56, 53, 73, 74, 85, 69, 78, 80, 51, 120, 128, 152, 217, 134, 177, 152, 201, 181, 82, 250, 1, 5, 13, 59, 132, 61, 63, 84, 83, 40, 98, 93, 171, 30, 120, 63, 98, 52, 40, 69, 98, 52, 112, 80, 84, 83, 59, 67, 44, 45, 35, 52, 41, 87, 50, 71, 88, 44, 98, 125, 120, 77, 70, 111, 75, 66, 61, 59, 32, 89, 120, 107, 106, 79, 107, 77, 79, 52, 123, 125, 124, 113, 60, 60, 81, 49, 69, 119, 32, 53, 120, 128, 134, 134, 165, 162, 176, 176, 168, 146, 1, 250, 1, 5, 13, 124, 0, 36, 63, 84, 83, 40, 33, 93, 81, 38, 221, 61, 98, 92, 75, 53, 108, 32, 37, 49, 53, 126, 66, 81, 52, 55, 73, 88, 107, 99, 119, 67, 48, 99, 33, 38, 48, 41, 62, 57, 123, 68, 58, 105, 76, 59, 81, 95, 35, 86, 96, 78, 46, 105, 104, 124, 78, 105, 40, 57, 103, 107, 44, 59, 61, 104, 76, 84, 40, 69, 36, 98, 97, 107, 52, 111, 99, 87, 37, 119, 100, 104, 85, 52, 35, 73, 53, 70, 122, 35, 87, 69, 33, 36, 81, 48, 56, 126, 76, 98, 109, 124, 86, 93, 81, 125, 120, 128, 192, 198, 167, 255, 230, 179, 188, 102, 250, 1, 5, 13, 1, 215, 187, 62, 84, 83, 40, 70, 93, 28, 185, 106, 63, 98, 44, 56, 117, 100, 47, 84, 125, 54, 118, 56, 114, 83, 38, 88, 37, 109, 93, 96, 93, 57, 36, 87, 100, 43, 65, 41, 103, 49, 118, 97, 37, 92, 113, 112, 35, 105, 96, 96, 112, 79, 83, 120, 64, 102, 89, 120, 128, 178, 242, 199, 130, 137, 147, 191, 148, 1, 250, 1, 5, 13, 180, 209, 65, 63, 84, 83, 40, 47, 93, 211, 30, 6, 63, 98, 62, 111, 115, 60, 46, 41, 79, 63, 83, 106, 66, 37, 107, 108, 62, 52, 50, 54, 97, 52, 85, 58, 44, 124, 111, 45, 100, 42, 55, 125, 80, 50, 64, 67, 94, 38, 109, 104, 77, 103, 64, 99, 54, 116, 61, 106, 98, 102, 89, 43, 83, 66, 76, 83, 109, 55, 98, 118, 75, 32, 67, 69, 40, 120, 128, 152, 168, 252, 184, 208, 193, 226, 199, 1, 250, 1, 5, 13, 80, 79, 138, 62, 84, 83, 40, 21, 93, 70, 70, 55, 63, 98, 56, 71, 45, 56, 70, 73, 104, 120, 114, 112, 35, 54, 94, 37, 74, 125, 79, 43, 73, 46, 100, 108, 85, 71, 66, 117, 60, 76, 67, 122, 90, 96, 91, 45, 38, 59, 88, 65, 99, 41, 88, 83, 96, 123, 52, 76, 56, 70, 85, 68, 116, 123, 43, 43, 74, 118, 112, 120, 128, 216, 163, 152, 172, 210, 157, 194, 93, 250, 1, 5, 13, 123, 249, 98, 63, 84, 83, 40, 63, 93, 221, 133, 14, 62, 98, 51, 59, 84, 118, 53, 66, 90, 80, 125, 47, 68, 45, 70, 63, 84, 49, 44, 89, 51, 117, 93, 117, 117, 125, 38, 94, 84, 80, 97, 46, 73, 114, 76, 52, 123, 61, 125, 104, 101, 112, 112, 102, 71, 70, 32, 102, 85, 107, 85, 57, 106, 55, 120, 128, 200, 201, 128, 243, 176, 204, 132, 68, 250, 1, 5, 13, 95, 213, 123, 63, 84, 83, 40, 108, 93, 227, 181, 120, 62, 98, 46, 69, 86, 112, 86, 108, 42, 110, 111, 101, 81, 96, 50, 66, 55, 51, 66, 114, 65, 37, 118, 77, 79, 125, 62, 41, 104, 121, 72, 67, 49, 64, 78, 66, 100, 118, 71, 119, 46, 36, 102, 119, 87, 96, 77, 38, 66, 120, 128, 156, 152, 225, 198, 223, 193, 137, 182, 1, 250, 1, 5, 13, 178, 111, 160, 62, 84, 83, 40, 8, 93, 172, 204, 216, 62, 98, 56, 67, 48, 120, 121, 104, 116, 87, 81, 77, 36, 47, 70, 76, 83, 48, 49, 110, 93, 63, 106, 74, 100, 61, 62, 126, 117, 110, 80, 55, 101, 64, 91, 65, 121, 108, 47, 84, 72, 123, 33, 110, 69, 96, 126, 86, 80, 42, 44, 60, 115, 83, 105, 125, 58, 125, 94, 120, 128, 192, 238, 245, 173, 230, 243, 174, 239, 1, 250, 1, 5, 13, 222, 22, 28, 63, 84, 83, 40, 119, 93, 163, 125, 91, 63, 98, 51, 38, 39, 58, 103, 98, 82, 36, 81, 102, 33, 91, 70, 96, 61, 123, 36, 35, 61, 102, 77, 107, 97, 51, 67, 50, 85, 93, 39, 123, 45, 59, 122, 77, 41, 122, 103, 43, 119, 60, 35, 76, 88, 68, 59, 55, 44, 40, 95, 62, 120, 90, 120, 128, 232, 166, 253, 248, 204, 182, 234, 199, 1, 250, 1, 10, 13, 191, 209, 92, 63, 29, 141, 162, 237, 62, 84, 83, 40, 8, 93, 81, 80, 195, 62, 98, 53, 115, 117, 85, 45, 115, 124, 84, 88, 100, 96, 119, 87, 66, 51, 120, 42, 33, 99, 32, 50, 60, 118, 43, 37, 76, 125, 104, 35, 81, 101, 40, 33, 35, 85, 115, 52, 66, 46, 46, 79, 35, 107, 86, 85, 51, 80, 60, 42, 32, 80, 83, 46, 75, 120, 128, 176, 138, 249, 221, 242, 210, 200, 239, 1, 250, 1, 5, 13, 23, 77, 162, 61, 84, 83, 40, 122, 93, 90, 158, 72, 63, 98, 47, 79, 95, 117, 52, 81, 39, 125, 88, 118, 83, 107, 63, 100, 102, 113, 84, 80, 46, 80, 64, 84, 112, 122, 97, 93, 35, 33, 49, 120, 85, 47, 78, 118, 72, 114, 78, 56, 59, 81, 99, 87, 123, 60, 124, 79, 105, 58, 120, 128, 192, 200, 134, 215, 219, 195, 180, 97, 250, 1, 5, 13, 56, 74, 48, 63, 84, 83, 40, 75, 93, 70, 174, 114, 63, 98, 51, 99, 85, 90, 53, 93, 99, 52, 85, 78, 37, 108, 95, 65, 67, 61, 71, 59, 115, 67, 60, 52, 92, 107, 104, 87, 84, 125, 49, 114, 103, 56, 79, 63, 90, 74, 119, 60, 51, 52, 105, 36, 101, 34, 94, 106, 60, 122, 88, 50, 65, 126, 120, 128, 176, 142, 207, 232, 248, 242, 248, 112, 250, 1, 5, 13, 235, 195, 161, 62, 84, 83, 40, 38, 93, 14, 115, 59, 63, 98, 81, 38, 105, 113, 92, 41, 101, 34, 97, 102, 107, 60, 63, 101, 120, 68, 43, 40, 94, 88, 55, 78, 90, 45, 124, 59, 88, 69, 125, 80, 103, 67, 49, 35, 115, 67, 46, 73, 85, 43, 36, 33, 35, 59, 113, 77, 124, 52, 95, 108, 54, 118, 53, 100, 37, 55, 75, 91, 115, 65, 79, 63, 36, 48, 125, 72, 43, 60, 113, 84, 54, 96, 81, 83, 84, 53, 74, 62, 59, 79, 61, 68, 120, 128, 248, 233, 211, 222, 209, 207, 158, 93, 250, 1, 5, 13, 103, 177, 57, 62, 84, 83, 40, 35, 93, 106, 93, 88, 63, 98, 62, 46, 76, 124, 92, 118, 81, 84, 51, 90, 99, 124, 114, 61, 73, 65, 96, 66, 43, 85, 84, 68, 96, 47, 110, 108, 45, 64, 68, 36, 43, 89, 114, 116, 45, 57, 94, 62, 52, 92, 100, 44, 62, 119, 111, 56, 86, 33, 112, 45, 92, 33, 89, 90, 100, 75, 76, 60, 46, 111, 105, 48, 47, 120, 128, 130, 159, 196, 194, 145, 248, 161, 148, 1, 250, 1, 5, 13, 16, 134, 254, 62, 84, 83, 40, 13, 93, 48, 198, 223, 61, 98, 82, 124, 48, 47, 98, 65, 45, 77, 112, 72, 38, 104, 63, 85, 53, 44, 78, 55, 70, 41, 126, 55, 47, 96, 107, 66, 47, 68, 113, 83, 123, 47, 72, 101, 46, 88, 111, 97, 73, 58, 115, 44, 104, 60, 69, 99, 124, 87, 89, 92, 96, 119, 103, 69, 42, 113, 108, 78, 66, 64, 49, 103, 90, 61, 76, 117, 64, 88, 71, 91, 59, 108, 108, 44, 53, 114, 77, 114, 58, 40, 68, 87, 106, 120, 128, 252, 156, 194, 142, 223, 231, 145, 29, 250, 1, 5, 13, 169, 239, 90, 63, 84, 83, 40, 5, 93, 228, 74, 212, 62, 98, 43, 34, 91, 59, 106, 64, 62, 41, 40, 43, 80, 75, 111, 79, 66, 67, 48, 124, 65, 115, 42, 90, 47, 54, 67, 121, 52, 57, 122, 89, 124, 69, 75, 72, 78, 61, 124, 44, 111, 122, 78, 98, 35, 42, 120, 128, 172, 189, 184, 128, 216, 234, 195, 47, 250, 1, 5, 13, 119, 56, 252, 60, 84, 83, 40, 3, 93, 21, 60, 72, 63, 98, 49, 100, 33, 70, 109, 115, 124, 120, 107, 114, 68, 118, 112, 44, 36, 46, 77, 46, 42, 126, 71, 33, 37, 70, 35, 44, 70, 69, 70, 87, 36, 114, 64, 118, 73, 84, 121, 50, 46, 81, 77, 79, 97, 74, 87, 52, 126, 109, 73, 84, 120, 128, 208, 216, 241, 232, 138, 197, 141, 199, 1, 250, 1, 5, 13, 231, 200, 118, 63, 84, 83, 40, 33, 93, 133, 1, 9, 61, 98, 74, 90, 105, 95, 89, 66, 96, 77, 87, 81, 52, 109, 81, 85, 121, 98, 79, 52, 58, 126, 87, 81, 119, 62, 90, 109, 110, 44, 87, 122, 113, 34, 40, 89, 61, 59, 94, 115, 63, 110, 76, 36, 116, 124, 76, 91, 38, 93, 37, 43, 120, 64, 57, 124, 96, 80, 98, 74, 36, 107, 83, 84, 116, 91, 95, 50, 100, 118, 56, 93, 35, 90, 116, 75, 81, 120, 128, 128, 142, 187, 152, 249, 239, 216, 195, 1, 250, 1, 5, 13, 60, 143, 32, 63, 84, 83, 40, 119, 93, 147, 60, 89, 63, 98, 58, 125, 103, 48, 39, 75, 34, 80, 103, 42, 120, 107, 88, 52, 111, 82, 59, 119, 47, 57, 61, 58, 117, 47, 69, 70, 40, 61, 75, 109, 75, 46, 116, 104, 88, 37, 36, 67, 76, 72, 89, 46, 73, 90, 124, 75, 37, 109, 106, 65, 47, 88, 67, 66, 91, 85, 40, 87, 105, 120, 128, 176, 130, 236, 138, 235, 146, 224, 214, 1, 250, 1, 5, 13, 116, 245, 191, 62, 84, 83, 40, 89, 93, 100, 230, 107, 61, 98, 30, 120, 94, 106, 118, 110, 90, 105, 78, 118, 75, 101, 94, 47, 112, 59, 49, 121, 64, 57, 82, 42, 94, 114, 106, 81, 44, 35, 124, 75, 88, 120, 128, 208, 185, 223, 165, 153, 205, 251, 100, 250, 1, 5, 13, 227, 107, 99, 61, 84, 83, 40, 113, 93, 43, 132, 189, 61, 98, 87, 79, 122, 50, 83, 53, 51, 33, 113, 55, 44, 92, 98, 76, 100, 107, 70, 110, 63, 42, 48, 122, 58, 107, 126, 68, 98, 87, 107, 35, 61, 96, 96, 104, 38, 64, 64, 125, 70, 43, 37, 81, 56, 70, 101, 45, 109, 95, 61, 48, 36, 105, 75, 121, 100, 45, 53, 47, 51, 46, 82, 91, 52, 109, 121, 75, 123, 121, 69, 68, 75, 71, 72, 52, 36, 94, 98, 115, 37, 113, 85, 34, 57, 91, 125, 83, 52, 101, 120, 192, 222, 249, 204, 225, 243, 205, 231, 6, 250, 1, 5, 13, 240, 96, 109, 63, 84, 83, 40, 14, 93, 254, 110, 51, 62, 98, 86, 106, 55, 87, 73, 61, 73, 76, 58, 48, 115, 58, 120, 100, 92, 64, 54, 117, 37, 74, 64, 42, 64, 87, 80, 65, 88, 110, 69, 54, 54, 117, 76, 57, 58, 92, 49, 92, 90, 65, 56, 71, 105, 96, 97, 103, 64, 117, 65, 51, 125, 110, 125, 77, 105, 38, 73, 94, 38, 39, 99, 89, 38, 36, 121, 125, 108, 94, 73, 32, 47, 89, 58, 98, 49, 120, 63, 95, 117, 103, 33, 97, 77, 49, 56, 70, 118, 120, 128, 168, 225, 228, 207, 215, 138, 166, 254, 1, 250, 1, 5, 13, 103, 51, 0, 63, 84, 83, 40, 27, 93, 243, 213, 72, 62, 98, 63, 81, 85, 83, 92, 93, 64, 101, 102, 99, 121, 96, 76, 65, 36, 67, 84, 59, 59, 111, 102, 104, 104, 62, 37, 34, 44, 116, 106, 82, 39, 110, 46, 52, 108, 92, 36, 102, 38, 83, 87, 89, 120, 50, 109, 63, 52, 43, 45, 115, 113, 90, 98, 94, 77, 72, 104, 55, 77, 90, 81, 75, 121, 51, 120, 128, 168, 138, 134, 250, 190, 210, 176, 208, 1, 250, 1, 5, 13, 122, 166, 242, 61, 84, 83, 40, 66, 93, 94, 248, 124, 62, 98, 60, 83, 71, 63, 109, 53, 103, 56, 45, 111, 86, 79, 101, 108, 32, 102, 118, 96, 75, 44, 79, 102, 67, 115, 107, 56, 74, 33, 43, 94, 101, 85, 98, 108, 124, 87, 101, 84, 36, 69, 121, 70, 64, 88, 50, 102, 103, 108, 81, 99, 35, 81, 48, 126, 34, 79, 48, 83, 82, 84, 105, 120, 128, 152, 188, 183, 248, 183, 225, 187, 94, 250, 1, 5, 13, 168, 155, 6, 62, 84, 83, 40, 60, 93, 117, 225, 211, 61, 98, 76, 32, 108, 119, 111, 72, 33, 65, 92, 37, 49, 40, 70, 106, 97, 37, 80, 93, 79, 70, 91, 51, 69, 99, 106, 76, 70, 50, 33, 78, 91, 51, 58, 113, 78, 49, 121, 111, 124, 41, 98, 96, 116, 42, 108, 121, 41, 69, 113, 77, 36, 43, 54, 100, 113, 117, 90, 41, 45, 66, 33, 110, 64, 45, 72, 124, 109, 83, 59, 79, 42, 96, 96, 70, 99, 121, 62, 120, 128, 144, 200, 192, 132, 135, 193, 132, 164, 1, 250, 1, 5, 13, 168, 135, 101, 63, 84, 83, 40, 107, 93, 198, 173, 190, 62, 98, 63, 33, 63, 83, 74, 80, 124, 84, 32, 88, 85, 112, 98, 89, 39, 114, 64, 102, 96, 111, 43, 84, 41, 65, 67, 67, 74, 111, 33, 119, 87, 63, 50, 59, 126, 32, 78, 108, 98, 119, 32, 57, 83, 97, 120, 56, 125, 38, 62, 111, 89, 86, 89, 37, 100, 109, 118, 125, 48, 39, 37, 44, 83, 39, 120, 192, 185, 255, 157, 192, 204, 251, 239, 129, 1, 250, 1, 10, 13, 153, 131, 112, 62, 29, 114, 45, 38, 63, 84, 83, 40, 50, 93, 60, 145, 30, 63, 98, 78, 39, 68, 83, 35, 103, 110, 113, 32, 71, 71, 42, 69, 68, 80, 48, 62, 32, 101, 45, 86, 48, 40, 80, 91, 91, 114, 114, 101, 75, 96, 98, 90, 86, 74, 55, 75, 37, 82, 112, 54, 114, 109, 79, 85, 38, 97, 96, 91, 66, 104, 33, 79, 80, 110, 74, 125, 115, 118, 71, 116, 123, 44, 83, 101, 100, 78, 109, 120, 57, 100, 56, 76, 116, 117, 98, 65, 88, 121, 120, 128, 160, 150, 136, 201, 130, 178, 193, 200, 1, 250, 1, 5, 13, 250, 188, 112, 63, 84, 83, 40, 24, 93, 6, 212, 123, 62, 98, 71, 66, 98, 95, 50, 41, 103, 126, 56, 87, 46, 43, 123, 57, 102, 57, 104, 112, 86, 114, 102, 66, 93, 80, 83, 90, 89, 44, 40, 69, 121, 64, 77, 98, 99, 104, 112, 38, 81, 69, 38, 121, 32, 45, 42, 64, 119, 91, 123, 40, 110, 40, 126, 38, 74, 116, 100, 49, 43, 86, 78, 90, 118, 113, 93, 108, 93, 57, 85, 124, 71, 98, 120, 128, 144, 191, 155, 149, 245, 248, 219, 169, 1, 250, 1, 5, 13, 248, 0, 53, 62, 84, 83, 40, 102, 93, 224, 158, 77, 63, 98, 63, 65, 80, 69, 51, 97, 124, 48, 126, 85, 112, 65, 70, 55, 110, 36, 95, 121, 121, 117, 74, 35, 45, 79, 60, 98, 94, 38, 125, 96, 44, 104, 109, 56, 93, 82, 51, 106, 119, 116, 80, 74, 118, 59, 107, 75, 54, 33, 101, 120, 103, 103, 68, 58, 66, 105, 51, 33, 40, 79, 35, 118, 49, 62, 120, 128, 160, 136, 251, 246, 248, 193, 216, 183, 1, 250, 1, 10, 13, 199, 97, 172, 61, 29, 242, 25, 7, 63, 84, 83, 40, 18, 93, 234, 95, 25, 63, 98, 61, 60, 111, 115, 34, 37, 68, 126, 43, 112, 98, 112, 75, 93, 64, 37, 120, 68, 68, 83, 117, 115, 62, 50, 97, 71, 113, 89, 56, 87, 113, 99, 120, 41, 71, 73, 40, 114, 100, 62, 116, 66, 93, 65, 61, 55, 36, 68, 86, 44, 69, 36, 98, 125, 55, 100, 124, 93, 49, 89, 51, 105, 120, 128, 128, 137, 230, 219, 152, 200, 176, 222, 1, 250, 1, 5, 13, 251, 184, 10, 63, 84, 83, 40, 126, 93, 246, 131, 125, 63, 98, 77, 119, 66, 53, 117, 123, 37, 94, 37, 93, 83, 53, 123, 115, 74, 67, 76, 35, 44, 50, 108, 32, 121, 113, 98, 76, 74, 97, 42, 42, 42, 91, 41, 66, 62, 63, 96, 47, 95, 48, 64, 68, 92, 63, 98, 78, 32, 104, 101, 54, 102, 101, 89, 65, 49, 125, 124, 80, 82, 73, 81, 67, 83, 121, 83, 119, 44, 89, 85, 43, 97, 60, 67, 122, 113, 71, 67, 90, 120, 128, 246, 226, 133, 170, 175, 151, 174, 20, 250, 1, 10, 13, 158, 220, 80, 62, 29, 4, 10, 236, 62, 84, 83, 40, 86, 93, 209, 144, 115, 63, 98, 86, 115, 67, 67, 33, 103, 49, 64, 65, 48, 92, 54, 93, 123, 111, 97, 107, 106, 66, 70, 51, 90, 83, 73, 66, 94, 79, 104, 90, 66, 65, 62, 124, 111, 71, 95, 86, 47, 117, 67, 72, 52, 105, 80, 95, 44, 60, 116, 86, 96, 109, 66, 111, 37, 77, 63, 64, 120, 33, 66, 56, 71, 101, 126, 110, 61, 56, 109, 84, 48, 43, 92, 115, 125, 125, 125, 112, 34, 105, 53, 65, 90, 49, 121, 83, 125, 77, 120, 128, 192, 254, 130, 206, 255, 243, 151, 117, 250, 1, 5, 13, 71, 77, 183, 62, 84, 83, 40, 10, 93, 117, 172, 166, 62, 98, 55, 93, 45, 83, 43, 32, 78, 105, 97, 65, 114, 78, 63, 70, 84, 49, 78, 113, 39, 78, 78, 61, 46, 106, 33, 93, 53, 107, 74, 111, 110, 65, 75, 76, 112, 77, 78, 64, 114, 124, 78, 38, 63, 72, 66, 113, 58, 106, 68, 66, 79, 91, 111, 114, 88, 33, 120, 128, 192, 177, 237, 167, 128, 140, 235, 190, 1, 250, 1, 5, 13, 107, 5, 187, 62, 84, 83, 40, 67, 93, 149, 93, 245, 62, 98, 63, 106, 98, 63, 113, 81, 81, 35, 114, 84, 39, 98, 46, 126, 42, 126, 72, 124, 100, 72, 46, 66, 73, 70, 40, 63, 50, 80, 88, 115, 111, 125, 43, 108, 68, 49, 107, 101, 77, 118, 111, 110, 71, 54, 60, 95, 65, 92, 101, 114, 47, 35, 104, 121, 68, 42, 64, 59, 55, 81, 62, 33, 73, 125, 120, 128, 200, 173, 183, 219, 195, 236, 186, 219, 1, 250, 1, 10, 13, 207, 152, 193, 61, 29, 156, 91, 18, 63, 84, 83, 40, 43, 93, 182, 34, 27, 63, 98, 67, 119, 51, 97, 79, 109, 87, 63, 122, 51, 42, 72, 125, 85, 106, 101, 99, 107, 52, 49, 72, 57, 112, 80, 78, 122, 87, 110, 68, 72, 81, 51, 40, 32, 35, 109, 94, 77, 83, 121, 65, 36, 46, 45, 48, 109, 83, 104, 54, 99, 57, 119, 115, 69, 119, 63, 39, 98, 50, 83, 54, 104, 122, 82, 96, 117, 63, 125, 120, 128, 152, 135, 131, 242, 176, 185, 152, 68, 250, 1, 5, 13, 27, 116, 119, 63, 84, 83, 40, 8, 93, 237, 167, 113, 62, 98, 80, 55, 57, 110, 67, 43, 98, 63, 96, 71, 110, 87, 95, 46, 89, 63, 98, 39, 98, 102, 123, 58, 32, 99, 88, 41, 91, 75, 58, 78, 84, 54, 57, 93, 35, 95, 89, 85, 83, 52, 67, 66, 81, 43, 71, 48, 58, 68, 39, 86, 91, 117, 110, 53, 41, 122, 55, 85, 54, 57, 78, 55, 37, 49, 114, 88, 62, 34, 43, 120, 101, 44, 83, 77, 66, 89, 104, 116, 60, 71, 110, 120, 128, 154, 184, 145, 156, 219, 193, 139, 32, 250, 1, 5, 13, 125, 54, 191, 62, 84, 83, 40, 89, 93, 15, 61, 91, 63, 98, 40, 94, 70, 35, 83, 39, 72, 35, 63, 57, 100, 43, 61, 63, 56, 110, 113, 56, 56, 46, 112, 79, 66, 65, 113, 79, 50, 66, 57, 109, 74, 55, 115, 65, 63, 51, 49, 58, 77, 35, 80, 120, 128, 248, 240, 146, 145, 227, 135, 151, 88, 250, 1, 5, 13, 213, 118, 77, 63, 84, 83, 40, 33, 93, 62, 60, 66, 63, 98, 44, 55, 59, 73, 91, 77, 84, 86, 125, 53, 113, 66, 60, 37, 48, 36, 116, 38, 105, 80, 110, 77, 55, 123, 126, 36, 92, 86, 105, 53, 93, 46, 97, 40, 87, 90, 52, 103, 101, 107, 57, 115, 57, 93, 78, 120, 128, 232, 197, 197, 244, 179, 174, 172, 124, 250, 1, 5, 13, 120, 232, 104, 63, 84, 83, 40, 17, 93, 78, 119, 218, 61, 98, 39, 73, 45, 73, 118, 59, 74, 58, 126, 63, 73, 87, 111, 125, 107, 103, 86, 98, 95, 51, 76, 85, 110, 44, 64, 125, 55, 121, 51, 88, 76, 34, 45, 79, 76, 64, 40, 51, 55, 70, 120, 128, 240, 159, 178, 240, 165, 255, 145, 83, 250, 1, 10, 13, 128, 135, 156, 62, 29, 6, 29, 30, 63, 84, 83, 40, 112, 93, 154, 89, 165, 62, 98, 62, 46, 122, 58, 40, 80, 39, 106, 60, 98, 95, 84, 89, 32, 41, 119, 36, 79, 39, 70, 113, 70, 73, 64, 81, 75, 95, 67, 75, 57, 85, 47, 121, 121, 109, 49, 35, 124, 113, 98, 81, 96, 100, 73, 110, 119, 101, 40, 41, 62, 66, 45, 54, 52, 34, 119, 99, 89, 104, 91, 112, 98, 63, 120, 192, 235, 238, 202, 224, 218, 246, 214, 132, 1, 250, 1, 10, 13, 52, 55, 21, 62, 29, 115, 35, 3, 63, 84, 83, 40, 77, 93, 237, 168, 40, 63, 98, 27, 50, 119, 115, 38, 93, 67, 116, 48, 96, 32, 81, 88, 100, 86, 57, 44, 118, 71, 120, 101, 119, 117, 77, 73, 51, 53, 112, 120, 128, 136, 146, 208, 242, 207, 144, 129, 105, 250, 1, 12, 13, 25, 157, 179, 62, 29, 149, 19, 48, 63, 56, 0, 84, 83, 40, 39, 93, 83, 46, 160, 62, 98, 63, 39, 117, 49, 74, 59, 79, 113, 62, 113, 54, 99, 40, 47, 118, 57, 72, 51, 44, 101, 87, 115, 102, 59, 73, 74, 114, 71, 82, 38, 110, 126, 99, 51, 59, 93, 96, 39, 97, 91, 119, 38, 70, 38, 95, 105, 64, 35, 62, 86, 68, 45, 85, 85, 101, 73, 63, 89, 102, 126, 71, 39, 62, 56, 120, 160, 212, 141, 191, 244, 161, 237, 248, 4, 250, 1, 5, 13, 37, 44, 117, 62, 84, 83, 40, 125, 93, 61, 10, 99, 63, 98, 76, 115, 56, 87, 65, 81, 80, 109, 80, 76, 95, 91, 95, 42, 110, 41, 122, 96, 96, 73, 46, 76, 112, 61, 39, 63, 98, 51, 111, 103, 45, 35, 72, 105, 75, 47, 37, 126, 35, 91, 36, 102, 52, 123, 94, 124, 39, 115, 88, 124, 67, 87, 65, 108, 111, 71, 34, 122, 80, 33, 110, 60, 124, 104, 63, 92, 51, 116, 93, 94, 36, 123, 92, 36, 68, 71, 56, 120, 128, 216, 238, 136, 244, 235, 245, 198, 113, 250, 1, 5, 13, 108, 152, 38, 63, 84, 83, 40, 13, 93, 82, 213, 132, 62, 98, 62, 109, 89, 114, 67, 85, 96, 90, 121, 36, 44, 42, 77, 34, 108, 102, 105, 74, 92, 34, 105, 49, 53, 120, 120, 71, 121, 61, 71, 72, 46, 45, 60, 70, 103, 32, 98, 42, 69, 104, 123, 87, 122, 89, 82, 120, 77, 90, 54, 92, 93, 108, 55, 91, 63, 39, 87, 96, 120, 123, 91, 67, 51, 120, 128, 216, 230, 175, 200, 163, 181, 254, 194, 1, 250, 1, 5, 13, 242, 146, 98, 63, 84, 83, 40, 125, 93, 36, 203, 79, 63, 98, 64, 39, 57, 107, 36, 94, 37, 114, 38, 49, 54, 91, 69, 126, 120, 62, 38, 105, 105, 65, 116, 95, 38, 96, 72, 33, 48, 72, 45, 87, 68, 72, 100, 83, 43, 70, 64, 73, 87, 125, 102, 68, 85, 46, 111, 123, 58, 121, 35, 60, 60, 72, 102, 82, 40, 45, 33, 88, 67, 35, 77, 92, 101, 77, 108, 120, 128, 176, 187, 251, 156, 137, 219, 219, 231, 1, 250, 1, 12, 13, 63, 201, 101, 63, 29, 93, 217, 90, 63, 56, 1, 84, 83, 40, 66, 93, 102, 220, 123, 63, 98, 56, 91, 50, 107, 90, 80, 42, 118, 111, 76, 102, 54, 69, 111, 59, 123, 96, 50, 74, 125, 69, 103, 38, 84, 80, 41, 93, 40, 65, 34, 37, 72, 38, 80, 61, 95, 54, 122, 119, 87, 35, 41, 103, 118, 59, 54, 55, 116, 50, 112, 44, 98, 70, 116, 44, 54, 85, 120, 128, 248, 249, 183, 152, 225, 207, 191, 81, 250, 1, 5, 13, 129, 25, 146, 62, 84, 83, 40, 64, 93, 146, 41, 93, 63, 98, 67, 33, 85, 108, 70, 61, 48, 115, 81, 90, 100, 100, 57, 114, 121, 59, 126, 47, 56, 57, 113, 103, 117, 80, 117, 65, 33, 49, 67, 39, 42, 88, 95, 71, 100, 33, 82, 122, 79, 124, 38, 66, 67, 86, 43, 70, 73, 82, 121, 112, 55, 70, 67, 33, 93, 42, 43, 37, 118, 36, 60, 126, 80, 74, 80, 43, 37, 113, 120, 128, 166, 139, 208, 188, 183, 218, 128, 20, 250, 1, 5, 13, 210, 137, 110, 63, 84, 83, 40, 96, 93, 209, 23, 27, 61, 98, 27, 94, 58, 51, 79, 68, 62, 69, 79, 119, 77, 54, 82, 111, 99, 53, 93, 104, 89, 116, 77, 36, 75, 96, 38, 112, 120, 38, 120, 128, 232, 178, 237, 207, 175, 150, 235, 126, 250, 1, 12, 13, 212, 128, 177, 62, 29, 241, 102, 18, 63, 56, 0, 84, 83, 40, 1, 93, 67, 64, 175, 61, 98, 60, 51, 102, 40, 109, 46, 101, 108, 94, 70, 43, 109, 103, 125, 89, 107, 117, 70, 41, 83, 35, 57, 126, 50, 89, 44, 93, 75, 56, 70, 46, 65, 41, 53, 74, 91, 123, 45, 111, 89, 115, 40, 110, 92, 64, 114, 61, 114, 62, 57, 40, 121, 77, 112, 124, 109, 52, 83, 78, 96, 80, 120, 128, 184, 167, 181, 212, 179, 187, 170, 163, 1, 250, 1, 5, 13, 129, 237, 11, 63, 84, 83, 40, 32, 93, 36, 6, 134, 62, 98, 86, 104, 100, 82, 82, 125, 111, 103, 85, 78, 95, 121, 74, 65, 113, 101, 109, 105, 44, 125, 61, 51, 115, 55, 56, 92, 70, 71, 94, 47, 41, 89, 83, 85, 67, 86, 46, 106, 63, 63, 73, 63, 67, 125, 49, 34, 66, 113, 97, 103, 113, 102, 45, 85, 122, 37, 116, 76, 57, 117, 86, 71, 41, 70, 68, 37, 70, 116, 125, 59, 86, 34, 73, 107, 83, 124, 111, 116, 38, 54, 57, 83, 101, 117, 60, 66, 75, 120, 128, 144, 132, 218, 191, 132, 161, 208, 253, 1, 250, 1, 5, 13, 46, 40, 29, 63, 84, 83, 40, 40, 93, 232, 172, 47, 63, 98, 72, 97, 81, 73, 104, 33, 54, 123, 89, 43, 91, 77, 115, 70, 48, 110, 61, 64, 33, 124, 52, 126, 69, 35, 92, 34, 97, 51, 42, 34, 89, 71, 57, 94, 88, 116, 80, 32, 35, 81, 102, 114, 59, 122, 90, 107, 94, 63, 100, 76, 37, 43, 123, 92, 41, 97, 60, 78, 107, 101, 63, 35, 113, 86, 81, 51, 51, 53, 108, 59, 62, 61, 61, 120, 128, 176, 182, 240, 252, 148, 179, 131, 64, 250, 1, 5, 13, 162, 216, 117, 62, 84, 83, 40, 43, 93, 24, 26, 53, 63, 98, 68, 73, 71, 111, 66, 66, 77, 92, 124, 77, 75, 92, 84, 118, 88, 33, 51, 60, 50, 98, 33, 100, 72, 70, 87, 73, 81, 73, 46, 103, 108, 76, 69, 104, 125, 113, 38, 123, 67, 124, 85, 53, 88, 35, 102, 85, 96, 116, 98, 60, 41, 32, 61, 82, 63, 126, 33, 33, 55, 120, 111, 35, 77, 53, 96, 126, 54, 107, 120, 120, 128, 216, 162, 185, 172, 193, 149, 202, 94, 250, 1, 5, 13, 3, 170, 115, 63, 84, 83, 40, 30, 93, 58, 19, 110, 63, 98, 79, 52, 45, 106, 43, 69, 94, 34, 104, 92, 102, 113, 93, 108, 47, 113, 72, 126, 112, 37, 99, 74, 45, 81, 102, 67, 66, 103, 63, 115, 123, 123, 64, 114, 39, 40, 69, 84, 114, 90, 65, 53, 47, 51, 59, 91, 87, 114, 111, 68, 67, 121, 116, 116, 82, 78, 38, 90, 35, 103, 35, 118, 97, 115, 95, 106, 80, 106, 100, 38, 76, 115, 43, 53, 99, 77, 58, 121, 54, 43, 120, 128, 192, 145, 223, 243, 142, 140, 249, 100, 250, 1, 5, 13, 107, 50, 251, 62, 84, 83, 40, 116, 93, 31, 123, 114, 63, 98, 45, 80, 34, 38, 74, 63, 88, 33, 105, 80, 43, 87, 74, 82, 59, 82, 79, 43, 108, 45, 104, 118, 78, 109, 95, 49, 36, 52, 44, 68, 119, 123, 83, 125, 102, 66, 92, 100, 37, 74, 44, 36, 98, 66, 126, 92, 120, 128, 136, 249, 155, 244, 194, 200, 223, 161, 1, 250, 1, 5, 13, 250, 50, 114, 63, 84, 83, 40, 125, 93, 20, 248, 207, 62, 98, 23, 101, 126, 125, 64, 46, 35, 33, 51, 69, 57, 59, 67, 115, 68, 87, 47, 36, 75, 106, 119, 116, 106, 38, 120, 128, 152, 205, 220, 181, 207, 233, 228, 173, 1, 250, 1, 12, 13, 30, 97, 57, 60, 29, 126, 145, 55, 63, 56, 0, 84, 83, 40, 15, 93, 237, 51, 83, 63, 98, 48, 34, 119, 41, 52, 101, 94, 119, 124, 50, 111, 99, 65, 72, 62, 107, 47, 103, 47, 62, 106, 110, 88, 108, 46, 38, 80, 121, 120, 91, 63, 73, 110, 117, 68, 67, 64, 49, 46, 46, 100, 94, 49, 112, 91, 39, 86, 76, 75, 120, 128, 244, 189, 235, 209, 132, 239, 219, 35, 250, 1, 5, 13, 67, 50, 72, 62, 84, 83, 40, 32, 93, 92, 70, 13, 63, 98, 75, 117, 64, 126, 72, 43, 121, 46, 52, 99, 126, 65, 114, 69, 116, 75, 36, 122, 74, 125, 89, 32, 88, 43, 93, 103, 49, 39, 79, 36, 77, 94, 72, 39, 116, 120, 84, 68, 121, 53, 54, 32, 121, 32, 95, 111, 125, 53, 50, 42, 71, 80, 110, 52, 94, 83, 60, 52, 65, 96, 120, 114, 93, 47, 54, 63, 119, 106, 80, 123, 117, 94, 32, 53, 102, 88, 120, 128, 207, 188, 138, 161, 249, 228, 211, 136, 1, 250, 1, 5, 13, 151, 145, 22, 63, 84, 83, 40, 57, 93, 193, 4, 79, 63, 98, 45, 104, 122, 116, 68, 91, 124, 111, 52, 72, 64, 91, 64, 35, 57, 59, 66, 66, 105, 105, 64, 118, 50, 100, 53, 52, 104, 79, 88, 76, 37, 77, 99, 104, 83, 118, 125, 125, 56, 83, 56, 78, 99, 66, 47, 63, 120, 128, 192, 231, 147, 164, 162, 188, 158, 72, 250, 1, 5, 13, 50, 14, 31, 63, 84, 83, 40, 94, 93, 118, 39, 112, 63, 98, 47, 67, 53, 60, 109, 43, 117, 86, 54, 94, 48, 114, 76, 54, 102, 66, 114, 118, 86, 78, 65, 61, 68, 42, 54, 80, 112, 51, 111, 84, 117, 94, 45, 104, 94, 40, 111, 49, 117, 93, 93, 64, 103, 62, 39, 96, 107, 55, 120, 128, 160, 193, 195, 188, 145, 138, 156, 123, 250, 1, 5, 13, 43, 200, 127, 63, 84, 83, 40, 38, 93, 214, 180, 215, 62, 98, 59, 125, 44, 68, 91, 125, 42, 37, 60, 57, 98, 101, 96, 104, 81, 100, 99, 87, 94, 81, 97, 33, 120, 112, 33, 85, 38, 34, 84, 100, 88, 54, 111, 55, 77, 95, 33, 67, 34, 41, 100, 43, 88, 67, 122, 89, 38, 85, 85, 122, 40, 95, 61, 77, 90, 70, 36, 59, 67, 38, 120, 128, 152, 162, 142, 128, 213, 145, 242, 117, 250, 1, 5, 13, 133, 79, 173, 61, 84, 83, 40, 64, 93, 55, 65, 20, 63, 98, 64, 96, 75, 117, 72, 59, 112, 99, 63, 84, 84, 108, 85, 71, 85, 116, 70, 78, 80, 76, 89, 92, 120, 120, 66, 92, 38, 91, 100, 126, 122, 49, 92, 90, 33, 97, 79, 98, 92, 57, 100, 54, 103, 42, 104, 96, 36, 126, 78, 69, 123, 87, 71, 91, 117, 121, 103, 81, 83, 107, 52, 53, 126, 64, 89, 120, 128, 176, 160, 217, 155, 254, 130, 202, 47, 250, 1, 10, 13, 44, 6, 37, 62, 29, 46, 108, 116, 63, 84, 83, 40, 50, 93, 242, 109, 94, 63, 98, 60, 69, 99, 113, 54, 102, 67, 116, 109, 48, 97, 87, 39, 45, 63, 34, 67, 105, 33, 99, 39, 121, 124, 47, 111, 36, 79, 55, 71, 80, 69, 80, 40, 88, 90, 126, 56, 100, 48, 115, 82, 37, 120, 65, 113, 51, 45, 39, 94, 61, 53, 88, 45, 54, 62, 119, 72, 83, 33, 49, 55, 120, 128, 175, 218, 247, 225, 249, 210, 189, 143, 1, 250, 1, 5, 13, 24, 4, 241, 62, 84, 83, 40, 38, 93, 35, 24, 72, 63, 98, 50, 48, 78, 78, 81, 63, 104, 93, 88, 45, 49, 33, 32, 91, 61, 91, 118, 71, 87, 41, 58, 107, 67, 113, 57, 97, 86, 100, 99, 125, 92, 70, 87, 92, 86, 96, 100, 94, 85, 63, 83, 87, 126, 32, 37, 60, 119, 107, 54, 68, 58, 120, 128, 168, 198, 191, 172, 152, 178, 252, 105, 250, 1, 5, 13, 207, 199, 8, 63, 84, 83, 40, 46, 93, 191, 90, 175, 60, 98, 27, 125, 108, 92, 52, 110, 103, 36, 121, 90, 79, 105, 72, 67, 37, 91, 118, 55, 113, 56, 85, 98, 108, 66, 107, 123, 105, 105, 120, 128, 236, 158, 224, 183, 225, 246, 129, 190, 1, 250, 1, 10, 13, 196, 249, 162, 62, 29, 20, 105, 52, 63, 84, 83, 40, 102, 93, 32, 239, 95, 63, 98, 59, 52, 90, 87, 115, 39, 73, 101, 86, 79, 92, 68, 79, 58, 115, 83, 102, 89, 77, 34, 124, 58, 108, 62, 49, 73, 112, 55, 37, 124, 85, 91, 118, 97, 117, 51, 104, 76, 103, 111, 108, 43, 96, 37, 37, 71, 114, 80, 40, 53, 34, 115, 111, 96, 111, 88, 71, 59, 69, 73, 120, 128, 216, 172, 233, 219, 201, 229, 202, 30, 250, 1, 5, 13, 26, 45, 67, 62, 84, 83, 40, 86, 93, 12, 211, 25, 63, 98, 51, 120, 33, 77, 108, 68, 95, 106, 58, 112, 93, 53, 113, 89, 103, 56, 104, 86, 63, 47, 110, 121, 96, 106, 54, 113, 60, 107, 76, 38, 61, 89, 90, 73, 39, 43, 36, 121, 37, 44, 72, 74, 103, 34, 50, 74, 125, 126, 94, 35, 92, 114, 120, 128, 224, 167, 203, 236, 245, 189, 218, 115, 250, 1, 5, 13, 229, 63, 237, 60, 84, 83, 40, 108, 93, 44, 128, 39, 63, 98, 77, 56, 54, 54, 122, 39, 114, 61, 51, 82, 36, 89, 71, 81, 91, 52, 110, 80, 50, 102, 67, 50, 94, 87, 106, 115, 61, 44, 73, 73, 74, 98, 87, 87, 72, 114, 108, 98, 42, 37, 84, 44, 84, 78, 46, 112, 85, 76, 35, 109, 108, 66, 99, 59, 77, 76, 89, 93, 75, 38, 104, 101, 115, 104, 40, 64, 33, 110, 41, 103, 70, 43, 69, 45, 49, 54, 92, 47, 120, 128, 188, 208, 253, 198, 222, 131, 237, 183, 1, 250, 1, 5, 13, 182, 210, 111, 63, 84, 83, 40, 39, 93, 90, 35, 88, 63, 98, 61, 41, 90, 91, 40, 126, 60, 42, 123, 57, 47, 55, 36, 59, 110, 56, 106, 70, 108, 110, 101, 66, 58, 71, 97, 123, 85, 42, 54, 110, 73, 52, 81, 103, 119, 91, 56, 44, 32, 65, 100, 100, 45, 78, 55, 115, 65, 112, 66, 125, 112, 104, 92, 42, 86, 77, 110, 51, 121, 43, 72, 50, 120, 128, 224, 182, 131, 238, 248, 181, 155, 240, 1, 250, 1, 5, 13, 254, 25, 8, 62, 84, 83, 40, 105, 93, 242, 212, 114, 63, 98, 64, 101, 59, 67, 50, 32, 94, 69, 74, 42, 33, 52, 107, 47, 109, 90, 100, 103, 56, 124, 96, 87, 71, 49, 73, 108, 36, 50, 115, 120, 82, 112, 33, 94, 60, 45, 38, 77, 47, 124, 50, 66, 49, 126, 85, 57, 35, 35, 44, 80, 99, 74, 91, 47, 46, 67, 61, 41, 120, 68, 122, 75, 80, 81, 87, 120, 128, 242, 206, 226, 210, 138, 247, 148, 150, 1, 250, 1, 5, 13, 186, 104, 80, 62, 84, 83, 40, 16, 93, 131, 135, 94, 63, 98, 61, 95, 83, 54, 87, 58, 105, 62, 69, 71, 90, 48, 105, 33, 38, 67, 53, 40, 52, 113, 80, 120, 111, 123, 83, 106, 33, 102, 112, 95, 71, 68, 37, 117, 48, 75, 123, 76, 113, 64, 68, 110, 124, 117, 78, 103, 89, 121, 69, 45, 59, 79, 122, 65, 90, 121, 111, 87, 98, 107, 56, 35, 120, 128, 220, 165, 200, 247, 210, 173, 194, 188, 1, 250, 1, 5, 13, 178, 151, 58, 63, 84, 83, 40, 0, 93, 174, 128, 108, 62, 98, 92, 42, 114, 111, 89, 71, 104, 53, 115, 77, 96, 122, 121, 77, 106, 48, 39, 64, 99, 67, 118, 73, 99, 59, 53, 91, 67, 105, 37, 40, 64, 65, 55, 116, 56, 93, 101, 41, 106, 101, 82, 58, 39, 115, 120, 125, 117, 42, 118, 91, 49, 97, 104, 65, 41, 107, 70, 87, 90, 125, 35, 126, 47, 106, 44, 63, 99, 36, 52, 45, 73, 124, 85, 125, 112, 92, 65, 111, 65, 55, 101, 57, 113, 73, 118, 93, 88, 116, 107, 75, 55, 46, 78, 120, 128, 160, 240, 230, 252, 157, 130, 183, 230, 1, 250, 1, 5, 13, 196, 63, 49, 63, 84, 83, 40, 67, 93, 96, 146, 236, 61, 98, 49, 59, 102, 89, 57, 112, 116, 104, 49, 51, 44, 106, 79, 75, 73, 85, 54, 67, 56, 104, 44, 100, 115, 77, 102, 109, 56, 104, 117, 59, 78, 104, 59, 61, 81, 38, 40, 102, 124, 116, 67, 41, 55, 98, 81, 108, 68, 63, 33, 96, 120, 128, 144, 248, 190, 211, 141, 193, 247, 116, 250, 1, 5, 13, 122, 82, 243, 61, 84, 83, 40, 69, 93, 218, 165, 108, 63, 98, 43, 70, 69, 70, 57, 114, 75, 87, 44, 113, 117, 99, 66, 79, 49, 121, 67, 76, 78, 69, 67, 69, 34, 77, 48, 122, 120, 72, 120, 102, 53, 67, 67, 52, 66, 118, 44, 94, 110, 114, 81, 60, 55, 55, 120, 128, 180, 166, 173, 174, 157, 179, 234, 44, 250, 1, 5, 13, 125, 14, 125, 63, 84, 83, 40, 20, 93, 1, 59, 155, 62, 98, 43, 50, 69, 93, 52, 71, 100, 48, 82, 67, 119, 53, 61, 120, 34, 94, 68, 92, 82, 64, 45, 45, 58, 109, 100, 92, 91, 115, 38, 45, 106, 44, 50, 107, 91, 53, 83, 41, 32, 122, 93, 35, 110, 82, 120, 128, 196, 226, 237, 136, 157, 148, 238, 27, 250, 1, 5, 13, 188, 11, 218, 62, 84, 83, 40, 65, 93, 86, 223, 111, 63, 98, 34, 78, 92, 114, 89, 109, 93, 33, 47, 119, 86, 119, 86, 107, 111, 42, 69, 88, 106, 35, 81, 60, 107, 43, 58, 91, 86, 97, 42, 61, 102, 89, 59, 43, 97, 120, 128, 196, 232, 159, 198, 164, 196, 254, 177, 1, 250, 1, 5, 13, 117, 26, 220, 62, 84, 83, 40, 35, 93, 163, 154, 54, 62, 98, 43, 61, 83, 105, 76, 61, 123, 48, 73, 46, 109, 120, 73, 121, 72, 68, 32, 92, 98, 81, 87, 125, 55, 122, 118, 113, 48, 124, 91, 75, 42, 74, 96, 42, 71, 76, 78, 102, 111, 77, 46, 42, 50, 71, 120, 128, 176, 157, 140, 222, 242, 234, 225, 240, 1, 250, 1, 5, 13, 179, 235, 51, 62, 84, 83, 40, 110, 93, 28, 165, 77, 63, 98, 40, 48, 118, 43, 36, 97, 118, 98, 50, 38, 88, 114, 89, 44, 125, 84, 125, 36, 66, 56, 62, 82, 122, 116, 56, 107, 52, 66, 77, 107, 110, 38, 101, 125, 67, 107, 100, 63, 37, 103, 105, 120, 128, 152, 183, 194, 220, 183, 185, 147, 54, 250, 1, 5, 13, 183, 244, 91, 62, 84, 83, 40, 50, 93, 120, 216, 101, 63, 98, 84, 114, 53, 64, 48, 85, 51, 67, 80, 119, 84, 57, 53, 33, 113, 56, 77, 83, 53, 70, 55, 82, 45, 91, 104, 49, 110, 93, 125, 90, 78, 117, 62, 84, 126, 69, 85, 114, 50, 118, 87, 75, 84, 108, 73, 41, 86, 99, 77, 108, 58, 53, 50, 108, 46, 67, 101, 89, 87, 125, 101, 84, 69, 117, 73, 93, 122, 95, 34, 76, 98, 89, 65, 61, 109, 107, 124, 63, 50, 95, 90, 43, 48, 49, 63, 120, 128, 156, 198, 153, 196, 231, 177, 204, 161, 1, 250, 1, 5, 13, 254, 230, 52, 63, 84, 83, 40, 64, 93, 146, 198, 204, 62, 98, 94, 91, 94, 122, 59, 52, 49, 34, 38, 93, 67, 106, 45, 118, 96, 32, 42, 96, 114, 116, 125, 66, 69, 69, 71, 118, 67, 90, 68, 52, 86, 48, 121, 74, 57, 69, 108, 102, 62, 45, 43, 107, 101, 62, 122, 70, 81, 98, 73, 48, 38, 94, 69, 109, 81, 35, 53, 56, 83, 67, 111, 86, 93, 113, 39, 51, 111, 97, 93, 59, 50, 67, 66, 101, 104, 50, 92, 39, 74, 32, 68, 95, 48, 51, 45, 118, 106, 43, 120, 53, 48, 83, 50, 121, 60, 120, 128, 248, 253, 243, 232, 209, 239, 159, 199, 1, 250, 1, 5, 13, 177, 131, 19, 62, 84, 83, 40, 110, 93, 49, 20, 116, 62, 98, 43, 103, 86, 111, 37, 46, 124, 98, 60, 94, 37, 62, 70, 46, 109, 82, 126, 47, 69, 73, 99, 48, 71, 100, 104, 71, 42, 93, 48, 71, 72, 51, 36, 104, 111, 97, 73, 84, 90, 34, 54, 73, 90, 43, 120, 128, 135, 139, 141, 241, 180, 216, 232, 136, 1, 250, 1, 10, 13, 220, 202, 27, 63, 29, 9, 72, 84, 63, 84, 83, 40, 3, 93, 200, 130, 58, 63, 98, 49, 94, 122, 44, 47, 99, 47, 38, 63, 113, 38, 93, 35, 62, 82, 115, 54, 112, 57, 92, 61, 43, 41, 73, 84, 66, 51, 58, 84, 60, 93, 46, 87, 40, 119, 80, 76, 59, 35, 64, 89, 105, 66, 87, 77, 124, 126, 118, 117, 101, 120, 128, 232, 224, 230, 169, 214, 134, 182, 113, 250, 1, 5, 13, 132, 9, 97, 62, 84, 83, 40, 43, 93, 35, 146, 66, 62, 98, 46, 100, 89, 85, 80, 87, 108, 79, 115, 80, 35, 51, 119, 37, 122, 69, 33, 71, 121, 108, 119, 35, 83, 104, 81, 122, 87, 67, 59, 67, 110, 71, 72, 109, 69, 67, 62, 122, 123, 99, 54, 112, 100, 56, 63, 67, 85, 120, 128, 208, 185, 204, 206, 138, 205, 227, 244, 1, 250, 1, 5, 13, 50, 129, 25, 61, 84, 83, 40, 65, 93, 103, 54, 98, 63, 98, 94, 62, 121, 71, 71, 46, 49, 111, 36, 84, 32, 72, 52, 79, 97, 90, 105, 41, 95, 87, 39, 38, 74, 54, 86, 39, 61, 58, 73, 45, 68, 95, 63, 105, 78, 80, 76, 33, 69, 54, 50, 77, 118, 70, 98, 108, 91, 52, 86, 99, 88, 76, 55, 75, 73, 109, 114, 98, 111, 64, 111, 117, 69, 118, 48, 63, 41, 73, 33, 48, 45, 104, 98, 72, 69, 88, 47, 36, 82, 105, 74, 41, 98, 101, 83, 119, 71, 115, 64, 96, 92, 105, 48, 37, 70, 120, 128, 172, 159, 141, 241, 201, 250, 233, 37, 250, 1, 5, 13, 58, 181, 174, 61, 84, 83, 40, 0, 93, 203, 33, 109, 62, 98, 63, 66, 99, 50, 51, 69, 85, 111, 104, 110, 37, 111, 94, 109, 48, 38, 116, 102, 50, 95, 66, 55, 118, 52, 41, 63, 83, 67, 87, 93, 34, 41, 80, 47, 109, 47, 37, 56, 116, 61, 47, 98, 47, 88, 109, 79, 34, 110, 88, 42, 47, 94, 40, 71, 92, 125, 75, 78, 41, 114, 113, 50, 56, 43, 120, 128, 176, 132, 137, 132, 135, 163, 200, 102, 250, 1, 10, 13, 60, 114, 117, 63, 29, 70, 163, 167, 62, 84, 83, 40, 62, 93, 38, 107, 127, 63, 98, 65, 32, 32, 92, 112, 116, 79, 95, 40, 62, 69, 88, 61, 100, 106, 76, 77, 66, 32, 40, 82, 111, 99, 85, 46, 34, 74, 124, 74, 36, 107, 113, 48, 82, 110, 87, 41, 82, 109, 51, 118, 124, 117, 45, 41, 79, 84, 45, 71, 106, 92, 73, 122, 54, 123, 47, 60, 73, 77, 110, 73, 82, 52, 35, 81, 82, 120, 128, 168, 210, 221, 134, 181, 146, 237, 181, 1, 250, 1, 10, 13, 121, 243, 71, 63, 29, 21, 223, 100, 63, 84, 83, 40, 24, 93, 181, 80, 190, 62, 98, 46, 121, 84, 108, 48, 84, 120, 86, 76, 94, 76, 61, 85, 95, 70, 66, 118, 121, 85, 94, 59, 94, 36, 125, 105, 68, 103, 113, 90, 85, 39, 105, 55, 52, 70, 97, 116, 46, 37, 70, 53, 100, 123, 110, 65, 43, 123, 120, 128, 200, 158, 185, 209, 210, 244, 201, 70, 250, 1, 10, 13, 85, 87, 33, 63, 29, 111, 22, 31, 62, 84, 83, 40, 79, 93, 135, 15, 246, 62, 98, 76, 52, 54, 117, 99, 117, 85, 35, 107, 108, 38, 122, 118, 86, 97, 38, 64, 56, 99, 77, 104, 115, 46, 72, 85, 97, 53, 91, 93, 72, 51, 54, 76, 120, 88, 85, 33, 62, 98, 107, 62, 43, 57, 89, 47, 105, 37, 55, 95, 37, 91, 59, 118, 96, 114, 88, 37, 108, 63, 33, 96, 121, 68, 66, 88, 111, 78, 125, 124, 44, 37, 34, 85, 119, 46, 93, 90, 120, 128, 240, 174, 130, 163, 245, 246, 146, 71, 250, 1, 10, 13, 114, 105, 139, 62, 29, 117, 76, 75, 63, 84, 83, 40, 81, 93, 91, 99, 121, 63, 98, 47, 123, 88, 108, 119, 62, 106, 38, 32, 79, 51, 125, 96, 43, 68, 101, 117, 32, 62, 59, 38, 58, 82, 126, 88, 100, 126, 81, 52, 125, 80, 82, 83, 67, 98, 124, 106, 85, 96, 81, 98, 118, 124, 92, 112, 35, 115, 108, 120, 128, 176, 170, 198, 212, 174, 211, 178, 99, 250, 1, 5, 13, 133, 220, 105, 63, 84, 83, 40, 91, 93, 61, 59, 12, 63, 98, 52, 122, 80, 85, 98, 73, 88, 51, 50, 62, 57, 112, 34, 126, 96, 74, 61, 71, 70, 121, 63, 62, 108, 87, 47, 60, 116, 45, 85, 112, 49, 102, 60, 57, 123, 86, 34, 108, 32, 82, 49, 66, 78, 50, 73, 37, 122, 92, 48, 88, 86, 68, 66, 120, 128, 152, 193, 192, 175, 213, 137, 132, 252, 1, 250, 1, 10, 13, 140, 139, 197, 62, 29, 104, 25, 103, 62, 84, 83, 40, 19, 93, 221, 174, 108, 63, 98, 41, 70, 69, 83, 75, 92, 64, 45, 81, 84, 104, 35, 41, 71, 79, 71, 115, 103, 123, 110, 89, 46, 41, 65, 56, 124, 123, 57, 108, 68, 63, 115, 101, 72, 42, 70, 89, 126, 101, 100, 45, 37, 120, 128, 232, 237, 219, 190, 174, 238, 222, 245, 1, 250, 1, 5, 13, 46, 70, 3, 63, 84, 83, 40, 24, 93, 101, 197, 27, 63, 98, 50, 38, 48, 39, 124, 78, 52, 71, 69, 83, 105, 60, 36, 59, 77, 96, 38, 63, 44, 52, 115, 60, 95, 61, 40, 109, 115, 34, 55, 96, 84, 53, 87, 46, 93, 117, 107, 50, 111, 116, 43, 75, 64, 115, 63, 41, 84, 98, 56, 36, 38, 120, 128, 168, 210, 135, 174, 225, 146, 189, 92, 250, 1, 10, 13, 193, 58, 73, 63, 29, 249, 180, 153, 62, 84, 83, 40, 39, 93, 29, 0, 158, 62, 98, 51, 69, 114, 125, 46, 89, 50, 48, 99, 126, 84, 100, 117, 93, 86, 115, 115, 79, 54, 40, 72, 123, 107, 124, 126, 57, 48, 104, 50, 90, 110, 73, 59, 112, 63, 80, 119, 51, 96, 59, 120, 58, 91, 116, 106, 68, 94, 37, 96, 47, 50, 52, 120, 128, 240, 202, 164, 128, 247, 214, 164, 70, 250, 1, 5, 13, 253, 161, 86, 62, 84, 83, 40, 112, 93, 156, 205, 177, 62, 98, 35, 89, 116, 126, 116, 73, 72, 125, 41, 47, 42, 72, 36, 61, 38, 123, 95, 110, 122, 47, 45, 63, 117, 50, 89, 90, 42, 40, 34, 71, 90, 117, 39, 122, 125, 117, 120, 224, 209, 153, 150, 145, 141, 205, 177, 4, 250, 1, 10, 13, 194, 177, 92, 62, 29, 224, 82, 75, 63, 84, 83, 40, 108, 93, 219, 102, 1, 63, 98, 35, 60, 82, 100, 96, 122, 89, 103, 90, 51, 81, 69, 88, 36, 103, 33, 99, 98, 68, 57, 62, 64, 122, 97, 84, 51, 65, 41, 62, 48, 121, 75, 34, 41, 94, 112, 120, 128, 224, 227, 242, 188, 231, 157, 150, 231, 1, 250, 1, 5, 13, 212, 4, 56, 62, 84, 83, 40, 66, 93, 225, 167, 39, 63, 98, 35, 32, 66, 77, 110, 116, 53, 61, 34, 51, 124, 50, 63, 111, 81, 82, 47, 64, 112, 48, 76, 89, 79, 72, 73, 56, 38, 66, 78, 69, 117, 51, 81, 48, 101, 56, 120, 128, 208, 172, 161, 143, 236, 228, 138, 250, 1, 250, 1, 5, 13, 177, 252, 92, 63, 84, 83, 40, 16, 93, 203, 205, 74, 63, 98, 39, 63, 117, 62, 116, 64, 124, 89, 91, 80, 86, 78, 80, 123, 32, 37, 36, 80, 120, 35, 85, 110, 113, 110, 92, 60, 104, 95, 47, 41, 56, 87, 60, 51, 36, 111, 85, 58, 90, 40, 120, 128, 204, 144, 178, 199, 232, 132, 145, 187, 1, 250, 1, 5, 13, 144, 198, 39, 63, 84, 83, 40, 56, 93, 86, 117, 90, 63, 98, 47, 118, 118, 69, 55, 81, 42, 96, 103, 33, 110, 86, 124, 76, 39, 97, 87, 87, 61, 74, 81, 55, 126, 49, 60, 118, 47, 79, 104, 116, 112, 86, 118, 67, 32, 118, 101, 118, 81, 46, 36, 72, 79, 85, 77, 92, 39, 67, 120, 128, 248, 210, 212, 151, 180, 151, 165, 189, 1, 250, 1, 5, 13, 250, 208, 24, 63, 84, 83, 40, 3, 93, 170, 72, 1, 63, 98, 41, 46, 51, 120, 89, 119, 100, 41, 63, 65, 90, 118, 114, 48, 56, 94, 88, 76, 48, 123, 96, 37, 47, 70, 40, 102, 73, 99, 94, 110, 107, 33, 48, 114, 64, 72, 98, 74, 70, 125, 32, 108, 120, 128, 222, 228, 130, 211, 237, 165, 150, 152, 1, 250, 1, 10, 13, 62, 73, 77, 63, 29, 164, 213, 219, 62, 84, 83, 40, 65, 93, 156, 111, 35, 63, 98, 63, 68, 53, 124, 78, 118, 61, 92, 64, 74, 126, 108, 111, 113, 78, 33, 73, 79, 84, 88, 102, 32, 110, 111, 123, 45, 37, 49, 122, 115, 114, 66, 124, 86, 42, 36, 78, 96, 64, 116, 99, 82, 81, 117, 72, 117, 90, 83, 79, 126, 66, 97, 55, 111, 105, 92, 85, 69, 33, 65, 112, 43, 96, 76, 120, 128, 144, 229, 201, 169, 238, 168, 206, 74, 250, 1, 10, 13, 236, 234, 33, 63, 29, 172, 200, 83, 63, 84, 83, 40, 32, 93, 43, 86, 65, 63, 98, 41, 74, 82, 104, 47, 94, 115, 52, 77, 120, 70, 37, 82, 81, 96, 123, 80, 49, 42, 45, 108, 76, 77, 41, 94, 126, 36, 88, 112, 36, 62, 107, 38, 65, 106, 37, 75, 89, 81, 88, 122, 85, 120, 128, 158, 239, 188, 146, 238, 249, 230, 147, 1, 250, 1, 5, 13, 141, 27, 34, 63, 84, 83, 40, 125, 93, 173, 69, 117, 63, 98, 48, 109, 62, 73, 99, 123, 69, 81, 97, 74, 59, 123, 72, 41, 48, 89, 59, 66, 73, 90, 89, 125, 48, 102, 91, 79, 117, 94, 80, 49, 55, 61, 112, 42, 98, 48, 101, 46, 45, 39, 119, 57, 68, 117, 79, 40, 34, 80, 65, 120, 128, 248, 200, 172, 175, 214, 199, 228, 125, 250, 1, 5, 13, 68, 22, 41, 63, 84, 83, 40, 25, 93, 231, 236, 55, 63, 98, 43, 33, 68, 124, 93, 87, 108, 51, 38, 101, 33, 79, 51, 124, 42, 62, 69, 126, 115, 45, 52, 65, 97, 63, 89, 57, 54, 82, 76, 68, 61, 82, 82, 36, 88, 110, 100, 101, 82, 45, 64, 120, 33, 49, 120, 128, 180, 225, 151, 132, 160, 139, 190, 161, 1, 250, 1, 10, 13, 214, 46, 99, 63, 29, 121, 217, 51, 63, 84, 83, 40, 66, 93, 97, 224, 121, 63, 98, 46, 99, 43, 65, 41, 81, 125, 66, 63, 37, 66, 67, 64, 58, 101, 96, 71, 77, 124, 46, 67, 59, 89, 94, 76, 102, 107, 59, 64, 80, 38, 100, 85, 99, 85, 104, 57, 123, 73, 32, 38, 54, 79, 94, 67, 46, 107, 120, 128, 250, 193, 200, 147, 209, 143, 196, 9, 250, 1, 5, 13, 164, 199, 70, 62, 84, 83, 40, 42, 93, 84, 66, 68, 63, 98, 59, 106, 119, 84, 46, 97, 41, 76, 115, 66, 100, 97, 34, 110, 126, 93, 108, 91, 99, 124, 71, 75, 36, 123, 40, 45, 107, 121, 59, 61, 121, 101, 41, 32, 102, 59, 107, 33, 85, 114, 94, 108, 40, 39, 59, 68, 51, 96, 95, 100, 65, 47, 65, 53, 119, 61, 101, 122, 75, 32, 120, 128, 168, 172, 159, 128, 190, 226, 250, 114, 250, 1, 5, 13, 245, 192, 32, 62, 84, 83, 40, 22, 93, 109, 12, 17, 63, 98, 60, 71, 125, 88, 33, 39, 99, 112, 106, 38, 111, 61, 90, 66, 124, 96, 99, 121, 42, 58, 85, 123, 105, 67, 114, 40, 72, 84, 112, 84, 85, 124, 80, 91, 81, 94, 60, 106, 50, 88, 122, 114, 85, 41, 80, 119, 61, 121, 104, 58, 103, 38, 106, 115, 89, 89, 92, 89, 100, 120, 94, 120, 128, 236, 150, 192, 242, 226, 182, 129, 148, 1, 250, 1, 5, 13, 143, 53, 27, 60, 84, 83, 40, 29, 93, 112, 95, 255, 62, 98, 25, 114, 108, 125, 112, 61, 67, 119, 102, 81, 62, 98, 70, 95, 114, 122, 105, 77, 107, 85, 108, 79, 50, 91, 33, 119, 120, 192, 136, 212, 129, 173, 195, 160, 141, 3, 250, 1, 10, 13, 113, 27, 48, 63, 29, 227, 203, 135, 61, 84, 83, 40, 32, 93, 80, 96, 111, 63, 98, 35, 108, 113, 63, 89, 93, 42, 62, 41, 74, 117, 111, 62, 56, 84, 118, 51, 124, 102, 104, 46, 48, 66, 74, 72, 126, 95, 48, 124, 120, 60, 97, 113, 78, 87, 81, 120, 128, 144, 220, 128, 146, 217, 224, 133, 108, 250, 1, 12, 13, 207, 232, 140, 61, 29, 166, 64, 132, 61, 56, 0, 84, 83, 40, 106, 93, 207, 138, 231, 62, 98, 73, 68, 65, 94, 123, 49, 120, 39, 42, 99, 36, 121, 60, 41, 104, 73, 70, 117, 89, 124, 121, 65, 47, 45, 52, 125, 110, 96, 34, 38, 44, 118, 82, 119, 98, 107, 33, 107, 75, 109, 102, 40, 113, 52, 56, 102, 84, 68, 110, 40, 73, 47, 75, 54, 117, 41, 52, 51, 73, 125, 65, 56, 36, 36, 86, 45, 70, 68, 69, 123, 72, 90, 73, 107, 120, 128, 132, 155, 166, 239, 171, 216, 177, 31, 250, 1, 5, 13, 15, 235, 88, 63, 84, 83, 40, 62, 93, 103, 236, 114, 63, 98, 83, 116, 76, 72, 74, 112, 121, 91, 123, 74, 60, 34, 89, 87, 109, 65, 77, 76, 77, 36, 109, 92, 43, 64, 48, 126, 114, 95, 109, 101, 95, 126, 36, 89, 57, 61, 124, 85, 118, 71, 42, 71, 89, 97, 42, 65, 106, 68, 90, 57, 123, 62, 103, 108, 96, 61, 105, 44, 56, 75, 125, 58, 109, 54, 106, 60, 124, 32, 61, 79, 68, 119, 85, 38, 120, 70, 34, 72, 53, 109, 51, 77, 37, 84, 120, 128, 208, 218, 194, 177, 222, 212, 149, 98, 250, 1, 5, 13, 94, 114, 174, 62, 84, 83, 40, 30, 93, 61, 34, 127, 62, 98, 64, 119, 122, 83, 111, 60, 75, 72, 111, 88, 67, 117, 109, 68, 106, 38, 42, 115, 36, 104, 97, 114, 58, 58, 64, 118, 73, 55, 79, 52, 56, 77, 74, 37, 100, 39, 65, 123, 83, 90, 41, 92, 41, 108, 94, 81, 71, 72, 71, 70, 121, 96, 100, 86, 84, 68, 93, 96, 50, 120, 113, 51, 120, 90, 63, 120, 128, 240, 158, 236, 136, 234, 246, 225, 114, 250, 1, 5, 13, 55, 170, 236, 62, 84, 83, 40, 95, 93, 87, 207, 42, 63, 98, 76, 98, 99, 46, 63, 72, 94, 36, 105, 77, 90, 110, 78, 33, 111, 40, 58, 87, 103, 114, 80, 64, 73, 96, 104, 90, 103, 117, 99, 77, 76, 104, 37, 95, 104, 99, 98, 106, 64, 59, 118, 79, 89, 48, 37, 67, 73, 112, 67, 111, 64, 103, 45, 88, 54, 62, 57, 35, 68, 100, 96, 104, 64, 59, 32, 113, 104, 110, 56, 43, 69, 78, 55, 76, 123, 33, 101, 120, 128, 204, 246, 130, 216, 206, 180, 151, 34, 250, 1, 5, 13, 228, 127, 30, 63, 84, 83, 40, 50, 93, 94, 141, 53, 62, 98, 64, 118, 82, 114, 45, 100, 91, 76, 72, 73, 73, 94, 70, 91, 90, 46, 47, 61, 47, 51, 89, 90, 87, 55, 74, 112, 79, 96, 92, 53, 88, 33, 71, 126, 83, 104, 54, 77, 46, 59, 54, 59, 69, 110, 96, 101, 40, 91, 112, 109, 112, 72, 41, 71, 107, 85, 62, 58, 72, 59, 52, 121, 111, 51, 112, 120, 128, 212, 153, 241, 214, 153, 205, 137, 183, 1, 250, 1, 5, 13, 173, 75, 121, 62, 84, 83, 40, 52, 93, 23, 113, 177, 61, 98, 48, 113, 118, 97, 46, 115, 124, 61, 52, 104, 86, 99, 104, 115, 110, 110, 67, 47, 118, 32, 50, 124, 73, 122, 36, 114, 38, 59, 75, 50, 125, 55, 78, 96, 82, 126, 117, 47, 57, 53, 74, 77, 64, 85, 99, 99, 82, 63, 42, 120, 192, 216, 238, 213, 213, 196, 245, 174, 2, 250, 1, 5, 13, 9, 241, 83, 63, 84, 83, 40, 86, 93, 45, 58, 4, 63, 98, 37, 55, 52, 42, 71, 123, 92, 59, 108, 96, 113, 34, 106, 62, 52, 39, 64, 111, 120, 51, 117, 97, 84, 100, 91, 115, 55, 64, 64, 102, 48, 74, 66, 60, 101, 55, 76, 72, 120, 128, 160, 221, 167, 137, 225, 233, 189, 202, 1, 250, 1, 5, 13, 147, 237, 110, 63, 84, 83, 40, 67, 93, 239, 50, 122, 63, 98, 42, 71, 104, 91, 62, 105, 68, 78, 74, 125, 58, 39, 90, 106, 110, 97, 78, 78, 82, 99, 59, 122, 37, 80, 70, 94, 77, 88, 124, 90, 119, 56, 126, 96, 119, 57, 106, 41, 60, 42, 114, 112, 116, 120, 128, 168, 139, 128, 156, 179, 218, 128, 224, 1, 250, 1, 5, 13, 103, 129, 100, 63, 84, 83, 40, 46, 93, 228, 49, 63, 63, 98, 63, 81, 118, 85, 124, 121, 36, 52, 55, 34, 66, 56, 52, 95, 59, 107, 81, 110, 38, 34, 40, 121, 113, 84, 117, 68, 49, 72, 112, 73, 37, 61, 90, 35, 118, 123, 97, 71, 92, 125, 51, 105, 73, 116, 118, 82, 116, 92, 109, 39, 63, 38, 97, 114, 58, 108, 94, 65, 94, 88, 103, 91, 67, 108, 120, 128, 216, 223, 205, 172, 219, 253, 237, 123, 250, 1, 5, 13, 44, 86, 58, 61, 84, 83, 40, 81, 93, 62, 93, 52, 62, 98, 98, 103, 63, 41, 41, 49, 39, 110, 61, 80, 123, 92, 67, 79, 83, 90, 105, 41, 125, 91, 103, 104, 42, 61, 63, 103, 36, 53, 86, 70, 91, 120, 114, 116, 99, 115, 78, 124, 54, 115, 89, 35, 123, 59, 97, 99, 58, 40, 52, 33, 89, 98, 124, 71, 116, 71, 93, 34, 105, 64, 45, 112, 55, 118, 115, 35, 105, 78, 106, 95, 43, 107, 114, 42, 34, 99, 107, 109, 90, 90, 76, 122, 33, 85, 107, 120, 122, 74, 126, 59, 53, 76, 50, 116, 102, 103, 107, 37, 71, 120, 128, 136, 228, 233, 204, 187, 160, 206, 83, 250, 1, 5, 13, 10, 240, 112, 63, 84, 83, 40, 101, 93, 67, 149, 155, 62, 98, 43, 83, 116, 108, 111, 114, 69, 49, 91, 111, 70, 46, 114, 49, 111, 96, 42, 122, 40, 62, 79, 78, 73, 94, 88, 125, 66, 57, 118, 102, 70, 123, 96, 96, 93, 76, 96, 125, 40, 39, 37, 108, 95, 69, 120, 128, 208, 196, 155, 215, 128, 165, 220, 8, 250, 1, 5, 13, 177, 32, 34, 61, 84, 83, 40, 2, 93, 35, 241, 14, 63, 98, 50, 119, 42, 121, 75, 85, 90, 60, 108, 42, 53, 51, 112, 80, 44, 57, 116, 73, 73, 77, 50, 82, 66, 32, 44, 113, 33, 57, 97, 110, 36, 88, 85, 123, 108, 64, 107, 107, 121, 70, 37, 67, 111, 66, 74, 106, 54, 86, 119, 82, 106, 120, 128, 240, 248, 153, 175, 207, 198, 207, 122, 250, 1, 5, 13, 230, 13, 31, 63, 84, 83, 40, 70, 93, 164, 116, 82, 63, 98, 51, 34, 85, 42, 109, 88, 84, 65, 90, 125, 38, 92, 93, 116, 98, 106, 76, 40, 78, 35, 72, 109, 97, 126, 84, 65, 90, 73, 64, 46, 35, 40, 124, 32, 45, 106, 106, 97, 125, 65, 113, 99, 104, 113, 60, 109, 44, 65, 115, 44, 38, 98, 120, 128, 180, 238, 189, 151, 147, 243, 238, 187, 1, 250, 1, 10, 13, 249, 103, 22, 63, 29, 237, 230, 7, 62, 84, 83, 40, 0, 93, 195, 114, 170, 62, 98, 58, 85, 84, 76, 124, 42, 32, 75, 122, 124, 94, 93, 102, 119, 32, 106, 41, 45, 48, 99, 37, 111, 98, 102, 52, 57, 85, 52, 40, 63, 90, 68, 114, 45, 74, 52, 44, 81, 67, 102, 99, 60, 117, 62, 47, 78, 90, 123, 44, 58, 89, 63, 71, 71, 122, 79, 114, 109, 55, 120, 128, 216, 196, 128, 135, 160, 165, 132, 91, 250, 1, 5, 13, 157, 28, 12, 63, 84, 168, 1, 214, 218, 247, 194, 6, 205, 1, 231, 168, 191, 62, 184, 4, 173, 193, 245, 170, 5, 136, 8, 45, 232, 12, 0, 240, 12, 1]; + +void main() { + File('datasets/google_message1_proto2.pb').writeAsBytesSync(googleMessage1Proto2Payload); + File('datasets/google_message1_proto3.pb').writeAsBytesSync(googleMessage1Proto3Payload); + File('datasets/google_message2.pb').writeAsBytesSync(googleMessage2Payload); +} From 00a46ea4aafea8e022c6210d7d26be08c31d1d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 10:41:10 +0200 Subject: [PATCH 02/59] Fix compile_protos.sh --- benchmarks/compile_protos.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) mode change 100644 => 100755 benchmarks/compile_protos.sh diff --git a/benchmarks/compile_protos.sh b/benchmarks/compile_protos.sh old mode 100644 new mode 100755 index 5d95460a6..501d7528d --- a/benchmarks/compile_protos.sh +++ b/benchmarks/compile_protos.sh @@ -4,6 +4,8 @@ # 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. +SCRIPT_DIR=$(dirname "${BASH_SOURCE}") + # These protos don't have any imports SIMPLE_PROTOS=( "protos/google_message1_proto2.proto" @@ -16,4 +18,10 @@ set -e mkdir -p lib/generated -protoc --dart_out=lib/generated --plugin=protoc-gen-dart=run_protoc_plugin.sh "${PROTOS[@]/#/$SCRIPT_DIR/}" +protoc --dart_out=lib/generated --plugin=protoc-gen-dart=run_protoc_plugin.sh \ + -I$SCRIPT_DIR/protos \ + "${SIMPLE_PROTOS[@]/#/$SCRIPT_DIR/}" + +protoc --dart_out=lib/generated --plugin=protoc-gen-dart=run_protoc_plugin.sh \ + -I$SCRIPT_DIR/protos/query_benchmark \ + $SCRIPT_DIR/protos/query_benchmark/*.proto From 3401c33b50cbd538560bd6f27247091b0fbeb578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 10:42:23 +0200 Subject: [PATCH 03/59] Copy common code --- benchmarks/lib/readfile.dart | 5 +++++ benchmarks/lib/readfile_d8.dart | 18 ++++++++++++++++++ benchmarks/lib/readfile_vm.dart | 10 ++++++++++ 3 files changed, 33 insertions(+) create mode 100644 benchmarks/lib/readfile.dart create mode 100644 benchmarks/lib/readfile_d8.dart create mode 100644 benchmarks/lib/readfile_vm.dart diff --git a/benchmarks/lib/readfile.dart b/benchmarks/lib/readfile.dart new file mode 100644 index 000000000..b4614ea79 --- /dev/null +++ b/benchmarks/lib/readfile.dart @@ -0,0 +1,5 @@ +// Copyright (c) 2018, 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. + +export 'readfile_vm.dart' if (dart.library.js) 'readfile_d8.dart' show readfile; diff --git a/benchmarks/lib/readfile_d8.dart b/benchmarks/lib/readfile_d8.dart new file mode 100644 index 000000000..990511187 --- /dev/null +++ b/benchmarks/lib/readfile_d8.dart @@ -0,0 +1,18 @@ +// Copyright (c) 2018, 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 'dart:typed_data'; + +import 'package:js/js.dart'; + +/// Read the file at the given [path]. +/// +/// This relies on the `readbuffer` function provided by d8. +@JS() +external ByteBuffer readbuffer(String path); + +/// Read the file at the given [path]. +Uint8List readfile(String path) { + return Uint8List.view(readbuffer(path)); +} diff --git a/benchmarks/lib/readfile_vm.dart b/benchmarks/lib/readfile_vm.dart new file mode 100644 index 000000000..0483e19f2 --- /dev/null +++ b/benchmarks/lib/readfile_vm.dart @@ -0,0 +1,10 @@ +// Copyright (c) 2018, 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 'dart:io'; +import 'dart:typed_data'; + +Uint8List readfile(String path) { + return File(path).readAsBytesSync(); +} From 6afbd6fce799679553c19f92e619f25b6a819b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 10:53:44 +0200 Subject: [PATCH 04/59] Add query_benchmark encode/decode benchmarks --- .../bin/query_benchmark_decode_binary.dart | 24 +++++++++++++++++ .../bin/query_benchmark_decode_json.dart | 27 +++++++++++++++++++ .../bin/query_benchmark_encode_binary.dart | 26 ++++++++++++++++++ .../bin/query_benchmark_encode_json.dart | 26 ++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 benchmarks/bin/query_benchmark_decode_binary.dart create mode 100644 benchmarks/bin/query_benchmark_decode_json.dart create mode 100644 benchmarks/bin/query_benchmark_encode_binary.dart create mode 100644 benchmarks/bin/query_benchmark_encode_json.dart diff --git a/benchmarks/bin/query_benchmark_decode_binary.dart b/benchmarks/bin/query_benchmark_decode_binary.dart new file mode 100644 index 000000000..c620612bf --- /dev/null +++ b/benchmarks/bin/query_benchmark_decode_binary.dart @@ -0,0 +1,24 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/readfile.dart'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + final List _input; + + Benchmark(String name, this._input) : super(name); + + @override + void run() { + f0.A0.fromBuffer(this._input); + } +} + +void main() { + List encoded = readfile('datasets/query_benchmark.pb'); + Benchmark('protobuf_decode', encoded).report(); +} diff --git a/benchmarks/bin/query_benchmark_decode_json.dart b/benchmarks/bin/query_benchmark_decode_json.dart new file mode 100644 index 000000000..7a04364f2 --- /dev/null +++ b/benchmarks/bin/query_benchmark_decode_json.dart @@ -0,0 +1,27 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/readfile.dart'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final String _input; + + Benchmark(String name, List input) : super(name) { + f0.A0 a = f0.A0.fromBuffer(input); + _input = a.writeToJson(); + } + + @override + void run() { + f0.A0.fromJson(this._input); + } +} + +void main() { + List encoded = readfile('datasets/query_benchmark.pb'); + Benchmark('protobuf_decode_json', encoded).report(); +} diff --git a/benchmarks/bin/query_benchmark_encode_binary.dart b/benchmarks/bin/query_benchmark_encode_binary.dart new file mode 100644 index 000000000..ee9ed4de5 --- /dev/null +++ b/benchmarks/bin/query_benchmark_encode_binary.dart @@ -0,0 +1,26 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/readfile.dart'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final f0.A0 _input; + + Benchmark(String name, List input) : super(name) { + _input = f0.A0.fromBuffer(input); + } + + @override + void run() { + _input.writeToBuffer(); + } +} + +void main() { + List encoded = readfile('datasets/query_benchmark.pb'); + Benchmark('protobuf_encode', encoded).report(); +} diff --git a/benchmarks/bin/query_benchmark_encode_json.dart b/benchmarks/bin/query_benchmark_encode_json.dart new file mode 100644 index 000000000..f847fa07d --- /dev/null +++ b/benchmarks/bin/query_benchmark_encode_json.dart @@ -0,0 +1,26 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/readfile.dart'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final f0.A0 _input; + + Benchmark(String name, List input) : super(name) { + _input = f0.A0.fromBuffer(input); + } + + @override + void run() { + _input.writeToJson(); + } +} + +void main() { + List encoded = readfile('datasets/query_benchmark.pb'); + Benchmark('protobuf_encode_json', encoded).report(); +} From a7a806171a3fc510826dd3f1b876ba4598714b53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 10:56:33 +0200 Subject: [PATCH 05/59] Add query_benchmark set_nested_value --- .../bin/query_benchmark_set_nested_value.dart | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 benchmarks/bin/query_benchmark_set_nested_value.dart diff --git a/benchmarks/bin/query_benchmark_set_nested_value.dart b/benchmarks/bin/query_benchmark_set_nested_value.dart new file mode 100644 index 000000000..b54c1bf2b --- /dev/null +++ b/benchmarks/bin/query_benchmark_set_nested_value.dart @@ -0,0 +1,34 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/f0.pb.dart' as f0; +import 'package:protobuf_benchmarks/generated/f19.pb.dart' as f19; +import 'package:protobuf_benchmarks/generated/f2.pb.dart' as f2; + +import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:protobuf/protobuf.dart'; + +class Benchmark extends BenchmarkBase { + late final f0.A0 _input; + + Benchmark(String name, List input) : super(name) { + _input = f0.A0.fromBuffer(input)..freeze(); + } + + @override + void run() { + _input.rebuild((f0.A0 a0Builder) { + a0Builder.a4.last = a0Builder.a4.last.rebuild((f2.A1 a1builder) { + a1builder.a378 = a1builder.a378 + .rebuild((f19.A220 a220builder) => a220builder.a234 = 'new_value'); + }); + }); + } +} + +void main() { + List encoded = readfile('datasets/query_benchmark.pb'); + Benchmark('protobuf_encode_json', encoded).report(); +} From 8acb3cc68df9389bf99d7bc1f3686aafccf9f0fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:10:47 +0200 Subject: [PATCH 06/59] Add protobuf_benchmarks decode benchmark --- benchmarks/bin/decode_binary.dart | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 benchmarks/bin/decode_binary.dart diff --git a/benchmarks/bin/decode_binary.dart b/benchmarks/bin/decode_binary.dart new file mode 100644 index 000000000..94848d254 --- /dev/null +++ b/benchmarks/bin/decode_binary.dart @@ -0,0 +1,46 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; + +import 'dart:typed_data'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final Uint8List _message1Proto2Input; + late final Uint8List _message1Proto3Input; + late final Uint8List _message2Input; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : super(name) { + _message1Proto2Input = Uint8List.fromList(message1Proto2Input); + _message1Proto3Input = Uint8List.fromList(message1Proto3Input); + _message2Input = Uint8List.fromList(message2Input); + } + + @override + void run() { + p2.GoogleMessage1.fromBuffer(_message1Proto2Input); + p3.GoogleMessage1.fromBuffer(_message1Proto3Input); + GoogleMessage2.fromBuffer(_message2Input); + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_decode_binary', message1Proto2Input, message1Proto3Input, + message2Input) + .report(); +} From 5532e13276db60b5c0997ff60052b7da099d28e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:22:47 +0200 Subject: [PATCH 07/59] Fixups --- benchmarks/datasets/google_message1_proto2.pb | Bin 289 -> 228 bytes benchmarks/datasets/google_message1_proto3.pb | Bin 289 -> 228 bytes benchmarks/datasets/google_message2.pb | Bin 84625 -> 84570 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/benchmarks/datasets/google_message1_proto2.pb b/benchmarks/datasets/google_message1_proto2.pb index f6fe7848cb889b65fb2c9465780c2e82b398639b..bc0f064cc2ebd108e4a8ee14d94c59d2207f0f19 100644 GIT binary patch delta 7 OcmZ3;^n`Ju?GpeD0|Pq% delta 68 zcmaFDxRA+~ODsJ~XoR&y@?^!)tvoYeT-)Z*gA^i(4ug{0KHV5f};GAd?P(~uo7RW P3aMLDSR1x5MtK1MM35M+ From b8eeb2ec03eb87c871a75a42d2136b3e59007707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:27:41 +0200 Subject: [PATCH 08/59] Add another bench --- .../{decode_binary.dart => from_binary.dart} | 2 +- benchmarks/bin/from_json_string.dart | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) rename benchmarks/bin/{decode_binary.dart => from_binary.dart} (95%) create mode 100644 benchmarks/bin/from_json_string.dart diff --git a/benchmarks/bin/decode_binary.dart b/benchmarks/bin/from_binary.dart similarity index 95% rename from benchmarks/bin/decode_binary.dart rename to benchmarks/bin/from_binary.dart index 94848d254..aa4f30892 100644 --- a/benchmarks/bin/decode_binary.dart +++ b/benchmarks/bin/from_binary.dart @@ -40,7 +40,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_decode_binary', message1Proto2Input, message1Proto3Input, + Benchmark('protobuf_from_binary', message1Proto2Input, message1Proto3Input, message2Input) .report(); } diff --git a/benchmarks/bin/from_json_string.dart b/benchmarks/bin/from_json_string.dart new file mode 100644 index 000000000..503d8f667 --- /dev/null +++ b/benchmarks/bin/from_json_string.dart @@ -0,0 +1,46 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final String _message1Proto2JsonString; + late final String _message1Proto3JsonString; + late final String _message2JsonString; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : super(name) { + + + _message1Proto2JsonString = p2.GoogleMessage1.fromBuffer(message1Proto2Input).writeToJson(); + _message1Proto3JsonString = p3.GoogleMessage1.fromBuffer(message1Proto3Input).writeToJson(); + _message2JsonString = GoogleMessage2.fromBuffer(message2Input).writeToJson(); + } + + @override + void run() { + p2.GoogleMessage1.fromJson(_message1Proto2JsonString); + p3.GoogleMessage1.fromJson(_message1Proto3JsonString); + GoogleMessage2.fromJson(_message2JsonString); + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_from_json_string', message1Proto2Input, message1Proto3Input, + message2Input) + .report(); +} From d2598b1b5a2e38baca5729ecb445c7909f945a97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:31:49 +0200 Subject: [PATCH 09/59] Another bench --- benchmarks/bin/from_json_string.dart | 15 +++++----- benchmarks/bin/to_binary.dart | 44 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 benchmarks/bin/to_binary.dart diff --git a/benchmarks/bin/from_json_string.dart b/benchmarks/bin/from_json_string.dart index 503d8f667..0cd4477da 100644 --- a/benchmarks/bin/from_json_string.dart +++ b/benchmarks/bin/from_json_string.dart @@ -19,11 +19,12 @@ class Benchmark extends BenchmarkBase { Benchmark(String name, List message1Proto2Input, List message1Proto3Input, List message2Input) : super(name) { - - - _message1Proto2JsonString = p2.GoogleMessage1.fromBuffer(message1Proto2Input).writeToJson(); - _message1Proto3JsonString = p3.GoogleMessage1.fromBuffer(message1Proto3Input).writeToJson(); - _message2JsonString = GoogleMessage2.fromBuffer(message2Input).writeToJson(); + _message1Proto2JsonString = + p2.GoogleMessage1.fromBuffer(message1Proto2Input).writeToJson(); + _message1Proto3JsonString = + p3.GoogleMessage1.fromBuffer(message1Proto3Input).writeToJson(); + _message2JsonString = + GoogleMessage2.fromBuffer(message2Input).writeToJson(); } @override @@ -40,7 +41,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_from_json_string', message1Proto2Input, message1Proto3Input, - message2Input) + Benchmark('protobuf_from_json_string', message1Proto2Input, + message1Proto3Input, message2Input) .report(); } diff --git a/benchmarks/bin/to_binary.dart b/benchmarks/bin/to_binary.dart new file mode 100644 index 000000000..1e5f6825a --- /dev/null +++ b/benchmarks/bin/to_binary.dart @@ -0,0 +1,44 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final p2.GoogleMessage1 _message1Proto2; + late final p3.GoogleMessage1 _message1Proto3; + late final GoogleMessage2 _message2; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : super(name) { + _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); + _message2 = GoogleMessage2.fromBuffer(message2Input); + } + + @override + void run() { + _message1Proto2.writeToBuffer(); + _message1Proto3.writeToBuffer(); + _message2.writeToBuffer(); + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_to_binary', message1Proto2Input, message1Proto3Input, + message2Input) + .report(); +} From 9aa9e59a8a1d4e03a034ed312f55927ddd2be6df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:37:10 +0200 Subject: [PATCH 10/59] More benches --- benchmarks/bin/from_proto3_json_string.dart | 52 +++++++++++++++++++++ benchmarks/bin/to_json_string.dart | 44 +++++++++++++++++ benchmarks/bin/to_proto3_json_object.dart | 44 +++++++++++++++++ benchmarks/bin/to_proto3_json_string.dart | 46 ++++++++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 benchmarks/bin/from_proto3_json_string.dart create mode 100644 benchmarks/bin/to_json_string.dart create mode 100644 benchmarks/bin/to_proto3_json_object.dart create mode 100644 benchmarks/bin/to_proto3_json_string.dart diff --git a/benchmarks/bin/from_proto3_json_string.dart b/benchmarks/bin/from_proto3_json_string.dart new file mode 100644 index 000000000..5cdfcb2e4 --- /dev/null +++ b/benchmarks/bin/from_proto3_json_string.dart @@ -0,0 +1,52 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; + +import 'dart:convert' show jsonDecode, jsonEncode; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final String _message1Proto2Proto3JsonString; + late final String _message1Proto3Proto3JsonString; + late final String _message2Proto3JsonString; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : super(name) { + _message1Proto2Proto3JsonString = jsonEncode( + p2.GoogleMessage1.fromBuffer(message1Proto2Input).toProto3Json()); + _message1Proto3Proto3JsonString = jsonEncode( + p3.GoogleMessage1.fromBuffer(message1Proto3Input).toProto3Json()); + _message2Proto3JsonString = + jsonEncode(GoogleMessage2.fromBuffer(message2Input).toProto3Json()); + } + + @override + void run() { + p2.GoogleMessage1.create() + ..mergeFromProto3Json(jsonDecode(_message1Proto2Proto3JsonString)); + p3.GoogleMessage1.create() + ..mergeFromProto3Json(jsonDecode(_message1Proto3Proto3JsonString)); + GoogleMessage2.create() + ..mergeFromProto3Json(jsonDecode(_message2Proto3JsonString)); + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_from_json_string', message1Proto2Input, + message1Proto3Input, message2Input) + .report(); +} diff --git a/benchmarks/bin/to_json_string.dart b/benchmarks/bin/to_json_string.dart new file mode 100644 index 000000000..edc6a4b26 --- /dev/null +++ b/benchmarks/bin/to_json_string.dart @@ -0,0 +1,44 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final p2.GoogleMessage1 _message1Proto2; + late final p3.GoogleMessage1 _message1Proto3; + late final GoogleMessage2 _message2; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : super(name) { + _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); + _message2 = GoogleMessage2.fromBuffer(message2Input); + } + + @override + void run() { + _message1Proto2.writeToJson(); + _message1Proto3.writeToJson(); + _message2.writeToJson(); + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_to_json_string', message1Proto2Input, message1Proto3Input, + message2Input) + .report(); +} diff --git a/benchmarks/bin/to_proto3_json_object.dart b/benchmarks/bin/to_proto3_json_object.dart new file mode 100644 index 000000000..c293606a0 --- /dev/null +++ b/benchmarks/bin/to_proto3_json_object.dart @@ -0,0 +1,44 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final p2.GoogleMessage1 _message1Proto2; + late final p3.GoogleMessage1 _message1Proto3; + late final GoogleMessage2 _message2; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : super(name) { + _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); + _message2 = GoogleMessage2.fromBuffer(message2Input); + } + + @override + void run() { + _message1Proto2.toProto3Json(); + _message1Proto3.toProto3Json(); + _message2.toProto3Json(); + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_to_json_string', message1Proto2Input, message1Proto3Input, + message2Input) + .report(); +} diff --git a/benchmarks/bin/to_proto3_json_string.dart b/benchmarks/bin/to_proto3_json_string.dart new file mode 100644 index 000000000..cd310a388 --- /dev/null +++ b/benchmarks/bin/to_proto3_json_string.dart @@ -0,0 +1,46 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; + +import 'dart:convert' show jsonEncode; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final p2.GoogleMessage1 _message1Proto2; + late final p3.GoogleMessage1 _message1Proto3; + late final GoogleMessage2 _message2; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : super(name) { + _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); + _message2 = GoogleMessage2.fromBuffer(message2Input); + } + + @override + void run() { + jsonEncode(_message1Proto2.toProto3Json()); + jsonEncode(_message1Proto3.toProto3Json()); + jsonEncode(_message2.toProto3Json()); + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_to_json_string', message1Proto2Input, message1Proto3Input, + message2Input) + .report(); +} From 5398c17b0dae4ccee617becd547db02fb5defa48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:38:57 +0200 Subject: [PATCH 11/59] Up --- benchmarks/bin/to_proto3_json_string.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/bin/to_proto3_json_string.dart b/benchmarks/bin/to_proto3_json_string.dart index cd310a388..44a318703 100644 --- a/benchmarks/bin/to_proto3_json_string.dart +++ b/benchmarks/bin/to_proto3_json_string.dart @@ -40,7 +40,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_to_json_string', message1Proto2Input, message1Proto3Input, - message2Input) + Benchmark('protobuf_to_proto3_json_string', message1Proto2Input, + message1Proto3Input, message2Input) .report(); } From b4e0a77fcde81d36cf46a47e72f0cc68a5c92190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:39:57 +0200 Subject: [PATCH 12/59] Add hash code bench --- benchmarks/bin/hash_code.dart | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 benchmarks/bin/hash_code.dart diff --git a/benchmarks/bin/hash_code.dart b/benchmarks/bin/hash_code.dart new file mode 100644 index 000000000..7fede11ee --- /dev/null +++ b/benchmarks/bin/hash_code.dart @@ -0,0 +1,46 @@ +// Copyright (c) 2018, 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:protobuf_benchmarks/readfile.dart'; +import 'package:protobuf_benchmarks/generated/google_message1_proto2.pb.dart' + as p2; +import 'package:protobuf_benchmarks/generated/google_message1_proto3.pb.dart' + as p3; +import 'package:protobuf_benchmarks/generated/google_message2.pb.dart'; + +import 'dart:convert' show jsonEncode; + +import 'package:benchmark_harness/benchmark_harness.dart'; + +class Benchmark extends BenchmarkBase { + late final p2.GoogleMessage1 _message1Proto2; + late final p3.GoogleMessage1 _message1Proto3; + late final GoogleMessage2 _message2; + + Benchmark(String name, List message1Proto2Input, + List message1Proto3Input, List message2Input) + : super(name) { + _message1Proto2 = p2.GoogleMessage1.fromBuffer(message1Proto2Input); + _message1Proto3 = p3.GoogleMessage1.fromBuffer(message1Proto3Input); + _message2 = GoogleMessage2.fromBuffer(message2Input); + } + + @override + void run() { + _message1Proto2.hashCode; + _message1Proto3.hashCode; + _message2.hashCode; + } +} + +void main() { + List message1Proto2Input = + readfile('datasets/google_message1_proto2.pb'); + List message1Proto3Input = + readfile('datasets/google_message1_proto3.pb'); + List message2Input = readfile('datasets/google_message2.pb'); + Benchmark('protobuf_hashCode', message1Proto2Input, message1Proto3Input, + message2Input) + .report(); +} From 76ecf2999ef15f13911644c810f9d7937909092f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:40:25 +0200 Subject: [PATCH 13/59] Remove unused file --- benchmarks/update_payloads.dart | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 benchmarks/update_payloads.dart diff --git a/benchmarks/update_payloads.dart b/benchmarks/update_payloads.dart deleted file mode 100644 index 2e9f5b322..000000000 --- a/benchmarks/update_payloads.dart +++ /dev/null @@ -1,13 +0,0 @@ -import 'dart:io'; - -List googleMessage1Proto3Payload = [10, 22, 103, 111, 111, 103, 108, 101, 95, 109, 101, 115, 115, 97, 103, 101, 49, 95, 112, 114, 111, 116, 111, 51, 18, 32, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 46, 112, 114, 111, 116, 111, 51, 46, 71, 111, 111, 103, 108, 101, 77, 101, 115, 115, 97, 103, 101, 49, 26, 228, 1, 10, 0, 16, 8, 24, 203, 143, 126, 34, 6, 51, 75, 43, 54, 41, 35, 74, 89, 49, 48, 41, 50, 117, 105, 83, 117, 111, 88, 76, 49, 94, 41, 118, 125, 105, 99, 70, 64, 62, 80, 40, 106, 60, 116, 35, 126, 116, 122, 92, 108, 103, 63, 63, 83, 38, 40, 60, 104, 114, 55, 69, 86, 115, 39, 108, 123, 39, 53, 96, 71, 111, 104, 99, 95, 40, 61, 116, 32, 101, 83, 32, 115, 123, 95, 73, 63, 105, 67, 119, 97, 71, 93, 76, 39, 42, 80, 117, 53, 40, 38, 119, 95, 58, 52, 123, 126, 90, 96, 1, 104, 0, 112, 1, 122, 89, 8, 25, 16, 36, 122, 67, 34, 63, 54, 80, 89, 52, 93, 76, 50, 99, 60, 125, 126, 50, 59, 92, 84, 86, 70, 95, 119, 94, 91, 64, 89, 102, 98, 73, 99, 42, 118, 47, 78, 43, 90, 45, 111, 89, 117, 97, 87, 90, 114, 52, 67, 59, 53, 105, 98, 124, 42, 115, 64, 82, 67, 66, 98, 117, 118, 114, 81, 51, 103, 40, 107, 44, 78, 169, 1, 84, 255, 67, 8, 222, 26, 10, 39, 176, 1, 38, 184, 1, 1, 136, 1, 0, 146, 1, 10, 123, 61, 81, 119, 102, 101, 126, 35, 110, 123, 152, 4, 136, 145, 97, 160, 6, 31]; - -List googleMessage1Proto2Payload = [10, 22, 103, 111, 111, 103, 108, 101, 95, 109, 101, 115, 115, 97, 103, 101, 49, 95, 112, 114, 111, 116, 111, 50, 18, 32, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 46, 112, 114, 111, 116, 111, 50, 46, 71, 111, 111, 103, 108, 101, 77, 101, 115, 115, 97, 103, 101, 49, 26, 228, 1, 10, 0, 16, 8, 24, 203, 143, 126, 34, 6, 51, 75, 43, 54, 41, 35, 74, 89, 49, 48, 41, 50, 117, 105, 83, 117, 111, 88, 76, 49, 94, 41, 118, 125, 105, 99, 70, 64, 62, 80, 40, 106, 60, 116, 35, 126, 116, 122, 92, 108, 103, 63, 63, 83, 38, 40, 60, 104, 114, 55, 69, 86, 115, 39, 108, 123, 39, 53, 96, 71, 111, 104, 99, 95, 40, 61, 116, 32, 101, 83, 32, 115, 123, 95, 73, 63, 105, 67, 119, 97, 71, 93, 76, 39, 42, 80, 117, 53, 40, 38, 119, 95, 58, 52, 123, 126, 90, 96, 1, 104, 0, 112, 1, 122, 89, 8, 25, 16, 36, 122, 67, 34, 63, 54, 80, 89, 52, 93, 76, 50, 99, 60, 125, 126, 50, 59, 92, 84, 86, 70, 95, 119, 94, 91, 64, 89, 102, 98, 73, 99, 42, 118, 47, 78, 43, 90, 45, 111, 89, 117, 97, 87, 90, 114, 52, 67, 59, 53, 105, 98, 124, 42, 115, 64, 82, 67, 66, 98, 117, 118, 114, 81, 51, 103, 40, 107, 44, 78, 169, 1, 84, 255, 67, 8, 222, 26, 10, 39, 176, 1, 38, 184, 1, 1, 136, 1, 0, 146, 1, 10, 123, 61, 81, 119, 102, 101, 126, 35, 110, 123, 152, 4, 136, 145, 97, 160, 6, 31]; - -List googleMessage2Payload = [10, 15, 103, 111, 111, 103, 108, 101, 95, 109, 101, 115, 115, 97, 103, 101, 50, 18, 32, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 46, 112, 114, 111, 116, 111, 50, 46, 71, 111, 111, 103, 108, 101, 77, 101, 115, 115, 97, 103, 101, 50, 26, 218, 148, 5, 18, 148, 11, 12, 159, 106, 219, 218, 153, 123, 59, 231, 187, 44, 192, 146, 231, 195, 61, 147, 118, 58, 219, 219, 223, 227, 137, 230, 90, 222, 190, 241, 149, 78, 3, 171, 0, 201, 101, 26, 254, 5, 70, 247, 116, 74, 69, 13, 117, 222, 72, 88, 188, 44, 61, 118, 144, 119, 44, 187, 224, 245, 127, 186, 189, 74, 81, 108, 41, 20, 146, 29, 93, 34, 149, 113, 244, 227, 102, 148, 158, 123, 112, 124, 150, 101, 53, 104, 17, 141, 27, 137, 156, 169, 58, 8, 133, 139, 58, 42, 249, 216, 228, 96, 76, 42, 250, 153, 151, 203, 129, 172, 16, 151, 28, 101, 132, 3, 35, 87, 21, 232, 91, 155, 249, 9, 128, 180, 232, 140, 235, 104, 169, 60, 155, 198, 151, 16, 47, 107, 107, 155, 209, 69, 11, 111, 120, 5, 140, 213, 131, 130, 104, 227, 21, 16, 124, 73, 103, 67, 170, 70, 177, 10, 224, 25, 2, 212, 252, 86, 205, 116, 211, 184, 235, 122, 23, 22, 143, 137, 144, 123, 39, 19, 9, 105, 0, 198, 38, 139, 74, 78, 169, 236, 193, 37, 233, 198, 101, 242, 109, 163, 9, 54, 7, 14, 174, 175, 247, 155, 248, 102, 185, 221, 178, 46, 30, 158, 1, 118, 24, 59, 174, 112, 11, 127, 203, 231, 247, 197, 144, 81, 177, 157, 28, 237, 114, 240, 12, 250, 187, 80, 207, 139, 146, 227, 149, 203, 58, 146, 7, 75, 196, 238, 217, 49, 245, 152, 42, 135, 67, 199, 184, 49, 10, 167, 181, 27, 193, 197, 188, 45, 146, 7, 187, 199, 108, 34, 221, 40, 234, 255, 172, 101, 190, 69, 140, 194, 195, 234, 247, 217, 197, 132, 182, 243, 152, 157, 128, 234, 46, 121, 10, 117, 213, 217, 185, 189, 50, 17, 197, 210, 186, 2, 156, 67, 26, 83, 114, 197, 27, 242, 87, 214, 205, 226, 103, 13, 80, 199, 47, 206, 162, 242, 249, 113, 245, 55, 143, 229, 140, 206, 144, 177, 37, 37, 31, 195, 232, 114, 217, 69, 42, 186, 207, 59, 33, 52, 167, 242, 113, 171, 108, 106, 226, 246, 47, 199, 9, 43, 78, 227, 195, 141, 57, 77, 98, 165, 176, 168, 195, 164, 37, 222, 238, 233, 164, 232, 35, 189, 79, 193, 143, 156, 116, 224, 97, 37, 207, 47, 245, 87, 185, 188, 36, 246, 129, 157, 129, 129, 217, 123, 131, 255, 47, 204, 134, 142, 124, 249, 81, 71, 164, 75, 219, 141, 83, 39, 25, 89, 235, 61, 214, 129, 179, 108, 234, 104, 185, 247, 104, 7, 103, 161, 228, 211, 61, 144, 109, 167, 90, 210, 168, 214, 221, 173, 179, 110, 224, 150, 162, 90, 131, 39, 150, 156, 164, 1, 76, 195, 225, 29, 212, 132, 144, 74, 224, 2, 103, 8, 79, 195, 186, 113, 255, 25, 149, 0, 164, 5, 184, 124, 136, 35, 85, 13, 131, 63, 11, 71, 46, 60, 67, 169, 197, 60, 253, 35, 69, 147, 205, 176, 6, 216, 70, 223, 159, 18, 40, 124, 7, 164, 93, 70, 10, 101, 149, 177, 47, 131, 198, 161, 246, 31, 217, 19, 127, 16, 171, 194, 27, 113, 187, 17, 56, 7, 117, 175, 220, 118, 109, 113, 22, 142, 64, 138, 222, 252, 159, 96, 167, 76, 243, 193, 204, 43, 186, 231, 255, 50, 95, 143, 102, 102, 97, 149, 232, 76, 14, 2, 239, 229, 212, 185, 21, 85, 139, 103, 222, 78, 53, 131, 113, 75, 27, 207, 125, 249, 68, 12, 77, 142, 176, 170, 22, 222, 10, 176, 45, 171, 161, 146, 238, 156, 112, 193, 119, 58, 172, 118, 160, 82, 8, 176, 253, 220, 29, 26, 74, 146, 23, 239, 7, 2, 181, 96, 53, 42, 162, 54, 74, 219, 58, 51, 173, 163, 149, 213, 219, 90, 87, 67, 76, 206, 107, 251, 134, 255, 172, 58, 192, 239, 101, 155, 147, 178, 138, 236, 231, 15, 139, 77, 151, 118, 43, 197, 23, 213, 3, 90, 70, 72, 63, 240, 58, 212, 162, 57, 150, 186, 218, 53, 125, 104, 117, 91, 117, 158, 159, 250, 24, 168, 238, 203, 206, 9, 172, 214, 162, 166, 227, 177, 252, 82, 243, 119, 175, 116, 96, 191, 16, 81, 85, 44, 53, 86, 208, 47, 0, 208, 79, 120, 53, 8, 65, 157, 90, 116, 34, 49, 39, 203, 151, 240, 214, 41, 57, 43, 116, 253, 171, 1, 62, 223, 234, 199, 83, 193, 150, 119, 57, 124, 214, 209, 86, 106, 123, 243, 16, 85, 29, 59, 82, 47, 151, 68, 185, 101, 86, 11, 28, 165, 186, 2, 37, 78, 58, 86, 30, 122, 74, 153, 222, 170, 247, 171, 245, 197, 154, 107, 173, 70, 26, 30, 224, 112, 175, 14, 71, 166, 13, 237, 106, 138, 91, 148, 194, 211, 172, 7, 47, 37, 213, 149, 10, 131, 93, 167, 55, 236, 79, 244, 203, 234, 94, 214, 138, 156, 34, 181, 159, 44, 14, 120, 109, 93, 47, 83, 79, 99, 232, 33, 25, 146, 60, 135, 112, 132, 19, 93, 18, 7, 214, 91, 86, 24, 33, 127, 44, 132, 9, 37, 177, 247, 103, 3, 23, 93, 40, 173, 84, 9, 88, 212, 3, 45, 218, 57, 174, 214, 101, 5, 136, 197, 162, 152, 86, 178, 33, 84, 59, 175, 39, 202, 89, 195, 112, 34, 42, 56, 112, 19, 92, 102, 8, 8, 175, 2, 87, 41, 62, 232, 209, 85, 30, 4, 157, 236, 84, 207, 173, 100, 60, 211, 114, 164, 226, 141, 122, 64, 188, 184, 14, 117, 102, 82, 168, 34, 188, 153, 232, 83, 91, 247, 22, 82, 222, 209, 171, 85, 37, 132, 205, 91, 139, 11, 215, 136, 244, 100, 38, 33, 135, 22, 108, 133, 218, 91, 239, 204, 91, 122, 47, 187, 230, 89, 9, 68, 189, 31, 198, 16, 225, 37, 26, 56, 234, 179, 234, 90, 122, 31, 46, 88, 114, 199, 204, 68, 138, 144, 120, 130, 225, 223, 249, 170, 84, 18, 116, 50, 1, 147, 203, 212, 157, 21, 63, 98, 252, 52, 154, 39, 113, 148, 82, 59, 76, 215, 72, 31, 141, 197, 185, 44, 166, 67, 46, 2, 43, 111, 227, 215, 62, 184, 89, 231, 84, 89, 186, 93, 135, 105, 71, 85, 245, 81, 17, 77, 141, 190, 94, 124, 202, 84, 164, 60, 217, 158, 46, 89, 230, 61, 55, 140, 81, 195, 232, 185, 59, 106, 231, 243, 29, 234, 152, 35, 125, 100, 54, 85, 50, 225, 117, 109, 17, 102, 13, 234, 19, 29, 14, 181, 43, 96, 118, 73, 50, 187, 4, 50, 104, 88, 17, 34, 214, 106, 95, 224, 188, 129, 190, 116, 104, 216, 39, 4, 200, 202, 122, 234, 181, 254, 165, 30, 91, 49, 200, 188, 115, 78, 241, 194, 95, 3, 237, 218, 208, 82, 150, 166, 7, 44, 45, 146, 94, 153, 77, 82, 57, 114, 129, 104, 64, 26, 124, 106, 178, 242, 198, 165, 162, 162, 108, 109, 143, 252, 21, 100, 235, 77, 51, 117, 51, 212, 226, 137, 208, 19, 192, 194, 227, 117, 131, 1, 205, 137, 129, 68, 134, 130, 39, 222, 139, 240, 3, 101, 192, 192, 2, 98, 132, 233, 103, 236, 62, 12, 52, 108, 56, 243, 153, 158, 50, 4, 193, 45, 31, 106, 160, 6, 122, 208, 221, 104, 37, 85, 233, 66, 208, 125, 200, 16, 17, 93, 62, 250, 13, 150, 195, 193, 84, 21, 12, 146, 232, 137, 172, 135, 47, 214, 69, 86, 32, 251, 231, 179, 11, 254, 198, 233, 34, 241, 155, 187, 43, 137, 140, 212, 198, 199, 31, 136, 167, 223, 177, 101, 195, 75, 127, 156, 168, 98, 19, 250, 55, 114, 240, 21, 118, 138, 239, 15, 207, 218, 158, 99, 121, 81, 103, 94, 252, 216, 193, 104, 182, 188, 174, 64, 74, 130, 239, 192, 127, 42, 64, 192, 221, 161, 131, 184, 153, 118, 94, 60, 215, 16, 184, 204, 64, 78, 235, 114, 227, 32, 159, 208, 161, 171, 67, 122, 195, 175, 203, 243, 154, 46, 144, 165, 154, 222, 133, 216, 205, 174, 197, 133, 121, 132, 144, 166, 4, 226, 0, 251, 150, 125, 220, 94, 139, 111, 31, 50, 94, 9, 245, 234, 171, 106, 161, 169, 128, 19, 50, 97, 200, 19, 164, 53, 91, 25, 86, 28, 27, 156, 118, 225, 174, 207, 93, 29, 81, 49, 25, 42, 191, 82, 122, 195, 185, 218, 218, 24, 255, 208, 255, 81, 32, 229, 168, 4, 83, 40, 26, 93, 177, 138, 168, 62, 98, 21, 48, 115, 107, 40, 81, 76, 91, 84, 71, 41, 117, 65, 87, 52, 60, 54, 114, 95, 106, 44, 83, 120, 128, 200, 162, 205, 191, 233, 148, 234, 118, 250, 1, 15, 13, 22, 150, 126, 63, 29, 173, 151, 16, 63, 69, 99, 229, 119, 63, 84, 83, 40, 86, 93, 226, 191, 108, 63, 98, 29, 44, 48, 76, 123, 57, 118, 55, 47, 56, 93, 74, 45, 83, 66, 53, 79, 67, 68, 87, 75, 106, 100, 56, 75, 124, 55, 38, 106, 54, 120, 128, 160, 150, 148, 169, 144, 178, 161, 113, 250, 1, 17, 13, 168, 105, 110, 62, 29, 28, 16, 242, 61, 56, 1, 69, 234, 29, 11, 63, 84, 83, 40, 61, 93, 230, 215, 197, 62, 98, 22, 122, 45, 91, 73, 64, 36, 35, 88, 72, 82, 55, 105, 61, 72, 91, 49, 68, 53, 45, 71, 118, 32, 120, 128, 224, 218, 237, 191, 136, 214, 237, 254, 1, 250, 1, 12, 13, 119, 112, 218, 60, 29, 247, 98, 87, 63, 56, 0, 84, 83, 40, 117, 93, 246, 232, 192, 62, 98, 44, 71, 62, 60, 126, 115, 112, 83, 53, 104, 46, 42, 102, 97, 94, 34, 74, 126, 60, 76, 108, 56, 37, 101, 90, 70, 38, 76, 121, 46, 88, 88, 116, 44, 94, 48, 41, 53, 55, 117, 76, 116, 69, 71, 54, 120, 128, 134, 208, 242, 193, 174, 128, 149, 143, 1, 250, 1, 12, 13, 22, 187, 204, 62, 29, 182, 24, 58, 63, 56, 0, 84, 83, 40, 124, 93, 199, 59, 12, 63, 98, 38, 34, 83, 125, 42, 43, 66, 88, 97, 88, 108, 67, 89, 39, 47, 84, 53, 90, 34, 78, 119, 52, 103, 70, 32, 119, 113, 92, 78, 78, 32, 64, 52, 123, 89, 86, 36, 117, 33, 120, 128, 168, 203, 194, 136, 219, 218, 148, 70, 250, 1, 12, 13, 174, 130, 79, 63, 29, 18, 18, 2, 63, 56, 1, 84, 83, 40, 82, 93, 176, 19, 198, 61, 98, 23, 40, 59, 62, 56, 97, 117, 106, 98, 104, 37, 63, 57, 45, 125, 49, 56, 101, 41, 50, 87, 75, 46, 92, 120, 128, 192, 130, 212, 215, 242, 147, 160, 189, 1, 250, 1, 12, 13, 246, 153, 22, 63, 29, 55, 74, 1, 63, 56, 0, 84, 83, 40, 75, 93, 196, 145, 244, 62, 98, 20, 96, 71, 96, 41, 60, 118, 92, 83, 67, 108, 88, 52, 92, 74, 117, 57, 60, 118, 118, 110, 120, 128, 204, 165, 154, 192, 208, 172, 210, 37, 250, 1, 10, 13, 84, 201, 163, 61, 29, 29, 71, 207, 62, 84, 83, 40, 43, 93, 58, 248, 136, 61, 98, 26, 92, 121, 93, 111, 95, 49, 86, 50, 53, 40, 93, 93, 48, 111, 39, 84, 99, 65, 60, 88, 67, 109, 98, 102, 51, 59, 120, 128, 168, 132, 197, 217, 196, 162, 168, 204, 1, 250, 1, 10, 13, 219, 75, 210, 62, 29, 71, 26, 69, 63, 84, 83, 40, 24, 93, 128, 223, 24, 63, 98, 48, 33, 64, 35, 95, 124, 126, 99, 98, 91, 34, 34, 71, 66, 56, 91, 44, 38, 111, 58, 86, 100, 42, 102, 98, 110, 54, 118, 91, 68, 87, 47, 72, 35, 78, 91, 61, 45, 48, 41, 85, 32, 94, 95, 85, 64, 70, 64, 77, 120, 128, 200, 157, 147, 161, 167, 236, 153, 75, 250, 1, 10, 13, 55, 46, 37, 62, 29, 30, 92, 6, 63, 84, 83, 40, 72, 93, 183, 212, 252, 62, 98, 27, 90, 115, 117, 88, 63, 111, 102, 40, 39, 62, 36, 114, 89, 67, 114, 91, 61, 126, 117, 102, 100, 86, 38, 73, 48, 65, 72, 120, 128, 208, 216, 211, 138, 239, 196, 157, 114, 250, 1, 12, 13, 61, 84, 219, 62, 29, 203, 233, 62, 61, 56, 0, 84, 83, 40, 7, 93, 17, 169, 22, 63, 98, 55, 120, 72, 90, 101, 99, 108, 63, 66, 77, 120, 63, 91, 98, 102, 34, 76, 112, 57, 48, 91, 111, 105, 35, 108, 76, 72, 125, 71, 112, 94, 34, 41, 125, 58, 96, 122, 56, 117, 89, 49, 85, 67, 55, 93, 101, 109, 77, 90, 69, 72, 86, 105, 36, 72, 103, 120, 128, 200, 144, 243, 202, 198, 132, 153, 20, 250, 1, 12, 13, 175, 11, 200, 62, 29, 46, 120, 79, 63, 56, 0, 84, 83, 40, 36, 93, 31, 193, 81, 63, 98, 45, 119, 81, 109, 117, 54, 93, 71, 37, 39, 52, 122, 95, 125, 38, 75, 82, 68, 39, 94, 121, 66, 33, 72, 39, 55, 36, 84, 81, 81, 85, 74, 92, 61, 67, 92, 113, 72, 103, 79, 47, 37, 84, 62, 51, 91, 120, 128, 143, 144, 232, 209, 249, 128, 193, 142, 1, 250, 1, 5, 13, 105, 246, 134, 61, 84, 83, 40, 46, 93, 26, 91, 150, 62, 98, 28, 90, 32, 101, 89, 64, 74, 118, 40, 102, 93, 49, 40, 116, 83, 81, 105, 61, 65, 90, 72, 89, 42, 92, 87, 78, 116, 109, 97, 120, 128, 132, 220, 139, 172, 173, 224, 221, 28, 250, 1, 12, 13, 131, 50, 230, 62, 29, 100, 93, 14, 62, 56, 1, 200, 4, 23, 84, 83, 40, 29, 93, 16, 113, 104, 63, 98, 32, 84, 99, 35, 124, 119, 101, 104, 97, 42, 61, 39, 47, 33, 108, 73, 62, 104, 74, 121, 97, 80, 66, 46, 43, 75, 92, 52, 115, 59, 79, 51, 117, 120, 128, 208, 164, 204, 160, 254, 164, 226, 84, 250, 1, 10, 13, 216, 28, 33, 63, 29, 118, 27, 118, 63, 84, 83, 40, 7, 93, 149, 33, 142, 62, 98, 29, 67, 98, 97, 112, 72, 82, 57, 70, 100, 108, 115, 106, 44, 67, 82, 55, 83, 69, 49, 84, 118, 80, 58, 81, 116, 69, 89, 41, 49, 120, 128, 168, 214, 142, 248, 160, 178, 245, 192, 1, 250, 1, 12, 13, 218, 98, 197, 62, 29, 237, 130, 88, 63, 56, 0, 84, 83, 40, 5, 93, 106, 25, 198, 62, 98, 29, 103, 55, 111, 39, 111, 115, 99, 102, 111, 63, 40, 47, 44, 96, 93, 42, 53, 105, 80, 66, 114, 71, 48, 123, 34, 119, 48, 53, 52, 120, 128, 232, 184, 209, 246, 196, 198, 139, 181, 1, 250, 1, 5, 13, 95, 144, 27, 61, 84, 83, 40, 52, 93, 105, 160, 185, 61, 98, 27, 125, 106, 32, 98, 62, 64, 95, 51, 105, 74, 49, 107, 54, 76, 72, 82, 69, 46, 38, 113, 96, 81, 63, 38, 115, 37, 119, 120, 128, 160, 161, 225, 228, 247, 137, 138, 91, 250, 1, 10, 13, 61, 107, 248, 62, 29, 159, 209, 6, 63, 84, 83, 40, 53, 93, 235, 228, 150, 62, 98, 27, 96, 38, 45, 116, 93, 70, 118, 72, 111, 47, 40, 124, 126, 47, 107, 74, 102, 98, 109, 56, 123, 83, 71, 76, 74, 121, 110, 120, 128, 252, 134, 155, 196, 234, 183, 216, 161, 1, 250, 1, 10, 13, 198, 157, 218, 62, 29, 144, 227, 117, 63, 84, 83, 40, 90, 93, 25, 104, 125, 62, 98, 25, 34, 116, 42, 47, 63, 82, 116, 125, 55, 93, 34, 80, 73, 66, 38, 100, 56, 76, 123, 106, 99, 47, 63, 44, 94, 120, 128, 136, 210, 235, 202, 173, 144, 221, 214, 1, 250, 1, 10, 13, 214, 48, 230, 62, 29, 15, 79, 52, 63, 84, 83, 40, 74, 93, 87, 121, 38, 63, 98, 22, 32, 115, 74, 112, 122, 42, 36, 91, 43, 52, 109, 111, 33, 62, 81, 117, 35, 40, 114, 41, 32, 123, 120, 128, 216, 216, 187, 217, 195, 197, 221, 127, 250, 1, 12, 13, 134, 116, 109, 63, 29, 131, 57, 10, 63, 56, 1, 84, 83, 40, 71, 93, 205, 37, 122, 63, 98, 38, 80, 93, 39, 49, 69, 88, 92, 45, 37, 87, 70, 123, 95, 91, 65, 103, 124, 114, 45, 32, 90, 103, 93, 66, 111, 78, 93, 36, 115, 81, 60, 41, 83, 39, 43, 76, 44, 91, 120, 128, 140, 175, 135, 167, 238, 248, 186, 184, 1, 250, 1, 5, 13, 147, 71, 217, 62, 84, 83, 40, 86, 93, 171, 223, 195, 62, 98, 48, 111, 74, 96, 117, 73, 67, 90, 55, 122, 95, 99, 84, 66, 104, 32, 100, 64, 118, 122, 88, 56, 83, 59, 61, 71, 88, 80, 115, 90, 64, 72, 100, 62, 53, 118, 50, 96, 120, 36, 57, 73, 92, 86, 92, 68, 126, 99, 65, 120, 128, 184, 190, 172, 151, 177, 243, 227, 186, 1, 250, 1, 10, 13, 86, 201, 211, 62, 29, 38, 172, 145, 62, 84, 83, 40, 67, 93, 203, 233, 243, 62, 98, 42, 40, 43, 60, 47, 67, 78, 112, 114, 101, 92, 89, 54, 126, 54, 45, 112, 108, 35, 71, 113, 96, 47, 91, 124, 93, 120, 72, 116, 46, 71, 51, 37, 117, 55, 54, 42, 90, 35, 61, 74, 51, 69, 120, 128, 168, 211, 239, 213, 227, 154, 253, 89, 250, 1, 10, 13, 211, 95, 127, 63, 29, 98, 142, 118, 63, 84, 83, 40, 50, 93, 53, 83, 201, 62, 98, 29, 103, 86, 80, 93, 67, 114, 95, 107, 119, 78, 63, 80, 74, 37, 123, 99, 61, 73, 83, 64, 102, 32, 35, 54, 105, 100, 124, 94, 59, 120, 128, 144, 184, 184, 199, 245, 192, 195, 187, 1, 250, 1, 10, 13, 253, 91, 33, 63, 29, 48, 88, 8, 60, 84, 83, 40, 32, 93, 61, 148, 8, 63, 98, 36, 95, 61, 93, 105, 110, 50, 53, 74, 61, 90, 59, 82, 114, 68, 55, 96, 69, 85, 71, 37, 93, 103, 82, 57, 115, 94, 117, 33, 80, 75, 114, 62, 56, 118, 68, 93, 120, 128, 216, 225, 198, 174, 198, 141, 182, 9, 250, 1, 7, 13, 148, 4, 10, 63, 56, 1, 84, 83, 40, 44, 93, 108, 63, 230, 61, 98, 47, 59, 97, 72, 122, 54, 113, 87, 70, 89, 39, 38, 88, 50, 116, 119, 106, 68, 116, 48, 60, 51, 121, 113, 102, 123, 57, 122, 126, 89, 90, 112, 122, 37, 121, 65, 38, 42, 61, 92, 107, 61, 90, 117, 68, 107, 101, 37, 120, 160, 253, 190, 181, 224, 234, 247, 171, 131, 1, 250, 1, 5, 13, 206, 189, 239, 62, 84, 83, 40, 109, 93, 2, 137, 47, 63, 98, 25, 93, 73, 37, 117, 65, 110, 96, 125, 123, 117, 88, 107, 125, 53, 42, 82, 55, 82, 112, 95, 38, 56, 67, 125, 88, 120, 192, 193, 185, 208, 160, 141, 204, 131, 133, 1, 250, 1, 7, 13, 38, 58, 245, 62, 56, 1, 84, 83, 40, 30, 93, 181, 115, 90, 62, 98, 40, 120, 82, 102, 120, 51, 81, 32, 35, 32, 54, 73, 62, 95, 117, 100, 109, 119, 46, 97, 51, 108, 79, 90, 50, 90, 68, 37, 38, 61, 61, 65, 101, 103, 103, 124, 38, 37, 37, 33, 88, 120, 128, 240, 225, 233, 154, 141, 143, 206, 67, 250, 1, 5, 13, 240, 151, 86, 62, 84, 83, 40, 66, 93, 237, 103, 28, 63, 98, 37, 53, 102, 87, 77, 57, 105, 43, 62, 56, 35, 70, 73, 118, 83, 61, 109, 75, 120, 101, 98, 116, 99, 86, 118, 119, 94, 104, 113, 45, 41, 96, 89, 124, 32, 124, 115, 108, 120, 128, 152, 173, 254, 152, 233, 233, 242, 74, 250, 1, 5, 13, 175, 127, 77, 63, 84, 83, 40, 68, 93, 107, 143, 63, 62, 98, 27, 34, 76, 99, 65, 83, 46, 80, 102, 51, 44, 88, 77, 110, 100, 81, 48, 96, 84, 90, 32, 56, 49, 47, 66, 108, 75, 118, 120, 128, 224, 174, 150, 137, 138, 246, 178, 201, 1, 250, 1, 10, 13, 52, 175, 222, 62, 29, 2, 190, 104, 60, 84, 83, 40, 111, 93, 64, 27, 3, 62, 98, 31, 49, 80, 114, 54, 113, 85, 68, 79, 56, 42, 120, 123, 39, 43, 46, 59, 75, 99, 44, 34, 49, 82, 119, 111, 61, 65, 84, 39, 55, 120, 61, 120, 128, 224, 169, 160, 235, 142, 206, 130, 25, 250, 1, 10, 13, 232, 208, 131, 62, 29, 103, 111, 238, 62, 84, 83, 40, 37, 93, 215, 207, 158, 62, 98, 47, 112, 58, 61, 42, 47, 43, 103, 46, 55, 50, 58, 96, 60, 90, 43, 101, 116, 112, 121, 94, 87, 34, 120, 79, 33, 61, 56, 62, 108, 102, 99, 90, 110, 112, 73, 49, 69, 33, 113, 38, 105, 105, 87, 43, 39, 114, 106, 120, 128, 240, 174, 135, 202, 155, 247, 186, 208, 1, 250, 1, 10, 13, 64, 83, 81, 63, 29, 177, 93, 21, 63, 84, 83, 40, 38, 93, 212, 202, 209, 62, 98, 40, 81, 92, 100, 110, 64, 108, 41, 113, 113, 73, 64, 80, 77, 95, 113, 75, 49, 120, 63, 114, 125, 115, 115, 108, 73, 109, 72, 46, 81, 91, 79, 52, 73, 60, 40, 49, 43, 89, 111, 88, 120, 128, 160, 173, 217, 174, 232, 233, 202, 245, 1, 250, 1, 10, 13, 168, 68, 69, 59, 29, 6, 194, 82, 62, 84, 83, 40, 43, 93, 81, 233, 220, 62, 98, 33, 39, 92, 70, 32, 63, 74, 115, 56, 73, 72, 93, 103, 118, 68, 82, 67, 122, 63, 54, 120, 43, 38, 49, 86, 96, 63, 86, 41, 102, 122, 125, 95, 82, 120, 128, 236, 156, 242, 135, 229, 230, 145, 49, 250, 1, 10, 13, 41, 31, 183, 62, 29, 96, 170, 51, 62, 84, 83, 40, 2, 93, 249, 170, 17, 62, 98, 45, 50, 49, 91, 123, 32, 115, 74, 72, 51, 53, 60, 52, 123, 95, 123, 71, 61, 33, 74, 111, 63, 32, 114, 105, 80, 77, 73, 125, 52, 82, 34, 66, 65, 108, 45, 37, 61, 47, 37, 61, 44, 55, 43, 65, 108, 120, 128, 168, 250, 198, 134, 149, 210, 183, 67, 250, 1, 5, 13, 142, 168, 123, 63, 84, 83, 40, 40, 93, 192, 49, 51, 63, 98, 24, 43, 38, 64, 100, 49, 109, 50, 61, 112, 75, 82, 73, 75, 51, 96, 50, 121, 113, 47, 81, 118, 42, 46, 123, 120, 128, 208, 236, 238, 197, 254, 228, 246, 18, 250, 1, 7, 13, 25, 155, 54, 63, 56, 0, 84, 83, 40, 111, 93, 129, 179, 4, 63, 98, 51, 124, 126, 79, 43, 58, 41, 75, 97, 92, 48, 126, 122, 103, 76, 98, 82, 115, 95, 35, 74, 47, 114, 94, 110, 107, 107, 33, 119, 68, 87, 76, 101, 61, 107, 114, 75, 34, 61, 49, 42, 52, 79, 60, 97, 47, 86, 47, 93, 74, 72, 57, 120, 128, 222, 189, 196, 152, 240, 237, 163, 7, 250, 1, 10, 13, 51, 41, 58, 61, 29, 56, 208, 222, 62, 84, 83, 40, 45, 93, 130, 93, 227, 61, 98, 26, 63, 96, 63, 78, 40, 83, 61, 36, 99, 57, 92, 122, 88, 55, 79, 86, 77, 120, 53, 94, 85, 124, 94, 53, 91, 67, 120, 128, 156, 205, 216, 151, 217, 233, 196, 189, 1, 250, 1, 10, 13, 71, 142, 115, 63, 29, 56, 76, 163, 62, 84, 83, 40, 53, 93, 112, 148, 46, 63, 98, 54, 115, 73, 103, 44, 65, 124, 97, 34, 96, 50, 55, 125, 116, 120, 51, 36, 51, 120, 98, 85, 42, 51, 98, 84, 65, 33, 42, 114, 99, 37, 65, 101, 59, 87, 104, 81, 111, 42, 46, 88, 107, 118, 84, 75, 61, 126, 104, 60, 72, 62, 58, 33, 91, 112, 120, 128, 160, 175, 224, 243, 239, 249, 130, 73, 250, 1, 12, 13, 162, 231, 43, 63, 29, 44, 105, 58, 63, 56, 0, 84, 83, 40, 98, 93, 88, 182, 172, 62, 98, 29, 114, 110, 61, 91, 112, 81, 97, 61, 47, 96, 51, 40, 106, 41, 105, 51, 94, 55, 54, 66, 55, 109, 73, 68, 105, 63, 42, 73, 33, 120, 128, 148, 197, 188, 145, 157, 169, 228, 139, 1, 250, 1, 5, 13, 125, 250, 75, 63, 84, 83, 40, 80, 93, 246, 80, 171, 62, 98, 29, 108, 101, 123, 88, 120, 89, 107, 60, 75, 44, 102, 42, 50, 54, 81, 39, 66, 33, 77, 123, 70, 40, 37, 68, 119, 112, 80, 70, 56, 120, 128, 216, 161, 203, 180, 192, 141, 218, 164, 1, 250, 1, 12, 13, 203, 139, 150, 61, 29, 159, 21, 98, 63, 56, 1, 84, 83, 40, 95, 93, 120, 1, 121, 63, 98, 26, 67, 108, 90, 100, 92, 74, 38, 107, 96, 98, 58, 87, 41, 87, 66, 94, 39, 62, 95, 119, 100, 95, 87, 96, 40, 41, 120, 128, 144, 207, 163, 152, 135, 249, 156, 49, 250, 1, 12, 13, 141, 86, 26, 61, 29, 125, 100, 48, 62, 56, 0, 84, 83, 40, 109, 93, 199, 70, 9, 63, 98, 28, 73, 57, 46, 57, 102, 60, 111, 80, 63, 60, 67, 97, 93, 56, 71, 110, 117, 91, 126, 85, 118, 110, 55, 98, 53, 121, 92, 83, 120, 128, 156, 198, 147, 145, 222, 177, 156, 137, 1, 250, 1, 5, 13, 209, 164, 11, 61, 84, 83, 40, 78, 93, 198, 163, 32, 63, 98, 30, 111, 102, 46, 110, 73, 40, 118, 105, 77, 46, 87, 72, 60, 117, 34, 110, 96, 84, 45, 83, 37, 59, 91, 89, 33, 74, 35, 108, 94, 59, 120, 128, 152, 171, 136, 247, 195, 217, 194, 184, 1, 250, 1, 10, 13, 17, 252, 154, 62, 29, 232, 172, 45, 63, 84, 83, 40, 94, 93, 89, 77, 88, 63, 98, 25, 118, 42, 87, 68, 108, 99, 53, 40, 104, 54, 110, 69, 63, 118, 108, 114, 81, 116, 38, 86, 83, 42, 83, 109, 125, 120, 128, 225, 228, 153, 204, 137, 166, 206, 7, 250, 1, 12, 13, 48, 238, 212, 61, 29, 79, 167, 241, 61, 56, 0, 84, 83, 40, 90, 93, 34, 180, 146, 62, 98, 26, 102, 85, 37, 43, 100, 40, 47, 64, 111, 111, 51, 114, 66, 50, 37, 99, 117, 112, 72, 119, 70, 89, 48, 60, 107, 85, 120, 128, 232, 237, 166, 191, 196, 238, 182, 99, 250, 1, 7, 13, 219, 182, 205, 62, 56, 1, 84, 83, 40, 77, 93, 21, 13, 213, 61, 98, 32, 117, 36, 122, 39, 111, 58, 106, 40, 105, 65, 84, 54, 102, 63, 55, 49, 91, 120, 64, 51, 57, 104, 106, 115, 45, 68, 103, 63, 47, 61, 104, 87, 120, 128, 236, 204, 252, 251, 238, 230, 228, 29, 250, 1, 12, 13, 173, 236, 58, 63, 29, 53, 58, 158, 62, 56, 1, 84, 83, 40, 52, 93, 103, 37, 233, 61, 98, 25, 52, 73, 42, 104, 93, 86, 113, 67, 73, 123, 83, 68, 46, 76, 71, 70, 111, 45, 57, 39, 120, 74, 81, 75, 120, 120, 128, 144, 173, 173, 254, 249, 232, 234, 59, 250, 1, 7, 13, 214, 17, 21, 63, 56, 1, 84, 83, 40, 1, 93, 181, 245, 225, 59, 98, 26, 34, 73, 105, 80, 100, 117, 40, 80, 42, 51, 34, 105, 122, 107, 106, 105, 47, 60, 48, 110, 116, 47, 84, 63, 48, 104, 120, 128, 176, 170, 198, 142, 133, 211, 178, 117, 250, 1, 12, 13, 207, 171, 38, 63, 29, 114, 179, 83, 63, 56, 0, 84, 83, 40, 126, 93, 141, 156, 99, 63, 98, 54, 66, 72, 120, 42, 89, 93, 103, 80, 61, 63, 35, 37, 37, 47, 79, 101, 96, 46, 60, 59, 107, 49, 42, 113, 115, 73, 63, 122, 125, 73, 96, 119, 52, 44, 71, 81, 113, 96, 48, 81, 83, 95, 80, 85, 44, 79, 58, 33, 57, 49, 124, 95, 116, 99, 120, 128, 156, 184, 201, 193, 225, 193, 203, 140, 1, 250, 1, 10, 13, 166, 218, 45, 62, 29, 10, 70, 161, 62, 84, 83, 40, 9, 93, 10, 169, 103, 62, 98, 73, 48, 61, 108, 82, 114, 93, 42, 111, 119, 103, 124, 115, 32, 125, 106, 102, 44, 96, 83, 101, 68, 47, 62, 96, 107, 76, 32, 35, 79, 35, 55, 51, 106, 74, 32, 51, 102, 44, 92, 119, 33, 94, 65, 56, 60, 61, 124, 97, 41, 124, 124, 78, 104, 65, 111, 32, 126, 43, 101, 70, 92, 39, 63, 116, 80, 104, 40, 84, 125, 86, 126, 126, 36, 120, 128, 248, 244, 131, 250, 200, 167, 159, 208, 1, 250, 1, 5, 13, 17, 208, 52, 63, 84, 83, 40, 92, 93, 200, 122, 78, 63, 98, 65, 37, 67, 78, 78, 62, 120, 82, 37, 103, 73, 73, 89, 126, 52, 90, 70, 53, 58, 121, 62, 75, 103, 83, 52, 72, 99, 82, 124, 125, 74, 45, 92, 42, 51, 120, 102, 55, 119, 62, 45, 108, 110, 103, 62, 94, 121, 126, 66, 68, 87, 109, 64, 104, 70, 64, 60, 111, 57, 38, 90, 70, 85, 39, 61, 60, 120, 128, 176, 171, 214, 188, 255, 218, 178, 229, 1, 250, 1, 5, 13, 105, 240, 252, 62, 84, 83, 40, 99, 93, 48, 187, 142, 62, 98, 39, 114, 47, 61, 123, 107, 81, 92, 126, 53, 84, 77, 99, 47, 88, 69, 91, 107, 115, 99, 113, 91, 118, 124, 112, 99, 102, 54, 102, 74, 33, 114, 74, 51, 39, 80, 72, 80, 68, 123, 120, 128, 232, 245, 147, 158, 179, 174, 159, 241, 1, 250, 1, 5, 13, 233, 113, 53, 63, 84, 83, 40, 38, 93, 75, 173, 29, 63, 98, 33, 99, 87, 117, 54, 124, 97, 97, 79, 118, 106, 119, 93, 123, 50, 75, 55, 37, 59, 116, 84, 51, 97, 35, 80, 39, 40, 124, 42, 71, 118, 110, 46, 62, 120, 128, 160, 179, 213, 196, 132, 154, 171, 165, 1, 250, 1, 12, 13, 100, 33, 132, 62, 29, 184, 4, 134, 62, 56, 1, 84, 83, 40, 63, 93, 113, 180, 134, 62, 98, 40, 37, 104, 80, 122, 94, 58, 73, 83, 53, 36, 44, 118, 88, 109, 103, 71, 34, 84, 68, 46, 116, 99, 86, 40, 32, 123, 105, 62, 95, 120, 50, 73, 84, 34, 110, 107, 97, 101, 67, 53, 120, 128, 192, 175, 198, 208, 151, 252, 178, 83, 250, 1, 5, 13, 25, 73, 11, 63, 84, 83, 40, 94, 93, 215, 124, 137, 61, 98, 29, 58, 32, 53, 63, 86, 115, 54, 99, 72, 65, 67, 64, 49, 71, 122, 98, 80, 42, 114, 60, 112, 97, 65, 86, 126, 122, 100, 59, 49, 120, 128, 130, 156, 226, 206, 141, 224, 145, 21, 250, 1, 12, 13, 249, 131, 1, 63, 29, 228, 181, 175, 62, 56, 1, 84, 83, 40, 63, 93, 74, 228, 79, 63, 98, 26, 32, 102, 74, 102, 107, 98, 78, 33, 51, 93, 78, 89, 57, 106, 95, 100, 82, 96, 74, 52, 87, 93, 93, 64, 91, 47, 120, 128, 208, 153, 175, 182, 233, 204, 249, 120, 250, 1, 10, 13, 99, 12, 6, 63, 29, 42, 49, 137, 62, 84, 83, 40, 106, 93, 193, 179, 5, 61, 98, 61, 67, 96, 89, 122, 123, 37, 66, 39, 88, 65, 96, 46, 120, 80, 64, 74, 79, 80, 73, 124, 95, 82, 59, 53, 65, 40, 41, 43, 92, 103, 123, 102, 66, 90, 42, 119, 94, 111, 99, 94, 47, 89, 112, 113, 118, 78, 100, 111, 58, 99, 73, 32, 111, 114, 66, 112, 69, 68, 88, 114, 123, 120, 128, 174, 173, 196, 149, 241, 234, 162, 32, 250, 1, 5, 13, 93, 12, 226, 62, 84, 83, 40, 106, 93, 79, 241, 198, 62, 98, 34, 121, 106, 62, 69, 71, 106, 95, 108, 105, 108, 38, 96, 72, 62, 114, 67, 57, 111, 119, 61, 123, 118, 78, 55, 57, 82, 58, 55, 111, 98, 119, 47, 32, 76, 120, 128, 176, 172, 128, 176, 173, 227, 130, 124, 250, 1, 5, 13, 99, 52, 53, 63, 84, 83, 40, 51, 93, 55, 230, 225, 62, 98, 55, 114, 119, 105, 51, 37, 38, 60, 47, 124, 38, 101, 79, 97, 70, 81, 81, 72, 34, 59, 38, 43, 116, 80, 72, 124, 38, 115, 117, 95, 122, 65, 46, 124, 110, 124, 126, 83, 103, 113, 72, 121, 41, 84, 52, 81, 64, 33, 81, 92, 77, 36, 121, 71, 63, 61, 120, 128, 224, 162, 200, 191, 134, 150, 194, 252, 1, 250, 1, 10, 13, 28, 247, 213, 62, 29, 0, 208, 178, 62, 84, 83, 40, 29, 93, 164, 197, 123, 63, 98, 47, 49, 69, 79, 34, 99, 86, 82, 113, 72, 81, 125, 96, 48, 114, 43, 34, 64, 59, 118, 92, 37, 66, 57, 49, 118, 70, 102, 92, 80, 32, 86, 50, 81, 114, 54, 84, 89, 81, 79, 121, 108, 46, 40, 43, 79, 66, 105, 120, 128, 240, 195, 182, 138, 133, 159, 180, 70, 250, 1, 10, 13, 2, 16, 91, 62, 69, 12, 86, 148, 62, 84, 83, 40, 80, 93, 166, 67, 0, 62, 98, 101, 74, 89, 119, 109, 44, 61, 43, 61, 111, 116, 65, 72, 121, 107, 46, 60, 91, 86, 72, 109, 107, 123, 110, 118, 58, 46, 97, 83, 92, 50, 72, 53, 67, 75, 103, 118, 122, 71, 71, 60, 70, 50, 42, 118, 107, 95, 48, 99, 51, 76, 119, 93, 114, 109, 63, 77, 106, 32, 83, 125, 90, 86, 95, 92, 76, 44, 36, 78, 35, 55, 65, 51, 46, 44, 70, 88, 112, 118, 43, 90, 124, 125, 63, 47, 58, 105, 65, 84, 43, 57, 44, 121, 115, 72, 96, 110, 81, 77, 74, 95, 90, 120, 128, 144, 203, 236, 250, 128, 217, 228, 214, 1, 250, 1, 5, 13, 4, 142, 43, 63, 84, 83, 40, 122, 93, 91, 144, 253, 61, 98, 29, 99, 78, 102, 70, 101, 91, 114, 116, 120, 32, 92, 55, 80, 66, 97, 105, 79, 67, 104, 42, 70, 63, 100, 74, 87, 39, 67, 76, 74, 120, 128, 240, 225, 243, 143, 160, 143, 158, 255, 1, 250, 1, 12, 13, 3, 233, 152, 62, 29, 35, 98, 159, 62, 56, 0, 84, 83, 40, 4, 93, 212, 88, 17, 63, 98, 23, 59, 90, 45, 68, 92, 56, 37, 121, 72, 35, 87, 33, 42, 103, 116, 43, 60, 117, 113, 100, 67, 104, 59, 120, 128, 216, 252, 163, 157, 205, 229, 159, 234, 1, 250, 1, 5, 13, 221, 146, 40, 63, 84, 83, 40, 32, 93, 140, 76, 209, 62, 98, 27, 73, 121, 99, 62, 115, 76, 107, 70, 47, 65, 125, 43, 112, 64, 68, 60, 70, 126, 38, 56, 99, 84, 114, 126, 70, 79, 62, 120, 128, 146, 222, 133, 163, 137, 241, 173, 152, 1, 250, 1, 7, 13, 21, 81, 5, 63, 56, 0, 84, 83, 40, 39, 93, 85, 229, 57, 63, 98, 32, 69, 113, 91, 32, 99, 100, 98, 83, 62, 64, 101, 105, 62, 105, 33, 67, 126, 76, 116, 111, 88, 125, 98, 115, 38, 100, 119, 67, 46, 89, 115, 111, 120, 192, 235, 239, 186, 217, 220, 254, 214, 5, 250, 1, 5, 13, 211, 56, 134, 62, 84, 83, 40, 93, 93, 18, 18, 126, 63, 98, 31, 100, 67, 87, 97, 60, 82, 121, 66, 110, 41, 96, 92, 78, 121, 50, 37, 73, 77, 44, 70, 46, 102, 121, 126, 108, 62, 68, 100, 76, 117, 101, 120, 128, 241, 250, 142, 131, 136, 215, 247, 7, 250, 1, 10, 13, 127, 4, 39, 61, 29, 57, 191, 172, 60, 84, 83, 40, 82, 93, 41, 165, 29, 63, 98, 28, 115, 50, 82, 38, 36, 63, 37, 123, 35, 58, 116, 51, 70, 110, 70, 84, 44, 63, 111, 125, 73, 88, 116, 124, 45, 53, 117, 120, 120, 128, 136, 216, 247, 197, 203, 192, 189, 175, 1, 250, 1, 10, 13, 229, 73, 31, 63, 29, 183, 85, 23, 63, 84, 83, 40, 59, 93, 90, 174, 150, 62, 98, 23, 87, 48, 54, 122, 38, 65, 110, 97, 125, 122, 81, 73, 48, 61, 92, 78, 48, 119, 98, 49, 95, 49, 59, 120, 128, 156, 176, 240, 254, 217, 129, 131, 40, 250, 1, 12, 13, 250, 56, 14, 63, 29, 221, 57, 108, 63, 56, 1, 200, 4, 54, 84, 83, 40, 16, 93, 185, 246, 22, 63, 98, 65, 71, 97, 71, 119, 110, 94, 47, 89, 37, 125, 32, 59, 74, 92, 67, 83, 124, 118, 57, 73, 50, 98, 116, 59, 91, 69, 116, 120, 69, 45, 82, 69, 85, 69, 83, 110, 33, 56, 78, 124, 63, 86, 114, 100, 48, 67, 101, 93, 120, 33, 122, 118, 47, 97, 69, 100, 108, 44, 59, 72, 104, 53, 52, 119, 74, 120, 128, 160, 206, 231, 185, 152, 242, 188, 206, 1, 250, 1, 10, 13, 23, 37, 60, 63, 29, 145, 75, 94, 61, 84, 83, 40, 12, 93, 42, 47, 12, 63, 98, 56, 81, 99, 72, 59, 41, 90, 111, 47, 42, 55, 94, 54, 126, 68, 50, 91, 54, 114, 126, 109, 33, 116, 123, 38, 51, 41, 66, 121, 57, 85, 92, 96, 83, 68, 78, 55, 77, 114, 88, 105, 116, 93, 34, 35, 104, 81, 53, 110, 100, 110, 67, 114, 37, 59, 82, 92, 120, 128, 232, 240, 199, 178, 212, 134, 191, 95, 250, 1, 5, 13, 200, 68, 184, 62, 84, 83, 40, 10, 93, 101, 203, 127, 63, 98, 65, 56, 116, 116, 83, 89, 125, 98, 89, 117, 122, 45, 66, 57, 53, 120, 67, 113, 119, 60, 96, 114, 82, 53, 74, 49, 105, 91, 56, 113, 112, 79, 43, 106, 88, 80, 32, 103, 77, 73, 106, 110, 91, 120, 105, 96, 32, 88, 111, 66, 46, 105, 109, 37, 69, 44, 101, 95, 73, 66, 111, 66, 73, 103, 36, 74, 120, 160, 205, 157, 242, 211, 234, 236, 145, 4, 250, 1, 10, 13, 38, 197, 20, 63, 29, 29, 48, 46, 63, 84, 83, 40, 89, 93, 164, 133, 108, 63, 98, 34, 91, 68, 78, 81, 113, 55, 88, 74, 105, 48, 48, 106, 117, 98, 38, 96, 38, 68, 76, 106, 64, 61, 43, 88, 72, 69, 114, 116, 62, 93, 72, 119, 44, 73, 120, 128, 216, 169, 191, 152, 164, 205, 250, 195, 1, 250, 1, 10, 13, 40, 29, 201, 62, 29, 103, 107, 165, 62, 84, 83, 40, 67, 93, 152, 236, 11, 63, 98, 37, 115, 45, 52, 94, 49, 95, 86, 82, 36, 125, 105, 123, 50, 52, 119, 87, 61, 57, 117, 41, 75, 68, 99, 43, 43, 103, 56, 94, 76, 48, 96, 65, 82, 111, 87, 92, 43, 120, 128, 184, 171, 178, 186, 175, 219, 146, 211, 1, 250, 1, 10, 13, 196, 144, 110, 63, 29, 165, 44, 109, 63, 84, 83, 40, 108, 93, 151, 164, 91, 63, 98, 48, 110, 117, 84, 97, 54, 98, 51, 112, 52, 43, 71, 72, 40, 79, 73, 41, 83, 73, 70, 118, 38, 115, 61, 71, 72, 65, 91, 58, 76, 94, 64, 124, 55, 89, 84, 108, 85, 73, 80, 84, 75, 90, 122, 84, 120, 42, 103, 40, 120, 128, 174, 201, 172, 243, 233, 202, 228, 154, 1, 250, 1, 5, 13, 121, 126, 132, 60, 84, 83, 40, 14, 93, 157, 133, 253, 62, 98, 28, 81, 121, 106, 121, 88, 45, 57, 115, 39, 119, 68, 84, 106, 74, 48, 78, 121, 91, 83, 41, 119, 113, 75, 74, 119, 104, 77, 62, 120, 128, 144, 195, 207, 233, 240, 152, 252, 204, 1, 250, 1, 5, 13, 215, 50, 9, 63, 84, 83, 40, 9, 93, 155, 138, 230, 62, 98, 43, 84, 112, 75, 61, 109, 90, 52, 71, 48, 92, 77, 82, 54, 69, 104, 78, 120, 57, 46, 87, 77, 32, 86, 94, 77, 63, 34, 110, 95, 121, 58, 83, 112, 120, 32, 121, 125, 114, 95, 63, 70, 43, 120, 120, 128, 232, 226, 207, 196, 195, 150, 254, 164, 1, 250, 1, 12, 13, 195, 135, 192, 62, 29, 205, 53, 109, 63, 56, 0, 84, 83, 40, 67, 93, 29, 18, 127, 63, 98, 54, 125, 69, 63, 68, 78, 124, 83, 57, 107, 110, 77, 87, 68, 103, 53, 65, 121, 96, 60, 68, 109, 79, 38, 88, 110, 48, 65, 39, 58, 59, 84, 43, 79, 111, 96, 84, 121, 46, 66, 123, 76, 96, 49, 35, 50, 102, 33, 67, 99, 120, 73, 55, 119, 45, 120, 128, 218, 215, 214, 171, 221, 189, 181, 23, 250, 1, 12, 13, 98, 80, 246, 62, 29, 182, 221, 167, 62, 56, 1, 84, 83, 40, 71, 93, 206, 155, 159, 62, 98, 33, 90, 76, 125, 80, 57, 65, 40, 84, 38, 95, 71, 106, 62, 64, 119, 45, 62, 34, 69, 39, 47, 125, 66, 65, 112, 61, 51, 65, 94, 50, 53, 51, 88, 120, 128, 254, 225, 161, 173, 239, 143, 142, 7, 250, 1, 5, 13, 143, 0, 173, 62, 84, 83, 40, 0, 93, 243, 233, 47, 63, 98, 33, 96, 104, 111, 93, 76, 60, 35, 81, 93, 119, 86, 52, 34, 47, 60, 64, 77, 46, 92, 41, 92, 95, 123, 46, 101, 117, 114, 74, 51, 50, 58, 32, 119, 120, 128, 212, 167, 171, 231, 152, 189, 218, 186, 1, 250, 1, 5, 13, 32, 73, 36, 63, 84, 83, 40, 33, 93, 71, 239, 14, 63, 98, 36, 72, 97, 97, 62, 110, 51, 69, 91, 44, 91, 35, 119, 114, 42, 116, 98, 117, 36, 33, 108, 96, 119, 85, 72, 88, 62, 75, 93, 86, 60, 86, 81, 35, 106, 37, 75, 120, 128, 160, 224, 144, 207, 226, 129, 134, 249, 1, 250, 1, 10, 13, 188, 196, 71, 63, 29, 139, 3, 79, 63, 84, 83, 40, 58, 93, 26, 249, 17, 63, 98, 27, 82, 88, 57, 111, 81, 64, 40, 68, 60, 33, 70, 91, 75, 115, 80, 44, 57, 100, 80, 103, 102, 37, 111, 37, 80, 115, 39, 120, 192, 156, 224, 183, 134, 228, 129, 190, 7, 250, 1, 12, 13, 125, 126, 222, 62, 29, 169, 226, 65, 63, 56, 0, 84, 83, 40, 30, 93, 156, 54, 12, 63, 98, 61, 54, 46, 62, 59, 87, 39, 124, 66, 57, 57, 58, 47, 116, 87, 118, 83, 63, 96, 37, 60, 99, 110, 77, 104, 52, 62, 92, 56, 35, 121, 83, 117, 47, 39, 52, 100, 50, 111, 96, 93, 83, 68, 76, 106, 84, 116, 90, 60, 48, 80, 41, 39, 37, 121, 111, 70, 95, 84, 39, 56, 74, 120, 128, 232, 230, 216, 188, 198, 182, 198, 91, 250, 1, 5, 13, 110, 166, 166, 62, 84, 83, 40, 41, 93, 249, 138, 57, 63, 98, 62, 68, 126, 108, 66, 49, 65, 79, 126, 71, 104, 63, 65, 97, 52, 63, 99, 64, 40, 82, 112, 76, 111, 53, 55, 109, 37, 93, 103, 71, 51, 110, 37, 46, 37, 47, 116, 109, 120, 126, 47, 89, 39, 93, 49, 79, 36, 125, 63, 103, 84, 41, 91, 107, 77, 56, 84, 105, 85, 84, 44, 98, 102, 120, 128, 240, 170, 232, 201, 139, 215, 194, 74, 250, 1, 10, 13, 59, 254, 87, 62, 29, 144, 206, 110, 63, 84, 83, 40, 34, 93, 211, 131, 82, 62, 98, 26, 91, 37, 73, 116, 70, 40, 67, 54, 68, 49, 35, 103, 104, 38, 61, 32, 114, 41, 50, 57, 95, 108, 90, 43, 56, 67, 120, 128, 136, 196, 235, 141, 209, 160, 220, 238, 1, 250, 1, 10, 13, 163, 214, 233, 62, 29, 196, 169, 91, 63, 84, 83, 40, 63, 93, 178, 246, 224, 62, 98, 65, 56, 53, 112, 65, 58, 61, 94, 98, 82, 72, 54, 114, 66, 102, 108, 107, 37, 68, 101, 99, 42, 101, 32, 82, 110, 73, 62, 92, 35, 53, 118, 68, 116, 102, 106, 81, 118, 100, 35, 97, 51, 70, 95, 111, 72, 120, 56, 67, 74, 87, 108, 38, 43, 106, 62, 81, 52, 61, 81, 111, 126, 33, 94, 60, 80, 120, 128, 224, 237, 217, 207, 131, 238, 206, 109, 250, 1, 5, 13, 4, 134, 122, 63, 84, 83, 40, 77, 93, 179, 47, 118, 63, 98, 63, 59, 115, 63, 64, 36, 79, 99, 38, 47, 41, 116, 49, 121, 50, 74, 71, 112, 56, 41, 72, 56, 60, 89, 50, 51, 98, 50, 102, 66, 63, 86, 122, 92, 71, 47, 98, 76, 100, 39, 58, 90, 75, 36, 51, 91, 94, 37, 110, 52, 115, 94, 88, 115, 50, 98, 125, 57, 45, 45, 64, 61, 124, 98, 120, 128, 128, 159, 170, 189, 238, 247, 209, 234, 1, 250, 1, 10, 13, 192, 87, 7, 63, 29, 89, 34, 112, 63, 84, 83, 40, 68, 93, 28, 222, 6, 63, 98, 35, 35, 102, 122, 43, 49, 109, 108, 108, 56, 69, 85, 83, 92, 67, 82, 77, 95, 125, 39, 74, 99, 49, 72, 63, 86, 101, 124, 92, 103, 52, 96, 97, 42, 82, 106, 120, 128, 172, 175, 182, 135, 237, 250, 178, 187, 1, 250, 1, 5, 13, 133, 19, 111, 63, 84, 83, 40, 68, 93, 154, 109, 210, 62, 98, 24, 37, 68, 117, 101, 114, 86, 89, 99, 121, 74, 52, 47, 83, 113, 40, 109, 113, 62, 90, 83, 74, 112, 48, 36, 120, 192, 177, 162, 200, 160, 138, 147, 194, 132, 1, 250, 1, 12, 13, 57, 10, 57, 63, 29, 157, 24, 96, 63, 56, 0, 84, 83, 40, 14, 93, 166, 136, 21, 63, 98, 49, 38, 84, 44, 86, 34, 38, 109, 74, 84, 104, 124, 34, 34, 50, 82, 37, 44, 111, 34, 99, 120, 46, 62, 126, 123, 51, 52, 112, 97, 46, 98, 48, 88, 66, 68, 95, 34, 124, 111, 34, 32, 70, 104, 113, 85, 72, 110, 124, 81, 120, 128, 168, 166, 163, 199, 158, 178, 154, 125, 250, 1, 5, 13, 78, 170, 23, 63, 84, 83, 40, 5, 93, 93, 171, 208, 62, 98, 44, 69, 94, 119, 53, 45, 90, 109, 113, 123, 104, 70, 38, 108, 72, 95, 109, 113, 34, 46, 32, 32, 99, 81, 68, 76, 72, 82, 68, 54, 62, 99, 85, 94, 104, 50, 98, 76, 74, 116, 66, 33, 47, 35, 93, 120, 128, 248, 238, 209, 213, 178, 247, 142, 173, 1, 250, 1, 10, 13, 114, 113, 74, 63, 29, 240, 149, 66, 63, 84, 83, 40, 126, 93, 20, 185, 31, 62, 98, 36, 47, 94, 122, 73, 35, 70, 97, 44, 82, 104, 99, 39, 73, 91, 93, 36, 112, 70, 36, 54, 123, 64, 71, 45, 107, 125, 111, 96, 115, 35, 95, 95, 83, 53, 38, 95, 120, 128, 208, 162, 160, 140, 155, 149, 130, 226, 1, 250, 1, 7, 13, 129, 247, 247, 61, 56, 1, 84, 83, 40, 45, 93, 215, 48, 3, 63, 98, 30, 86, 121, 96, 48, 59, 86, 83, 69, 88, 79, 68, 99, 104, 50, 109, 55, 108, 93, 37, 86, 32, 55, 78, 40, 36, 82, 52, 84, 124, 58, 120, 128, 208, 199, 213, 173, 135, 189, 172, 93, 250, 1, 12, 13, 81, 77, 75, 63, 29, 28, 88, 49, 63, 56, 1, 84, 83, 40, 49, 93, 12, 234, 208, 62, 98, 56, 102, 123, 79, 71, 59, 59, 59, 82, 59, 122, 106, 35, 55, 71, 123, 77, 85, 106, 80, 63, 74, 87, 44, 104, 66, 126, 71, 62, 105, 87, 33, 35, 108, 71, 79, 112, 45, 92, 58, 100, 123, 123, 108, 40, 102, 48, 60, 84, 62, 55, 54, 118, 52, 37, 123, 46, 120, 128, 144, 161, 177, 157, 230, 136, 138, 235, 1, 250, 1, 7, 13, 233, 126, 61, 63, 32, 0, 84, 83, 40, 37, 93, 112, 139, 95, 63, 98, 43, 124, 103, 98, 120, 103, 53, 111, 118, 42, 63, 119, 79, 106, 67, 78, 105, 35, 33, 49, 97, 113, 126, 81, 65, 42, 110, 103, 74, 64, 32, 70, 88, 125, 112, 126, 51, 41, 47, 126, 122, 76, 92, 51, 120, 128, 176, 162, 150, 160, 243, 146, 178, 118, 250, 1, 10, 13, 8, 7, 160, 62, 29, 18, 232, 210, 62, 84, 83, 40, 54, 93, 127, 182, 46, 63, 98, 28, 76, 67, 108, 100, 113, 89, 33, 124, 53, 65, 110, 119, 76, 68, 86, 42, 119, 62, 80, 121, 68, 58, 96, 114, 33, 54, 53, 52, 120, 128, 232, 217, 204, 172, 207, 206, 229, 228, 1, 250, 1, 10, 13, 172, 163, 25, 63, 29, 129, 31, 47, 61, 84, 83, 40, 88, 93, 90, 207, 201, 62, 98, 48, 38, 124, 123, 51, 96, 101, 67, 110, 33, 124, 103, 64, 38, 77, 39, 38, 41, 32, 125, 117, 78, 60, 49, 98, 120, 99, 91, 68, 108, 49, 91, 60, 43, 82, 70, 70, 89, 118, 54, 87, 45, 42, 67, 61, 119, 82, 121, 103, 120, 128, 172, 158, 211, 216, 218, 242, 153, 19, 250, 1, 7, 13, 28, 57, 18, 62, 48, 1, 84, 83, 40, 75, 93, 214, 29, 94, 61, 98, 32, 107, 118, 105, 106, 57, 57, 124, 42, 125, 34, 110, 64, 74, 52, 83, 39, 95, 76, 50, 104, 70, 104, 67, 120, 115, 105, 69, 104, 115, 55, 94, 79, 120, 128, 194, 144, 194, 208, 142, 132, 145, 132, 1, 250, 1, 5, 13, 18, 68, 128, 62, 84, 83, 40, 41, 93, 30, 161, 31, 63, 98, 62, 91, 91, 63, 92, 57, 77, 46, 39, 83, 123, 77, 62, 70, 95, 77, 95, 79, 111, 94, 35, 82, 111, 118, 78, 115, 51, 54, 102, 67, 63, 61, 50, 116, 119, 74, 36, 45, 84, 78, 119, 90, 59, 68, 118, 60, 39, 66, 51, 105, 125, 126, 50, 88, 59, 40, 107, 99, 111, 104, 37, 55, 70, 120, 128, 136, 255, 138, 190, 193, 248, 215, 91, 250, 1, 5, 13, 27, 240, 90, 62, 84, 83, 40, 83, 93, 133, 168, 142, 62, 98, 56, 73, 78, 52, 72, 82, 121, 64, 101, 72, 55, 74, 126, 50, 107, 112, 34, 124, 68, 63, 43, 89, 88, 110, 94, 63, 60, 107, 72, 96, 51, 86, 48, 56, 33, 93, 114, 125, 64, 75, 37, 112, 114, 114, 112, 64, 99, 93, 123, 52, 52, 72, 63, 116, 83, 96, 111, 120, 128, 248, 216, 198, 170, 220, 199, 181, 212, 1, 250, 1, 12, 13, 64, 92, 15, 63, 29, 36, 234, 187, 61, 56, 0, 84, 83, 40, 18, 93, 199, 70, 107, 63, 98, 27, 36, 52, 95, 58, 102, 48, 46, 124, 36, 92, 120, 57, 57, 101, 101, 125, 62, 91, 93, 111, 52, 76, 105, 55, 59, 100, 64, 120, 128, 152, 210, 247, 252, 166, 145, 189, 231, 1, 250, 1, 12, 13, 58, 79, 90, 62, 29, 47, 176, 217, 62, 56, 0, 84, 83, 40, 28, 93, 246, 59, 106, 63, 98, 27, 120, 109, 93, 48, 38, 124, 77, 109, 54, 47, 107, 70, 90, 57, 121, 41, 96, 54, 76, 87, 61, 98, 87, 73, 72, 125, 34, 120, 128, 192, 188, 232, 210, 216, 227, 195, 106, 250, 1, 12, 13, 75, 220, 174, 62, 29, 15, 24, 67, 63, 56, 1, 84, 83, 40, 48, 93, 85, 61, 52, 63, 98, 53, 65, 64, 118, 40, 108, 56, 93, 48, 33, 124, 60, 125, 111, 96, 74, 69, 98, 82, 49, 106, 92, 89, 53, 54, 51, 103, 39, 121, 93, 76, 77, 84, 71, 98, 56, 120, 34, 33, 114, 125, 109, 70, 59, 101, 58, 75, 87, 61, 87, 73, 92, 53, 73, 120, 128, 128, 137, 206, 185, 243, 199, 240, 204, 1, 250, 1, 5, 13, 194, 219, 127, 61, 84, 83, 40, 95, 93, 151, 254, 239, 61, 98, 50, 96, 115, 37, 48, 99, 82, 83, 79, 103, 85, 45, 71, 80, 66, 97, 95, 50, 123, 54, 61, 78, 123, 102, 47, 105, 66, 51, 111, 55, 42, 109, 92, 80, 109, 65, 45, 109, 109, 42, 114, 103, 54, 81, 117, 74, 116, 38, 38, 122, 85, 120, 128, 230, 246, 229, 205, 177, 182, 175, 31, 250, 1, 12, 13, 218, 170, 35, 63, 29, 119, 246, 82, 63, 56, 0, 84, 83, 40, 79, 93, 183, 144, 54, 63, 98, 37, 44, 116, 69, 64, 62, 99, 55, 92, 102, 79, 118, 98, 32, 83, 112, 68, 112, 67, 85, 56, 73, 112, 100, 115, 60, 45, 115, 97, 114, 48, 109, 38, 49, 93, 33, 120, 71, 120, 128, 128, 207, 191, 168, 236, 247, 252, 98, 250, 1, 10, 13, 249, 193, 10, 63, 29, 81, 236, 37, 61, 84, 83, 40, 125, 93, 33, 26, 98, 63, 98, 30, 46, 121, 125, 66, 37, 71, 99, 113, 107, 75, 115, 66, 58, 58, 47, 80, 36, 49, 110, 85, 104, 86, 97, 112, 80, 66, 82, 118, 123, 39, 120, 128, 176, 189, 160, 173, 133, 235, 131, 234, 1, 250, 1, 5, 13, 84, 132, 5, 63, 84, 83, 40, 35, 93, 138, 170, 13, 63, 98, 39, 98, 105, 117, 120, 39, 76, 124, 33, 68, 66, 49, 110, 66, 101, 105, 118, 100, 66, 52, 72, 42, 87, 56, 44, 112, 97, 115, 108, 117, 99, 91, 65, 40, 100, 87, 68, 89, 42, 41, 120, 128, 220, 169, 177, 202, 213, 205, 138, 46, 250, 1, 12, 13, 27, 172, 21, 63, 29, 237, 40, 65, 63, 56, 0, 84, 83, 40, 41, 93, 251, 203, 39, 63, 98, 65, 97, 126, 108, 45, 37, 65, 76, 61, 112, 73, 42, 81, 105, 39, 69, 88, 48, 42, 95, 101, 110, 102, 93, 45, 68, 60, 90, 56, 113, 111, 66, 69, 120, 77, 47, 97, 39, 94, 112, 66, 46, 36, 54, 59, 76, 114, 111, 35, 99, 104, 71, 92, 80, 88, 110, 121, 65, 94, 104, 103, 102, 52, 74, 32, 39, 120, 128, 128, 156, 180, 139, 241, 223, 161, 219, 1, 250, 1, 10, 13, 10, 225, 22, 63, 29, 79, 225, 147, 62, 84, 83, 40, 116, 93, 98, 37, 51, 63, 98, 55, 80, 80, 57, 60, 87, 106, 79, 66, 95, 81, 75, 87, 84, 41, 72, 100, 116, 64, 94, 52, 64, 72, 117, 40, 91, 121, 89, 53, 51, 104, 58, 84, 43, 32, 56, 117, 66, 51, 33, 35, 73, 126, 125, 54, 60, 46, 94, 65, 87, 65, 110, 55, 92, 97, 66, 120, 128, 211, 247, 183, 193, 153, 189, 191, 139, 1, 250, 1, 5, 13, 61, 254, 28, 63, 84, 83, 40, 23, 93, 10, 219, 44, 63, 98, 26, 92, 49, 58, 46, 118, 55, 118, 75, 83, 111, 82, 65, 96, 63, 90, 105, 64, 73, 94, 106, 76, 58, 55, 93, 112, 120, 120, 192, 235, 161, 196, 223, 220, 142, 162, 4, 250, 1, 10, 13, 59, 23, 107, 63, 29, 172, 37, 218, 62, 84, 83, 40, 81, 93, 149, 105, 39, 62, 98, 26, 59, 49, 82, 67, 113, 47, 112, 39, 126, 69, 98, 43, 80, 37, 32, 46, 119, 33, 118, 33, 94, 122, 69, 51, 65, 120, 120, 128, 224, 157, 138, 138, 248, 237, 209, 208, 1, 250, 1, 12, 13, 72, 82, 155, 62, 29, 65, 22, 122, 63, 56, 0, 84, 83, 40, 125, 93, 202, 55, 11, 61, 98, 53, 117, 96, 54, 48, 45, 122, 103, 90, 79, 65, 94, 69, 105, 47, 102, 88, 112, 106, 41, 117, 80, 91, 80, 63, 106, 63, 33, 120, 82, 83, 41, 106, 70, 95, 53, 111, 109, 111, 33, 124, 57, 60, 81, 60, 59, 32, 72, 50, 50, 35, 75, 50, 42, 120, 128, 191, 180, 131, 244, 242, 163, 155, 12, 250, 1, 5, 13, 13, 208, 5, 63, 84, 83, 40, 34, 93, 188, 17, 47, 62, 98, 62, 118, 68, 108, 121, 109, 39, 123, 56, 115, 125, 42, 121, 118, 106, 33, 105, 44, 92, 52, 41, 51, 35, 105, 117, 109, 102, 79, 39, 117, 95, 62, 45, 122, 94, 118, 74, 51, 35, 74, 52, 85, 36, 71, 33, 62, 56, 59, 56, 74, 72, 125, 75, 61, 48, 123, 114, 90, 118, 43, 39, 87, 115, 120, 128, 248, 203, 213, 254, 189, 223, 172, 45, 250, 1, 5, 13, 128, 111, 89, 62, 84, 83, 40, 85, 93, 248, 96, 120, 63, 98, 31, 125, 55, 115, 85, 85, 41, 49, 126, 82, 47, 91, 103, 87, 85, 75, 55, 92, 77, 97, 113, 110, 105, 98, 35, 111, 60, 118, 66, 92, 97, 98, 120, 128, 190, 251, 203, 151, 230, 219, 223, 26, 250, 1, 10, 13, 96, 127, 179, 62, 29, 118, 138, 178, 62, 84, 83, 40, 34, 93, 94, 164, 49, 61, 98, 26, 68, 115, 113, 115, 57, 62, 92, 108, 55, 113, 62, 84, 91, 64, 54, 114, 81, 108, 45, 52, 83, 111, 101, 57, 49, 109, 120, 128, 196, 237, 206, 245, 153, 236, 246, 172, 1, 250, 1, 5, 13, 237, 244, 88, 63, 84, 83, 40, 58, 93, 107, 94, 215, 62, 98, 27, 70, 54, 59, 70, 114, 103, 90, 108, 88, 80, 45, 116, 107, 125, 124, 66, 102, 60, 74, 110, 96, 83, 51, 37, 79, 83, 46, 120, 128, 224, 170, 182, 185, 157, 214, 178, 203, 1, 250, 1, 12, 13, 30, 9, 49, 63, 29, 125, 229, 228, 62, 56, 1, 84, 83, 40, 100, 93, 194, 86, 175, 62, 98, 43, 110, 74, 40, 56, 52, 76, 78, 56, 100, 52, 92, 38, 94, 36, 103, 60, 110, 39, 36, 69, 92, 102, 113, 34, 54, 118, 62, 89, 34, 43, 45, 82, 65, 84, 124, 82, 115, 41, 81, 110, 123, 86, 123, 120, 128, 236, 158, 164, 213, 218, 246, 161, 170, 1, 250, 1, 7, 13, 1, 159, 18, 63, 56, 1, 84, 83, 40, 107, 93, 238, 110, 255, 62, 98, 49, 70, 59, 114, 66, 119, 68, 99, 39, 87, 38, 34, 61, 46, 115, 53, 89, 38, 41, 99, 41, 39, 52, 72, 101, 85, 52, 73, 38, 106, 82, 75, 55, 38, 110, 50, 102, 56, 106, 90, 123, 112, 116, 121, 109, 38, 52, 96, 39, 64, 120, 128, 176, 188, 151, 248, 128, 227, 187, 46, 250, 1, 5, 13, 142, 82, 135, 62, 84, 83, 40, 60, 93, 169, 255, 140, 62, 98, 27, 102, 72, 49, 113, 44, 108, 98, 122, 92, 60, 37, 90, 106, 54, 63, 96, 78, 65, 58, 77, 102, 56, 49, 57, 90, 95, 65, 120, 128, 176, 236, 224, 178, 150, 227, 134, 70, 250, 1, 5, 13, 183, 117, 182, 62, 84, 83, 40, 91, 93, 36, 67, 218, 62, 98, 55, 57, 125, 124, 63, 69, 32, 115, 43, 125, 118, 33, 51, 88, 116, 51, 59, 124, 64, 69, 113, 32, 125, 126, 82, 77, 54, 119, 55, 76, 74, 46, 88, 119, 114, 106, 92, 108, 118, 120, 96, 89, 53, 60, 86, 101, 37, 88, 67, 70, 67, 67, 50, 123, 113, 71, 120, 128, 232, 186, 134, 217, 188, 214, 179, 37, 250, 1, 10, 13, 243, 189, 124, 63, 29, 222, 148, 226, 62, 84, 83, 40, 107, 93, 30, 90, 39, 62, 98, 65, 40, 91, 94, 82, 103, 71, 58, 100, 42, 86, 77, 38, 71, 100, 56, 106, 96, 72, 107, 72, 92, 83, 111, 40, 39, 123, 92, 38, 75, 79, 93, 66, 37, 104, 87, 124, 85, 105, 109, 61, 106, 115, 57, 111, 117, 61, 106, 54, 89, 91, 89, 85, 93, 72, 81, 83, 106, 86, 74, 107, 106, 52, 57, 89, 119, 120, 128, 237, 150, 252, 209, 233, 182, 225, 14, 250, 1, 5, 13, 80, 106, 235, 59, 84, 83, 40, 82, 93, 230, 51, 13, 62, 98, 26, 58, 52, 118, 89, 77, 93, 104, 58, 32, 49, 105, 49, 69, 76, 110, 116, 39, 100, 92, 55, 35, 50, 126, 62, 33, 82, 120, 128, 224, 145, 196, 171, 165, 142, 161, 73, 250, 1, 10, 13, 178, 183, 27, 63, 29, 122, 54, 41, 63, 84, 83, 40, 116, 93, 171, 67, 75, 63, 98, 53, 60, 44, 41, 62, 71, 98, 122, 47, 106, 104, 57, 106, 68, 96, 90, 68, 102, 74, 99, 112, 68, 67, 70, 41, 40, 52, 87, 88, 122, 38, 46, 90, 40, 69, 77, 36, 60, 45, 70, 50, 43, 84, 112, 77, 105, 70, 90, 93, 70, 46, 110, 47, 121, 120, 128, 217, 210, 240, 182, 198, 149, 133, 10, 250, 1, 12, 13, 186, 62, 208, 62, 29, 133, 211, 108, 63, 56, 1, 84, 83, 40, 0, 93, 245, 220, 111, 62, 98, 78, 50, 42, 66, 52, 99, 89, 93, 98, 126, 51, 86, 40, 88, 35, 81, 100, 110, 81, 119, 62, 96, 89, 121, 50, 108, 55, 126, 95, 33, 125, 84, 62, 60, 118, 52, 39, 104, 64, 45, 115, 43, 98, 90, 73, 110, 37, 53, 43, 72, 65, 86, 70, 108, 96, 84, 87, 48, 48, 71, 75, 90, 125, 97, 33, 94, 55, 107, 97, 110, 73, 123, 78, 68, 36, 50, 125, 126, 79, 120, 128, 220, 223, 225, 165, 217, 253, 141, 174, 1, 250, 1, 10, 13, 100, 170, 61, 63, 29, 101, 83, 175, 60, 84, 83, 40, 109, 93, 128, 91, 123, 62, 98, 28, 94, 70, 46, 80, 90, 66, 91, 118, 87, 119, 96, 56, 45, 33, 89, 106, 87, 57, 83, 60, 125, 69, 39, 33, 103, 77, 86, 88, 120, 128, 192, 234, 213, 202, 142, 212, 174, 213, 1, 250, 1, 10, 13, 231, 239, 79, 63, 29, 87, 82, 44, 63, 84, 83, 40, 56, 93, 27, 166, 63, 63, 98, 55, 101, 34, 89, 80, 102, 48, 63, 50, 82, 67, 85, 99, 106, 36, 123, 68, 100, 106, 76, 77, 85, 56, 57, 62, 44, 103, 44, 106, 34, 55, 105, 56, 54, 80, 70, 126, 32, 58, 111, 40, 52, 41, 75, 34, 81, 61, 124, 72, 89, 52, 122, 34, 51, 123, 49, 120, 128, 216, 213, 225, 170, 197, 173, 141, 61, 250, 1, 5, 13, 62, 31, 65, 63, 84, 83, 40, 35, 93, 12, 53, 191, 62, 98, 27, 125, 36, 83, 48, 59, 88, 61, 77, 57, 92, 124, 68, 73, 121, 68, 57, 75, 108, 55, 108, 110, 106, 98, 48, 109, 60, 102, 120, 128, 246, 189, 232, 208, 177, 239, 195, 134, 1, 250, 1, 10, 13, 166, 104, 141, 62, 29, 240, 53, 168, 62, 84, 83, 40, 119, 93, 150, 92, 115, 62, 98, 49, 100, 118, 113, 36, 95, 120, 48, 72, 51, 111, 98, 106, 92, 110, 80, 40, 110, 97, 100, 95, 80, 76, 83, 50, 65, 66, 65, 126, 112, 56, 50, 121, 98, 101, 94, 82, 39, 63, 89, 82, 92, 109, 89, 126, 40, 118, 83, 125, 106, 120, 128, 200, 252, 176, 169, 161, 228, 135, 84, 250, 1, 10, 13, 164, 93, 106, 62, 29, 178, 137, 22, 63, 84, 83, 40, 77, 93, 164, 42, 138, 62, 98, 39, 101, 56, 66, 95, 98, 61, 86, 49, 87, 121, 92, 103, 40, 118, 48, 124, 33, 78, 40, 49, 35, 97, 114, 84, 42, 73, 110, 67, 51, 50, 35, 89, 64, 73, 32, 70, 48, 71, 92, 120, 128, 192, 247, 147, 186, 137, 188, 159, 38, 250, 1, 5, 13, 205, 138, 117, 63, 84, 83, 40, 57, 93, 202, 82, 117, 62, 98, 26, 94, 66, 63, 110, 91, 109, 108, 92, 102, 79, 71, 54, 36, 68, 108, 85, 56, 77, 51, 124, 68, 118, 34, 71, 93, 118, 120, 128, 176, 156, 177, 236, 242, 226, 137, 227, 1, 250, 1, 10, 13, 200, 37, 78, 63, 29, 8, 158, 25, 63, 84, 83, 40, 107, 93, 78, 107, 75, 63, 98, 27, 53, 86, 74, 51, 50, 105, 90, 50, 84, 70, 84, 59, 42, 119, 50, 122, 33, 66, 112, 68, 109, 103, 77, 113, 103, 64, 119, 120, 128, 196, 141, 230, 242, 165, 236, 176, 150, 1, 250, 1, 5, 13, 194, 192, 57, 63, 84, 83, 40, 4, 93, 49, 223, 127, 63, 98, 39, 35, 116, 99, 49, 94, 88, 48, 90, 107, 92, 59, 93, 86, 111, 90, 118, 79, 75, 122, 104, 73, 103, 76, 125, 77, 41, 88, 75, 112, 112, 73, 76, 81, 70, 80, 69, 70, 101, 82, 120, 128, 156, 135, 140, 174, 223, 185, 224, 46, 250, 1, 12, 13, 145, 108, 85, 63, 29, 229, 107, 63, 63, 56, 0, 84, 83, 40, 94, 93, 164, 163, 6, 63, 98, 26, 42, 118, 34, 44, 72, 72, 100, 105, 58, 85, 59, 72, 100, 99, 85, 32, 100, 104, 121, 51, 109, 44, 48, 62, 53, 80, 120, 128, 168, 128, 148, 211, 180, 130, 160, 98, 250, 1, 5, 13, 100, 157, 106, 63, 84, 83, 40, 74, 93, 113, 131, 109, 63, 98, 31, 97, 97, 100, 75, 66, 49, 86, 63, 72, 72, 100, 97, 55, 112, 52, 123, 96, 33, 124, 65, 42, 125, 43, 83, 99, 125, 102, 98, 118, 118, 94, 120, 128, 152, 225, 241, 188, 223, 137, 142, 231, 1, 250, 1, 12, 13, 154, 66, 66, 62, 29, 148, 122, 178, 62, 56, 1, 200, 4, 76, 84, 83, 40, 89, 93, 6, 118, 136, 62, 98, 49, 65, 67, 73, 69, 63, 80, 78, 43, 115, 63, 41, 56, 110, 103, 121, 53, 109, 99, 86, 49, 103, 68, 74, 114, 71, 80, 104, 118, 79, 117, 124, 90, 56, 71, 95, 88, 119, 100, 93, 89, 37, 87, 41, 70, 88, 94, 40, 118, 113, 120, 128, 224, 242, 170, 207, 144, 150, 215, 250, 1, 250, 1, 12, 13, 44, 241, 8, 63, 29, 133, 34, 34, 62, 56, 0, 84, 83, 40, 66, 93, 154, 226, 4, 63, 98, 31, 123, 119, 85, 124, 110, 102, 86, 91, 125, 65, 78, 126, 71, 39, 64, 61, 40, 38, 123, 44, 47, 59, 36, 58, 104, 72, 113, 36, 83, 66, 109, 120, 128, 184, 244, 201, 243, 168, 163, 207, 74, 250, 1, 5, 13, 179, 25, 60, 63, 84, 83, 40, 113, 93, 33, 138, 52, 63, 98, 47, 96, 66, 103, 110, 113, 77, 123, 42, 37, 42, 94, 95, 110, 80, 93, 74, 40, 38, 69, 65, 96, 115, 59, 51, 69, 116, 81, 39, 91, 83, 118, 56, 81, 67, 95, 121, 64, 54, 42, 93, 51, 48, 125, 47, 42, 104, 35, 120, 128, 208, 198, 255, 224, 241, 180, 252, 68, 250, 1, 5, 13, 34, 81, 100, 63, 84, 83, 40, 116, 93, 156, 183, 56, 63, 98, 34, 80, 64, 83, 34, 107, 39, 84, 73, 124, 123, 115, 77, 81, 50, 69, 46, 74, 112, 99, 42, 113, 123, 103, 46, 79, 116, 43, 40, 92, 113, 125, 49, 99, 109, 120, 128, 172, 154, 172, 213, 201, 210, 225, 51, 250, 1, 10, 13, 236, 72, 108, 63, 29, 134, 136, 122, 63, 84, 83, 40, 44, 93, 110, 27, 97, 63, 98, 27, 113, 107, 108, 44, 97, 62, 98, 76, 123, 100, 89, 87, 97, 49, 108, 114, 83, 88, 68, 82, 117, 123, 75, 108, 43, 124, 98, 120, 128, 240, 170, 201, 236, 235, 214, 202, 98, 250, 1, 10, 13, 53, 129, 51, 63, 29, 124, 177, 76, 63, 84, 83, 40, 59, 93, 7, 16, 50, 62, 98, 31, 41, 123, 112, 61, 36, 111, 38, 111, 108, 72, 46, 67, 34, 57, 59, 32, 117, 122, 113, 63, 88, 109, 125, 117, 63, 32, 33, 99, 91, 120, 104, 120, 128, 136, 231, 215, 130, 190, 184, 190, 149, 1, 250, 1, 10, 13, 61, 74, 126, 62, 29, 220, 161, 221, 62, 84, 83, 40, 60, 93, 31, 108, 58, 63, 98, 51, 63, 78, 109, 99, 81, 84, 101, 76, 108, 39, 105, 112, 96, 97, 114, 103, 121, 45, 87, 59, 125, 121, 125, 36, 109, 65, 51, 115, 94, 125, 43, 88, 107, 85, 95, 70, 44, 45, 108, 35, 40, 80, 40, 56, 53, 47, 34, 120, 37, 33, 53, 120, 128, 138, 134, 130, 196, 206, 176, 144, 15, 250, 1, 5, 13, 204, 251, 89, 63, 84, 83, 40, 24, 93, 7, 207, 62, 63, 98, 50, 68, 80, 105, 116, 48, 64, 112, 109, 110, 122, 49, 37, 42, 33, 75, 90, 108, 63, 83, 50, 77, 113, 101, 109, 94, 62, 57, 109, 92, 104, 33, 102, 88, 109, 58, 116, 66, 55, 92, 98, 54, 97, 57, 60, 36, 42, 118, 119, 89, 69, 120, 128, 204, 199, 225, 182, 219, 188, 140, 182, 1, 250, 1, 12, 13, 133, 57, 72, 63, 29, 89, 207, 158, 62, 56, 1, 84, 83, 40, 34, 93, 144, 144, 8, 63, 98, 32, 106, 122, 54, 112, 38, 35, 48, 38, 121, 74, 75, 59, 102, 85, 56, 84, 97, 112, 123, 106, 88, 72, 105, 83, 70, 65, 51, 55, 63, 54, 72, 89, 120, 184, 200, 158, 151, 179, 195, 244, 70, 250, 1, 7, 13, 198, 148, 63, 63, 48, 0, 84, 83, 40, 51, 93, 160, 187, 28, 60, 98, 34, 107, 91, 50, 81, 50, 65, 88, 93, 91, 49, 36, 45, 114, 40, 76, 35, 78, 121, 65, 49, 97, 73, 99, 111, 120, 101, 99, 33, 113, 102, 125, 75, 113, 83, 120, 128, 168, 234, 174, 174, 205, 210, 246, 242, 1, 250, 1, 5, 13, 29, 199, 97, 62, 84, 83, 40, 97, 93, 154, 162, 136, 62, 98, 49, 69, 39, 48, 117, 106, 48, 47, 41, 76, 45, 123, 86, 38, 108, 103, 53, 62, 66, 118, 66, 87, 76, 93, 87, 107, 115, 50, 87, 58, 63, 50, 55, 57, 52, 83, 58, 32, 107, 93, 83, 95, 110, 57, 85, 36, 58, 96, 49, 99, 120, 128, 136, 233, 134, 218, 184, 200, 182, 208, 1, 250, 1, 10, 13, 15, 187, 102, 62, 29, 123, 228, 9, 63, 84, 83, 40, 39, 93, 140, 98, 205, 62, 98, 41, 96, 120, 72, 88, 41, 118, 125, 86, 110, 45, 122, 100, 60, 112, 56, 76, 53, 81, 99, 67, 98, 103, 50, 39, 82, 80, 50, 32, 115, 94, 41, 94, 120, 114, 83, 90, 113, 70, 97, 101, 84, 120, 128, 243, 220, 217, 134, 154, 231, 205, 12, 250, 1, 5, 13, 244, 63, 216, 59, 84, 83, 40, 16, 93, 76, 171, 30, 63, 98, 32, 63, 124, 111, 119, 54, 70, 98, 110, 121, 99, 120, 101, 65, 37, 88, 99, 124, 98, 47, 35, 59, 106, 73, 61, 93, 89, 109, 111, 124, 109, 89, 103, 120, 128, 195, 181, 156, 189, 155, 172, 227, 9, 250, 1, 5, 13, 211, 162, 234, 62, 84, 83, 40, 26, 93, 242, 64, 8, 63, 98, 54, 66, 40, 92, 55, 70, 110, 126, 47, 89, 115, 80, 65, 40, 34, 86, 69, 111, 41, 62, 83, 83, 82, 57, 92, 87, 114, 112, 43, 41, 48, 95, 116, 112, 37, 65, 116, 37, 118, 92, 76, 107, 58, 98, 105, 41, 76, 102, 122, 55, 51, 118, 124, 44, 95, 120, 128, 224, 146, 174, 171, 142, 150, 241, 126, 250, 1, 12, 13, 243, 234, 84, 63, 29, 215, 237, 80, 63, 56, 0, 84, 83, 40, 84, 93, 68, 124, 8, 63, 98, 56, 125, 114, 37, 73, 52, 90, 79, 35, 96, 97, 64, 120, 76, 113, 102, 57, 111, 79, 82, 43, 44, 116, 115, 116, 57, 97, 104, 49, 38, 81, 38, 36, 55, 41, 77, 119, 52, 57, 85, 78, 124, 99, 58, 85, 114, 125, 80, 57, 119, 101, 126, 61, 77, 84, 70, 40, 120, 128, 176, 199, 149, 231, 145, 187, 172, 127, 250, 1, 5, 13, 239, 69, 44, 62, 84, 83, 40, 20, 93, 158, 51, 5, 63, 98, 18, 113, 61, 123, 47, 90, 59, 96, 66, 68, 110, 36, 86, 121, 36, 45, 71, 90, 62, 120, 160, 129, 153, 152, 251, 136, 200, 193, 3, 250, 1, 12, 13, 244, 67, 147, 62, 29, 139, 9, 58, 62, 56, 0, 84, 83, 40, 33, 93, 165, 36, 176, 62, 98, 45, 81, 104, 86, 98, 97, 69, 120, 36, 41, 35, 92, 94, 102, 43, 121, 87, 60, 45, 116, 41, 96, 72, 67, 73, 70, 125, 77, 96, 46, 115, 64, 66, 36, 90, 92, 113, 99, 125, 95, 126, 117, 126, 76, 117, 70, 120, 128, 160, 198, 141, 250, 128, 178, 236, 62, 250, 1, 5, 13, 42, 115, 44, 63, 84, 83, 40, 62, 93, 189, 161, 190, 62, 98, 64, 73, 125, 35, 88, 47, 95, 41, 68, 45, 60, 99, 118, 55, 117, 53, 98, 57, 89, 44, 77, 40, 115, 62, 77, 117, 50, 96, 122, 76, 34, 119, 61, 125, 60, 99, 116, 60, 105, 116, 122, 83, 76, 86, 96, 123, 39, 93, 41, 55, 51, 45, 115, 83, 33, 58, 85, 94, 85, 98, 124, 125, 45, 118, 43, 120, 128, 128, 130, 137, 214, 242, 143, 200, 176, 1, 250, 1, 5, 13, 160, 100, 203, 62, 84, 83, 40, 118, 93, 87, 138, 114, 63, 98, 24, 49, 63, 69, 78, 100, 48, 121, 91, 61, 92, 80, 110, 84, 87, 98, 57, 115, 35, 104, 124, 34, 46, 53, 102, 120, 128, 169, 228, 195, 195, 195, 162, 158, 10, 250, 1, 5, 13, 149, 140, 106, 63, 84, 83, 40, 122, 93, 189, 87, 205, 62, 98, 96, 84, 74, 60, 85, 45, 98, 118, 118, 108, 93, 47, 66, 39, 94, 55, 34, 36, 114, 71, 70, 73, 93, 54, 64, 91, 123, 119, 34, 41, 94, 72, 108, 51, 83, 38, 113, 63, 122, 96, 112, 95, 106, 75, 53, 115, 69, 117, 67, 118, 51, 98, 50, 79, 85, 123, 118, 51, 123, 120, 49, 105, 116, 108, 46, 53, 65, 47, 83, 87, 69, 97, 41, 50, 86, 102, 93, 49, 33, 76, 53, 37, 84, 43, 117, 122, 53, 61, 93, 86, 47, 93, 67, 33, 78, 38, 106, 120, 128, 144, 194, 211, 207, 239, 144, 156, 253, 1, 250, 1, 5, 13, 168, 151, 157, 62, 84, 83, 40, 126, 93, 42, 203, 6, 63, 98, 39, 54, 66, 106, 80, 80, 89, 32, 120, 110, 61, 100, 50, 79, 98, 43, 53, 104, 118, 50, 32, 36, 80, 123, 72, 103, 62, 39, 99, 79, 122, 95, 115, 33, 121, 126, 98, 105, 90, 68, 120, 128, 152, 161, 189, 186, 186, 137, 234, 45, 250, 1, 5, 13, 118, 186, 97, 62, 84, 83, 40, 48, 93, 253, 107, 82, 63, 98, 32, 56, 73, 74, 115, 61, 66, 112, 33, 38, 42, 125, 77, 101, 69, 65, 104, 50, 81, 59, 72, 114, 93, 112, 48, 85, 99, 71, 75, 46, 81, 112, 106, 120, 128, 232, 168, 201, 218, 198, 198, 202, 212, 1, 250, 1, 10, 13, 155, 158, 48, 63, 29, 22, 49, 52, 63, 84, 83, 40, 126, 93, 47, 102, 151, 62, 98, 27, 73, 104, 64, 93, 121, 89, 104, 34, 75, 56, 61, 71, 112, 49, 110, 120, 122, 122, 90, 87, 58, 62, 89, 121, 69, 114, 83, 120, 128, 176, 232, 159, 132, 250, 194, 254, 161, 1, 250, 1, 5, 13, 221, 144, 78, 62, 84, 83, 40, 104, 93, 5, 35, 31, 61, 98, 42, 97, 66, 76, 103, 103, 122, 105, 120, 35, 39, 45, 41, 74, 42, 35, 61, 63, 33, 113, 99, 101, 40, 70, 33, 43, 47, 69, 56, 39, 37, 79, 110, 92, 53, 90, 37, 67, 72, 38, 124, 48, 34, 120, 128, 168, 146, 156, 233, 162, 146, 225, 201, 1, 250, 1, 12, 13, 208, 120, 1, 63, 29, 239, 89, 4, 62, 56, 0, 84, 83, 40, 19, 93, 66, 153, 85, 63, 98, 52, 65, 85, 52, 55, 64, 43, 60, 89, 122, 74, 92, 88, 84, 81, 113, 125, 86, 62, 76, 53, 78, 125, 120, 117, 121, 115, 82, 99, 80, 117, 116, 118, 33, 85, 117, 80, 112, 55, 78, 80, 119, 33, 42, 120, 107, 77, 72, 94, 48, 88, 120, 109, 120, 128, 208, 148, 202, 247, 207, 164, 209, 94, 250, 1, 10, 13, 123, 26, 108, 63, 29, 203, 38, 176, 62, 84, 83, 40, 47, 93, 13, 215, 33, 63, 98, 51, 61, 61, 75, 87, 88, 40, 36, 84, 100, 86, 125, 90, 64, 45, 63, 110, 123, 61, 77, 115, 126, 41, 75, 75, 114, 82, 119, 124, 39, 48, 40, 53, 82, 115, 83, 121, 34, 119, 62, 119, 37, 67, 39, 118, 74, 36, 111, 75, 88, 125, 106, 120, 128, 184, 255, 232, 185, 223, 251, 199, 206, 1, 250, 1, 12, 13, 4, 142, 94, 63, 29, 37, 144, 255, 62, 56, 1, 84, 83, 40, 25, 93, 80, 161, 89, 63, 98, 27, 32, 100, 37, 48, 38, 77, 83, 77, 104, 40, 75, 89, 68, 108, 35, 125, 84, 109, 91, 34, 84, 33, 110, 98, 76, 67, 41, 120, 128, 132, 243, 174, 230, 145, 152, 247, 178, 1, 250, 1, 10, 13, 248, 128, 245, 62, 29, 187, 80, 180, 62, 84, 83, 40, 3, 93, 168, 224, 125, 62, 98, 38, 63, 40, 34, 51, 56, 103, 125, 117, 83, 72, 96, 122, 68, 113, 52, 48, 102, 91, 62, 96, 32, 49, 60, 125, 117, 66, 99, 98, 67, 45, 32, 71, 38, 51, 57, 60, 105, 110, 120, 128, 184, 175, 139, 164, 228, 251, 218, 92, 250, 1, 5, 13, 196, 243, 77, 63, 84, 83, 40, 105, 93, 20, 191, 58, 63, 98, 60, 77, 44, 63, 114, 62, 90, 47, 119, 93, 112, 35, 64, 54, 46, 107, 35, 60, 117, 35, 59, 81, 69, 72, 57, 116, 48, 87, 119, 70, 119, 118, 80, 112, 58, 98, 48, 94, 34, 36, 41, 82, 75, 78, 46, 67, 100, 124, 42, 79, 101, 81, 110, 104, 83, 52, 40, 99, 38, 125, 45, 120, 128, 188, 194, 176, 208, 223, 147, 132, 131, 1, 250, 1, 7, 13, 254, 8, 125, 62, 56, 1, 84, 83, 40, 93, 93, 94, 131, 113, 63, 98, 32, 81, 79, 122, 75, 91, 68, 58, 113, 121, 104, 37, 118, 57, 116, 48, 51, 77, 71, 95, 69, 39, 102, 60, 38, 90, 75, 87, 36, 117, 39, 58, 121, 120, 128, 168, 209, 146, 140, 176, 138, 149, 225, 1, 250, 1, 10, 13, 254, 249, 85, 62, 29, 75, 86, 90, 63, 84, 83, 40, 27, 93, 79, 136, 80, 60, 98, 26, 94, 115, 64, 55, 124, 110, 106, 46, 48, 73, 48, 108, 121, 83, 110, 112, 64, 113, 105, 50, 116, 111, 47, 107, 53, 122, 120, 128, 160, 143, 193, 187, 128, 250, 136, 111, 250, 1, 10, 13, 26, 176, 243, 62, 29, 73, 99, 235, 61, 84, 83, 40, 18, 93, 253, 243, 118, 61, 98, 62, 35, 122, 50, 110, 83, 63, 45, 42, 119, 81, 118, 73, 34, 71, 54, 123, 82, 74, 41, 71, 65, 39, 34, 43, 109, 99, 83, 33, 33, 123, 61, 35, 35, 67, 44, 112, 103, 100, 59, 80, 50, 102, 113, 95, 124, 70, 44, 68, 125, 126, 64, 34, 33, 100, 99, 123, 120, 38, 32, 110, 106, 43, 120, 128, 254, 176, 202, 241, 239, 135, 211, 140, 1, 250, 1, 5, 13, 110, 64, 118, 63, 84, 83, 40, 27, 93, 69, 160, 95, 63, 98, 24, 70, 93, 59, 68, 51, 108, 47, 87, 53, 89, 53, 65, 46, 70, 86, 47, 35, 34, 90, 58, 34, 61, 95, 47, 120, 128, 208, 175, 140, 253, 251, 252, 226, 117, 250, 1, 12, 13, 89, 240, 46, 63, 29, 164, 147, 54, 63, 56, 0, 200, 4, 93, 84, 83, 40, 8, 93, 180, 44, 37, 63, 98, 36, 116, 75, 41, 32, 78, 40, 88, 106, 82, 114, 72, 79, 41, 102, 87, 119, 89, 55, 90, 40, 39, 64, 120, 112, 41, 125, 43, 76, 81, 40, 97, 112, 47, 123, 63, 116, 120, 128, 167, 195, 220, 240, 185, 154, 228, 133, 1, 250, 1, 10, 13, 113, 132, 206, 62, 29, 235, 190, 184, 61, 84, 83, 40, 9, 93, 76, 235, 223, 62, 98, 44, 54, 40, 71, 88, 108, 85, 72, 63, 104, 42, 53, 43, 124, 86, 84, 82, 56, 118, 80, 123, 44, 56, 74, 48, 86, 63, 45, 71, 97, 115, 51, 46, 82, 94, 111, 56, 80, 55, 59, 71, 98, 44, 104, 125, 120, 128, 184, 214, 186, 199, 207, 179, 213, 187, 1, 250, 1, 5, 13, 202, 180, 58, 63, 84, 83, 40, 23, 93, 176, 226, 199, 62, 98, 36, 105, 66, 107, 79, 87, 42, 61, 125, 93, 55, 33, 76, 71, 32, 93, 116, 118, 38, 87, 62, 101, 60, 33, 32, 90, 40, 56, 126, 78, 75, 99, 112, 46, 103, 92, 63, 120, 128, 145, 183, 171, 193, 136, 185, 219, 138, 1, 250, 1, 5, 13, 213, 230, 51, 63, 84, 83, 40, 72, 93, 44, 95, 217, 62, 98, 27, 64, 112, 90, 57, 53, 109, 32, 98, 78, 114, 38, 69, 45, 113, 94, 77, 64, 106, 115, 79, 112, 61, 78, 49, 83, 48, 62, 120, 128, 128, 223, 206, 234, 231, 247, 245, 212, 1, 250, 1, 10, 13, 41, 237, 187, 62, 29, 31, 13, 161, 62, 84, 83, 40, 102, 93, 75, 103, 83, 62, 98, 30, 79, 47, 125, 116, 96, 103, 105, 108, 39, 85, 80, 91, 68, 61, 98, 59, 41, 47, 125, 60, 110, 39, 86, 34, 66, 73, 101, 37, 78, 64, 120, 128, 240, 155, 159, 130, 128, 223, 249, 42, 250, 1, 10, 13, 65, 200, 49, 62, 29, 249, 44, 137, 61, 84, 83, 40, 110, 93, 4, 2, 102, 63, 98, 59, 125, 115, 105, 107, 88, 33, 39, 71, 59, 108, 114, 107, 53, 76, 35, 85, 51, 63, 80, 68, 72, 87, 122, 81, 55, 34, 100, 61, 102, 54, 63, 84, 81, 71, 100, 70, 63, 66, 69, 59, 102, 94, 59, 52, 78, 92, 79, 88, 75, 105, 43, 112, 85, 77, 77, 69, 120, 55, 84, 120, 128, 176, 221, 242, 233, 229, 234, 149, 73, 250, 1, 5, 13, 172, 195, 151, 62, 84, 83, 40, 98, 93, 243, 252, 42, 63, 98, 48, 36, 77, 61, 57, 109, 102, 91, 54, 112, 120, 53, 92, 104, 60, 101, 34, 89, 81, 44, 112, 124, 42, 78, 126, 35, 121, 62, 76, 39, 108, 110, 125, 124, 126, 54, 102, 49, 67, 97, 112, 110, 83, 57, 118, 63, 111, 99, 41, 120, 128, 176, 187, 174, 252, 141, 219, 243, 26, 250, 1, 5, 13, 206, 65, 95, 62, 84, 83, 40, 119, 93, 68, 105, 55, 61, 98, 60, 48, 119, 98, 121, 125, 62, 53, 115, 72, 47, 46, 36, 42, 54, 95, 105, 37, 125, 112, 54, 111, 58, 33, 72, 112, 87, 94, 50, 53, 53, 57, 114, 114, 106, 109, 36, 60, 60, 104, 114, 45, 108, 71, 95, 68, 53, 107, 41, 48, 121, 35, 52, 67, 98, 51, 116, 118, 57, 41, 70, 120, 128, 136, 205, 188, 154, 218, 232, 228, 211, 1, 250, 1, 5, 13, 173, 253, 250, 60, 84, 83, 40, 82, 93, 41, 52, 76, 62, 98, 89, 116, 59, 48, 63, 71, 91, 76, 104, 53, 125, 41, 34, 114, 64, 36, 90, 106, 85, 34, 58, 49, 36, 78, 48, 86, 120, 44, 34, 51, 65, 52, 42, 47, 52, 106, 41, 37, 76, 96, 83, 76, 58, 126, 68, 88, 49, 34, 85, 53, 77, 91, 40, 32, 67, 33, 112, 107, 32, 104, 78, 78, 74, 84, 114, 105, 126, 114, 93, 85, 121, 85, 61, 115, 78, 109, 117, 36, 41, 86, 69, 118, 86, 108, 100, 101, 43, 42, 107, 51, 120, 128, 248, 255, 145, 170, 189, 255, 143, 120, 250, 1, 5, 13, 8, 203, 154, 62, 84, 83, 40, 6, 93, 227, 56, 53, 63, 98, 41, 50, 37, 34, 100, 43, 90, 89, 61, 67, 32, 58, 119, 61, 52, 80, 84, 42, 107, 97, 72, 66, 86, 119, 92, 111, 45, 93, 116, 39, 74, 91, 93, 80, 89, 96, 73, 106, 48, 120, 78, 124, 120, 128, 128, 228, 129, 235, 253, 159, 142, 11, 250, 1, 10, 13, 108, 236, 8, 63, 29, 166, 11, 17, 63, 84, 83, 40, 66, 93, 117, 62, 76, 63, 98, 47, 71, 118, 88, 54, 40, 45, 90, 90, 64, 91, 44, 68, 116, 124, 123, 99, 54, 120, 68, 92, 71, 98, 82, 39, 105, 121, 114, 51, 75, 59, 35, 65, 42, 35, 101, 102, 60, 112, 65, 77, 35, 116, 57, 37, 60, 69, 59, 120, 128, 160, 130, 231, 251, 239, 145, 184, 121, 250, 1, 5, 13, 36, 92, 5, 63, 84, 83, 40, 33, 93, 117, 102, 88, 63, 98, 54, 89, 49, 116, 68, 99, 67, 80, 75, 46, 58, 70, 47, 37, 87, 106, 57, 112, 55, 52, 71, 68, 87, 117, 89, 81, 73, 76, 106, 67, 93, 119, 96, 50, 73, 73, 47, 52, 94, 33, 67, 106, 68, 51, 50, 91, 101, 52, 77, 81, 43, 73, 98, 60, 112, 120, 128, 188, 155, 159, 182, 193, 219, 249, 58, 250, 1, 5, 13, 77, 123, 174, 60, 84, 83, 40, 36, 93, 111, 106, 149, 62, 98, 55, 113, 58, 118, 101, 40, 79, 66, 100, 124, 90, 45, 90, 37, 50, 54, 112, 91, 32, 67, 98, 124, 107, 53, 126, 57, 55, 52, 52, 68, 64, 125, 71, 115, 120, 107, 101, 75, 37, 60, 99, 111, 117, 103, 89, 63, 117, 38, 54, 75, 74, 52, 74, 93, 87, 62, 120, 128, 140, 166, 133, 193, 221, 176, 170, 136, 1, 250, 1, 5, 13, 242, 127, 98, 61, 84, 83, 40, 115, 93, 222, 250, 235, 62, 98, 35, 111, 58, 45, 64, 91, 91, 101, 101, 43, 70, 79, 68, 86, 99, 95, 113, 38, 35, 91, 95, 66, 48, 125, 104, 120, 44, 82, 105, 60, 90, 101, 96, 84, 88, 75, 120, 128, 220, 162, 150, 250, 221, 149, 178, 55, 250, 1, 5, 13, 48, 120, 50, 63, 84, 83, 40, 71, 93, 178, 218, 8, 62, 98, 30, 124, 88, 48, 121, 110, 122, 38, 93, 102, 125, 100, 55, 34, 73, 55, 41, 95, 60, 68, 70, 78, 40, 123, 73, 80, 96, 110, 111, 124, 55, 120, 128, 140, 136, 232, 147, 221, 192, 192, 158, 1, 250, 1, 5, 13, 51, 217, 41, 62, 84, 83, 40, 64, 93, 189, 228, 103, 63, 98, 26, 93, 38, 50, 53, 46, 108, 114, 77, 106, 107, 86, 66, 98, 55, 61, 79, 107, 44, 62, 46, 92, 115, 92, 101, 73, 46, 120, 128, 176, 138, 216, 147, 250, 210, 192, 17, 250, 1, 10, 13, 86, 62, 106, 62, 29, 237, 39, 44, 63, 84, 83, 40, 63, 93, 66, 226, 61, 63, 98, 34, 84, 101, 43, 106, 48, 118, 73, 46, 86, 83, 32, 60, 48, 113, 45, 125, 86, 82, 77, 75, 42, 112, 66, 57, 104, 72, 75, 107, 32, 96, 92, 109, 59, 36, 120, 128, 148, 145, 170, 192, 159, 137, 209, 130, 1, 250, 1, 5, 13, 13, 139, 34, 63, 84, 83, 40, 73, 93, 74, 36, 237, 62, 98, 48, 44, 88, 65, 125, 102, 89, 91, 86, 76, 114, 59, 48, 84, 98, 50, 35, 92, 99, 67, 113, 33, 103, 74, 92, 45, 117, 118, 50, 33, 43, 111, 80, 69, 42, 70, 115, 41, 44, 42, 103, 92, 50, 122, 87, 80, 111, 43, 121, 120, 128, 184, 241, 252, 214, 209, 139, 231, 78, 250, 1, 5, 13, 206, 194, 129, 62, 84, 83, 40, 52, 93, 95, 1, 161, 62, 98, 28, 56, 101, 74, 67, 45, 99, 111, 112, 98, 72, 85, 65, 35, 105, 105, 73, 60, 62, 120, 80, 88, 91, 52, 110, 107, 113, 44, 61, 120, 128, 200, 219, 166, 190, 216, 220, 181, 99, 250, 1, 10, 13, 47, 13, 120, 63, 29, 179, 10, 22, 63, 84, 83, 40, 96, 93, 128, 101, 52, 63, 98, 67, 81, 55, 95, 95, 34, 101, 69, 59, 57, 36, 51, 91, 89, 84, 101, 37, 97, 92, 59, 62, 118, 99, 92, 80, 91, 86, 58, 87, 81, 38, 101, 112, 108, 93, 80, 81, 41, 104, 58, 87, 83, 52, 63, 86, 33, 50, 50, 61, 69, 56, 40, 63, 59, 73, 107, 108, 90, 47, 36, 74, 75, 108, 105, 50, 62, 66, 110, 120, 128, 184, 223, 181, 236, 222, 251, 173, 122, 250, 1, 5, 13, 241, 52, 49, 61, 84, 83, 40, 26, 93, 3, 74, 117, 63, 98, 28, 119, 66, 99, 105, 98, 68, 37, 79, 72, 68, 124, 49, 57, 125, 70, 84, 66, 112, 98, 118, 121, 100, 110, 44, 101, 74, 44, 56, 120, 128, 136, 236, 175, 170, 173, 224, 254, 83, 250, 1, 12, 13, 172, 153, 189, 62, 29, 92, 22, 118, 62, 56, 0, 84, 83, 40, 23, 93, 196, 128, 151, 62, 98, 47, 47, 124, 87, 95, 41, 72, 84, 95, 90, 38, 77, 91, 79, 52, 118, 108, 76, 41, 64, 60, 33, 50, 82, 87, 35, 55, 55, 108, 112, 37, 45, 98, 126, 124, 109, 73, 124, 98, 103, 57, 66, 58, 42, 104, 93, 42, 121, 120, 128, 216, 172, 142, 211, 173, 229, 242, 117, 250, 1, 5, 13, 0, 22, 175, 62, 200, 4, 107, 84, 83, 40, 115, 93, 20, 138, 12, 62, 98, 54, 119, 116, 58, 123, 73, 126, 91, 112, 49, 102, 110, 85, 119, 106, 92, 82, 69, 77, 111, 104, 65, 39, 121, 102, 40, 104, 120, 120, 61, 62, 76, 126, 46, 32, 105, 42, 97, 113, 126, 124, 38, 118, 40, 90, 75, 83, 112, 114, 76, 71, 81, 113, 33, 45, 120, 128, 200, 154, 207, 156, 173, 212, 249, 228, 1, 250, 1, 10, 13, 5, 79, 89, 63, 29, 196, 46, 114, 63, 84, 83, 40, 68, 93, 235, 245, 94, 63, 98, 58, 95, 37, 97, 83, 113, 58, 110, 70, 119, 32, 81, 111, 83, 78, 113, 98, 73, 125, 63, 59, 83, 119, 38, 75, 116, 108, 89, 125, 33, 52, 120, 47, 46, 125, 63, 118, 67, 67, 53, 63, 91, 45, 119, 114, 122, 87, 124, 67, 47, 73, 65, 113, 90, 55, 62, 102, 126, 53, 120, 128, 248, 131, 168, 234, 187, 159, 192, 210, 1, 250, 1, 5, 13, 197, 29, 96, 61, 84, 83, 40, 86, 93, 6, 188, 88, 63, 98, 54, 69, 98, 38, 66, 96, 85, 46, 121, 62, 38, 103, 126, 94, 70, 32, 51, 80, 61, 110, 53, 109, 86, 114, 38, 83, 118, 94, 87, 119, 45, 100, 48, 93, 106, 102, 53, 107, 87, 117, 71, 52, 52, 43, 58, 42, 90, 87, 119, 102, 107, 100, 63, 53, 74, 120, 224, 157, 209, 167, 216, 237, 137, 189, 4, 250, 1, 12, 13, 118, 241, 82, 63, 29, 154, 206, 85, 63, 56, 0, 200, 4, 103, 84, 83, 40, 97, 93, 219, 129, 103, 63, 98, 33, 85, 34, 48, 64, 87, 64, 115, 95, 106, 70, 119, 71, 70, 32, 88, 75, 88, 123, 119, 62, 102, 112, 43, 72, 69, 121, 51, 103, 119, 68, 107, 105, 44, 120, 128, 192, 189, 222, 148, 130, 236, 243, 65, 250, 1, 12, 13, 216, 134, 39, 63, 29, 6, 0, 73, 62, 56, 1, 84, 83, 40, 118, 93, 144, 144, 6, 63, 98, 50, 57, 99, 55, 122, 69, 107, 119, 109, 73, 72, 66, 55, 35, 116, 74, 47, 99, 117, 103, 122, 92, 45, 43, 102, 69, 90, 46, 58, 117, 65, 70, 80, 94, 73, 93, 90, 78, 116, 101, 91, 77, 43, 104, 62, 84, 45, 103, 115, 97, 65, 120, 128, 248, 223, 132, 239, 194, 255, 165, 248, 1, 250, 1, 10, 13, 251, 45, 151, 62, 29, 180, 116, 68, 62, 84, 83, 40, 124, 93, 19, 50, 100, 63, 98, 56, 44, 87, 79, 85, 105, 93, 92, 119, 39, 34, 113, 87, 89, 54, 111, 95, 110, 48, 43, 76, 80, 68, 108, 50, 56, 113, 57, 88, 84, 71, 42, 62, 96, 83, 81, 34, 125, 63, 122, 125, 111, 51, 96, 60, 98, 84, 45, 92, 113, 96, 43, 43, 38, 80, 68, 102, 120, 128, 176, 145, 193, 220, 236, 138, 137, 228, 1, 250, 1, 5, 13, 219, 45, 157, 62, 84, 83, 40, 39, 93, 195, 146, 106, 63, 98, 65, 67, 36, 67, 95, 119, 82, 118, 37, 100, 108, 97, 78, 52, 44, 92, 60, 98, 79, 79, 98, 100, 92, 102, 115, 60, 125, 55, 47, 47, 105, 55, 96, 34, 35, 90, 107, 111, 32, 68, 47, 92, 40, 119, 36, 125, 91, 118, 121, 115, 39, 35, 58, 108, 89, 50, 102, 61, 78, 67, 120, 58, 103, 117, 121, 84, 120, 192, 218, 197, 147, 240, 211, 173, 156, 129, 1, 250, 1, 10, 13, 254, 204, 240, 62, 29, 245, 226, 56, 62, 84, 83, 40, 66, 93, 195, 215, 87, 63, 98, 47, 76, 98, 42, 63, 38, 92, 100, 97, 116, 95, 39, 61, 59, 39, 102, 123, 114, 71, 111, 115, 77, 64, 92, 75, 116, 116, 49, 124, 79, 124, 46, 101, 71, 35, 89, 64, 48, 76, 83, 85, 34, 90, 89, 98, 113, 124, 75, 120, 128, 232, 182, 138, 189, 214, 182, 211, 232, 1, 250, 1, 10, 13, 80, 82, 79, 62, 29, 139, 94, 22, 63, 84, 83, 40, 17, 93, 78, 178, 97, 61, 98, 53, 64, 93, 66, 44, 37, 94, 74, 48, 74, 102, 50, 118, 80, 64, 116, 56, 76, 69, 107, 69, 114, 57, 112, 114, 101, 121, 88, 118, 72, 66, 105, 118, 111, 41, 68, 105, 95, 77, 59, 80, 34, 66, 43, 59, 72, 97, 49, 80, 39, 51, 64, 108, 107, 120, 128, 240, 246, 206, 181, 217, 182, 247, 94, 250, 1, 5, 13, 121, 26, 58, 62, 84, 83, 40, 9, 93, 81, 71, 75, 63, 98, 50, 79, 69, 43, 38, 82, 103, 39, 123, 58, 39, 71, 123, 42, 87, 126, 42, 59, 67, 80, 46, 85, 73, 36, 103, 39, 111, 53, 34, 123, 43, 41, 119, 61, 125, 48, 40, 48, 74, 79, 90, 35, 62, 45, 90, 105, 84, 124, 91, 65, 98, 120, 128, 128, 159, 199, 200, 140, 248, 185, 65, 250, 1, 12, 13, 246, 218, 188, 62, 29, 73, 134, 44, 63, 56, 1, 84, 83, 40, 28, 93, 36, 214, 106, 61, 98, 85, 64, 66, 125, 98, 82, 37, 126, 47, 124, 79, 93, 44, 70, 117, 121, 111, 115, 116, 42, 55, 59, 72, 125, 82, 113, 89, 95, 57, 89, 101, 55, 68, 103, 43, 102, 108, 75, 107, 40, 125, 63, 125, 92, 58, 117, 111, 52, 75, 104, 95, 78, 106, 109, 125, 104, 119, 67, 74, 111, 119, 69, 101, 84, 55, 55, 56, 68, 59, 47, 44, 67, 39, 108, 44, 118, 61, 107, 99, 92, 34, 68, 51, 79, 121, 54, 120, 128, 196, 203, 220, 188, 158, 220, 228, 59, 250, 1, 5, 13, 223, 240, 19, 63, 84, 83, 40, 97, 93, 178, 85, 182, 62, 98, 43, 110, 72, 32, 123, 47, 87, 89, 72, 69, 34, 92, 75, 120, 59, 92, 59, 71, 125, 96, 38, 74, 43, 95, 109, 108, 83, 49, 53, 90, 32, 106, 96, 89, 120, 64, 98, 67, 42, 92, 83, 61, 116, 69, 120, 128, 152, 204, 223, 162, 194, 225, 252, 87, 250, 1, 5, 13, 16, 7, 127, 63, 84, 83, 40, 72, 93, 58, 53, 233, 62, 98, 76, 119, 114, 94, 109, 77, 117, 98, 117, 98, 104, 50, 46, 91, 70, 67, 109, 68, 54, 122, 112, 32, 122, 120, 119, 60, 64, 45, 103, 85, 101, 125, 110, 54, 40, 57, 66, 123, 50, 60, 106, 118, 34, 92, 121, 48, 123, 33, 45, 121, 39, 33, 74, 36, 100, 75, 123, 121, 101, 80, 45, 104, 122, 64, 124, 105, 67, 119, 83, 45, 33, 112, 50, 120, 47, 121, 124, 120, 128, 160, 154, 197, 166, 250, 209, 169, 41, 250, 1, 5, 13, 174, 39, 124, 63, 84, 83, 40, 94, 93, 106, 192, 175, 62, 98, 43, 63, 126, 109, 78, 100, 83, 106, 80, 91, 60, 72, 53, 96, 47, 34, 123, 96, 95, 48, 108, 36, 77, 32, 120, 53, 109, 80, 115, 106, 77, 93, 122, 126, 48, 109, 104, 44, 113, 55, 54, 87, 70, 118, 120, 128, 144, 214, 170, 189, 232, 176, 213, 234, 1, 250, 1, 10, 13, 190, 79, 23, 63, 29, 219, 26, 32, 63, 84, 83, 40, 65, 93, 82, 82, 69, 63, 98, 79, 45, 124, 59, 93, 109, 120, 60, 112, 126, 116, 57, 117, 34, 117, 100, 46, 94, 76, 54, 80, 65, 57, 110, 110, 71, 120, 52, 92, 85, 47, 63, 88, 60, 102, 102, 108, 49, 126, 45, 37, 114, 123, 104, 55, 87, 65, 52, 97, 96, 103, 48, 43, 68, 32, 72, 114, 46, 76, 53, 115, 99, 94, 59, 110, 84, 95, 89, 58, 47, 118, 124, 95, 63, 48, 92, 68, 79, 86, 54, 120, 128, 196, 202, 175, 233, 157, 212, 252, 9, 250, 1, 5, 13, 146, 144, 55, 63, 84, 83, 40, 67, 93, 229, 216, 115, 63, 98, 55, 109, 126, 52, 51, 59, 62, 114, 94, 100, 104, 56, 65, 51, 96, 120, 98, 119, 103, 120, 81, 105, 106, 80, 107, 52, 67, 35, 66, 86, 53, 47, 47, 48, 99, 77, 111, 63, 75, 61, 123, 59, 56, 55, 117, 39, 110, 72, 98, 86, 115, 62, 62, 106, 32, 49, 120, 128, 183, 160, 178, 192, 183, 131, 146, 131, 1, 250, 1, 5, 13, 243, 55, 249, 62, 84, 83, 40, 53, 93, 143, 15, 127, 63, 98, 24, 119, 58, 79, 39, 79, 89, 40, 48, 79, 51, 41, 66, 75, 73, 124, 54, 80, 82, 90, 99, 68, 121, 63, 107, 120, 128, 192, 165, 155, 171, 156, 172, 218, 217, 1, 250, 1, 10, 13, 86, 199, 102, 63, 29, 224, 251, 85, 63, 84, 83, 40, 48, 93, 38, 164, 47, 62, 98, 63, 82, 74, 64, 118, 75, 68, 96, 106, 49, 103, 59, 126, 94, 120, 79, 76, 80, 113, 115, 109, 105, 95, 78, 115, 99, 90, 125, 122, 99, 67, 88, 105, 98, 126, 123, 103, 103, 75, 126, 37, 59, 74, 63, 106, 62, 100, 100, 32, 111, 63, 50, 35, 122, 86, 69, 113, 123, 76, 50, 112, 70, 101, 39, 120, 128, 216, 202, 156, 207, 220, 213, 228, 102, 250, 1, 5, 13, 207, 250, 34, 62, 84, 83, 40, 65, 93, 7, 33, 147, 62, 98, 72, 94, 123, 102, 99, 37, 113, 110, 81, 63, 63, 99, 84, 125, 116, 124, 42, 67, 49, 84, 109, 44, 89, 42, 107, 59, 56, 46, 94, 85, 66, 82, 91, 108, 73, 37, 36, 40, 90, 44, 49, 44, 36, 38, 81, 55, 119, 51, 122, 73, 90, 99, 90, 89, 98, 46, 37, 113, 121, 72, 107, 99, 48, 123, 124, 108, 40, 103, 84, 111, 119, 34, 104, 120, 128, 136, 215, 150, 158, 190, 184, 181, 7, 250, 1, 5, 13, 170, 159, 190, 62, 84, 83, 40, 87, 93, 251, 104, 175, 61, 98, 61, 82, 87, 83, 67, 36, 50, 52, 121, 94, 119, 33, 42, 58, 126, 50, 45, 50, 64, 76, 122, 40, 41, 100, 47, 47, 94, 43, 80, 88, 121, 85, 54, 33, 38, 82, 57, 70, 37, 103, 81, 122, 33, 61, 116, 38, 93, 57, 111, 101, 115, 86, 99, 117, 101, 126, 73, 113, 68, 51, 69, 38, 120, 128, 208, 168, 181, 251, 141, 197, 170, 219, 1, 250, 1, 5, 13, 136, 147, 179, 62, 84, 83, 40, 89, 93, 94, 72, 181, 62, 98, 49, 106, 40, 52, 76, 119, 102, 44, 87, 122, 32, 38, 106, 111, 40, 81, 68, 59, 105, 99, 67, 113, 63, 58, 38, 41, 71, 34, 113, 66, 74, 54, 95, 89, 82, 59, 84, 37, 67, 109, 45, 73, 43, 122, 100, 120, 93, 34, 59, 96, 120, 192, 185, 163, 148, 160, 204, 155, 162, 129, 1, 250, 1, 5, 13, 193, 248, 71, 63, 84, 83, 40, 119, 93, 189, 135, 35, 63, 98, 61, 63, 79, 74, 109, 45, 67, 80, 100, 58, 53, 79, 104, 69, 49, 61, 108, 124, 62, 118, 122, 86, 121, 101, 67, 84, 44, 74, 68, 101, 48, 65, 95, 60, 34, 58, 34, 111, 101, 118, 32, 61, 71, 47, 116, 75, 122, 82, 76, 100, 77, 99, 97, 114, 126, 38, 68, 105, 38, 56, 32, 119, 120, 128, 215, 156, 158, 177, 186, 229, 241, 15, 250, 1, 5, 13, 226, 174, 123, 63, 84, 83, 40, 12, 93, 112, 203, 97, 63, 98, 32, 110, 76, 67, 118, 58, 124, 54, 70, 118, 92, 46, 106, 111, 119, 88, 89, 124, 95, 56, 76, 94, 108, 60, 123, 116, 56, 104, 77, 118, 39, 50, 73, 120, 192, 185, 239, 255, 192, 203, 251, 254, 135, 1, 250, 1, 5, 13, 22, 181, 23, 60, 84, 83, 40, 79, 93, 192, 133, 247, 62, 98, 45, 47, 85, 73, 80, 76, 58, 122, 65, 118, 89, 120, 46, 94, 70, 121, 74, 100, 91, 53, 34, 48, 70, 33, 33, 51, 104, 79, 111, 73, 100, 100, 110, 60, 43, 73, 71, 54, 102, 126, 67, 112, 122, 37, 58, 63, 120, 128, 248, 142, 194, 187, 151, 247, 144, 79, 250, 1, 5, 13, 219, 204, 81, 63, 84, 83, 40, 63, 93, 28, 200, 12, 62, 98, 31, 103, 99, 72, 106, 88, 61, 103, 83, 71, 61, 99, 106, 43, 118, 50, 116, 41, 112, 83, 123, 82, 52, 125, 92, 112, 48, 53, 65, 102, 97, 88, 120, 128, 248, 193, 165, 245, 181, 143, 172, 120, 250, 1, 7, 13, 31, 220, 126, 63, 32, 1, 84, 83, 40, 87, 93, 31, 78, 39, 60, 98, 24, 59, 36, 98, 108, 96, 114, 109, 73, 59, 88, 101, 35, 114, 68, 53, 104, 58, 83, 89, 83, 101, 107, 121, 72, 120, 128, 202, 228, 170, 188, 206, 164, 214, 12, 250, 1, 10, 13, 66, 178, 207, 62, 29, 242, 255, 76, 63, 84, 83, 40, 92, 93, 175, 53, 55, 63, 98, 44, 105, 107, 72, 53, 49, 89, 37, 45, 102, 58, 94, 69, 83, 65, 56, 74, 49, 78, 65, 76, 110, 94, 75, 40, 46, 58, 78, 41, 58, 99, 58, 38, 40, 100, 80, 108, 61, 109, 96, 106, 48, 91, 83, 56, 120, 128, 136, 201, 228, 139, 204, 200, 164, 122, 250, 1, 5, 13, 233, 192, 15, 62, 84, 83, 40, 24, 93, 254, 37, 228, 62, 98, 69, 97, 125, 117, 119, 74, 57, 116, 42, 63, 64, 38, 117, 42, 122, 114, 34, 32, 87, 61, 109, 111, 74, 44, 67, 108, 86, 60, 50, 43, 51, 44, 32, 40, 36, 71, 60, 108, 66, 91, 109, 110, 70, 76, 123, 102, 106, 95, 52, 104, 80, 56, 67, 110, 67, 89, 54, 112, 82, 42, 114, 124, 98, 125, 44, 51, 37, 109, 38, 83, 120, 128, 248, 166, 136, 137, 197, 183, 194, 200, 1, 250, 1, 5, 13, 116, 182, 98, 62, 84, 83, 40, 81, 93, 156, 166, 116, 63, 98, 72, 78, 125, 73, 125, 48, 92, 34, 118, 39, 73, 89, 122, 104, 49, 99, 73, 48, 75, 58, 55, 104, 112, 44, 71, 64, 103, 96, 124, 88, 95, 50, 59, 89, 71, 63, 69, 48, 56, 96, 116, 40, 122, 116, 56, 67, 49, 74, 115, 41, 92, 67, 42, 121, 69, 50, 93, 112, 34, 92, 71, 123, 36, 62, 71, 55, 62, 64, 64, 112, 61, 57, 119, 120, 128, 168, 244, 218, 207, 175, 162, 215, 99, 250, 1, 5, 13, 139, 131, 197, 62, 84, 83, 40, 20, 93, 81, 141, 78, 63, 98, 76, 123, 115, 35, 46, 60, 107, 114, 123, 60, 39, 64, 52, 53, 97, 84, 45, 90, 56, 120, 35, 92, 76, 33, 37, 112, 42, 34, 106, 66, 75, 64, 85, 54, 68, 96, 124, 126, 78, 42, 47, 49, 65, 43, 47, 124, 43, 43, 47, 104, 43, 60, 80, 75, 43, 48, 78, 114, 124, 61, 50, 105, 39, 88, 112, 102, 106, 124, 111, 33, 87, 46, 44, 46, 104, 113, 58, 120, 128, 184, 137, 189, 241, 194, 203, 232, 45, 250, 1, 5, 13, 100, 246, 88, 63, 84, 83, 40, 10, 93, 87, 249, 55, 63, 98, 24, 125, 114, 34, 54, 46, 110, 41, 43, 52, 49, 41, 33, 48, 118, 69, 41, 104, 58, 72, 49, 46, 59, 46, 49, 120, 128, 144, 209, 198, 207, 242, 136, 181, 252, 1, 250, 1, 10, 13, 239, 195, 50, 62, 29, 253, 234, 184, 62, 84, 83, 40, 88, 93, 197, 224, 133, 62, 98, 44, 116, 45, 33, 116, 88, 51, 117, 37, 65, 97, 119, 97, 113, 90, 110, 77, 44, 122, 54, 66, 103, 81, 39, 72, 117, 85, 98, 100, 112, 57, 124, 75, 70, 113, 63, 36, 40, 44, 87, 98, 78, 36, 70, 87, 120, 128, 240, 180, 134, 248, 245, 166, 179, 192, 1, 250, 1, 10, 13, 102, 168, 255, 62, 29, 75, 92, 151, 62, 84, 83, 40, 85, 93, 105, 140, 165, 62, 98, 48, 98, 111, 53, 43, 63, 79, 67, 37, 88, 125, 34, 80, 49, 51, 40, 100, 75, 58, 126, 59, 106, 68, 32, 66, 82, 114, 99, 42, 79, 119, 70, 57, 34, 69, 45, 72, 103, 64, 39, 65, 122, 125, 79, 45, 85, 50, 61, 111, 120, 128, 184, 239, 136, 245, 197, 251, 198, 168, 1, 250, 1, 5, 13, 176, 180, 92, 63, 200, 4, 5, 84, 83, 40, 27, 93, 123, 79, 152, 62, 98, 28, 68, 83, 62, 110, 113, 87, 75, 107, 56, 85, 95, 87, 103, 77, 107, 38, 94, 123, 43, 51, 93, 63, 107, 116, 113, 108, 64, 85, 120, 128, 232, 216, 132, 158, 210, 198, 165, 240, 1, 250, 1, 5, 13, 225, 50, 76, 63, 84, 83, 40, 80, 93, 196, 141, 96, 63, 98, 18, 49, 124, 93, 112, 110, 89, 117, 103, 90, 85, 98, 71, 110, 84, 108, 100, 80, 104, 120, 128, 240, 243, 200, 154, 227, 158, 199, 212, 1, 250, 1, 10, 13, 254, 141, 101, 63, 29, 176, 213, 108, 63, 84, 83, 40, 2, 93, 162, 21, 39, 63, 98, 61, 36, 102, 72, 123, 36, 55, 116, 118, 75, 119, 107, 70, 105, 110, 121, 55, 37, 38, 66, 87, 39, 92, 68, 38, 60, 126, 91, 37, 42, 45, 102, 122, 47, 62, 89, 42, 70, 92, 112, 80, 101, 93, 54, 78, 34, 46, 34, 116, 85, 81, 89, 110, 85, 73, 86, 70, 66, 65, 94, 37, 91, 120, 128, 208, 188, 255, 254, 226, 228, 251, 106, 250, 1, 5, 13, 138, 116, 77, 63, 84, 83, 40, 40, 93, 4, 174, 62, 62, 98, 37, 112, 54, 75, 53, 111, 112, 72, 53, 112, 113, 73, 69, 116, 35, 46, 124, 101, 78, 88, 82, 118, 68, 101, 103, 50, 103, 36, 124, 107, 116, 116, 112, 119, 61, 49, 119, 86, 120, 128, 184, 255, 191, 238, 203, 251, 255, 84, 250, 1, 12, 13, 83, 118, 59, 63, 29, 73, 215, 44, 63, 56, 0, 84, 83, 40, 76, 93, 220, 91, 54, 63, 98, 24, 86, 44, 32, 77, 62, 80, 40, 116, 64, 51, 107, 57, 75, 79, 98, 34, 40, 107, 75, 73, 123, 123, 88, 77, 120, 128, 248, 207, 166, 167, 211, 255, 180, 74, 250, 1, 12, 13, 17, 117, 89, 63, 29, 57, 7, 109, 62, 56, 0, 200, 4, 9, 84, 83, 40, 96, 93, 94, 218, 106, 63, 98, 44, 65, 61, 96, 47, 90, 49, 57, 101, 75, 99, 32, 84, 92, 43, 35, 101, 71, 114, 91, 93, 115, 101, 48, 103, 90, 83, 82, 117, 76, 58, 97, 109, 87, 59, 73, 123, 105, 64, 39, 112, 109, 38, 126, 100, 120, 128, 216, 205, 170, 159, 203, 237, 212, 250, 1, 250, 1, 10, 13, 21, 21, 211, 62, 29, 114, 157, 117, 63, 84, 83, 40, 45, 93, 119, 47, 11, 63, 98, 49, 42, 109, 82, 74, 42, 35, 91, 45, 119, 83, 39, 94, 67, 56, 48, 33, 49, 123, 64, 97, 38, 123, 38, 106, 106, 110, 108, 101, 74, 107, 51, 87, 48, 65, 65, 76, 47, 67, 77, 55, 109, 109, 112, 108, 32, 49, 74, 109, 110, 120, 128, 200, 255, 167, 235, 201, 252, 191, 218, 1, 250, 1, 5, 13, 53, 81, 69, 63, 84, 83, 40, 57, 93, 132, 65, 30, 63, 98, 76, 95, 76, 46, 102, 102, 94, 58, 54, 117, 98, 44, 64, 79, 78, 33, 117, 99, 113, 109, 78, 40, 114, 55, 42, 57, 106, 88, 68, 125, 118, 101, 34, 103, 123, 79, 115, 50, 100, 71, 99, 50, 33, 119, 43, 100, 75, 79, 98, 72, 118, 42, 112, 122, 123, 82, 107, 52, 36, 76, 123, 37, 116, 55, 125, 123, 42, 87, 83, 125, 44, 98, 125, 74, 41, 60, 39, 120, 128, 192, 136, 220, 182, 234, 195, 224, 121, 250, 1, 7, 13, 161, 166, 7, 62, 32, 0, 84, 83, 40, 103, 93, 22, 101, 144, 62, 98, 25, 117, 123, 39, 107, 116, 38, 107, 73, 98, 95, 46, 55, 74, 93, 60, 104, 120, 46, 89, 114, 123, 99, 59, 51, 44, 120, 128, 144, 253, 196, 181, 252, 232, 167, 52, 250, 1, 12, 13, 18, 58, 90, 63, 29, 231, 130, 42, 63, 32, 0, 200, 4, 107, 84, 83, 40, 11, 93, 50, 74, 40, 63, 98, 31, 94, 96, 47, 120, 48, 50, 39, 35, 107, 42, 58, 76, 84, 101, 126, 74, 126, 62, 33, 124, 105, 121, 62, 49, 96, 114, 94, 77, 52, 43, 125, 120, 128, 160, 184, 250, 208, 137, 194, 211, 109, 250, 1, 12, 13, 145, 199, 19, 63, 29, 254, 193, 253, 62, 56, 1, 200, 4, 98, 84, 83, 40, 61, 93, 173, 188, 189, 62, 98, 48, 87, 101, 39, 86, 38, 112, 72, 109, 94, 69, 71, 70, 95, 44, 110, 42, 115, 99, 65, 125, 56, 60, 83, 88, 110, 95, 43, 72, 116, 37, 45, 52, 123, 91, 101, 59, 117, 51, 114, 77, 103, 113, 52, 57, 38, 109, 75, 112, 120, 128, 144, 236, 184, 160, 255, 224, 198, 131, 1, 250, 1, 5, 13, 212, 101, 239, 62, 84, 83, 40, 78, 93, 33, 142, 96, 63, 98, 28, 71, 79, 42, 59, 50, 78, 102, 69, 100, 32, 119, 89, 56, 50, 73, 36, 70, 83, 52, 95, 112, 115, 54, 69, 40, 58, 81, 33, 120, 128, 210, 245, 169, 227, 151, 173, 207, 28, 250, 1, 12, 13, 119, 31, 140, 62, 29, 114, 175, 204, 62, 56, 0, 84, 83, 40, 55, 93, 201, 141, 135, 62, 98, 77, 108, 76, 80, 74, 41, 71, 76, 76, 103, 102, 120, 90, 33, 115, 68, 70, 74, 78, 56, 122, 35, 82, 57, 100, 50, 119, 123, 101, 49, 74, 89, 79, 47, 125, 68, 123, 83, 123, 74, 107, 51, 67, 44, 78, 76, 77, 57, 93, 91, 108, 110, 118, 48, 78, 53, 57, 51, 107, 55, 48, 74, 101, 59, 60, 45, 73, 74, 34, 78, 71, 114, 78, 36, 75, 102, 94, 69, 120, 128, 192, 190, 184, 142, 211, 243, 195, 99, 250, 1, 5, 13, 229, 109, 126, 62, 84, 83, 40, 91, 93, 235, 158, 39, 63, 98, 25, 62, 41, 67, 91, 97, 63, 95, 104, 43, 104, 102, 99, 57, 65, 76, 39, 111, 64, 35, 34, 54, 46, 52, 121, 64, 120, 128, 136, 140, 245, 205, 167, 224, 168, 239, 1, 250, 1, 12, 13, 212, 75, 54, 63, 29, 171, 212, 62, 63, 56, 1, 84, 83, 40, 110, 93, 212, 109, 218, 62, 98, 59, 83, 82, 81, 44, 92, 119, 95, 74, 41, 105, 57, 67, 93, 43, 105, 105, 42, 58, 87, 85, 72, 52, 97, 71, 47, 116, 73, 58, 110, 90, 120, 50, 55, 64, 51, 49, 103, 52, 111, 47, 47, 117, 120, 55, 124, 106, 85, 109, 85, 41, 89, 76, 125, 61, 126, 63, 111, 42, 123, 120, 128, 160, 218, 128, 210, 242, 209, 133, 96, 250, 1, 5, 13, 144, 75, 248, 62, 84, 83, 40, 49, 93, 43, 159, 32, 63, 98, 23, 78, 112, 38, 44, 61, 119, 88, 34, 116, 73, 71, 70, 82, 58, 73, 73, 68, 62, 90, 100, 100, 33, 75, 120, 128, 142, 137, 140, 226, 237, 200, 224, 26, 250, 1, 10, 13, 40, 162, 110, 63, 29, 245, 236, 173, 62, 84, 83, 40, 110, 93, 173, 10, 174, 62, 98, 57, 92, 55, 40, 96, 105, 57, 74, 69, 117, 93, 56, 116, 124, 38, 99, 34, 86, 118, 76, 36, 70, 96, 87, 72, 114, 95, 117, 77, 69, 114, 50, 124, 36, 56, 68, 92, 65, 101, 91, 56, 111, 35, 82, 101, 37, 100, 102, 94, 60, 72, 92, 34, 114, 110, 121, 123, 95, 120, 128, 208, 152, 193, 154, 226, 196, 137, 212, 1, 250, 1, 10, 13, 66, 122, 79, 63, 29, 135, 222, 202, 61, 84, 83, 40, 46, 93, 134, 60, 120, 63, 98, 62, 32, 35, 74, 58, 112, 100, 96, 38, 96, 111, 58, 51, 51, 66, 45, 113, 66, 45, 120, 55, 48, 123, 54, 48, 41, 53, 61, 72, 124, 98, 119, 82, 116, 114, 35, 78, 58, 106, 115, 34, 124, 53, 103, 107, 102, 95, 90, 87, 109, 108, 59, 94, 48, 43, 107, 35, 107, 58, 49, 90, 70, 56, 120, 128, 201, 220, 157, 247, 203, 228, 237, 12, 250, 1, 5, 13, 245, 116, 123, 63, 84, 83, 40, 115, 93, 73, 227, 63, 63, 98, 43, 61, 64, 62, 93, 86, 87, 57, 117, 58, 121, 52, 73, 73, 72, 90, 101, 89, 47, 70, 56, 66, 105, 38, 126, 98, 32, 88, 57, 90, 99, 45, 104, 116, 126, 65, 57, 56, 47, 54, 98, 69, 57, 112, 120, 128, 240, 197, 218, 189, 152, 175, 212, 237, 1, 250, 1, 5, 13, 161, 76, 83, 63, 84, 83, 40, 45, 93, 139, 6, 88, 63, 98, 71, 103, 126, 95, 94, 119, 86, 93, 69, 83, 57, 63, 122, 86, 126, 32, 58, 85, 108, 74, 84, 73, 38, 64, 76, 73, 120, 99, 114, 40, 119, 52, 48, 64, 47, 112, 57, 121, 37, 52, 50, 55, 89, 109, 32, 120, 52, 94, 99, 69, 125, 59, 37, 67, 108, 70, 96, 93, 50, 52, 126, 114, 105, 60, 90, 37, 46, 89, 71, 45, 101, 63, 120, 128, 152, 246, 166, 212, 233, 177, 183, 65, 250, 1, 5, 13, 1, 44, 23, 63, 84, 83, 40, 32, 93, 78, 47, 157, 62, 98, 50, 111, 56, 64, 83, 53, 57, 126, 76, 42, 92, 47, 107, 83, 103, 47, 91, 103, 111, 52, 62, 76, 61, 50, 121, 105, 89, 55, 85, 95, 93, 106, 76, 43, 79, 86, 72, 61, 94, 126, 100, 115, 60, 49, 125, 116, 66, 38, 94, 125, 42, 120, 128, 224, 239, 181, 153, 224, 253, 174, 203, 1, 250, 1, 5, 13, 10, 226, 43, 63, 84, 83, 40, 47, 93, 191, 168, 110, 63, 98, 68, 111, 81, 37, 69, 104, 90, 33, 72, 108, 76, 113, 98, 95, 36, 49, 102, 62, 40, 111, 79, 74, 47, 43, 52, 36, 70, 83, 88, 87, 85, 37, 42, 40, 50, 94, 36, 66, 118, 116, 68, 98, 74, 79, 100, 44, 50, 98, 34, 77, 54, 107, 79, 111, 114, 78, 96, 69, 112, 64, 66, 39, 72, 111, 55, 70, 103, 89, 77, 120, 128, 132, 204, 156, 214, 155, 224, 228, 177, 1, 250, 1, 5, 13, 33, 33, 9, 62, 84, 83, 40, 48, 93, 240, 77, 209, 62, 98, 64, 50, 75, 107, 126, 95, 70, 40, 113, 99, 81, 43, 65, 104, 85, 58, 53, 99, 125, 93, 81, 85, 82, 61, 57, 89, 55, 61, 67, 88, 53, 92, 64, 113, 68, 60, 67, 38, 78, 32, 126, 104, 78, 93, 84, 61, 78, 77, 112, 76, 68, 105, 70, 78, 113, 112, 95, 46, 82, 69, 71, 41, 99, 56, 78, 120, 128, 200, 244, 182, 211, 189, 164, 183, 113, 250, 1, 5, 13, 2, 13, 70, 63, 84, 83, 40, 62, 93, 224, 240, 196, 62, 98, 31, 56, 117, 46, 52, 124, 94, 104, 38, 116, 103, 123, 43, 104, 75, 117, 51, 74, 53, 113, 126, 82, 92, 53, 83, 41, 88, 116, 36, 53, 46, 95, 120, 128, 208, 231, 245, 154, 141, 189, 174, 69, 250, 1, 10, 13, 251, 186, 126, 63, 29, 72, 195, 200, 61, 200, 4, 75, 84, 83, 40, 72, 93, 243, 56, 110, 62, 98, 37, 84, 73, 110, 41, 105, 106, 70, 85, 57, 94, 92, 108, 37, 35, 94, 119, 79, 112, 91, 96, 89, 43, 67, 104, 99, 112, 101, 39, 72, 43, 95, 114, 63, 124, 117, 106, 34, 120, 128, 240, 201, 195, 159, 240, 206, 156, 115, 250, 1, 12, 13, 85, 255, 66, 63, 29, 50, 186, 89, 63, 56, 1, 84, 83, 40, 124, 93, 222, 227, 82, 63, 98, 78, 120, 56, 55, 48, 43, 32, 91, 79, 55, 123, 117, 91, 72, 37, 38, 68, 120, 37, 63, 45, 46, 125, 105, 76, 39, 45, 115, 116, 88, 40, 105, 113, 91, 60, 73, 80, 76, 95, 89, 38, 108, 91, 71, 117, 73, 65, 76, 100, 122, 80, 111, 107, 78, 111, 96, 122, 77, 105, 41, 125, 44, 101, 117, 47, 49, 35, 32, 44, 91, 85, 119, 56, 74, 56, 64, 81, 86, 115, 120, 128, 201, 179, 200, 144, 201, 156, 195, 132, 1, 250, 1, 5, 13, 91, 12, 58, 63, 84, 83, 40, 84, 93, 99, 143, 33, 62, 98, 57, 121, 40, 56, 125, 66, 106, 91, 78, 34, 97, 86, 91, 120, 38, 100, 56, 99, 69, 64, 64, 41, 69, 87, 86, 65, 53, 78, 46, 67, 89, 102, 67, 61, 124, 107, 109, 118, 51, 95, 52, 80, 44, 82, 54, 96, 109, 63, 57, 108, 61, 47, 92, 68, 63, 37, 83, 79, 120, 128, 152, 218, 190, 226, 170, 209, 245, 86, 250, 1, 5, 13, 202, 107, 32, 63, 84, 83, 40, 17, 93, 128, 58, 151, 62, 98, 38, 76, 42, 72, 121, 51, 61, 123, 58, 117, 64, 79, 100, 44, 111, 124, 113, 65, 117, 82, 117, 53, 65, 37, 73, 41, 125, 125, 119, 55, 62, 54, 87, 82, 119, 35, 33, 42, 59, 120, 128, 220, 199, 191, 196, 219, 189, 252, 61, 250, 1, 5, 13, 225, 191, 0, 63, 84, 83, 40, 47, 93, 56, 222, 125, 63, 98, 79, 117, 123, 94, 118, 56, 79, 40, 97, 46, 106, 40, 54, 38, 43, 36, 125, 112, 52, 63, 36, 35, 87, 42, 119, 49, 51, 107, 122, 103, 37, 71, 35, 82, 53, 74, 40, 106, 49, 101, 78, 110, 85, 48, 74, 78, 60, 112, 118, 123, 43, 74, 57, 48, 63, 123, 61, 112, 101, 101, 36, 98, 44, 120, 40, 66, 37, 99, 112, 96, 123, 51, 94, 77, 111, 52, 76, 71, 95, 73, 120, 128, 208, 253, 188, 189, 218, 236, 231, 113, 250, 1, 5, 13, 18, 61, 184, 62, 84, 83, 40, 112, 93, 114, 216, 126, 63, 98, 51, 92, 89, 46, 113, 51, 57, 45, 54, 36, 75, 97, 107, 98, 91, 39, 39, 73, 88, 32, 54, 32, 118, 107, 106, 63, 42, 78, 117, 49, 60, 111, 97, 108, 44, 60, 77, 52, 50, 80, 86, 82, 100, 47, 50, 107, 36, 80, 112, 63, 87, 126, 120, 128, 236, 172, 227, 196, 208, 230, 154, 166, 1, 250, 1, 5, 13, 51, 61, 182, 62, 84, 83, 40, 83, 93, 184, 233, 125, 63, 98, 30, 100, 109, 66, 81, 40, 106, 54, 37, 102, 90, 126, 125, 85, 62, 89, 114, 54, 39, 73, 98, 59, 103, 88, 126, 59, 88, 92, 85, 89, 60, 120, 128, 184, 178, 205, 141, 183, 147, 235, 69, 250, 1, 5, 13, 101, 203, 169, 62, 84, 83, 40, 19, 93, 217, 254, 17, 62, 98, 41, 86, 95, 113, 95, 71, 106, 59, 94, 71, 87, 107, 38, 122, 81, 101, 100, 104, 52, 119, 122, 98, 124, 53, 66, 54, 78, 46, 96, 74, 74, 39, 95, 111, 72, 103, 121, 32, 85, 95, 93, 70, 120, 128, 216, 133, 131, 202, 168, 173, 152, 208, 1, 250, 1, 10, 13, 255, 121, 172, 62, 29, 14, 155, 66, 60, 84, 83, 40, 25, 93, 160, 83, 100, 62, 98, 37, 93, 42, 111, 116, 83, 63, 70, 50, 73, 88, 73, 78, 73, 119, 92, 90, 51, 124, 80, 43, 53, 82, 105, 107, 99, 51, 84, 58, 83, 39, 92, 52, 47, 33, 112, 35, 111, 120, 128, 160, 195, 254, 185, 248, 153, 244, 72, 250, 1, 10, 13, 12, 226, 103, 63, 29, 81, 180, 63, 63, 84, 83, 40, 33, 93, 213, 9, 34, 63, 98, 24, 125, 46, 79, 80, 43, 102, 32, 106, 71, 66, 80, 39, 126, 43, 64, 35, 48, 63, 105, 44, 93, 66, 123, 53, 120, 128, 180, 185, 169, 149, 174, 203, 203, 170, 1, 250, 1, 7, 13, 182, 89, 214, 62, 56, 0, 200, 4, 75, 84, 83, 40, 98, 93, 155, 198, 36, 63, 98, 127, 38, 103, 114, 88, 83, 91, 60, 51, 39, 108, 57, 104, 94, 57, 99, 39, 34, 101, 98, 107, 69, 86, 124, 44, 125, 91, 49, 57, 48, 99, 94, 71, 32, 105, 60, 103, 52, 69, 86, 99, 102, 123, 56, 123, 113, 116, 98, 97, 81, 55, 69, 65, 117, 125, 55, 78, 106, 101, 90, 119, 73, 34, 34, 67, 46, 113, 103, 116, 124, 122, 114, 91, 46, 125, 37, 72, 62, 32, 57, 40, 119, 79, 102, 120, 61, 61, 81, 34, 81, 108, 123, 77, 105, 93, 58, 99, 121, 115, 109, 32, 45, 109, 100, 85, 68, 104, 50, 118, 119, 110, 48, 105, 75, 82, 126, 120, 58, 41, 37, 112, 64, 100, 66, 47, 126, 68, 113, 120, 128, 164, 255, 202, 228, 192, 250, 215, 64, 250, 1, 5, 13, 108, 126, 53, 63, 84, 83, 40, 43, 93, 78, 142, 247, 62, 98, 36, 73, 50, 57, 121, 42, 106, 49, 84, 84, 42, 89, 41, 98, 92, 49, 33, 55, 94, 64, 73, 112, 110, 124, 94, 72, 74, 84, 86, 126, 118, 98, 50, 87, 64, 102, 87, 120, 128, 152, 166, 131, 163, 190, 177, 154, 152, 1, 250, 1, 5, 13, 195, 52, 23, 63, 84, 83, 40, 112, 93, 152, 134, 32, 62, 98, 21, 41, 84, 80, 102, 101, 90, 94, 82, 108, 66, 90, 112, 66, 118, 92, 89, 53, 90, 80, 95, 53, 120, 192, 238, 156, 152, 136, 244, 230, 78, 250, 1, 10, 13, 243, 102, 14, 63, 29, 126, 88, 36, 63, 84, 83, 40, 51, 93, 167, 47, 210, 62, 98, 116, 81, 66, 117, 88, 111, 94, 105, 49, 63, 60, 62, 53, 120, 109, 106, 34, 104, 91, 60, 112, 111, 96, 98, 44, 66, 86, 39, 52, 120, 78, 126, 114, 63, 62, 41, 60, 91, 51, 82, 122, 39, 49, 86, 64, 59, 126, 96, 98, 115, 50, 112, 120, 64, 84, 86, 111, 94, 105, 54, 56, 86, 84, 55, 112, 61, 74, 117, 89, 99, 78, 69, 84, 40, 64, 105, 94, 42, 66, 111, 67, 116, 67, 64, 102, 92, 37, 81, 105, 102, 56, 92, 113, 124, 58, 68, 81, 120, 100, 34, 111, 40, 39, 125, 69, 107, 60, 112, 32, 106, 119, 101, 60, 120, 113, 66, 51, 120, 128, 168, 182, 167, 198, 195, 178, 187, 28, 250, 1, 5, 13, 6, 242, 2, 63, 84, 83, 40, 27, 93, 242, 191, 125, 62, 98, 28, 120, 43, 113, 75, 113, 83, 86, 108, 123, 56, 101, 68, 63, 126, 59, 109, 68, 121, 121, 63, 52, 80, 126, 109, 81, 63, 119, 43, 120, 128, 208, 200, 223, 222, 255, 196, 252, 245, 1, 250, 1, 5, 13, 100, 197, 51, 62, 84, 83, 40, 38, 93, 154, 181, 212, 62, 98, 46, 80, 106, 118, 123, 52, 82, 82, 56, 100, 35, 36, 81, 50, 65, 123, 121, 86, 83, 110, 57, 85, 115, 34, 71, 44, 35, 120, 81, 90, 75, 116, 106, 122, 61, 115, 84, 39, 62, 88, 112, 71, 97, 90, 49, 76, 76, 120, 128, 248, 139, 249, 185, 188, 223, 200, 207, 1, 250, 1, 10, 13, 27, 154, 48, 62, 29, 47, 119, 191, 62, 84, 83, 40, 124, 93, 46, 114, 12, 63, 98, 38, 67, 65, 35, 112, 91, 103, 79, 111, 48, 88, 33, 92, 57, 46, 57, 86, 116, 77, 70, 113, 55, 122, 124, 113, 114, 57, 112, 122, 94, 71, 104, 45, 92, 118, 80, 72, 118, 75, 120, 128, 130, 162, 208, 228, 141, 144, 130, 32, 250, 1, 10, 13, 161, 197, 77, 63, 29, 251, 5, 22, 63, 84, 83, 40, 61, 93, 55, 214, 214, 62, 98, 39, 56, 69, 37, 64, 34, 51, 117, 101, 98, 123, 43, 60, 72, 68, 48, 125, 66, 117, 83, 49, 103, 110, 114, 126, 66, 92, 111, 94, 72, 53, 89, 58, 104, 82, 99, 75, 109, 119, 109, 120, 128, 152, 151, 201, 135, 194, 185, 201, 95, 250, 1, 10, 13, 34, 28, 66, 63, 29, 215, 93, 47, 63, 84, 83, 40, 8, 93, 52, 208, 55, 62, 98, 57, 81, 89, 39, 36, 101, 77, 115, 117, 35, 60, 94, 72, 82, 37, 125, 69, 67, 54, 61, 76, 66, 111, 82, 117, 96, 100, 48, 73, 39, 108, 72, 38, 104, 97, 77, 103, 85, 107, 119, 122, 65, 98, 54, 75, 114, 58, 120, 103, 121, 72, 67, 81, 67, 88, 109, 96, 39, 120, 128, 204, 239, 133, 205, 226, 252, 174, 24, 250, 1, 5, 13, 96, 93, 188, 62, 84, 83, 40, 2, 93, 237, 196, 157, 62, 98, 42, 73, 109, 54, 115, 88, 94, 111, 87, 53, 110, 86, 61, 66, 43, 94, 89, 38, 34, 69, 106, 71, 79, 94, 72, 117, 97, 47, 114, 107, 96, 67, 72, 118, 92, 118, 115, 32, 87, 58, 91, 40, 47, 120, 128, 208, 221, 184, 139, 245, 236, 197, 219, 1, 250, 1, 5, 13, 203, 65, 25, 63, 84, 83, 40, 101, 93, 110, 146, 87, 62, 98, 60, 33, 77, 46, 38, 32, 46, 124, 53, 116, 121, 47, 108, 125, 117, 78, 123, 106, 84, 75, 46, 70, 100, 51, 106, 89, 78, 103, 105, 97, 56, 106, 37, 91, 97, 96, 97, 100, 100, 96, 53, 74, 96, 103, 124, 100, 50, 89, 68, 44, 44, 68, 47, 45, 93, 108, 60, 58, 67, 76, 81, 120, 128, 128, 130, 179, 198, 242, 143, 152, 179, 1, 250, 1, 5, 13, 254, 153, 83, 62, 84, 83, 40, 68, 93, 238, 184, 33, 63, 98, 62, 46, 42, 49, 59, 52, 108, 55, 37, 115, 54, 99, 100, 123, 53, 37, 71, 116, 67, 93, 85, 115, 90, 118, 125, 115, 67, 70, 64, 56, 46, 110, 54, 45, 43, 110, 89, 32, 61, 47, 62, 115, 62, 59, 118, 121, 39, 64, 36, 61, 37, 91, 34, 85, 124, 103, 82, 50, 50, 70, 112, 70, 118, 120, 128, 144, 138, 236, 156, 250, 208, 224, 230, 1, 250, 1, 5, 13, 155, 90, 55, 63, 84, 83, 40, 52, 93, 52, 69, 238, 62, 98, 28, 87, 112, 70, 75, 70, 86, 51, 62, 97, 84, 62, 32, 36, 108, 35, 65, 34, 51, 82, 107, 96, 47, 66, 59, 70, 108, 118, 61, 120, 128, 224, 180, 214, 238, 226, 165, 179, 245, 1, 250, 1, 10, 13, 17, 150, 120, 63, 29, 137, 148, 4, 63, 84, 83, 40, 73, 93, 93, 60, 0, 63, 98, 54, 76, 78, 79, 93, 113, 93, 37, 109, 54, 59, 51, 52, 50, 46, 89, 109, 36, 115, 89, 49, 90, 106, 72, 77, 42, 36, 88, 95, 117, 70, 100, 35, 103, 79, 86, 61, 83, 99, 48, 84, 76, 124, 73, 115, 47, 39, 52, 94, 60, 79, 114, 40, 119, 68, 120, 128, 152, 183, 146, 190, 167, 185, 147, 241, 1, 250, 1, 5, 13, 101, 68, 47, 63, 84, 83, 40, 9, 93, 159, 111, 155, 60, 98, 40, 82, 108, 37, 69, 119, 111, 85, 47, 76, 98, 87, 60, 58, 64, 98, 36, 100, 93, 65, 83, 61, 35, 111, 121, 66, 69, 82, 91, 43, 66, 90, 116, 54, 81, 48, 66, 79, 39, 36, 89, 120, 128, 192, 157, 203, 226, 228, 235, 217, 40, 250, 1, 10, 13, 203, 177, 127, 63, 29, 29, 89, 29, 63, 84, 83, 40, 65, 93, 112, 34, 148, 61, 98, 45, 32, 53, 82, 69, 114, 95, 54, 63, 82, 99, 79, 124, 42, 34, 82, 60, 121, 36, 41, 39, 98, 38, 103, 47, 64, 83, 92, 88, 103, 53, 61, 72, 62, 114, 66, 47, 32, 54, 55, 97, 67, 84, 99, 109, 96, 120, 128, 220, 142, 161, 134, 211, 245, 136, 178, 1, 250, 1, 10, 13, 157, 171, 198, 62, 29, 85, 210, 85, 61, 84, 83, 40, 65, 93, 155, 6, 156, 62, 98, 31, 66, 122, 80, 72, 67, 121, 76, 67, 36, 62, 35, 93, 87, 60, 69, 39, 93, 55, 95, 66, 60, 99, 107, 71, 99, 45, 66, 121, 78, 122, 47, 120, 128, 224, 244, 149, 194, 182, 166, 175, 75, 250, 1, 5, 13, 15, 22, 156, 61, 84, 83, 40, 56, 93, 166, 139, 92, 63, 98, 100, 66, 118, 116, 78, 72, 98, 92, 49, 119, 94, 101, 124, 70, 72, 88, 102, 45, 68, 46, 32, 94, 46, 40, 100, 54, 87, 82, 115, 41, 47, 74, 86, 45, 73, 34, 47, 103, 103, 55, 95, 95, 82, 114, 104, 125, 48, 122, 81, 116, 51, 33, 50, 119, 73, 51, 51, 109, 48, 56, 111, 47, 103, 39, 104, 51, 46, 111, 123, 69, 73, 125, 69, 45, 78, 64, 44, 59, 63, 102, 37, 91, 33, 125, 116, 46, 55, 93, 98, 54, 110, 64, 87, 78, 70, 80, 118, 74, 42, 84, 110, 120, 128, 252, 169, 209, 128, 223, 207, 138, 44, 250, 1, 5, 13, 80, 11, 124, 63, 84, 83, 40, 16, 93, 121, 168, 232, 62, 98, 60, 52, 91, 37, 73, 40, 38, 118, 78, 72, 50, 52, 46, 104, 50, 90, 123, 80, 44, 101, 85, 40, 70, 117, 102, 124, 72, 97, 49, 105, 119, 100, 93, 116, 82, 95, 81, 50, 51, 89, 47, 118, 113, 46, 59, 49, 65, 46, 55, 79, 88, 61, 51, 55, 85, 66, 109, 100, 62, 75, 95, 120, 128, 140, 219, 204, 144, 198, 216, 229, 49, 250, 1, 5, 13, 87, 77, 60, 63, 84, 83, 40, 90, 93, 186, 120, 3, 63, 98, 40, 77, 86, 57, 53, 81, 40, 105, 60, 81, 86, 94, 53, 55, 89, 84, 91, 58, 73, 96, 49, 89, 80, 69, 62, 48, 113, 108, 114, 103, 121, 105, 48, 46, 92, 109, 90, 40, 119, 101, 70, 120, 128, 184, 233, 159, 141, 184, 203, 254, 233, 1, 250, 1, 5, 13, 108, 2, 109, 60, 84, 83, 40, 86, 93, 6, 155, 45, 63, 98, 40, 118, 44, 85, 43, 105, 111, 68, 121, 36, 82, 118, 123, 48, 121, 37, 94, 58, 117, 84, 87, 107, 77, 39, 90, 107, 120, 82, 66, 98, 58, 65, 88, 110, 99, 71, 35, 59, 97, 41, 118, 120, 128, 176, 223, 243, 249, 173, 251, 157, 72, 250, 1, 10, 13, 76, 100, 84, 63, 29, 168, 38, 255, 61, 84, 83, 40, 78, 93, 92, 140, 58, 63, 98, 66, 112, 73, 46, 113, 38, 43, 120, 76, 41, 115, 72, 37, 122, 62, 111, 60, 33, 55, 105, 49, 62, 44, 75, 81, 34, 67, 88, 107, 92, 33, 123, 65, 75, 116, 121, 78, 67, 79, 92, 46, 72, 43, 101, 111, 126, 124, 63, 66, 56, 89, 83, 87, 65, 73, 70, 99, 124, 92, 111, 98, 82, 44, 111, 39, 119, 39, 120, 128, 200, 180, 202, 153, 204, 164, 211, 204, 1, 250, 1, 5, 13, 11, 96, 139, 61, 84, 83, 40, 48, 93, 134, 55, 178, 62, 98, 53, 120, 81, 90, 91, 104, 50, 70, 91, 82, 36, 35, 54, 82, 34, 77, 68, 32, 33, 77, 53, 80, 102, 95, 120, 90, 59, 59, 93, 118, 118, 67, 57, 125, 118, 96, 34, 124, 100, 96, 52, 61, 65, 42, 106, 94, 60, 88, 108, 89, 82, 38, 87, 88, 120, 128, 140, 146, 189, 210, 221, 144, 233, 147, 1, 250, 1, 10, 13, 98, 38, 86, 63, 29, 165, 232, 64, 62, 84, 83, 40, 108, 93, 182, 23, 45, 63, 98, 60, 32, 76, 117, 104, 99, 90, 96, 105, 55, 90, 64, 75, 70, 59, 64, 56, 119, 47, 91, 115, 58, 62, 97, 77, 35, 68, 112, 107, 96, 110, 39, 78, 48, 60, 99, 52, 61, 83, 92, 78, 42, 116, 36, 124, 76, 46, 44, 106, 54, 63, 54, 95, 84, 123, 69, 97, 105, 72, 100, 63, 120, 128, 192, 147, 160, 151, 245, 155, 129, 99, 250, 1, 5, 13, 192, 145, 96, 63, 84, 83, 40, 11, 93, 159, 148, 216, 62, 98, 24, 83, 112, 58, 42, 86, 43, 122, 67, 82, 44, 105, 68, 58, 99, 33, 116, 55, 37, 84, 64, 88, 70, 120, 51, 120, 128, 208, 138, 175, 254, 141, 213, 248, 242, 1, 250, 1, 12, 13, 96, 57, 192, 60, 29, 27, 27, 224, 62, 56, 1, 84, 83, 40, 104, 93, 172, 18, 152, 62, 98, 48, 100, 54, 107, 91, 73, 90, 114, 33, 51, 43, 67, 113, 45, 72, 50, 33, 70, 37, 70, 110, 40, 99, 62, 102, 110, 44, 118, 39, 52, 84, 97, 38, 84, 54, 71, 83, 88, 94, 58, 69, 34, 53, 112, 73, 124, 101, 57, 80, 120, 160, 237, 174, 150, 224, 233, 246, 178, 129, 1, 250, 1, 10, 13, 217, 159, 98, 63, 29, 220, 242, 28, 63, 84, 83, 40, 47, 93, 240, 231, 245, 62, 98, 57, 126, 52, 32, 118, 36, 107, 60, 99, 106, 108, 94, 72, 61, 61, 118, 32, 94, 72, 103, 106, 33, 108, 113, 114, 115, 105, 41, 114, 69, 38, 62, 121, 61, 87, 85, 34, 70, 91, 83, 113, 125, 97, 54, 72, 50, 32, 95, 72, 65, 80, 65, 76, 113, 88, 76, 50, 65, 120, 128, 236, 255, 128, 168, 225, 254, 135, 19, 250, 1, 5, 13, 251, 64, 230, 60, 84, 83, 40, 34, 93, 118, 153, 48, 63, 98, 58, 72, 61, 100, 77, 100, 43, 100, 103, 116, 89, 34, 115, 117, 108, 62, 85, 73, 96, 115, 42, 96, 80, 116, 99, 113, 39, 99, 43, 67, 95, 56, 89, 57, 48, 84, 67, 81, 121, 76, 116, 121, 96, 76, 117, 63, 87, 123, 107, 45, 91, 119, 76, 46, 47, 32, 118, 72, 33, 120, 128, 136, 146, 246, 185, 179, 144, 177, 207, 1, 250, 1, 12, 13, 108, 223, 34, 63, 29, 158, 48, 209, 62, 56, 1, 84, 83, 40, 48, 93, 69, 181, 96, 62, 98, 27, 64, 72, 90, 100, 55, 122, 36, 78, 51, 125, 47, 32, 35, 125, 67, 58, 43, 118, 124, 102, 102, 107, 74, 41, 47, 92, 122, 120, 128, 128, 138, 134, 216, 154, 208, 176, 192, 1, 250, 1, 5, 13, 121, 12, 163, 62, 200, 4, 106, 84, 83, 40, 60, 93, 205, 76, 177, 62, 98, 66, 60, 56, 85, 118, 124, 54, 84, 50, 87, 72, 56, 48, 32, 32, 115, 73, 92, 64, 80, 78, 91, 92, 77, 83, 124, 80, 85, 90, 32, 83, 48, 67, 80, 109, 99, 106, 72, 76, 61, 115, 66, 106, 46, 61, 82, 58, 41, 47, 104, 80, 114, 124, 62, 125, 100, 94, 105, 33, 120, 75, 96, 120, 49, 35, 56, 116, 120, 128, 136, 173, 206, 186, 198, 232, 242, 212, 1, 250, 1, 5, 13, 25, 115, 60, 62, 84, 83, 40, 37, 93, 213, 103, 178, 61, 98, 51, 33, 48, 34, 92, 44, 111, 78, 47, 32, 98, 70, 70, 112, 78, 96, 50, 36, 81, 41, 37, 33, 70, 82, 113, 51, 72, 88, 42, 37, 93, 90, 119, 114, 96, 79, 98, 122, 97, 113, 115, 48, 89, 32, 54, 36, 58, 40, 98, 66, 37, 111, 120, 128, 146, 205, 166, 242, 141, 233, 180, 146, 1, 250, 1, 5, 13, 111, 181, 181, 61, 84, 83, 40, 30, 93, 6, 242, 153, 61, 98, 70, 89, 92, 48, 72, 98, 54, 67, 42, 66, 39, 78, 83, 48, 125, 125, 55, 66, 94, 52, 116, 70, 69, 60, 108, 120, 64, 117, 103, 32, 108, 76, 110, 91, 89, 117, 37, 105, 56, 47, 92, 107, 79, 93, 46, 84, 102, 118, 99, 68, 108, 77, 77, 115, 65, 95, 51, 64, 66, 79, 65, 64, 91, 42, 84, 90, 95, 118, 86, 40, 119, 120, 128, 228, 178, 222, 247, 169, 150, 243, 60, 250, 1, 10, 13, 140, 46, 214, 61, 29, 143, 215, 255, 62, 84, 83, 40, 72, 93, 243, 24, 178, 61, 98, 35, 118, 103, 45, 55, 49, 72, 49, 66, 50, 63, 125, 122, 58, 120, 97, 100, 70, 103, 108, 60, 48, 68, 40, 83, 116, 110, 64, 91, 75, 64, 67, 125, 60, 57, 104, 120, 128, 220, 179, 225, 132, 223, 157, 139, 59, 250, 1, 10, 13, 85, 130, 76, 62, 29, 253, 145, 239, 61, 84, 83, 40, 39, 93, 7, 226, 109, 63, 98, 47, 46, 56, 119, 53, 91, 99, 92, 92, 69, 51, 38, 65, 97, 57, 118, 81, 94, 88, 66, 65, 39, 85, 117, 113, 122, 32, 93, 33, 48, 54, 81, 59, 74, 115, 45, 118, 76, 113, 119, 49, 50, 98, 54, 56, 57, 34, 59, 120, 128, 135, 238, 194, 160, 185, 240, 150, 132, 1, 250, 1, 5, 13, 218, 52, 180, 62, 84, 83, 40, 29, 93, 66, 80, 76, 63, 98, 62, 89, 103, 122, 112, 88, 66, 38, 57, 90, 38, 91, 76, 47, 97, 105, 118, 109, 44, 126, 37, 107, 96, 49, 47, 68, 63, 93, 87, 120, 100, 90, 94, 120, 73, 118, 82, 78, 34, 84, 84, 69, 87, 60, 43, 86, 53, 39, 85, 79, 43, 76, 117, 65, 48, 32, 119, 86, 107, 75, 57, 99, 78, 120, 128, 216, 137, 149, 210, 177, 205, 168, 44, 250, 1, 10, 13, 66, 228, 102, 63, 29, 1, 139, 229, 62, 84, 83, 40, 122, 93, 218, 172, 9, 63, 98, 72, 100, 105, 54, 71, 106, 87, 74, 95, 51, 67, 38, 87, 46, 56, 39, 39, 109, 55, 99, 61, 104, 73, 125, 123, 97, 86, 58, 111, 118, 55, 70, 95, 90, 97, 65, 107, 56, 98, 96, 62, 118, 80, 107, 84, 80, 52, 61, 33, 91, 70, 82, 94, 102, 94, 105, 59, 106, 58, 101, 52, 60, 89, 103, 123, 124, 69, 124, 75, 117, 59, 109, 42, 120, 128, 224, 154, 235, 182, 234, 213, 217, 72, 250, 1, 5, 13, 125, 122, 197, 62, 84, 83, 40, 50, 93, 232, 2, 127, 62, 98, 21, 93, 73, 74, 77, 56, 56, 51, 79, 100, 102, 120, 123, 118, 38, 32, 124, 123, 75, 34, 60, 103, 120, 128, 192, 180, 219, 220, 134, 164, 219, 106, 250, 1, 12, 13, 180, 253, 20, 63, 29, 8, 178, 231, 61, 56, 0, 84, 83, 40, 107, 93, 103, 35, 237, 61, 98, 39, 64, 87, 71, 40, 65, 56, 82, 92, 65, 111, 56, 123, 35, 69, 56, 54, 53, 76, 32, 84, 111, 58, 112, 45, 41, 66, 41, 78, 109, 113, 63, 53, 71, 45, 114, 118, 60, 94, 86, 120, 128, 224, 232, 167, 219, 233, 197, 190, 218, 1, 250, 1, 10, 13, 211, 99, 196, 62, 29, 199, 33, 217, 62, 84, 83, 40, 83, 93, 218, 225, 17, 62, 98, 25, 99, 79, 125, 118, 79, 88, 65, 93, 54, 59, 58, 37, 102, 57, 125, 126, 46, 35, 110, 79, 79, 34, 83, 116, 82, 120, 128, 140, 176, 223, 224, 205, 128, 251, 43, 250, 1, 12, 13, 118, 251, 111, 63, 29, 116, 32, 18, 63, 56, 1, 84, 83, 40, 38, 93, 8, 149, 42, 62, 98, 52, 70, 91, 98, 73, 88, 67, 50, 126, 52, 79, 97, 126, 43, 114, 108, 48, 35, 95, 87, 84, 65, 88, 47, 92, 96, 123, 40, 68, 47, 94, 106, 103, 120, 44, 114, 73, 36, 111, 68, 90, 123, 36, 90, 126, 109, 35, 72, 34, 100, 47, 118, 117, 120, 128, 144, 185, 231, 215, 129, 201, 187, 39, 250, 1, 10, 13, 44, 135, 63, 63, 29, 170, 149, 81, 63, 84, 83, 40, 103, 93, 70, 205, 237, 62, 98, 31, 37, 103, 92, 58, 109, 110, 85, 99, 120, 37, 126, 126, 67, 44, 50, 58, 124, 88, 60, 125, 47, 110, 92, 83, 38, 94, 126, 103, 115, 74, 49, 120, 128, 152, 195, 228, 249, 181, 153, 164, 40, 250, 1, 5, 13, 36, 250, 91, 61, 84, 83, 40, 122, 93, 180, 217, 123, 63, 98, 55, 39, 103, 63, 46, 52, 36, 59, 115, 125, 72, 34, 64, 35, 99, 91, 63, 46, 80, 111, 60, 53, 42, 41, 52, 46, 110, 109, 110, 77, 114, 97, 121, 70, 45, 42, 82, 92, 74, 40, 121, 115, 122, 94, 42, 35, 62, 123, 35, 56, 43, 35, 107, 52, 95, 103, 120, 128, 200, 205, 228, 135, 202, 236, 164, 124, 250, 1, 10, 13, 43, 99, 38, 63, 29, 63, 222, 249, 61, 84, 83, 40, 126, 93, 95, 202, 197, 62, 98, 43, 53, 75, 69, 43, 102, 40, 120, 116, 88, 41, 97, 99, 72, 117, 72, 58, 75, 125, 48, 110, 114, 105, 86, 66, 111, 116, 100, 102, 69, 45, 115, 81, 74, 98, 99, 72, 84, 83, 67, 122, 69, 38, 73, 120, 128, 152, 255, 184, 242, 184, 249, 199, 147, 1, 250, 1, 10, 13, 90, 195, 219, 62, 29, 128, 245, 163, 62, 84, 83, 40, 46, 93, 0, 246, 164, 62, 98, 48, 55, 77, 80, 94, 122, 48, 80, 74, 115, 35, 59, 113, 66, 49, 79, 75, 53, 48, 57, 101, 49, 32, 100, 119, 90, 53, 73, 108, 64, 72, 120, 80, 81, 69, 79, 118, 91, 52, 85, 58, 49, 56, 83, 81, 55, 80, 87, 51, 120, 128, 248, 187, 227, 152, 189, 223, 155, 72, 250, 1, 5, 13, 61, 12, 124, 63, 84, 83, 40, 118, 93, 207, 127, 129, 62, 98, 45, 37, 92, 44, 55, 103, 88, 36, 100, 102, 99, 42, 75, 42, 105, 63, 123, 97, 87, 110, 32, 89, 125, 83, 120, 75, 51, 95, 41, 93, 53, 55, 65, 78, 96, 75, 116, 57, 56, 47, 34, 48, 112, 83, 77, 45, 120, 128, 211, 180, 182, 193, 149, 165, 179, 139, 1, 250, 1, 5, 13, 0, 147, 209, 62, 84, 83, 40, 60, 93, 101, 157, 62, 62, 98, 75, 90, 81, 124, 46, 119, 93, 38, 41, 51, 106, 83, 120, 121, 39, 80, 75, 104, 123, 72, 61, 74, 98, 73, 72, 108, 111, 104, 74, 37, 106, 66, 107, 49, 119, 35, 98, 58, 50, 86, 35, 69, 106, 38, 76, 90, 41, 54, 105, 34, 33, 68, 44, 125, 47, 102, 118, 40, 83, 65, 40, 115, 90, 35, 71, 71, 102, 102, 34, 35, 108, 49, 85, 68, 69, 119, 120, 128, 248, 137, 193, 142, 192, 207, 136, 84, 250, 1, 5, 13, 252, 101, 35, 63, 84, 83, 40, 122, 93, 106, 100, 78, 63, 98, 50, 98, 89, 126, 72, 35, 70, 54, 109, 33, 48, 43, 90, 101, 112, 78, 46, 105, 103, 93, 36, 115, 65, 52, 101, 52, 111, 109, 102, 87, 55, 40, 57, 43, 102, 93, 78, 116, 50, 126, 33, 49, 119, 100, 112, 119, 50, 75, 100, 117, 55, 120, 128, 160, 233, 199, 195, 131, 202, 190, 19, 250, 1, 10, 13, 41, 96, 102, 63, 29, 205, 77, 125, 63, 84, 83, 40, 116, 93, 72, 101, 110, 63, 98, 25, 65, 68, 56, 51, 51, 87, 79, 54, 105, 40, 113, 78, 126, 50, 32, 56, 87, 104, 92, 114, 122, 91, 66, 109, 34, 120, 128, 248, 248, 141, 214, 182, 199, 239, 176, 1, 250, 1, 12, 13, 9, 129, 207, 61, 29, 97, 61, 87, 63, 56, 0, 84, 83, 40, 12, 93, 16, 101, 65, 62, 98, 40, 58, 51, 108, 60, 41, 92, 125, 106, 72, 96, 97, 122, 104, 38, 98, 76, 81, 117, 126, 85, 45, 65, 36, 125, 100, 34, 74, 49, 110, 77, 94, 117, 96, 117, 86, 59, 49, 117, 117, 91, 120, 128, 152, 157, 250, 250, 198, 233, 209, 76, 250, 1, 5, 13, 169, 160, 120, 63, 84, 83, 40, 26, 93, 9, 4, 62, 62, 98, 47, 56, 96, 89, 103, 63, 119, 86, 121, 64, 82, 36, 120, 46, 110, 86, 39, 49, 108, 123, 121, 34, 106, 58, 113, 78, 70, 58, 91, 126, 67, 123, 48, 45, 113, 100, 36, 71, 98, 112, 118, 118, 100, 85, 45, 112, 92, 44, 120, 128, 184, 163, 216, 213, 204, 155, 194, 173, 1, 250, 1, 12, 13, 200, 132, 164, 62, 29, 105, 56, 84, 63, 56, 0, 84, 83, 40, 100, 93, 171, 97, 169, 59, 98, 36, 57, 46, 76, 70, 102, 56, 119, 92, 122, 121, 123, 86, 115, 107, 60, 41, 82, 94, 78, 122, 37, 35, 61, 53, 44, 33, 112, 58, 120, 61, 48, 121, 48, 47, 114, 98, 120, 128, 208, 248, 252, 163, 255, 196, 231, 159, 1, 250, 1, 12, 13, 126, 65, 37, 63, 29, 1, 238, 43, 63, 56, 0, 84, 83, 40, 118, 93, 242, 155, 138, 62, 98, 47, 122, 105, 88, 86, 123, 112, 111, 55, 107, 48, 121, 111, 121, 53, 112, 55, 57, 101, 70, 93, 99, 92, 105, 34, 69, 100, 119, 88, 113, 115, 125, 36, 34, 107, 39, 83, 91, 85, 36, 32, 73, 96, 80, 126, 126, 64, 52, 120, 128, 184, 198, 157, 202, 187, 179, 236, 209, 1, 250, 1, 7, 13, 224, 157, 91, 63, 32, 1, 84, 83, 40, 48, 93, 112, 48, 113, 63, 98, 61, 35, 59, 85, 61, 32, 85, 49, 55, 120, 55, 69, 118, 49, 117, 108, 46, 46, 61, 90, 98, 96, 70, 51, 35, 44, 105, 35, 36, 79, 58, 101, 113, 79, 36, 33, 101, 53, 104, 82, 38, 68, 107, 38, 50, 58, 88, 109, 40, 82, 38, 78, 84, 68, 96, 56, 91, 40, 82, 49, 53, 81, 120, 128, 212, 203, 148, 130, 168, 221, 164, 145, 1, 250, 1, 5, 13, 38, 52, 64, 63, 84, 83, 40, 82, 93, 14, 19, 3, 63, 98, 40, 83, 71, 45, 115, 39, 120, 68, 105, 84, 62, 116, 63, 32, 103, 82, 123, 121, 80, 73, 107, 49, 77, 110, 106, 69, 93, 98, 87, 61, 83, 55, 36, 71, 96, 102, 49, 96, 52, 75, 44, 120, 128, 213, 167, 208, 145, 166, 189, 130, 141, 1, 250, 1, 5, 13, 229, 22, 70, 63, 84, 83, 40, 105, 93, 9, 158, 183, 62, 98, 101, 67, 59, 39, 105, 94, 57, 86, 91, 61, 113, 63, 37, 87, 65, 78, 72, 53, 108, 76, 32, 38, 111, 118, 62, 33, 64, 58, 101, 36, 60, 97, 71, 93, 76, 70, 41, 86, 119, 119, 35, 123, 91, 101, 85, 65, 96, 89, 62, 100, 35, 117, 59, 61, 109, 59, 83, 67, 103, 104, 61, 126, 112, 87, 33, 47, 119, 71, 42, 121, 69, 113, 61, 115, 72, 35, 74, 42, 65, 124, 63, 102, 122, 32, 32, 69, 69, 41, 110, 48, 114, 100, 109, 46, 90, 36, 43, 35, 100, 69, 73, 57, 120, 128, 128, 213, 233, 231, 132, 168, 205, 190, 1, 250, 1, 5, 13, 93, 112, 196, 62, 84, 83, 40, 42, 93, 73, 86, 58, 62, 98, 30, 88, 71, 115, 105, 112, 72, 34, 106, 73, 86, 35, 111, 86, 90, 105, 109, 87, 121, 38, 95, 35, 47, 57, 68, 119, 70, 69, 122, 82, 38, 120, 128, 136, 206, 255, 243, 194, 240, 252, 159, 1, 250, 1, 10, 13, 238, 240, 17, 63, 29, 211, 32, 45, 63, 84, 83, 40, 105, 93, 227, 62, 78, 63, 98, 48, 125, 53, 37, 63, 74, 98, 35, 100, 35, 33, 59, 76, 41, 91, 91, 97, 84, 61, 95, 45, 72, 45, 78, 113, 74, 35, 38, 56, 66, 62, 76, 46, 102, 109, 106, 87, 82, 89, 91, 124, 32, 74, 53, 67, 91, 120, 59, 63, 120, 128, 144, 140, 134, 146, 151, 225, 176, 115, 250, 1, 5, 13, 18, 56, 195, 62, 84, 83, 40, 88, 93, 201, 219, 130, 62, 98, 25, 32, 96, 67, 112, 101, 50, 115, 70, 91, 106, 65, 100, 83, 44, 100, 59, 111, 36, 47, 121, 97, 98, 45, 125, 118, 120, 128, 237, 211, 203, 192, 229, 158, 221, 16, 250, 1, 5, 13, 129, 11, 110, 62, 84, 83, 40, 64, 93, 236, 40, 63, 63, 98, 46, 102, 65, 125, 91, 52, 45, 38, 73, 121, 112, 63, 100, 53, 64, 53, 41, 80, 110, 78, 52, 32, 78, 113, 53, 104, 85, 61, 83, 69, 120, 89, 123, 67, 94, 115, 72, 66, 40, 63, 125, 94, 112, 117, 50, 110, 52, 120, 128, 136, 153, 161, 226, 167, 200, 137, 60, 250, 1, 5, 13, 138, 78, 181, 62, 84, 83, 40, 117, 93, 10, 94, 99, 63, 98, 30, 69, 60, 102, 59, 102, 56, 79, 104, 114, 93, 111, 82, 36, 33, 54, 66, 65, 85, 75, 107, 101, 71, 78, 80, 85, 47, 87, 94, 69, 83, 120, 128, 139, 166, 209, 209, 213, 176, 138, 141, 1, 250, 1, 12, 13, 4, 151, 117, 63, 29, 200, 52, 29, 63, 56, 1, 200, 4, 67, 84, 83, 40, 39, 93, 62, 224, 101, 62, 98, 51, 39, 119, 91, 120, 88, 53, 97, 46, 44, 108, 116, 122, 75, 113, 117, 116, 44, 46, 124, 108, 53, 101, 86, 95, 111, 67, 62, 83, 115, 118, 83, 77, 120, 45, 57, 93, 111, 114, 45, 50, 107, 65, 73, 65, 98, 99, 120, 96, 51, 38, 78, 120, 128, 196, 210, 152, 155, 148, 148, 197, 45, 250, 1, 5, 13, 23, 118, 14, 63, 84, 83, 40, 64, 93, 58, 125, 126, 63, 98, 77, 64, 64, 122, 40, 53, 118, 46, 58, 52, 57, 70, 34, 62, 88, 55, 37, 56, 33, 106, 32, 115, 60, 52, 123, 44, 73, 92, 64, 108, 72, 50, 119, 72, 46, 120, 61, 115, 105, 118, 59, 93, 39, 52, 40, 60, 97, 90, 40, 122, 32, 53, 63, 105, 79, 43, 35, 43, 125, 123, 107, 57, 109, 76, 106, 38, 78, 88, 47, 94, 121, 48, 78, 42, 79, 65, 107, 39, 120, 128, 214, 147, 160, 250, 184, 157, 129, 17, 250, 1, 5, 13, 99, 209, 43, 63, 84, 83, 40, 56, 93, 119, 164, 80, 63, 98, 46, 84, 68, 107, 51, 113, 46, 120, 34, 116, 49, 117, 109, 43, 34, 111, 89, 73, 33, 108, 40, 74, 72, 32, 111, 102, 53, 58, 45, 62, 122, 126, 62, 81, 125, 99, 72, 95, 87, 52, 63, 95, 45, 105, 103, 58, 95, 120, 128, 128, 229, 234, 191, 244, 167, 214, 254, 1, 250, 1, 10, 13, 189, 24, 242, 62, 29, 176, 91, 5, 63, 84, 83, 40, 23, 93, 87, 0, 38, 63, 98, 40, 42, 113, 65, 66, 43, 67, 123, 75, 91, 114, 107, 98, 120, 50, 87, 59, 45, 61, 70, 121, 113, 108, 76, 72, 61, 93, 56, 85, 38, 54, 108, 90, 45, 61, 116, 75, 47, 90, 88, 37, 120, 128, 240, 135, 171, 139, 253, 190, 216, 218, 1, 250, 1, 10, 13, 224, 109, 245, 61, 29, 207, 30, 24, 63, 84, 83, 40, 58, 93, 157, 171, 96, 63, 98, 61, 73, 112, 85, 98, 68, 113, 47, 42, 55, 107, 60, 68, 120, 36, 76, 43, 70, 69, 68, 38, 48, 85, 90, 60, 43, 44, 81, 100, 65, 53, 101, 51, 32, 83, 115, 108, 97, 113, 97, 68, 92, 80, 116, 80, 87, 38, 54, 85, 43, 120, 61, 100, 51, 69, 99, 114, 53, 56, 86, 56, 63, 120, 128, 128, 237, 231, 204, 250, 231, 190, 57, 250, 1, 5, 13, 67, 171, 66, 63, 84, 83, 40, 2, 93, 189, 157, 126, 61, 98, 35, 41, 68, 68, 48, 95, 72, 83, 99, 126, 72, 95, 96, 41, 100, 37, 116, 122, 89, 71, 119, 32, 126, 90, 111, 33, 86, 72, 59, 73, 37, 50, 102, 115, 74, 78, 120, 128, 232, 145, 255, 234, 200, 142, 249, 215, 1, 250, 1, 12, 13, 214, 43, 88, 63, 29, 192, 77, 203, 62, 56, 0, 84, 83, 40, 64, 93, 34, 58, 68, 63, 98, 23, 33, 52, 123, 35, 50, 43, 83, 80, 66, 67, 112, 64, 40, 37, 41, 104, 84, 46, 41, 32, 55, 57, 121, 120, 128, 214, 214, 233, 158, 180, 181, 205, 30, 250, 1, 12, 13, 102, 213, 107, 63, 29, 137, 120, 76, 63, 56, 1, 84, 83, 40, 29, 93, 160, 56, 190, 62, 98, 79, 36, 85, 46, 118, 46, 125, 106, 93, 107, 110, 74, 115, 105, 39, 96, 65, 70, 106, 69, 68, 119, 59, 55, 64, 79, 81, 102, 57, 101, 43, 69, 76, 61, 45, 61, 109, 97, 72, 120, 38, 61, 43, 103, 63, 93, 43, 76, 50, 56, 115, 81, 33, 56, 111, 74, 103, 62, 109, 71, 92, 55, 81, 118, 96, 72, 124, 85, 92, 104, 113, 95, 124, 112, 63, 39, 108, 83, 118, 97, 120, 128, 180, 241, 207, 206, 172, 139, 255, 48, 250, 1, 5, 13, 128, 144, 51, 61, 84, 83, 40, 69, 93, 122, 151, 11, 60, 98, 33, 113, 88, 67, 52, 77, 97, 84, 79, 115, 33, 59, 110, 107, 51, 39, 117, 96, 84, 111, 73, 69, 52, 84, 47, 119, 104, 93, 52, 70, 43, 35, 88, 98, 120, 128, 248, 155, 152, 163, 242, 223, 193, 65, 250, 1, 10, 13, 237, 126, 112, 61, 29, 202, 32, 162, 61, 84, 83, 40, 6, 93, 57, 254, 66, 63, 98, 43, 40, 121, 51, 66, 107, 122, 84, 80, 58, 88, 76, 32, 33, 110, 51, 42, 89, 92, 36, 52, 59, 99, 35, 64, 40, 104, 125, 98, 43, 59, 46, 126, 113, 118, 76, 117, 53, 35, 72, 88, 89, 71, 77, 120, 128, 145, 141, 244, 208, 137, 233, 160, 135, 1, 250, 1, 10, 13, 146, 140, 64, 63, 29, 46, 141, 205, 62, 84, 83, 40, 12, 93, 72, 90, 90, 62, 98, 42, 69, 87, 117, 71, 34, 111, 76, 67, 117, 114, 57, 35, 124, 113, 68, 126, 74, 76, 46, 42, 65, 61, 116, 86, 52, 75, 89, 115, 53, 125, 87, 97, 94, 105, 60, 83, 69, 101, 124, 33, 74, 40, 120, 128, 128, 204, 244, 239, 245, 223, 164, 255, 1, 250, 1, 10, 13, 240, 168, 182, 62, 29, 206, 40, 69, 63, 84, 83, 40, 49, 93, 146, 253, 30, 63, 98, 57, 102, 34, 78, 90, 58, 55, 126, 113, 39, 98, 62, 51, 85, 53, 87, 46, 119, 58, 86, 67, 51, 84, 112, 89, 99, 79, 44, 95, 57, 61, 82, 108, 110, 111, 113, 113, 102, 67, 60, 74, 95, 118, 53, 112, 38, 81, 70, 107, 113, 121, 39, 38, 50, 34, 71, 49, 49, 120, 128, 240, 218, 154, 174, 145, 215, 213, 241, 1, 250, 1, 5, 13, 175, 7, 102, 63, 84, 83, 40, 99, 93, 162, 167, 244, 61, 98, 42, 62, 88, 104, 47, 81, 68, 101, 66, 101, 70, 83, 125, 44, 98, 59, 63, 126, 83, 50, 41, 64, 108, 63, 54, 75, 89, 107, 71, 96, 95, 112, 76, 81, 62, 64, 62, 75, 96, 83, 45, 95, 72, 120, 128, 237, 133, 229, 197, 229, 174, 168, 16, 250, 1, 5, 13, 106, 166, 7, 63, 84, 83, 40, 67, 93, 14, 31, 191, 61, 98, 39, 38, 62, 44, 112, 49, 65, 99, 97, 106, 81, 56, 82, 99, 119, 87, 61, 97, 37, 85, 38, 75, 108, 65, 124, 115, 61, 126, 36, 72, 118, 97, 107, 98, 66, 83, 77, 59, 110, 78, 120, 128, 156, 186, 152, 174, 228, 209, 195, 64, 250, 1, 5, 13, 244, 238, 67, 63, 84, 83, 40, 105, 93, 240, 27, 11, 63, 98, 27, 110, 37, 119, 124, 91, 85, 66, 101, 37, 124, 76, 92, 56, 124, 47, 124, 114, 65, 94, 56, 114, 110, 76, 110, 64, 67, 42, 120, 192, 131, 255, 149, 202, 155, 248, 175, 3, 250, 1, 12, 13, 14, 188, 94, 63, 29, 48, 244, 19, 63, 56, 0, 84, 83, 40, 38, 93, 217, 203, 32, 63, 98, 25, 57, 81, 118, 122, 64, 66, 78, 38, 49, 91, 110, 54, 101, 58, 79, 44, 112, 90, 45, 42, 86, 96, 32, 88, 41, 120, 128, 176, 145, 197, 188, 249, 138, 169, 80, 250, 1, 12, 13, 7, 52, 129, 62, 29, 55, 221, 230, 62, 56, 0, 84, 83, 40, 109, 93, 199, 241, 245, 62, 98, 51, 118, 47, 32, 126, 75, 55, 33, 82, 126, 48, 49, 97, 50, 92, 88, 90, 40, 89, 116, 33, 123, 118, 50, 36, 87, 81, 61, 113, 100, 42, 35, 101, 62, 46, 118, 39, 101, 59, 36, 116, 111, 39, 46, 120, 69, 126, 108, 123, 80, 32, 47, 120, 128, 232, 232, 174, 139, 217, 198, 246, 107, 250, 1, 10, 13, 246, 117, 233, 62, 29, 248, 252, 87, 63, 84, 83, 40, 65, 93, 239, 167, 127, 63, 98, 42, 123, 122, 70, 120, 120, 47, 109, 115, 44, 75, 66, 36, 100, 80, 116, 107, 85, 126, 49, 115, 104, 57, 94, 88, 100, 65, 65, 99, 122, 50, 57, 76, 92, 118, 43, 105, 116, 42, 122, 96, 57, 58, 120, 128, 216, 225, 226, 203, 182, 141, 150, 103, 250, 1, 10, 13, 30, 106, 111, 63, 29, 70, 37, 32, 63, 84, 83, 40, 95, 93, 69, 238, 115, 62, 98, 45, 126, 43, 66, 58, 75, 94, 91, 54, 98, 59, 109, 52, 87, 108, 41, 119, 120, 49, 117, 71, 108, 69, 42, 118, 75, 36, 80, 90, 77, 75, 100, 123, 123, 42, 65, 87, 88, 119, 109, 109, 32, 96, 71, 77, 39, 120, 128, 144, 254, 162, 238, 235, 240, 151, 242, 1, 250, 1, 10, 13, 248, 142, 186, 62, 29, 207, 95, 94, 63, 84, 83, 40, 21, 93, 158, 49, 183, 62, 98, 46, 114, 103, 101, 64, 72, 88, 32, 74, 110, 70, 45, 33, 103, 54, 86, 112, 56, 76, 74, 80, 63, 33, 66, 39, 70, 44, 124, 92, 111, 85, 97, 92, 73, 43, 87, 124, 54, 90, 96, 103, 87, 45, 41, 70, 95, 125, 120, 128, 160, 218, 204, 203, 149, 210, 229, 117, 250, 1, 10, 13, 200, 67, 57, 62, 29, 51, 192, 104, 63, 84, 83, 40, 29, 93, 22, 214, 34, 63, 98, 30, 116, 71, 94, 34, 113, 68, 93, 120, 60, 91, 67, 90, 56, 100, 79, 86, 92, 93, 88, 89, 92, 106, 97, 120, 50, 119, 122, 70, 71, 52, 120, 128, 144, 254, 218, 156, 148, 241, 215, 229, 1, 250, 1, 5, 13, 23, 39, 57, 63, 200, 4, 77, 84, 83, 40, 117, 93, 81, 223, 74, 63, 98, 60, 53, 106, 41, 101, 87, 87, 97, 68, 44, 51, 82, 111, 97, 47, 71, 59, 82, 61, 91, 32, 41, 100, 100, 111, 120, 72, 54, 81, 40, 110, 94, 32, 63, 120, 58, 107, 83, 118, 33, 34, 122, 70, 85, 101, 95, 40, 57, 55, 32, 119, 57, 71, 125, 119, 97, 79, 37, 56, 108, 46, 120, 128, 196, 253, 192, 245, 164, 236, 135, 172, 1, 250, 1, 5, 13, 29, 123, 44, 62, 84, 83, 40, 37, 93, 185, 168, 154, 62, 98, 27, 84, 81, 79, 104, 115, 91, 103, 90, 60, 89, 36, 98, 47, 126, 48, 112, 47, 126, 80, 47, 85, 54, 33, 71, 54, 106, 101, 120, 128, 220, 150, 177, 182, 235, 181, 137, 36, 250, 1, 5, 13, 48, 178, 235, 61, 84, 83, 40, 108, 93, 13, 133, 45, 63, 98, 31, 106, 42, 56, 49, 45, 88, 80, 66, 68, 48, 93, 43, 68, 115, 126, 64, 38, 40, 122, 126, 65, 94, 44, 101, 61, 79, 40, 81, 41, 116, 76, 120, 128, 232, 148, 128, 216, 210, 166, 129, 192, 1, 250, 1, 5, 13, 158, 108, 224, 62, 84, 83, 40, 117, 93, 156, 184, 136, 62, 98, 45, 87, 117, 108, 34, 56, 93, 92, 44, 125, 119, 43, 92, 82, 55, 73, 94, 49, 47, 113, 63, 43, 125, 81, 114, 92, 79, 126, 56, 78, 98, 46, 96, 75, 89, 70, 73, 56, 37, 98, 64, 100, 82, 45, 109, 49, 120, 128, 144, 159, 145, 235, 128, 249, 137, 111, 250, 1, 10, 13, 136, 39, 13, 63, 29, 123, 243, 136, 62, 84, 83, 40, 84, 93, 196, 195, 112, 62, 98, 63, 59, 64, 86, 88, 45, 88, 67, 120, 68, 103, 94, 67, 92, 58, 105, 73, 48, 119, 112, 32, 69, 43, 75, 80, 90, 88, 112, 99, 96, 105, 122, 100, 88, 56, 71, 108, 41, 114, 76, 108, 37, 62, 95, 122, 96, 64, 116, 113, 36, 103, 97, 91, 71, 94, 111, 47, 115, 38, 125, 83, 103, 95, 55, 120, 128, 232, 204, 236, 233, 165, 230, 228, 206, 1, 250, 1, 5, 13, 73, 230, 75, 63, 84, 83, 40, 119, 93, 27, 196, 70, 63, 98, 42, 68, 114, 123, 64, 61, 75, 35, 121, 38, 75, 80, 110, 57, 98, 125, 94, 120, 39, 63, 60, 121, 71, 56, 120, 35, 116, 119, 36, 69, 39, 37, 46, 102, 85, 80, 126, 40, 70, 68, 47, 68, 100, 120, 128, 216, 137, 166, 204, 184, 205, 176, 226, 1, 250, 1, 5, 13, 50, 70, 53, 63, 84, 83, 40, 46, 93, 116, 226, 109, 62, 98, 95, 99, 112, 105, 33, 62, 82, 76, 92, 111, 123, 89, 34, 60, 71, 83, 126, 84, 126, 69, 66, 40, 98, 50, 126, 86, 81, 97, 47, 119, 53, 93, 84, 85, 108, 48, 39, 58, 68, 103, 81, 96, 42, 101, 83, 69, 37, 42, 124, 91, 69, 47, 105, 61, 32, 45, 32, 93, 105, 73, 107, 112, 61, 100, 90, 62, 37, 76, 78, 55, 75, 99, 48, 54, 115, 96, 125, 124, 94, 89, 80, 71, 100, 82, 82, 37, 115, 54, 84, 94, 47, 72, 79, 121, 123, 96, 120, 128, 172, 233, 170, 145, 243, 202, 214, 48, 250, 1, 5, 13, 244, 115, 199, 62, 84, 83, 40, 14, 93, 95, 176, 98, 62, 98, 54, 63, 88, 90, 100, 48, 96, 126, 82, 73, 63, 47, 35, 126, 48, 119, 67, 43, 105, 49, 85, 74, 109, 118, 111, 39, 34, 51, 53, 57, 50, 60, 88, 113, 73, 57, 119, 107, 32, 66, 112, 38, 64, 108, 53, 79, 44, 73, 62, 33, 87, 84, 88, 51, 84, 120, 128, 136, 206, 233, 209, 217, 240, 204, 99, 250, 1, 5, 13, 32, 111, 4, 63, 84, 83, 40, 86, 93, 100, 159, 72, 63, 98, 48, 92, 45, 77, 104, 56, 54, 35, 86, 48, 85, 118, 126, 86, 43, 71, 63, 79, 41, 33, 97, 64, 122, 88, 115, 52, 97, 92, 98, 68, 61, 94, 103, 55, 33, 66, 53, 67, 60, 39, 85, 50, 119, 122, 115, 71, 33, 33, 73, 120, 128, 188, 204, 192, 216, 218, 227, 132, 24, 250, 1, 5, 13, 245, 58, 94, 63, 84, 83, 40, 7, 93, 181, 59, 44, 63, 98, 63, 79, 126, 74, 96, 83, 88, 84, 86, 88, 63, 49, 114, 118, 47, 103, 85, 104, 50, 123, 50, 34, 75, 78, 71, 32, 100, 76, 50, 96, 51, 81, 81, 55, 125, 55, 55, 85, 96, 96, 106, 103, 80, 123, 113, 101, 40, 124, 55, 57, 74, 96, 126, 118, 113, 93, 36, 79, 34, 96, 109, 43, 65, 117, 120, 128, 152, 136, 167, 150, 193, 193, 184, 178, 1, 250, 1, 10, 13, 225, 40, 79, 63, 29, 139, 31, 43, 63, 84, 83, 40, 77, 93, 185, 10, 108, 63, 98, 51, 119, 80, 126, 39, 80, 49, 74, 81, 78, 91, 96, 119, 103, 52, 120, 53, 82, 82, 90, 68, 63, 51, 102, 83, 126, 113, 94, 69, 89, 86, 37, 38, 76, 36, 63, 103, 74, 88, 77, 101, 71, 44, 84, 115, 65, 104, 38, 117, 72, 96, 114, 120, 128, 132, 224, 180, 172, 142, 128, 166, 36, 250, 1, 5, 13, 217, 219, 104, 61, 84, 83, 40, 28, 93, 93, 217, 22, 63, 98, 33, 99, 104, 75, 40, 93, 81, 36, 118, 119, 86, 90, 74, 99, 116, 48, 105, 120, 36, 115, 124, 50, 93, 114, 50, 54, 107, 103, 124, 120, 98, 105, 32, 55, 120, 128, 216, 195, 168, 151, 205, 157, 196, 186, 1, 250, 1, 12, 13, 239, 242, 29, 63, 29, 39, 238, 125, 63, 40, 1, 200, 4, 64, 84, 83, 40, 105, 93, 159, 170, 83, 62, 98, 36, 67, 53, 92, 60, 101, 61, 66, 33, 55, 117, 120, 53, 48, 56, 69, 38, 117, 57, 112, 112, 104, 39, 125, 52, 108, 89, 51, 55, 57, 49, 105, 72, 52, 96, 88, 124, 120, 192, 140, 150, 145, 176, 228, 176, 137, 129, 1, 250, 1, 10, 13, 169, 172, 17, 63, 29, 174, 82, 234, 62, 84, 83, 40, 117, 93, 180, 5, 223, 62, 98, 36, 102, 100, 34, 105, 84, 111, 126, 38, 83, 41, 101, 94, 125, 73, 59, 54, 71, 79, 43, 42, 42, 102, 38, 43, 79, 32, 79, 94, 71, 38, 63, 108, 119, 71, 34, 66, 120, 128, 184, 213, 175, 214, 245, 171, 253, 121, 250, 1, 10, 13, 152, 129, 226, 62, 29, 81, 97, 129, 62, 84, 83, 40, 98, 93, 187, 164, 86, 62, 98, 62, 49, 100, 40, 36, 105, 54, 54, 60, 101, 88, 38, 63, 109, 62, 126, 93, 118, 58, 83, 64, 63, 93, 77, 104, 119, 101, 85, 71, 120, 59, 124, 55, 65, 117, 120, 33, 125, 38, 100, 105, 56, 65, 96, 76, 56, 77, 42, 40, 35, 99, 36, 47, 99, 73, 115, 82, 55, 62, 44, 35, 95, 110, 120, 128, 248, 160, 242, 131, 185, 135, 146, 48, 250, 1, 10, 13, 11, 239, 228, 62, 29, 161, 78, 29, 63, 84, 83, 40, 104, 93, 199, 133, 123, 63, 98, 60, 118, 69, 124, 94, 111, 84, 104, 39, 124, 124, 32, 80, 73, 91, 77, 67, 52, 55, 108, 82, 119, 34, 69, 105, 95, 121, 97, 41, 73, 125, 54, 113, 72, 78, 50, 97, 37, 37, 51, 90, 121, 65, 117, 85, 54, 108, 97, 71, 50, 74, 46, 51, 108, 60, 38, 116, 32, 51, 126, 117, 120, 128, 152, 163, 242, 157, 221, 153, 146, 239, 1, 250, 1, 5, 13, 165, 169, 41, 63, 84, 83, 40, 82, 93, 129, 206, 125, 63, 98, 78, 102, 46, 39, 122, 72, 106, 62, 47, 35, 50, 87, 85, 43, 111, 83, 113, 55, 57, 118, 125, 110, 34, 37, 44, 72, 61, 97, 113, 37, 61, 102, 58, 99, 118, 109, 40, 101, 102, 125, 71, 44, 126, 47, 89, 99, 79, 104, 47, 94, 45, 94, 88, 103, 94, 47, 99, 40, 121, 81, 42, 40, 75, 42, 101, 75, 60, 113, 52, 33, 74, 44, 79, 58, 79, 112, 111, 113, 74, 120, 128, 188, 188, 228, 166, 219, 227, 163, 182, 1, 250, 1, 5, 13, 132, 192, 108, 63, 84, 83, 40, 69, 93, 253, 183, 7, 63, 98, 43, 50, 118, 94, 45, 82, 36, 103, 42, 126, 106, 53, 115, 62, 96, 115, 73, 46, 70, 93, 84, 45, 51, 33, 46, 61, 56, 109, 62, 112, 93, 81, 88, 85, 85, 56, 50, 39, 61, 105, 108, 75, 118, 75, 120, 128, 148, 245, 233, 140, 164, 169, 207, 44, 250, 1, 10, 13, 144, 181, 143, 62, 29, 135, 198, 209, 62, 84, 83, 40, 22, 93, 201, 58, 48, 62, 98, 44, 122, 71, 60, 33, 58, 126, 68, 125, 117, 79, 111, 58, 54, 72, 56, 64, 56, 91, 61, 104, 71, 97, 66, 112, 92, 112, 40, 54, 103, 95, 114, 117, 39, 92, 66, 72, 65, 80, 62, 85, 48, 57, 59, 86, 120, 128, 200, 163, 228, 156, 207, 156, 162, 61, 250, 1, 5, 13, 103, 26, 253, 62, 84, 83, 40, 72, 93, 31, 37, 9, 61, 98, 40, 93, 42, 39, 94, 41, 70, 103, 56, 37, 75, 67, 72, 118, 46, 54, 53, 92, 120, 50, 88, 37, 110, 126, 103, 61, 102, 88, 46, 70, 107, 67, 45, 57, 37, 87, 92, 87, 52, 108, 95, 120, 128, 184, 245, 155, 238, 209, 171, 223, 241, 1, 250, 1, 5, 13, 31, 165, 211, 61, 84, 83, 40, 47, 93, 234, 10, 101, 63, 98, 62, 44, 116, 94, 34, 34, 37, 120, 83, 60, 125, 124, 110, 42, 63, 64, 65, 109, 89, 113, 56, 39, 53, 47, 112, 85, 89, 92, 71, 43, 81, 98, 123, 74, 41, 90, 71, 40, 85, 43, 64, 113, 110, 112, 59, 40, 104, 81, 56, 114, 74, 113, 59, 55, 43, 109, 118, 101, 108, 75, 72, 72, 81, 120, 128, 220, 247, 220, 214, 228, 189, 231, 181, 1, 250, 1, 5, 13, 201, 24, 72, 63, 84, 83, 40, 35, 93, 120, 150, 71, 60, 98, 56, 67, 32, 99, 120, 57, 55, 77, 81, 69, 56, 68, 114, 104, 108, 39, 68, 84, 96, 95, 71, 100, 63, 59, 99, 97, 58, 42, 97, 119, 64, 70, 38, 33, 38, 68, 80, 84, 121, 48, 89, 108, 100, 100, 84, 82, 113, 36, 94, 65, 36, 123, 102, 43, 113, 60, 36, 120, 128, 128, 142, 188, 139, 253, 239, 224, 219, 1, 250, 1, 5, 13, 168, 228, 104, 58, 84, 83, 40, 31, 93, 83, 87, 126, 63, 98, 95, 45, 107, 89, 36, 113, 62, 113, 97, 71, 85, 110, 89, 79, 37, 90, 126, 89, 102, 49, 110, 54, 74, 64, 114, 67, 94, 121, 46, 105, 64, 107, 84, 97, 49, 75, 33, 43, 96, 97, 51, 32, 65, 54, 106, 52, 66, 55, 37, 55, 60, 73, 124, 109, 71, 104, 97, 74, 101, 96, 50, 67, 99, 118, 38, 104, 58, 119, 61, 88, 88, 115, 120, 36, 124, 110, 115, 51, 84, 94, 33, 71, 116, 117, 77, 118, 110, 101, 58, 72, 105, 85, 68, 126, 79, 111, 120, 128, 220, 201, 143, 146, 195, 205, 252, 37, 250, 1, 5, 13, 90, 29, 224, 62, 84, 83, 40, 21, 93, 45, 177, 157, 60, 98, 49, 120, 73, 120, 76, 94, 72, 79, 119, 111, 88, 115, 77, 117, 39, 94, 106, 78, 108, 73, 47, 121, 84, 92, 116, 110, 34, 79, 120, 84, 45, 82, 74, 35, 82, 101, 86, 77, 72, 55, 37, 70, 117, 116, 96, 83, 59, 95, 61, 64, 120, 128, 192, 222, 180, 251, 150, 244, 165, 219, 1, 250, 1, 5, 13, 45, 227, 178, 62, 84, 83, 40, 61, 93, 24, 216, 26, 58, 98, 23, 32, 39, 68, 107, 36, 92, 91, 120, 86, 67, 98, 37, 73, 73, 66, 64, 39, 60, 38, 85, 68, 103, 36, 120, 128, 200, 183, 204, 250, 180, 188, 227, 212, 1, 250, 1, 5, 13, 124, 174, 117, 63, 84, 83, 40, 43, 93, 48, 63, 9, 63, 98, 40, 65, 49, 87, 111, 107, 37, 74, 34, 75, 64, 105, 73, 106, 90, 44, 110, 81, 49, 91, 42, 112, 61, 123, 57, 70, 59, 119, 90, 55, 34, 100, 111, 98, 41, 57, 102, 125, 82, 118, 32, 120, 128, 224, 168, 236, 200, 143, 198, 226, 126, 250, 1, 10, 13, 30, 98, 210, 62, 29, 118, 249, 102, 63, 84, 83, 40, 126, 93, 240, 166, 154, 62, 98, 61, 114, 58, 122, 56, 120, 81, 77, 63, 53, 97, 36, 53, 62, 72, 79, 45, 110, 106, 73, 91, 120, 101, 96, 64, 68, 112, 125, 58, 90, 43, 73, 70, 123, 123, 82, 32, 123, 66, 62, 79, 55, 79, 77, 71, 53, 81, 94, 42, 70, 114, 47, 91, 76, 67, 66, 45, 88, 89, 114, 39, 83, 120, 128, 236, 229, 167, 144, 220, 174, 190, 26, 250, 1, 5, 13, 153, 210, 55, 63, 84, 83, 40, 13, 93, 213, 66, 129, 62, 98, 16, 93, 56, 66, 116, 79, 48, 75, 75, 120, 68, 73, 55, 57, 43, 114, 49, 120, 128, 208, 245, 137, 254, 129, 173, 207, 240, 1, 250, 1, 10, 13, 122, 28, 94, 63, 29, 48, 6, 64, 63, 84, 83, 40, 121, 93, 53, 11, 78, 63, 98, 33, 121, 88, 88, 69, 70, 66, 79, 55, 123, 35, 106, 67, 47, 87, 56, 60, 52, 118, 98, 98, 48, 82, 125, 120, 116, 63, 78, 32, 116, 94, 63, 123, 46, 120, 128, 236, 216, 148, 167, 224, 198, 165, 185, 1, 250, 1, 10, 13, 219, 48, 52, 63, 29, 120, 209, 41, 63, 84, 83, 40, 97, 93, 210, 155, 255, 62, 98, 64, 40, 109, 123, 51, 124, 64, 93, 115, 42, 83, 89, 116, 95, 123, 37, 56, 91, 70, 90, 95, 79, 39, 115, 79, 65, 60, 99, 109, 53, 99, 115, 88, 82, 99, 109, 115, 102, 123, 84, 92, 59, 33, 53, 121, 69, 32, 126, 67, 118, 116, 109, 60, 36, 41, 126, 33, 121, 76, 113, 96, 92, 110, 94, 69, 120, 128, 176, 208, 210, 138, 158, 131, 149, 213, 1, 250, 1, 5, 13, 28, 185, 205, 59, 84, 83, 40, 45, 93, 165, 157, 115, 63, 98, 71, 45, 48, 80, 94, 112, 124, 67, 78, 113, 120, 41, 65, 61, 63, 117, 63, 116, 86, 83, 73, 100, 108, 121, 57, 42, 115, 126, 75, 65, 110, 58, 69, 93, 35, 53, 102, 67, 47, 74, 39, 100, 80, 47, 32, 67, 80, 67, 60, 119, 62, 79, 40, 75, 119, 54, 64, 53, 55, 83, 124, 124, 119, 44, 34, 94, 99, 98, 57, 41, 47, 122, 120, 128, 208, 207, 178, 193, 250, 252, 148, 94, 250, 1, 5, 13, 118, 217, 6, 62, 84, 83, 40, 59, 93, 154, 50, 54, 63, 98, 57, 51, 92, 121, 117, 89, 80, 98, 82, 35, 63, 50, 120, 101, 108, 116, 81, 44, 90, 77, 41, 108, 67, 45, 65, 94, 108, 41, 50, 104, 67, 104, 122, 125, 51, 34, 98, 58, 65, 121, 75, 58, 68, 41, 97, 76, 105, 124, 75, 52, 92, 109, 43, 94, 66, 118, 111, 79, 120, 128, 232, 249, 183, 185, 181, 206, 191, 203, 1, 250, 1, 5, 13, 38, 20, 114, 62, 84, 83, 40, 102, 93, 248, 41, 209, 62, 98, 60, 79, 104, 94, 85, 54, 121, 81, 106, 50, 54, 106, 95, 34, 110, 71, 58, 74, 116, 115, 110, 93, 125, 44, 84, 93, 60, 90, 60, 50, 51, 97, 42, 44, 36, 105, 90, 73, 43, 53, 111, 75, 96, 34, 69, 35, 74, 91, 83, 78, 85, 36, 98, 65, 124, 104, 80, 92, 41, 119, 120, 120, 128, 244, 193, 171, 174, 162, 143, 220, 41, 250, 1, 5, 13, 198, 246, 95, 62, 84, 83, 40, 74, 93, 119, 90, 125, 63, 98, 27, 83, 96, 83, 124, 36, 107, 111, 62, 94, 36, 67, 124, 123, 101, 81, 50, 95, 39, 108, 92, 46, 126, 104, 47, 59, 57, 124, 120, 128, 212, 145, 255, 210, 176, 141, 249, 43, 250, 1, 12, 13, 15, 210, 81, 62, 29, 183, 91, 149, 62, 56, 1, 84, 83, 40, 30, 93, 255, 63, 175, 61, 98, 62, 35, 113, 66, 118, 94, 79, 98, 100, 101, 35, 61, 88, 107, 84, 118, 87, 100, 57, 55, 71, 122, 111, 84, 119, 67, 97, 106, 109, 79, 43, 67, 82, 45, 116, 120, 115, 47, 59, 33, 87, 42, 118, 72, 122, 74, 85, 79, 99, 38, 103, 77, 34, 57, 110, 44, 50, 60, 73, 82, 124, 99, 115, 120, 128, 148, 196, 217, 227, 165, 161, 204, 157, 1, 250, 1, 5, 13, 201, 204, 27, 63, 84, 83, 40, 85, 93, 132, 149, 70, 63, 98, 53, 75, 118, 91, 35, 71, 73, 55, 94, 61, 36, 71, 89, 76, 109, 50, 38, 103, 102, 92, 64, 56, 61, 103, 101, 86, 100, 103, 36, 114, 53, 96, 109, 58, 96, 41, 87, 40, 34, 64, 36, 105, 90, 80, 39, 105, 97, 124, 100, 105, 93, 44, 78, 124, 120, 128, 164, 141, 160, 181, 165, 234, 128, 170, 1, 250, 1, 5, 13, 241, 176, 4, 63, 84, 83, 40, 18, 93, 194, 35, 24, 62, 98, 70, 116, 75, 98, 96, 51, 107, 39, 67, 89, 63, 106, 99, 89, 124, 101, 69, 87, 85, 93, 107, 96, 123, 116, 102, 34, 57, 52, 41, 49, 111, 122, 47, 122, 73, 51, 85, 93, 67, 85, 109, 73, 98, 47, 66, 49, 33, 48, 95, 70, 40, 68, 104, 114, 65, 76, 119, 86, 122, 93, 121, 86, 125, 50, 104, 67, 91, 104, 47, 105, 47, 120, 128, 160, 136, 253, 237, 146, 194, 232, 96, 250, 1, 5, 13, 100, 181, 88, 62, 84, 83, 40, 0, 93, 170, 238, 84, 63, 98, 83, 66, 124, 107, 81, 84, 33, 41, 84, 98, 40, 74, 50, 59, 89, 124, 58, 126, 97, 100, 91, 54, 74, 80, 69, 125, 85, 56, 32, 116, 54, 64, 48, 103, 35, 125, 78, 44, 36, 69, 91, 112, 34, 59, 41, 62, 49, 64, 46, 50, 79, 48, 37, 78, 67, 88, 118, 76, 69, 82, 126, 104, 40, 94, 75, 103, 58, 73, 55, 90, 77, 46, 121, 60, 41, 106, 52, 47, 70, 39, 108, 52, 41, 109, 120, 128, 176, 164, 169, 230, 128, 163, 202, 178, 1, 250, 1, 5, 13, 168, 192, 142, 61, 84, 83, 40, 35, 93, 238, 211, 48, 63, 98, 72, 68, 74, 38, 34, 101, 81, 69, 114, 103, 66, 110, 65, 35, 103, 41, 83, 99, 64, 53, 104, 69, 88, 67, 103, 37, 61, 101, 106, 95, 57, 57, 69, 76, 87, 36, 107, 83, 74, 71, 72, 117, 53, 34, 112, 63, 36, 35, 36, 43, 84, 41, 36, 111, 81, 60, 106, 38, 62, 124, 71, 106, 90, 50, 78, 41, 73, 116, 75, 98, 60, 126, 57, 120, 128, 248, 243, 235, 206, 212, 159, 223, 246, 1, 250, 1, 5, 13, 60, 210, 77, 63, 84, 83, 40, 109, 93, 211, 250, 35, 62, 98, 81, 86, 82, 71, 32, 58, 96, 95, 42, 48, 52, 84, 122, 58, 57, 101, 53, 76, 32, 92, 59, 34, 83, 103, 117, 47, 87, 65, 109, 85, 110, 43, 35, 94, 45, 52, 83, 117, 124, 45, 42, 122, 40, 62, 115, 116, 121, 48, 73, 85, 104, 107, 119, 47, 86, 44, 35, 105, 81, 111, 97, 62, 112, 83, 64, 41, 80, 59, 45, 36, 50, 63, 79, 114, 82, 63, 121, 52, 114, 32, 53, 70, 120, 168, 224, 188, 129, 191, 130, 230, 117, 250, 1, 5, 13, 97, 139, 127, 62, 84, 83, 40, 101, 93, 50, 69, 7, 61, 98, 36, 50, 114, 40, 32, 49, 104, 68, 44, 74, 106, 41, 83, 125, 106, 68, 93, 35, 68, 67, 73, 60, 37, 92, 54, 50, 109, 117, 80, 90, 59, 70, 88, 102, 60, 117, 92, 120, 128, 198, 188, 164, 227, 178, 228, 163, 154, 1, 250, 1, 7, 13, 112, 62, 7, 62, 32, 1, 84, 83, 40, 53, 93, 232, 126, 113, 63, 98, 51, 67, 71, 102, 53, 69, 54, 40, 91, 87, 67, 83, 114, 66, 101, 45, 54, 112, 109, 66, 113, 115, 81, 47, 67, 80, 108, 96, 116, 102, 73, 117, 80, 122, 78, 119, 93, 116, 32, 107, 86, 109, 115, 35, 118, 114, 101, 68, 86, 104, 70, 66, 120, 128, 164, 150, 155, 255, 177, 178, 217, 40, 250, 1, 5, 13, 126, 196, 0, 63, 84, 83, 40, 71, 93, 40, 26, 132, 61, 98, 97, 113, 56, 66, 100, 88, 85, 50, 116, 45, 76, 34, 119, 115, 108, 79, 64, 111, 34, 107, 35, 32, 77, 55, 80, 106, 72, 42, 43, 63, 39, 87, 32, 69, 72, 38, 68, 81, 59, 51, 32, 91, 125, 116, 73, 111, 108, 80, 104, 57, 38, 81, 59, 99, 81, 37, 67, 32, 113, 121, 48, 75, 39, 84, 37, 116, 33, 81, 74, 102, 42, 109, 84, 109, 106, 71, 33, 87, 109, 95, 124, 119, 65, 113, 57, 85, 60, 60, 114, 66, 98, 68, 95, 64, 35, 83, 83, 72, 120, 128, 200, 194, 179, 189, 173, 148, 156, 235, 1, 250, 1, 5, 13, 99, 141, 13, 63, 84, 83, 40, 104, 93, 136, 5, 146, 62, 98, 27, 37, 33, 46, 55, 124, 76, 119, 41, 36, 106, 50, 49, 124, 56, 42, 52, 59, 79, 87, 100, 94, 39, 36, 101, 46, 52, 106, 120, 128, 254, 223, 234, 164, 234, 255, 213, 31, 250, 1, 5, 13, 87, 8, 95, 63, 84, 83, 40, 74, 93, 63, 52, 64, 63, 98, 42, 56, 112, 96, 113, 63, 98, 33, 87, 110, 68, 104, 62, 118, 49, 77, 66, 105, 73, 63, 45, 64, 123, 41, 91, 124, 124, 72, 41, 104, 97, 96, 54, 75, 35, 120, 64, 59, 69, 106, 80, 57, 118, 120, 128, 168, 217, 154, 172, 218, 202, 213, 225, 1, 250, 1, 5, 13, 116, 252, 173, 62, 84, 83, 40, 113, 93, 198, 39, 66, 63, 98, 42, 44, 83, 95, 112, 32, 108, 83, 74, 71, 59, 103, 37, 115, 65, 57, 118, 110, 44, 98, 82, 114, 115, 56, 45, 38, 68, 93, 109, 114, 72, 51, 104, 101, 52, 112, 116, 73, 118, 96, 114, 97, 32, 120, 128, 152, 157, 249, 217, 179, 233, 201, 207, 1, 250, 1, 5, 13, 33, 248, 35, 63, 84, 83, 40, 74, 93, 153, 69, 113, 62, 98, 64, 81, 72, 55, 66, 40, 91, 92, 66, 116, 55, 58, 82, 105, 91, 46, 100, 87, 125, 40, 125, 62, 94, 80, 67, 77, 118, 75, 110, 111, 114, 56, 90, 84, 111, 113, 53, 86, 79, 64, 86, 43, 66, 63, 88, 89, 118, 45, 37, 100, 124, 71, 92, 84, 88, 118, 113, 119, 114, 116, 48, 48, 108, 82, 34, 120, 128, 184, 248, 174, 189, 200, 195, 247, 126, 250, 1, 5, 13, 172, 20, 43, 63, 84, 83, 40, 123, 93, 212, 194, 111, 63, 98, 30, 104, 120, 46, 39, 93, 81, 114, 122, 63, 119, 104, 85, 105, 69, 42, 114, 74, 90, 38, 122, 119, 32, 61, 99, 90, 47, 70, 61, 111, 61, 120, 128, 184, 148, 185, 169, 182, 163, 201, 77, 250, 1, 5, 13, 196, 36, 113, 63, 84, 83, 40, 118, 93, 138, 4, 81, 62, 98, 64, 59, 106, 109, 63, 126, 35, 101, 122, 82, 126, 41, 62, 70, 105, 97, 95, 86, 67, 89, 33, 33, 104, 90, 74, 75, 77, 42, 84, 43, 34, 61, 110, 91, 85, 42, 63, 36, 42, 91, 35, 52, 124, 76, 61, 89, 60, 104, 91, 91, 47, 101, 54, 64, 119, 50, 81, 47, 67, 114, 81, 119, 49, 111, 80, 120, 128, 144, 150, 253, 170, 251, 176, 233, 215, 1, 250, 1, 5, 13, 83, 252, 138, 62, 84, 83, 40, 87, 93, 62, 169, 86, 63, 98, 67, 95, 66, 91, 75, 102, 86, 108, 35, 59, 61, 111, 47, 100, 78, 120, 122, 59, 39, 78, 99, 67, 87, 47, 95, 54, 42, 42, 35, 44, 123, 91, 64, 90, 119, 123, 56, 83, 58, 78, 104, 42, 46, 53, 113, 83, 99, 107, 72, 56, 115, 52, 89, 106, 124, 76, 39, 50, 122, 52, 92, 75, 104, 117, 62, 97, 78, 84, 120, 128, 248, 154, 220, 252, 193, 215, 225, 229, 1, 250, 1, 10, 13, 205, 239, 7, 63, 29, 20, 242, 42, 63, 84, 83, 40, 51, 93, 81, 93, 28, 60, 98, 67, 88, 100, 88, 53, 65, 61, 43, 82, 61, 97, 106, 56, 102, 33, 84, 92, 75, 115, 37, 88, 37, 113, 61, 65, 55, 117, 47, 36, 47, 32, 117, 87, 76, 51, 33, 38, 67, 54, 100, 116, 111, 97, 62, 104, 125, 93, 87, 95, 121, 118, 64, 93, 89, 109, 122, 101, 70, 55, 124, 74, 45, 38, 66, 61, 107, 50, 106, 120, 128, 144, 157, 204, 200, 133, 233, 225, 196, 1, 250, 1, 5, 13, 11, 188, 195, 59, 84, 83, 40, 62, 93, 116, 179, 136, 62, 98, 52, 52, 47, 48, 104, 67, 82, 83, 66, 88, 62, 79, 42, 56, 95, 55, 125, 93, 56, 58, 94, 44, 57, 57, 102, 104, 62, 33, 124, 107, 113, 35, 95, 74, 92, 43, 78, 73, 37, 86, 51, 113, 115, 68, 44, 93, 122, 42, 93, 83, 52, 45, 58, 120, 128, 240, 146, 215, 235, 248, 150, 185, 221, 1, 250, 1, 10, 13, 147, 39, 84, 63, 29, 2, 117, 15, 62, 84, 83, 40, 120, 93, 40, 144, 99, 63, 98, 87, 72, 126, 37, 81, 86, 86, 102, 58, 110, 95, 90, 83, 103, 83, 88, 97, 39, 108, 55, 116, 45, 40, 108, 52, 67, 72, 87, 100, 104, 120, 90, 79, 48, 89, 33, 38, 81, 96, 59, 60, 92, 112, 109, 59, 78, 41, 107, 95, 84, 88, 94, 34, 116, 38, 102, 63, 50, 111, 46, 45, 126, 34, 81, 117, 36, 43, 67, 46, 82, 81, 47, 69, 80, 121, 55, 60, 57, 80, 100, 57, 92, 118, 48, 48, 58, 88, 89, 120, 128, 142, 168, 208, 193, 238, 192, 130, 141, 1, 250, 1, 5, 13, 31, 64, 91, 63, 84, 83, 40, 86, 93, 84, 205, 95, 63, 98, 46, 96, 81, 46, 61, 90, 62, 119, 55, 67, 100, 93, 45, 34, 72, 56, 81, 121, 109, 74, 37, 96, 43, 115, 80, 40, 112, 64, 90, 74, 80, 58, 59, 112, 93, 77, 115, 66, 92, 92, 124, 65, 56, 65, 84, 126, 104, 120, 128, 156, 134, 171, 146, 216, 177, 216, 146, 1, 250, 1, 5, 13, 47, 65, 64, 63, 84, 83, 40, 2, 93, 102, 90, 151, 61, 98, 93, 94, 58, 70, 90, 50, 85, 92, 92, 52, 104, 125, 61, 107, 113, 74, 65, 59, 67, 121, 68, 46, 61, 49, 77, 99, 71, 104, 63, 80, 62, 99, 88, 88, 67, 112, 126, 116, 53, 75, 119, 54, 100, 72, 114, 125, 36, 75, 78, 41, 93, 77, 105, 108, 93, 119, 65, 40, 120, 118, 106, 107, 61, 44, 117, 37, 69, 99, 72, 32, 75, 76, 37, 119, 34, 45, 73, 116, 62, 78, 95, 122, 58, 53, 114, 112, 120, 106, 122, 75, 79, 117, 122, 62, 120, 128, 216, 179, 228, 138, 167, 157, 163, 214, 1, 250, 1, 5, 13, 73, 66, 240, 61, 84, 83, 40, 117, 93, 146, 226, 23, 63, 98, 84, 81, 109, 88, 63, 35, 77, 93, 48, 71, 113, 106, 79, 77, 76, 105, 73, 55, 110, 81, 39, 56, 37, 43, 90, 104, 123, 80, 84, 80, 102, 55, 118, 52, 111, 66, 80, 117, 63, 118, 107, 87, 97, 72, 39, 32, 75, 124, 35, 44, 80, 39, 112, 88, 112, 64, 76, 97, 125, 86, 39, 124, 40, 95, 96, 89, 114, 58, 92, 42, 57, 83, 118, 119, 100, 78, 85, 91, 36, 89, 61, 125, 77, 72, 126, 120, 128, 176, 191, 168, 177, 229, 250, 195, 85, 250, 1, 5, 13, 10, 8, 204, 62, 84, 83, 40, 39, 93, 232, 155, 187, 62, 98, 37, 79, 116, 109, 118, 104, 111, 110, 78, 34, 102, 76, 44, 48, 63, 119, 114, 123, 47, 120, 114, 65, 105, 111, 93, 67, 57, 40, 78, 95, 96, 33, 52, 84, 118, 44, 52, 74, 120, 128, 232, 216, 161, 217, 235, 198, 141, 81, 250, 1, 10, 13, 62, 84, 27, 62, 29, 235, 218, 164, 61, 84, 83, 40, 113, 93, 64, 59, 209, 57, 98, 38, 83, 115, 86, 77, 44, 94, 84, 85, 34, 79, 76, 74, 32, 101, 36, 48, 83, 78, 102, 64, 110, 65, 101, 56, 86, 56, 50, 99, 71, 64, 33, 112, 124, 65, 54, 122, 38, 116, 120, 128, 166, 234, 142, 238, 185, 210, 246, 17, 250, 1, 10, 13, 130, 146, 222, 62, 29, 106, 143, 111, 63, 84, 83, 40, 12, 93, 226, 54, 37, 63, 98, 76, 80, 102, 42, 118, 70, 47, 57, 40, 94, 63, 84, 48, 50, 46, 62, 118, 115, 75, 112, 45, 97, 78, 90, 76, 94, 79, 40, 41, 94, 66, 61, 70, 101, 98, 53, 80, 75, 65, 107, 83, 45, 55, 65, 81, 71, 49, 35, 108, 103, 125, 56, 125, 40, 122, 122, 33, 43, 92, 55, 118, 38, 48, 73, 60, 33, 46, 73, 78, 119, 108, 74, 81, 95, 60, 126, 74, 120, 128, 134, 175, 138, 251, 185, 248, 210, 18, 250, 1, 5, 13, 174, 102, 211, 61, 84, 83, 40, 7, 93, 232, 200, 239, 62, 98, 59, 75, 59, 65, 95, 41, 63, 61, 105, 103, 51, 69, 109, 41, 116, 76, 124, 109, 37, 79, 56, 102, 84, 115, 122, 82, 101, 62, 106, 122, 80, 115, 33, 87, 106, 74, 106, 109, 104, 50, 97, 111, 95, 102, 99, 71, 92, 72, 105, 111, 34, 91, 40, 89, 107, 100, 118, 70, 70, 45, 120, 128, 224, 244, 211, 175, 129, 166, 159, 48, 250, 1, 5, 13, 156, 231, 144, 60, 84, 83, 40, 66, 93, 152, 226, 81, 63, 98, 75, 54, 63, 67, 53, 62, 73, 97, 47, 36, 113, 108, 72, 39, 109, 47, 82, 116, 61, 83, 122, 120, 115, 107, 71, 107, 37, 83, 67, 71, 90, 110, 95, 61, 112, 79, 68, 36, 70, 42, 64, 46, 114, 86, 53, 107, 67, 93, 40, 54, 114, 55, 38, 77, 86, 116, 65, 82, 122, 73, 56, 116, 61, 102, 73, 35, 45, 42, 54, 61, 106, 78, 78, 50, 50, 108, 120, 128, 234, 144, 138, 161, 208, 134, 209, 136, 1, 250, 1, 5, 13, 57, 4, 158, 62, 84, 83, 40, 72, 93, 111, 231, 28, 63, 98, 69, 71, 71, 74, 45, 84, 66, 103, 50, 102, 123, 45, 112, 40, 123, 112, 74, 111, 43, 45, 50, 94, 57, 71, 105, 75, 67, 104, 114, 58, 104, 109, 36, 123, 64, 33, 112, 73, 47, 50, 38, 58, 122, 66, 58, 47, 120, 70, 81, 65, 102, 123, 121, 47, 67, 122, 46, 32, 96, 97, 48, 89, 116, 118, 124, 45, 41, 115, 102, 121, 120, 144, 247, 248, 140, 160, 185, 199, 231, 128, 1, 250, 1, 5, 13, 22, 88, 45, 60, 84, 83, 40, 85, 93, 74, 228, 109, 63, 98, 31, 39, 118, 99, 117, 45, 90, 81, 123, 54, 81, 83, 108, 115, 115, 88, 69, 114, 112, 104, 77, 33, 75, 68, 36, 69, 44, 38, 36, 95, 87, 64, 120, 128, 152, 207, 197, 228, 178, 249, 172, 94, 250, 1, 10, 13, 153, 172, 148, 62, 29, 204, 119, 128, 60, 84, 83, 40, 11, 93, 90, 50, 238, 62, 98, 29, 54, 56, 113, 37, 47, 51, 67, 67, 66, 48, 56, 53, 59, 65, 39, 47, 55, 50, 118, 90, 81, 95, 80, 32, 84, 76, 60, 93, 48, 120, 128, 192, 198, 192, 203, 194, 179, 132, 103, 250, 1, 5, 13, 51, 17, 3, 63, 84, 83, 40, 109, 93, 39, 117, 73, 63, 98, 51, 43, 46, 90, 125, 98, 62, 109, 40, 33, 96, 52, 114, 111, 104, 62, 80, 49, 78, 41, 41, 76, 121, 86, 102, 113, 80, 97, 118, 100, 50, 85, 94, 70, 73, 47, 50, 75, 49, 83, 115, 41, 82, 80, 126, 59, 44, 99, 99, 125, 45, 126, 120, 128, 164, 177, 129, 213, 164, 138, 139, 168, 1, 250, 1, 5, 13, 237, 65, 213, 62, 84, 83, 40, 95, 93, 24, 102, 160, 62, 98, 64, 49, 87, 114, 43, 50, 91, 118, 66, 109, 42, 85, 76, 70, 88, 43, 36, 126, 122, 52, 32, 121, 72, 86, 74, 100, 108, 124, 119, 86, 50, 55, 55, 93, 43, 125, 90, 88, 37, 65, 55, 50, 48, 97, 115, 101, 94, 60, 43, 113, 41, 126, 66, 50, 103, 67, 103, 32, 71, 69, 68, 93, 125, 106, 91, 120, 128, 216, 217, 183, 215, 220, 205, 189, 110, 250, 1, 5, 13, 253, 19, 161, 62, 84, 83, 40, 104, 93, 128, 85, 144, 62, 98, 61, 90, 80, 74, 121, 88, 123, 109, 105, 102, 98, 100, 38, 80, 113, 37, 77, 50, 116, 36, 117, 103, 53, 89, 48, 94, 123, 89, 51, 68, 38, 33, 71, 111, 33, 80, 65, 93, 37, 104, 54, 120, 89, 33, 60, 98, 63, 115, 107, 119, 61, 72, 124, 57, 119, 82, 68, 117, 58, 59, 92, 66, 120, 128, 168, 219, 218, 201, 167, 218, 213, 205, 1, 250, 1, 5, 13, 150, 79, 197, 62, 84, 83, 40, 85, 93, 170, 61, 46, 63, 98, 45, 60, 53, 78, 65, 99, 110, 45, 43, 109, 123, 46, 52, 60, 76, 62, 40, 108, 59, 38, 92, 36, 46, 119, 78, 43, 74, 67, 105, 44, 114, 62, 52, 63, 91, 70, 42, 68, 74, 51, 78, 59, 112, 75, 122, 68, 120, 128, 206, 151, 154, 185, 229, 188, 209, 22, 250, 1, 5, 13, 148, 16, 25, 63, 84, 83, 40, 103, 93, 103, 24, 118, 63, 98, 49, 83, 85, 62, 61, 35, 92, 46, 60, 126, 53, 57, 74, 66, 126, 121, 93, 120, 115, 96, 37, 52, 98, 66, 39, 87, 65, 50, 97, 124, 41, 122, 112, 84, 109, 88, 61, 32, 117, 60, 125, 56, 109, 69, 52, 121, 35, 119, 113, 81, 120, 128, 192, 129, 147, 163, 246, 139, 152, 40, 250, 1, 12, 13, 133, 7, 232, 62, 29, 176, 193, 147, 62, 56, 1, 84, 83, 40, 95, 93, 23, 213, 63, 63, 98, 76, 111, 50, 54, 101, 96, 74, 75, 63, 117, 58, 71, 116, 84, 70, 92, 92, 34, 87, 97, 108, 70, 61, 45, 45, 83, 73, 63, 48, 95, 93, 94, 120, 108, 37, 103, 42, 104, 48, 90, 83, 107, 77, 78, 121, 81, 45, 66, 75, 115, 95, 72, 98, 53, 122, 65, 82, 36, 41, 49, 55, 42, 59, 95, 55, 90, 78, 40, 78, 93, 81, 114, 112, 124, 46, 32, 119, 120, 128, 168, 143, 138, 189, 189, 250, 208, 232, 1, 250, 1, 10, 13, 199, 22, 86, 62, 29, 38, 197, 28, 63, 84, 83, 40, 50, 93, 211, 129, 152, 61, 98, 66, 115, 59, 126, 53, 122, 98, 113, 99, 53, 38, 94, 125, 67, 72, 80, 109, 55, 62, 35, 37, 114, 108, 66, 107, 86, 101, 39, 122, 72, 99, 111, 78, 106, 48, 54, 126, 96, 33, 94, 106, 54, 106, 72, 74, 52, 114, 88, 101, 78, 41, 85, 116, 86, 64, 51, 38, 119, 50, 93, 53, 91, 117, 58, 80, 53, 47, 120, 128, 176, 247, 148, 211, 133, 187, 167, 153, 1, 250, 1, 5, 13, 98, 183, 75, 62, 84, 83, 40, 23, 93, 103, 21, 5, 63, 98, 44, 45, 53, 94, 56, 109, 40, 67, 118, 87, 99, 44, 65, 75, 63, 45, 122, 119, 74, 123, 48, 38, 77, 67, 73, 46, 63, 79, 118, 53, 36, 95, 70, 83, 123, 123, 64, 53, 62, 81, 43, 97, 32, 89, 121, 120, 128, 146, 240, 212, 157, 144, 129, 167, 12, 250, 1, 7, 13, 128, 148, 144, 62, 56, 0, 84, 83, 40, 121, 93, 171, 127, 189, 62, 98, 45, 58, 55, 103, 54, 32, 74, 94, 113, 53, 41, 78, 88, 75, 97, 83, 35, 101, 108, 78, 67, 108, 100, 89, 120, 112, 78, 38, 115, 72, 64, 114, 116, 83, 83, 122, 107, 119, 47, 82, 81, 60, 77, 126, 52, 35, 120, 128, 160, 219, 133, 220, 129, 218, 173, 67, 250, 1, 5, 13, 97, 13, 104, 62, 84, 83, 40, 40, 93, 112, 235, 130, 61, 98, 48, 117, 65, 77, 122, 87, 85, 84, 93, 110, 68, 81, 68, 106, 72, 115, 54, 88, 37, 119, 102, 102, 43, 85, 57, 124, 38, 63, 101, 68, 116, 63, 56, 102, 109, 82, 126, 69, 121, 122, 125, 70, 46, 41, 106, 32, 44, 81, 36, 120, 128, 239, 163, 242, 225, 246, 158, 146, 143, 1, 250, 1, 5, 13, 39, 1, 122, 63, 84, 83, 40, 55, 93, 189, 228, 239, 62, 98, 31, 61, 87, 62, 105, 106, 51, 124, 81, 54, 110, 56, 120, 37, 57, 92, 123, 116, 116, 112, 94, 41, 120, 64, 88, 34, 106, 57, 111, 84, 58, 89, 120, 128, 160, 192, 204, 150, 142, 130, 228, 180, 1, 250, 1, 5, 13, 24, 211, 234, 62, 84, 83, 40, 108, 93, 183, 228, 114, 63, 98, 61, 47, 78, 104, 51, 49, 124, 73, 102, 87, 116, 47, 100, 102, 79, 84, 46, 53, 44, 106, 66, 67, 55, 101, 102, 32, 120, 44, 123, 122, 52, 112, 76, 51, 62, 77, 76, 44, 97, 94, 96, 95, 50, 103, 98, 113, 37, 82, 64, 126, 43, 68, 58, 96, 78, 86, 119, 104, 33, 50, 56, 111, 120, 128, 228, 215, 197, 199, 156, 190, 173, 188, 1, 250, 1, 10, 13, 95, 166, 73, 63, 29, 238, 156, 187, 62, 84, 83, 40, 5, 93, 239, 186, 50, 63, 98, 68, 81, 71, 34, 39, 33, 83, 77, 41, 98, 49, 78, 34, 116, 121, 70, 106, 124, 111, 111, 85, 107, 99, 102, 84, 99, 43, 78, 70, 112, 50, 70, 69, 93, 47, 82, 42, 62, 118, 41, 111, 108, 86, 106, 69, 73, 101, 44, 55, 112, 36, 79, 122, 82, 77, 118, 109, 96, 76, 67, 117, 36, 39, 56, 80, 105, 41, 68, 100, 120, 128, 180, 159, 199, 198, 155, 251, 185, 180, 1, 250, 1, 5, 13, 87, 143, 150, 62, 84, 83, 40, 58, 93, 253, 134, 92, 61, 98, 45, 101, 126, 104, 52, 119, 65, 42, 124, 126, 54, 84, 107, 97, 74, 113, 48, 56, 100, 73, 113, 83, 51, 107, 100, 62, 57, 90, 64, 65, 70, 111, 84, 87, 74, 53, 83, 99, 97, 116, 63, 65, 69, 117, 108, 81, 120, 128, 252, 164, 223, 163, 214, 167, 250, 59, 250, 1, 10, 13, 10, 253, 82, 63, 29, 42, 130, 167, 62, 84, 83, 40, 30, 93, 73, 52, 84, 62, 98, 55, 76, 97, 113, 89, 80, 81, 51, 36, 117, 94, 101, 105, 91, 88, 69, 32, 51, 54, 53, 62, 75, 85, 111, 42, 79, 45, 61, 125, 51, 113, 74, 59, 42, 45, 121, 46, 98, 125, 120, 98, 63, 95, 107, 54, 88, 87, 105, 61, 70, 81, 56, 87, 41, 119, 103, 120, 128, 200, 254, 173, 206, 176, 244, 239, 242, 1, 250, 1, 5, 13, 68, 111, 90, 63, 84, 83, 40, 94, 93, 229, 13, 231, 61, 98, 29, 67, 52, 52, 111, 35, 51, 73, 95, 77, 93, 55, 61, 53, 60, 82, 125, 106, 105, 88, 80, 118, 66, 126, 86, 96, 88, 114, 50, 49, 120, 172, 254, 165, 207, 225, 242, 175, 51, 250, 1, 10, 13, 179, 201, 41, 61, 29, 91, 220, 153, 62, 84, 83, 40, 120, 93, 164, 10, 94, 63, 98, 24, 85, 77, 43, 110, 103, 34, 46, 119, 60, 94, 47, 52, 35, 58, 85, 121, 123, 43, 56, 54, 51, 32, 52, 93, 120, 128, 144, 195, 243, 134, 130, 153, 156, 21, 250, 1, 7, 13, 71, 1, 227, 62, 56, 0, 84, 83, 40, 31, 93, 199, 126, 244, 62, 98, 62, 39, 90, 121, 66, 65, 102, 37, 114, 122, 33, 86, 66, 125, 38, 64, 70, 76, 84, 87, 91, 55, 73, 119, 36, 99, 95, 85, 56, 76, 95, 61, 97, 118, 74, 52, 36, 52, 113, 97, 83, 80, 38, 32, 42, 96, 115, 52, 120, 115, 54, 97, 116, 104, 91, 53, 93, 97, 117, 93, 97, 48, 107, 120, 128, 152, 221, 164, 182, 181, 233, 165, 178, 1, 250, 1, 5, 13, 210, 130, 144, 62, 84, 83, 40, 89, 93, 79, 188, 98, 63, 98, 62, 74, 83, 112, 60, 50, 90, 114, 35, 43, 48, 72, 109, 66, 111, 74, 91, 68, 54, 125, 72, 120, 59, 52, 86, 65, 62, 52, 126, 67, 99, 96, 101, 69, 107, 72, 96, 40, 87, 36, 39, 33, 100, 80, 36, 53, 115, 82, 108, 55, 83, 71, 46, 60, 58, 123, 47, 62, 58, 121, 114, 69, 115, 120, 128, 200, 144, 221, 250, 206, 132, 233, 213, 1, 250, 1, 5, 13, 38, 71, 205, 62, 84, 83, 40, 63, 93, 159, 70, 50, 63, 98, 33, 71, 86, 71, 104, 83, 107, 50, 117, 70, 51, 106, 48, 65, 76, 106, 70, 102, 110, 60, 81, 72, 43, 111, 56, 65, 109, 92, 48, 96, 45, 36, 41, 84, 120, 128, 184, 214, 182, 248, 202, 179, 181, 195, 1, 250, 1, 10, 13, 208, 125, 239, 62, 29, 113, 113, 118, 63, 84, 83, 40, 49, 93, 124, 181, 245, 62, 98, 73, 32, 90, 123, 70, 114, 103, 68, 46, 119, 76, 39, 126, 44, 112, 41, 124, 57, 59, 101, 47, 71, 101, 47, 34, 52, 57, 47, 96, 90, 110, 32, 110, 33, 57, 110, 96, 85, 34, 55, 40, 114, 51, 116, 47, 40, 97, 32, 51, 32, 86, 56, 48, 53, 53, 38, 58, 75, 121, 49, 89, 88, 99, 82, 41, 76, 56, 124, 114, 34, 72, 71, 55, 36, 120, 128, 136, 146, 175, 202, 168, 144, 249, 210, 1, 250, 1, 5, 13, 124, 67, 149, 62, 84, 83, 40, 26, 93, 133, 53, 86, 63, 98, 34, 126, 120, 81, 56, 122, 95, 36, 86, 110, 88, 107, 50, 83, 52, 90, 111, 92, 78, 46, 95, 107, 98, 111, 100, 45, 48, 86, 47, 32, 43, 87, 121, 113, 73, 120, 128, 208, 236, 187, 135, 244, 228, 222, 187, 1, 250, 1, 7, 13, 73, 150, 34, 60, 56, 1, 84, 83, 40, 43, 93, 125, 165, 35, 63, 98, 26, 35, 78, 82, 92, 94, 49, 95, 77, 51, 107, 71, 70, 46, 44, 83, 36, 60, 41, 108, 43, 105, 40, 115, 85, 99, 33, 120, 128, 136, 171, 196, 218, 202, 216, 162, 109, 250, 1, 12, 13, 145, 65, 172, 62, 29, 61, 98, 215, 61, 56, 1, 84, 83, 40, 77, 93, 129, 69, 46, 62, 98, 56, 60, 112, 42, 48, 56, 37, 48, 83, 76, 98, 67, 66, 87, 99, 72, 108, 62, 69, 47, 118, 113, 53, 113, 121, 90, 123, 120, 93, 63, 63, 67, 75, 49, 55, 42, 61, 34, 67, 106, 55, 119, 57, 93, 39, 100, 80, 124, 126, 88, 36, 33, 99, 87, 98, 61, 39, 120, 128, 200, 169, 216, 223, 162, 204, 194, 126, 250, 1, 5, 13, 49, 220, 44, 62, 84, 83, 40, 71, 93, 19, 210, 149, 62, 98, 29, 43, 82, 51, 45, 62, 119, 49, 64, 89, 43, 106, 122, 89, 119, 126, 88, 86, 106, 53, 41, 126, 121, 37, 58, 61, 95, 114, 78, 120, 120, 128, 191, 233, 197, 144, 246, 203, 174, 132, 1, 250, 1, 10, 13, 163, 179, 162, 62, 29, 180, 44, 90, 63, 84, 83, 40, 102, 93, 209, 104, 252, 62, 98, 72, 43, 69, 37, 80, 103, 108, 63, 91, 68, 76, 57, 38, 41, 94, 98, 99, 79, 51, 121, 75, 60, 48, 77, 120, 110, 94, 36, 97, 70, 86, 108, 120, 45, 42, 107, 89, 83, 38, 35, 72, 104, 66, 84, 87, 32, 55, 85, 51, 106, 53, 82, 42, 118, 65, 50, 121, 118, 43, 96, 40, 103, 92, 53, 109, 95, 64, 120, 125, 113, 41, 48, 73, 120, 128, 184, 208, 222, 242, 192, 131, 245, 149, 1, 250, 1, 5, 13, 73, 141, 5, 63, 84, 83, 40, 88, 93, 119, 250, 111, 63, 98, 40, 91, 116, 119, 87, 41, 111, 118, 49, 35, 97, 33, 107, 119, 113, 97, 71, 68, 121, 95, 43, 45, 102, 118, 95, 61, 86, 65, 97, 36, 40, 121, 68, 93, 56, 62, 34, 50, 41, 126, 119, 120, 128, 184, 161, 205, 239, 200, 139, 234, 93, 250, 1, 5, 13, 198, 104, 35, 61, 84, 83, 40, 98, 93, 137, 33, 124, 63, 98, 20, 62, 45, 38, 32, 71, 103, 36, 54, 113, 86, 107, 115, 124, 56, 57, 82, 78, 53, 44, 121, 120, 128, 136, 130, 240, 187, 201, 144, 128, 223, 1, 250, 1, 5, 13, 211, 247, 33, 63, 84, 83, 40, 17, 93, 152, 101, 42, 63, 98, 60, 82, 94, 52, 59, 121, 103, 69, 41, 123, 120, 64, 48, 80, 64, 57, 60, 35, 99, 82, 39, 75, 73, 36, 121, 110, 76, 72, 80, 118, 110, 55, 97, 32, 70, 76, 103, 82, 104, 59, 42, 49, 98, 119, 36, 119, 41, 33, 46, 122, 111, 117, 34, 41, 38, 51, 41, 90, 58, 75, 77, 120, 128, 148, 149, 144, 197, 145, 169, 129, 169, 1, 250, 1, 5, 13, 243, 183, 98, 63, 200, 4, 24, 84, 83, 40, 16, 93, 146, 149, 47, 63, 98, 38, 93, 48, 42, 114, 81, 104, 58, 72, 72, 116, 103, 80, 126, 33, 101, 74, 58, 84, 38, 120, 52, 88, 120, 50, 67, 44, 56, 60, 108, 106, 60, 80, 107, 66, 57, 120, 118, 58, 120, 128, 140, 251, 162, 190, 225, 216, 151, 55, 250, 1, 5, 13, 188, 244, 156, 61, 84, 83, 40, 79, 93, 191, 96, 27, 63, 98, 54, 96, 48, 75, 87, 90, 57, 101, 35, 35, 63, 43, 51, 77, 37, 54, 118, 78, 68, 80, 124, 90, 92, 88, 55, 100, 92, 103, 107, 82, 32, 44, 126, 60, 89, 118, 104, 102, 107, 81, 126, 86, 105, 102, 123, 68, 87, 116, 51, 98, 32, 106, 35, 86, 94, 120, 128, 144, 170, 170, 147, 138, 209, 210, 126, 250, 1, 5, 13, 173, 176, 24, 61, 84, 83, 40, 73, 93, 63, 188, 85, 62, 98, 51, 113, 125, 80, 120, 80, 35, 50, 44, 117, 114, 45, 76, 48, 98, 114, 81, 69, 112, 116, 91, 113, 45, 103, 83, 41, 82, 52, 40, 72, 93, 90, 115, 49, 82, 121, 83, 77, 92, 57, 99, 105, 56, 97, 33, 38, 53, 110, 40, 47, 36, 56, 120, 128, 204, 194, 193, 211, 219, 148, 140, 19, 250, 1, 5, 13, 61, 75, 20, 62, 84, 83, 40, 120, 93, 100, 182, 178, 62, 98, 52, 100, 54, 124, 111, 124, 109, 41, 99, 56, 56, 57, 59, 93, 104, 63, 36, 104, 87, 49, 113, 89, 75, 101, 77, 114, 99, 44, 120, 67, 69, 76, 101, 54, 49, 52, 61, 79, 108, 59, 116, 95, 83, 72, 104, 107, 121, 48, 63, 111, 32, 79, 85, 120, 128, 224, 167, 225, 157, 238, 189, 138, 123, 250, 1, 5, 13, 151, 52, 178, 61, 84, 83, 40, 94, 93, 252, 74, 136, 62, 98, 48, 79, 79, 123, 57, 97, 48, 64, 114, 106, 83, 36, 76, 83, 34, 83, 123, 59, 59, 50, 37, 34, 123, 96, 120, 82, 108, 41, 66, 116, 118, 105, 46, 73, 122, 108, 126, 111, 33, 51, 78, 51, 85, 125, 56, 116, 98, 106, 108, 120, 128, 176, 144, 199, 215, 152, 131, 185, 59, 250, 1, 5, 13, 232, 226, 8, 63, 84, 83, 40, 33, 93, 100, 204, 42, 63, 98, 47, 116, 96, 54, 83, 110, 35, 101, 115, 39, 124, 124, 114, 105, 117, 35, 87, 53, 84, 43, 58, 40, 99, 113, 76, 125, 72, 35, 110, 33, 59, 117, 66, 93, 41, 56, 103, 99, 57, 48, 108, 58, 62, 70, 54, 87, 42, 78, 120, 128, 192, 255, 251, 159, 232, 251, 223, 255, 1, 250, 1, 5, 13, 194, 245, 43, 63, 84, 83, 40, 25, 93, 83, 236, 19, 63, 98, 61, 118, 70, 126, 86, 49, 110, 105, 84, 69, 126, 118, 113, 106, 38, 90, 53, 95, 92, 58, 114, 123, 68, 62, 126, 105, 60, 91, 115, 114, 121, 35, 46, 109, 99, 126, 122, 94, 82, 38, 120, 121, 99, 105, 108, 67, 75, 90, 47, 124, 116, 109, 66, 69, 63, 90, 81, 40, 126, 108, 116, 50, 120, 128, 160, 198, 156, 152, 237, 177, 228, 114, 250, 1, 5, 13, 47, 28, 48, 63, 84, 83, 40, 57, 93, 57, 219, 116, 63, 98, 25, 103, 36, 39, 38, 94, 85, 45, 85, 64, 120, 56, 89, 81, 90, 61, 96, 75, 118, 124, 43, 96, 104, 78, 41, 76, 120, 128, 160, 166, 143, 239, 211, 177, 250, 110, 250, 1, 10, 13, 204, 85, 41, 63, 29, 85, 105, 57, 63, 84, 83, 40, 23, 93, 229, 26, 61, 63, 98, 63, 36, 33, 62, 112, 91, 71, 83, 40, 61, 62, 96, 107, 37, 69, 66, 119, 85, 67, 78, 51, 101, 126, 99, 63, 58, 125, 85, 124, 88, 107, 117, 71, 67, 89, 116, 54, 58, 95, 126, 117, 44, 67, 88, 93, 73, 115, 98, 40, 102, 84, 60, 59, 54, 124, 32, 36, 61, 126, 86, 92, 112, 85, 79, 120, 128, 240, 166, 180, 232, 228, 182, 162, 66, 250, 1, 5, 13, 233, 105, 216, 62, 84, 83, 40, 34, 93, 16, 80, 215, 62, 98, 84, 75, 79, 43, 92, 116, 68, 87, 38, 66, 69, 37, 116, 69, 59, 76, 54, 36, 79, 90, 48, 70, 88, 111, 120, 59, 41, 65, 36, 85, 115, 39, 53, 48, 75, 55, 87, 90, 119, 70, 117, 93, 117, 92, 94, 55, 41, 48, 65, 68, 63, 74, 33, 108, 40, 33, 113, 95, 50, 64, 107, 34, 82, 80, 78, 61, 111, 100, 121, 35, 115, 91, 43, 40, 100, 82, 79, 122, 49, 96, 50, 120, 32, 95, 54, 120, 128, 240, 217, 224, 246, 128, 207, 133, 182, 1, 250, 1, 5, 13, 113, 112, 128, 61, 84, 83, 40, 53, 93, 166, 138, 161, 61, 98, 25, 73, 69, 119, 71, 86, 90, 115, 42, 69, 46, 64, 71, 67, 53, 61, 79, 99, 63, 120, 40, 85, 81, 117, 77, 81, 120, 128, 146, 232, 170, 162, 144, 193, 214, 146, 1, 250, 1, 5, 13, 156, 64, 91, 63, 84, 83, 40, 2, 93, 81, 96, 93, 63, 98, 52, 57, 38, 55, 70, 93, 79, 93, 123, 51, 83, 76, 111, 71, 41, 108, 111, 56, 110, 98, 97, 48, 82, 40, 44, 64, 81, 119, 78, 73, 117, 72, 104, 113, 55, 44, 39, 40, 32, 100, 101, 95, 83, 79, 106, 76, 55, 45, 71, 40, 92, 56, 62, 120, 128, 172, 241, 227, 182, 222, 138, 159, 20, 250, 1, 5, 13, 22, 66, 169, 62, 84, 83, 40, 88, 93, 65, 195, 60, 63, 98, 51, 124, 43, 38, 44, 87, 46, 81, 61, 42, 98, 125, 47, 124, 101, 103, 56, 41, 124, 33, 92, 34, 61, 95, 40, 67, 79, 69, 107, 93, 42, 90, 81, 84, 69, 42, 124, 121, 88, 45, 80, 33, 50, 95, 104, 56, 124, 74, 66, 116, 32, 52, 120, 128, 244, 151, 227, 130, 166, 191, 153, 150, 1, 250, 1, 10, 13, 229, 142, 158, 62, 29, 250, 171, 119, 61, 84, 83, 40, 89, 93, 232, 129, 42, 63, 98, 49, 74, 125, 103, 39, 104, 100, 95, 32, 40, 75, 90, 86, 91, 106, 61, 79, 111, 80, 90, 111, 92, 118, 110, 69, 37, 34, 118, 92, 116, 73, 52, 79, 97, 73, 81, 123, 112, 38, 103, 59, 81, 94, 95, 108, 66, 114, 102, 42, 97, 120, 128, 168, 191, 188, 139, 207, 250, 227, 219, 1, 250, 1, 5, 13, 238, 148, 174, 62, 84, 83, 40, 101, 93, 162, 109, 225, 62, 98, 47, 114, 34, 83, 46, 66, 34, 101, 109, 34, 42, 94, 55, 43, 116, 49, 56, 65, 94, 104, 104, 63, 62, 124, 55, 34, 34, 49, 59, 107, 122, 48, 41, 71, 37, 110, 71, 124, 108, 77, 35, 33, 76, 79, 84, 32, 85, 55, 120, 128, 232, 240, 242, 131, 193, 134, 151, 125, 250, 1, 5, 13, 66, 43, 16, 63, 84, 83, 40, 108, 93, 10, 218, 170, 62, 98, 64, 37, 86, 35, 42, 84, 36, 60, 44, 63, 112, 74, 34, 39, 121, 85, 110, 37, 38, 104, 59, 84, 48, 101, 102, 114, 109, 72, 54, 76, 105, 51, 100, 121, 90, 43, 81, 67, 121, 57, 67, 96, 96, 46, 50, 86, 73, 71, 89, 74, 101, 50, 118, 107, 85, 106, 115, 112, 60, 55, 101, 90, 37, 94, 84, 120, 128, 176, 205, 191, 179, 237, 234, 252, 81, 250, 1, 5, 13, 234, 57, 56, 63, 84, 83, 40, 10, 93, 97, 215, 235, 62, 98, 57, 110, 35, 74, 42, 107, 69, 89, 114, 34, 82, 47, 72, 69, 110, 106, 101, 87, 60, 119, 67, 110, 54, 96, 39, 98, 83, 103, 90, 33, 88, 84, 113, 65, 123, 106, 71, 58, 39, 42, 70, 122, 119, 113, 61, 44, 109, 63, 107, 57, 119, 124, 64, 107, 99, 91, 88, 66, 120, 128, 172, 130, 252, 133, 238, 146, 224, 175, 1, 250, 1, 10, 13, 215, 12, 210, 62, 29, 57, 73, 129, 62, 84, 83, 40, 81, 93, 209, 39, 126, 63, 98, 52, 112, 72, 124, 61, 38, 73, 35, 67, 75, 80, 49, 81, 72, 118, 67, 66, 121, 116, 52, 123, 64, 40, 91, 52, 37, 93, 63, 50, 36, 118, 95, 113, 104, 123, 38, 72, 64, 110, 103, 116, 103, 116, 76, 75, 46, 57, 58, 99, 52, 126, 72, 81, 120, 128, 206, 149, 143, 163, 242, 172, 249, 5, 250, 1, 7, 13, 131, 130, 46, 63, 40, 1, 200, 4, 95, 84, 83, 40, 102, 93, 4, 178, 65, 63, 98, 68, 55, 71, 42, 112, 63, 83, 112, 63, 104, 75, 112, 121, 34, 43, 44, 62, 51, 74, 91, 47, 38, 107, 67, 90, 124, 37, 77, 45, 109, 39, 61, 61, 91, 87, 86, 63, 106, 118, 85, 119, 90, 110, 79, 109, 114, 57, 124, 60, 68, 100, 77, 50, 44, 93, 97, 75, 36, 78, 114, 58, 38, 98, 80, 97, 45, 82, 62, 74, 120, 128, 184, 183, 135, 211, 200, 187, 187, 70, 250, 1, 5, 13, 57, 32, 77, 63, 84, 83, 40, 68, 93, 23, 62, 153, 62, 98, 64, 116, 98, 83, 54, 59, 84, 103, 98, 39, 48, 103, 41, 89, 43, 48, 124, 116, 43, 59, 59, 35, 59, 113, 119, 62, 109, 95, 63, 122, 82, 103, 87, 48, 48, 61, 73, 42, 74, 47, 79, 102, 48, 50, 116, 122, 70, 40, 34, 65, 64, 84, 72, 80, 55, 57, 88, 111, 91, 119, 77, 115, 71, 103, 84, 120, 128, 164, 135, 216, 230, 159, 186, 192, 181, 1, 250, 1, 5, 13, 46, 161, 42, 62, 84, 83, 40, 117, 93, 41, 51, 218, 62, 98, 43, 108, 102, 114, 73, 123, 107, 83, 113, 41, 123, 123, 118, 101, 93, 124, 89, 125, 63, 39, 120, 118, 100, 88, 77, 81, 97, 90, 63, 72, 93, 76, 106, 77, 94, 53, 90, 76, 42, 76, 100, 98, 70, 79, 120, 128, 208, 147, 249, 253, 143, 157, 201, 239, 1, 250, 1, 10, 13, 104, 128, 40, 63, 29, 242, 68, 118, 60, 84, 83, 40, 94, 93, 234, 87, 110, 62, 98, 52, 74, 45, 86, 40, 40, 126, 80, 40, 45, 68, 118, 57, 48, 52, 73, 74, 78, 49, 72, 38, 71, 65, 44, 114, 114, 65, 53, 80, 53, 101, 110, 80, 121, 68, 116, 59, 39, 68, 97, 78, 45, 44, 77, 39, 50, 50, 84, 77, 123, 36, 67, 77, 120, 128, 136, 238, 168, 191, 199, 240, 198, 75, 250, 1, 5, 13, 230, 153, 43, 63, 84, 83, 40, 103, 93, 124, 7, 175, 61, 98, 110, 32, 98, 52, 102, 104, 32, 114, 71, 85, 70, 62, 106, 63, 46, 67, 41, 78, 121, 120, 58, 115, 36, 95, 95, 108, 103, 83, 48, 65, 65, 119, 58, 86, 107, 59, 67, 48, 122, 100, 44, 57, 38, 81, 107, 114, 104, 45, 109, 96, 58, 125, 93, 102, 82, 51, 122, 34, 83, 120, 33, 76, 97, 37, 52, 77, 36, 52, 82, 114, 126, 120, 83, 52, 107, 33, 109, 82, 115, 108, 36, 89, 100, 79, 39, 67, 58, 82, 36, 88, 63, 65, 91, 33, 99, 95, 87, 32, 60, 61, 110, 84, 89, 122, 96, 64, 73, 73, 122, 81, 69, 120, 128, 160, 242, 208, 150, 240, 145, 135, 181, 1, 250, 1, 5, 13, 21, 42, 22, 62, 84, 83, 40, 94, 93, 149, 246, 99, 63, 98, 64, 70, 102, 50, 125, 112, 51, 80, 47, 121, 82, 93, 60, 81, 79, 43, 73, 108, 54, 86, 124, 78, 126, 105, 109, 101, 120, 111, 87, 82, 50, 119, 51, 116, 44, 61, 119, 69, 33, 74, 41, 61, 68, 95, 72, 35, 35, 118, 120, 110, 39, 87, 49, 86, 104, 69, 70, 124, 67, 56, 119, 66, 119, 92, 102, 120, 128, 208, 237, 219, 169, 159, 237, 222, 205, 1, 250, 1, 10, 13, 3, 122, 227, 62, 29, 110, 145, 214, 62, 84, 83, 40, 50, 93, 70, 216, 71, 62, 98, 37, 50, 36, 106, 106, 76, 94, 41, 63, 65, 106, 97, 33, 118, 104, 74, 89, 102, 91, 43, 101, 117, 122, 33, 104, 82, 102, 68, 103, 119, 109, 87, 90, 80, 102, 91, 35, 107, 120, 128, 220, 237, 227, 168, 222, 237, 158, 51, 250, 1, 10, 13, 151, 4, 218, 61, 29, 202, 242, 219, 61, 84, 83, 40, 37, 93, 84, 149, 148, 61, 98, 36, 90, 87, 85, 117, 75, 47, 50, 45, 114, 109, 60, 95, 60, 55, 34, 34, 55, 101, 57, 65, 71, 82, 50, 39, 79, 48, 45, 70, 109, 64, 81, 32, 72, 110, 64, 73, 120, 128, 168, 135, 161, 163, 199, 186, 136, 154, 1, 250, 1, 5, 13, 215, 229, 34, 63, 84, 83, 40, 36, 93, 62, 117, 104, 62, 98, 30, 85, 106, 122, 105, 62, 112, 73, 68, 33, 105, 45, 67, 111, 121, 94, 39, 68, 78, 69, 58, 34, 106, 62, 81, 60, 59, 54, 76, 117, 87, 120, 128, 232, 245, 147, 157, 213, 174, 159, 233, 1, 250, 1, 5, 13, 171, 21, 29, 63, 84, 83, 40, 56, 93, 148, 21, 53, 61, 98, 56, 107, 92, 87, 72, 104, 94, 101, 103, 68, 35, 51, 45, 48, 78, 48, 56, 37, 100, 55, 32, 51, 105, 75, 72, 77, 34, 89, 124, 77, 73, 122, 82, 120, 107, 46, 33, 79, 122, 100, 101, 84, 57, 70, 59, 62, 46, 43, 103, 60, 93, 81, 41, 67, 73, 111, 33, 120, 128, 210, 245, 251, 162, 142, 173, 223, 151, 1, 250, 1, 5, 13, 116, 70, 30, 62, 84, 83, 40, 120, 93, 144, 204, 59, 63, 98, 40, 36, 104, 58, 121, 40, 95, 51, 68, 64, 47, 103, 41, 126, 80, 75, 120, 67, 47, 42, 62, 118, 113, 95, 110, 118, 112, 47, 79, 122, 44, 110, 64, 32, 126, 96, 106, 126, 75, 50, 93, 120, 128, 240, 212, 208, 253, 155, 167, 133, 121, 250, 1, 5, 13, 68, 190, 60, 63, 84, 83, 40, 52, 93, 241, 183, 16, 62, 98, 28, 117, 72, 42, 113, 125, 118, 93, 33, 35, 91, 110, 50, 40, 74, 35, 54, 80, 99, 72, 51, 63, 71, 41, 32, 110, 95, 121, 119, 120, 128, 240, 198, 196, 143, 153, 183, 164, 252, 1, 250, 1, 12, 13, 6, 6, 237, 62, 29, 38, 129, 193, 62, 56, 0, 200, 4, 56, 84, 83, 40, 67, 93, 71, 119, 110, 63, 98, 47, 78, 102, 60, 80, 35, 78, 109, 60, 67, 47, 78, 97, 83, 71, 122, 45, 54, 61, 51, 109, 77, 62, 42, 35, 62, 124, 101, 36, 87, 55, 94, 103, 85, 81, 83, 79, 51, 51, 69, 100, 81, 42, 101, 111, 63, 124, 69, 120, 128, 148, 224, 248, 135, 162, 129, 198, 191, 1, 250, 1, 5, 13, 14, 110, 129, 60, 84, 83, 40, 40, 93, 57, 153, 19, 62, 98, 42, 113, 54, 100, 74, 48, 91, 56, 50, 38, 103, 104, 100, 43, 80, 102, 43, 34, 115, 74, 120, 35, 118, 77, 59, 67, 88, 58, 98, 64, 86, 54, 34, 56, 42, 107, 80, 112, 38, 67, 115, 122, 32, 120, 128, 156, 157, 142, 229, 214, 233, 241, 168, 1, 250, 1, 10, 13, 85, 113, 119, 63, 29, 236, 55, 65, 63, 84, 83, 40, 49, 93, 248, 121, 26, 63, 98, 36, 63, 88, 112, 67, 90, 85, 68, 42, 122, 103, 72, 39, 86, 65, 85, 112, 79, 81, 101, 76, 33, 99, 54, 58, 122, 80, 86, 125, 34, 88, 81, 83, 125, 126, 121, 42, 120, 128, 252, 222, 236, 135, 228, 247, 229, 190, 1, 250, 1, 10, 13, 220, 160, 70, 62, 29, 147, 138, 29, 63, 84, 83, 40, 59, 93, 9, 38, 95, 63, 98, 67, 126, 112, 103, 72, 126, 107, 81, 68, 46, 109, 74, 34, 119, 87, 90, 66, 86, 72, 42, 126, 70, 40, 65, 54, 116, 40, 87, 70, 74, 66, 61, 118, 57, 88, 34, 113, 77, 112, 122, 100, 36, 88, 114, 105, 38, 81, 37, 70, 62, 103, 118, 105, 80, 76, 76, 118, 79, 80, 83, 117, 51, 42, 121, 107, 80, 83, 103, 120, 128, 156, 241, 166, 165, 231, 137, 183, 170, 1, 250, 1, 10, 13, 84, 169, 16, 63, 29, 215, 31, 66, 63, 84, 83, 40, 111, 93, 70, 185, 58, 63, 98, 62, 76, 69, 121, 108, 52, 86, 47, 67, 34, 49, 40, 98, 74, 83, 70, 107, 43, 42, 66, 123, 61, 37, 80, 121, 94, 39, 57, 82, 104, 101, 111, 85, 114, 49, 60, 42, 82, 95, 98, 119, 65, 48, 114, 33, 34, 55, 64, 124, 45, 123, 51, 75, 69, 118, 72, 71, 115, 32, 46, 45, 61, 91, 120, 128, 232, 128, 218, 153, 178, 134, 208, 205, 1, 250, 1, 5, 13, 218, 176, 154, 62, 84, 83, 40, 44, 93, 249, 93, 5, 63, 98, 54, 110, 56, 54, 59, 56, 75, 71, 74, 90, 45, 49, 78, 118, 71, 101, 59, 69, 108, 81, 68, 48, 123, 104, 116, 54, 82, 81, 85, 89, 100, 85, 86, 95, 79, 71, 39, 101, 112, 98, 103, 36, 121, 59, 59, 54, 68, 40, 101, 70, 33, 54, 108, 106, 123, 120, 128, 160, 212, 193, 156, 141, 162, 141, 45, 250, 1, 10, 13, 68, 251, 93, 63, 29, 85, 57, 0, 63, 84, 83, 40, 44, 93, 5, 150, 96, 61, 98, 56, 101, 120, 112, 111, 117, 86, 90, 110, 70, 126, 93, 84, 83, 42, 104, 64, 53, 95, 77, 94, 112, 73, 106, 46, 88, 78, 104, 106, 99, 46, 84, 87, 68, 107, 123, 110, 50, 42, 69, 99, 90, 85, 96, 102, 104, 75, 97, 97, 34, 91, 43, 51, 34, 97, 51, 59, 120, 128, 196, 200, 176, 162, 163, 196, 132, 147, 1, 250, 1, 5, 13, 87, 157, 50, 63, 84, 83, 40, 31, 93, 198, 223, 211, 62, 98, 72, 109, 110, 42, 55, 74, 37, 47, 103, 45, 121, 46, 43, 57, 104, 35, 58, 103, 36, 69, 44, 107, 38, 104, 40, 35, 64, 85, 97, 87, 95, 96, 78, 113, 125, 117, 107, 74, 73, 59, 98, 59, 120, 83, 39, 76, 126, 120, 56, 94, 119, 83, 41, 61, 42, 90, 102, 37, 34, 51, 41, 79, 77, 47, 77, 57, 94, 56, 59, 114, 55, 111, 62, 120, 128, 152, 156, 219, 212, 187, 225, 217, 96, 250, 1, 10, 13, 235, 146, 49, 63, 29, 153, 125, 86, 63, 84, 83, 40, 109, 93, 13, 113, 6, 63, 98, 45, 96, 90, 36, 71, 60, 35, 95, 44, 86, 49, 103, 66, 47, 101, 72, 53, 50, 50, 109, 105, 38, 109, 109, 102, 93, 69, 71, 40, 52, 65, 90, 58, 103, 52, 68, 71, 47, 97, 51, 73, 79, 64, 97, 76, 80, 120, 128, 216, 219, 220, 142, 211, 221, 229, 245, 1, 250, 1, 10, 13, 182, 150, 52, 63, 29, 238, 173, 2, 63, 84, 83, 40, 52, 93, 75, 115, 195, 61, 98, 46, 85, 79, 33, 40, 75, 113, 107, 60, 104, 118, 91, 86, 118, 53, 86, 76, 90, 121, 65, 32, 37, 80, 126, 68, 57, 101, 44, 65, 53, 100, 97, 117, 96, 43, 106, 42, 56, 94, 104, 81, 90, 114, 119, 59, 109, 119, 120, 128, 136, 188, 134, 242, 169, 224, 179, 55, 250, 1, 10, 13, 160, 160, 240, 62, 29, 237, 27, 100, 63, 84, 83, 40, 4, 93, 222, 53, 156, 62, 98, 51, 104, 46, 70, 35, 37, 79, 92, 110, 101, 101, 74, 39, 35, 53, 100, 117, 107, 73, 75, 52, 122, 49, 111, 68, 50, 87, 98, 85, 64, 60, 94, 75, 50, 72, 119, 102, 57, 40, 101, 89, 90, 111, 35, 106, 48, 106, 115, 38, 41, 34, 92, 120, 192, 165, 154, 137, 243, 172, 210, 201, 5, 250, 1, 10, 13, 49, 59, 219, 62, 29, 205, 88, 82, 63, 84, 83, 40, 44, 93, 29, 223, 18, 63, 98, 35, 62, 34, 112, 76, 107, 38, 77, 72, 39, 125, 115, 90, 60, 124, 92, 99, 98, 113, 88, 43, 46, 37, 51, 70, 99, 92, 76, 62, 95, 90, 34, 67, 38, 65, 72, 120, 128, 236, 170, 194, 201, 225, 214, 146, 32, 250, 1, 5, 13, 226, 239, 117, 62, 84, 83, 40, 34, 93, 61, 120, 79, 63, 98, 44, 83, 65, 89, 98, 50, 118, 56, 104, 43, 69, 120, 63, 86, 53, 53, 71, 57, 109, 73, 103, 47, 89, 47, 104, 75, 122, 80, 83, 121, 83, 68, 76, 73, 36, 36, 104, 84, 65, 33, 79, 75, 115, 64, 119, 120, 128, 128, 191, 226, 203, 159, 248, 147, 222, 1, 250, 1, 5, 13, 125, 142, 145, 62, 84, 83, 40, 57, 93, 2, 103, 20, 62, 98, 61, 112, 120, 47, 73, 108, 80, 93, 121, 50, 111, 54, 54, 69, 99, 109, 87, 32, 75, 117, 82, 48, 75, 114, 118, 107, 121, 60, 58, 56, 54, 34, 48, 79, 66, 98, 33, 68, 122, 95, 119, 69, 42, 86, 99, 43, 106, 41, 102, 37, 104, 118, 58, 68, 119, 124, 69, 37, 56, 92, 113, 51, 120, 128, 140, 133, 247, 133, 211, 168, 184, 175, 1, 250, 1, 5, 13, 155, 41, 46, 63, 84, 83, 40, 120, 93, 239, 180, 79, 63, 98, 44, 38, 102, 34, 33, 108, 50, 37, 107, 125, 45, 38, 115, 47, 107, 33, 111, 85, 53, 79, 63, 103, 107, 86, 69, 61, 122, 44, 62, 108, 99, 33, 72, 91, 117, 36, 35, 39, 101, 56, 85, 113, 77, 69, 106, 120, 128, 136, 253, 183, 190, 207, 232, 191, 243, 1, 250, 1, 5, 13, 7, 33, 2, 63, 84, 83, 40, 113, 93, 68, 241, 236, 62, 98, 60, 91, 33, 93, 46, 49, 91, 37, 57, 47, 91, 98, 112, 38, 102, 125, 57, 43, 92, 56, 57, 102, 124, 104, 110, 123, 120, 76, 57, 69, 107, 79, 108, 38, 95, 97, 107, 37, 114, 55, 32, 111, 106, 115, 74, 34, 71, 79, 43, 79, 43, 94, 56, 56, 91, 100, 93, 56, 109, 49, 55, 120, 128, 212, 208, 164, 186, 154, 133, 165, 20, 250, 1, 10, 13, 52, 254, 73, 63, 29, 168, 224, 94, 63, 84, 83, 40, 47, 93, 135, 218, 6, 62, 98, 60, 117, 106, 69, 36, 50, 52, 55, 69, 55, 73, 123, 41, 61, 107, 84, 73, 65, 104, 58, 44, 54, 84, 73, 121, 35, 82, 55, 97, 32, 112, 36, 118, 79, 62, 44, 91, 41, 39, 61, 118, 71, 114, 32, 50, 104, 84, 122, 34, 91, 109, 108, 34, 88, 55, 117, 65, 64, 75, 32, 95, 120, 128, 160, 185, 189, 143, 231, 201, 235, 251, 1, 250, 1, 10, 13, 171, 239, 14, 63, 29, 83, 154, 200, 62, 84, 83, 40, 50, 93, 240, 51, 196, 62, 98, 36, 36, 88, 125, 95, 119, 63, 58, 75, 66, 99, 66, 83, 55, 49, 78, 86, 53, 38, 50, 36, 34, 62, 55, 72, 106, 59, 93, 38, 93, 121, 113, 77, 89, 108, 99, 122, 120, 128, 224, 238, 148, 171, 220, 245, 166, 123, 250, 1, 10, 13, 171, 234, 181, 62, 29, 20, 165, 51, 63, 84, 83, 40, 60, 93, 187, 91, 7, 63, 98, 93, 85, 53, 82, 82, 108, 40, 57, 81, 40, 102, 78, 51, 65, 65, 101, 65, 85, 115, 92, 96, 51, 109, 72, 113, 116, 121, 74, 77, 82, 90, 114, 66, 99, 81, 76, 40, 99, 116, 124, 51, 68, 84, 85, 50, 66, 58, 56, 74, 124, 89, 69, 76, 38, 107, 62, 103, 108, 96, 93, 114, 93, 107, 125, 76, 115, 44, 78, 110, 116, 92, 92, 96, 118, 73, 60, 93, 56, 53, 79, 90, 96, 126, 79, 120, 52, 69, 60, 118, 50, 99, 59, 35, 54, 120, 128, 142, 251, 198, 145, 241, 216, 183, 15, 250, 1, 5, 13, 184, 176, 13, 63, 84, 83, 40, 74, 93, 247, 82, 17, 63, 98, 33, 40, 62, 53, 106, 72, 85, 63, 123, 99, 85, 92, 78, 96, 78, 86, 48, 35, 49, 94, 60, 37, 56, 77, 111, 86, 91, 48, 65, 88, 73, 107, 115, 100, 120, 128, 135, 243, 166, 193, 181, 152, 183, 138, 1, 250, 1, 5, 13, 159, 248, 46, 62, 84, 83, 40, 115, 93, 102, 241, 138, 62, 98, 78, 110, 56, 72, 47, 123, 79, 110, 94, 71, 81, 52, 100, 114, 51, 120, 117, 59, 80, 110, 111, 69, 51, 107, 68, 125, 67, 58, 105, 103, 105, 88, 62, 95, 117, 51, 120, 53, 44, 41, 103, 93, 48, 46, 42, 122, 92, 101, 53, 113, 125, 72, 86, 64, 38, 115, 91, 75, 36, 49, 88, 53, 37, 118, 93, 119, 117, 36, 123, 32, 32, 95, 46, 71, 39, 49, 52, 36, 97, 120, 128, 148, 235, 233, 182, 170, 217, 206, 182, 1, 250, 1, 5, 13, 61, 241, 178, 62, 84, 83, 40, 81, 93, 225, 146, 69, 61, 98, 82, 118, 105, 64, 34, 125, 88, 34, 86, 76, 48, 122, 79, 81, 88, 57, 80, 50, 37, 87, 104, 53, 112, 61, 58, 46, 56, 115, 94, 87, 104, 91, 110, 122, 48, 45, 45, 60, 117, 118, 74, 121, 72, 82, 78, 51, 118, 84, 88, 122, 82, 79, 66, 104, 114, 110, 37, 75, 38, 114, 100, 100, 66, 126, 98, 84, 43, 84, 65, 74, 43, 52, 59, 45, 44, 110, 107, 62, 109, 39, 55, 99, 59, 120, 128, 184, 250, 225, 180, 216, 211, 143, 91, 250, 1, 5, 13, 88, 176, 54, 61, 84, 83, 40, 34, 93, 182, 148, 129, 62, 98, 36, 38, 39, 65, 40, 96, 54, 34, 50, 101, 86, 72, 110, 120, 39, 66, 51, 45, 110, 62, 51, 53, 91, 36, 34, 102, 92, 126, 91, 32, 72, 93, 122, 73, 60, 37, 76, 120, 128, 192, 228, 245, 159, 137, 164, 174, 255, 1, 250, 1, 5, 13, 53, 14, 186, 62, 84, 83, 40, 56, 93, 137, 4, 122, 63, 98, 34, 56, 121, 70, 55, 67, 78, 115, 126, 115, 80, 45, 115, 100, 38, 34, 73, 35, 63, 64, 36, 55, 70, 49, 61, 120, 76, 69, 92, 33, 117, 51, 106, 68, 64, 120, 128, 152, 200, 140, 160, 192, 193, 228, 120, 250, 1, 10, 13, 38, 112, 142, 62, 29, 174, 178, 102, 62, 200, 4, 100, 84, 83, 40, 83, 93, 46, 241, 131, 62, 98, 44, 103, 126, 102, 79, 58, 105, 54, 66, 58, 90, 72, 95, 34, 69, 101, 113, 104, 41, 62, 117, 40, 55, 124, 125, 60, 66, 79, 67, 43, 103, 52, 55, 95, 39, 59, 55, 95, 97, 34, 46, 54, 35, 65, 70, 120, 128, 236, 219, 198, 170, 252, 222, 181, 60, 250, 1, 5, 13, 78, 139, 10, 63, 84, 83, 40, 96, 93, 223, 24, 125, 63, 98, 47, 90, 40, 81, 44, 76, 103, 48, 80, 33, 103, 51, 119, 57, 113, 54, 81, 70, 49, 126, 121, 42, 77, 49, 38, 39, 47, 94, 36, 116, 86, 81, 104, 89, 80, 104, 35, 53, 40, 105, 118, 118, 106, 54, 118, 78, 41, 115, 120, 128, 172, 214, 135, 214, 208, 178, 189, 176, 1, 250, 1, 10, 13, 120, 43, 76, 63, 29, 233, 240, 84, 63, 84, 83, 40, 126, 93, 204, 118, 146, 62, 98, 66, 83, 109, 115, 44, 117, 74, 37, 61, 41, 43, 90, 73, 54, 74, 61, 104, 41, 51, 60, 62, 70, 39, 34, 63, 54, 58, 87, 124, 58, 58, 56, 37, 87, 54, 52, 106, 91, 91, 44, 106, 35, 76, 109, 107, 47, 108, 96, 36, 107, 43, 58, 88, 82, 96, 115, 76, 106, 84, 116, 91, 114, 39, 34, 109, 114, 84, 120, 128, 160, 190, 170, 248, 129, 242, 211, 109, 250, 1, 5, 13, 126, 175, 30, 59, 84, 83, 40, 29, 93, 213, 253, 6, 63, 98, 40, 45, 77, 38, 80, 59, 121, 57, 54, 47, 73, 88, 83, 49, 47, 32, 94, 81, 118, 65, 102, 126, 39, 101, 80, 118, 122, 74, 126, 120, 89, 122, 96, 109, 56, 125, 108, 81, 34, 68, 121, 120, 128, 254, 240, 158, 195, 241, 135, 247, 153, 1, 250, 1, 5, 13, 31, 235, 13, 63, 84, 83, 40, 49, 93, 235, 96, 231, 62, 98, 62, 34, 63, 117, 113, 109, 51, 35, 122, 93, 78, 82, 37, 102, 85, 89, 64, 78, 57, 61, 84, 78, 119, 101, 119, 49, 50, 44, 79, 81, 71, 83, 74, 97, 59, 77, 87, 36, 87, 48, 100, 86, 126, 34, 62, 101, 119, 38, 123, 71, 36, 74, 120, 55, 111, 123, 41, 88, 125, 96, 90, 38, 82, 120, 128, 220, 163, 148, 133, 219, 157, 162, 55, 250, 1, 5, 13, 17, 243, 112, 62, 84, 83, 40, 119, 93, 82, 187, 177, 61, 98, 44, 67, 75, 39, 33, 59, 117, 40, 87, 124, 78, 117, 70, 49, 57, 44, 48, 39, 77, 123, 89, 50, 113, 62, 67, 125, 37, 118, 85, 93, 36, 86, 107, 68, 93, 84, 90, 115, 70, 103, 83, 112, 95, 113, 76, 120, 128, 252, 228, 173, 231, 219, 167, 238, 26, 250, 1, 5, 13, 198, 154, 73, 62, 84, 83, 40, 102, 93, 66, 33, 209, 62, 98, 60, 78, 117, 74, 122, 57, 64, 116, 80, 44, 99, 34, 54, 126, 82, 120, 120, 119, 42, 34, 82, 99, 81, 59, 96, 101, 71, 104, 82, 32, 113, 48, 107, 56, 79, 38, 103, 89, 90, 81, 36, 103, 35, 77, 48, 67, 80, 84, 61, 101, 120, 83, 41, 48, 57, 97, 124, 90, 105, 53, 112, 120, 128, 184, 204, 152, 217, 183, 227, 196, 201, 1, 250, 1, 5, 13, 87, 139, 185, 62, 84, 83, 40, 64, 93, 20, 42, 140, 62, 98, 23, 82, 54, 125, 78, 75, 49, 62, 60, 87, 124, 106, 96, 35, 43, 60, 52, 114, 74, 107, 38, 61, 39, 90, 120, 128, 208, 193, 230, 239, 239, 140, 180, 254, 1, 250, 1, 10, 13, 214, 184, 79, 63, 29, 163, 81, 201, 61, 84, 83, 40, 17, 93, 75, 132, 85, 63, 98, 78, 69, 95, 76, 69, 82, 51, 92, 45, 82, 38, 112, 84, 89, 55, 80, 50, 78, 33, 120, 78, 76, 33, 125, 43, 85, 73, 123, 75, 90, 126, 96, 66, 36, 78, 117, 119, 80, 69, 45, 110, 77, 46, 96, 108, 88, 55, 76, 38, 86, 71, 79, 107, 47, 93, 66, 68, 97, 64, 110, 41, 55, 49, 81, 83, 68, 78, 80, 42, 64, 87, 97, 41, 114, 42, 33, 61, 63, 48, 120, 128, 240, 253, 195, 161, 132, 239, 159, 68, 250, 1, 5, 13, 28, 218, 165, 62, 84, 83, 40, 122, 93, 204, 87, 102, 63, 98, 24, 116, 51, 78, 115, 51, 69, 44, 81, 53, 47, 85, 36, 86, 60, 92, 44, 71, 42, 101, 65, 100, 125, 101, 70, 120, 152, 191, 161, 150, 173, 249, 139, 118, 250, 1, 12, 13, 176, 202, 73, 61, 29, 128, 128, 33, 63, 56, 0, 84, 83, 40, 6, 93, 143, 174, 3, 63, 98, 64, 109, 79, 44, 64, 60, 62, 36, 80, 59, 42, 125, 110, 65, 81, 82, 110, 82, 100, 96, 50, 103, 72, 88, 90, 48, 117, 76, 39, 123, 46, 104, 39, 76, 100, 65, 38, 119, 54, 32, 61, 40, 118, 109, 91, 66, 117, 91, 51, 115, 41, 81, 118, 66, 112, 104, 69, 118, 81, 48, 69, 113, 123, 83, 44, 120, 128, 196, 232, 187, 162, 148, 196, 222, 44, 250, 1, 5, 13, 156, 65, 105, 63, 84, 83, 40, 44, 93, 1, 118, 35, 63, 98, 26, 48, 76, 117, 60, 100, 67, 42, 112, 89, 123, 55, 58, 57, 56, 51, 113, 92, 113, 99, 91, 123, 123, 46, 70, 38, 89, 120, 128, 156, 246, 159, 193, 218, 177, 255, 58, 250, 1, 5, 13, 65, 138, 242, 61, 84, 83, 40, 46, 93, 83, 148, 47, 63, 98, 51, 58, 75, 84, 126, 35, 70, 50, 52, 50, 126, 101, 118, 107, 121, 57, 116, 44, 88, 104, 97, 79, 78, 51, 101, 96, 51, 61, 79, 54, 42, 119, 126, 77, 119, 97, 107, 100, 58, 52, 107, 94, 72, 94, 99, 116, 36, 48, 51, 44, 48, 76, 120, 128, 168, 226, 201, 175, 159, 146, 206, 110, 250, 1, 5, 13, 109, 27, 184, 62, 84, 83, 40, 86, 93, 127, 153, 64, 62, 98, 30, 106, 56, 110, 61, 111, 40, 98, 124, 39, 39, 102, 73, 115, 55, 77, 47, 113, 67, 123, 34, 39, 111, 78, 111, 92, 35, 42, 66, 38, 93, 120, 192, 251, 152, 187, 171, 221, 199, 217, 7, 250, 1, 10, 13, 86, 10, 35, 63, 29, 162, 180, 74, 63, 84, 83, 40, 92, 93, 196, 133, 103, 63, 98, 61, 83, 117, 123, 68, 99, 123, 74, 86, 92, 46, 89, 60, 122, 94, 32, 90, 78, 70, 94, 42, 122, 104, 125, 96, 107, 125, 64, 118, 73, 34, 41, 93, 45, 65, 121, 56, 117, 126, 56, 37, 92, 56, 113, 97, 35, 102, 46, 98, 37, 35, 85, 54, 44, 90, 122, 105, 119, 59, 87, 100, 90, 120, 128, 176, 141, 131, 236, 132, 235, 152, 68, 250, 1, 5, 13, 249, 110, 12, 62, 84, 83, 40, 77, 93, 97, 6, 81, 61, 98, 51, 122, 46, 89, 99, 102, 99, 79, 45, 88, 77, 97, 118, 59, 92, 37, 111, 92, 112, 70, 75, 114, 81, 82, 69, 48, 64, 89, 70, 82, 74, 41, 43, 55, 92, 39, 87, 83, 126, 62, 62, 38, 40, 82, 45, 57, 113, 91, 93, 82, 115, 125, 120, 128, 232, 144, 234, 218, 179, 134, 209, 214, 1, 250, 1, 5, 13, 207, 117, 60, 63, 84, 83, 40, 18, 93, 176, 234, 63, 62, 98, 41, 73, 91, 52, 83, 70, 42, 40, 90, 46, 67, 85, 95, 94, 84, 76, 60, 93, 82, 39, 69, 105, 125, 69, 43, 61, 99, 123, 115, 94, 75, 72, 69, 41, 74, 93, 123, 62, 74, 119, 52, 124, 120, 128, 144, 234, 170, 212, 238, 208, 214, 61, 250, 1, 5, 13, 12, 21, 192, 62, 84, 83, 40, 97, 93, 31, 228, 52, 63, 98, 55, 50, 124, 40, 37, 86, 64, 45, 94, 103, 71, 74, 53, 40, 53, 97, 45, 52, 122, 98, 121, 48, 86, 51, 118, 80, 124, 50, 90, 114, 71, 60, 90, 91, 71, 43, 102, 114, 109, 39, 43, 58, 101, 64, 35, 50, 101, 53, 52, 53, 38, 103, 81, 96, 109, 82, 120, 128, 128, 180, 243, 185, 133, 160, 155, 207, 1, 250, 1, 5, 13, 45, 144, 67, 63, 84, 83, 40, 22, 93, 26, 207, 12, 63, 98, 23, 89, 45, 82, 106, 63, 43, 111, 89, 95, 42, 121, 58, 69, 115, 86, 94, 73, 53, 48, 99, 105, 102, 125, 120, 128, 148, 130, 168, 197, 158, 145, 192, 49, 250, 1, 10, 13, 35, 250, 77, 63, 29, 160, 28, 41, 63, 200, 4, 98, 84, 83, 40, 118, 93, 28, 59, 78, 63, 98, 48, 115, 79, 124, 97, 57, 77, 124, 103, 122, 32, 119, 65, 44, 85, 42, 59, 106, 66, 92, 41, 47, 41, 69, 88, 76, 105, 113, 47, 46, 125, 96, 64, 118, 107, 106, 89, 123, 87, 44, 70, 88, 118, 78, 53, 56, 66, 92, 49, 120, 128, 224, 249, 207, 230, 137, 206, 255, 111, 250, 1, 5, 13, 26, 169, 196, 61, 84, 83, 40, 2, 93, 193, 93, 154, 62, 98, 64, 44, 111, 93, 106, 42, 68, 53, 78, 91, 109, 89, 124, 63, 86, 74, 63, 105, 79, 62, 51, 53, 54, 79, 55, 90, 48, 64, 42, 45, 95, 59, 37, 123, 67, 51, 39, 46, 32, 79, 87, 66, 92, 106, 106, 60, 80, 116, 96, 118, 61, 71, 67, 105, 109, 38, 117, 63, 69, 48, 121, 36, 43, 65, 122, 120, 128, 128, 141, 212, 148, 135, 232, 160, 68, 250, 1, 5, 13, 246, 15, 13, 63, 84, 83, 40, 0, 93, 100, 66, 117, 63, 98, 47, 67, 67, 49, 105, 32, 101, 111, 88, 74, 100, 121, 41, 58, 94, 50, 111, 55, 118, 58, 45, 60, 60, 102, 103, 111, 84, 82, 54, 59, 110, 55, 103, 80, 120, 61, 82, 44, 93, 67, 35, 124, 77, 74, 89, 74, 38, 94, 120, 128, 176, 213, 188, 136, 140, 171, 229, 49, 250, 1, 10, 13, 172, 223, 107, 63, 29, 180, 237, 4, 63, 84, 83, 40, 89, 93, 202, 17, 30, 63, 98, 43, 58, 113, 94, 38, 92, 72, 120, 74, 50, 88, 60, 91, 76, 50, 88, 65, 65, 95, 99, 89, 83, 54, 47, 109, 113, 44, 61, 104, 116, 46, 62, 105, 43, 92, 77, 93, 58, 55, 117, 98, 99, 119, 112, 120, 128, 128, 140, 232, 196, 143, 224, 192, 49, 250, 1, 5, 13, 255, 193, 54, 62, 84, 83, 40, 104, 93, 199, 151, 12, 62, 98, 71, 56, 77, 61, 35, 56, 109, 41, 39, 36, 97, 111, 51, 79, 43, 48, 85, 36, 58, 82, 79, 111, 99, 121, 38, 42, 105, 32, 117, 90, 69, 106, 93, 34, 126, 36, 59, 86, 43, 38, 122, 34, 84, 73, 122, 73, 35, 70, 87, 83, 66, 107, 42, 93, 62, 60, 83, 82, 54, 119, 77, 109, 51, 75, 93, 118, 50, 49, 79, 38, 115, 125, 120, 128, 168, 172, 233, 222, 194, 226, 202, 246, 1, 250, 1, 5, 13, 144, 4, 86, 62, 84, 83, 40, 73, 93, 249, 7, 246, 62, 98, 25, 58, 58, 126, 92, 38, 67, 71, 65, 56, 88, 96, 126, 99, 98, 80, 103, 63, 50, 87, 45, 109, 40, 106, 36, 55, 120, 128, 152, 210, 210, 237, 188, 145, 149, 237, 1, 250, 1, 5, 13, 88, 38, 103, 63, 84, 83, 40, 66, 93, 33, 101, 40, 63, 98, 64, 67, 114, 117, 38, 111, 33, 56, 83, 89, 112, 42, 69, 112, 51, 37, 53, 50, 77, 107, 84, 44, 93, 101, 91, 73, 94, 49, 79, 121, 68, 52, 76, 116, 98, 115, 100, 106, 120, 114, 96, 56, 51, 100, 64, 77, 103, 124, 116, 101, 109, 37, 67, 41, 124, 82, 100, 45, 57, 91, 49, 111, 104, 88, 53, 120, 128, 200, 164, 143, 218, 182, 164, 250, 208, 1, 250, 1, 5, 13, 36, 169, 36, 63, 84, 83, 40, 63, 93, 229, 66, 28, 62, 98, 51, 63, 63, 74, 56, 90, 43, 60, 119, 120, 68, 46, 97, 97, 60, 105, 43, 63, 112, 66, 119, 48, 46, 87, 80, 60, 96, 112, 78, 90, 79, 99, 110, 55, 109, 85, 69, 67, 107, 104, 125, 95, 89, 107, 103, 43, 121, 78, 82, 126, 76, 116, 120, 128, 144, 140, 210, 188, 250, 224, 144, 229, 1, 250, 1, 10, 13, 110, 236, 142, 62, 29, 26, 213, 20, 63, 84, 83, 40, 124, 93, 46, 151, 51, 62, 98, 116, 102, 120, 123, 120, 58, 108, 61, 72, 96, 62, 74, 114, 102, 67, 103, 83, 39, 68, 55, 85, 65, 111, 68, 66, 50, 61, 79, 45, 89, 119, 84, 95, 111, 68, 94, 73, 110, 111, 99, 114, 60, 66, 39, 108, 79, 91, 107, 90, 100, 65, 99, 117, 63, 71, 109, 118, 84, 88, 101, 123, 61, 48, 110, 103, 104, 106, 35, 65, 100, 61, 99, 54, 96, 68, 57, 126, 103, 87, 113, 86, 80, 116, 71, 55, 51, 94, 63, 71, 85, 102, 116, 54, 42, 102, 85, 43, 83, 62, 35, 100, 87, 74, 116, 70, 93, 77, 53, 122, 46, 110, 46, 124, 102, 47, 75, 71, 120, 128, 208, 140, 137, 156, 236, 228, 200, 224, 1, 250, 1, 5, 13, 56, 149, 18, 63, 84, 83, 40, 69, 93, 252, 247, 227, 61, 98, 59, 74, 90, 106, 124, 71, 77, 44, 120, 110, 45, 74, 73, 83, 45, 125, 38, 126, 32, 89, 101, 72, 68, 57, 102, 88, 119, 78, 121, 58, 45, 67, 124, 105, 120, 57, 123, 94, 118, 126, 48, 65, 59, 43, 32, 68, 100, 72, 88, 48, 69, 72, 102, 123, 109, 96, 38, 65, 36, 68, 120, 128, 140, 131, 191, 237, 249, 152, 248, 63, 250, 1, 5, 13, 140, 213, 123, 63, 84, 83, 40, 23, 93, 128, 90, 39, 63, 98, 40, 96, 105, 77, 94, 89, 114, 33, 71, 39, 33, 73, 68, 45, 56, 56, 66, 115, 78, 117, 104, 116, 100, 91, 32, 123, 55, 51, 89, 89, 82, 78, 49, 47, 92, 74, 54, 117, 37, 110, 101, 120, 128, 200, 154, 197, 162, 187, 212, 169, 148, 1, 250, 1, 5, 13, 100, 253, 121, 63, 84, 83, 40, 43, 93, 54, 77, 58, 63, 98, 78, 82, 73, 83, 108, 41, 97, 79, 32, 40, 72, 104, 123, 46, 77, 98, 66, 95, 70, 108, 84, 81, 55, 53, 80, 109, 34, 75, 109, 95, 47, 89, 118, 68, 117, 76, 81, 99, 69, 80, 118, 34, 78, 41, 101, 114, 77, 39, 72, 66, 76, 38, 103, 47, 107, 51, 58, 52, 35, 126, 39, 54, 97, 63, 119, 109, 112, 87, 56, 32, 48, 93, 57, 117, 117, 81, 35, 46, 78, 120, 128, 248, 235, 146, 170, 219, 223, 150, 209, 1, 250, 1, 5, 13, 58, 89, 169, 62, 84, 83, 40, 119, 93, 50, 115, 226, 60, 98, 42, 74, 51, 41, 113, 103, 87, 97, 50, 61, 96, 69, 73, 96, 64, 47, 48, 119, 34, 117, 110, 72, 50, 109, 107, 112, 57, 57, 48, 43, 101, 69, 95, 44, 51, 54, 43, 110, 123, 41, 126, 85, 108, 120, 128, 136, 189, 181, 249, 177, 232, 171, 110, 250, 1, 10, 13, 197, 157, 120, 63, 29, 58, 75, 94, 63, 84, 83, 40, 59, 93, 28, 225, 94, 62, 98, 41, 49, 114, 125, 86, 89, 73, 43, 89, 56, 69, 60, 32, 77, 62, 81, 38, 87, 58, 101, 60, 76, 42, 35, 65, 122, 120, 117, 56, 90, 63, 112, 120, 68, 37, 40, 60, 45, 46, 107, 54, 33, 120, 128, 216, 144, 219, 137, 201, 133, 217, 205, 1, 250, 1, 5, 13, 101, 116, 122, 63, 84, 83, 40, 92, 93, 196, 227, 4, 63, 98, 109, 122, 91, 95, 36, 102, 58, 97, 44, 48, 103, 39, 111, 91, 90, 96, 82, 114, 125, 119, 84, 67, 91, 71, 54, 52, 119, 72, 78, 79, 59, 113, 44, 60, 111, 126, 61, 54, 52, 115, 37, 46, 107, 51, 61, 33, 75, 81, 83, 42, 99, 45, 91, 37, 49, 45, 62, 51, 73, 110, 109, 113, 51, 92, 115, 116, 121, 82, 107, 90, 67, 60, 94, 42, 114, 69, 87, 71, 42, 53, 103, 70, 115, 67, 107, 45, 54, 38, 43, 97, 95, 41, 107, 68, 37, 50, 122, 46, 63, 72, 38, 120, 100, 119, 102, 71, 78, 81, 49, 106, 120, 128, 216, 137, 137, 169, 160, 205, 200, 200, 1, 250, 1, 5, 13, 23, 11, 104, 63, 84, 83, 40, 11, 93, 23, 32, 95, 62, 98, 43, 38, 71, 124, 110, 112, 102, 93, 115, 71, 42, 121, 57, 79, 57, 36, 95, 74, 72, 40, 97, 46, 110, 96, 123, 92, 67, 93, 100, 115, 64, 43, 104, 32, 86, 62, 92, 53, 44, 61, 87, 105, 50, 81, 120, 128, 208, 220, 233, 217, 153, 229, 205, 206, 1, 250, 1, 10, 13, 134, 206, 121, 63, 29, 138, 54, 241, 62, 84, 83, 40, 115, 93, 118, 193, 102, 62, 98, 27, 76, 81, 64, 45, 109, 70, 37, 54, 101, 33, 49, 76, 40, 119, 126, 38, 125, 49, 56, 120, 122, 70, 74, 62, 42, 79, 118, 120, 128, 152, 131, 184, 136, 162, 153, 192, 123, 250, 1, 10, 13, 150, 97, 158, 62, 29, 105, 95, 140, 61, 84, 83, 40, 125, 93, 238, 83, 40, 62, 98, 32, 76, 72, 55, 66, 32, 124, 122, 89, 80, 39, 118, 52, 121, 111, 79, 112, 50, 74, 91, 107, 52, 125, 58, 37, 39, 33, 35, 61, 78, 41, 120, 95, 120, 128, 207, 214, 180, 240, 247, 180, 165, 131, 1, 250, 1, 10, 13, 93, 208, 197, 60, 29, 196, 72, 248, 58, 84, 83, 40, 84, 93, 176, 72, 44, 63, 98, 61, 91, 38, 33, 53, 93, 71, 114, 79, 53, 68, 57, 32, 38, 104, 113, 74, 49, 122, 78, 46, 50, 59, 125, 121, 92, 43, 71, 45, 55, 49, 118, 111, 110, 48, 86, 67, 90, 85, 85, 85, 70, 85, 112, 92, 104, 61, 72, 63, 38, 53, 111, 38, 81, 81, 77, 64, 40, 38, 88, 82, 32, 120, 128, 192, 170, 132, 253, 250, 211, 162, 93, 250, 1, 5, 13, 173, 237, 128, 62, 84, 83, 40, 5, 93, 222, 235, 237, 62, 98, 33, 72, 48, 116, 50, 78, 110, 91, 69, 119, 102, 91, 73, 64, 48, 62, 98, 39, 39, 34, 65, 112, 62, 61, 98, 53, 59, 83, 124, 34, 85, 96, 61, 108, 120, 128, 234, 201, 229, 210, 215, 206, 172, 150, 1, 250, 1, 5, 13, 236, 166, 170, 62, 84, 83, 40, 17, 93, 84, 226, 9, 63, 98, 58, 45, 87, 69, 52, 96, 88, 105, 112, 118, 102, 116, 57, 111, 119, 93, 53, 97, 90, 42, 114, 50, 123, 51, 59, 93, 66, 65, 38, 62, 91, 47, 112, 50, 46, 121, 79, 92, 44, 47, 101, 82, 112, 62, 83, 93, 99, 49, 93, 34, 39, 43, 84, 53, 57, 65, 48, 67, 42, 120, 128, 248, 193, 140, 153, 204, 143, 228, 200, 1, 250, 1, 10, 13, 54, 140, 157, 62, 29, 130, 212, 116, 62, 84, 83, 40, 89, 93, 171, 133, 8, 63, 98, 41, 58, 86, 36, 39, 96, 124, 46, 88, 84, 74, 68, 64, 64, 93, 94, 92, 121, 49, 99, 36, 54, 79, 90, 90, 119, 108, 105, 43, 81, 85, 113, 78, 110, 61, 35, 123, 88, 91, 80, 95, 115, 120, 128, 144, 180, 208, 185, 251, 160, 131, 63, 250, 1, 5, 13, 21, 46, 18, 63, 84, 83, 40, 12, 93, 151, 154, 88, 63, 98, 52, 120, 32, 81, 99, 76, 91, 44, 82, 94, 60, 105, 123, 72, 46, 114, 51, 34, 38, 125, 88, 116, 80, 35, 90, 98, 35, 61, 95, 36, 47, 102, 120, 80, 105, 126, 108, 55, 70, 37, 121, 101, 123, 47, 33, 56, 126, 47, 76, 92, 76, 113, 71, 120, 128, 200, 199, 180, 169, 191, 188, 164, 203, 1, 250, 1, 5, 13, 30, 113, 2, 63, 84, 83, 40, 121, 93, 168, 63, 213, 62, 98, 46, 124, 118, 33, 72, 61, 75, 77, 79, 84, 112, 74, 94, 46, 38, 122, 90, 33, 36, 113, 120, 64, 33, 65, 98, 114, 112, 35, 87, 61, 63, 64, 32, 109, 87, 111, 64, 69, 91, 91, 58, 77, 95, 75, 71, 83, 80, 120, 128, 176, 144, 177, 135, 153, 131, 137, 41, 250, 1, 5, 13, 209, 148, 16, 63, 84, 83, 40, 64, 93, 147, 1, 111, 62, 98, 67, 70, 83, 93, 34, 39, 122, 85, 61, 84, 76, 71, 117, 49, 53, 79, 74, 111, 86, 54, 90, 53, 68, 71, 87, 74, 95, 85, 121, 46, 66, 82, 76, 38, 39, 119, 107, 65, 107, 80, 115, 106, 39, 38, 46, 113, 86, 78, 54, 118, 41, 95, 102, 63, 117, 32, 33, 44, 38, 86, 70, 68, 90, 46, 50, 121, 122, 111, 120, 128, 149, 237, 215, 209, 165, 233, 190, 141, 1, 250, 1, 5, 13, 225, 173, 154, 62, 84, 83, 40, 88, 93, 159, 66, 193, 61, 98, 90, 36, 38, 65, 111, 46, 61, 56, 101, 114, 49, 62, 34, 37, 98, 106, 45, 48, 38, 117, 95, 59, 52, 41, 78, 47, 119, 115, 52, 118, 102, 68, 120, 52, 32, 90, 95, 124, 38, 113, 98, 114, 63, 98, 53, 38, 88, 41, 79, 46, 108, 94, 35, 69, 34, 108, 110, 123, 113, 95, 53, 73, 36, 110, 44, 107, 69, 108, 36, 39, 42, 48, 42, 52, 50, 107, 122, 80, 115, 72, 85, 109, 68, 37, 41, 39, 65, 82, 49, 50, 106, 120, 128, 152, 234, 163, 155, 163, 209, 158, 218, 1, 250, 1, 5, 13, 107, 197, 238, 61, 84, 83, 40, 49, 93, 58, 40, 33, 63, 98, 52, 57, 110, 80, 86, 72, 96, 107, 36, 71, 36, 92, 84, 109, 51, 54, 113, 61, 40, 72, 42, 70, 37, 126, 100, 36, 74, 113, 91, 112, 59, 70, 36, 100, 87, 120, 124, 73, 121, 74, 103, 105, 104, 123, 33, 76, 82, 82, 63, 122, 64, 76, 90, 120, 128, 144, 153, 244, 197, 130, 201, 161, 88, 250, 1, 10, 13, 196, 125, 145, 62, 29, 197, 116, 98, 62, 84, 83, 40, 26, 93, 104, 13, 85, 63, 98, 50, 107, 82, 125, 109, 47, 51, 43, 92, 87, 111, 53, 57, 57, 71, 67, 93, 96, 63, 92, 41, 125, 55, 80, 118, 81, 95, 79, 109, 107, 66, 73, 66, 100, 45, 92, 70, 75, 120, 89, 85, 111, 67, 116, 97, 60, 37, 97, 120, 41, 124, 120, 128, 189, 199, 152, 224, 231, 187, 196, 129, 1, 250, 1, 10, 13, 142, 243, 114, 63, 29, 89, 104, 20, 63, 84, 83, 40, 13, 93, 47, 201, 89, 63, 98, 71, 84, 33, 39, 59, 79, 98, 61, 111, 52, 70, 114, 83, 43, 105, 123, 49, 102, 101, 39, 57, 89, 66, 110, 89, 76, 125, 86, 100, 110, 65, 77, 106, 90, 59, 40, 69, 68, 93, 42, 114, 82, 83, 95, 59, 73, 80, 85, 47, 44, 107, 57, 52, 79, 112, 55, 49, 50, 76, 110, 80, 43, 87, 33, 114, 119, 39, 120, 111, 96, 86, 107, 120, 128, 186, 213, 198, 225, 207, 171, 181, 140, 1, 250, 1, 10, 13, 179, 253, 30, 63, 29, 111, 85, 82, 62, 84, 83, 40, 93, 93, 175, 119, 123, 61, 98, 58, 98, 83, 48, 122, 72, 71, 88, 34, 39, 57, 58, 105, 35, 118, 50, 119, 109, 89, 102, 121, 81, 108, 66, 65, 87, 100, 77, 84, 32, 48, 88, 60, 42, 49, 78, 94, 60, 115, 39, 99, 125, 125, 106, 94, 107, 46, 107, 105, 68, 115, 58, 33, 75, 106, 82, 116, 48, 109, 120, 128, 220, 139, 132, 241, 199, 221, 160, 47, 250, 1, 5, 13, 5, 203, 51, 63, 84, 83, 40, 118, 93, 46, 233, 58, 61, 98, 47, 34, 117, 95, 125, 95, 113, 71, 83, 90, 120, 81, 35, 123, 83, 33, 98, 84, 73, 120, 99, 48, 43, 116, 86, 111, 62, 93, 88, 77, 78, 80, 67, 105, 121, 123, 115, 126, 109, 78, 121, 65, 111, 56, 65, 79, 71, 110, 120, 128, 128, 180, 253, 223, 234, 159, 235, 255, 1, 250, 1, 5, 13, 152, 224, 95, 63, 84, 83, 40, 60, 93, 68, 89, 130, 62, 98, 49, 120, 105, 53, 115, 117, 33, 40, 45, 64, 51, 110, 37, 44, 72, 45, 57, 33, 86, 45, 99, 102, 121, 125, 65, 63, 114, 83, 39, 72, 78, 93, 100, 32, 54, 87, 89, 83, 38, 37, 114, 117, 96, 45, 102, 82, 105, 43, 120, 65, 120, 128, 246, 195, 147, 159, 180, 159, 156, 20, 250, 1, 5, 13, 168, 193, 80, 63, 84, 83, 40, 53, 93, 139, 153, 60, 63, 98, 28, 104, 80, 125, 106, 114, 83, 34, 76, 32, 100, 113, 84, 41, 37, 117, 111, 83, 100, 122, 81, 57, 108, 38, 107, 55, 110, 84, 103, 120, 128, 192, 203, 230, 200, 225, 219, 180, 79, 250, 1, 10, 13, 103, 252, 58, 63, 29, 205, 166, 138, 62, 84, 83, 40, 85, 93, 179, 226, 108, 62, 98, 59, 125, 55, 100, 88, 109, 95, 81, 34, 69, 117, 122, 59, 49, 73, 100, 52, 40, 109, 72, 114, 117, 76, 122, 74, 50, 83, 36, 125, 58, 112, 58, 74, 49, 62, 42, 109, 49, 55, 100, 36, 72, 78, 114, 118, 42, 80, 37, 69, 111, 82, 82, 119, 112, 108, 63, 81, 59, 57, 70, 120, 128, 232, 251, 179, 228, 181, 222, 159, 163, 1, 250, 1, 5, 13, 197, 154, 31, 63, 84, 83, 40, 68, 93, 226, 129, 63, 63, 98, 84, 84, 91, 80, 41, 114, 62, 117, 35, 111, 40, 67, 73, 70, 88, 36, 64, 96, 77, 94, 46, 102, 62, 65, 89, 67, 125, 88, 82, 118, 112, 74, 72, 116, 102, 62, 58, 88, 70, 50, 38, 120, 79, 97, 110, 76, 67, 120, 119, 54, 119, 100, 107, 123, 68, 32, 53, 57, 117, 101, 115, 101, 67, 43, 126, 92, 122, 84, 94, 58, 104, 102, 58, 59, 87, 52, 55, 92, 81, 45, 32, 37, 95, 59, 126, 120, 128, 254, 244, 193, 252, 238, 167, 143, 16, 250, 1, 5, 13, 167, 225, 39, 63, 84, 83, 40, 58, 93, 218, 26, 1, 63, 98, 59, 102, 40, 33, 98, 96, 61, 64, 84, 67, 97, 50, 81, 109, 57, 93, 76, 49, 74, 79, 68, 48, 103, 88, 102, 104, 100, 109, 37, 39, 44, 115, 125, 78, 36, 118, 49, 103, 36, 88, 125, 55, 94, 115, 121, 63, 91, 49, 107, 34, 110, 108, 95, 46, 39, 63, 126, 79, 58, 120, 120, 128, 208, 226, 169, 239, 147, 149, 206, 250, 1, 250, 1, 5, 13, 31, 100, 250, 62, 84, 83, 40, 36, 93, 57, 81, 243, 62, 98, 67, 54, 108, 51, 34, 105, 65, 76, 100, 44, 113, 81, 45, 80, 114, 94, 70, 45, 82, 34, 35, 56, 62, 51, 110, 70, 99, 118, 96, 76, 42, 92, 78, 122, 49, 92, 44, 44, 88, 70, 73, 84, 42, 95, 109, 92, 121, 110, 44, 112, 114, 107, 72, 75, 55, 52, 119, 88, 68, 91, 38, 73, 106, 55, 34, 52, 34, 49, 120, 128, 172, 166, 243, 192, 237, 178, 154, 42, 250, 1, 5, 13, 25, 11, 110, 62, 84, 83, 40, 65, 93, 57, 70, 143, 62, 98, 47, 83, 43, 88, 77, 45, 93, 69, 49, 75, 115, 106, 111, 89, 62, 52, 35, 99, 123, 100, 82, 102, 124, 64, 126, 105, 113, 93, 89, 90, 104, 79, 117, 62, 88, 55, 60, 113, 105, 39, 57, 51, 50, 47, 49, 94, 121, 93, 120, 128, 248, 202, 182, 155, 233, 215, 180, 90, 250, 1, 5, 13, 86, 192, 45, 59, 84, 83, 40, 125, 93, 158, 98, 242, 62, 98, 58, 66, 80, 125, 82, 86, 106, 89, 99, 58, 32, 107, 86, 98, 68, 116, 80, 33, 38, 118, 48, 120, 116, 75, 63, 84, 109, 46, 64, 110, 52, 121, 88, 91, 59, 45, 68, 64, 37, 96, 81, 56, 38, 107, 57, 70, 90, 75, 108, 104, 72, 91, 92, 40, 109, 83, 76, 37, 94, 120, 128, 136, 150, 128, 234, 182, 176, 129, 125, 250, 1, 5, 13, 71, 181, 66, 63, 84, 83, 40, 79, 93, 197, 20, 137, 62, 98, 57, 115, 38, 37, 50, 121, 70, 55, 80, 48, 122, 68, 68, 119, 114, 41, 49, 119, 121, 65, 65, 86, 69, 88, 61, 80, 109, 103, 95, 62, 97, 39, 119, 117, 125, 49, 100, 51, 52, 95, 37, 85, 55, 56, 96, 55, 98, 117, 95, 67, 114, 101, 35, 70, 57, 97, 77, 77, 120, 128, 232, 155, 203, 224, 179, 222, 217, 95, 250, 1, 5, 13, 166, 5, 49, 63, 84, 83, 40, 17, 93, 23, 201, 39, 63, 98, 58, 86, 49, 78, 115, 76, 78, 120, 97, 67, 125, 99, 57, 60, 107, 62, 45, 118, 37, 108, 118, 40, 60, 74, 122, 36, 80, 91, 60, 99, 55, 76, 81, 82, 69, 125, 38, 105, 107, 105, 52, 124, 125, 126, 116, 34, 104, 42, 76, 66, 64, 85, 96, 116, 52, 86, 57, 101, 83, 120, 128, 176, 196, 168, 159, 140, 163, 196, 106, 250, 1, 5, 13, 170, 234, 118, 63, 84, 83, 40, 109, 93, 33, 112, 33, 63, 98, 53, 124, 43, 81, 49, 101, 117, 109, 56, 67, 43, 59, 88, 121, 41, 61, 85, 119, 58, 69, 47, 120, 67, 97, 106, 92, 61, 110, 100, 63, 53, 123, 109, 65, 64, 32, 114, 67, 111, 35, 52, 94, 42, 123, 74, 69, 60, 58, 76, 123, 48, 90, 84, 86, 120, 128, 144, 213, 163, 149, 198, 168, 157, 90, 250, 1, 5, 13, 144, 154, 51, 63, 84, 83, 40, 77, 93, 12, 194, 222, 62, 98, 42, 102, 84, 71, 38, 41, 120, 45, 46, 77, 55, 89, 41, 73, 50, 39, 55, 49, 79, 110, 70, 55, 68, 63, 35, 66, 103, 46, 90, 71, 54, 93, 92, 69, 73, 92, 59, 90, 45, 85, 48, 109, 60, 120, 128, 208, 135, 139, 181, 142, 189, 216, 117, 250, 1, 5, 13, 15, 95, 99, 61, 84, 83, 40, 85, 93, 246, 195, 185, 62, 98, 69, 81, 125, 82, 61, 69, 51, 115, 51, 49, 65, 52, 68, 98, 64, 105, 82, 101, 54, 88, 123, 98, 32, 84, 107, 91, 35, 121, 93, 87, 122, 76, 58, 66, 32, 53, 48, 39, 41, 112, 74, 104, 50, 55, 58, 38, 54, 73, 52, 70, 59, 85, 96, 75, 99, 94, 81, 72, 102, 96, 65, 57, 54, 90, 54, 116, 121, 33, 98, 42, 120, 128, 160, 214, 203, 153, 228, 177, 221, 204, 1, 250, 1, 5, 13, 126, 225, 229, 62, 84, 83, 40, 79, 93, 139, 83, 197, 62, 98, 45, 46, 51, 80, 104, 57, 100, 69, 88, 100, 54, 59, 68, 106, 109, 94, 64, 99, 102, 64, 72, 79, 49, 81, 87, 32, 69, 44, 52, 101, 42, 108, 112, 120, 60, 61, 79, 46, 104, 46, 33, 59, 103, 83, 126, 62, 120, 128, 168, 248, 219, 199, 151, 194, 223, 108, 250, 1, 10, 13, 211, 70, 212, 61, 29, 21, 63, 247, 61, 84, 83, 40, 46, 93, 61, 0, 184, 62, 98, 57, 70, 112, 42, 51, 116, 124, 96, 119, 103, 115, 88, 48, 113, 90, 73, 74, 75, 78, 80, 46, 50, 122, 88, 62, 45, 102, 92, 81, 56, 47, 59, 32, 113, 67, 98, 122, 101, 101, 70, 64, 109, 53, 32, 58, 71, 42, 116, 120, 85, 114, 69, 90, 89, 52, 48, 75, 56, 120, 128, 200, 185, 141, 141, 147, 204, 235, 100, 250, 1, 5, 13, 229, 188, 125, 61, 84, 83, 40, 18, 93, 84, 117, 170, 62, 98, 53, 47, 95, 88, 87, 87, 62, 78, 118, 78, 100, 100, 39, 48, 63, 123, 121, 61, 117, 35, 113, 98, 123, 68, 104, 96, 69, 93, 51, 55, 97, 121, 95, 57, 32, 94, 85, 71, 98, 110, 107, 70, 34, 38, 46, 95, 83, 73, 116, 51, 80, 122, 115, 34, 120, 128, 180, 145, 208, 244, 153, 139, 129, 165, 1, 250, 1, 5, 13, 250, 56, 33, 63, 84, 83, 40, 24, 93, 102, 216, 143, 62, 98, 65, 110, 118, 50, 96, 58, 94, 107, 105, 37, 108, 47, 95, 70, 82, 90, 39, 54, 74, 96, 116, 53, 41, 44, 123, 103, 32, 102, 102, 38, 92, 124, 67, 76, 58, 87, 106, 92, 42, 44, 66, 58, 68, 90, 101, 58, 52, 107, 125, 64, 108, 106, 111, 122, 60, 36, 101, 105, 54, 119, 58, 119, 37, 98, 71, 110, 120, 128, 216, 169, 205, 252, 213, 205, 234, 228, 1, 250, 1, 5, 13, 220, 249, 71, 62, 84, 83, 40, 16, 93, 156, 230, 112, 63, 98, 58, 110, 73, 44, 62, 62, 90, 112, 78, 69, 96, 83, 51, 103, 70, 56, 112, 45, 72, 48, 53, 113, 33, 70, 50, 113, 73, 52, 96, 50, 117, 78, 34, 95, 35, 80, 66, 94, 81, 91, 96, 51, 55, 67, 84, 68, 38, 48, 94, 74, 85, 97, 66, 34, 117, 39, 109, 35, 120, 120, 128, 228, 212, 192, 199, 150, 166, 133, 188, 1, 250, 1, 5, 13, 109, 47, 98, 63, 84, 83, 40, 50, 93, 219, 177, 37, 62, 98, 67, 59, 79, 50, 80, 82, 99, 116, 116, 50, 90, 107, 78, 34, 90, 92, 113, 109, 106, 57, 85, 54, 91, 52, 43, 32, 105, 123, 98, 63, 101, 36, 102, 58, 36, 122, 115, 65, 114, 82, 75, 104, 84, 67, 38, 85, 82, 115, 76, 48, 49, 43, 97, 90, 110, 119, 94, 59, 38, 80, 104, 103, 50, 85, 75, 86, 36, 51, 120, 128, 192, 203, 210, 207, 142, 220, 148, 253, 1, 250, 1, 5, 13, 49, 45, 42, 63, 84, 83, 40, 96, 93, 37, 141, 0, 63, 98, 39, 122, 55, 109, 108, 97, 55, 45, 85, 76, 116, 79, 82, 46, 90, 66, 44, 75, 43, 59, 88, 58, 65, 105, 98, 86, 125, 118, 79, 80, 62, 117, 107, 71, 96, 48, 73, 108, 34, 53, 120, 128, 152, 145, 193, 144, 175, 137, 137, 53, 250, 1, 5, 13, 210, 191, 21, 62, 84, 83, 40, 64, 93, 41, 161, 33, 61, 98, 36, 114, 56, 94, 70, 112, 51, 119, 103, 113, 67, 47, 52, 88, 77, 42, 53, 99, 63, 92, 36, 46, 126, 98, 42, 77, 73, 120, 62, 72, 116, 115, 74, 105, 61, 117, 73, 120, 128, 192, 145, 203, 206, 228, 139, 217, 244, 1, 250, 1, 5, 13, 103, 99, 19, 63, 84, 83, 40, 8, 93, 4, 107, 153, 62, 98, 28, 88, 85, 36, 72, 55, 75, 86, 122, 97, 108, 81, 39, 80, 75, 116, 114, 85, 84, 120, 70, 58, 88, 63, 123, 78, 100, 74, 58, 120, 128, 144, 198, 150, 249, 128, 177, 180, 201, 1, 250, 1, 10, 13, 212, 57, 45, 63, 29, 3, 92, 161, 62, 200, 4, 16, 84, 83, 40, 34, 93, 81, 133, 171, 62, 98, 77, 75, 87, 122, 57, 113, 33, 114, 124, 92, 90, 67, 108, 120, 61, 72, 35, 114, 66, 92, 94, 34, 126, 54, 39, 120, 82, 32, 60, 68, 33, 78, 69, 108, 48, 32, 60, 119, 59, 97, 119, 83, 60, 123, 99, 88, 97, 106, 44, 112, 83, 108, 122, 78, 90, 61, 75, 65, 114, 64, 63, 32, 86, 88, 91, 44, 124, 32, 104, 61, 43, 42, 86, 96, 100, 42, 100, 35, 120, 128, 184, 240, 132, 203, 239, 131, 167, 67, 250, 1, 10, 13, 155, 16, 251, 62, 29, 79, 236, 123, 62, 84, 83, 40, 95, 93, 12, 82, 95, 63, 98, 58, 74, 111, 51, 82, 117, 50, 114, 84, 122, 36, 122, 66, 118, 124, 99, 64, 87, 90, 96, 33, 110, 101, 72, 53, 58, 105, 79, 87, 71, 110, 67, 40, 86, 44, 43, 103, 71, 88, 39, 109, 116, 103, 48, 37, 91, 61, 109, 45, 33, 98, 121, 115, 85, 101, 35, 100, 71, 125, 120, 128, 196, 236, 136, 212, 159, 228, 198, 160, 1, 250, 1, 5, 13, 5, 66, 8, 62, 84, 83, 40, 87, 93, 16, 105, 145, 62, 98, 61, 44, 43, 96, 114, 106, 105, 112, 123, 120, 125, 82, 114, 44, 39, 85, 67, 89, 123, 122, 65, 85, 99, 116, 79, 82, 111, 40, 70, 64, 72, 64, 121, 43, 89, 90, 36, 68, 103, 82, 35, 59, 37, 105, 123, 64, 97, 89, 123, 47, 35, 68, 59, 48, 64, 100, 71, 54, 48, 63, 121, 96, 120, 128, 220, 136, 144, 215, 233, 197, 128, 185, 1, 250, 1, 5, 13, 82, 122, 31, 63, 84, 83, 40, 63, 93, 1, 33, 35, 63, 98, 47, 88, 103, 81, 75, 80, 125, 112, 73, 118, 37, 80, 121, 119, 47, 111, 53, 44, 55, 60, 36, 37, 104, 106, 116, 51, 108, 52, 72, 87, 66, 112, 73, 58, 62, 102, 121, 40, 80, 93, 36, 82, 112, 56, 58, 51, 77, 61, 120, 144, 176, 196, 150, 128, 129, 163, 180, 129, 1, 250, 1, 5, 13, 210, 29, 254, 62, 84, 83, 40, 91, 93, 233, 230, 12, 63, 98, 38, 51, 62, 74, 87, 110, 124, 91, 55, 98, 105, 72, 113, 84, 52, 39, 95, 89, 71, 117, 45, 90, 88, 55, 80, 51, 79, 80, 97, 100, 78, 51, 119, 114, 109, 93, 42, 110, 102, 120, 128, 168, 248, 252, 163, 155, 194, 231, 117, 250, 1, 5, 13, 18, 248, 119, 63, 84, 83, 40, 58, 93, 0, 81, 133, 62, 98, 52, 121, 58, 42, 126, 99, 37, 44, 109, 99, 88, 88, 86, 120, 89, 39, 120, 68, 62, 75, 121, 82, 51, 86, 79, 126, 102, 86, 124, 112, 113, 79, 120, 96, 65, 94, 124, 70, 51, 107, 74, 84, 118, 106, 89, 63, 59, 115, 35, 34, 116, 66, 88, 120, 128, 224, 189, 140, 184, 135, 238, 227, 192, 1, 250, 1, 5, 13, 27, 210, 5, 63, 84, 83, 40, 93, 93, 175, 193, 59, 63, 98, 41, 98, 89, 32, 123, 78, 47, 124, 113, 41, 95, 117, 87, 122, 42, 82, 48, 82, 33, 68, 90, 72, 124, 48, 98, 114, 82, 121, 122, 79, 117, 72, 46, 91, 119, 57, 107, 50, 110, 123, 69, 121, 120, 128, 208, 252, 232, 254, 231, 228, 199, 246, 1, 250, 1, 5, 13, 241, 209, 0, 63, 84, 83, 40, 84, 93, 189, 113, 196, 62, 98, 56, 60, 40, 119, 65, 49, 38, 78, 45, 43, 60, 101, 73, 60, 41, 123, 52, 33, 66, 51, 54, 103, 123, 35, 111, 101, 124, 98, 37, 125, 95, 79, 76, 80, 62, 86, 73, 33, 88, 61, 110, 120, 33, 79, 90, 83, 66, 117, 101, 126, 48, 120, 85, 60, 72, 92, 64, 120, 194, 143, 166, 141, 143, 252, 176, 8, 250, 1, 5, 13, 57, 84, 172, 61, 84, 83, 40, 79, 93, 112, 186, 90, 62, 98, 44, 67, 73, 46, 74, 108, 56, 120, 125, 82, 82, 50, 71, 36, 67, 61, 101, 75, 71, 59, 67, 39, 124, 37, 109, 102, 120, 47, 39, 97, 54, 67, 120, 124, 40, 75, 79, 114, 37, 109, 58, 72, 118, 50, 76, 120, 128, 192, 196, 130, 151, 131, 164, 148, 125, 250, 1, 5, 13, 193, 9, 4, 63, 84, 83, 40, 65, 93, 14, 10, 109, 63, 98, 70, 43, 117, 115, 92, 107, 56, 44, 70, 67, 64, 99, 114, 40, 113, 60, 60, 46, 57, 74, 123, 119, 108, 114, 70, 89, 32, 121, 47, 105, 88, 111, 53, 72, 55, 123, 106, 65, 102, 45, 100, 123, 37, 43, 82, 64, 122, 50, 86, 90, 117, 62, 99, 38, 84, 32, 61, 34, 77, 35, 106, 61, 124, 91, 106, 79, 78, 74, 112, 116, 80, 120, 128, 176, 138, 140, 182, 171, 211, 224, 121, 250, 1, 5, 13, 181, 254, 209, 62, 84, 83, 40, 15, 93, 16, 88, 58, 63, 98, 67, 32, 113, 97, 64, 37, 94, 109, 67, 83, 115, 57, 43, 46, 114, 54, 93, 104, 114, 98, 66, 70, 125, 72, 64, 34, 112, 79, 64, 96, 42, 121, 118, 88, 64, 84, 45, 91, 97, 72, 68, 123, 121, 72, 103, 80, 68, 64, 86, 90, 55, 102, 39, 99, 103, 62, 33, 73, 64, 62, 51, 46, 76, 97, 73, 120, 66, 82, 120, 128, 152, 204, 199, 237, 185, 225, 188, 103, 250, 1, 5, 13, 32, 35, 159, 62, 84, 83, 40, 11, 93, 11, 70, 176, 60, 98, 32, 38, 74, 62, 69, 76, 85, 95, 110, 92, 80, 119, 101, 73, 66, 113, 51, 111, 34, 83, 99, 58, 67, 52, 53, 78, 55, 126, 110, 46, 113, 82, 57, 120, 128, 248, 135, 186, 200, 201, 191, 208, 195, 1, 250, 1, 5, 13, 78, 17, 100, 62, 84, 83, 40, 85, 93, 189, 91, 35, 63, 98, 72, 69, 66, 113, 74, 104, 80, 96, 98, 53, 102, 55, 38, 38, 47, 97, 106, 104, 67, 102, 98, 53, 40, 117, 52, 86, 112, 96, 106, 125, 94, 50, 52, 97, 53, 108, 77, 47, 41, 122, 105, 97, 81, 32, 103, 32, 119, 103, 126, 47, 102, 79, 46, 78, 124, 70, 60, 75, 93, 114, 118, 111, 116, 99, 86, 83, 35, 67, 111, 65, 52, 91, 95, 120, 128, 152, 215, 238, 134, 206, 185, 245, 182, 1, 250, 1, 5, 13, 23, 22, 120, 63, 84, 83, 40, 1, 93, 46, 38, 54, 63, 98, 52, 40, 46, 52, 93, 40, 97, 90, 54, 46, 36, 101, 100, 109, 80, 33, 81, 53, 35, 120, 107, 108, 72, 51, 123, 84, 118, 92, 121, 43, 110, 100, 80, 123, 98, 52, 60, 73, 52, 109, 45, 58, 77, 71, 79, 61, 93, 34, 112, 51, 41, 73, 69, 120, 192, 170, 246, 131, 150, 212, 178, 159, 5, 250, 1, 5, 13, 241, 199, 89, 62, 84, 83, 40, 115, 93, 19, 216, 39, 63, 98, 29, 122, 55, 41, 48, 36, 96, 42, 62, 62, 52, 104, 43, 59, 99, 39, 32, 52, 107, 81, 62, 33, 99, 94, 118, 116, 107, 102, 33, 69, 120, 128, 232, 199, 186, 215, 208, 190, 212, 42, 250, 1, 10, 13, 61, 172, 246, 62, 29, 148, 240, 62, 63, 84, 83, 40, 100, 93, 54, 135, 15, 63, 98, 47, 65, 49, 43, 93, 40, 89, 67, 40, 48, 40, 115, 117, 84, 78, 34, 72, 49, 54, 97, 87, 92, 55, 88, 50, 59, 56, 120, 40, 120, 126, 101, 33, 63, 101, 66, 117, 116, 86, 98, 119, 122, 119, 82, 85, 34, 125, 54, 120, 128, 136, 162, 236, 202, 197, 144, 226, 33, 250, 1, 10, 13, 117, 29, 127, 63, 29, 119, 223, 117, 63, 84, 83, 40, 18, 93, 210, 17, 118, 62, 98, 54, 37, 51, 119, 41, 88, 119, 66, 111, 95, 58, 46, 48, 66, 113, 86, 110, 43, 44, 83, 90, 83, 104, 92, 99, 99, 34, 47, 60, 33, 95, 40, 124, 112, 78, 123, 44, 108, 57, 60, 123, 52, 113, 55, 95, 105, 66, 51, 47, 71, 71, 45, 114, 72, 82, 120, 128, 224, 248, 249, 253, 173, 198, 207, 89, 250, 1, 7, 13, 197, 185, 148, 62, 32, 1, 84, 83, 40, 26, 93, 87, 183, 197, 62, 98, 47, 86, 103, 37, 109, 126, 50, 49, 62, 114, 117, 73, 33, 112, 110, 86, 70, 96, 80, 124, 121, 65, 109, 32, 115, 89, 82, 53, 84, 61, 107, 95, 85, 89, 115, 100, 52, 46, 36, 55, 77, 87, 35, 64, 57, 125, 69, 59, 120, 128, 197, 191, 210, 128, 169, 252, 147, 133, 1, 250, 1, 5, 13, 198, 34, 90, 63, 84, 83, 40, 17, 93, 14, 65, 145, 60, 98, 47, 105, 88, 56, 34, 103, 103, 49, 52, 76, 123, 92, 32, 38, 53, 115, 71, 124, 41, 66, 55, 92, 56, 79, 66, 62, 77, 101, 117, 51, 55, 49, 98, 49, 105, 117, 123, 64, 112, 124, 75, 123, 110, 106, 80, 122, 34, 57, 120, 128, 234, 152, 228, 194, 207, 198, 161, 7, 250, 1, 10, 13, 34, 212, 218, 61, 29, 195, 75, 122, 63, 84, 83, 40, 40, 93, 52, 222, 111, 63, 98, 63, 78, 115, 68, 80, 41, 117, 99, 58, 34, 59, 32, 53, 106, 120, 110, 59, 62, 118, 39, 43, 44, 117, 59, 108, 77, 125, 70, 59, 51, 96, 106, 53, 120, 55, 51, 60, 69, 68, 114, 73, 45, 98, 72, 95, 109, 85, 101, 33, 50, 124, 100, 51, 117, 50, 108, 88, 88, 86, 35, 42, 78, 71, 38, 120, 128, 192, 212, 192, 133, 253, 163, 133, 172, 1, 250, 1, 5, 13, 61, 219, 0, 63, 84, 83, 40, 98, 93, 87, 140, 149, 62, 98, 64, 82, 101, 82, 117, 121, 35, 92, 125, 73, 76, 90, 125, 118, 56, 69, 41, 54, 122, 87, 63, 101, 73, 90, 98, 110, 65, 103, 121, 100, 91, 40, 47, 36, 57, 50, 59, 94, 39, 106, 47, 56, 51, 67, 43, 124, 87, 43, 113, 41, 62, 111, 68, 118, 74, 84, 41, 42, 110, 38, 87, 58, 98, 57, 108, 120, 128, 168, 136, 147, 150, 177, 194, 152, 177, 1, 250, 1, 5, 13, 91, 46, 231, 62, 84, 83, 40, 119, 93, 12, 243, 36, 63, 98, 45, 38, 41, 73, 46, 48, 72, 39, 81, 38, 79, 101, 55, 53, 117, 111, 70, 107, 98, 55, 89, 99, 41, 48, 110, 32, 50, 115, 85, 121, 86, 101, 81, 92, 77, 106, 32, 115, 96, 52, 78, 67, 34, 34, 90, 41, 120, 128, 192, 216, 161, 205, 158, 196, 141, 234, 1, 250, 1, 5, 13, 199, 239, 182, 62, 84, 83, 40, 48, 93, 13, 17, 92, 63, 98, 49, 114, 32, 97, 50, 64, 120, 124, 119, 89, 45, 124, 83, 81, 87, 79, 104, 51, 89, 103, 43, 111, 81, 43, 77, 104, 54, 97, 38, 85, 101, 48, 111, 79, 98, 39, 85, 36, 62, 60, 83, 108, 39, 58, 82, 55, 121, 112, 74, 81, 120, 128, 232, 201, 184, 199, 213, 206, 196, 109, 250, 1, 12, 13, 177, 44, 100, 63, 29, 242, 184, 103, 62, 56, 1, 200, 4, 33, 84, 83, 40, 3, 93, 118, 110, 177, 62, 98, 39, 116, 51, 73, 42, 55, 117, 66, 115, 124, 44, 36, 109, 79, 121, 99, 116, 60, 52, 61, 103, 54, 87, 54, 109, 68, 54, 83, 99, 111, 122, 54, 54, 96, 101, 96, 112, 116, 50, 60, 120, 128, 168, 178, 190, 222, 183, 146, 243, 243, 1, 250, 1, 5, 13, 234, 142, 55, 63, 84, 83, 40, 51, 93, 186, 6, 16, 63, 98, 42, 42, 117, 35, 122, 87, 45, 32, 119, 69, 122, 57, 41, 60, 124, 90, 100, 32, 66, 94, 35, 33, 116, 109, 45, 104, 56, 114, 32, 42, 118, 70, 35, 111, 34, 43, 119, 64, 59, 122, 85, 111, 34, 120, 128, 248, 131, 142, 225, 223, 159, 240, 108, 250, 1, 10, 13, 42, 123, 142, 62, 29, 158, 19, 207, 62, 84, 83, 40, 79, 93, 242, 218, 191, 62, 98, 52, 114, 57, 76, 59, 83, 37, 66, 83, 53, 39, 116, 49, 62, 57, 32, 109, 77, 84, 54, 57, 58, 112, 98, 68, 100, 70, 40, 50, 125, 36, 82, 102, 45, 116, 126, 102, 93, 90, 113, 124, 76, 77, 117, 112, 74, 42, 91, 59, 111, 52, 67, 100, 120, 128, 222, 173, 189, 201, 234, 237, 234, 22, 250, 1, 5, 13, 55, 36, 186, 62, 84, 83, 40, 12, 93, 14, 218, 164, 60, 98, 81, 85, 40, 85, 45, 123, 47, 84, 48, 83, 46, 36, 73, 58, 57, 48, 113, 98, 56, 107, 107, 122, 113, 120, 90, 105, 108, 66, 105, 95, 109, 85, 105, 106, 124, 48, 84, 37, 100, 33, 60, 119, 100, 60, 60, 37, 50, 33, 85, 36, 80, 34, 119, 86, 60, 38, 99, 47, 122, 66, 47, 108, 106, 79, 101, 87, 57, 93, 60, 40, 90, 108, 124, 54, 78, 115, 54, 84, 91, 84, 87, 106, 120, 128, 184, 185, 232, 172, 175, 203, 195, 230, 1, 250, 1, 5, 13, 182, 254, 57, 63, 84, 83, 40, 20, 93, 130, 84, 72, 63, 98, 60, 93, 51, 78, 118, 75, 69, 41, 65, 112, 79, 45, 52, 85, 99, 107, 83, 100, 76, 73, 99, 37, 96, 39, 72, 111, 46, 82, 69, 106, 67, 126, 37, 64, 122, 121, 38, 47, 68, 92, 52, 98, 90, 68, 125, 102, 33, 126, 119, 104, 35, 38, 63, 59, 74, 101, 124, 43, 37, 39, 61, 120, 128, 176, 142, 227, 143, 131, 243, 152, 111, 250, 1, 5, 13, 130, 158, 52, 63, 84, 83, 40, 73, 93, 6, 212, 244, 62, 98, 54, 80, 39, 114, 90, 104, 100, 68, 63, 111, 52, 32, 73, 59, 41, 97, 109, 47, 89, 91, 102, 60, 95, 104, 116, 52, 124, 121, 41, 61, 62, 65, 126, 36, 118, 77, 94, 46, 67, 46, 35, 93, 102, 78, 39, 74, 59, 96, 34, 67, 57, 45, 56, 39, 110, 120, 128, 224, 251, 128, 225, 133, 222, 135, 23, 250, 1, 10, 13, 121, 122, 85, 63, 29, 242, 146, 161, 62, 84, 83, 40, 123, 93, 216, 76, 202, 62, 98, 65, 107, 105, 59, 33, 81, 114, 32, 69, 68, 90, 34, 95, 106, 74, 88, 41, 85, 49, 96, 74, 120, 59, 119, 100, 36, 49, 40, 119, 52, 101, 93, 64, 48, 125, 66, 56, 66, 100, 124, 52, 74, 117, 60, 70, 64, 89, 66, 109, 77, 101, 89, 93, 92, 82, 76, 79, 113, 85, 124, 63, 105, 39, 49, 93, 124, 120, 128, 224, 236, 250, 186, 227, 229, 214, 215, 1, 250, 1, 10, 13, 91, 59, 251, 62, 29, 210, 79, 78, 63, 84, 83, 40, 11, 93, 23, 35, 168, 62, 98, 61, 102, 112, 52, 76, 32, 34, 126, 81, 68, 74, 109, 58, 73, 77, 43, 126, 99, 93, 80, 113, 70, 107, 102, 92, 73, 66, 100, 93, 72, 94, 42, 84, 100, 46, 126, 104, 73, 47, 82, 74, 80, 64, 49, 82, 81, 79, 92, 98, 81, 124, 124, 112, 59, 54, 119, 121, 41, 87, 34, 92, 60, 120, 128, 220, 249, 187, 213, 217, 205, 223, 171, 1, 250, 1, 5, 13, 131, 87, 176, 61, 84, 83, 40, 91, 93, 146, 183, 170, 62, 98, 48, 57, 84, 58, 77, 66, 85, 83, 42, 38, 64, 38, 90, 52, 43, 121, 100, 33, 44, 74, 97, 56, 56, 78, 54, 37, 95, 113, 45, 116, 45, 47, 56, 76, 50, 55, 122, 66, 52, 47, 71, 72, 101, 53, 116, 113, 63, 116, 75, 120, 128, 223, 147, 171, 193, 245, 157, 217, 138, 1, 250, 1, 10, 13, 138, 43, 108, 63, 29, 202, 41, 146, 62, 84, 83, 40, 26, 93, 165, 75, 34, 63, 98, 37, 35, 38, 32, 37, 36, 72, 98, 98, 70, 53, 120, 48, 108, 46, 33, 114, 126, 66, 107, 124, 35, 56, 82, 35, 89, 67, 100, 105, 69, 37, 123, 113, 123, 90, 72, 44, 54, 120, 128, 184, 199, 170, 178, 186, 187, 212, 113, 250, 1, 10, 13, 141, 205, 156, 62, 29, 188, 202, 74, 63, 84, 83, 40, 58, 93, 216, 185, 54, 63, 98, 51, 34, 79, 59, 99, 36, 49, 115, 88, 40, 85, 78, 54, 89, 106, 83, 124, 75, 96, 98, 119, 61, 64, 57, 39, 52, 49, 100, 116, 91, 42, 37, 32, 80, 62, 53, 34, 102, 117, 62, 83, 117, 108, 124, 70, 66, 100, 33, 93, 87, 57, 73, 120, 128, 152, 222, 153, 164, 182, 241, 205, 80, 250, 1, 5, 13, 30, 43, 184, 61, 84, 83, 40, 69, 93, 172, 244, 206, 62, 98, 38, 97, 54, 52, 78, 113, 76, 126, 123, 125, 80, 77, 100, 58, 84, 80, 53, 84, 65, 47, 33, 80, 67, 114, 99, 79, 48, 38, 60, 66, 96, 72, 119, 123, 119, 83, 106, 81, 71, 120, 128, 176, 131, 177, 231, 254, 154, 136, 187, 1, 250, 1, 5, 13, 88, 89, 161, 61, 84, 83, 40, 115, 93, 205, 59, 87, 63, 98, 46, 125, 117, 116, 126, 102, 41, 38, 35, 115, 57, 120, 81, 117, 61, 67, 79, 125, 97, 69, 97, 89, 61, 39, 85, 104, 66, 33, 100, 99, 45, 117, 39, 42, 95, 69, 123, 110, 79, 72, 124, 53, 62, 107, 47, 125, 73, 120, 224, 238, 206, 164, 160, 246, 246, 164, 130, 1, 250, 1, 5, 13, 199, 216, 105, 62, 84, 83, 40, 52, 93, 247, 215, 174, 60, 98, 52, 72, 105, 96, 52, 54, 96, 109, 63, 54, 67, 40, 65, 63, 101, 67, 112, 71, 54, 119, 70, 96, 78, 57, 72, 76, 58, 80, 119, 86, 62, 64, 106, 61, 96, 100, 44, 69, 116, 72, 99, 46, 79, 57, 36, 116, 115, 126, 37, 106, 44, 34, 106, 120, 128, 224, 133, 174, 136, 247, 173, 240, 39, 250, 1, 5, 13, 175, 219, 39, 60, 84, 83, 40, 43, 93, 101, 68, 111, 63, 98, 43, 79, 56, 103, 123, 47, 117, 103, 119, 34, 60, 35, 93, 33, 55, 74, 81, 108, 51, 56, 49, 53, 52, 83, 88, 59, 74, 44, 73, 59, 85, 77, 60, 64, 106, 91, 45, 45, 76, 84, 56, 102, 64, 33, 120, 128, 152, 171, 149, 156, 174, 217, 170, 75, 250, 1, 5, 13, 253, 245, 86, 63, 84, 83, 40, 43, 93, 23, 2, 61, 61, 98, 29, 82, 97, 79, 125, 41, 103, 46, 99, 59, 100, 47, 95, 99, 104, 61, 91, 76, 110, 102, 60, 53, 91, 61, 68, 64, 93, 126, 73, 115, 120, 128, 224, 241, 138, 211, 255, 141, 215, 152, 1, 250, 1, 10, 13, 100, 109, 116, 63, 29, 215, 245, 63, 63, 84, 83, 40, 119, 93, 55, 231, 207, 62, 98, 48, 88, 103, 107, 87, 67, 83, 50, 39, 63, 72, 125, 107, 112, 79, 72, 100, 84, 104, 41, 35, 109, 118, 67, 43, 92, 74, 103, 99, 110, 41, 104, 70, 101, 60, 47, 85, 111, 116, 74, 50, 42, 46, 60, 116, 70, 83, 108, 79, 120, 144, 206, 207, 134, 236, 240, 252, 180, 2, 250, 1, 5, 13, 159, 235, 34, 62, 84, 83, 40, 81, 93, 181, 113, 68, 62, 98, 57, 93, 117, 88, 97, 68, 96, 121, 120, 106, 77, 55, 53, 95, 86, 38, 83, 63, 114, 116, 94, 62, 117, 120, 94, 90, 78, 100, 41, 92, 56, 98, 95, 75, 86, 104, 110, 99, 76, 49, 46, 121, 80, 71, 92, 118, 38, 53, 110, 77, 56, 47, 45, 57, 125, 114, 102, 124, 120, 128, 216, 184, 132, 177, 221, 197, 163, 119, 250, 1, 5, 13, 107, 4, 155, 61, 84, 83, 40, 113, 93, 201, 13, 117, 63, 98, 57, 112, 59, 82, 105, 86, 105, 40, 109, 54, 111, 114, 97, 101, 99, 108, 78, 59, 102, 84, 57, 116, 90, 68, 40, 85, 70, 77, 98, 33, 113, 106, 69, 59, 50, 41, 53, 115, 113, 64, 59, 44, 33, 55, 72, 60, 74, 83, 57, 38, 55, 96, 49, 82, 91, 38, 53, 118, 120, 128, 140, 237, 134, 198, 232, 232, 182, 57, 250, 1, 5, 13, 147, 56, 92, 62, 84, 83, 40, 21, 93, 22, 241, 152, 62, 98, 46, 69, 107, 68, 36, 76, 70, 82, 90, 87, 90, 73, 70, 56, 45, 114, 67, 122, 106, 42, 113, 51, 92, 104, 48, 88, 114, 94, 44, 114, 61, 73, 93, 47, 126, 101, 53, 114, 67, 111, 36, 32, 93, 77, 92, 55, 105, 120, 128, 156, 235, 131, 151, 242, 217, 158, 35, 250, 1, 5, 13, 91, 234, 249, 62, 84, 83, 40, 24, 93, 94, 222, 92, 63, 98, 31, 123, 94, 41, 61, 40, 104, 35, 51, 75, 89, 102, 69, 102, 58, 48, 106, 54, 57, 70, 93, 79, 86, 122, 37, 113, 84, 46, 43, 119, 109, 88, 120, 128, 190, 169, 229, 146, 232, 203, 170, 150, 1, 250, 1, 7, 13, 3, 86, 112, 63, 56, 0, 84, 83, 40, 44, 93, 8, 101, 70, 63, 98, 38, 83, 113, 117, 124, 49, 94, 119, 53, 61, 89, 118, 51, 76, 76, 83, 32, 39, 83, 66, 68, 99, 36, 75, 82, 89, 118, 59, 92, 32, 85, 75, 102, 119, 69, 55, 68, 66, 73, 120, 128, 140, 211, 204, 184, 245, 152, 229, 59, 250, 1, 10, 13, 159, 141, 89, 63, 29, 196, 171, 39, 63, 84, 83, 40, 91, 93, 246, 118, 64, 63, 98, 27, 55, 93, 122, 94, 75, 58, 88, 40, 69, 93, 124, 37, 79, 70, 67, 66, 58, 66, 58, 53, 102, 45, 48, 58, 38, 52, 46, 120, 128, 176, 183, 233, 219, 133, 187, 203, 82, 250, 1, 10, 13, 196, 174, 37, 63, 29, 160, 128, 160, 61, 84, 83, 40, 64, 93, 136, 127, 58, 63, 98, 25, 126, 59, 51, 115, 94, 56, 110, 65, 71, 76, 38, 40, 122, 64, 103, 125, 126, 39, 49, 77, 67, 78, 32, 41, 77, 120, 128, 144, 221, 221, 218, 134, 233, 237, 213, 1, 250, 1, 10, 13, 42, 17, 23, 63, 29, 215, 120, 118, 62, 84, 83, 40, 15, 93, 2, 130, 115, 63, 98, 72, 74, 62, 45, 54, 38, 51, 50, 78, 98, 34, 82, 120, 109, 57, 39, 39, 63, 101, 76, 48, 93, 86, 117, 34, 65, 79, 59, 42, 70, 125, 94, 88, 53, 75, 34, 102, 122, 99, 57, 83, 106, 79, 67, 46, 122, 74, 96, 101, 33, 69, 64, 113, 105, 121, 60, 114, 72, 42, 115, 85, 119, 39, 40, 100, 66, 121, 98, 65, 54, 64, 44, 90, 120, 128, 128, 225, 168, 183, 143, 136, 198, 186, 1, 250, 1, 5, 13, 152, 76, 107, 63, 84, 83, 40, 49, 93, 135, 101, 28, 62, 98, 52, 51, 102, 39, 118, 110, 84, 41, 32, 93, 108, 109, 58, 47, 46, 62, 111, 110, 99, 91, 99, 71, 93, 107, 32, 102, 62, 78, 96, 56, 101, 70, 113, 84, 45, 95, 96, 35, 124, 101, 67, 125, 39, 39, 85, 44, 71, 50, 40, 33, 60, 106, 103, 120, 128, 228, 191, 213, 196, 148, 254, 171, 165, 1, 250, 1, 5, 13, 169, 104, 46, 63, 84, 83, 40, 93, 93, 210, 225, 12, 63, 98, 53, 122, 38, 47, 80, 37, 72, 103, 119, 69, 123, 100, 33, 78, 92, 107, 113, 124, 56, 100, 64, 86, 53, 115, 63, 43, 70, 94, 123, 121, 94, 85, 115, 70, 43, 101, 123, 108, 52, 62, 85, 63, 47, 47, 48, 97, 49, 88, 68, 80, 120, 105, 35, 122, 120, 128, 144, 175, 141, 128, 143, 249, 234, 51, 250, 1, 5, 13, 79, 93, 121, 63, 84, 83, 40, 91, 93, 18, 49, 76, 62, 98, 83, 111, 68, 93, 104, 107, 124, 102, 69, 112, 89, 66, 117, 110, 37, 103, 121, 47, 33, 71, 37, 98, 92, 121, 109, 57, 74, 32, 116, 82, 119, 32, 45, 32, 104, 123, 110, 95, 107, 82, 49, 72, 105, 111, 86, 53, 77, 96, 115, 33, 40, 106, 68, 84, 95, 79, 50, 74, 111, 78, 64, 124, 113, 114, 120, 89, 53, 117, 37, 40, 119, 57, 67, 77, 54, 92, 120, 108, 67, 87, 107, 105, 44, 114, 120, 128, 128, 137, 249, 150, 133, 200, 200, 183, 1, 250, 1, 5, 13, 10, 144, 7, 62, 84, 83, 40, 78, 93, 246, 172, 22, 63, 98, 71, 64, 57, 104, 68, 111, 60, 50, 52, 86, 118, 118, 124, 32, 87, 90, 106, 40, 110, 71, 118, 62, 34, 85, 69, 39, 55, 98, 85, 111, 125, 73, 107, 125, 92, 84, 107, 62, 83, 72, 39, 58, 34, 38, 34, 116, 69, 86, 52, 46, 65, 106, 89, 100, 98, 57, 61, 99, 67, 61, 87, 89, 92, 67, 87, 76, 42, 125, 67, 35, 110, 75, 120, 128, 168, 224, 221, 184, 178, 130, 238, 197, 1, 250, 1, 5, 13, 128, 165, 201, 62, 84, 83, 40, 43, 93, 159, 119, 35, 63, 98, 74, 60, 123, 83, 80, 96, 96, 78, 70, 77, 50, 110, 39, 58, 66, 54, 40, 122, 53, 112, 76, 93, 93, 77, 84, 105, 70, 51, 49, 63, 116, 54, 52, 67, 38, 124, 65, 47, 113, 92, 118, 43, 53, 116, 69, 93, 35, 99, 32, 107, 102, 79, 61, 84, 114, 126, 93, 78, 126, 101, 57, 76, 60, 39, 88, 122, 89, 98, 52, 69, 116, 119, 40, 88, 120, 120, 128, 236, 168, 181, 174, 216, 198, 170, 46, 250, 1, 5, 13, 123, 241, 215, 62, 84, 83, 40, 95, 93, 149, 65, 169, 61, 98, 32, 117, 101, 98, 50, 68, 88, 69, 119, 95, 80, 38, 62, 113, 48, 44, 66, 73, 109, 46, 60, 73, 35, 63, 78, 90, 118, 109, 71, 99, 90, 80, 86, 120, 128, 176, 222, 172, 238, 153, 243, 229, 242, 1, 250, 1, 10, 13, 219, 131, 209, 62, 29, 243, 218, 184, 61, 84, 83, 40, 126, 93, 99, 132, 17, 63, 98, 36, 58, 119, 77, 50, 34, 121, 50, 45, 39, 34, 102, 123, 54, 78, 83, 58, 74, 93, 113, 70, 51, 87, 76, 106, 124, 52, 36, 32, 79, 72, 74, 39, 44, 107, 47, 116, 120, 128, 128, 178, 206, 186, 247, 143, 243, 85, 250, 1, 5, 13, 242, 55, 214, 61, 84, 83, 40, 51, 93, 201, 242, 196, 61, 98, 76, 45, 65, 83, 115, 38, 74, 77, 44, 123, 60, 74, 104, 53, 88, 66, 97, 74, 98, 53, 109, 117, 50, 93, 93, 87, 94, 110, 73, 62, 93, 89, 64, 54, 104, 56, 113, 36, 87, 99, 82, 101, 119, 35, 51, 124, 96, 113, 82, 73, 77, 74, 123, 115, 88, 50, 122, 98, 116, 60, 70, 90, 35, 108, 61, 97, 41, 81, 76, 64, 79, 92, 113, 126, 97, 39, 125, 120, 128, 138, 154, 193, 162, 209, 208, 137, 148, 1, 250, 1, 5, 13, 59, 111, 228, 62, 84, 83, 40, 85, 93, 15, 236, 101, 63, 98, 60, 108, 60, 32, 112, 51, 92, 75, 93, 85, 60, 46, 47, 59, 60, 118, 98, 42, 100, 80, 114, 47, 68, 50, 120, 111, 87, 124, 50, 80, 52, 107, 56, 52, 70, 88, 62, 34, 123, 42, 37, 92, 115, 117, 35, 65, 77, 86, 97, 106, 68, 114, 73, 121, 108, 102, 71, 41, 39, 33, 91, 120, 128, 168, 228, 198, 234, 207, 162, 182, 212, 1, 250, 1, 5, 13, 156, 154, 138, 62, 84, 83, 40, 18, 93, 165, 139, 177, 62, 98, 57, 80, 117, 122, 116, 98, 87, 95, 46, 90, 74, 53, 58, 78, 46, 86, 65, 33, 59, 70, 43, 65, 66, 62, 71, 94, 48, 52, 122, 121, 77, 69, 67, 101, 84, 82, 74, 82, 96, 125, 50, 100, 99, 110, 78, 86, 75, 120, 121, 79, 94, 90, 67, 114, 34, 126, 46, 87, 120, 128, 232, 205, 227, 130, 150, 238, 156, 69, 250, 1, 10, 13, 56, 125, 101, 62, 29, 230, 17, 7, 63, 84, 83, 40, 46, 93, 80, 38, 56, 63, 98, 79, 51, 44, 37, 113, 84, 120, 91, 44, 110, 63, 61, 51, 69, 92, 82, 111, 112, 51, 55, 57, 74, 59, 114, 34, 80, 99, 85, 68, 114, 126, 75, 75, 110, 32, 79, 98, 72, 99, 118, 126, 62, 67, 111, 58, 38, 94, 91, 65, 90, 103, 98, 33, 58, 41, 58, 119, 56, 34, 65, 111, 67, 55, 56, 110, 114, 112, 68, 69, 44, 111, 70, 44, 60, 55, 122, 38, 75, 87, 123, 120, 128, 128, 128, 215, 168, 175, 128, 184, 109, 250, 1, 10, 13, 235, 13, 164, 61, 29, 154, 250, 77, 62, 84, 83, 40, 96, 93, 232, 106, 245, 61, 98, 37, 60, 74, 48, 101, 101, 87, 74, 69, 65, 38, 90, 38, 43, 32, 71, 52, 57, 53, 53, 106, 65, 85, 99, 35, 45, 51, 76, 95, 38, 79, 104, 48, 78, 45, 82, 72, 96, 120, 128, 184, 174, 202, 167, 169, 243, 210, 83, 250, 1, 5, 13, 45, 82, 43, 63, 84, 83, 40, 69, 93, 227, 13, 199, 62, 98, 44, 32, 105, 54, 91, 115, 122, 74, 48, 102, 87, 112, 124, 124, 105, 102, 101, 45, 87, 81, 43, 105, 63, 113, 60, 74, 87, 125, 76, 126, 83, 90, 85, 95, 69, 64, 106, 77, 70, 56, 55, 33, 78, 62, 119, 120, 128, 160, 218, 255, 158, 235, 209, 253, 116, 250, 1, 5, 13, 56, 65, 74, 62, 84, 83, 40, 64, 93, 171, 45, 187, 62, 98, 65, 107, 98, 83, 37, 45, 73, 90, 96, 119, 120, 49, 59, 124, 124, 49, 51, 123, 59, 61, 87, 72, 122, 55, 101, 62, 57, 41, 59, 32, 121, 68, 55, 39, 90, 96, 59, 32, 84, 71, 54, 106, 95, 114, 83, 53, 124, 58, 36, 61, 43, 122, 91, 116, 119, 121, 111, 74, 108, 102, 115, 64, 62, 95, 124, 83, 120, 128, 216, 186, 253, 222, 191, 213, 235, 247, 1, 250, 1, 5, 13, 116, 108, 90, 62, 84, 83, 40, 45, 93, 130, 79, 151, 62, 98, 42, 116, 51, 70, 114, 38, 107, 103, 40, 99, 79, 65, 126, 37, 124, 116, 125, 104, 65, 46, 96, 111, 112, 50, 109, 83, 117, 75, 126, 116, 126, 59, 103, 119, 102, 71, 118, 84, 103, 110, 44, 49, 103, 120, 128, 232, 186, 160, 233, 169, 214, 131, 95, 250, 1, 5, 13, 198, 87, 156, 62, 84, 83, 40, 48, 93, 40, 83, 98, 63, 98, 35, 58, 64, 106, 125, 106, 87, 37, 96, 75, 36, 33, 87, 63, 48, 64, 104, 50, 99, 52, 89, 38, 61, 85, 124, 73, 32, 82, 34, 79, 39, 41, 116, 73, 94, 90, 120, 128, 200, 169, 232, 209, 193, 204, 194, 142, 1, 250, 1, 5, 13, 100, 99, 89, 62, 84, 83, 40, 114, 93, 160, 95, 86, 62, 98, 41, 99, 98, 55, 59, 67, 117, 123, 72, 94, 106, 72, 85, 34, 40, 106, 109, 124, 106, 109, 84, 106, 36, 34, 49, 67, 121, 44, 45, 95, 84, 53, 83, 60, 79, 80, 117, 110, 33, 50, 38, 77, 120, 128, 216, 128, 160, 201, 209, 133, 128, 202, 1, 250, 1, 10, 13, 102, 129, 97, 63, 29, 111, 195, 118, 62, 84, 83, 40, 9, 93, 168, 136, 5, 63, 98, 49, 39, 107, 94, 111, 93, 63, 69, 65, 72, 94, 95, 37, 118, 72, 105, 109, 103, 41, 85, 115, 57, 81, 87, 115, 126, 123, 88, 102, 39, 51, 47, 106, 42, 113, 114, 63, 78, 110, 118, 117, 46, 121, 39, 112, 53, 104, 41, 105, 60, 120, 128, 232, 255, 230, 148, 187, 254, 183, 84, 250, 1, 5, 13, 18, 129, 82, 63, 84, 83, 40, 99, 93, 88, 254, 44, 63, 98, 60, 51, 56, 84, 52, 105, 112, 97, 101, 94, 58, 53, 79, 116, 122, 37, 84, 73, 63, 119, 50, 95, 100, 62, 74, 102, 93, 53, 113, 110, 74, 71, 68, 68, 42, 118, 88, 61, 43, 99, 125, 53, 47, 79, 95, 112, 65, 64, 109, 35, 52, 114, 63, 117, 87, 32, 77, 120, 41, 76, 44, 120, 128, 240, 227, 179, 213, 216, 158, 158, 79, 250, 1, 5, 13, 244, 251, 83, 63, 84, 83, 40, 115, 93, 219, 170, 86, 62, 98, 47, 113, 112, 42, 105, 36, 76, 54, 62, 90, 121, 123, 80, 53, 93, 89, 69, 61, 71, 109, 90, 87, 40, 77, 107, 41, 72, 94, 52, 93, 87, 67, 69, 55, 59, 109, 126, 54, 85, 104, 86, 124, 83, 99, 122, 90, 79, 55, 120, 128, 164, 242, 202, 228, 154, 146, 215, 164, 1, 250, 1, 5, 13, 34, 90, 255, 62, 84, 83, 40, 10, 93, 108, 67, 82, 63, 98, 45, 50, 33, 60, 91, 104, 66, 61, 95, 90, 108, 34, 95, 35, 86, 86, 57, 121, 111, 89, 46, 102, 94, 55, 92, 35, 67, 81, 49, 89, 49, 67, 99, 85, 104, 48, 68, 121, 94, 36, 91, 120, 116, 46, 105, 121, 120, 128, 168, 154, 139, 222, 195, 210, 217, 240, 1, 250, 1, 5, 13, 198, 157, 45, 63, 84, 83, 40, 49, 93, 195, 168, 70, 61, 98, 78, 54, 61, 75, 116, 120, 39, 83, 105, 94, 88, 68, 112, 44, 38, 72, 72, 61, 41, 57, 69, 49, 62, 58, 106, 124, 52, 112, 79, 76, 98, 46, 98, 45, 44, 67, 115, 119, 110, 92, 96, 91, 90, 59, 37, 95, 106, 108, 110, 100, 64, 91, 106, 70, 125, 113, 118, 34, 95, 119, 99, 54, 35, 60, 123, 74, 97, 99, 126, 97, 84, 80, 78, 76, 88, 105, 86, 35, 53, 120, 128, 191, 200, 237, 145, 251, 195, 236, 142, 1, 250, 1, 5, 13, 242, 198, 61, 62, 84, 83, 40, 53, 93, 137, 18, 136, 60, 98, 29, 106, 44, 38, 67, 59, 46, 57, 75, 112, 55, 117, 119, 74, 87, 62, 63, 90, 125, 39, 108, 45, 47, 111, 44, 61, 109, 52, 59, 115, 120, 128, 176, 147, 242, 204, 248, 154, 145, 231, 1, 250, 1, 5, 13, 23, 106, 14, 63, 84, 83, 40, 93, 93, 19, 1, 152, 62, 98, 61, 52, 56, 47, 116, 38, 69, 84, 101, 53, 99, 56, 88, 84, 45, 49, 55, 98, 89, 44, 41, 90, 115, 90, 60, 121, 37, 77, 120, 124, 87, 35, 97, 48, 91, 53, 63, 46, 74, 83, 87, 82, 38, 118, 75, 86, 83, 104, 95, 35, 36, 48, 51, 71, 92, 96, 64, 93, 114, 121, 33, 118, 120, 128, 176, 158, 245, 167, 245, 242, 169, 80, 250, 1, 5, 13, 223, 117, 65, 63, 84, 83, 40, 81, 93, 243, 96, 43, 63, 98, 30, 85, 72, 120, 119, 113, 41, 56, 37, 84, 86, 83, 123, 47, 100, 69, 60, 108, 116, 120, 70, 111, 57, 82, 121, 115, 96, 58, 79, 82, 95, 120, 128, 144, 188, 170, 228, 129, 225, 211, 115, 250, 1, 10, 13, 252, 86, 161, 62, 29, 132, 235, 137, 62, 84, 83, 40, 99, 93, 217, 148, 20, 60, 98, 61, 43, 111, 103, 49, 121, 119, 45, 114, 37, 44, 68, 77, 46, 84, 100, 41, 101, 110, 55, 110, 59, 116, 125, 35, 48, 109, 104, 82, 115, 95, 53, 97, 68, 99, 58, 75, 37, 99, 125, 78, 98, 70, 77, 108, 79, 51, 44, 122, 108, 86, 48, 78, 34, 122, 99, 54, 112, 100, 33, 43, 46, 120, 128, 184, 206, 179, 184, 147, 243, 156, 78, 250, 1, 5, 13, 140, 105, 126, 63, 84, 83, 40, 48, 93, 93, 86, 103, 63, 98, 79, 97, 41, 73, 57, 56, 36, 33, 111, 104, 44, 116, 70, 49, 82, 123, 97, 109, 100, 61, 79, 102, 95, 72, 126, 35, 89, 64, 98, 113, 63, 40, 70, 40, 117, 109, 42, 97, 96, 84, 81, 46, 94, 57, 110, 110, 110, 95, 49, 36, 73, 64, 116, 97, 116, 47, 34, 95, 74, 53, 93, 99, 62, 124, 72, 35, 77, 61, 58, 100, 113, 32, 45, 48, 106, 64, 40, 69, 89, 48, 120, 128, 224, 254, 180, 163, 249, 245, 167, 155, 1, 250, 1, 5, 13, 74, 26, 113, 63, 84, 83, 40, 19, 93, 86, 17, 40, 63, 98, 72, 72, 126, 51, 100, 51, 102, 106, 73, 54, 74, 117, 109, 111, 96, 111, 106, 64, 81, 69, 75, 49, 72, 50, 99, 117, 83, 39, 91, 38, 58, 33, 99, 84, 94, 84, 73, 110, 104, 41, 83, 121, 72, 104, 97, 57, 124, 80, 70, 85, 109, 110, 98, 84, 97, 77, 126, 107, 78, 110, 95, 94, 46, 66, 123, 72, 50, 56, 48, 44, 70, 123, 87, 120, 128, 176, 218, 166, 241, 247, 210, 181, 53, 250, 1, 5, 13, 17, 248, 89, 63, 84, 83, 40, 66, 93, 113, 52, 65, 63, 98, 39, 94, 79, 74, 119, 35, 95, 38, 56, 74, 62, 46, 113, 49, 84, 93, 64, 120, 73, 115, 106, 38, 108, 57, 39, 99, 63, 58, 47, 113, 54, 58, 98, 47, 100, 64, 59, 36, 117, 91, 120, 128, 168, 171, 241, 223, 170, 218, 138, 255, 1, 250, 1, 5, 13, 58, 144, 185, 61, 84, 83, 40, 13, 93, 183, 183, 3, 63, 98, 81, 42, 35, 70, 126, 86, 103, 90, 93, 124, 124, 102, 97, 113, 54, 66, 52, 99, 68, 118, 70, 51, 35, 75, 97, 76, 52, 66, 60, 35, 108, 116, 97, 122, 59, 47, 36, 61, 64, 98, 70, 54, 87, 61, 100, 71, 34, 77, 36, 96, 96, 119, 89, 49, 98, 60, 38, 86, 99, 81, 66, 69, 62, 90, 47, 40, 37, 101, 86, 39, 62, 117, 66, 97, 79, 48, 91, 101, 101, 57, 73, 101, 120, 128, 140, 239, 243, 213, 239, 248, 158, 40, 250, 1, 5, 13, 67, 179, 28, 63, 84, 83, 40, 44, 93, 0, 130, 98, 63, 98, 52, 58, 80, 56, 125, 40, 76, 89, 109, 64, 32, 118, 124, 45, 92, 66, 60, 117, 124, 66, 106, 84, 119, 96, 82, 96, 64, 112, 73, 40, 91, 40, 99, 56, 58, 108, 84, 77, 88, 125, 112, 60, 84, 65, 79, 56, 93, 87, 40, 118, 45, 111, 64, 120, 128, 166, 209, 246, 195, 179, 138, 181, 159, 1, 250, 1, 10, 13, 156, 123, 18, 63, 29, 83, 175, 168, 62, 84, 83, 40, 45, 93, 88, 75, 83, 63, 98, 37, 100, 60, 103, 91, 47, 101, 99, 119, 51, 99, 113, 110, 109, 109, 61, 125, 81, 77, 32, 86, 49, 58, 35, 104, 103, 82, 121, 107, 103, 76, 97, 122, 74, 100, 103, 59, 54, 120, 128, 196, 146, 195, 243, 163, 148, 153, 156, 1, 250, 1, 5, 13, 123, 168, 10, 62, 84, 83, 40, 104, 93, 215, 184, 35, 63, 98, 45, 86, 37, 120, 100, 57, 40, 62, 82, 65, 100, 40, 63, 106, 92, 74, 56, 125, 114, 92, 107, 118, 47, 101, 34, 118, 67, 40, 38, 33, 102, 60, 64, 49, 120, 89, 53, 41, 35, 78, 73, 90, 57, 69, 102, 88, 120, 128, 160, 245, 246, 218, 253, 169, 183, 80, 250, 1, 5, 13, 151, 213, 42, 63, 84, 83, 40, 10, 93, 152, 95, 158, 62, 98, 48, 35, 55, 64, 79, 35, 100, 71, 62, 118, 109, 116, 32, 56, 80, 89, 72, 103, 45, 112, 35, 53, 47, 122, 68, 51, 48, 93, 104, 126, 72, 58, 99, 32, 103, 125, 79, 122, 112, 46, 51, 50, 117, 49, 52, 88, 72, 65, 103, 120, 128, 168, 209, 215, 172, 177, 138, 189, 229, 1, 250, 1, 5, 13, 125, 7, 163, 62, 84, 83, 40, 107, 93, 125, 124, 245, 62, 98, 46, 109, 36, 40, 114, 60, 123, 59, 113, 39, 93, 62, 78, 82, 49, 32, 80, 82, 42, 76, 117, 126, 92, 112, 62, 124, 101, 107, 105, 109, 116, 124, 96, 86, 108, 116, 122, 95, 42, 51, 126, 84, 59, 44, 84, 86, 98, 120, 128, 248, 187, 184, 151, 184, 223, 195, 88, 250, 1, 5, 13, 98, 190, 209, 62, 84, 83, 40, 54, 93, 211, 98, 88, 63, 98, 46, 53, 96, 112, 121, 77, 48, 51, 104, 116, 85, 47, 81, 35, 49, 95, 93, 118, 101, 59, 36, 111, 71, 118, 76, 65, 99, 80, 59, 102, 58, 36, 68, 65, 124, 95, 59, 110, 92, 62, 100, 103, 117, 52, 92, 111, 35, 120, 128, 204, 255, 136, 228, 217, 252, 199, 160, 1, 250, 1, 5, 13, 227, 51, 114, 63, 84, 83, 40, 111, 93, 235, 200, 109, 63, 98, 65, 106, 123, 43, 68, 32, 108, 105, 67, 88, 105, 95, 118, 34, 90, 81, 105, 47, 37, 80, 67, 110, 58, 70, 86, 59, 121, 51, 57, 92, 61, 74, 85, 71, 109, 79, 39, 57, 124, 124, 114, 81, 74, 35, 83, 36, 112, 115, 89, 43, 37, 114, 50, 72, 79, 42, 79, 84, 83, 40, 38, 89, 79, 102, 58, 62, 120, 128, 171, 239, 203, 241, 212, 250, 222, 140, 1, 250, 1, 5, 13, 194, 202, 252, 62, 84, 83, 40, 26, 93, 50, 6, 238, 61, 98, 77, 73, 80, 50, 40, 93, 113, 67, 54, 113, 81, 74, 37, 88, 45, 87, 73, 56, 44, 118, 99, 126, 82, 101, 115, 117, 56, 33, 99, 104, 52, 122, 65, 95, 78, 97, 84, 96, 41, 106, 93, 101, 57, 98, 33, 92, 32, 32, 65, 46, 111, 38, 123, 87, 79, 43, 118, 106, 61, 49, 68, 111, 94, 77, 92, 86, 41, 69, 42, 75, 35, 104, 46, 65, 57, 124, 101, 110, 120, 128, 160, 178, 180, 139, 227, 145, 163, 219, 1, 250, 1, 5, 13, 164, 37, 119, 62, 84, 83, 40, 113, 93, 187, 33, 130, 62, 98, 42, 94, 85, 119, 46, 125, 105, 47, 66, 106, 104, 66, 118, 69, 108, 38, 106, 37, 73, 83, 90, 117, 117, 43, 39, 118, 90, 61, 82, 69, 39, 38, 38, 59, 44, 48, 41, 85, 78, 87, 63, 53, 102, 120, 128, 248, 172, 222, 186, 160, 231, 242, 213, 1, 250, 1, 5, 13, 59, 73, 137, 62, 84, 83, 40, 49, 93, 4, 97, 118, 62, 98, 50, 122, 76, 117, 121, 105, 57, 98, 58, 65, 104, 73, 111, 55, 67, 75, 92, 124, 99, 98, 60, 91, 56, 91, 124, 52, 85, 113, 52, 69, 46, 53, 112, 97, 95, 94, 111, 91, 74, 60, 107, 67, 33, 106, 71, 94, 100, 55, 52, 114, 87, 120, 128, 168, 141, 159, 139, 187, 234, 248, 98, 250, 1, 5, 13, 183, 66, 118, 63, 84, 83, 40, 72, 93, 234, 238, 195, 61, 98, 48, 90, 98, 112, 120, 100, 51, 71, 78, 115, 50, 82, 88, 46, 86, 99, 91, 33, 81, 70, 117, 120, 89, 77, 51, 61, 79, 62, 92, 65, 109, 68, 57, 58, 88, 37, 123, 126, 97, 100, 40, 68, 115, 44, 87, 116, 38, 86, 95, 120, 128, 176, 245, 234, 212, 128, 171, 215, 64, 250, 1, 5, 13, 210, 6, 120, 62, 84, 83, 40, 72, 93, 138, 170, 126, 62, 98, 41, 84, 94, 48, 32, 52, 92, 90, 53, 115, 105, 45, 38, 109, 57, 61, 85, 81, 103, 91, 62, 107, 62, 81, 36, 77, 117, 62, 55, 119, 93, 45, 42, 55, 45, 99, 90, 72, 36, 102, 66, 38, 120, 128, 132, 228, 223, 161, 152, 160, 254, 63, 250, 1, 5, 13, 30, 191, 86, 62, 84, 83, 40, 76, 93, 244, 171, 62, 63, 98, 47, 37, 105, 90, 104, 33, 46, 102, 90, 55, 74, 54, 45, 43, 82, 62, 61, 67, 61, 53, 92, 35, 110, 96, 84, 97, 44, 77, 33, 57, 55, 60, 42, 119, 60, 71, 44, 98, 78, 117, 79, 69, 78, 126, 97, 77, 77, 60, 120, 128, 128, 230, 154, 232, 148, 176, 214, 193, 1, 250, 1, 5, 13, 229, 0, 219, 62, 84, 83, 40, 6, 93, 206, 162, 49, 63, 98, 36, 49, 125, 123, 99, 54, 40, 38, 38, 115, 96, 101, 65, 126, 46, 44, 52, 110, 43, 49, 90, 116, 70, 101, 55, 83, 111, 125, 38, 51, 111, 123, 87, 52, 84, 42, 44, 120, 128, 200, 159, 184, 244, 208, 252, 193, 123, 250, 1, 5, 13, 39, 53, 22, 63, 84, 83, 40, 22, 93, 231, 247, 18, 61, 98, 70, 91, 71, 34, 110, 94, 45, 126, 83, 65, 57, 76, 69, 55, 73, 108, 106, 55, 99, 47, 70, 42, 126, 113, 36, 100, 46, 44, 74, 35, 32, 55, 54, 121, 46, 125, 77, 68, 118, 88, 70, 111, 74, 100, 121, 67, 85, 64, 106, 103, 63, 115, 56, 71, 105, 120, 92, 85, 125, 42, 79, 32, 84, 79, 64, 33, 53, 75, 40, 75, 62, 120, 128, 128, 197, 185, 246, 137, 168, 204, 179, 1, 250, 1, 10, 13, 231, 115, 174, 62, 29, 45, 17, 233, 61, 84, 83, 40, 97, 93, 193, 30, 17, 63, 98, 21, 94, 58, 119, 95, 46, 109, 65, 97, 98, 43, 126, 110, 47, 52, 64, 119, 70, 108, 40, 69, 58, 120, 128, 240, 226, 148, 175, 139, 151, 166, 249, 1, 250, 1, 5, 13, 89, 144, 192, 62, 84, 83, 40, 117, 93, 93, 246, 18, 62, 98, 73, 42, 55, 62, 72, 120, 83, 45, 94, 51, 58, 65, 93, 61, 122, 97, 94, 114, 107, 53, 34, 70, 59, 114, 42, 70, 32, 83, 34, 67, 59, 99, 117, 126, 82, 35, 85, 34, 56, 105, 87, 112, 47, 122, 121, 126, 58, 40, 112, 69, 101, 71, 46, 46, 117, 102, 109, 67, 52, 34, 119, 126, 43, 59, 119, 85, 75, 93, 106, 119, 44, 92, 90, 33, 120, 128, 192, 243, 157, 154, 235, 155, 239, 209, 1, 250, 1, 5, 13, 160, 205, 51, 62, 84, 83, 40, 30, 93, 112, 164, 173, 62, 98, 64, 120, 43, 44, 118, 97, 91, 92, 114, 85, 103, 41, 106, 52, 49, 109, 53, 113, 87, 101, 115, 34, 68, 82, 91, 61, 120, 57, 41, 108, 44, 80, 100, 79, 77, 74, 40, 116, 33, 60, 79, 93, 36, 32, 99, 84, 126, 98, 121, 109, 68, 47, 37, 74, 65, 61, 84, 87, 80, 88, 104, 65, 82, 38, 72, 120, 128, 186, 193, 225, 179, 206, 139, 140, 158, 1, 250, 1, 10, 13, 149, 230, 194, 62, 29, 131, 18, 147, 62, 84, 83, 40, 94, 93, 124, 235, 60, 63, 98, 48, 100, 64, 111, 58, 54, 54, 124, 67, 110, 39, 62, 53, 62, 58, 72, 123, 75, 58, 46, 48, 117, 80, 68, 71, 83, 45, 43, 125, 87, 77, 47, 98, 122, 51, 41, 35, 62, 105, 51, 43, 63, 48, 104, 72, 58, 83, 34, 55, 120, 128, 248, 251, 177, 234, 186, 223, 143, 211, 1, 250, 1, 5, 13, 136, 47, 237, 62, 84, 83, 40, 98, 93, 92, 94, 216, 61, 98, 133, 1, 45, 86, 111, 52, 122, 72, 102, 40, 42, 126, 107, 64, 118, 90, 57, 43, 49, 68, 92, 97, 38, 34, 111, 100, 102, 122, 45, 32, 42, 115, 63, 43, 98, 37, 85, 68, 67, 116, 40, 117, 34, 43, 33, 63, 68, 71, 81, 94, 57, 118, 38, 57, 110, 40, 35, 42, 101, 42, 77, 126, 58, 102, 124, 54, 95, 95, 93, 112, 37, 116, 103, 59, 59, 101, 94, 121, 33, 80, 63, 62, 73, 78, 101, 51, 109, 37, 59, 89, 34, 74, 94, 56, 71, 40, 91, 59, 45, 106, 95, 99, 105, 95, 89, 67, 47, 105, 124, 40, 73, 40, 41, 53, 105, 46, 85, 107, 32, 105, 71, 89, 68, 36, 110, 89, 54, 79, 114, 51, 42, 66, 108, 54, 111, 120, 128, 144, 224, 195, 211, 247, 128, 158, 80, 250, 1, 5, 13, 188, 212, 11, 63, 84, 83, 40, 96, 93, 210, 22, 99, 63, 98, 70, 66, 35, 35, 39, 51, 47, 120, 65, 72, 77, 56, 81, 111, 58, 66, 66, 37, 63, 101, 112, 126, 45, 95, 117, 105, 125, 39, 59, 114, 68, 46, 89, 107, 117, 93, 102, 68, 81, 49, 115, 117, 55, 108, 33, 90, 96, 57, 39, 74, 115, 105, 59, 109, 119, 116, 52, 67, 44, 61, 52, 40, 92, 78, 35, 62, 93, 101, 120, 92, 91, 120, 128, 168, 212, 157, 209, 209, 162, 237, 124, 250, 1, 10, 13, 167, 98, 10, 63, 29, 44, 31, 28, 62, 84, 83, 40, 108, 93, 229, 37, 114, 63, 98, 67, 103, 63, 93, 59, 41, 99, 126, 112, 126, 89, 113, 107, 115, 33, 72, 67, 55, 52, 123, 106, 56, 104, 105, 98, 123, 122, 64, 74, 109, 117, 54, 45, 123, 124, 45, 116, 100, 112, 51, 80, 41, 107, 79, 72, 75, 113, 112, 119, 51, 56, 100, 63, 50, 38, 96, 125, 85, 122, 63, 46, 67, 84, 34, 40, 67, 100, 110, 120, 128, 176, 227, 196, 254, 254, 154, 166, 244, 1, 250, 1, 5, 13, 147, 140, 95, 63, 84, 83, 40, 68, 93, 11, 221, 37, 63, 98, 72, 70, 32, 75, 97, 76, 57, 64, 54, 41, 41, 71, 54, 85, 48, 118, 122, 117, 59, 46, 63, 104, 81, 37, 44, 83, 104, 70, 37, 102, 35, 121, 36, 95, 89, 62, 62, 102, 67, 52, 100, 52, 100, 53, 36, 122, 61, 76, 119, 76, 105, 119, 90, 100, 52, 115, 116, 121, 62, 45, 99, 114, 59, 78, 38, 47, 67, 85, 122, 112, 87, 51, 82, 120, 128, 182, 225, 152, 193, 175, 139, 198, 137, 1, 250, 1, 5, 13, 1, 137, 223, 62, 84, 83, 40, 13, 93, 14, 81, 54, 61, 98, 72, 59, 33, 48, 54, 60, 77, 88, 123, 42, 62, 63, 75, 100, 73, 68, 71, 53, 80, 113, 120, 53, 47, 115, 87, 103, 80, 38, 115, 85, 69, 83, 58, 41, 111, 88, 119, 45, 118, 71, 68, 98, 82, 123, 112, 36, 41, 53, 71, 51, 106, 60, 86, 87, 48, 109, 44, 45, 88, 78, 106, 71, 99, 69, 99, 105, 36, 65, 116, 111, 75, 58, 61, 120, 128, 250, 180, 236, 232, 209, 167, 227, 12, 250, 1, 5, 13, 119, 138, 241, 62, 84, 83, 40, 30, 93, 139, 80, 51, 63, 98, 47, 50, 34, 83, 93, 59, 94, 96, 105, 40, 124, 98, 120, 33, 76, 105, 84, 72, 91, 124, 125, 44, 55, 39, 126, 103, 64, 86, 102, 80, 125, 77, 42, 120, 43, 120, 43, 37, 112, 79, 103, 35, 91, 91, 107, 65, 72, 114, 120, 128, 172, 139, 249, 133, 212, 218, 200, 175, 1, 250, 1, 5, 13, 26, 118, 46, 63, 84, 83, 40, 92, 93, 113, 53, 100, 63, 98, 46, 75, 79, 56, 86, 122, 121, 83, 116, 121, 39, 120, 57, 41, 79, 87, 126, 117, 82, 94, 78, 87, 44, 52, 121, 80, 91, 59, 93, 62, 76, 51, 38, 106, 41, 33, 89, 96, 83, 124, 48, 80, 122, 84, 95, 42, 65, 120, 128, 200, 175, 168, 232, 190, 252, 194, 194, 1, 250, 1, 10, 13, 75, 159, 150, 62, 29, 38, 94, 66, 63, 84, 83, 40, 55, 93, 55, 98, 118, 63, 98, 32, 111, 34, 54, 61, 63, 58, 61, 38, 63, 94, 116, 86, 76, 115, 114, 77, 32, 78, 124, 61, 66, 85, 77, 125, 91, 86, 83, 111, 46, 41, 126, 116, 120, 128, 168, 174, 153, 158, 206, 242, 202, 241, 1, 250, 1, 10, 13, 181, 139, 2, 63, 29, 223, 101, 188, 62, 84, 83, 40, 5, 93, 0, 193, 12, 63, 98, 66, 106, 96, 63, 67, 77, 93, 81, 91, 67, 39, 107, 55, 114, 80, 108, 106, 43, 89, 58, 83, 56, 96, 103, 102, 76, 118, 53, 95, 126, 97, 123, 80, 110, 120, 53, 108, 93, 120, 115, 119, 123, 65, 56, 79, 103, 88, 58, 88, 49, 42, 104, 118, 40, 79, 60, 41, 120, 87, 118, 85, 71, 112, 91, 97, 43, 58, 120, 128, 196, 248, 144, 154, 171, 196, 135, 54, 250, 1, 5, 13, 56, 198, 112, 63, 84, 83, 40, 36, 93, 172, 154, 93, 59, 98, 74, 44, 49, 100, 66, 86, 117, 72, 56, 125, 115, 92, 92, 77, 116, 119, 37, 71, 63, 92, 43, 115, 37, 34, 62, 79, 42, 101, 85, 67, 77, 48, 64, 60, 49, 125, 87, 50, 101, 119, 69, 96, 95, 89, 34, 119, 105, 67, 101, 104, 38, 113, 40, 60, 48, 44, 38, 46, 69, 113, 76, 47, 113, 115, 80, 98, 60, 64, 60, 118, 64, 113, 96, 70, 54, 120, 128, 240, 144, 131, 151, 242, 134, 153, 184, 1, 250, 1, 5, 13, 113, 7, 80, 62, 84, 83, 40, 58, 93, 228, 230, 145, 58, 98, 80, 69, 101, 102, 126, 107, 61, 90, 40, 35, 44, 36, 118, 72, 107, 115, 75, 54, 109, 107, 41, 63, 91, 73, 38, 110, 72, 51, 48, 96, 38, 101, 119, 89, 46, 32, 44, 100, 48, 37, 85, 116, 90, 57, 51, 55, 126, 118, 38, 108, 122, 32, 90, 70, 66, 95, 105, 59, 96, 48, 67, 42, 73, 70, 124, 69, 44, 61, 58, 107, 102, 101, 38, 104, 53, 51, 100, 66, 53, 109, 111, 120, 128, 176, 238, 156, 136, 158, 243, 230, 193, 1, 250, 1, 5, 13, 155, 28, 11, 62, 84, 83, 40, 46, 93, 144, 131, 57, 63, 98, 59, 37, 42, 80, 55, 77, 53, 111, 36, 126, 97, 75, 75, 51, 60, 109, 43, 97, 92, 57, 37, 53, 121, 113, 49, 46, 122, 71, 38, 113, 63, 113, 124, 38, 96, 118, 58, 90, 37, 107, 85, 118, 96, 38, 38, 105, 103, 80, 37, 71, 98, 46, 115, 113, 61, 79, 42, 56, 63, 40, 120, 128, 192, 246, 192, 152, 145, 180, 135, 196, 1, 250, 1, 5, 13, 18, 171, 81, 63, 84, 83, 40, 98, 93, 161, 20, 62, 62, 98, 33, 94, 111, 77, 68, 81, 68, 82, 80, 91, 112, 99, 46, 83, 115, 107, 71, 70, 73, 65, 94, 47, 49, 125, 42, 103, 49, 107, 34, 58, 123, 56, 102, 44, 120, 128, 144, 215, 228, 254, 250, 184, 165, 64, 250, 1, 5, 13, 75, 235, 206, 62, 84, 83, 40, 29, 93, 65, 48, 146, 62, 98, 43, 66, 125, 96, 115, 49, 81, 34, 46, 47, 122, 54, 76, 119, 97, 40, 76, 43, 33, 76, 112, 67, 91, 64, 88, 79, 53, 95, 88, 123, 33, 36, 76, 84, 44, 36, 74, 96, 105, 125, 95, 122, 122, 88, 120, 128, 130, 148, 209, 147, 147, 160, 137, 157, 1, 250, 1, 5, 13, 41, 217, 14, 63, 84, 83, 40, 71, 93, 26, 7, 186, 62, 98, 40, 58, 47, 58, 33, 77, 120, 68, 118, 101, 93, 40, 68, 122, 113, 73, 50, 45, 118, 104, 118, 106, 92, 92, 107, 64, 35, 108, 117, 71, 35, 42, 35, 120, 114, 68, 72, 97, 126, 85, 83, 120, 128, 210, 229, 226, 130, 144, 173, 150, 150, 1, 250, 1, 10, 13, 142, 76, 93, 62, 29, 184, 100, 162, 62, 84, 83, 40, 102, 93, 173, 216, 22, 63, 98, 84, 69, 34, 109, 81, 104, 74, 61, 107, 94, 86, 92, 81, 77, 95, 73, 44, 78, 79, 98, 82, 37, 74, 40, 76, 33, 79, 46, 64, 53, 101, 86, 62, 110, 51, 122, 33, 125, 67, 93, 87, 108, 54, 58, 59, 103, 117, 51, 62, 44, 71, 97, 100, 91, 58, 82, 121, 120, 65, 80, 57, 60, 124, 86, 119, 32, 61, 98, 58, 100, 71, 45, 42, 112, 42, 101, 109, 47, 108, 99, 42, 59, 110, 52, 109, 120, 128, 214, 146, 163, 219, 176, 149, 153, 7, 250, 1, 5, 13, 247, 97, 90, 63, 84, 83, 40, 89, 93, 92, 248, 12, 63, 98, 62, 95, 32, 40, 92, 114, 68, 58, 110, 95, 65, 59, 73, 51, 120, 89, 99, 57, 86, 114, 80, 84, 100, 105, 44, 92, 69, 124, 77, 103, 103, 114, 46, 90, 45, 89, 99, 63, 80, 55, 76, 111, 117, 45, 108, 80, 58, 118, 66, 52, 80, 83, 77, 125, 50, 126, 121, 53, 123, 126, 76, 70, 108, 120, 128, 139, 135, 172, 247, 214, 184, 224, 10, 250, 1, 5, 13, 37, 122, 105, 63, 84, 83, 40, 61, 93, 46, 170, 17, 62, 98, 69, 110, 37, 63, 117, 67, 103, 62, 70, 96, 94, 87, 124, 90, 66, 77, 90, 56, 55, 52, 69, 47, 71, 45, 94, 77, 67, 81, 105, 37, 35, 109, 53, 63, 67, 74, 113, 34, 61, 44, 106, 46, 86, 81, 64, 66, 56, 64, 91, 126, 107, 83, 110, 98, 40, 124, 70, 118, 95, 72, 32, 54, 83, 65, 93, 111, 65, 93, 55, 118, 120, 128, 216, 187, 183, 136, 216, 221, 187, 80, 250, 1, 5, 13, 100, 11, 22, 63, 84, 83, 40, 120, 93, 133, 131, 239, 61, 98, 69, 72, 55, 88, 117, 108, 59, 52, 34, 116, 106, 57, 78, 126, 82, 54, 69, 35, 121, 66, 116, 43, 84, 89, 52, 115, 80, 33, 90, 40, 100, 66, 51, 88, 99, 57, 111, 67, 80, 42, 67, 52, 124, 65, 104, 40, 46, 112, 109, 70, 113, 115, 96, 53, 37, 126, 115, 92, 67, 34, 60, 58, 88, 120, 48, 72, 37, 117, 58, 56, 120, 128, 204, 247, 141, 221, 233, 188, 239, 51, 250, 1, 10, 13, 58, 105, 131, 60, 29, 130, 148, 7, 63, 84, 83, 40, 106, 93, 239, 201, 123, 63, 98, 42, 95, 45, 50, 112, 44, 100, 95, 51, 52, 54, 111, 96, 125, 82, 100, 69, 50, 32, 78, 109, 41, 90, 36, 49, 63, 34, 55, 85, 84, 32, 111, 64, 112, 55, 68, 112, 96, 107, 54, 60, 92, 38, 120, 128, 232, 184, 158, 206, 173, 198, 243, 48, 250, 1, 5, 13, 196, 135, 49, 63, 84, 83, 40, 41, 93, 121, 191, 61, 63, 98, 27, 39, 67, 84, 114, 51, 33, 36, 34, 115, 37, 41, 32, 80, 42, 77, 41, 93, 52, 70, 78, 111, 102, 45, 114, 99, 70, 104, 120, 128, 208, 172, 133, 163, 248, 228, 170, 152, 1, 250, 1, 5, 13, 59, 164, 56, 62, 84, 83, 40, 3, 93, 183, 152, 120, 62, 98, 42, 65, 113, 88, 122, 115, 33, 97, 107, 110, 60, 110, 66, 63, 103, 95, 59, 44, 109, 82, 72, 47, 59, 111, 118, 64, 53, 97, 46, 108, 55, 113, 112, 113, 108, 103, 46, 118, 47, 88, 40, 122, 71, 120, 128, 224, 132, 162, 249, 237, 165, 144, 202, 1, 250, 1, 10, 13, 118, 170, 65, 62, 29, 158, 193, 90, 60, 84, 83, 40, 47, 93, 128, 121, 78, 63, 98, 56, 43, 35, 42, 91, 67, 93, 89, 39, 37, 33, 97, 89, 94, 62, 83, 126, 86, 74, 124, 80, 81, 126, 81, 67, 124, 53, 74, 76, 102, 99, 93, 116, 123, 71, 86, 42, 97, 90, 77, 50, 55, 101, 97, 44, 53, 84, 121, 104, 71, 71, 32, 102, 35, 114, 58, 43, 120, 128, 248, 253, 167, 248, 171, 239, 191, 194, 1, 250, 1, 5, 13, 190, 63, 61, 63, 84, 83, 40, 83, 93, 113, 0, 21, 62, 98, 55, 50, 44, 63, 65, 67, 107, 93, 54, 103, 73, 61, 122, 123, 106, 56, 107, 61, 68, 46, 72, 58, 97, 37, 63, 99, 118, 113, 40, 45, 74, 88, 122, 123, 64, 32, 43, 69, 64, 104, 72, 118, 99, 32, 125, 42, 36, 105, 56, 90, 78, 109, 44, 88, 54, 114, 120, 128, 144, 148, 142, 200, 143, 161, 241, 192, 1, 250, 1, 5, 13, 229, 174, 148, 61, 84, 83, 40, 0, 93, 244, 143, 36, 63, 98, 57, 75, 121, 84, 40, 60, 112, 66, 126, 91, 105, 44, 70, 123, 91, 100, 80, 86, 96, 39, 52, 94, 45, 89, 77, 94, 92, 75, 66, 101, 76, 79, 36, 69, 98, 60, 78, 66, 90, 98, 45, 103, 37, 45, 77, 78, 39, 112, 80, 114, 100, 59, 110, 126, 106, 125, 62, 64, 120, 128, 203, 233, 217, 190, 221, 204, 206, 10, 250, 1, 5, 13, 51, 231, 223, 62, 84, 83, 40, 85, 93, 159, 187, 196, 62, 98, 84, 32, 57, 46, 58, 39, 33, 57, 63, 54, 46, 122, 124, 121, 76, 89, 126, 43, 125, 86, 106, 122, 78, 32, 49, 95, 37, 89, 99, 124, 46, 58, 49, 35, 103, 102, 106, 125, 51, 70, 38, 87, 48, 92, 86, 64, 113, 37, 61, 67, 62, 52, 40, 114, 116, 73, 80, 56, 124, 89, 34, 70, 84, 65, 39, 114, 105, 121, 49, 101, 109, 33, 119, 87, 79, 50, 105, 113, 73, 111, 109, 126, 59, 64, 93, 120, 128, 168, 183, 255, 142, 167, 186, 251, 247, 1, 250, 1, 5, 13, 200, 228, 72, 62, 84, 83, 40, 39, 93, 166, 207, 17, 62, 98, 37, 62, 54, 82, 32, 88, 67, 95, 35, 110, 84, 98, 85, 118, 114, 87, 85, 61, 59, 79, 66, 97, 94, 93, 110, 44, 107, 35, 42, 52, 98, 45, 95, 75, 107, 113, 78, 59, 120, 160, 243, 144, 132, 204, 154, 135, 161, 2, 250, 1, 5, 13, 92, 149, 169, 62, 84, 83, 40, 26, 93, 106, 66, 85, 63, 98, 57, 47, 122, 61, 101, 58, 117, 43, 99, 105, 64, 93, 97, 122, 74, 95, 87, 99, 114, 107, 64, 84, 110, 43, 70, 34, 42, 43, 33, 40, 58, 60, 123, 59, 82, 82, 99, 64, 40, 113, 117, 118, 70, 73, 66, 79, 125, 80, 65, 50, 118, 86, 45, 83, 114, 58, 64, 111, 120, 128, 200, 179, 193, 158, 183, 156, 139, 244, 1, 250, 1, 10, 13, 243, 158, 53, 63, 29, 244, 71, 44, 62, 84, 83, 40, 99, 93, 131, 244, 228, 61, 98, 74, 90, 79, 36, 97, 70, 71, 119, 123, 54, 91, 33, 117, 73, 45, 68, 103, 117, 36, 88, 104, 109, 49, 98, 47, 72, 72, 55, 49, 115, 73, 67, 97, 43, 107, 107, 120, 62, 109, 87, 41, 72, 54, 95, 122, 43, 92, 73, 45, 122, 39, 32, 94, 86, 33, 60, 72, 108, 115, 57, 124, 47, 101, 39, 108, 55, 62, 105, 92, 65, 75, 73, 40, 76, 79, 120, 128, 176, 148, 132, 217, 236, 162, 161, 44, 250, 1, 5, 13, 82, 102, 19, 63, 84, 83, 40, 65, 93, 17, 230, 62, 63, 98, 43, 35, 106, 126, 42, 54, 107, 72, 99, 43, 41, 79, 66, 44, 73, 84, 89, 120, 97, 46, 114, 98, 107, 114, 107, 106, 79, 92, 119, 50, 38, 96, 100, 119, 37, 112, 77, 125, 36, 79, 59, 67, 82, 51, 120, 128, 168, 160, 220, 235, 227, 130, 226, 86, 250, 1, 5, 13, 145, 114, 11, 62, 84, 83, 40, 125, 93, 107, 20, 167, 62, 98, 26, 126, 83, 114, 85, 93, 71, 93, 35, 54, 119, 50, 63, 102, 47, 80, 81, 36, 72, 105, 74, 38, 88, 38, 90, 116, 50, 120, 128, 152, 151, 138, 198, 173, 185, 209, 111, 250, 1, 12, 13, 60, 11, 253, 62, 29, 76, 11, 46, 62, 56, 1, 84, 83, 40, 23, 93, 86, 97, 41, 63, 98, 63, 107, 48, 93, 67, 63, 80, 34, 60, 57, 33, 89, 85, 107, 100, 103, 44, 113, 33, 47, 55, 65, 83, 56, 70, 77, 55, 96, 74, 84, 46, 114, 93, 101, 82, 82, 86, 80, 45, 50, 83, 70, 77, 48, 37, 126, 79, 110, 48, 74, 102, 92, 46, 73, 121, 60, 55, 118, 54, 117, 39, 110, 87, 103, 120, 128, 149, 237, 135, 130, 169, 233, 190, 15, 250, 1, 5, 13, 126, 219, 20, 62, 84, 83, 40, 120, 93, 34, 68, 86, 63, 98, 73, 56, 49, 49, 90, 100, 110, 90, 112, 115, 66, 50, 71, 124, 71, 79, 32, 108, 81, 99, 52, 106, 53, 58, 94, 58, 54, 42, 99, 109, 100, 38, 118, 35, 94, 86, 126, 56, 44, 119, 63, 109, 41, 72, 116, 99, 110, 119, 95, 63, 87, 122, 88, 72, 101, 36, 34, 117, 82, 63, 77, 100, 118, 34, 46, 60, 59, 67, 61, 112, 80, 102, 95, 88, 120, 128, 152, 208, 145, 246, 183, 129, 141, 177, 1, 250, 1, 5, 13, 79, 80, 207, 62, 84, 83, 40, 87, 93, 29, 156, 77, 63, 98, 80, 69, 121, 74, 61, 73, 68, 54, 105, 76, 77, 61, 90, 83, 40, 101, 107, 73, 90, 118, 38, 57, 87, 72, 75, 90, 110, 109, 111, 58, 126, 36, 62, 66, 53, 80, 87, 115, 48, 58, 81, 106, 67, 111, 108, 37, 98, 61, 72, 32, 114, 47, 104, 79, 90, 82, 108, 80, 126, 98, 90, 86, 70, 79, 76, 73, 125, 55, 61, 87, 46, 118, 56, 64, 68, 59, 116, 103, 90, 69, 118, 120, 128, 144, 178, 162, 248, 231, 144, 147, 194, 1, 250, 1, 5, 13, 0, 223, 199, 62, 84, 83, 40, 106, 93, 105, 38, 207, 62, 98, 91, 110, 58, 110, 102, 97, 98, 38, 116, 77, 94, 122, 68, 115, 66, 67, 39, 74, 126, 111, 113, 122, 118, 72, 42, 63, 93, 37, 117, 88, 106, 41, 49, 85, 41, 92, 46, 46, 80, 90, 115, 39, 34, 106, 96, 73, 118, 33, 68, 54, 62, 75, 81, 84, 125, 74, 119, 112, 100, 71, 36, 93, 48, 60, 97, 85, 104, 109, 106, 100, 52, 119, 121, 68, 122, 105, 120, 43, 103, 95, 71, 91, 95, 94, 57, 62, 86, 91, 87, 93, 100, 61, 120, 128, 152, 192, 201, 230, 187, 129, 204, 55, 250, 1, 5, 13, 92, 240, 194, 61, 84, 83, 40, 71, 93, 35, 205, 117, 62, 98, 46, 118, 101, 40, 42, 95, 40, 53, 95, 33, 70, 81, 45, 88, 51, 80, 107, 40, 37, 126, 72, 124, 80, 34, 66, 125, 45, 54, 44, 32, 118, 78, 112, 109, 100, 114, 51, 35, 93, 126, 63, 69, 32, 92, 114, 108, 73, 120, 128, 247, 128, 208, 128, 182, 135, 128, 133, 1, 250, 1, 5, 13, 14, 163, 190, 62, 84, 83, 40, 17, 93, 35, 8, 107, 63, 98, 79, 52, 67, 41, 45, 57, 69, 99, 100, 43, 82, 113, 41, 94, 42, 118, 96, 63, 115, 64, 61, 104, 74, 37, 95, 34, 124, 114, 46, 85, 84, 41, 113, 32, 40, 98, 43, 102, 96, 75, 76, 79, 61, 81, 75, 76, 60, 65, 82, 123, 43, 42, 47, 34, 110, 46, 104, 61, 72, 42, 59, 81, 84, 47, 86, 73, 126, 41, 85, 70, 107, 120, 94, 72, 115, 109, 75, 120, 89, 50, 120, 128, 168, 194, 191, 229, 186, 146, 252, 92, 250, 1, 5, 13, 197, 143, 31, 63, 84, 83, 40, 43, 93, 13, 85, 69, 62, 98, 72, 73, 74, 120, 111, 48, 120, 120, 108, 61, 85, 47, 121, 121, 45, 121, 34, 77, 51, 106, 43, 47, 49, 75, 102, 46, 33, 98, 110, 99, 54, 69, 95, 49, 66, 100, 44, 79, 47, 119, 91, 77, 125, 91, 41, 56, 120, 114, 61, 125, 87, 100, 81, 111, 52, 34, 56, 126, 50, 96, 47, 54, 41, 41, 39, 47, 78, 104, 87, 72, 109, 81, 62, 120, 128, 184, 147, 195, 225, 201, 155, 153, 37, 250, 1, 5, 13, 94, 2, 33, 62, 84, 83, 40, 82, 93, 243, 223, 59, 62, 98, 61, 85, 66, 77, 53, 45, 68, 112, 43, 80, 114, 110, 123, 63, 76, 45, 61, 77, 103, 68, 67, 115, 83, 120, 104, 47, 59, 115, 48, 37, 69, 54, 96, 86, 112, 97, 91, 99, 75, 34, 112, 56, 124, 85, 60, 95, 108, 55, 123, 96, 51, 111, 82, 105, 58, 60, 34, 72, 100, 37, 113, 80, 120, 128, 224, 166, 217, 234, 147, 182, 202, 213, 1, 250, 1, 5, 13, 238, 196, 128, 61, 84, 83, 40, 14, 93, 170, 76, 35, 63, 98, 67, 46, 68, 78, 105, 80, 89, 34, 101, 83, 42, 117, 125, 92, 41, 66, 36, 119, 79, 113, 85, 98, 118, 60, 83, 95, 51, 126, 69, 48, 64, 88, 118, 74, 94, 80, 71, 103, 49, 47, 89, 109, 107, 53, 47, 70, 36, 107, 90, 97, 108, 87, 48, 51, 84, 120, 54, 40, 122, 42, 61, 90, 91, 85, 50, 81, 125, 82, 120, 128, 144, 218, 207, 255, 138, 209, 253, 252, 1, 250, 1, 5, 13, 4, 27, 22, 63, 84, 83, 40, 121, 93, 92, 108, 149, 62, 98, 45, 102, 63, 55, 102, 117, 96, 44, 45, 90, 70, 67, 99, 66, 104, 72, 99, 116, 100, 58, 62, 107, 38, 113, 126, 50, 54, 35, 93, 71, 80, 109, 34, 102, 81, 112, 111, 122, 109, 34, 84, 123, 109, 78, 118, 54, 120, 128, 168, 168, 212, 174, 217, 194, 162, 245, 1, 250, 1, 5, 13, 163, 113, 74, 62, 84, 83, 40, 55, 93, 146, 245, 188, 61, 98, 69, 58, 93, 56, 61, 92, 78, 95, 77, 56, 83, 95, 93, 77, 100, 42, 87, 65, 123, 112, 118, 87, 103, 38, 97, 101, 66, 125, 86, 122, 103, 58, 35, 88, 85, 44, 114, 85, 100, 42, 34, 48, 66, 97, 58, 66, 117, 77, 40, 68, 62, 116, 122, 65, 81, 79, 81, 86, 85, 87, 58, 80, 40, 82, 80, 56, 91, 36, 119, 87, 120, 128, 250, 240, 230, 179, 207, 135, 183, 158, 1, 250, 1, 5, 13, 2, 240, 116, 60, 84, 83, 40, 79, 93, 173, 159, 92, 63, 98, 65, 110, 101, 53, 37, 107, 63, 110, 115, 116, 50, 91, 114, 63, 97, 39, 37, 89, 60, 32, 45, 110, 80, 40, 110, 49, 33, 102, 113, 85, 79, 46, 61, 56, 40, 82, 106, 58, 76, 105, 53, 103, 70, 91, 117, 117, 92, 120, 120, 124, 114, 125, 121, 32, 77, 35, 61, 93, 69, 114, 106, 87, 123, 61, 68, 36, 120, 128, 240, 149, 167, 192, 147, 175, 185, 41, 250, 1, 10, 13, 105, 229, 27, 63, 29, 84, 160, 122, 62, 84, 83, 40, 20, 93, 129, 131, 148, 62, 98, 46, 106, 45, 81, 105, 68, 72, 116, 49, 120, 84, 40, 108, 116, 98, 81, 51, 60, 105, 37, 52, 44, 115, 88, 126, 93, 107, 40, 54, 113, 87, 34, 97, 105, 96, 40, 111, 71, 54, 41, 89, 72, 76, 76, 62, 98, 105, 120, 128, 188, 159, 174, 151, 226, 251, 241, 10, 250, 1, 5, 13, 196, 249, 29, 63, 84, 83, 40, 109, 93, 142, 90, 85, 63, 98, 44, 33, 111, 50, 121, 46, 118, 84, 82, 44, 88, 64, 93, 62, 65, 81, 70, 35, 51, 90, 97, 107, 38, 96, 74, 107, 95, 70, 57, 60, 114, 99, 76, 68, 34, 85, 50, 79, 111, 82, 48, 59, 116, 41, 80, 120, 128, 144, 159, 150, 148, 253, 248, 177, 161, 1, 250, 1, 5, 13, 133, 184, 72, 63, 84, 83, 40, 18, 93, 234, 49, 241, 61, 98, 104, 107, 60, 102, 114, 32, 48, 35, 122, 46, 102, 46, 78, 79, 58, 53, 56, 115, 114, 56, 60, 106, 63, 117, 50, 96, 73, 70, 117, 123, 48, 50, 32, 81, 59, 77, 32, 43, 112, 76, 52, 125, 90, 35, 103, 97, 35, 96, 32, 94, 111, 91, 68, 81, 112, 63, 76, 69, 84, 50, 86, 104, 44, 125, 125, 83, 45, 123, 52, 107, 53, 45, 35, 70, 36, 61, 48, 59, 46, 80, 92, 103, 69, 54, 44, 83, 108, 78, 95, 122, 33, 90, 86, 93, 116, 74, 112, 92, 37, 52, 83, 38, 76, 52, 73, 120, 128, 224, 131, 149, 219, 149, 158, 168, 217, 1, 250, 1, 5, 13, 140, 91, 24, 63, 84, 83, 40, 124, 93, 163, 161, 240, 62, 98, 31, 83, 47, 48, 55, 35, 84, 109, 67, 117, 112, 73, 102, 94, 60, 56, 106, 89, 85, 68, 81, 89, 75, 82, 53, 120, 123, 86, 59, 49, 107, 73, 120, 128, 216, 161, 198, 213, 192, 141, 178, 121, 250, 1, 5, 13, 218, 33, 82, 63, 84, 83, 40, 1, 93, 111, 242, 253, 61, 98, 63, 107, 111, 67, 82, 41, 38, 38, 122, 106, 90, 76, 116, 105, 52, 72, 111, 44, 52, 76, 114, 39, 91, 122, 61, 39, 125, 82, 49, 41, 71, 78, 119, 92, 48, 75, 122, 54, 34, 58, 74, 82, 79, 103, 89, 76, 38, 107, 38, 104, 123, 60, 101, 65, 46, 35, 48, 116, 38, 75, 42, 82, 115, 113, 120, 128, 164, 187, 143, 213, 139, 218, 251, 47, 250, 1, 5, 13, 13, 130, 5, 62, 84, 83, 40, 69, 93, 236, 32, 126, 62, 98, 50, 88, 104, 76, 89, 42, 120, 33, 63, 87, 115, 64, 111, 32, 49, 76, 72, 44, 43, 103, 85, 78, 44, 59, 38, 47, 85, 47, 118, 93, 93, 67, 77, 119, 110, 51, 61, 59, 66, 50, 108, 64, 110, 75, 59, 84, 53, 75, 120, 38, 75, 120, 128, 216, 185, 208, 155, 192, 205, 131, 221, 1, 250, 1, 5, 13, 201, 117, 129, 62, 84, 83, 40, 47, 93, 112, 13, 122, 63, 98, 27, 104, 75, 76, 70, 73, 83, 104, 42, 96, 120, 79, 113, 118, 48, 125, 46, 45, 105, 119, 122, 53, 95, 96, 126, 81, 121, 42, 120, 128, 154, 193, 231, 243, 209, 137, 188, 158, 1, 250, 1, 10, 13, 251, 143, 86, 63, 29, 33, 187, 74, 62, 84, 83, 40, 116, 93, 194, 244, 0, 62, 98, 57, 41, 122, 38, 102, 111, 115, 119, 94, 36, 53, 45, 82, 107, 97, 62, 58, 121, 119, 61, 122, 63, 72, 102, 40, 106, 77, 116, 79, 72, 81, 57, 77, 33, 67, 104, 123, 42, 54, 61, 57, 112, 57, 117, 32, 81, 45, 50, 110, 91, 110, 59, 119, 116, 123, 107, 96, 51, 120, 128, 200, 162, 186, 195, 232, 148, 210, 124, 250, 1, 5, 13, 139, 59, 118, 63, 84, 83, 40, 45, 93, 188, 255, 124, 63, 98, 54, 72, 53, 81, 122, 95, 80, 72, 120, 65, 48, 99, 89, 36, 42, 38, 81, 102, 86, 92, 58, 37, 115, 89, 53, 65, 88, 36, 86, 39, 104, 45, 58, 122, 58, 71, 35, 68, 36, 113, 92, 105, 117, 57, 94, 87, 62, 111, 112, 101, 46, 75, 70, 63, 39, 120, 128, 160, 163, 236, 142, 235, 153, 226, 246, 1, 250, 1, 5, 13, 53, 163, 13, 63, 84, 83, 40, 79, 93, 242, 65, 149, 62, 98, 40, 89, 39, 76, 112, 112, 88, 35, 72, 93, 105, 98, 34, 45, 98, 100, 32, 80, 46, 89, 121, 93, 35, 103, 50, 112, 120, 61, 101, 122, 115, 65, 113, 71, 40, 73, 106, 47, 120, 37, 96, 120, 128, 184, 198, 252, 153, 190, 179, 228, 207, 1, 250, 1, 10, 13, 22, 12, 28, 62, 29, 206, 88, 44, 63, 84, 83, 40, 8, 93, 185, 156, 30, 62, 98, 65, 99, 32, 103, 96, 62, 85, 105, 121, 96, 93, 86, 62, 57, 32, 118, 59, 60, 77, 104, 72, 111, 89, 37, 56, 121, 111, 86, 41, 120, 62, 79, 66, 96, 36, 44, 120, 84, 36, 91, 61, 86, 119, 102, 74, 114, 75, 117, 120, 46, 69, 62, 95, 118, 93, 62, 41, 121, 78, 102, 78, 125, 95, 33, 65, 46, 120, 128, 146, 169, 182, 211, 138, 201, 178, 155, 1, 250, 1, 5, 13, 137, 85, 36, 63, 84, 83, 40, 28, 93, 145, 98, 93, 63, 98, 65, 125, 101, 55, 113, 74, 112, 119, 114, 90, 69, 77, 120, 93, 122, 83, 126, 110, 74, 35, 100, 35, 125, 37, 61, 45, 62, 117, 117, 68, 60, 93, 109, 96, 38, 47, 94, 39, 109, 76, 107, 70, 53, 63, 40, 57, 84, 64, 100, 76, 66, 62, 104, 89, 79, 110, 32, 96, 121, 99, 43, 121, 33, 78, 62, 102, 120, 128, 200, 232, 230, 242, 167, 196, 182, 85, 250, 1, 5, 13, 186, 46, 130, 62, 84, 83, 40, 74, 93, 190, 96, 72, 63, 98, 43, 116, 118, 32, 125, 54, 62, 108, 93, 123, 35, 87, 125, 49, 73, 33, 124, 116, 51, 49, 54, 47, 124, 45, 41, 64, 113, 69, 102, 33, 65, 89, 60, 103, 121, 87, 74, 62, 106, 67, 48, 34, 65, 99, 120, 128, 224, 128, 173, 190, 152, 134, 232, 242, 1, 250, 1, 5, 13, 21, 142, 5, 62, 84, 83, 40, 17, 93, 46, 10, 67, 63, 98, 58, 86, 76, 64, 113, 75, 38, 65, 90, 118, 105, 117, 92, 67, 120, 38, 91, 90, 73, 59, 53, 54, 113, 86, 94, 41, 111, 32, 51, 109, 57, 55, 124, 51, 41, 109, 57, 95, 78, 45, 53, 70, 62, 95, 95, 71, 45, 126, 55, 123, 100, 41, 75, 112, 117, 81, 100, 116, 97, 120, 128, 248, 189, 197, 137, 198, 239, 171, 97, 250, 1, 5, 13, 142, 158, 30, 63, 84, 83, 40, 9, 93, 92, 18, 17, 62, 98, 35, 108, 93, 82, 120, 72, 58, 43, 107, 123, 44, 60, 37, 110, 119, 49, 117, 54, 123, 112, 103, 55, 40, 47, 106, 44, 61, 86, 40, 67, 125, 101, 81, 46, 57, 81, 120, 160, 229, 201, 185, 167, 171, 206, 204, 3, 250, 1, 5, 13, 142, 140, 21, 62, 84, 83, 40, 61, 93, 47, 54, 54, 63, 98, 54, 99, 44, 48, 104, 123, 47, 106, 39, 89, 82, 126, 74, 107, 105, 62, 117, 100, 77, 102, 108, 43, 99, 34, 71, 125, 70, 105, 117, 85, 69, 47, 103, 103, 55, 44, 90, 39, 62, 51, 91, 64, 53, 123, 84, 68, 82, 120, 103, 111, 66, 107, 83, 70, 96, 120, 128, 184, 168, 201, 201, 198, 195, 202, 75, 250, 1, 5, 13, 24, 207, 15, 58, 84, 83, 40, 13, 93, 121, 30, 66, 63, 98, 82, 106, 85, 69, 116, 81, 51, 67, 54, 98, 84, 93, 98, 109, 69, 58, 42, 76, 117, 102, 76, 34, 74, 77, 34, 38, 50, 89, 91, 65, 39, 94, 44, 80, 62, 83, 92, 54, 75, 99, 104, 49, 46, 110, 68, 42, 44, 84, 70, 56, 60, 52, 97, 56, 92, 101, 63, 40, 67, 109, 62, 89, 102, 115, 91, 116, 80, 50, 79, 113, 93, 114, 33, 49, 125, 58, 114, 91, 40, 119, 120, 93, 50, 120, 128, 244, 230, 241, 149, 145, 183, 142, 175, 1, 250, 1, 5, 13, 180, 67, 72, 61, 84, 83, 40, 109, 93, 145, 226, 120, 63, 98, 49, 115, 114, 87, 51, 84, 114, 92, 69, 46, 74, 57, 51, 79, 88, 121, 36, 84, 90, 72, 51, 79, 58, 65, 114, 99, 126, 74, 115, 96, 70, 67, 111, 104, 118, 92, 62, 119, 93, 40, 32, 67, 107, 110, 111, 88, 71, 88, 62, 126, 120, 128, 160, 224, 199, 233, 234, 129, 190, 204, 1, 250, 1, 5, 13, 203, 166, 37, 63, 84, 83, 40, 95, 93, 191, 245, 30, 63, 98, 46, 94, 76, 88, 80, 99, 79, 84, 71, 103, 99, 103, 38, 73, 74, 87, 122, 90, 44, 118, 81, 72, 110, 99, 74, 81, 58, 59, 70, 44, 116, 39, 104, 91, 52, 41, 74, 35, 108, 51, 45, 83, 87, 90, 39, 39, 105, 120, 128, 136, 255, 187, 226, 196, 248, 223, 147, 1, 250, 1, 10, 13, 202, 182, 119, 63, 29, 236, 99, 52, 60, 84, 83, 40, 46, 93, 130, 160, 191, 62, 98, 46, 76, 102, 53, 50, 110, 104, 45, 126, 73, 51, 46, 59, 114, 92, 126, 74, 53, 64, 45, 119, 108, 119, 104, 125, 111, 52, 91, 67, 102, 43, 63, 69, 104, 80, 89, 33, 69, 33, 57, 97, 116, 109, 104, 120, 68, 60, 120, 128, 160, 232, 248, 235, 145, 194, 198, 223, 1, 250, 1, 10, 13, 208, 204, 229, 62, 29, 57, 155, 172, 61, 84, 83, 40, 41, 93, 44, 240, 109, 63, 98, 54, 91, 114, 74, 85, 83, 124, 55, 65, 90, 44, 105, 55, 62, 115, 104, 81, 65, 34, 124, 36, 51, 38, 74, 34, 126, 46, 110, 88, 83, 76, 48, 59, 71, 50, 98, 81, 62, 122, 38, 36, 46, 94, 94, 84, 43, 85, 74, 37, 91, 105, 69, 72, 42, 57, 120, 128, 184, 247, 199, 251, 189, 187, 191, 220, 1, 250, 1, 5, 13, 164, 211, 12, 63, 84, 83, 40, 53, 93, 161, 224, 212, 62, 98, 172, 1, 86, 68, 45, 93, 109, 46, 122, 77, 110, 43, 48, 55, 51, 70, 123, 119, 117, 83, 71, 117, 118, 72, 99, 105, 123, 104, 39, 103, 48, 45, 76, 46, 41, 117, 67, 96, 117, 79, 112, 79, 88, 92, 102, 62, 115, 68, 86, 125, 76, 49, 67, 48, 44, 81, 80, 45, 96, 67, 97, 36, 39, 51, 60, 96, 94, 34, 45, 60, 35, 58, 34, 70, 98, 119, 60, 57, 97, 68, 116, 86, 50, 41, 59, 126, 105, 59, 34, 86, 69, 53, 126, 82, 108, 107, 72, 69, 64, 37, 95, 113, 55, 58, 121, 49, 47, 123, 77, 52, 52, 54, 75, 60, 77, 42, 113, 125, 119, 61, 117, 66, 126, 85, 117, 108, 59, 78, 89, 117, 79, 118, 120, 92, 99, 35, 63, 119, 46, 41, 110, 109, 109, 109, 65, 47, 105, 98, 37, 98, 121, 73, 77, 34, 46, 61, 113, 96, 67, 45, 117, 95, 66, 86, 99, 61, 61, 110, 87, 73, 105, 121, 111, 109, 120, 128, 252, 218, 173, 202, 233, 215, 237, 62, 250, 1, 5, 13, 245, 36, 177, 61, 84, 83, 40, 69, 93, 253, 97, 62, 62, 98, 31, 52, 102, 34, 88, 73, 117, 123, 37, 73, 117, 77, 70, 48, 94, 83, 32, 51, 46, 75, 54, 41, 36, 112, 122, 42, 90, 119, 126, 89, 94, 83, 120, 128, 203, 143, 247, 252, 213, 252, 184, 9, 250, 1, 10, 13, 193, 56, 65, 63, 29, 246, 102, 44, 63, 84, 83, 40, 58, 93, 93, 254, 34, 63, 98, 54, 42, 61, 54, 75, 90, 94, 115, 70, 64, 48, 57, 42, 70, 110, 90, 63, 91, 61, 40, 47, 116, 39, 77, 110, 125, 123, 74, 105, 66, 71, 94, 79, 50, 117, 116, 117, 119, 32, 90, 73, 47, 74, 89, 120, 64, 109, 88, 106, 36, 51, 73, 73, 87, 60, 120, 128, 168, 185, 163, 226, 179, 202, 155, 96, 250, 1, 10, 13, 32, 197, 234, 60, 29, 191, 123, 84, 63, 84, 83, 40, 51, 93, 242, 142, 243, 62, 98, 95, 94, 52, 42, 36, 120, 81, 104, 118, 79, 120, 100, 71, 91, 98, 93, 32, 73, 77, 83, 77, 47, 66, 95, 101, 46, 124, 52, 119, 117, 46, 114, 38, 80, 82, 123, 53, 37, 69, 95, 70, 87, 117, 41, 112, 63, 107, 109, 102, 121, 59, 61, 84, 59, 119, 61, 59, 83, 68, 116, 123, 61, 112, 33, 64, 38, 93, 117, 41, 101, 71, 122, 36, 109, 45, 117, 57, 56, 110, 69, 66, 47, 76, 124, 90, 112, 62, 106, 88, 52, 96, 97, 96, 80, 99, 41, 120, 128, 176, 233, 133, 142, 246, 202, 174, 94, 250, 1, 5, 13, 129, 124, 98, 63, 84, 83, 40, 96, 93, 127, 8, 71, 63, 98, 60, 96, 116, 100, 33, 81, 64, 57, 101, 45, 33, 35, 34, 100, 125, 82, 107, 112, 114, 69, 79, 103, 114, 61, 115, 36, 101, 57, 83, 41, 36, 47, 68, 79, 36, 100, 77, 74, 75, 75, 58, 87, 87, 92, 86, 49, 93, 123, 98, 124, 118, 56, 114, 78, 56, 34, 108, 87, 111, 123, 107, 120, 128, 205, 249, 134, 161, 233, 204, 183, 136, 1, 250, 1, 5, 13, 56, 87, 58, 63, 84, 83, 40, 80, 93, 198, 200, 212, 61, 98, 48, 113, 93, 81, 96, 56, 37, 65, 68, 71, 43, 118, 47, 54, 101, 97, 69, 104, 86, 85, 50, 107, 60, 117, 54, 33, 119, 117, 89, 78, 94, 51, 113, 122, 82, 100, 82, 44, 59, 73, 119, 84, 114, 74, 66, 65, 113, 85, 112, 120, 128, 228, 199, 171, 178, 157, 190, 220, 146, 1, 250, 1, 5, 13, 199, 125, 16, 63, 84, 83, 40, 3, 93, 36, 10, 250, 62, 98, 57, 47, 73, 61, 84, 103, 58, 94, 64, 47, 103, 116, 103, 119, 37, 52, 99, 33, 47, 57, 76, 45, 92, 92, 119, 112, 83, 116, 47, 65, 36, 75, 120, 92, 100, 97, 81, 52, 47, 106, 112, 92, 41, 104, 108, 124, 98, 74, 59, 93, 113, 110, 125, 60, 85, 65, 82, 107, 120, 128, 172, 208, 158, 134, 224, 130, 245, 177, 1, 250, 1, 5, 13, 152, 104, 52, 63, 84, 83, 40, 26, 93, 167, 169, 199, 62, 98, 64, 79, 125, 42, 59, 123, 43, 50, 67, 98, 78, 113, 67, 72, 111, 35, 114, 111, 122, 46, 40, 89, 81, 78, 53, 76, 92, 39, 67, 46, 100, 110, 75, 86, 75, 44, 43, 94, 80, 32, 86, 55, 118, 121, 66, 123, 90, 115, 100, 61, 95, 122, 73, 84, 43, 106, 125, 78, 115, 110, 63, 36, 110, 53, 124, 120, 128, 144, 249, 209, 154, 146, 201, 143, 213, 1, 250, 1, 10, 13, 47, 208, 205, 62, 29, 78, 97, 76, 63, 84, 83, 40, 122, 93, 222, 19, 51, 63, 98, 45, 119, 51, 63, 121, 86, 111, 98, 86, 43, 56, 113, 104, 65, 37, 78, 104, 68, 117, 75, 96, 46, 91, 105, 96, 96, 82, 72, 96, 123, 98, 85, 109, 118, 34, 69, 75, 91, 79, 124, 58, 39, 70, 67, 90, 124, 120, 128, 168, 216, 149, 185, 192, 194, 173, 201, 1, 250, 1, 10, 13, 183, 89, 49, 63, 29, 202, 155, 69, 63, 200, 4, 93, 84, 83, 40, 26, 93, 49, 52, 142, 62, 98, 67, 79, 64, 59, 83, 60, 72, 93, 57, 35, 71, 33, 89, 72, 98, 35, 112, 63, 94, 34, 45, 116, 120, 48, 88, 103, 56, 47, 99, 41, 111, 93, 121, 103, 72, 38, 76, 90, 77, 41, 34, 124, 53, 120, 113, 38, 107, 122, 119, 120, 100, 66, 42, 99, 38, 68, 86, 48, 98, 107, 36, 57, 120, 47, 51, 104, 39, 113, 120, 128, 184, 156, 247, 191, 163, 227, 185, 127, 250, 1, 5, 13, 155, 75, 33, 63, 84, 83, 40, 71, 93, 100, 110, 107, 62, 98, 36, 112, 85, 32, 48, 94, 126, 61, 82, 122, 61, 54, 106, 68, 77, 83, 54, 97, 35, 79, 60, 119, 96, 37, 103, 35, 38, 101, 41, 125, 121, 122, 59, 66, 78, 80, 84, 120, 128, 176, 145, 160, 155, 133, 139, 129, 218, 1, 250, 1, 5, 13, 144, 43, 100, 63, 84, 83, 40, 91, 93, 156, 255, 19, 63, 98, 68, 113, 48, 112, 102, 35, 46, 106, 100, 53, 112, 48, 122, 44, 56, 61, 48, 80, 56, 45, 88, 56, 52, 83, 33, 65, 121, 71, 116, 123, 125, 82, 107, 61, 119, 74, 103, 111, 62, 99, 116, 58, 33, 114, 45, 104, 126, 47, 41, 49, 64, 36, 74, 103, 43, 62, 92, 91, 111, 68, 41, 101, 117, 104, 54, 61, 67, 92, 52, 120, 128, 224, 227, 228, 228, 139, 158, 166, 104, 250, 1, 5, 13, 56, 130, 14, 63, 84, 83, 40, 42, 93, 141, 150, 64, 62, 98, 31, 83, 56, 62, 55, 64, 69, 55, 65, 106, 62, 98, 90, 121, 39, 35, 50, 88, 108, 43, 32, 120, 90, 46, 67, 55, 92, 110, 68, 65, 121, 59, 120, 128, 216, 220, 173, 224, 213, 229, 237, 80, 250, 1, 10, 13, 207, 246, 53, 60, 29, 88, 47, 91, 63, 84, 83, 40, 115, 93, 241, 24, 255, 62, 98, 55, 108, 39, 60, 54, 87, 34, 62, 71, 51, 45, 59, 54, 63, 74, 90, 32, 73, 63, 56, 119, 41, 121, 126, 99, 85, 113, 32, 111, 34, 38, 89, 40, 48, 83, 68, 81, 80, 116, 71, 118, 60, 102, 48, 42, 64, 88, 36, 117, 63, 58, 50, 96, 89, 125, 69, 120, 128, 184, 134, 225, 237, 193, 179, 136, 238, 1, 250, 1, 5, 13, 181, 150, 180, 61, 84, 83, 40, 74, 93, 112, 65, 43, 63, 98, 33, 101, 34, 78, 68, 44, 82, 51, 38, 107, 37, 41, 78, 84, 119, 64, 91, 65, 104, 115, 66, 124, 108, 41, 79, 102, 115, 120, 78, 49, 45, 82, 72, 119, 120, 128, 218, 182, 188, 147, 201, 181, 227, 155, 1, 250, 1, 10, 13, 70, 178, 46, 63, 29, 32, 174, 98, 63, 84, 83, 40, 103, 93, 215, 129, 185, 62, 98, 98, 36, 86, 45, 82, 56, 112, 53, 107, 93, 103, 56, 65, 35, 40, 51, 53, 98, 119, 119, 125, 92, 55, 89, 99, 115, 93, 82, 95, 86, 63, 54, 75, 109, 126, 100, 60, 52, 73, 84, 56, 58, 122, 54, 48, 53, 110, 41, 73, 53, 97, 81, 104, 123, 111, 101, 107, 124, 72, 94, 90, 61, 84, 52, 61, 80, 107, 83, 36, 67, 117, 33, 56, 67, 95, 98, 96, 33, 72, 78, 36, 83, 41, 74, 115, 109, 77, 79, 125, 57, 119, 63, 106, 106, 121, 122, 100, 102, 119, 120, 128, 224, 192, 197, 234, 226, 133, 172, 212, 1, 250, 1, 5, 13, 202, 26, 221, 62, 84, 83, 40, 36, 93, 106, 242, 100, 61, 98, 56, 37, 62, 96, 56, 69, 59, 44, 36, 106, 83, 121, 89, 38, 51, 42, 63, 79, 35, 60, 84, 106, 75, 86, 53, 77, 72, 100, 125, 121, 40, 105, 37, 103, 78, 36, 44, 51, 85, 40, 51, 113, 52, 44, 106, 112, 48, 114, 102, 90, 70, 72, 90, 44, 101, 58, 88, 120, 128, 168, 215, 244, 139, 198, 186, 165, 223, 1, 250, 1, 5, 13, 141, 191, 231, 62, 84, 83, 40, 98, 93, 196, 121, 118, 63, 98, 35, 86, 45, 42, 97, 105, 116, 113, 86, 47, 124, 44, 121, 122, 40, 98, 85, 62, 106, 68, 61, 84, 124, 67, 82, 94, 46, 119, 33, 52, 74, 68, 103, 106, 43, 91, 120, 128, 160, 219, 180, 203, 147, 218, 165, 219, 1, 250, 1, 5, 13, 146, 47, 203, 61, 84, 83, 40, 56, 93, 68, 254, 145, 60, 98, 50, 123, 62, 59, 86, 92, 57, 78, 95, 35, 35, 99, 58, 123, 38, 76, 70, 88, 105, 87, 34, 91, 123, 111, 66, 100, 87, 68, 46, 110, 76, 125, 76, 115, 104, 72, 126, 56, 70, 101, 57, 48, 77, 115, 125, 80, 48, 72, 96, 61, 100, 120, 128, 163, 149, 197, 146, 150, 170, 169, 5, 250, 1, 5, 13, 40, 124, 113, 63, 84, 83, 40, 65, 93, 251, 53, 211, 62, 98, 61, 69, 126, 77, 120, 113, 36, 116, 64, 111, 86, 36, 54, 69, 50, 93, 77, 45, 50, 35, 62, 113, 45, 39, 112, 113, 84, 47, 98, 111, 42, 72, 36, 122, 76, 67, 72, 80, 63, 83, 96, 67, 110, 93, 61, 120, 57, 105, 53, 34, 111, 86, 111, 118, 51, 84, 56, 118, 91, 38, 61, 116, 120, 128, 154, 149, 151, 143, 217, 169, 185, 24, 250, 1, 5, 13, 22, 106, 254, 62, 84, 83, 40, 92, 93, 66, 54, 21, 62, 98, 68, 32, 59, 120, 110, 53, 123, 109, 94, 65, 121, 35, 79, 105, 119, 87, 105, 120, 96, 126, 83, 88, 44, 103, 119, 42, 81, 115, 56, 53, 107, 50, 63, 119, 47, 120, 125, 111, 70, 108, 115, 104, 49, 85, 56, 81, 104, 44, 99, 78, 83, 123, 80, 79, 49, 84, 114, 83, 33, 99, 98, 39, 84, 72, 85, 103, 98, 86, 90, 120, 128, 200, 252, 232, 207, 219, 228, 199, 254, 1, 250, 1, 10, 13, 144, 63, 26, 63, 29, 132, 205, 110, 63, 84, 83, 40, 66, 93, 187, 250, 95, 63, 98, 66, 43, 106, 70, 86, 78, 69, 65, 69, 47, 105, 97, 110, 96, 111, 101, 89, 37, 74, 110, 97, 41, 107, 51, 104, 126, 80, 109, 49, 80, 100, 115, 89, 74, 91, 67, 69, 46, 60, 36, 90, 66, 61, 118, 105, 101, 101, 38, 113, 112, 32, 120, 47, 42, 110, 105, 62, 86, 93, 86, 124, 86, 48, 115, 73, 116, 40, 120, 128, 208, 137, 216, 240, 134, 205, 192, 49, 250, 1, 5, 13, 166, 40, 88, 61, 84, 83, 40, 58, 93, 162, 217, 172, 62, 98, 70, 75, 103, 69, 51, 63, 107, 115, 72, 34, 57, 74, 123, 64, 80, 107, 100, 79, 90, 113, 36, 110, 79, 100, 39, 35, 49, 73, 77, 116, 93, 65, 33, 69, 79, 84, 48, 104, 117, 79, 124, 74, 45, 90, 61, 82, 90, 111, 67, 93, 47, 87, 105, 50, 70, 80, 122, 35, 62, 48, 46, 66, 70, 83, 68, 118, 72, 85, 111, 122, 90, 120, 128, 248, 247, 172, 159, 214, 191, 231, 250, 1, 250, 1, 5, 13, 110, 51, 26, 63, 84, 83, 40, 14, 93, 187, 179, 97, 63, 98, 55, 89, 96, 116, 71, 83, 72, 64, 37, 110, 100, 37, 87, 109, 125, 126, 89, 45, 74, 100, 65, 90, 35, 89, 53, 69, 42, 37, 32, 71, 35, 51, 125, 94, 61, 108, 111, 37, 90, 105, 103, 108, 60, 87, 110, 63, 63, 89, 86, 112, 65, 76, 80, 115, 104, 57, 120, 128, 152, 212, 150, 217, 220, 161, 181, 201, 1, 250, 1, 5, 13, 227, 25, 155, 61, 84, 83, 40, 83, 93, 81, 49, 146, 60, 98, 42, 73, 66, 64, 93, 106, 81, 38, 120, 80, 49, 46, 83, 82, 95, 124, 83, 62, 74, 106, 117, 38, 79, 77, 47, 38, 86, 97, 42, 116, 36, 53, 104, 70, 89, 64, 68, 75, 94, 107, 61, 56, 70, 120, 128, 172, 150, 200, 209, 222, 178, 193, 140, 1, 250, 1, 12, 13, 6, 61, 197, 62, 29, 163, 38, 48, 63, 56, 1, 84, 83, 40, 119, 93, 239, 91, 87, 63, 98, 43, 117, 52, 122, 43, 59, 103, 122, 120, 116, 49, 87, 52, 110, 123, 35, 75, 123, 69, 44, 120, 62, 88, 40, 94, 94, 77, 92, 94, 70, 41, 76, 55, 92, 113, 51, 95, 41, 42, 76, 93, 93, 71, 79, 120, 128, 144, 153, 148, 180, 226, 200, 161, 36, 250, 1, 10, 13, 86, 28, 152, 61, 29, 229, 51, 21, 63, 84, 83, 40, 61, 93, 39, 71, 154, 62, 98, 49, 67, 92, 72, 59, 96, 33, 81, 60, 44, 59, 76, 109, 43, 59, 82, 106, 99, 63, 87, 123, 103, 66, 66, 113, 120, 78, 58, 118, 41, 108, 87, 38, 126, 64, 59, 104, 95, 49, 85, 91, 63, 118, 83, 109, 92, 93, 82, 65, 115, 120, 128, 248, 242, 189, 162, 231, 151, 239, 90, 250, 1, 5, 13, 198, 178, 17, 63, 84, 83, 40, 94, 93, 12, 251, 42, 59, 98, 62, 81, 84, 32, 57, 86, 66, 50, 101, 89, 51, 62, 98, 69, 110, 105, 32, 104, 43, 82, 104, 122, 92, 111, 109, 84, 52, 58, 123, 119, 34, 69, 54, 112, 38, 77, 106, 59, 79, 41, 109, 67, 116, 101, 99, 53, 43, 54, 109, 103, 65, 43, 88, 35, 124, 36, 116, 99, 49, 100, 65, 39, 54, 120, 128, 168, 144, 231, 252, 236, 130, 185, 103, 250, 1, 5, 13, 137, 214, 20, 63, 84, 83, 40, 102, 93, 143, 101, 162, 61, 98, 32, 112, 63, 65, 126, 100, 57, 33, 99, 69, 38, 117, 44, 88, 72, 124, 75, 51, 86, 118, 108, 51, 114, 34, 88, 39, 41, 105, 102, 101, 45, 40, 45, 120, 128, 168, 189, 210, 162, 202, 234, 147, 115, 250, 1, 10, 13, 200, 248, 18, 62, 29, 7, 210, 137, 62, 84, 83, 40, 115, 93, 162, 36, 239, 62, 98, 37, 104, 92, 113, 86, 62, 87, 125, 125, 86, 88, 59, 67, 90, 34, 54, 96, 32, 115, 125, 61, 104, 118, 90, 78, 57, 125, 56, 125, 103, 54, 75, 47, 38, 126, 74, 121, 36, 120, 128, 152, 205, 255, 143, 192, 233, 252, 29, 250, 1, 5, 13, 171, 40, 96, 63, 84, 83, 40, 36, 93, 184, 59, 48, 61, 98, 53, 89, 79, 80, 77, 66, 42, 42, 112, 76, 116, 57, 59, 89, 99, 112, 33, 66, 60, 64, 63, 126, 53, 64, 45, 44, 61, 91, 87, 59, 91, 105, 32, 98, 56, 46, 71, 42, 33, 118, 114, 46, 44, 59, 64, 49, 114, 75, 59, 88, 120, 97, 119, 82, 120, 128, 176, 255, 168, 239, 130, 251, 199, 250, 1, 250, 1, 5, 13, 79, 36, 52, 61, 84, 83, 40, 49, 93, 11, 89, 30, 62, 98, 50, 67, 65, 37, 78, 81, 85, 112, 43, 56, 88, 64, 84, 72, 117, 65, 69, 76, 49, 114, 121, 32, 122, 56, 112, 63, 125, 66, 120, 112, 76, 102, 52, 104, 57, 102, 94, 112, 68, 91, 86, 73, 53, 119, 58, 43, 101, 48, 34, 64, 82, 120, 128, 134, 185, 129, 193, 179, 200, 139, 136, 1, 250, 1, 5, 13, 64, 8, 71, 63, 84, 83, 40, 22, 93, 138, 27, 229, 62, 98, 18, 46, 72, 40, 51, 46, 83, 50, 118, 57, 107, 113, 43, 107, 47, 46, 97, 83, 40, 120, 128, 160, 204, 246, 152, 240, 225, 180, 199, 1, 250, 1, 5, 13, 131, 93, 153, 62, 84, 83, 40, 63, 93, 186, 147, 70, 63, 98, 50, 34, 125, 101, 88, 109, 63, 88, 62, 70, 123, 36, 62, 42, 62, 86, 93, 53, 39, 67, 82, 123, 44, 72, 126, 121, 32, 114, 94, 125, 124, 52, 115, 122, 67, 69, 42, 76, 84, 101, 113, 62, 121, 68, 117, 39, 76, 37, 111, 42, 117, 120, 128, 232, 251, 216, 237, 214, 222, 199, 237, 1, 250, 1, 5, 13, 23, 159, 244, 62, 84, 83, 40, 117, 93, 234, 217, 120, 63, 98, 45, 109, 116, 84, 102, 94, 108, 75, 120, 64, 72, 102, 48, 67, 101, 119, 75, 48, 96, 65, 81, 51, 33, 102, 82, 118, 76, 122, 35, 83, 39, 43, 102, 122, 124, 85, 80, 84, 101, 117, 119, 69, 69, 89, 123, 46, 120, 128, 200, 131, 231, 226, 178, 156, 184, 116, 250, 1, 10, 13, 12, 57, 211, 61, 29, 149, 23, 165, 62, 84, 83, 40, 115, 93, 12, 182, 38, 63, 98, 40, 100, 49, 44, 70, 104, 107, 45, 34, 110, 49, 112, 72, 68, 56, 61, 126, 52, 69, 48, 71, 118, 74, 105, 72, 43, 109, 71, 106, 67, 32, 67, 91, 44, 116, 66, 121, 90, 83, 51, 104, 120, 128, 184, 245, 232, 229, 179, 171, 199, 174, 1, 250, 1, 5, 13, 69, 152, 5, 63, 84, 83, 40, 115, 93, 18, 119, 56, 63, 98, 35, 39, 124, 32, 65, 93, 46, 97, 99, 46, 79, 102, 57, 70, 98, 58, 122, 68, 65, 94, 109, 108, 52, 59, 78, 116, 66, 68, 95, 49, 70, 36, 68, 83, 37, 65, 120, 128, 192, 184, 176, 210, 134, 196, 131, 147, 1, 250, 1, 5, 13, 144, 203, 78, 63, 84, 83, 40, 8, 93, 149, 128, 13, 62, 98, 52, 52, 62, 94, 77, 92, 46, 40, 82, 118, 56, 56, 67, 32, 114, 40, 118, 113, 96, 80, 75, 58, 105, 33, 82, 102, 74, 65, 101, 65, 65, 44, 45, 62, 52, 74, 79, 46, 102, 94, 64, 108, 111, 77, 71, 120, 34, 36, 81, 74, 45, 78, 76, 120, 128, 168, 187, 230, 250, 197, 218, 179, 38, 250, 1, 10, 13, 33, 215, 27, 63, 29, 52, 45, 91, 63, 84, 83, 40, 56, 93, 27, 23, 153, 62, 98, 47, 44, 101, 49, 107, 66, 49, 84, 44, 42, 37, 106, 71, 87, 104, 42, 33, 48, 94, 74, 60, 89, 88, 99, 70, 110, 58, 51, 113, 95, 113, 99, 66, 126, 51, 33, 32, 76, 83, 74, 93, 119, 58, 110, 124, 56, 41, 113, 120, 128, 220, 173, 174, 245, 222, 237, 242, 49, 250, 1, 10, 13, 152, 137, 193, 62, 29, 72, 154, 230, 62, 84, 83, 40, 15, 93, 186, 58, 116, 63, 98, 50, 70, 46, 97, 83, 33, 106, 123, 39, 124, 97, 75, 56, 64, 72, 72, 68, 102, 42, 83, 92, 52, 108, 67, 62, 105, 102, 45, 100, 71, 110, 78, 52, 101, 104, 122, 112, 80, 77, 126, 96, 86, 66, 95, 53, 110, 86, 92, 110, 96, 77, 120, 128, 144, 251, 166, 218, 252, 216, 183, 210, 1, 250, 1, 5, 13, 151, 153, 139, 62, 84, 83, 40, 114, 93, 61, 74, 250, 62, 98, 62, 102, 89, 105, 67, 104, 58, 93, 54, 94, 46, 51, 55, 81, 87, 76, 86, 115, 56, 42, 114, 37, 112, 44, 46, 79, 51, 42, 61, 36, 121, 48, 52, 61, 55, 33, 65, 39, 45, 100, 100, 35, 63, 99, 80, 33, 86, 36, 36, 66, 42, 88, 68, 47, 35, 72, 117, 76, 91, 114, 85, 48, 63, 120, 128, 154, 167, 148, 131, 207, 185, 162, 153, 1, 250, 1, 5, 13, 15, 135, 54, 63, 84, 83, 40, 124, 93, 21, 194, 126, 63, 98, 60, 120, 58, 85, 43, 78, 101, 83, 69, 110, 100, 44, 90, 44, 120, 46, 37, 122, 120, 64, 107, 36, 57, 109, 43, 115, 75, 57, 46, 83, 99, 44, 126, 83, 34, 92, 105, 77, 55, 90, 113, 111, 104, 52, 99, 104, 113, 79, 121, 71, 42, 67, 57, 66, 49, 121, 94, 76, 74, 54, 35, 120, 128, 252, 203, 254, 222, 200, 223, 244, 59, 250, 1, 5, 13, 208, 7, 201, 62, 84, 83, 40, 107, 93, 150, 5, 235, 61, 98, 72, 87, 45, 39, 41, 59, 68, 86, 99, 61, 77, 122, 59, 37, 42, 65, 34, 123, 63, 102, 73, 63, 114, 91, 65, 39, 124, 60, 35, 32, 87, 69, 74, 118, 41, 43, 91, 105, 69, 94, 35, 83, 95, 122, 115, 53, 94, 89, 66, 41, 52, 38, 44, 94, 71, 106, 100, 80, 100, 33, 61, 39, 83, 99, 101, 40, 80, 67, 122, 125, 100, 55, 86, 120, 128, 152, 200, 128, 183, 151, 193, 132, 87, 250, 1, 5, 13, 170, 201, 52, 63, 84, 83, 40, 113, 93, 131, 82, 43, 63, 98, 37, 119, 102, 43, 72, 67, 121, 120, 107, 80, 57, 107, 79, 62, 69, 43, 36, 67, 64, 122, 126, 122, 53, 107, 100, 58, 93, 67, 67, 123, 79, 75, 122, 81, 42, 108, 104, 89, 120, 128, 200, 184, 190, 249, 202, 196, 243, 203, 1, 250, 1, 10, 13, 13, 7, 112, 63, 29, 235, 127, 8, 62, 84, 83, 40, 76, 93, 114, 99, 106, 63, 98, 48, 52, 109, 99, 114, 92, 88, 89, 50, 50, 63, 103, 117, 99, 97, 122, 69, 45, 100, 86, 85, 110, 32, 109, 112, 125, 51, 88, 66, 74, 106, 70, 110, 69, 36, 32, 124, 33, 71, 33, 106, 104, 104, 61, 43, 50, 91, 70, 42, 120, 128, 136, 186, 192, 164, 220, 208, 131, 104, 250, 1, 5, 13, 96, 66, 80, 62, 84, 83, 40, 57, 93, 14, 133, 95, 62, 98, 58, 85, 35, 40, 51, 32, 114, 116, 72, 126, 55, 103, 71, 119, 120, 80, 95, 97, 124, 68, 101, 98, 106, 107, 37, 98, 97, 93, 66, 108, 78, 84, 55, 63, 50, 56, 65, 122, 107, 123, 45, 81, 87, 107, 81, 33, 116, 51, 57, 43, 101, 72, 111, 109, 100, 80, 105, 54, 35, 120, 128, 224, 196, 239, 160, 163, 166, 252, 65, 250, 1, 5, 13, 49, 21, 164, 62, 84, 83, 40, 27, 93, 53, 123, 7, 63, 98, 52, 90, 79, 98, 80, 40, 101, 95, 46, 100, 116, 32, 55, 51, 42, 126, 58, 35, 108, 78, 67, 55, 39, 38, 99, 72, 89, 96, 78, 42, 119, 59, 93, 119, 126, 124, 59, 110, 80, 108, 76, 89, 123, 33, 82, 111, 86, 80, 70, 105, 123, 126, 99, 120, 128, 192, 239, 250, 221, 145, 252, 214, 106, 250, 1, 5, 13, 184, 78, 87, 63, 84, 83, 40, 36, 93, 186, 19, 11, 63, 98, 56, 72, 125, 39, 77, 37, 49, 36, 107, 88, 66, 62, 52, 45, 99, 75, 82, 126, 33, 105, 58, 37, 82, 115, 113, 41, 57, 99, 45, 120, 87, 109, 39, 99, 72, 113, 111, 73, 63, 70, 71, 119, 52, 121, 76, 56, 60, 56, 38, 79, 76, 100, 109, 38, 32, 77, 116, 120, 128, 169, 192, 159, 236, 200, 130, 252, 14, 250, 1, 10, 13, 232, 185, 98, 62, 29, 219, 77, 194, 62, 84, 83, 40, 99, 93, 203, 189, 243, 62, 98, 20, 117, 114, 33, 83, 54, 79, 100, 112, 91, 40, 94, 90, 66, 66, 112, 88, 70, 89, 107, 33, 120, 128, 224, 190, 186, 195, 251, 245, 211, 81, 250, 1, 5, 13, 145, 95, 36, 63, 200, 4, 58, 84, 83, 40, 109, 93, 190, 229, 95, 59, 98, 53, 33, 98, 121, 124, 100, 52, 122, 91, 121, 33, 64, 119, 120, 33, 108, 83, 53, 115, 67, 37, 51, 98, 92, 92, 60, 98, 90, 87, 105, 111, 56, 70, 46, 83, 52, 107, 105, 115, 117, 115, 98, 125, 71, 64, 79, 96, 77, 87, 126, 77, 70, 104, 40, 120, 128, 216, 215, 161, 200, 210, 189, 141, 103, 250, 1, 10, 13, 98, 148, 77, 63, 29, 120, 162, 162, 62, 84, 83, 40, 8, 93, 55, 135, 158, 62, 98, 62, 95, 33, 88, 66, 113, 41, 104, 121, 104, 68, 108, 32, 104, 65, 125, 78, 65, 52, 58, 60, 45, 90, 53, 35, 88, 59, 73, 78, 62, 65, 102, 117, 101, 75, 51, 115, 59, 63, 44, 62, 87, 85, 118, 40, 105, 125, 99, 36, 106, 88, 74, 87, 35, 105, 48, 37, 106, 84, 105, 85, 95, 57, 120, 128, 176, 221, 222, 231, 129, 235, 245, 79, 250, 1, 5, 13, 49, 200, 210, 62, 84, 83, 40, 82, 93, 67, 203, 104, 63, 98, 58, 57, 60, 46, 41, 51, 34, 40, 123, 99, 86, 98, 45, 57, 89, 87, 68, 99, 100, 117, 46, 113, 123, 59, 46, 40, 101, 85, 85, 94, 61, 121, 79, 73, 114, 99, 70, 117, 96, 68, 72, 79, 38, 37, 88, 65, 93, 59, 47, 125, 58, 84, 117, 80, 79, 36, 61, 33, 32, 120, 192, 237, 250, 234, 132, 236, 214, 215, 1, 250, 1, 5, 13, 27, 100, 245, 62, 84, 83, 40, 58, 93, 223, 152, 5, 63, 98, 78, 61, 70, 92, 51, 98, 69, 117, 48, 78, 34, 64, 77, 93, 107, 117, 98, 107, 74, 73, 69, 87, 67, 103, 35, 126, 120, 109, 70, 69, 116, 96, 118, 123, 125, 104, 94, 122, 46, 121, 116, 57, 108, 107, 81, 85, 34, 113, 56, 70, 62, 51, 85, 35, 38, 121, 121, 93, 89, 51, 104, 87, 78, 106, 88, 65, 73, 81, 95, 35, 55, 102, 93, 79, 84, 44, 105, 86, 54, 120, 128, 140, 236, 236, 132, 222, 224, 230, 61, 250, 1, 5, 13, 162, 254, 120, 63, 84, 83, 40, 10, 93, 193, 164, 16, 63, 98, 67, 126, 39, 97, 43, 114, 117, 35, 109, 33, 65, 122, 48, 61, 105, 33, 51, 48, 44, 79, 49, 52, 47, 86, 85, 37, 78, 120, 47, 66, 71, 43, 53, 97, 33, 78, 99, 118, 54, 85, 91, 91, 52, 54, 68, 98, 63, 55, 65, 103, 67, 37, 65, 76, 117, 64, 111, 79, 43, 37, 68, 123, 115, 75, 89, 54, 100, 78, 120, 128, 220, 178, 218, 228, 234, 149, 211, 165, 1, 250, 1, 5, 13, 166, 138, 144, 62, 84, 83, 40, 39, 93, 241, 50, 150, 62, 98, 63, 120, 85, 115, 85, 32, 119, 50, 114, 101, 55, 86, 70, 125, 65, 105, 104, 106, 95, 94, 52, 106, 48, 49, 95, 103, 103, 92, 46, 125, 111, 122, 38, 74, 39, 43, 106, 88, 63, 64, 118, 60, 56, 63, 45, 68, 77, 77, 55, 75, 122, 98, 91, 91, 41, 80, 104, 68, 51, 109, 55, 59, 35, 115, 120, 128, 184, 164, 161, 174, 177, 163, 138, 242, 1, 250, 1, 5, 13, 41, 30, 151, 62, 84, 83, 40, 64, 93, 184, 193, 116, 63, 98, 50, 117, 53, 125, 47, 74, 63, 102, 118, 82, 112, 36, 58, 57, 58, 68, 97, 34, 44, 62, 74, 65, 86, 66, 70, 68, 81, 40, 91, 57, 67, 73, 112, 115, 81, 86, 33, 77, 107, 55, 60, 115, 49, 125, 119, 64, 120, 83, 124, 117, 65, 120, 128, 176, 207, 219, 189, 129, 251, 220, 237, 1, 250, 1, 5, 13, 78, 123, 65, 63, 84, 83, 40, 123, 93, 6, 58, 110, 61, 98, 61, 89, 62, 114, 87, 105, 120, 54, 43, 93, 46, 70, 50, 69, 103, 98, 66, 52, 53, 116, 34, 85, 47, 88, 74, 38, 75, 125, 43, 100, 119, 81, 97, 114, 110, 118, 55, 46, 117, 34, 62, 37, 104, 83, 110, 81, 45, 82, 106, 57, 83, 44, 91, 114, 121, 78, 73, 101, 71, 80, 62, 121, 120, 128, 139, 251, 183, 179, 215, 216, 191, 15, 250, 1, 5, 13, 186, 70, 204, 62, 84, 83, 40, 92, 93, 221, 229, 33, 63, 98, 81, 100, 63, 86, 111, 75, 51, 62, 51, 85, 123, 108, 91, 104, 120, 119, 119, 50, 113, 49, 106, 116, 109, 120, 63, 77, 81, 101, 68, 98, 67, 122, 66, 109, 50, 108, 109, 123, 121, 109, 63, 109, 71, 61, 125, 97, 108, 123, 78, 88, 69, 102, 56, 52, 121, 102, 117, 70, 55, 66, 120, 76, 120, 80, 49, 33, 73, 109, 86, 44, 42, 123, 56, 36, 113, 123, 76, 80, 121, 92, 95, 85, 120, 128, 148, 182, 142, 128, 160, 177, 243, 31, 250, 1, 5, 13, 247, 65, 74, 63, 84, 83, 40, 38, 93, 114, 99, 33, 63, 98, 60, 97, 45, 114, 75, 117, 71, 99, 87, 115, 113, 115, 118, 43, 123, 55, 126, 68, 66, 77, 73, 78, 52, 66, 125, 57, 69, 75, 89, 97, 67, 53, 45, 51, 84, 63, 59, 121, 43, 53, 98, 55, 95, 48, 126, 39, 84, 69, 125, 69, 96, 48, 115, 61, 114, 45, 76, 106, 116, 49, 80, 120, 128, 176, 218, 171, 159, 253, 210, 221, 250, 1, 250, 1, 5, 13, 121, 238, 222, 61, 84, 83, 40, 113, 93, 180, 157, 254, 62, 98, 34, 91, 102, 99, 85, 92, 122, 37, 57, 45, 106, 50, 109, 36, 66, 117, 99, 32, 77, 52, 33, 51, 65, 111, 64, 71, 113, 80, 37, 120, 100, 102, 45, 105, 95, 120, 128, 208, 186, 161, 179, 146, 213, 139, 48, 250, 1, 5, 13, 195, 145, 175, 62, 84, 83, 40, 107, 93, 105, 162, 84, 63, 98, 51, 64, 73, 90, 117, 102, 81, 96, 62, 72, 72, 125, 76, 79, 77, 117, 116, 59, 58, 117, 67, 45, 106, 74, 32, 63, 71, 36, 36, 36, 67, 126, 84, 114, 48, 44, 105, 69, 61, 90, 61, 94, 41, 72, 40, 38, 76, 52, 56, 54, 116, 68, 120, 128, 220, 222, 195, 225, 221, 245, 157, 140, 1, 250, 1, 5, 13, 27, 11, 226, 62, 84, 83, 40, 59, 93, 10, 39, 48, 63, 98, 68, 85, 126, 90, 85, 62, 77, 91, 58, 36, 72, 72, 88, 63, 65, 43, 78, 125, 94, 87, 99, 36, 65, 66, 120, 114, 50, 107, 109, 46, 126, 117, 43, 70, 77, 85, 105, 105, 102, 59, 111, 35, 110, 68, 94, 92, 114, 116, 117, 43, 69, 70, 73, 113, 103, 93, 52, 92, 97, 98, 44, 96, 108, 43, 37, 82, 61, 50, 112, 120, 128, 136, 230, 201, 188, 223, 176, 206, 228, 1, 250, 1, 5, 13, 120, 111, 177, 62, 84, 83, 40, 91, 93, 64, 131, 116, 62, 98, 37, 67, 103, 95, 53, 124, 98, 60, 126, 61, 117, 98, 104, 88, 76, 56, 93, 111, 65, 45, 40, 36, 47, 46, 53, 98, 62, 43, 62, 96, 36, 42, 105, 96, 47, 37, 41, 39, 120, 128, 184, 151, 218, 198, 176, 187, 209, 181, 1, 250, 1, 12, 13, 134, 13, 119, 62, 29, 44, 246, 109, 63, 56, 0, 84, 83, 40, 88, 93, 95, 189, 82, 63, 98, 28, 106, 42, 66, 76, 38, 36, 83, 32, 72, 51, 92, 50, 52, 88, 73, 81, 93, 87, 124, 62, 56, 106, 119, 39, 72, 70, 47, 85, 120, 128, 248, 149, 186, 156, 211, 175, 209, 54, 250, 1, 12, 13, 227, 191, 232, 61, 29, 7, 127, 91, 62, 56, 1, 200, 4, 43, 84, 83, 40, 42, 93, 6, 46, 190, 62, 98, 46, 42, 64, 113, 36, 57, 44, 35, 96, 85, 36, 123, 112, 80, 92, 117, 88, 64, 71, 67, 85, 32, 50, 58, 35, 95, 116, 125, 87, 62, 125, 121, 112, 115, 53, 63, 48, 107, 82, 98, 50, 53, 41, 65, 35, 75, 84, 120, 128, 176, 196, 185, 202, 135, 163, 204, 211, 1, 250, 1, 10, 13, 25, 37, 108, 63, 29, 176, 217, 5, 63, 84, 83, 40, 66, 93, 69, 62, 94, 63, 98, 58, 58, 123, 105, 66, 119, 38, 110, 68, 68, 45, 75, 66, 87, 41, 43, 124, 59, 61, 100, 108, 109, 99, 49, 63, 117, 111, 54, 86, 42, 54, 37, 37, 107, 43, 94, 116, 41, 113, 70, 42, 123, 46, 62, 36, 105, 101, 105, 120, 64, 87, 66, 89, 107, 100, 37, 85, 106, 74, 120, 128, 208, 251, 178, 247, 255, 220, 151, 187, 1, 250, 1, 5, 13, 228, 24, 186, 61, 84, 83, 40, 105, 93, 183, 26, 130, 62, 98, 51, 57, 45, 40, 69, 85, 75, 74, 53, 115, 72, 118, 90, 111, 95, 69, 45, 85, 48, 37, 60, 53, 82, 114, 74, 56, 39, 38, 40, 42, 94, 69, 61, 57, 99, 115, 48, 123, 68, 47, 62, 78, 43, 99, 121, 98, 48, 115, 68, 48, 92, 115, 120, 128, 208, 155, 212, 180, 247, 220, 161, 165, 1, 250, 1, 5, 13, 182, 99, 21, 61, 84, 83, 40, 67, 93, 40, 38, 245, 60, 98, 71, 102, 58, 92, 44, 78, 69, 65, 43, 52, 35, 88, 64, 44, 106, 53, 49, 49, 32, 101, 108, 42, 110, 120, 103, 40, 51, 96, 119, 76, 105, 41, 58, 102, 96, 44, 117, 62, 55, 96, 120, 45, 126, 78, 117, 41, 111, 103, 89, 121, 75, 98, 59, 60, 100, 119, 119, 64, 115, 36, 59, 99, 72, 94, 74, 120, 62, 89, 74, 94, 63, 113, 120, 128, 144, 214, 249, 174, 137, 177, 205, 247, 1, 250, 1, 5, 13, 183, 77, 168, 62, 84, 83, 40, 102, 93, 255, 253, 42, 63, 98, 38, 42, 63, 34, 94, 55, 74, 39, 125, 32, 39, 109, 124, 33, 103, 52, 84, 74, 51, 69, 52, 99, 64, 36, 123, 105, 53, 60, 122, 90, 89, 104, 122, 78, 37, 108, 87, 61, 52, 120, 128, 216, 209, 218, 140, 165, 141, 213, 229, 1, 250, 1, 5, 13, 153, 192, 85, 63, 84, 83, 40, 81, 93, 189, 153, 228, 62, 98, 77, 93, 67, 43, 65, 87, 97, 73, 106, 70, 101, 121, 88, 122, 105, 59, 38, 116, 34, 46, 44, 66, 69, 61, 113, 77, 123, 122, 91, 54, 53, 70, 84, 86, 57, 97, 95, 112, 72, 92, 90, 80, 111, 51, 35, 33, 117, 41, 35, 60, 55, 63, 105, 97, 80, 40, 56, 37, 56, 114, 91, 102, 109, 83, 49, 62, 68, 34, 96, 40, 90, 53, 75, 68, 83, 90, 81, 50, 120, 128, 140, 252, 184, 132, 222, 224, 199, 163, 1, 250, 1, 5, 13, 79, 115, 87, 63, 84, 83, 40, 73, 93, 31, 126, 92, 63, 98, 53, 118, 62, 125, 116, 92, 114, 38, 49, 73, 90, 87, 84, 33, 114, 98, 59, 33, 99, 92, 115, 71, 121, 97, 34, 115, 68, 45, 116, 85, 37, 106, 71, 59, 104, 110, 78, 85, 59, 97, 80, 123, 79, 94, 32, 92, 118, 66, 95, 119, 54, 48, 86, 51, 120, 128, 232, 207, 161, 235, 168, 254, 140, 218, 1, 250, 1, 5, 13, 74, 178, 226, 62, 84, 83, 40, 123, 93, 211, 54, 35, 63, 98, 126, 122, 33, 55, 100, 48, 91, 67, 110, 47, 57, 56, 36, 51, 101, 101, 33, 43, 119, 119, 59, 96, 69, 124, 34, 77, 123, 62, 115, 52, 52, 87, 62, 113, 112, 89, 58, 73, 106, 106, 115, 58, 48, 76, 92, 42, 91, 99, 80, 74, 84, 40, 106, 81, 96, 122, 85, 36, 53, 55, 51, 60, 78, 90, 122, 96, 121, 49, 66, 43, 75, 87, 63, 44, 36, 32, 80, 119, 63, 118, 112, 56, 109, 73, 94, 43, 108, 107, 48, 117, 36, 53, 51, 82, 86, 86, 106, 85, 80, 123, 47, 73, 65, 68, 125, 123, 103, 93, 77, 96, 74, 92, 100, 62, 70, 122, 77, 37, 122, 110, 115, 45, 33, 76, 39, 53, 68, 120, 128, 240, 254, 226, 172, 224, 246, 151, 230, 1, 250, 1, 5, 13, 92, 254, 15, 63, 84, 83, 40, 59, 93, 148, 182, 96, 62, 98, 53, 122, 71, 66, 102, 70, 117, 72, 74, 97, 67, 46, 61, 79, 74, 70, 80, 116, 44, 90, 40, 101, 89, 96, 39, 34, 72, 116, 61, 103, 87, 122, 40, 32, 75, 78, 53, 65, 86, 126, 37, 37, 89, 57, 75, 101, 110, 81, 33, 95, 100, 78, 95, 121, 120, 128, 208, 160, 143, 208, 246, 132, 250, 48, 250, 1, 5, 13, 3, 96, 249, 62, 84, 83, 40, 44, 93, 5, 170, 58, 63, 98, 63, 58, 100, 125, 33, 43, 97, 41, 71, 38, 61, 35, 122, 48, 47, 62, 44, 85, 35, 44, 64, 53, 65, 50, 118, 115, 92, 35, 41, 59, 45, 92, 124, 46, 79, 38, 112, 33, 35, 120, 118, 47, 35, 94, 81, 77, 37, 79, 84, 48, 82, 67, 64, 66, 32, 80, 120, 82, 38, 44, 77, 94, 32, 44, 120, 128, 160, 219, 191, 223, 241, 217, 253, 117, 250, 1, 5, 13, 63, 172, 44, 63, 84, 83, 40, 9, 93, 81, 120, 79, 63, 98, 47, 95, 41, 76, 43, 82, 41, 52, 48, 49, 97, 95, 73, 110, 45, 78, 119, 103, 104, 59, 90, 45, 126, 45, 61, 121, 117, 75, 56, 46, 118, 102, 112, 70, 55, 110, 75, 98, 70, 112, 54, 45, 110, 62, 54, 113, 92, 61, 120, 128, 224, 180, 193, 139, 141, 166, 139, 44, 250, 1, 5, 13, 45, 234, 41, 62, 84, 83, 40, 10, 93, 205, 113, 191, 62, 98, 51, 46, 68, 75, 95, 96, 123, 46, 49, 91, 93, 123, 34, 58, 122, 110, 35, 87, 61, 34, 53, 65, 119, 37, 76, 61, 95, 118, 75, 61, 88, 43, 40, 39, 82, 87, 76, 121, 86, 45, 79, 83, 53, 53, 87, 48, 108, 36, 58, 35, 89, 101, 120, 128, 208, 137, 179, 144, 255, 204, 152, 131, 1, 250, 1, 10, 13, 217, 10, 10, 62, 29, 48, 6, 91, 63, 84, 83, 40, 3, 93, 9, 184, 116, 62, 98, 63, 62, 125, 66, 32, 36, 98, 115, 35, 82, 115, 121, 102, 66, 65, 40, 32, 47, 82, 96, 43, 97, 77, 60, 79, 91, 91, 71, 98, 113, 40, 122, 52, 80, 65, 46, 122, 52, 45, 74, 112, 65, 50, 36, 60, 114, 61, 119, 96, 80, 100, 113, 89, 48, 117, 84, 112, 97, 113, 68, 72, 58, 48, 48, 120, 128, 248, 185, 139, 215, 188, 207, 219, 184, 1, 250, 1, 5, 13, 236, 117, 107, 63, 84, 83, 40, 91, 93, 111, 113, 108, 62, 98, 73, 33, 51, 45, 107, 34, 40, 111, 104, 79, 72, 126, 92, 61, 99, 102, 50, 44, 54, 65, 36, 89, 107, 60, 56, 65, 103, 33, 85, 49, 33, 89, 68, 45, 39, 117, 76, 66, 120, 110, 80, 63, 44, 36, 71, 97, 53, 38, 100, 83, 125, 36, 51, 85, 96, 91, 52, 117, 115, 74, 58, 38, 58, 87, 77, 110, 90, 79, 54, 108, 57, 110, 50, 70, 120, 128, 192, 180, 198, 201, 225, 163, 179, 107, 250, 1, 10, 13, 126, 218, 53, 63, 29, 244, 195, 241, 62, 84, 83, 40, 94, 93, 136, 25, 100, 63, 98, 45, 86, 44, 96, 59, 33, 51, 123, 69, 109, 75, 75, 96, 86, 78, 78, 84, 74, 37, 84, 86, 88, 38, 100, 110, 119, 58, 46, 112, 108, 101, 123, 46, 76, 33, 61, 61, 88, 105, 56, 68, 80, 72, 108, 35, 106, 120, 128, 230, 181, 128, 194, 178, 174, 131, 144, 1, 250, 1, 10, 13, 216, 218, 49, 63, 29, 234, 240, 172, 62, 84, 83, 40, 90, 93, 242, 152, 90, 63, 98, 83, 69, 93, 119, 48, 60, 79, 70, 112, 67, 102, 36, 43, 88, 39, 79, 60, 51, 85, 48, 48, 123, 95, 108, 47, 37, 47, 57, 97, 36, 107, 87, 109, 44, 122, 63, 62, 53, 59, 99, 109, 117, 102, 69, 80, 63, 69, 111, 100, 83, 78, 118, 44, 47, 82, 117, 100, 112, 103, 43, 44, 54, 100, 108, 87, 47, 53, 125, 93, 103, 49, 38, 119, 112, 66, 57, 52, 57, 60, 111, 94, 63, 83, 46, 120, 128, 168, 145, 180, 162, 179, 138, 161, 72, 250, 1, 7, 13, 167, 43, 96, 63, 48, 0, 84, 83, 40, 83, 93, 42, 142, 25, 63, 98, 61, 37, 90, 76, 77, 48, 86, 86, 49, 120, 109, 65, 41, 70, 50, 124, 66, 71, 126, 59, 108, 57, 96, 75, 84, 119, 75, 108, 98, 85, 55, 99, 100, 86, 68, 87, 44, 99, 88, 103, 57, 106, 40, 58, 75, 122, 101, 56, 45, 85, 107, 46, 115, 46, 113, 63, 67, 46, 119, 84, 99, 105, 120, 128, 192, 236, 209, 212, 133, 228, 142, 113, 250, 1, 5, 13, 116, 207, 30, 63, 84, 83, 40, 87, 93, 107, 135, 203, 61, 98, 56, 91, 82, 33, 89, 111, 94, 109, 55, 33, 33, 49, 70, 126, 89, 50, 51, 94, 44, 105, 41, 111, 85, 100, 36, 52, 125, 106, 36, 36, 78, 117, 76, 87, 66, 62, 51, 54, 83, 100, 45, 63, 91, 44, 111, 46, 124, 47, 62, 66, 79, 42, 103, 112, 88, 57, 38, 120, 128, 216, 158, 242, 236, 208, 245, 145, 231, 1, 250, 1, 5, 13, 81, 220, 119, 63, 84, 83, 40, 49, 93, 98, 22, 92, 63, 98, 58, 114, 105, 51, 81, 43, 99, 109, 92, 59, 126, 124, 43, 70, 92, 104, 51, 72, 116, 116, 54, 109, 76, 96, 83, 68, 46, 90, 126, 40, 55, 69, 57, 46, 114, 57, 85, 72, 89, 100, 74, 47, 81, 35, 67, 82, 126, 64, 51, 111, 37, 93, 119, 39, 45, 35, 70, 40, 95, 120, 128, 216, 166, 168, 181, 194, 181, 194, 19, 250, 1, 5, 13, 40, 75, 119, 63, 84, 83, 40, 12, 93, 117, 116, 82, 63, 98, 89, 83, 35, 88, 98, 123, 83, 67, 50, 106, 109, 47, 74, 39, 60, 72, 61, 33, 68, 108, 71, 46, 35, 89, 77, 50, 32, 110, 114, 76, 103, 76, 103, 65, 64, 125, 126, 105, 110, 34, 107, 111, 92, 58, 110, 103, 91, 38, 102, 124, 106, 93, 104, 47, 96, 95, 80, 72, 43, 80, 123, 100, 79, 101, 34, 65, 71, 41, 102, 61, 72, 82, 49, 66, 32, 86, 81, 103, 106, 100, 86, 121, 39, 116, 97, 41, 99, 88, 95, 95, 120, 128, 224, 148, 200, 215, 255, 165, 193, 188, 1, 250, 1, 5, 13, 124, 6, 18, 63, 84, 83, 40, 83, 93, 46, 86, 165, 62, 98, 58, 38, 39, 63, 118, 55, 77, 64, 81, 62, 72, 83, 56, 76, 69, 46, 41, 45, 103, 93, 69, 121, 33, 92, 89, 36, 119, 93, 109, 73, 38, 112, 113, 114, 113, 60, 120, 55, 90, 80, 60, 68, 36, 91, 94, 65, 72, 92, 61, 74, 85, 82, 100, 119, 56, 68, 36, 73, 100, 120, 128, 136, 215, 235, 173, 164, 184, 221, 238, 1, 250, 1, 5, 13, 47, 122, 167, 62, 84, 83, 40, 105, 93, 7, 123, 6, 63, 98, 45, 40, 55, 87, 96, 68, 89, 41, 52, 113, 82, 55, 64, 33, 116, 69, 125, 56, 90, 59, 63, 67, 114, 83, 43, 121, 89, 77, 55, 78, 81, 103, 49, 77, 113, 123, 67, 38, 95, 36, 34, 52, 53, 99, 126, 77, 120, 128, 240, 143, 152, 249, 236, 254, 192, 201, 1, 250, 1, 5, 13, 197, 226, 123, 62, 84, 83, 40, 62, 93, 171, 189, 38, 63, 98, 67, 74, 76, 56, 35, 78, 46, 52, 99, 76, 102, 105, 44, 112, 100, 64, 106, 37, 114, 47, 120, 34, 119, 88, 85, 56, 43, 45, 47, 84, 92, 66, 66, 125, 88, 35, 36, 79, 45, 125, 98, 102, 94, 89, 119, 57, 116, 66, 79, 67, 52, 71, 98, 40, 85, 91, 82, 115, 97, 106, 66, 33, 37, 47, 110, 67, 71, 46, 120, 128, 158, 166, 201, 160, 247, 177, 202, 32, 250, 1, 5, 13, 201, 156, 47, 63, 84, 83, 40, 36, 93, 116, 6, 148, 62, 98, 46, 119, 116, 75, 49, 66, 61, 95, 60, 67, 104, 93, 107, 63, 53, 94, 58, 71, 124, 80, 48, 108, 66, 90, 97, 97, 79, 106, 83, 113, 101, 42, 109, 40, 119, 79, 109, 91, 68, 56, 52, 52, 68, 71, 89, 67, 57, 120, 128, 152, 220, 136, 199, 181, 225, 197, 105, 250, 1, 5, 13, 162, 154, 25, 63, 84, 83, 40, 90, 93, 113, 255, 12, 62, 98, 33, 102, 58, 49, 42, 77, 85, 58, 105, 78, 113, 82, 43, 74, 92, 93, 110, 99, 71, 100, 112, 93, 34, 99, 59, 123, 72, 122, 32, 62, 72, 96, 49, 110, 120, 128, 160, 245, 185, 139, 228, 169, 207, 219, 1, 250, 1, 10, 13, 189, 249, 125, 63, 29, 150, 21, 87, 63, 84, 83, 40, 80, 93, 68, 42, 121, 63, 98, 55, 73, 121, 83, 113, 116, 70, 97, 40, 121, 105, 123, 83, 85, 70, 115, 114, 78, 99, 85, 116, 45, 37, 90, 57, 74, 38, 49, 65, 59, 101, 92, 108, 50, 101, 124, 106, 61, 107, 45, 61, 89, 114, 77, 48, 36, 106, 114, 57, 61, 123, 53, 58, 58, 102, 110, 120, 128, 236, 156, 143, 182, 221, 230, 249, 176, 1, 250, 1, 5, 13, 234, 92, 166, 62, 84, 83, 40, 34, 93, 42, 29, 207, 62, 98, 56, 109, 52, 63, 108, 52, 45, 46, 65, 110, 73, 40, 84, 97, 86, 55, 59, 58, 87, 73, 53, 95, 51, 118, 36, 62, 79, 66, 82, 74, 118, 88, 76, 35, 69, 62, 40, 57, 38, 57, 35, 116, 72, 35, 111, 52, 70, 83, 99, 34, 74, 84, 108, 115, 36, 101, 90, 120, 128, 204, 244, 176, 247, 249, 164, 135, 40, 250, 1, 5, 13, 25, 17, 143, 62, 84, 83, 40, 60, 93, 141, 204, 54, 63, 98, 67, 105, 91, 117, 119, 112, 91, 80, 59, 55, 47, 33, 51, 61, 70, 63, 54, 47, 39, 110, 118, 122, 94, 79, 32, 65, 106, 87, 126, 94, 99, 106, 126, 87, 84, 56, 56, 82, 43, 126, 88, 116, 55, 75, 114, 72, 64, 78, 77, 99, 78, 74, 53, 74, 85, 103, 43, 43, 116, 85, 37, 35, 81, 92, 83, 67, 34, 90, 120, 128, 128, 191, 192, 129, 253, 247, 131, 98, 250, 1, 5, 13, 223, 167, 25, 62, 84, 83, 40, 8, 93, 210, 151, 52, 63, 98, 41, 35, 40, 53, 33, 99, 50, 92, 87, 33, 60, 42, 58, 47, 56, 84, 83, 34, 107, 45, 45, 93, 85, 120, 85, 67, 90, 119, 78, 69, 100, 100, 62, 93, 106, 70, 45, 52, 83, 36, 119, 77, 120, 128, 132, 211, 137, 217, 142, 152, 205, 40, 250, 1, 5, 13, 89, 227, 11, 63, 84, 83, 40, 95, 93, 13, 0, 111, 63, 98, 35, 54, 76, 58, 110, 78, 88, 124, 32, 120, 37, 77, 46, 95, 93, 41, 58, 46, 49, 59, 87, 106, 92, 67, 112, 70, 62, 77, 102, 53, 94, 63, 33, 49, 91, 44, 120, 128, 224, 178, 208, 166, 128, 150, 131, 19, 250, 1, 10, 13, 231, 64, 36, 63, 29, 88, 77, 42, 63, 84, 83, 40, 116, 93, 216, 11, 251, 61, 98, 61, 103, 61, 99, 101, 119, 126, 83, 117, 122, 92, 63, 44, 55, 48, 46, 89, 41, 72, 71, 47, 43, 53, 106, 57, 101, 76, 124, 36, 80, 122, 92, 78, 57, 48, 110, 76, 119, 93, 119, 71, 105, 87, 107, 87, 63, 51, 104, 32, 77, 82, 36, 52, 55, 103, 32, 82, 82, 73, 126, 75, 33, 120, 128, 196, 147, 252, 135, 149, 156, 225, 191, 1, 250, 1, 10, 13, 126, 144, 196, 62, 29, 211, 132, 127, 63, 84, 83, 40, 0, 93, 56, 112, 87, 63, 98, 69, 114, 39, 64, 96, 97, 74, 79, 126, 68, 83, 73, 51, 121, 82, 99, 124, 86, 125, 118, 72, 54, 80, 48, 60, 121, 77, 93, 76, 70, 58, 50, 107, 86, 78, 63, 96, 94, 107, 111, 89, 100, 56, 67, 76, 41, 62, 79, 76, 103, 36, 119, 69, 40, 87, 89, 65, 118, 36, 102, 51, 107, 35, 88, 41, 64, 92, 91, 75, 50, 120, 192, 206, 191, 178, 224, 244, 252, 147, 131, 1, 250, 1, 5, 13, 8, 62, 159, 62, 84, 83, 40, 99, 93, 127, 187, 22, 62, 98, 70, 61, 98, 125, 45, 98, 51, 90, 125, 49, 99, 65, 65, 108, 98, 126, 115, 125, 105, 90, 36, 92, 108, 97, 94, 57, 43, 75, 98, 35, 57, 101, 101, 45, 55, 106, 115, 91, 51, 51, 111, 44, 53, 89, 62, 54, 103, 83, 120, 91, 86, 52, 56, 98, 101, 80, 79, 33, 62, 115, 87, 102, 119, 121, 118, 125, 90, 52, 84, 119, 43, 120, 128, 228, 153, 137, 164, 167, 206, 201, 33, 250, 1, 5, 13, 104, 205, 70, 63, 84, 83, 40, 71, 93, 78, 44, 69, 63, 98, 74, 119, 70, 50, 66, 72, 81, 87, 81, 38, 76, 37, 76, 35, 70, 101, 59, 113, 61, 63, 91, 41, 51, 59, 97, 63, 91, 82, 126, 33, 80, 62, 73, 97, 120, 109, 42, 60, 94, 117, 66, 32, 52, 112, 77, 113, 80, 87, 108, 109, 92, 56, 122, 74, 121, 95, 99, 43, 80, 35, 107, 125, 88, 80, 84, 45, 91, 106, 42, 88, 91, 125, 51, 70, 124, 120, 128, 160, 224, 155, 251, 174, 130, 222, 79, 250, 1, 5, 13, 12, 214, 96, 63, 84, 83, 40, 45, 93, 56, 190, 78, 63, 98, 52, 111, 109, 35, 100, 48, 68, 55, 67, 125, 103, 56, 41, 125, 107, 90, 41, 67, 71, 99, 60, 63, 53, 101, 76, 52, 49, 93, 37, 83, 77, 62, 107, 66, 61, 95, 52, 104, 56, 71, 44, 61, 105, 92, 34, 113, 79, 92, 50, 87, 61, 88, 51, 120, 128, 188, 167, 174, 143, 223, 187, 242, 22, 250, 1, 5, 13, 178, 118, 113, 61, 84, 83, 40, 60, 93, 193, 82, 28, 63, 98, 79, 40, 85, 80, 125, 101, 49, 110, 80, 72, 75, 101, 95, 43, 69, 64, 43, 126, 86, 125, 84, 87, 98, 90, 100, 83, 75, 76, 54, 116, 42, 91, 60, 111, 37, 44, 50, 102, 72, 70, 43, 122, 44, 88, 69, 104, 124, 38, 50, 124, 77, 51, 88, 38, 119, 34, 68, 122, 107, 73, 58, 99, 88, 91, 62, 111, 73, 111, 38, 56, 46, 67, 86, 48, 114, 89, 75, 41, 53, 122, 120, 128, 248, 135, 226, 132, 155, 191, 144, 74, 250, 1, 10, 13, 34, 218, 198, 62, 29, 170, 22, 144, 62, 84, 83, 40, 33, 93, 174, 39, 210, 62, 98, 69, 118, 34, 53, 119, 35, 103, 55, 122, 126, 43, 70, 66, 79, 58, 84, 62, 45, 126, 120, 109, 41, 92, 72, 51, 62, 85, 58, 100, 111, 113, 116, 73, 62, 52, 71, 109, 51, 118, 35, 80, 118, 72, 86, 36, 75, 55, 122, 110, 95, 91, 73, 68, 65, 74, 61, 57, 88, 33, 89, 77, 77, 81, 42, 44, 54, 124, 35, 59, 114, 120, 128, 216, 147, 191, 204, 233, 157, 249, 94, 250, 1, 5, 13, 204, 110, 242, 61, 84, 83, 40, 28, 93, 178, 95, 119, 63, 98, 88, 72, 118, 96, 37, 68, 103, 38, 89, 75, 36, 52, 72, 79, 39, 115, 117, 45, 53, 49, 61, 85, 35, 68, 62, 74, 108, 78, 51, 95, 122, 120, 80, 51, 72, 120, 82, 92, 51, 51, 57, 82, 114, 33, 76, 117, 98, 102, 116, 46, 68, 101, 81, 120, 118, 70, 69, 82, 66, 89, 87, 57, 114, 121, 80, 43, 98, 52, 39, 46, 65, 57, 120, 33, 119, 106, 97, 33, 118, 71, 103, 38, 88, 37, 58, 53, 71, 87, 60, 120, 192, 223, 211, 159, 192, 252, 157, 253, 129, 1, 250, 1, 5, 13, 131, 155, 9, 63, 84, 83, 40, 126, 93, 55, 26, 140, 62, 98, 83, 88, 91, 32, 95, 120, 80, 65, 50, 78, 95, 101, 108, 42, 107, 79, 33, 44, 100, 67, 90, 121, 113, 80, 95, 108, 94, 58, 98, 43, 119, 37, 90, 65, 126, 64, 68, 119, 42, 104, 80, 85, 53, 57, 69, 113, 55, 47, 73, 118, 86, 47, 60, 47, 68, 63, 102, 42, 63, 113, 57, 53, 93, 39, 85, 89, 43, 74, 42, 75, 43, 40, 33, 122, 114, 36, 100, 88, 43, 109, 85, 79, 112, 107, 120, 128, 176, 225, 224, 200, 255, 138, 134, 198, 1, 250, 1, 5, 13, 84, 238, 66, 63, 84, 83, 40, 96, 93, 148, 91, 232, 62, 98, 64, 123, 95, 88, 58, 88, 56, 79, 58, 119, 45, 98, 107, 102, 107, 36, 125, 107, 77, 45, 64, 60, 63, 90, 46, 126, 81, 60, 105, 68, 112, 82, 108, 112, 94, 78, 74, 113, 111, 79, 104, 75, 87, 44, 86, 116, 63, 38, 104, 74, 114, 32, 38, 91, 71, 46, 92, 36, 74, 58, 39, 123, 101, 117, 38, 120, 128, 208, 214, 217, 233, 226, 180, 205, 205, 1, 250, 1, 5, 13, 163, 174, 102, 63, 84, 83, 40, 120, 93, 39, 196, 164, 61, 98, 58, 61, 89, 43, 122, 124, 67, 116, 99, 51, 35, 56, 95, 74, 83, 63, 80, 112, 76, 49, 73, 80, 113, 70, 71, 85, 72, 108, 100, 97, 37, 124, 125, 68, 125, 74, 112, 102, 36, 40, 55, 81, 74, 72, 32, 49, 90, 91, 71, 70, 68, 52, 45, 100, 80, 86, 75, 50, 99, 120, 128, 128, 194, 201, 216, 239, 143, 204, 50, 250, 1, 5, 13, 181, 252, 12, 63, 84, 83, 40, 73, 93, 90, 107, 46, 62, 98, 77, 33, 45, 38, 58, 59, 75, 41, 77, 105, 108, 67, 120, 118, 37, 72, 69, 54, 122, 108, 68, 62, 61, 112, 110, 57, 114, 71, 125, 93, 34, 94, 83, 95, 65, 72, 59, 121, 117, 62, 47, 62, 119, 89, 71, 104, 106, 89, 81, 35, 108, 77, 73, 103, 50, 112, 99, 60, 54, 32, 71, 36, 42, 111, 102, 45, 111, 57, 85, 91, 45, 75, 63, 91, 92, 37, 70, 98, 120, 128, 232, 152, 250, 237, 185, 198, 209, 55, 250, 1, 5, 13, 248, 222, 128, 61, 84, 83, 40, 61, 93, 233, 164, 136, 62, 98, 65, 117, 121, 112, 84, 52, 107, 77, 79, 99, 125, 98, 116, 118, 42, 52, 39, 113, 57, 120, 81, 35, 116, 117, 65, 46, 109, 42, 45, 74, 33, 114, 48, 82, 46, 46, 47, 126, 50, 120, 35, 107, 37, 118, 46, 103, 73, 100, 81, 112, 62, 111, 47, 44, 123, 53, 32, 36, 78, 70, 69, 96, 63, 36, 98, 43, 120, 128, 136, 148, 132, 229, 205, 160, 161, 68, 250, 1, 5, 13, 77, 241, 186, 62, 84, 83, 40, 96, 93, 224, 218, 118, 63, 98, 69, 36, 40, 95, 64, 116, 100, 125, 124, 102, 88, 100, 41, 87, 59, 44, 49, 99, 36, 85, 119, 45, 43, 79, 107, 82, 66, 75, 32, 52, 34, 52, 38, 123, 85, 108, 53, 47, 109, 54, 54, 55, 35, 61, 117, 97, 60, 40, 36, 119, 81, 71, 78, 107, 111, 110, 120, 87, 115, 109, 82, 57, 124, 104, 100, 68, 93, 45, 34, 78, 120, 128, 200, 205, 209, 175, 194, 236, 140, 115, 250, 1, 10, 13, 239, 243, 108, 60, 29, 76, 185, 98, 63, 84, 83, 40, 102, 93, 203, 35, 168, 62, 98, 37, 96, 41, 108, 89, 42, 54, 57, 71, 40, 97, 90, 101, 57, 44, 101, 115, 93, 59, 32, 99, 124, 58, 58, 87, 80, 35, 46, 37, 84, 34, 80, 82, 96, 76, 46, 100, 43, 120, 128, 224, 154, 173, 213, 156, 214, 233, 125, 250, 1, 10, 13, 192, 254, 69, 63, 29, 115, 251, 19, 63, 200, 4, 33, 84, 83, 40, 108, 93, 218, 208, 97, 63, 98, 56, 38, 42, 93, 67, 33, 59, 90, 56, 101, 115, 41, 65, 70, 110, 53, 40, 38, 39, 51, 113, 38, 49, 39, 37, 107, 124, 33, 103, 94, 80, 72, 74, 42, 69, 51, 77, 114, 94, 45, 105, 121, 104, 105, 94, 86, 42, 103, 116, 117, 116, 98, 79, 37, 32, 109, 115, 120, 128, 129, 246, 247, 198, 134, 176, 191, 4, 250, 1, 5, 13, 245, 187, 21, 63, 84, 83, 40, 73, 93, 60, 190, 39, 61, 98, 56, 58, 113, 88, 52, 74, 94, 55, 32, 90, 102, 52, 70, 121, 73, 118, 60, 70, 72, 78, 97, 53, 44, 113, 104, 108, 120, 68, 42, 86, 62, 75, 59, 39, 41, 78, 40, 48, 85, 51, 118, 114, 102, 57, 47, 95, 60, 85, 91, 40, 81, 77, 89, 41, 116, 109, 46, 120, 128, 208, 180, 235, 130, 141, 165, 219, 127, 250, 1, 5, 13, 135, 104, 83, 63, 84, 83, 40, 51, 93, 38, 140, 3, 63, 98, 53, 58, 44, 73, 59, 59, 120, 63, 111, 121, 110, 43, 112, 52, 86, 109, 77, 113, 98, 40, 80, 67, 104, 34, 37, 112, 112, 49, 49, 58, 64, 40, 65, 46, 98, 92, 102, 61, 124, 115, 102, 123, 100, 96, 57, 69, 92, 69, 82, 38, 63, 60, 60, 101, 120, 128, 128, 199, 168, 206, 145, 184, 196, 242, 1, 250, 1, 10, 13, 114, 81, 20, 62, 29, 235, 179, 2, 63, 84, 83, 40, 13, 93, 84, 46, 191, 62, 98, 47, 74, 73, 102, 45, 84, 89, 102, 105, 97, 81, 120, 39, 48, 115, 110, 65, 84, 93, 40, 103, 94, 52, 75, 94, 43, 121, 36, 107, 90, 56, 84, 44, 91, 120, 82, 73, 126, 110, 47, 38, 82, 90, 121, 114, 88, 126, 47, 120, 128, 216, 213, 210, 166, 204, 173, 149, 181, 1, 250, 1, 10, 13, 59, 197, 239, 62, 29, 207, 193, 192, 62, 84, 83, 40, 44, 93, 230, 60, 255, 62, 98, 54, 72, 65, 99, 53, 124, 40, 34, 90, 85, 121, 46, 72, 123, 108, 75, 54, 65, 68, 66, 100, 77, 33, 53, 36, 57, 87, 38, 43, 106, 91, 62, 54, 118, 37, 99, 58, 53, 60, 76, 117, 107, 84, 80, 87, 75, 81, 118, 107, 83, 119, 38, 39, 33, 91, 120, 128, 168, 232, 162, 208, 191, 194, 150, 130, 1, 250, 1, 10, 13, 231, 41, 208, 62, 29, 120, 140, 253, 61, 84, 83, 40, 84, 93, 45, 175, 117, 63, 98, 71, 68, 34, 117, 110, 120, 91, 119, 80, 118, 41, 48, 33, 36, 119, 75, 120, 120, 79, 93, 87, 103, 96, 57, 87, 113, 85, 55, 53, 59, 35, 60, 46, 84, 64, 39, 115, 117, 101, 87, 123, 83, 32, 126, 98, 66, 118, 33, 47, 84, 97, 40, 117, 77, 40, 51, 98, 103, 61, 123, 66, 68, 97, 53, 115, 107, 34, 75, 99, 111, 86, 34, 120, 128, 178, 149, 136, 134, 135, 171, 193, 26, 250, 1, 12, 13, 149, 232, 107, 63, 29, 142, 207, 48, 63, 56, 0, 84, 83, 40, 95, 93, 206, 169, 47, 63, 98, 68, 86, 53, 121, 84, 39, 95, 88, 121, 69, 96, 76, 44, 68, 43, 87, 104, 52, 86, 113, 105, 43, 117, 63, 75, 60, 62, 125, 95, 116, 125, 106, 37, 74, 33, 49, 40, 34, 109, 60, 33, 91, 120, 69, 65, 125, 86, 75, 74, 74, 73, 98, 42, 48, 124, 85, 95, 116, 77, 55, 103, 97, 120, 37, 71, 116, 71, 97, 66, 120, 128, 248, 253, 141, 239, 220, 239, 239, 248, 1, 250, 1, 5, 13, 79, 32, 255, 62, 84, 83, 40, 93, 93, 235, 8, 207, 62, 98, 46, 58, 111, 46, 49, 79, 125, 77, 100, 114, 82, 53, 74, 58, 95, 115, 77, 74, 80, 50, 83, 85, 83, 63, 97, 114, 125, 75, 86, 116, 40, 80, 121, 98, 60, 111, 64, 109, 68, 48, 118, 32, 81, 116, 47, 99, 90, 120, 128, 222, 167, 157, 226, 237, 189, 234, 145, 1, 250, 1, 5, 13, 109, 252, 96, 62, 84, 83, 40, 67, 93, 4, 237, 86, 62, 98, 47, 118, 73, 61, 50, 111, 101, 79, 75, 62, 81, 81, 117, 110, 105, 33, 58, 102, 124, 111, 82, 94, 38, 64, 58, 82, 35, 94, 47, 125, 56, 112, 54, 35, 96, 48, 38, 92, 80, 75, 41, 111, 66, 37, 93, 69, 42, 97, 120, 128, 241, 134, 185, 139, 137, 183, 200, 14, 250, 1, 5, 13, 125, 66, 19, 62, 84, 83, 40, 55, 93, 194, 193, 94, 63, 98, 44, 47, 68, 32, 84, 112, 41, 34, 95, 108, 39, 63, 77, 37, 96, 58, 114, 46, 89, 121, 92, 54, 81, 102, 97, 59, 32, 97, 115, 72, 64, 84, 34, 83, 68, 96, 113, 35, 44, 63, 124, 90, 112, 94, 34, 120, 128, 232, 188, 135, 184, 202, 230, 187, 192, 1, 250, 1, 5, 13, 5, 227, 96, 63, 84, 83, 40, 0, 93, 84, 196, 120, 63, 98, 83, 42, 54, 83, 80, 50, 108, 92, 92, 93, 61, 56, 111, 70, 45, 54, 75, 81, 61, 120, 95, 126, 71, 110, 33, 57, 124, 34, 69, 113, 99, 49, 71, 32, 100, 105, 49, 107, 36, 110, 102, 103, 35, 52, 100, 114, 79, 86, 76, 89, 51, 79, 50, 121, 63, 124, 97, 71, 81, 54, 53, 105, 55, 106, 120, 43, 112, 110, 97, 67, 37, 94, 77, 78, 50, 119, 122, 51, 41, 46, 104, 69, 85, 106, 120, 128, 176, 234, 180, 180, 136, 211, 166, 84, 250, 1, 7, 13, 179, 171, 92, 62, 48, 1, 84, 83, 40, 60, 93, 15, 170, 44, 63, 98, 70, 102, 39, 105, 57, 108, 89, 124, 80, 56, 58, 89, 33, 95, 115, 40, 83, 84, 33, 98, 103, 71, 33, 78, 61, 67, 77, 110, 52, 75, 43, 99, 43, 67, 46, 121, 60, 59, 68, 96, 116, 53, 71, 98, 119, 79, 44, 41, 81, 76, 55, 42, 50, 60, 100, 56, 100, 87, 75, 117, 63, 105, 103, 36, 44, 85, 77, 93, 81, 121, 106, 120, 128, 140, 216, 144, 196, 233, 192, 133, 161, 1, 250, 1, 5, 13, 26, 84, 41, 62, 84, 83, 40, 43, 93, 126, 207, 80, 63, 98, 49, 82, 32, 62, 85, 109, 54, 67, 61, 102, 52, 33, 81, 110, 93, 116, 53, 99, 110, 77, 64, 42, 76, 66, 85, 66, 33, 78, 87, 86, 97, 125, 121, 112, 77, 50, 56, 69, 34, 93, 95, 122, 75, 32, 111, 42, 36, 94, 126, 91, 120, 128, 160, 191, 221, 181, 228, 249, 235, 91, 250, 1, 10, 13, 169, 247, 145, 61, 29, 13, 225, 219, 62, 84, 83, 40, 87, 93, 172, 190, 127, 63, 98, 35, 98, 37, 92, 104, 51, 108, 102, 107, 101, 37, 53, 39, 95, 64, 75, 92, 110, 97, 49, 108, 69, 93, 75, 82, 74, 61, 65, 78, 123, 113, 90, 84, 56, 113, 105, 120, 128, 174, 169, 246, 140, 247, 202, 178, 17, 250, 1, 5, 13, 53, 34, 31, 63, 84, 83, 40, 81, 93, 92, 208, 83, 63, 98, 67, 111, 119, 46, 101, 122, 89, 35, 68, 61, 82, 125, 116, 68, 55, 115, 89, 36, 89, 42, 61, 116, 74, 56, 111, 114, 74, 96, 109, 109, 85, 63, 33, 49, 113, 64, 116, 54, 119, 80, 120, 70, 120, 35, 122, 124, 124, 53, 61, 68, 55, 101, 81, 80, 63, 121, 69, 95, 62, 113, 80, 120, 52, 85, 103, 51, 124, 99, 120, 128, 200, 155, 182, 248, 207, 220, 177, 195, 1, 250, 1, 5, 13, 205, 215, 102, 63, 84, 83, 40, 125, 93, 117, 30, 190, 62, 98, 58, 44, 41, 48, 117, 122, 70, 60, 114, 117, 52, 66, 73, 85, 111, 108, 79, 112, 119, 122, 52, 119, 38, 126, 32, 49, 66, 59, 103, 126, 56, 98, 70, 69, 115, 89, 72, 64, 72, 125, 125, 67, 74, 123, 60, 85, 106, 126, 118, 69, 77, 113, 89, 122, 104, 75, 37, 41, 48, 120, 128, 128, 190, 178, 155, 133, 240, 147, 219, 1, 250, 1, 5, 13, 7, 172, 23, 63, 84, 83, 40, 14, 93, 134, 63, 12, 63, 98, 47, 114, 92, 80, 122, 36, 97, 54, 67, 47, 71, 121, 123, 112, 76, 42, 98, 73, 70, 66, 68, 65, 81, 70, 41, 75, 91, 72, 83, 63, 47, 100, 68, 114, 110, 86, 62, 106, 89, 102, 61, 96, 34, 62, 73, 95, 126, 119, 120, 128, 248, 157, 223, 199, 208, 239, 249, 125, 250, 1, 5, 13, 76, 92, 116, 63, 84, 83, 40, 50, 93, 212, 90, 60, 63, 98, 23, 61, 53, 101, 50, 65, 54, 71, 79, 71, 57, 97, 36, 126, 98, 84, 40, 34, 116, 106, 118, 111, 95, 37, 120, 128, 168, 180, 155, 248, 186, 162, 219, 90, 250, 1, 12, 13, 216, 171, 167, 62, 29, 178, 120, 76, 62, 56, 1, 84, 83, 40, 54, 93, 99, 16, 238, 62, 98, 89, 99, 73, 87, 120, 72, 71, 47, 45, 91, 52, 39, 67, 42, 62, 35, 125, 124, 62, 102, 43, 117, 116, 40, 47, 78, 117, 92, 48, 34, 114, 46, 58, 125, 35, 99, 111, 42, 43, 86, 59, 68, 121, 70, 95, 99, 82, 101, 64, 33, 100, 65, 115, 52, 61, 85, 109, 65, 72, 73, 81, 105, 126, 43, 103, 38, 107, 69, 38, 89, 51, 115, 113, 103, 75, 101, 122, 78, 71, 75, 122, 48, 60, 46, 60, 81, 58, 38, 96, 76, 120, 128, 144, 218, 165, 144, 253, 208, 173, 114, 250, 1, 5, 13, 188, 30, 248, 62, 84, 83, 40, 86, 93, 231, 57, 46, 63, 98, 70, 36, 81, 69, 110, 93, 89, 118, 45, 94, 102, 109, 112, 78, 44, 104, 86, 89, 63, 120, 123, 77, 65, 77, 111, 109, 54, 106, 101, 100, 88, 100, 100, 50, 49, 98, 120, 63, 44, 111, 108, 83, 109, 81, 85, 63, 75, 34, 46, 60, 41, 114, 85, 84, 100, 51, 98, 35, 84, 33, 71, 110, 49, 72, 37, 34, 40, 94, 61, 72, 110, 120, 128, 134, 135, 240, 179, 170, 184, 128, 159, 1, 250, 1, 5, 13, 11, 40, 246, 62, 84, 83, 40, 63, 93, 11, 239, 253, 61, 98, 44, 72, 95, 111, 119, 79, 66, 51, 92, 73, 91, 101, 46, 47, 77, 124, 32, 117, 105, 42, 72, 125, 66, 69, 75, 83, 55, 108, 100, 101, 76, 113, 68, 37, 72, 59, 82, 113, 43, 37, 94, 51, 49, 103, 108, 120, 128, 224, 186, 246, 230, 138, 214, 179, 42, 250, 1, 5, 13, 178, 47, 93, 63, 84, 83, 40, 117, 93, 125, 158, 54, 62, 98, 52, 63, 71, 120, 76, 66, 38, 45, 38, 57, 67, 68, 56, 84, 78, 118, 123, 104, 65, 40, 102, 49, 74, 46, 105, 100, 75, 53, 107, 89, 88, 44, 95, 61, 91, 68, 61, 83, 69, 33, 126, 59, 52, 57, 78, 102, 107, 41, 99, 58, 106, 35, 124, 120, 128, 224, 221, 168, 172, 134, 238, 197, 226, 1, 250, 1, 10, 13, 237, 104, 66, 62, 29, 209, 45, 126, 63, 84, 83, 40, 112, 93, 111, 226, 134, 62, 98, 80, 47, 102, 118, 112, 64, 75, 96, 55, 99, 121, 120, 42, 88, 71, 67, 63, 41, 74, 123, 48, 95, 34, 120, 66, 80, 81, 110, 85, 46, 117, 43, 92, 79, 36, 68, 93, 42, 46, 122, 104, 88, 54, 35, 112, 47, 89, 96, 66, 94, 93, 95, 102, 34, 99, 88, 44, 109, 83, 63, 109, 92, 42, 40, 108, 109, 60, 89, 83, 35, 101, 53, 122, 79, 51, 87, 72, 125, 39, 50, 118, 120, 128, 192, 220, 193, 221, 236, 227, 141, 236, 1, 250, 1, 5, 13, 56, 237, 232, 62, 84, 83, 40, 114, 93, 235, 69, 2, 63, 98, 61, 54, 68, 89, 106, 74, 55, 111, 85, 109, 44, 43, 77, 46, 54, 35, 113, 126, 44, 63, 120, 72, 100, 55, 109, 44, 48, 45, 101, 64, 72, 124, 49, 51, 87, 86, 73, 98, 110, 41, 107, 116, 94, 45, 67, 39, 42, 57, 103, 36, 64, 118, 99, 44, 124, 40, 81, 45, 106, 94, 58, 41, 120, 128, 239, 130, 249, 240, 244, 150, 200, 13, 250, 1, 5, 13, 86, 50, 99, 62, 84, 83, 40, 49, 93, 137, 88, 31, 62, 98, 63, 121, 57, 86, 95, 88, 47, 48, 35, 82, 35, 104, 87, 114, 102, 33, 118, 69, 97, 32, 81, 56, 37, 54, 79, 37, 59, 118, 48, 109, 98, 107, 73, 103, 52, 45, 112, 98, 40, 74, 48, 102, 95, 88, 121, 62, 120, 57, 36, 92, 67, 98, 70, 52, 114, 116, 116, 34, 39, 89, 60, 56, 126, 52, 120, 128, 184, 137, 175, 141, 209, 203, 248, 234, 1, 250, 1, 5, 13, 39, 106, 118, 62, 84, 83, 40, 42, 93, 195, 106, 84, 63, 98, 42, 94, 88, 48, 51, 60, 54, 111, 105, 87, 75, 59, 48, 43, 34, 114, 82, 74, 126, 68, 52, 115, 62, 56, 109, 91, 77, 45, 119, 102, 75, 103, 98, 125, 42, 90, 74, 76, 47, 70, 47, 68, 40, 120, 128, 156, 220, 240, 196, 222, 225, 133, 167, 1, 250, 1, 10, 13, 14, 222, 216, 62, 29, 143, 207, 60, 63, 84, 83, 40, 114, 93, 37, 131, 252, 62, 98, 81, 58, 68, 76, 104, 112, 113, 42, 122, 63, 64, 65, 86, 109, 41, 119, 35, 44, 98, 88, 49, 32, 71, 71, 37, 59, 87, 52, 111, 107, 33, 111, 39, 101, 125, 114, 82, 57, 97, 118, 112, 115, 47, 58, 42, 43, 87, 87, 38, 75, 37, 48, 100, 45, 99, 77, 113, 124, 70, 77, 56, 92, 57, 46, 62, 80, 58, 112, 110, 53, 69, 104, 73, 107, 102, 61, 112, 45, 61, 121, 98, 32, 120, 128, 168, 149, 171, 242, 194, 170, 217, 146, 1, 250, 1, 5, 13, 125, 253, 194, 62, 84, 83, 40, 93, 93, 231, 221, 87, 63, 98, 48, 42, 120, 33, 79, 32, 85, 113, 52, 94, 51, 89, 32, 122, 88, 111, 101, 103, 112, 38, 59, 101, 120, 69, 69, 92, 100, 94, 76, 105, 55, 78, 116, 71, 77, 69, 64, 111, 62, 52, 110, 117, 53, 44, 83, 99, 112, 49, 99, 120, 128, 190, 205, 201, 129, 241, 235, 204, 140, 1, 250, 1, 5, 13, 152, 76, 120, 63, 84, 83, 40, 31, 93, 247, 139, 153, 62, 98, 50, 61, 74, 42, 49, 82, 91, 114, 58, 117, 69, 73, 71, 100, 99, 87, 77, 51, 79, 117, 72, 91, 54, 68, 79, 108, 113, 96, 106, 83, 121, 67, 108, 126, 50, 87, 124, 66, 52, 108, 52, 75, 121, 120, 80, 106, 99, 109, 32, 57, 99, 120, 128, 184, 145, 224, 159, 202, 139, 129, 66, 250, 1, 5, 13, 209, 149, 25, 63, 84, 83, 40, 9, 93, 138, 252, 82, 63, 98, 59, 96, 38, 37, 89, 68, 96, 121, 40, 102, 122, 33, 92, 71, 82, 44, 90, 42, 125, 97, 97, 124, 97, 61, 115, 100, 40, 35, 96, 81, 110, 73, 105, 101, 48, 81, 80, 118, 104, 110, 44, 57, 66, 50, 124, 78, 46, 60, 59, 114, 94, 88, 81, 118, 68, 112, 125, 104, 48, 116, 120, 128, 188, 185, 142, 135, 232, 203, 243, 38, 250, 1, 5, 13, 75, 58, 34, 63, 84, 83, 40, 32, 93, 124, 146, 18, 63, 98, 82, 119, 81, 55, 117, 55, 33, 91, 98, 65, 47, 84, 71, 89, 79, 64, 69, 85, 107, 103, 109, 113, 53, 118, 113, 65, 62, 82, 103, 101, 114, 82, 79, 33, 107, 58, 74, 54, 55, 36, 58, 55, 123, 55, 66, 65, 123, 55, 78, 71, 106, 62, 80, 116, 74, 99, 97, 89, 68, 84, 119, 77, 114, 123, 77, 92, 37, 70, 109, 53, 116, 46, 62, 102, 76, 85, 117, 125, 84, 80, 68, 39, 36, 120, 128, 252, 241, 196, 172, 215, 143, 167, 43, 250, 1, 10, 13, 4, 43, 115, 63, 29, 46, 104, 11, 63, 84, 83, 40, 2, 93, 41, 177, 29, 63, 98, 78, 85, 39, 87, 111, 112, 97, 44, 108, 67, 126, 104, 100, 60, 85, 72, 57, 82, 91, 32, 105, 71, 115, 109, 99, 37, 115, 48, 112, 73, 83, 33, 121, 90, 73, 112, 101, 92, 36, 60, 91, 89, 95, 49, 118, 52, 110, 51, 110, 93, 105, 108, 62, 83, 55, 51, 96, 57, 115, 106, 124, 81, 58, 66, 111, 125, 110, 42, 113, 100, 97, 91, 77, 63, 68, 47, 102, 98, 117, 120, 128, 168, 215, 225, 231, 182, 186, 141, 190, 1, 250, 1, 5, 13, 1, 90, 110, 62, 84, 83, 40, 84, 93, 175, 88, 177, 62, 98, 49, 50, 94, 101, 97, 70, 66, 54, 47, 76, 104, 57, 63, 41, 63, 61, 65, 119, 69, 99, 65, 42, 122, 46, 62, 126, 47, 40, 75, 125, 66, 69, 84, 61, 48, 40, 98, 42, 59, 72, 102, 90, 84, 53, 114, 52, 32, 58, 111, 73, 120, 128, 204, 215, 200, 149, 219, 188, 197, 172, 1, 250, 1, 5, 13, 185, 186, 122, 63, 84, 83, 40, 11, 93, 10, 233, 4, 63, 98, 57, 62, 54, 54, 80, 71, 98, 54, 58, 106, 48, 41, 66, 99, 34, 119, 54, 89, 54, 92, 124, 123, 101, 84, 101, 58, 41, 125, 115, 56, 33, 92, 68, 61, 35, 126, 121, 112, 49, 97, 87, 49, 76, 111, 67, 44, 79, 80, 125, 66, 88, 111, 42, 64, 42, 84, 87, 97, 120, 128, 136, 181, 145, 201, 201, 168, 139, 66, 250, 1, 5, 13, 229, 142, 110, 62, 84, 83, 40, 39, 93, 54, 183, 55, 63, 98, 57, 66, 34, 104, 83, 100, 37, 96, 34, 125, 69, 71, 84, 37, 107, 79, 117, 48, 89, 105, 88, 32, 81, 94, 49, 82, 36, 50, 77, 70, 55, 63, 122, 68, 114, 109, 74, 38, 111, 70, 74, 110, 122, 67, 51, 71, 84, 59, 61, 37, 97, 81, 118, 75, 100, 99, 112, 66, 120, 128, 224, 158, 168, 201, 150, 246, 193, 202, 1, 250, 1, 10, 13, 8, 98, 18, 60, 29, 150, 42, 44, 63, 84, 83, 40, 109, 93, 127, 236, 77, 62, 98, 69, 91, 101, 37, 75, 48, 50, 124, 37, 110, 63, 50, 63, 104, 37, 45, 75, 104, 124, 104, 115, 72, 100, 101, 72, 79, 94, 46, 124, 39, 78, 110, 102, 87, 91, 62, 92, 45, 122, 68, 40, 63, 32, 113, 49, 100, 43, 122, 94, 98, 118, 109, 35, 118, 125, 105, 117, 32, 92, 123, 80, 35, 32, 124, 64, 79, 74, 103, 45, 101, 120, 128, 248, 187, 149, 216, 193, 223, 171, 193, 1, 250, 1, 10, 13, 69, 101, 159, 62, 29, 104, 90, 80, 63, 84, 83, 40, 74, 93, 107, 109, 42, 63, 98, 59, 83, 72, 113, 84, 98, 67, 99, 79, 58, 48, 96, 107, 110, 88, 112, 72, 91, 80, 126, 115, 37, 63, 34, 81, 96, 57, 67, 109, 119, 49, 88, 32, 74, 55, 73, 65, 35, 75, 120, 87, 108, 83, 101, 108, 95, 99, 91, 46, 59, 61, 115, 108, 110, 99, 90, 52, 69, 64, 114, 120, 128, 180, 217, 246, 182, 147, 203, 181, 183, 1, 250, 1, 5, 13, 240, 212, 175, 57, 84, 83, 40, 113, 93, 231, 109, 20, 63, 98, 58, 40, 86, 96, 65, 86, 47, 79, 68, 48, 86, 70, 38, 81, 88, 53, 113, 124, 92, 53, 81, 89, 61, 107, 48, 101, 92, 53, 122, 98, 88, 79, 87, 118, 123, 92, 54, 126, 66, 36, 125, 107, 120, 99, 53, 71, 93, 41, 90, 48, 78, 117, 107, 105, 67, 124, 106, 105, 79, 120, 128, 200, 219, 242, 153, 216, 220, 149, 207, 1, 250, 1, 10, 13, 80, 121, 112, 63, 29, 172, 136, 112, 63, 84, 83, 40, 69, 93, 137, 115, 47, 63, 98, 85, 87, 39, 109, 47, 84, 123, 125, 113, 90, 87, 54, 101, 96, 89, 86, 104, 40, 83, 89, 105, 51, 97, 99, 109, 83, 125, 113, 75, 79, 102, 42, 36, 54, 55, 43, 46, 89, 77, 83, 94, 49, 91, 58, 51, 83, 93, 59, 49, 51, 101, 82, 69, 63, 105, 77, 116, 66, 32, 91, 86, 41, 82, 66, 114, 77, 49, 78, 73, 77, 72, 47, 89, 32, 122, 87, 86, 70, 79, 57, 117, 98, 96, 56, 104, 51, 120, 128, 168, 194, 253, 189, 163, 146, 236, 91, 250, 1, 5, 13, 226, 141, 55, 63, 84, 83, 40, 59, 93, 121, 175, 67, 63, 98, 73, 54, 106, 88, 113, 123, 84, 94, 57, 70, 101, 65, 46, 112, 98, 106, 86, 120, 69, 68, 49, 117, 77, 114, 101, 101, 114, 72, 58, 89, 95, 104, 76, 34, 95, 55, 92, 85, 102, 35, 69, 120, 61, 126, 105, 118, 102, 112, 124, 76, 49, 58, 62, 64, 58, 113, 103, 119, 113, 44, 41, 44, 68, 94, 102, 124, 115, 44, 49, 75, 45, 33, 49, 65, 120, 128, 176, 229, 223, 191, 245, 170, 254, 253, 1, 250, 1, 5, 13, 197, 195, 130, 62, 84, 83, 40, 74, 93, 47, 174, 246, 62, 98, 21, 40, 109, 125, 34, 74, 108, 71, 68, 73, 44, 102, 108, 79, 100, 98, 89, 121, 56, 84, 93, 56, 120, 128, 200, 237, 242, 236, 183, 236, 150, 231, 1, 250, 1, 5, 13, 161, 59, 2, 61, 84, 83, 40, 77, 93, 101, 139, 42, 63, 98, 62, 81, 63, 48, 41, 123, 65, 34, 57, 57, 110, 35, 46, 38, 97, 86, 54, 66, 82, 103, 68, 67, 123, 71, 61, 86, 71, 100, 98, 121, 53, 58, 106, 67, 66, 120, 77, 55, 59, 76, 106, 100, 83, 53, 117, 95, 75, 114, 86, 124, 70, 116, 58, 58, 53, 60, 85, 118, 114, 81, 84, 91, 62, 120, 128, 184, 213, 174, 181, 193, 171, 245, 170, 1, 250, 1, 5, 13, 192, 163, 36, 61, 84, 83, 40, 69, 93, 51, 102, 128, 62, 98, 104, 105, 99, 104, 41, 126, 39, 37, 124, 95, 111, 101, 81, 93, 42, 84, 46, 100, 82, 64, 32, 80, 46, 37, 66, 85, 68, 104, 119, 46, 69, 51, 49, 65, 71, 97, 46, 109, 115, 71, 109, 52, 61, 84, 76, 110, 68, 53, 70, 32, 77, 88, 108, 98, 82, 102, 91, 93, 69, 83, 90, 61, 45, 110, 57, 91, 83, 48, 53, 72, 69, 64, 112, 42, 81, 107, 50, 88, 88, 83, 48, 47, 66, 119, 95, 108, 69, 78, 109, 95, 37, 79, 71, 64, 107, 80, 39, 78, 58, 111, 58, 52, 126, 124, 89, 120, 128, 152, 136, 168, 163, 187, 193, 192, 18, 250, 1, 5, 13, 13, 80, 63, 63, 84, 83, 40, 88, 93, 52, 181, 52, 62, 98, 73, 102, 83, 35, 37, 113, 66, 75, 121, 53, 46, 76, 54, 37, 65, 84, 66, 116, 119, 80, 61, 33, 100, 99, 61, 104, 56, 122, 48, 69, 61, 82, 37, 98, 61, 39, 44, 34, 74, 84, 124, 64, 85, 112, 64, 109, 89, 53, 114, 73, 89, 100, 52, 54, 68, 47, 34, 110, 100, 59, 89, 70, 59, 84, 119, 90, 71, 82, 103, 58, 72, 64, 74, 67, 120, 128, 224, 162, 203, 152, 255, 149, 218, 196, 1, 250, 1, 5, 13, 58, 176, 119, 63, 84, 83, 40, 57, 93, 254, 94, 94, 63, 98, 70, 67, 79, 47, 34, 40, 101, 106, 88, 62, 109, 62, 46, 37, 60, 60, 46, 122, 85, 37, 33, 120, 100, 69, 38, 76, 87, 32, 57, 57, 112, 98, 71, 98, 46, 75, 53, 44, 86, 61, 84, 104, 62, 59, 89, 52, 88, 53, 44, 35, 59, 71, 124, 118, 73, 120, 94, 41, 41, 84, 80, 101, 81, 62, 77, 43, 118, 74, 117, 111, 39, 120, 160, 197, 150, 171, 198, 169, 180, 217, 3, 250, 1, 5, 13, 48, 250, 193, 62, 84, 83, 40, 31, 93, 113, 164, 2, 63, 98, 55, 55, 89, 72, 107, 112, 115, 66, 114, 53, 124, 72, 101, 80, 57, 52, 108, 43, 35, 33, 108, 110, 55, 32, 109, 78, 61, 46, 62, 59, 123, 57, 35, 100, 69, 50, 62, 53, 61, 55, 96, 45, 113, 59, 64, 36, 68, 70, 49, 96, 35, 122, 125, 66, 73, 97, 120, 220, 161, 199, 167, 219, 141, 186, 188, 1, 250, 1, 10, 13, 2, 36, 27, 63, 29, 12, 94, 28, 63, 84, 83, 40, 39, 93, 118, 44, 11, 63, 98, 46, 100, 36, 86, 57, 99, 68, 32, 42, 39, 117, 86, 109, 107, 63, 95, 123, 122, 94, 104, 41, 118, 124, 92, 56, 33, 59, 96, 58, 99, 49, 100, 90, 32, 98, 123, 41, 58, 34, 92, 94, 67, 59, 41, 106, 75, 44, 120, 128, 164, 164, 139, 227, 159, 162, 218, 152, 1, 250, 1, 5, 13, 235, 54, 236, 60, 84, 83, 40, 97, 93, 232, 42, 57, 63, 98, 60, 36, 121, 112, 51, 92, 102, 70, 62, 55, 71, 99, 101, 70, 116, 48, 123, 109, 40, 67, 86, 97, 119, 34, 41, 100, 90, 114, 112, 107, 115, 40, 93, 80, 125, 44, 105, 105, 107, 38, 52, 98, 122, 105, 52, 122, 93, 116, 52, 89, 79, 62, 41, 94, 51, 35, 44, 119, 102, 78, 33, 120, 128, 176, 162, 180, 142, 154, 147, 162, 112, 250, 1, 5, 13, 241, 11, 13, 63, 84, 83, 40, 66, 93, 202, 44, 191, 62, 98, 119, 62, 38, 52, 71, 103, 70, 49, 33, 34, 46, 115, 101, 45, 108, 46, 38, 101, 93, 54, 59, 84, 126, 125, 61, 121, 32, 112, 34, 60, 36, 64, 45, 72, 70, 116, 115, 72, 76, 76, 51, 61, 60, 39, 80, 63, 61, 125, 43, 88, 72, 59, 53, 61, 54, 109, 63, 39, 118, 76, 103, 84, 47, 100, 125, 109, 101, 60, 102, 118, 57, 92, 57, 49, 35, 124, 55, 119, 77, 125, 92, 33, 101, 73, 115, 104, 43, 111, 50, 87, 85, 108, 81, 126, 99, 93, 46, 87, 40, 98, 88, 33, 55, 52, 62, 106, 34, 35, 58, 56, 85, 71, 88, 120, 111, 101, 110, 101, 111, 53, 120, 128, 144, 161, 240, 159, 151, 137, 130, 89, 250, 1, 5, 13, 156, 250, 100, 63, 84, 83, 40, 13, 93, 98, 133, 29, 62, 98, 116, 65, 76, 43, 57, 76, 68, 110, 95, 110, 106, 68, 91, 105, 81, 43, 40, 101, 39, 85, 120, 34, 45, 51, 87, 47, 125, 110, 72, 102, 114, 32, 98, 118, 40, 113, 112, 95, 103, 85, 116, 72, 117, 88, 109, 84, 51, 122, 61, 90, 102, 78, 90, 63, 48, 44, 51, 57, 82, 42, 78, 85, 70, 119, 122, 106, 96, 100, 96, 94, 57, 72, 125, 81, 95, 79, 43, 84, 69, 35, 122, 34, 80, 108, 126, 68, 69, 67, 102, 123, 94, 87, 44, 93, 39, 63, 34, 124, 93, 34, 114, 78, 58, 93, 64, 62, 79, 40, 94, 95, 32, 94, 115, 79, 46, 75, 36, 120, 128, 248, 131, 201, 217, 202, 159, 200, 204, 1, 250, 1, 5, 13, 7, 90, 108, 63, 84, 83, 40, 71, 93, 219, 231, 200, 62, 98, 45, 61, 125, 100, 32, 97, 59, 64, 74, 64, 77, 46, 118, 66, 47, 75, 103, 113, 76, 96, 116, 60, 99, 39, 122, 32, 99, 92, 78, 90, 58, 72, 36, 39, 92, 85, 80, 84, 93, 94, 34, 47, 93, 62, 49, 113, 120, 128, 240, 147, 220, 140, 175, 159, 225, 95, 250, 1, 5, 13, 196, 118, 2, 63, 84, 83, 40, 42, 93, 218, 110, 50, 63, 98, 92, 98, 49, 44, 55, 96, 40, 88, 118, 105, 126, 125, 94, 112, 110, 37, 37, 41, 110, 101, 89, 122, 51, 51, 108, 93, 100, 94, 69, 116, 40, 56, 50, 60, 107, 119, 41, 59, 108, 69, 83, 123, 89, 105, 94, 96, 67, 61, 110, 56, 44, 104, 119, 106, 101, 102, 79, 124, 63, 89, 123, 73, 51, 33, 96, 102, 106, 65, 37, 118, 123, 104, 59, 72, 49, 92, 65, 72, 84, 44, 57, 70, 110, 45, 104, 62, 64, 71, 86, 36, 72, 43, 123, 120, 128, 248, 221, 163, 227, 193, 239, 157, 154, 1, 250, 1, 5, 13, 67, 91, 225, 62, 84, 83, 40, 13, 93, 103, 124, 65, 63, 98, 68, 88, 40, 118, 117, 34, 55, 119, 59, 66, 77, 78, 88, 40, 69, 38, 71, 51, 63, 84, 89, 38, 55, 66, 70, 66, 105, 33, 77, 112, 108, 39, 126, 39, 116, 103, 63, 93, 54, 54, 47, 118, 113, 70, 112, 113, 110, 78, 93, 65, 98, 104, 114, 116, 78, 97, 64, 101, 80, 82, 56, 53, 73, 74, 85, 69, 78, 80, 51, 120, 128, 152, 217, 134, 177, 152, 201, 181, 82, 250, 1, 5, 13, 59, 132, 61, 63, 84, 83, 40, 98, 93, 171, 30, 120, 63, 98, 52, 40, 69, 98, 52, 112, 80, 84, 83, 59, 67, 44, 45, 35, 52, 41, 87, 50, 71, 88, 44, 98, 125, 120, 77, 70, 111, 75, 66, 61, 59, 32, 89, 120, 107, 106, 79, 107, 77, 79, 52, 123, 125, 124, 113, 60, 60, 81, 49, 69, 119, 32, 53, 120, 128, 134, 134, 165, 162, 176, 176, 168, 146, 1, 250, 1, 5, 13, 124, 0, 36, 63, 84, 83, 40, 33, 93, 81, 38, 221, 61, 98, 92, 75, 53, 108, 32, 37, 49, 53, 126, 66, 81, 52, 55, 73, 88, 107, 99, 119, 67, 48, 99, 33, 38, 48, 41, 62, 57, 123, 68, 58, 105, 76, 59, 81, 95, 35, 86, 96, 78, 46, 105, 104, 124, 78, 105, 40, 57, 103, 107, 44, 59, 61, 104, 76, 84, 40, 69, 36, 98, 97, 107, 52, 111, 99, 87, 37, 119, 100, 104, 85, 52, 35, 73, 53, 70, 122, 35, 87, 69, 33, 36, 81, 48, 56, 126, 76, 98, 109, 124, 86, 93, 81, 125, 120, 128, 192, 198, 167, 255, 230, 179, 188, 102, 250, 1, 5, 13, 1, 215, 187, 62, 84, 83, 40, 70, 93, 28, 185, 106, 63, 98, 44, 56, 117, 100, 47, 84, 125, 54, 118, 56, 114, 83, 38, 88, 37, 109, 93, 96, 93, 57, 36, 87, 100, 43, 65, 41, 103, 49, 118, 97, 37, 92, 113, 112, 35, 105, 96, 96, 112, 79, 83, 120, 64, 102, 89, 120, 128, 178, 242, 199, 130, 137, 147, 191, 148, 1, 250, 1, 5, 13, 180, 209, 65, 63, 84, 83, 40, 47, 93, 211, 30, 6, 63, 98, 62, 111, 115, 60, 46, 41, 79, 63, 83, 106, 66, 37, 107, 108, 62, 52, 50, 54, 97, 52, 85, 58, 44, 124, 111, 45, 100, 42, 55, 125, 80, 50, 64, 67, 94, 38, 109, 104, 77, 103, 64, 99, 54, 116, 61, 106, 98, 102, 89, 43, 83, 66, 76, 83, 109, 55, 98, 118, 75, 32, 67, 69, 40, 120, 128, 152, 168, 252, 184, 208, 193, 226, 199, 1, 250, 1, 5, 13, 80, 79, 138, 62, 84, 83, 40, 21, 93, 70, 70, 55, 63, 98, 56, 71, 45, 56, 70, 73, 104, 120, 114, 112, 35, 54, 94, 37, 74, 125, 79, 43, 73, 46, 100, 108, 85, 71, 66, 117, 60, 76, 67, 122, 90, 96, 91, 45, 38, 59, 88, 65, 99, 41, 88, 83, 96, 123, 52, 76, 56, 70, 85, 68, 116, 123, 43, 43, 74, 118, 112, 120, 128, 216, 163, 152, 172, 210, 157, 194, 93, 250, 1, 5, 13, 123, 249, 98, 63, 84, 83, 40, 63, 93, 221, 133, 14, 62, 98, 51, 59, 84, 118, 53, 66, 90, 80, 125, 47, 68, 45, 70, 63, 84, 49, 44, 89, 51, 117, 93, 117, 117, 125, 38, 94, 84, 80, 97, 46, 73, 114, 76, 52, 123, 61, 125, 104, 101, 112, 112, 102, 71, 70, 32, 102, 85, 107, 85, 57, 106, 55, 120, 128, 200, 201, 128, 243, 176, 204, 132, 68, 250, 1, 5, 13, 95, 213, 123, 63, 84, 83, 40, 108, 93, 227, 181, 120, 62, 98, 46, 69, 86, 112, 86, 108, 42, 110, 111, 101, 81, 96, 50, 66, 55, 51, 66, 114, 65, 37, 118, 77, 79, 125, 62, 41, 104, 121, 72, 67, 49, 64, 78, 66, 100, 118, 71, 119, 46, 36, 102, 119, 87, 96, 77, 38, 66, 120, 128, 156, 152, 225, 198, 223, 193, 137, 182, 1, 250, 1, 5, 13, 178, 111, 160, 62, 84, 83, 40, 8, 93, 172, 204, 216, 62, 98, 56, 67, 48, 120, 121, 104, 116, 87, 81, 77, 36, 47, 70, 76, 83, 48, 49, 110, 93, 63, 106, 74, 100, 61, 62, 126, 117, 110, 80, 55, 101, 64, 91, 65, 121, 108, 47, 84, 72, 123, 33, 110, 69, 96, 126, 86, 80, 42, 44, 60, 115, 83, 105, 125, 58, 125, 94, 120, 128, 192, 238, 245, 173, 230, 243, 174, 239, 1, 250, 1, 5, 13, 222, 22, 28, 63, 84, 83, 40, 119, 93, 163, 125, 91, 63, 98, 51, 38, 39, 58, 103, 98, 82, 36, 81, 102, 33, 91, 70, 96, 61, 123, 36, 35, 61, 102, 77, 107, 97, 51, 67, 50, 85, 93, 39, 123, 45, 59, 122, 77, 41, 122, 103, 43, 119, 60, 35, 76, 88, 68, 59, 55, 44, 40, 95, 62, 120, 90, 120, 128, 232, 166, 253, 248, 204, 182, 234, 199, 1, 250, 1, 10, 13, 191, 209, 92, 63, 29, 141, 162, 237, 62, 84, 83, 40, 8, 93, 81, 80, 195, 62, 98, 53, 115, 117, 85, 45, 115, 124, 84, 88, 100, 96, 119, 87, 66, 51, 120, 42, 33, 99, 32, 50, 60, 118, 43, 37, 76, 125, 104, 35, 81, 101, 40, 33, 35, 85, 115, 52, 66, 46, 46, 79, 35, 107, 86, 85, 51, 80, 60, 42, 32, 80, 83, 46, 75, 120, 128, 176, 138, 249, 221, 242, 210, 200, 239, 1, 250, 1, 5, 13, 23, 77, 162, 61, 84, 83, 40, 122, 93, 90, 158, 72, 63, 98, 47, 79, 95, 117, 52, 81, 39, 125, 88, 118, 83, 107, 63, 100, 102, 113, 84, 80, 46, 80, 64, 84, 112, 122, 97, 93, 35, 33, 49, 120, 85, 47, 78, 118, 72, 114, 78, 56, 59, 81, 99, 87, 123, 60, 124, 79, 105, 58, 120, 128, 192, 200, 134, 215, 219, 195, 180, 97, 250, 1, 5, 13, 56, 74, 48, 63, 84, 83, 40, 75, 93, 70, 174, 114, 63, 98, 51, 99, 85, 90, 53, 93, 99, 52, 85, 78, 37, 108, 95, 65, 67, 61, 71, 59, 115, 67, 60, 52, 92, 107, 104, 87, 84, 125, 49, 114, 103, 56, 79, 63, 90, 74, 119, 60, 51, 52, 105, 36, 101, 34, 94, 106, 60, 122, 88, 50, 65, 126, 120, 128, 176, 142, 207, 232, 248, 242, 248, 112, 250, 1, 5, 13, 235, 195, 161, 62, 84, 83, 40, 38, 93, 14, 115, 59, 63, 98, 81, 38, 105, 113, 92, 41, 101, 34, 97, 102, 107, 60, 63, 101, 120, 68, 43, 40, 94, 88, 55, 78, 90, 45, 124, 59, 88, 69, 125, 80, 103, 67, 49, 35, 115, 67, 46, 73, 85, 43, 36, 33, 35, 59, 113, 77, 124, 52, 95, 108, 54, 118, 53, 100, 37, 55, 75, 91, 115, 65, 79, 63, 36, 48, 125, 72, 43, 60, 113, 84, 54, 96, 81, 83, 84, 53, 74, 62, 59, 79, 61, 68, 120, 128, 248, 233, 211, 222, 209, 207, 158, 93, 250, 1, 5, 13, 103, 177, 57, 62, 84, 83, 40, 35, 93, 106, 93, 88, 63, 98, 62, 46, 76, 124, 92, 118, 81, 84, 51, 90, 99, 124, 114, 61, 73, 65, 96, 66, 43, 85, 84, 68, 96, 47, 110, 108, 45, 64, 68, 36, 43, 89, 114, 116, 45, 57, 94, 62, 52, 92, 100, 44, 62, 119, 111, 56, 86, 33, 112, 45, 92, 33, 89, 90, 100, 75, 76, 60, 46, 111, 105, 48, 47, 120, 128, 130, 159, 196, 194, 145, 248, 161, 148, 1, 250, 1, 5, 13, 16, 134, 254, 62, 84, 83, 40, 13, 93, 48, 198, 223, 61, 98, 82, 124, 48, 47, 98, 65, 45, 77, 112, 72, 38, 104, 63, 85, 53, 44, 78, 55, 70, 41, 126, 55, 47, 96, 107, 66, 47, 68, 113, 83, 123, 47, 72, 101, 46, 88, 111, 97, 73, 58, 115, 44, 104, 60, 69, 99, 124, 87, 89, 92, 96, 119, 103, 69, 42, 113, 108, 78, 66, 64, 49, 103, 90, 61, 76, 117, 64, 88, 71, 91, 59, 108, 108, 44, 53, 114, 77, 114, 58, 40, 68, 87, 106, 120, 128, 252, 156, 194, 142, 223, 231, 145, 29, 250, 1, 5, 13, 169, 239, 90, 63, 84, 83, 40, 5, 93, 228, 74, 212, 62, 98, 43, 34, 91, 59, 106, 64, 62, 41, 40, 43, 80, 75, 111, 79, 66, 67, 48, 124, 65, 115, 42, 90, 47, 54, 67, 121, 52, 57, 122, 89, 124, 69, 75, 72, 78, 61, 124, 44, 111, 122, 78, 98, 35, 42, 120, 128, 172, 189, 184, 128, 216, 234, 195, 47, 250, 1, 5, 13, 119, 56, 252, 60, 84, 83, 40, 3, 93, 21, 60, 72, 63, 98, 49, 100, 33, 70, 109, 115, 124, 120, 107, 114, 68, 118, 112, 44, 36, 46, 77, 46, 42, 126, 71, 33, 37, 70, 35, 44, 70, 69, 70, 87, 36, 114, 64, 118, 73, 84, 121, 50, 46, 81, 77, 79, 97, 74, 87, 52, 126, 109, 73, 84, 120, 128, 208, 216, 241, 232, 138, 197, 141, 199, 1, 250, 1, 5, 13, 231, 200, 118, 63, 84, 83, 40, 33, 93, 133, 1, 9, 61, 98, 74, 90, 105, 95, 89, 66, 96, 77, 87, 81, 52, 109, 81, 85, 121, 98, 79, 52, 58, 126, 87, 81, 119, 62, 90, 109, 110, 44, 87, 122, 113, 34, 40, 89, 61, 59, 94, 115, 63, 110, 76, 36, 116, 124, 76, 91, 38, 93, 37, 43, 120, 64, 57, 124, 96, 80, 98, 74, 36, 107, 83, 84, 116, 91, 95, 50, 100, 118, 56, 93, 35, 90, 116, 75, 81, 120, 128, 128, 142, 187, 152, 249, 239, 216, 195, 1, 250, 1, 5, 13, 60, 143, 32, 63, 84, 83, 40, 119, 93, 147, 60, 89, 63, 98, 58, 125, 103, 48, 39, 75, 34, 80, 103, 42, 120, 107, 88, 52, 111, 82, 59, 119, 47, 57, 61, 58, 117, 47, 69, 70, 40, 61, 75, 109, 75, 46, 116, 104, 88, 37, 36, 67, 76, 72, 89, 46, 73, 90, 124, 75, 37, 109, 106, 65, 47, 88, 67, 66, 91, 85, 40, 87, 105, 120, 128, 176, 130, 236, 138, 235, 146, 224, 214, 1, 250, 1, 5, 13, 116, 245, 191, 62, 84, 83, 40, 89, 93, 100, 230, 107, 61, 98, 30, 120, 94, 106, 118, 110, 90, 105, 78, 118, 75, 101, 94, 47, 112, 59, 49, 121, 64, 57, 82, 42, 94, 114, 106, 81, 44, 35, 124, 75, 88, 120, 128, 208, 185, 223, 165, 153, 205, 251, 100, 250, 1, 5, 13, 227, 107, 99, 61, 84, 83, 40, 113, 93, 43, 132, 189, 61, 98, 87, 79, 122, 50, 83, 53, 51, 33, 113, 55, 44, 92, 98, 76, 100, 107, 70, 110, 63, 42, 48, 122, 58, 107, 126, 68, 98, 87, 107, 35, 61, 96, 96, 104, 38, 64, 64, 125, 70, 43, 37, 81, 56, 70, 101, 45, 109, 95, 61, 48, 36, 105, 75, 121, 100, 45, 53, 47, 51, 46, 82, 91, 52, 109, 121, 75, 123, 121, 69, 68, 75, 71, 72, 52, 36, 94, 98, 115, 37, 113, 85, 34, 57, 91, 125, 83, 52, 101, 120, 192, 222, 249, 204, 225, 243, 205, 231, 6, 250, 1, 5, 13, 240, 96, 109, 63, 84, 83, 40, 14, 93, 254, 110, 51, 62, 98, 86, 106, 55, 87, 73, 61, 73, 76, 58, 48, 115, 58, 120, 100, 92, 64, 54, 117, 37, 74, 64, 42, 64, 87, 80, 65, 88, 110, 69, 54, 54, 117, 76, 57, 58, 92, 49, 92, 90, 65, 56, 71, 105, 96, 97, 103, 64, 117, 65, 51, 125, 110, 125, 77, 105, 38, 73, 94, 38, 39, 99, 89, 38, 36, 121, 125, 108, 94, 73, 32, 47, 89, 58, 98, 49, 120, 63, 95, 117, 103, 33, 97, 77, 49, 56, 70, 118, 120, 128, 168, 225, 228, 207, 215, 138, 166, 254, 1, 250, 1, 5, 13, 103, 51, 0, 63, 84, 83, 40, 27, 93, 243, 213, 72, 62, 98, 63, 81, 85, 83, 92, 93, 64, 101, 102, 99, 121, 96, 76, 65, 36, 67, 84, 59, 59, 111, 102, 104, 104, 62, 37, 34, 44, 116, 106, 82, 39, 110, 46, 52, 108, 92, 36, 102, 38, 83, 87, 89, 120, 50, 109, 63, 52, 43, 45, 115, 113, 90, 98, 94, 77, 72, 104, 55, 77, 90, 81, 75, 121, 51, 120, 128, 168, 138, 134, 250, 190, 210, 176, 208, 1, 250, 1, 5, 13, 122, 166, 242, 61, 84, 83, 40, 66, 93, 94, 248, 124, 62, 98, 60, 83, 71, 63, 109, 53, 103, 56, 45, 111, 86, 79, 101, 108, 32, 102, 118, 96, 75, 44, 79, 102, 67, 115, 107, 56, 74, 33, 43, 94, 101, 85, 98, 108, 124, 87, 101, 84, 36, 69, 121, 70, 64, 88, 50, 102, 103, 108, 81, 99, 35, 81, 48, 126, 34, 79, 48, 83, 82, 84, 105, 120, 128, 152, 188, 183, 248, 183, 225, 187, 94, 250, 1, 5, 13, 168, 155, 6, 62, 84, 83, 40, 60, 93, 117, 225, 211, 61, 98, 76, 32, 108, 119, 111, 72, 33, 65, 92, 37, 49, 40, 70, 106, 97, 37, 80, 93, 79, 70, 91, 51, 69, 99, 106, 76, 70, 50, 33, 78, 91, 51, 58, 113, 78, 49, 121, 111, 124, 41, 98, 96, 116, 42, 108, 121, 41, 69, 113, 77, 36, 43, 54, 100, 113, 117, 90, 41, 45, 66, 33, 110, 64, 45, 72, 124, 109, 83, 59, 79, 42, 96, 96, 70, 99, 121, 62, 120, 128, 144, 200, 192, 132, 135, 193, 132, 164, 1, 250, 1, 5, 13, 168, 135, 101, 63, 84, 83, 40, 107, 93, 198, 173, 190, 62, 98, 63, 33, 63, 83, 74, 80, 124, 84, 32, 88, 85, 112, 98, 89, 39, 114, 64, 102, 96, 111, 43, 84, 41, 65, 67, 67, 74, 111, 33, 119, 87, 63, 50, 59, 126, 32, 78, 108, 98, 119, 32, 57, 83, 97, 120, 56, 125, 38, 62, 111, 89, 86, 89, 37, 100, 109, 118, 125, 48, 39, 37, 44, 83, 39, 120, 192, 185, 255, 157, 192, 204, 251, 239, 129, 1, 250, 1, 10, 13, 153, 131, 112, 62, 29, 114, 45, 38, 63, 84, 83, 40, 50, 93, 60, 145, 30, 63, 98, 78, 39, 68, 83, 35, 103, 110, 113, 32, 71, 71, 42, 69, 68, 80, 48, 62, 32, 101, 45, 86, 48, 40, 80, 91, 91, 114, 114, 101, 75, 96, 98, 90, 86, 74, 55, 75, 37, 82, 112, 54, 114, 109, 79, 85, 38, 97, 96, 91, 66, 104, 33, 79, 80, 110, 74, 125, 115, 118, 71, 116, 123, 44, 83, 101, 100, 78, 109, 120, 57, 100, 56, 76, 116, 117, 98, 65, 88, 121, 120, 128, 160, 150, 136, 201, 130, 178, 193, 200, 1, 250, 1, 5, 13, 250, 188, 112, 63, 84, 83, 40, 24, 93, 6, 212, 123, 62, 98, 71, 66, 98, 95, 50, 41, 103, 126, 56, 87, 46, 43, 123, 57, 102, 57, 104, 112, 86, 114, 102, 66, 93, 80, 83, 90, 89, 44, 40, 69, 121, 64, 77, 98, 99, 104, 112, 38, 81, 69, 38, 121, 32, 45, 42, 64, 119, 91, 123, 40, 110, 40, 126, 38, 74, 116, 100, 49, 43, 86, 78, 90, 118, 113, 93, 108, 93, 57, 85, 124, 71, 98, 120, 128, 144, 191, 155, 149, 245, 248, 219, 169, 1, 250, 1, 5, 13, 248, 0, 53, 62, 84, 83, 40, 102, 93, 224, 158, 77, 63, 98, 63, 65, 80, 69, 51, 97, 124, 48, 126, 85, 112, 65, 70, 55, 110, 36, 95, 121, 121, 117, 74, 35, 45, 79, 60, 98, 94, 38, 125, 96, 44, 104, 109, 56, 93, 82, 51, 106, 119, 116, 80, 74, 118, 59, 107, 75, 54, 33, 101, 120, 103, 103, 68, 58, 66, 105, 51, 33, 40, 79, 35, 118, 49, 62, 120, 128, 160, 136, 251, 246, 248, 193, 216, 183, 1, 250, 1, 10, 13, 199, 97, 172, 61, 29, 242, 25, 7, 63, 84, 83, 40, 18, 93, 234, 95, 25, 63, 98, 61, 60, 111, 115, 34, 37, 68, 126, 43, 112, 98, 112, 75, 93, 64, 37, 120, 68, 68, 83, 117, 115, 62, 50, 97, 71, 113, 89, 56, 87, 113, 99, 120, 41, 71, 73, 40, 114, 100, 62, 116, 66, 93, 65, 61, 55, 36, 68, 86, 44, 69, 36, 98, 125, 55, 100, 124, 93, 49, 89, 51, 105, 120, 128, 128, 137, 230, 219, 152, 200, 176, 222, 1, 250, 1, 5, 13, 251, 184, 10, 63, 84, 83, 40, 126, 93, 246, 131, 125, 63, 98, 77, 119, 66, 53, 117, 123, 37, 94, 37, 93, 83, 53, 123, 115, 74, 67, 76, 35, 44, 50, 108, 32, 121, 113, 98, 76, 74, 97, 42, 42, 42, 91, 41, 66, 62, 63, 96, 47, 95, 48, 64, 68, 92, 63, 98, 78, 32, 104, 101, 54, 102, 101, 89, 65, 49, 125, 124, 80, 82, 73, 81, 67, 83, 121, 83, 119, 44, 89, 85, 43, 97, 60, 67, 122, 113, 71, 67, 90, 120, 128, 246, 226, 133, 170, 175, 151, 174, 20, 250, 1, 10, 13, 158, 220, 80, 62, 29, 4, 10, 236, 62, 84, 83, 40, 86, 93, 209, 144, 115, 63, 98, 86, 115, 67, 67, 33, 103, 49, 64, 65, 48, 92, 54, 93, 123, 111, 97, 107, 106, 66, 70, 51, 90, 83, 73, 66, 94, 79, 104, 90, 66, 65, 62, 124, 111, 71, 95, 86, 47, 117, 67, 72, 52, 105, 80, 95, 44, 60, 116, 86, 96, 109, 66, 111, 37, 77, 63, 64, 120, 33, 66, 56, 71, 101, 126, 110, 61, 56, 109, 84, 48, 43, 92, 115, 125, 125, 125, 112, 34, 105, 53, 65, 90, 49, 121, 83, 125, 77, 120, 128, 192, 254, 130, 206, 255, 243, 151, 117, 250, 1, 5, 13, 71, 77, 183, 62, 84, 83, 40, 10, 93, 117, 172, 166, 62, 98, 55, 93, 45, 83, 43, 32, 78, 105, 97, 65, 114, 78, 63, 70, 84, 49, 78, 113, 39, 78, 78, 61, 46, 106, 33, 93, 53, 107, 74, 111, 110, 65, 75, 76, 112, 77, 78, 64, 114, 124, 78, 38, 63, 72, 66, 113, 58, 106, 68, 66, 79, 91, 111, 114, 88, 33, 120, 128, 192, 177, 237, 167, 128, 140, 235, 190, 1, 250, 1, 5, 13, 107, 5, 187, 62, 84, 83, 40, 67, 93, 149, 93, 245, 62, 98, 63, 106, 98, 63, 113, 81, 81, 35, 114, 84, 39, 98, 46, 126, 42, 126, 72, 124, 100, 72, 46, 66, 73, 70, 40, 63, 50, 80, 88, 115, 111, 125, 43, 108, 68, 49, 107, 101, 77, 118, 111, 110, 71, 54, 60, 95, 65, 92, 101, 114, 47, 35, 104, 121, 68, 42, 64, 59, 55, 81, 62, 33, 73, 125, 120, 128, 200, 173, 183, 219, 195, 236, 186, 219, 1, 250, 1, 10, 13, 207, 152, 193, 61, 29, 156, 91, 18, 63, 84, 83, 40, 43, 93, 182, 34, 27, 63, 98, 67, 119, 51, 97, 79, 109, 87, 63, 122, 51, 42, 72, 125, 85, 106, 101, 99, 107, 52, 49, 72, 57, 112, 80, 78, 122, 87, 110, 68, 72, 81, 51, 40, 32, 35, 109, 94, 77, 83, 121, 65, 36, 46, 45, 48, 109, 83, 104, 54, 99, 57, 119, 115, 69, 119, 63, 39, 98, 50, 83, 54, 104, 122, 82, 96, 117, 63, 125, 120, 128, 152, 135, 131, 242, 176, 185, 152, 68, 250, 1, 5, 13, 27, 116, 119, 63, 84, 83, 40, 8, 93, 237, 167, 113, 62, 98, 80, 55, 57, 110, 67, 43, 98, 63, 96, 71, 110, 87, 95, 46, 89, 63, 98, 39, 98, 102, 123, 58, 32, 99, 88, 41, 91, 75, 58, 78, 84, 54, 57, 93, 35, 95, 89, 85, 83, 52, 67, 66, 81, 43, 71, 48, 58, 68, 39, 86, 91, 117, 110, 53, 41, 122, 55, 85, 54, 57, 78, 55, 37, 49, 114, 88, 62, 34, 43, 120, 101, 44, 83, 77, 66, 89, 104, 116, 60, 71, 110, 120, 128, 154, 184, 145, 156, 219, 193, 139, 32, 250, 1, 5, 13, 125, 54, 191, 62, 84, 83, 40, 89, 93, 15, 61, 91, 63, 98, 40, 94, 70, 35, 83, 39, 72, 35, 63, 57, 100, 43, 61, 63, 56, 110, 113, 56, 56, 46, 112, 79, 66, 65, 113, 79, 50, 66, 57, 109, 74, 55, 115, 65, 63, 51, 49, 58, 77, 35, 80, 120, 128, 248, 240, 146, 145, 227, 135, 151, 88, 250, 1, 5, 13, 213, 118, 77, 63, 84, 83, 40, 33, 93, 62, 60, 66, 63, 98, 44, 55, 59, 73, 91, 77, 84, 86, 125, 53, 113, 66, 60, 37, 48, 36, 116, 38, 105, 80, 110, 77, 55, 123, 126, 36, 92, 86, 105, 53, 93, 46, 97, 40, 87, 90, 52, 103, 101, 107, 57, 115, 57, 93, 78, 120, 128, 232, 197, 197, 244, 179, 174, 172, 124, 250, 1, 5, 13, 120, 232, 104, 63, 84, 83, 40, 17, 93, 78, 119, 218, 61, 98, 39, 73, 45, 73, 118, 59, 74, 58, 126, 63, 73, 87, 111, 125, 107, 103, 86, 98, 95, 51, 76, 85, 110, 44, 64, 125, 55, 121, 51, 88, 76, 34, 45, 79, 76, 64, 40, 51, 55, 70, 120, 128, 240, 159, 178, 240, 165, 255, 145, 83, 250, 1, 10, 13, 128, 135, 156, 62, 29, 6, 29, 30, 63, 84, 83, 40, 112, 93, 154, 89, 165, 62, 98, 62, 46, 122, 58, 40, 80, 39, 106, 60, 98, 95, 84, 89, 32, 41, 119, 36, 79, 39, 70, 113, 70, 73, 64, 81, 75, 95, 67, 75, 57, 85, 47, 121, 121, 109, 49, 35, 124, 113, 98, 81, 96, 100, 73, 110, 119, 101, 40, 41, 62, 66, 45, 54, 52, 34, 119, 99, 89, 104, 91, 112, 98, 63, 120, 192, 235, 238, 202, 224, 218, 246, 214, 132, 1, 250, 1, 10, 13, 52, 55, 21, 62, 29, 115, 35, 3, 63, 84, 83, 40, 77, 93, 237, 168, 40, 63, 98, 27, 50, 119, 115, 38, 93, 67, 116, 48, 96, 32, 81, 88, 100, 86, 57, 44, 118, 71, 120, 101, 119, 117, 77, 73, 51, 53, 112, 120, 128, 136, 146, 208, 242, 207, 144, 129, 105, 250, 1, 12, 13, 25, 157, 179, 62, 29, 149, 19, 48, 63, 56, 0, 84, 83, 40, 39, 93, 83, 46, 160, 62, 98, 63, 39, 117, 49, 74, 59, 79, 113, 62, 113, 54, 99, 40, 47, 118, 57, 72, 51, 44, 101, 87, 115, 102, 59, 73, 74, 114, 71, 82, 38, 110, 126, 99, 51, 59, 93, 96, 39, 97, 91, 119, 38, 70, 38, 95, 105, 64, 35, 62, 86, 68, 45, 85, 85, 101, 73, 63, 89, 102, 126, 71, 39, 62, 56, 120, 160, 212, 141, 191, 244, 161, 237, 248, 4, 250, 1, 5, 13, 37, 44, 117, 62, 84, 83, 40, 125, 93, 61, 10, 99, 63, 98, 76, 115, 56, 87, 65, 81, 80, 109, 80, 76, 95, 91, 95, 42, 110, 41, 122, 96, 96, 73, 46, 76, 112, 61, 39, 63, 98, 51, 111, 103, 45, 35, 72, 105, 75, 47, 37, 126, 35, 91, 36, 102, 52, 123, 94, 124, 39, 115, 88, 124, 67, 87, 65, 108, 111, 71, 34, 122, 80, 33, 110, 60, 124, 104, 63, 92, 51, 116, 93, 94, 36, 123, 92, 36, 68, 71, 56, 120, 128, 216, 238, 136, 244, 235, 245, 198, 113, 250, 1, 5, 13, 108, 152, 38, 63, 84, 83, 40, 13, 93, 82, 213, 132, 62, 98, 62, 109, 89, 114, 67, 85, 96, 90, 121, 36, 44, 42, 77, 34, 108, 102, 105, 74, 92, 34, 105, 49, 53, 120, 120, 71, 121, 61, 71, 72, 46, 45, 60, 70, 103, 32, 98, 42, 69, 104, 123, 87, 122, 89, 82, 120, 77, 90, 54, 92, 93, 108, 55, 91, 63, 39, 87, 96, 120, 123, 91, 67, 51, 120, 128, 216, 230, 175, 200, 163, 181, 254, 194, 1, 250, 1, 5, 13, 242, 146, 98, 63, 84, 83, 40, 125, 93, 36, 203, 79, 63, 98, 64, 39, 57, 107, 36, 94, 37, 114, 38, 49, 54, 91, 69, 126, 120, 62, 38, 105, 105, 65, 116, 95, 38, 96, 72, 33, 48, 72, 45, 87, 68, 72, 100, 83, 43, 70, 64, 73, 87, 125, 102, 68, 85, 46, 111, 123, 58, 121, 35, 60, 60, 72, 102, 82, 40, 45, 33, 88, 67, 35, 77, 92, 101, 77, 108, 120, 128, 176, 187, 251, 156, 137, 219, 219, 231, 1, 250, 1, 12, 13, 63, 201, 101, 63, 29, 93, 217, 90, 63, 56, 1, 84, 83, 40, 66, 93, 102, 220, 123, 63, 98, 56, 91, 50, 107, 90, 80, 42, 118, 111, 76, 102, 54, 69, 111, 59, 123, 96, 50, 74, 125, 69, 103, 38, 84, 80, 41, 93, 40, 65, 34, 37, 72, 38, 80, 61, 95, 54, 122, 119, 87, 35, 41, 103, 118, 59, 54, 55, 116, 50, 112, 44, 98, 70, 116, 44, 54, 85, 120, 128, 248, 249, 183, 152, 225, 207, 191, 81, 250, 1, 5, 13, 129, 25, 146, 62, 84, 83, 40, 64, 93, 146, 41, 93, 63, 98, 67, 33, 85, 108, 70, 61, 48, 115, 81, 90, 100, 100, 57, 114, 121, 59, 126, 47, 56, 57, 113, 103, 117, 80, 117, 65, 33, 49, 67, 39, 42, 88, 95, 71, 100, 33, 82, 122, 79, 124, 38, 66, 67, 86, 43, 70, 73, 82, 121, 112, 55, 70, 67, 33, 93, 42, 43, 37, 118, 36, 60, 126, 80, 74, 80, 43, 37, 113, 120, 128, 166, 139, 208, 188, 183, 218, 128, 20, 250, 1, 5, 13, 210, 137, 110, 63, 84, 83, 40, 96, 93, 209, 23, 27, 61, 98, 27, 94, 58, 51, 79, 68, 62, 69, 79, 119, 77, 54, 82, 111, 99, 53, 93, 104, 89, 116, 77, 36, 75, 96, 38, 112, 120, 38, 120, 128, 232, 178, 237, 207, 175, 150, 235, 126, 250, 1, 12, 13, 212, 128, 177, 62, 29, 241, 102, 18, 63, 56, 0, 84, 83, 40, 1, 93, 67, 64, 175, 61, 98, 60, 51, 102, 40, 109, 46, 101, 108, 94, 70, 43, 109, 103, 125, 89, 107, 117, 70, 41, 83, 35, 57, 126, 50, 89, 44, 93, 75, 56, 70, 46, 65, 41, 53, 74, 91, 123, 45, 111, 89, 115, 40, 110, 92, 64, 114, 61, 114, 62, 57, 40, 121, 77, 112, 124, 109, 52, 83, 78, 96, 80, 120, 128, 184, 167, 181, 212, 179, 187, 170, 163, 1, 250, 1, 5, 13, 129, 237, 11, 63, 84, 83, 40, 32, 93, 36, 6, 134, 62, 98, 86, 104, 100, 82, 82, 125, 111, 103, 85, 78, 95, 121, 74, 65, 113, 101, 109, 105, 44, 125, 61, 51, 115, 55, 56, 92, 70, 71, 94, 47, 41, 89, 83, 85, 67, 86, 46, 106, 63, 63, 73, 63, 67, 125, 49, 34, 66, 113, 97, 103, 113, 102, 45, 85, 122, 37, 116, 76, 57, 117, 86, 71, 41, 70, 68, 37, 70, 116, 125, 59, 86, 34, 73, 107, 83, 124, 111, 116, 38, 54, 57, 83, 101, 117, 60, 66, 75, 120, 128, 144, 132, 218, 191, 132, 161, 208, 253, 1, 250, 1, 5, 13, 46, 40, 29, 63, 84, 83, 40, 40, 93, 232, 172, 47, 63, 98, 72, 97, 81, 73, 104, 33, 54, 123, 89, 43, 91, 77, 115, 70, 48, 110, 61, 64, 33, 124, 52, 126, 69, 35, 92, 34, 97, 51, 42, 34, 89, 71, 57, 94, 88, 116, 80, 32, 35, 81, 102, 114, 59, 122, 90, 107, 94, 63, 100, 76, 37, 43, 123, 92, 41, 97, 60, 78, 107, 101, 63, 35, 113, 86, 81, 51, 51, 53, 108, 59, 62, 61, 61, 120, 128, 176, 182, 240, 252, 148, 179, 131, 64, 250, 1, 5, 13, 162, 216, 117, 62, 84, 83, 40, 43, 93, 24, 26, 53, 63, 98, 68, 73, 71, 111, 66, 66, 77, 92, 124, 77, 75, 92, 84, 118, 88, 33, 51, 60, 50, 98, 33, 100, 72, 70, 87, 73, 81, 73, 46, 103, 108, 76, 69, 104, 125, 113, 38, 123, 67, 124, 85, 53, 88, 35, 102, 85, 96, 116, 98, 60, 41, 32, 61, 82, 63, 126, 33, 33, 55, 120, 111, 35, 77, 53, 96, 126, 54, 107, 120, 120, 128, 216, 162, 185, 172, 193, 149, 202, 94, 250, 1, 5, 13, 3, 170, 115, 63, 84, 83, 40, 30, 93, 58, 19, 110, 63, 98, 79, 52, 45, 106, 43, 69, 94, 34, 104, 92, 102, 113, 93, 108, 47, 113, 72, 126, 112, 37, 99, 74, 45, 81, 102, 67, 66, 103, 63, 115, 123, 123, 64, 114, 39, 40, 69, 84, 114, 90, 65, 53, 47, 51, 59, 91, 87, 114, 111, 68, 67, 121, 116, 116, 82, 78, 38, 90, 35, 103, 35, 118, 97, 115, 95, 106, 80, 106, 100, 38, 76, 115, 43, 53, 99, 77, 58, 121, 54, 43, 120, 128, 192, 145, 223, 243, 142, 140, 249, 100, 250, 1, 5, 13, 107, 50, 251, 62, 84, 83, 40, 116, 93, 31, 123, 114, 63, 98, 45, 80, 34, 38, 74, 63, 88, 33, 105, 80, 43, 87, 74, 82, 59, 82, 79, 43, 108, 45, 104, 118, 78, 109, 95, 49, 36, 52, 44, 68, 119, 123, 83, 125, 102, 66, 92, 100, 37, 74, 44, 36, 98, 66, 126, 92, 120, 128, 136, 249, 155, 244, 194, 200, 223, 161, 1, 250, 1, 5, 13, 250, 50, 114, 63, 84, 83, 40, 125, 93, 20, 248, 207, 62, 98, 23, 101, 126, 125, 64, 46, 35, 33, 51, 69, 57, 59, 67, 115, 68, 87, 47, 36, 75, 106, 119, 116, 106, 38, 120, 128, 152, 205, 220, 181, 207, 233, 228, 173, 1, 250, 1, 12, 13, 30, 97, 57, 60, 29, 126, 145, 55, 63, 56, 0, 84, 83, 40, 15, 93, 237, 51, 83, 63, 98, 48, 34, 119, 41, 52, 101, 94, 119, 124, 50, 111, 99, 65, 72, 62, 107, 47, 103, 47, 62, 106, 110, 88, 108, 46, 38, 80, 121, 120, 91, 63, 73, 110, 117, 68, 67, 64, 49, 46, 46, 100, 94, 49, 112, 91, 39, 86, 76, 75, 120, 128, 244, 189, 235, 209, 132, 239, 219, 35, 250, 1, 5, 13, 67, 50, 72, 62, 84, 83, 40, 32, 93, 92, 70, 13, 63, 98, 75, 117, 64, 126, 72, 43, 121, 46, 52, 99, 126, 65, 114, 69, 116, 75, 36, 122, 74, 125, 89, 32, 88, 43, 93, 103, 49, 39, 79, 36, 77, 94, 72, 39, 116, 120, 84, 68, 121, 53, 54, 32, 121, 32, 95, 111, 125, 53, 50, 42, 71, 80, 110, 52, 94, 83, 60, 52, 65, 96, 120, 114, 93, 47, 54, 63, 119, 106, 80, 123, 117, 94, 32, 53, 102, 88, 120, 128, 207, 188, 138, 161, 249, 228, 211, 136, 1, 250, 1, 5, 13, 151, 145, 22, 63, 84, 83, 40, 57, 93, 193, 4, 79, 63, 98, 45, 104, 122, 116, 68, 91, 124, 111, 52, 72, 64, 91, 64, 35, 57, 59, 66, 66, 105, 105, 64, 118, 50, 100, 53, 52, 104, 79, 88, 76, 37, 77, 99, 104, 83, 118, 125, 125, 56, 83, 56, 78, 99, 66, 47, 63, 120, 128, 192, 231, 147, 164, 162, 188, 158, 72, 250, 1, 5, 13, 50, 14, 31, 63, 84, 83, 40, 94, 93, 118, 39, 112, 63, 98, 47, 67, 53, 60, 109, 43, 117, 86, 54, 94, 48, 114, 76, 54, 102, 66, 114, 118, 86, 78, 65, 61, 68, 42, 54, 80, 112, 51, 111, 84, 117, 94, 45, 104, 94, 40, 111, 49, 117, 93, 93, 64, 103, 62, 39, 96, 107, 55, 120, 128, 160, 193, 195, 188, 145, 138, 156, 123, 250, 1, 5, 13, 43, 200, 127, 63, 84, 83, 40, 38, 93, 214, 180, 215, 62, 98, 59, 125, 44, 68, 91, 125, 42, 37, 60, 57, 98, 101, 96, 104, 81, 100, 99, 87, 94, 81, 97, 33, 120, 112, 33, 85, 38, 34, 84, 100, 88, 54, 111, 55, 77, 95, 33, 67, 34, 41, 100, 43, 88, 67, 122, 89, 38, 85, 85, 122, 40, 95, 61, 77, 90, 70, 36, 59, 67, 38, 120, 128, 152, 162, 142, 128, 213, 145, 242, 117, 250, 1, 5, 13, 133, 79, 173, 61, 84, 83, 40, 64, 93, 55, 65, 20, 63, 98, 64, 96, 75, 117, 72, 59, 112, 99, 63, 84, 84, 108, 85, 71, 85, 116, 70, 78, 80, 76, 89, 92, 120, 120, 66, 92, 38, 91, 100, 126, 122, 49, 92, 90, 33, 97, 79, 98, 92, 57, 100, 54, 103, 42, 104, 96, 36, 126, 78, 69, 123, 87, 71, 91, 117, 121, 103, 81, 83, 107, 52, 53, 126, 64, 89, 120, 128, 176, 160, 217, 155, 254, 130, 202, 47, 250, 1, 10, 13, 44, 6, 37, 62, 29, 46, 108, 116, 63, 84, 83, 40, 50, 93, 242, 109, 94, 63, 98, 60, 69, 99, 113, 54, 102, 67, 116, 109, 48, 97, 87, 39, 45, 63, 34, 67, 105, 33, 99, 39, 121, 124, 47, 111, 36, 79, 55, 71, 80, 69, 80, 40, 88, 90, 126, 56, 100, 48, 115, 82, 37, 120, 65, 113, 51, 45, 39, 94, 61, 53, 88, 45, 54, 62, 119, 72, 83, 33, 49, 55, 120, 128, 175, 218, 247, 225, 249, 210, 189, 143, 1, 250, 1, 5, 13, 24, 4, 241, 62, 84, 83, 40, 38, 93, 35, 24, 72, 63, 98, 50, 48, 78, 78, 81, 63, 104, 93, 88, 45, 49, 33, 32, 91, 61, 91, 118, 71, 87, 41, 58, 107, 67, 113, 57, 97, 86, 100, 99, 125, 92, 70, 87, 92, 86, 96, 100, 94, 85, 63, 83, 87, 126, 32, 37, 60, 119, 107, 54, 68, 58, 120, 128, 168, 198, 191, 172, 152, 178, 252, 105, 250, 1, 5, 13, 207, 199, 8, 63, 84, 83, 40, 46, 93, 191, 90, 175, 60, 98, 27, 125, 108, 92, 52, 110, 103, 36, 121, 90, 79, 105, 72, 67, 37, 91, 118, 55, 113, 56, 85, 98, 108, 66, 107, 123, 105, 105, 120, 128, 236, 158, 224, 183, 225, 246, 129, 190, 1, 250, 1, 10, 13, 196, 249, 162, 62, 29, 20, 105, 52, 63, 84, 83, 40, 102, 93, 32, 239, 95, 63, 98, 59, 52, 90, 87, 115, 39, 73, 101, 86, 79, 92, 68, 79, 58, 115, 83, 102, 89, 77, 34, 124, 58, 108, 62, 49, 73, 112, 55, 37, 124, 85, 91, 118, 97, 117, 51, 104, 76, 103, 111, 108, 43, 96, 37, 37, 71, 114, 80, 40, 53, 34, 115, 111, 96, 111, 88, 71, 59, 69, 73, 120, 128, 216, 172, 233, 219, 201, 229, 202, 30, 250, 1, 5, 13, 26, 45, 67, 62, 84, 83, 40, 86, 93, 12, 211, 25, 63, 98, 51, 120, 33, 77, 108, 68, 95, 106, 58, 112, 93, 53, 113, 89, 103, 56, 104, 86, 63, 47, 110, 121, 96, 106, 54, 113, 60, 107, 76, 38, 61, 89, 90, 73, 39, 43, 36, 121, 37, 44, 72, 74, 103, 34, 50, 74, 125, 126, 94, 35, 92, 114, 120, 128, 224, 167, 203, 236, 245, 189, 218, 115, 250, 1, 5, 13, 229, 63, 237, 60, 84, 83, 40, 108, 93, 44, 128, 39, 63, 98, 77, 56, 54, 54, 122, 39, 114, 61, 51, 82, 36, 89, 71, 81, 91, 52, 110, 80, 50, 102, 67, 50, 94, 87, 106, 115, 61, 44, 73, 73, 74, 98, 87, 87, 72, 114, 108, 98, 42, 37, 84, 44, 84, 78, 46, 112, 85, 76, 35, 109, 108, 66, 99, 59, 77, 76, 89, 93, 75, 38, 104, 101, 115, 104, 40, 64, 33, 110, 41, 103, 70, 43, 69, 45, 49, 54, 92, 47, 120, 128, 188, 208, 253, 198, 222, 131, 237, 183, 1, 250, 1, 5, 13, 182, 210, 111, 63, 84, 83, 40, 39, 93, 90, 35, 88, 63, 98, 61, 41, 90, 91, 40, 126, 60, 42, 123, 57, 47, 55, 36, 59, 110, 56, 106, 70, 108, 110, 101, 66, 58, 71, 97, 123, 85, 42, 54, 110, 73, 52, 81, 103, 119, 91, 56, 44, 32, 65, 100, 100, 45, 78, 55, 115, 65, 112, 66, 125, 112, 104, 92, 42, 86, 77, 110, 51, 121, 43, 72, 50, 120, 128, 224, 182, 131, 238, 248, 181, 155, 240, 1, 250, 1, 5, 13, 254, 25, 8, 62, 84, 83, 40, 105, 93, 242, 212, 114, 63, 98, 64, 101, 59, 67, 50, 32, 94, 69, 74, 42, 33, 52, 107, 47, 109, 90, 100, 103, 56, 124, 96, 87, 71, 49, 73, 108, 36, 50, 115, 120, 82, 112, 33, 94, 60, 45, 38, 77, 47, 124, 50, 66, 49, 126, 85, 57, 35, 35, 44, 80, 99, 74, 91, 47, 46, 67, 61, 41, 120, 68, 122, 75, 80, 81, 87, 120, 128, 242, 206, 226, 210, 138, 247, 148, 150, 1, 250, 1, 5, 13, 186, 104, 80, 62, 84, 83, 40, 16, 93, 131, 135, 94, 63, 98, 61, 95, 83, 54, 87, 58, 105, 62, 69, 71, 90, 48, 105, 33, 38, 67, 53, 40, 52, 113, 80, 120, 111, 123, 83, 106, 33, 102, 112, 95, 71, 68, 37, 117, 48, 75, 123, 76, 113, 64, 68, 110, 124, 117, 78, 103, 89, 121, 69, 45, 59, 79, 122, 65, 90, 121, 111, 87, 98, 107, 56, 35, 120, 128, 220, 165, 200, 247, 210, 173, 194, 188, 1, 250, 1, 5, 13, 178, 151, 58, 63, 84, 83, 40, 0, 93, 174, 128, 108, 62, 98, 92, 42, 114, 111, 89, 71, 104, 53, 115, 77, 96, 122, 121, 77, 106, 48, 39, 64, 99, 67, 118, 73, 99, 59, 53, 91, 67, 105, 37, 40, 64, 65, 55, 116, 56, 93, 101, 41, 106, 101, 82, 58, 39, 115, 120, 125, 117, 42, 118, 91, 49, 97, 104, 65, 41, 107, 70, 87, 90, 125, 35, 126, 47, 106, 44, 63, 99, 36, 52, 45, 73, 124, 85, 125, 112, 92, 65, 111, 65, 55, 101, 57, 113, 73, 118, 93, 88, 116, 107, 75, 55, 46, 78, 120, 128, 160, 240, 230, 252, 157, 130, 183, 230, 1, 250, 1, 5, 13, 196, 63, 49, 63, 84, 83, 40, 67, 93, 96, 146, 236, 61, 98, 49, 59, 102, 89, 57, 112, 116, 104, 49, 51, 44, 106, 79, 75, 73, 85, 54, 67, 56, 104, 44, 100, 115, 77, 102, 109, 56, 104, 117, 59, 78, 104, 59, 61, 81, 38, 40, 102, 124, 116, 67, 41, 55, 98, 81, 108, 68, 63, 33, 96, 120, 128, 144, 248, 190, 211, 141, 193, 247, 116, 250, 1, 5, 13, 122, 82, 243, 61, 84, 83, 40, 69, 93, 218, 165, 108, 63, 98, 43, 70, 69, 70, 57, 114, 75, 87, 44, 113, 117, 99, 66, 79, 49, 121, 67, 76, 78, 69, 67, 69, 34, 77, 48, 122, 120, 72, 120, 102, 53, 67, 67, 52, 66, 118, 44, 94, 110, 114, 81, 60, 55, 55, 120, 128, 180, 166, 173, 174, 157, 179, 234, 44, 250, 1, 5, 13, 125, 14, 125, 63, 84, 83, 40, 20, 93, 1, 59, 155, 62, 98, 43, 50, 69, 93, 52, 71, 100, 48, 82, 67, 119, 53, 61, 120, 34, 94, 68, 92, 82, 64, 45, 45, 58, 109, 100, 92, 91, 115, 38, 45, 106, 44, 50, 107, 91, 53, 83, 41, 32, 122, 93, 35, 110, 82, 120, 128, 196, 226, 237, 136, 157, 148, 238, 27, 250, 1, 5, 13, 188, 11, 218, 62, 84, 83, 40, 65, 93, 86, 223, 111, 63, 98, 34, 78, 92, 114, 89, 109, 93, 33, 47, 119, 86, 119, 86, 107, 111, 42, 69, 88, 106, 35, 81, 60, 107, 43, 58, 91, 86, 97, 42, 61, 102, 89, 59, 43, 97, 120, 128, 196, 232, 159, 198, 164, 196, 254, 177, 1, 250, 1, 5, 13, 117, 26, 220, 62, 84, 83, 40, 35, 93, 163, 154, 54, 62, 98, 43, 61, 83, 105, 76, 61, 123, 48, 73, 46, 109, 120, 73, 121, 72, 68, 32, 92, 98, 81, 87, 125, 55, 122, 118, 113, 48, 124, 91, 75, 42, 74, 96, 42, 71, 76, 78, 102, 111, 77, 46, 42, 50, 71, 120, 128, 176, 157, 140, 222, 242, 234, 225, 240, 1, 250, 1, 5, 13, 179, 235, 51, 62, 84, 83, 40, 110, 93, 28, 165, 77, 63, 98, 40, 48, 118, 43, 36, 97, 118, 98, 50, 38, 88, 114, 89, 44, 125, 84, 125, 36, 66, 56, 62, 82, 122, 116, 56, 107, 52, 66, 77, 107, 110, 38, 101, 125, 67, 107, 100, 63, 37, 103, 105, 120, 128, 152, 183, 194, 220, 183, 185, 147, 54, 250, 1, 5, 13, 183, 244, 91, 62, 84, 83, 40, 50, 93, 120, 216, 101, 63, 98, 84, 114, 53, 64, 48, 85, 51, 67, 80, 119, 84, 57, 53, 33, 113, 56, 77, 83, 53, 70, 55, 82, 45, 91, 104, 49, 110, 93, 125, 90, 78, 117, 62, 84, 126, 69, 85, 114, 50, 118, 87, 75, 84, 108, 73, 41, 86, 99, 77, 108, 58, 53, 50, 108, 46, 67, 101, 89, 87, 125, 101, 84, 69, 117, 73, 93, 122, 95, 34, 76, 98, 89, 65, 61, 109, 107, 124, 63, 50, 95, 90, 43, 48, 49, 63, 120, 128, 156, 198, 153, 196, 231, 177, 204, 161, 1, 250, 1, 5, 13, 254, 230, 52, 63, 84, 83, 40, 64, 93, 146, 198, 204, 62, 98, 94, 91, 94, 122, 59, 52, 49, 34, 38, 93, 67, 106, 45, 118, 96, 32, 42, 96, 114, 116, 125, 66, 69, 69, 71, 118, 67, 90, 68, 52, 86, 48, 121, 74, 57, 69, 108, 102, 62, 45, 43, 107, 101, 62, 122, 70, 81, 98, 73, 48, 38, 94, 69, 109, 81, 35, 53, 56, 83, 67, 111, 86, 93, 113, 39, 51, 111, 97, 93, 59, 50, 67, 66, 101, 104, 50, 92, 39, 74, 32, 68, 95, 48, 51, 45, 118, 106, 43, 120, 53, 48, 83, 50, 121, 60, 120, 128, 248, 253, 243, 232, 209, 239, 159, 199, 1, 250, 1, 5, 13, 177, 131, 19, 62, 84, 83, 40, 110, 93, 49, 20, 116, 62, 98, 43, 103, 86, 111, 37, 46, 124, 98, 60, 94, 37, 62, 70, 46, 109, 82, 126, 47, 69, 73, 99, 48, 71, 100, 104, 71, 42, 93, 48, 71, 72, 51, 36, 104, 111, 97, 73, 84, 90, 34, 54, 73, 90, 43, 120, 128, 135, 139, 141, 241, 180, 216, 232, 136, 1, 250, 1, 10, 13, 220, 202, 27, 63, 29, 9, 72, 84, 63, 84, 83, 40, 3, 93, 200, 130, 58, 63, 98, 49, 94, 122, 44, 47, 99, 47, 38, 63, 113, 38, 93, 35, 62, 82, 115, 54, 112, 57, 92, 61, 43, 41, 73, 84, 66, 51, 58, 84, 60, 93, 46, 87, 40, 119, 80, 76, 59, 35, 64, 89, 105, 66, 87, 77, 124, 126, 118, 117, 101, 120, 128, 232, 224, 230, 169, 214, 134, 182, 113, 250, 1, 5, 13, 132, 9, 97, 62, 84, 83, 40, 43, 93, 35, 146, 66, 62, 98, 46, 100, 89, 85, 80, 87, 108, 79, 115, 80, 35, 51, 119, 37, 122, 69, 33, 71, 121, 108, 119, 35, 83, 104, 81, 122, 87, 67, 59, 67, 110, 71, 72, 109, 69, 67, 62, 122, 123, 99, 54, 112, 100, 56, 63, 67, 85, 120, 128, 208, 185, 204, 206, 138, 205, 227, 244, 1, 250, 1, 5, 13, 50, 129, 25, 61, 84, 83, 40, 65, 93, 103, 54, 98, 63, 98, 94, 62, 121, 71, 71, 46, 49, 111, 36, 84, 32, 72, 52, 79, 97, 90, 105, 41, 95, 87, 39, 38, 74, 54, 86, 39, 61, 58, 73, 45, 68, 95, 63, 105, 78, 80, 76, 33, 69, 54, 50, 77, 118, 70, 98, 108, 91, 52, 86, 99, 88, 76, 55, 75, 73, 109, 114, 98, 111, 64, 111, 117, 69, 118, 48, 63, 41, 73, 33, 48, 45, 104, 98, 72, 69, 88, 47, 36, 82, 105, 74, 41, 98, 101, 83, 119, 71, 115, 64, 96, 92, 105, 48, 37, 70, 120, 128, 172, 159, 141, 241, 201, 250, 233, 37, 250, 1, 5, 13, 58, 181, 174, 61, 84, 83, 40, 0, 93, 203, 33, 109, 62, 98, 63, 66, 99, 50, 51, 69, 85, 111, 104, 110, 37, 111, 94, 109, 48, 38, 116, 102, 50, 95, 66, 55, 118, 52, 41, 63, 83, 67, 87, 93, 34, 41, 80, 47, 109, 47, 37, 56, 116, 61, 47, 98, 47, 88, 109, 79, 34, 110, 88, 42, 47, 94, 40, 71, 92, 125, 75, 78, 41, 114, 113, 50, 56, 43, 120, 128, 176, 132, 137, 132, 135, 163, 200, 102, 250, 1, 10, 13, 60, 114, 117, 63, 29, 70, 163, 167, 62, 84, 83, 40, 62, 93, 38, 107, 127, 63, 98, 65, 32, 32, 92, 112, 116, 79, 95, 40, 62, 69, 88, 61, 100, 106, 76, 77, 66, 32, 40, 82, 111, 99, 85, 46, 34, 74, 124, 74, 36, 107, 113, 48, 82, 110, 87, 41, 82, 109, 51, 118, 124, 117, 45, 41, 79, 84, 45, 71, 106, 92, 73, 122, 54, 123, 47, 60, 73, 77, 110, 73, 82, 52, 35, 81, 82, 120, 128, 168, 210, 221, 134, 181, 146, 237, 181, 1, 250, 1, 10, 13, 121, 243, 71, 63, 29, 21, 223, 100, 63, 84, 83, 40, 24, 93, 181, 80, 190, 62, 98, 46, 121, 84, 108, 48, 84, 120, 86, 76, 94, 76, 61, 85, 95, 70, 66, 118, 121, 85, 94, 59, 94, 36, 125, 105, 68, 103, 113, 90, 85, 39, 105, 55, 52, 70, 97, 116, 46, 37, 70, 53, 100, 123, 110, 65, 43, 123, 120, 128, 200, 158, 185, 209, 210, 244, 201, 70, 250, 1, 10, 13, 85, 87, 33, 63, 29, 111, 22, 31, 62, 84, 83, 40, 79, 93, 135, 15, 246, 62, 98, 76, 52, 54, 117, 99, 117, 85, 35, 107, 108, 38, 122, 118, 86, 97, 38, 64, 56, 99, 77, 104, 115, 46, 72, 85, 97, 53, 91, 93, 72, 51, 54, 76, 120, 88, 85, 33, 62, 98, 107, 62, 43, 57, 89, 47, 105, 37, 55, 95, 37, 91, 59, 118, 96, 114, 88, 37, 108, 63, 33, 96, 121, 68, 66, 88, 111, 78, 125, 124, 44, 37, 34, 85, 119, 46, 93, 90, 120, 128, 240, 174, 130, 163, 245, 246, 146, 71, 250, 1, 10, 13, 114, 105, 139, 62, 29, 117, 76, 75, 63, 84, 83, 40, 81, 93, 91, 99, 121, 63, 98, 47, 123, 88, 108, 119, 62, 106, 38, 32, 79, 51, 125, 96, 43, 68, 101, 117, 32, 62, 59, 38, 58, 82, 126, 88, 100, 126, 81, 52, 125, 80, 82, 83, 67, 98, 124, 106, 85, 96, 81, 98, 118, 124, 92, 112, 35, 115, 108, 120, 128, 176, 170, 198, 212, 174, 211, 178, 99, 250, 1, 5, 13, 133, 220, 105, 63, 84, 83, 40, 91, 93, 61, 59, 12, 63, 98, 52, 122, 80, 85, 98, 73, 88, 51, 50, 62, 57, 112, 34, 126, 96, 74, 61, 71, 70, 121, 63, 62, 108, 87, 47, 60, 116, 45, 85, 112, 49, 102, 60, 57, 123, 86, 34, 108, 32, 82, 49, 66, 78, 50, 73, 37, 122, 92, 48, 88, 86, 68, 66, 120, 128, 152, 193, 192, 175, 213, 137, 132, 252, 1, 250, 1, 10, 13, 140, 139, 197, 62, 29, 104, 25, 103, 62, 84, 83, 40, 19, 93, 221, 174, 108, 63, 98, 41, 70, 69, 83, 75, 92, 64, 45, 81, 84, 104, 35, 41, 71, 79, 71, 115, 103, 123, 110, 89, 46, 41, 65, 56, 124, 123, 57, 108, 68, 63, 115, 101, 72, 42, 70, 89, 126, 101, 100, 45, 37, 120, 128, 232, 237, 219, 190, 174, 238, 222, 245, 1, 250, 1, 5, 13, 46, 70, 3, 63, 84, 83, 40, 24, 93, 101, 197, 27, 63, 98, 50, 38, 48, 39, 124, 78, 52, 71, 69, 83, 105, 60, 36, 59, 77, 96, 38, 63, 44, 52, 115, 60, 95, 61, 40, 109, 115, 34, 55, 96, 84, 53, 87, 46, 93, 117, 107, 50, 111, 116, 43, 75, 64, 115, 63, 41, 84, 98, 56, 36, 38, 120, 128, 168, 210, 135, 174, 225, 146, 189, 92, 250, 1, 10, 13, 193, 58, 73, 63, 29, 249, 180, 153, 62, 84, 83, 40, 39, 93, 29, 0, 158, 62, 98, 51, 69, 114, 125, 46, 89, 50, 48, 99, 126, 84, 100, 117, 93, 86, 115, 115, 79, 54, 40, 72, 123, 107, 124, 126, 57, 48, 104, 50, 90, 110, 73, 59, 112, 63, 80, 119, 51, 96, 59, 120, 58, 91, 116, 106, 68, 94, 37, 96, 47, 50, 52, 120, 128, 240, 202, 164, 128, 247, 214, 164, 70, 250, 1, 5, 13, 253, 161, 86, 62, 84, 83, 40, 112, 93, 156, 205, 177, 62, 98, 35, 89, 116, 126, 116, 73, 72, 125, 41, 47, 42, 72, 36, 61, 38, 123, 95, 110, 122, 47, 45, 63, 117, 50, 89, 90, 42, 40, 34, 71, 90, 117, 39, 122, 125, 117, 120, 224, 209, 153, 150, 145, 141, 205, 177, 4, 250, 1, 10, 13, 194, 177, 92, 62, 29, 224, 82, 75, 63, 84, 83, 40, 108, 93, 219, 102, 1, 63, 98, 35, 60, 82, 100, 96, 122, 89, 103, 90, 51, 81, 69, 88, 36, 103, 33, 99, 98, 68, 57, 62, 64, 122, 97, 84, 51, 65, 41, 62, 48, 121, 75, 34, 41, 94, 112, 120, 128, 224, 227, 242, 188, 231, 157, 150, 231, 1, 250, 1, 5, 13, 212, 4, 56, 62, 84, 83, 40, 66, 93, 225, 167, 39, 63, 98, 35, 32, 66, 77, 110, 116, 53, 61, 34, 51, 124, 50, 63, 111, 81, 82, 47, 64, 112, 48, 76, 89, 79, 72, 73, 56, 38, 66, 78, 69, 117, 51, 81, 48, 101, 56, 120, 128, 208, 172, 161, 143, 236, 228, 138, 250, 1, 250, 1, 5, 13, 177, 252, 92, 63, 84, 83, 40, 16, 93, 203, 205, 74, 63, 98, 39, 63, 117, 62, 116, 64, 124, 89, 91, 80, 86, 78, 80, 123, 32, 37, 36, 80, 120, 35, 85, 110, 113, 110, 92, 60, 104, 95, 47, 41, 56, 87, 60, 51, 36, 111, 85, 58, 90, 40, 120, 128, 204, 144, 178, 199, 232, 132, 145, 187, 1, 250, 1, 5, 13, 144, 198, 39, 63, 84, 83, 40, 56, 93, 86, 117, 90, 63, 98, 47, 118, 118, 69, 55, 81, 42, 96, 103, 33, 110, 86, 124, 76, 39, 97, 87, 87, 61, 74, 81, 55, 126, 49, 60, 118, 47, 79, 104, 116, 112, 86, 118, 67, 32, 118, 101, 118, 81, 46, 36, 72, 79, 85, 77, 92, 39, 67, 120, 128, 248, 210, 212, 151, 180, 151, 165, 189, 1, 250, 1, 5, 13, 250, 208, 24, 63, 84, 83, 40, 3, 93, 170, 72, 1, 63, 98, 41, 46, 51, 120, 89, 119, 100, 41, 63, 65, 90, 118, 114, 48, 56, 94, 88, 76, 48, 123, 96, 37, 47, 70, 40, 102, 73, 99, 94, 110, 107, 33, 48, 114, 64, 72, 98, 74, 70, 125, 32, 108, 120, 128, 222, 228, 130, 211, 237, 165, 150, 152, 1, 250, 1, 10, 13, 62, 73, 77, 63, 29, 164, 213, 219, 62, 84, 83, 40, 65, 93, 156, 111, 35, 63, 98, 63, 68, 53, 124, 78, 118, 61, 92, 64, 74, 126, 108, 111, 113, 78, 33, 73, 79, 84, 88, 102, 32, 110, 111, 123, 45, 37, 49, 122, 115, 114, 66, 124, 86, 42, 36, 78, 96, 64, 116, 99, 82, 81, 117, 72, 117, 90, 83, 79, 126, 66, 97, 55, 111, 105, 92, 85, 69, 33, 65, 112, 43, 96, 76, 120, 128, 144, 229, 201, 169, 238, 168, 206, 74, 250, 1, 10, 13, 236, 234, 33, 63, 29, 172, 200, 83, 63, 84, 83, 40, 32, 93, 43, 86, 65, 63, 98, 41, 74, 82, 104, 47, 94, 115, 52, 77, 120, 70, 37, 82, 81, 96, 123, 80, 49, 42, 45, 108, 76, 77, 41, 94, 126, 36, 88, 112, 36, 62, 107, 38, 65, 106, 37, 75, 89, 81, 88, 122, 85, 120, 128, 158, 239, 188, 146, 238, 249, 230, 147, 1, 250, 1, 5, 13, 141, 27, 34, 63, 84, 83, 40, 125, 93, 173, 69, 117, 63, 98, 48, 109, 62, 73, 99, 123, 69, 81, 97, 74, 59, 123, 72, 41, 48, 89, 59, 66, 73, 90, 89, 125, 48, 102, 91, 79, 117, 94, 80, 49, 55, 61, 112, 42, 98, 48, 101, 46, 45, 39, 119, 57, 68, 117, 79, 40, 34, 80, 65, 120, 128, 248, 200, 172, 175, 214, 199, 228, 125, 250, 1, 5, 13, 68, 22, 41, 63, 84, 83, 40, 25, 93, 231, 236, 55, 63, 98, 43, 33, 68, 124, 93, 87, 108, 51, 38, 101, 33, 79, 51, 124, 42, 62, 69, 126, 115, 45, 52, 65, 97, 63, 89, 57, 54, 82, 76, 68, 61, 82, 82, 36, 88, 110, 100, 101, 82, 45, 64, 120, 33, 49, 120, 128, 180, 225, 151, 132, 160, 139, 190, 161, 1, 250, 1, 10, 13, 214, 46, 99, 63, 29, 121, 217, 51, 63, 84, 83, 40, 66, 93, 97, 224, 121, 63, 98, 46, 99, 43, 65, 41, 81, 125, 66, 63, 37, 66, 67, 64, 58, 101, 96, 71, 77, 124, 46, 67, 59, 89, 94, 76, 102, 107, 59, 64, 80, 38, 100, 85, 99, 85, 104, 57, 123, 73, 32, 38, 54, 79, 94, 67, 46, 107, 120, 128, 250, 193, 200, 147, 209, 143, 196, 9, 250, 1, 5, 13, 164, 199, 70, 62, 84, 83, 40, 42, 93, 84, 66, 68, 63, 98, 59, 106, 119, 84, 46, 97, 41, 76, 115, 66, 100, 97, 34, 110, 126, 93, 108, 91, 99, 124, 71, 75, 36, 123, 40, 45, 107, 121, 59, 61, 121, 101, 41, 32, 102, 59, 107, 33, 85, 114, 94, 108, 40, 39, 59, 68, 51, 96, 95, 100, 65, 47, 65, 53, 119, 61, 101, 122, 75, 32, 120, 128, 168, 172, 159, 128, 190, 226, 250, 114, 250, 1, 5, 13, 245, 192, 32, 62, 84, 83, 40, 22, 93, 109, 12, 17, 63, 98, 60, 71, 125, 88, 33, 39, 99, 112, 106, 38, 111, 61, 90, 66, 124, 96, 99, 121, 42, 58, 85, 123, 105, 67, 114, 40, 72, 84, 112, 84, 85, 124, 80, 91, 81, 94, 60, 106, 50, 88, 122, 114, 85, 41, 80, 119, 61, 121, 104, 58, 103, 38, 106, 115, 89, 89, 92, 89, 100, 120, 94, 120, 128, 236, 150, 192, 242, 226, 182, 129, 148, 1, 250, 1, 5, 13, 143, 53, 27, 60, 84, 83, 40, 29, 93, 112, 95, 255, 62, 98, 25, 114, 108, 125, 112, 61, 67, 119, 102, 81, 62, 98, 70, 95, 114, 122, 105, 77, 107, 85, 108, 79, 50, 91, 33, 119, 120, 192, 136, 212, 129, 173, 195, 160, 141, 3, 250, 1, 10, 13, 113, 27, 48, 63, 29, 227, 203, 135, 61, 84, 83, 40, 32, 93, 80, 96, 111, 63, 98, 35, 108, 113, 63, 89, 93, 42, 62, 41, 74, 117, 111, 62, 56, 84, 118, 51, 124, 102, 104, 46, 48, 66, 74, 72, 126, 95, 48, 124, 120, 60, 97, 113, 78, 87, 81, 120, 128, 144, 220, 128, 146, 217, 224, 133, 108, 250, 1, 12, 13, 207, 232, 140, 61, 29, 166, 64, 132, 61, 56, 0, 84, 83, 40, 106, 93, 207, 138, 231, 62, 98, 73, 68, 65, 94, 123, 49, 120, 39, 42, 99, 36, 121, 60, 41, 104, 73, 70, 117, 89, 124, 121, 65, 47, 45, 52, 125, 110, 96, 34, 38, 44, 118, 82, 119, 98, 107, 33, 107, 75, 109, 102, 40, 113, 52, 56, 102, 84, 68, 110, 40, 73, 47, 75, 54, 117, 41, 52, 51, 73, 125, 65, 56, 36, 36, 86, 45, 70, 68, 69, 123, 72, 90, 73, 107, 120, 128, 132, 155, 166, 239, 171, 216, 177, 31, 250, 1, 5, 13, 15, 235, 88, 63, 84, 83, 40, 62, 93, 103, 236, 114, 63, 98, 83, 116, 76, 72, 74, 112, 121, 91, 123, 74, 60, 34, 89, 87, 109, 65, 77, 76, 77, 36, 109, 92, 43, 64, 48, 126, 114, 95, 109, 101, 95, 126, 36, 89, 57, 61, 124, 85, 118, 71, 42, 71, 89, 97, 42, 65, 106, 68, 90, 57, 123, 62, 103, 108, 96, 61, 105, 44, 56, 75, 125, 58, 109, 54, 106, 60, 124, 32, 61, 79, 68, 119, 85, 38, 120, 70, 34, 72, 53, 109, 51, 77, 37, 84, 120, 128, 208, 218, 194, 177, 222, 212, 149, 98, 250, 1, 5, 13, 94, 114, 174, 62, 84, 83, 40, 30, 93, 61, 34, 127, 62, 98, 64, 119, 122, 83, 111, 60, 75, 72, 111, 88, 67, 117, 109, 68, 106, 38, 42, 115, 36, 104, 97, 114, 58, 58, 64, 118, 73, 55, 79, 52, 56, 77, 74, 37, 100, 39, 65, 123, 83, 90, 41, 92, 41, 108, 94, 81, 71, 72, 71, 70, 121, 96, 100, 86, 84, 68, 93, 96, 50, 120, 113, 51, 120, 90, 63, 120, 128, 240, 158, 236, 136, 234, 246, 225, 114, 250, 1, 5, 13, 55, 170, 236, 62, 84, 83, 40, 95, 93, 87, 207, 42, 63, 98, 76, 98, 99, 46, 63, 72, 94, 36, 105, 77, 90, 110, 78, 33, 111, 40, 58, 87, 103, 114, 80, 64, 73, 96, 104, 90, 103, 117, 99, 77, 76, 104, 37, 95, 104, 99, 98, 106, 64, 59, 118, 79, 89, 48, 37, 67, 73, 112, 67, 111, 64, 103, 45, 88, 54, 62, 57, 35, 68, 100, 96, 104, 64, 59, 32, 113, 104, 110, 56, 43, 69, 78, 55, 76, 123, 33, 101, 120, 128, 204, 246, 130, 216, 206, 180, 151, 34, 250, 1, 5, 13, 228, 127, 30, 63, 84, 83, 40, 50, 93, 94, 141, 53, 62, 98, 64, 118, 82, 114, 45, 100, 91, 76, 72, 73, 73, 94, 70, 91, 90, 46, 47, 61, 47, 51, 89, 90, 87, 55, 74, 112, 79, 96, 92, 53, 88, 33, 71, 126, 83, 104, 54, 77, 46, 59, 54, 59, 69, 110, 96, 101, 40, 91, 112, 109, 112, 72, 41, 71, 107, 85, 62, 58, 72, 59, 52, 121, 111, 51, 112, 120, 128, 212, 153, 241, 214, 153, 205, 137, 183, 1, 250, 1, 5, 13, 173, 75, 121, 62, 84, 83, 40, 52, 93, 23, 113, 177, 61, 98, 48, 113, 118, 97, 46, 115, 124, 61, 52, 104, 86, 99, 104, 115, 110, 110, 67, 47, 118, 32, 50, 124, 73, 122, 36, 114, 38, 59, 75, 50, 125, 55, 78, 96, 82, 126, 117, 47, 57, 53, 74, 77, 64, 85, 99, 99, 82, 63, 42, 120, 192, 216, 238, 213, 213, 196, 245, 174, 2, 250, 1, 5, 13, 9, 241, 83, 63, 84, 83, 40, 86, 93, 45, 58, 4, 63, 98, 37, 55, 52, 42, 71, 123, 92, 59, 108, 96, 113, 34, 106, 62, 52, 39, 64, 111, 120, 51, 117, 97, 84, 100, 91, 115, 55, 64, 64, 102, 48, 74, 66, 60, 101, 55, 76, 72, 120, 128, 160, 221, 167, 137, 225, 233, 189, 202, 1, 250, 1, 5, 13, 147, 237, 110, 63, 84, 83, 40, 67, 93, 239, 50, 122, 63, 98, 42, 71, 104, 91, 62, 105, 68, 78, 74, 125, 58, 39, 90, 106, 110, 97, 78, 78, 82, 99, 59, 122, 37, 80, 70, 94, 77, 88, 124, 90, 119, 56, 126, 96, 119, 57, 106, 41, 60, 42, 114, 112, 116, 120, 128, 168, 139, 128, 156, 179, 218, 128, 224, 1, 250, 1, 5, 13, 103, 129, 100, 63, 84, 83, 40, 46, 93, 228, 49, 63, 63, 98, 63, 81, 118, 85, 124, 121, 36, 52, 55, 34, 66, 56, 52, 95, 59, 107, 81, 110, 38, 34, 40, 121, 113, 84, 117, 68, 49, 72, 112, 73, 37, 61, 90, 35, 118, 123, 97, 71, 92, 125, 51, 105, 73, 116, 118, 82, 116, 92, 109, 39, 63, 38, 97, 114, 58, 108, 94, 65, 94, 88, 103, 91, 67, 108, 120, 128, 216, 223, 205, 172, 219, 253, 237, 123, 250, 1, 5, 13, 44, 86, 58, 61, 84, 83, 40, 81, 93, 62, 93, 52, 62, 98, 98, 103, 63, 41, 41, 49, 39, 110, 61, 80, 123, 92, 67, 79, 83, 90, 105, 41, 125, 91, 103, 104, 42, 61, 63, 103, 36, 53, 86, 70, 91, 120, 114, 116, 99, 115, 78, 124, 54, 115, 89, 35, 123, 59, 97, 99, 58, 40, 52, 33, 89, 98, 124, 71, 116, 71, 93, 34, 105, 64, 45, 112, 55, 118, 115, 35, 105, 78, 106, 95, 43, 107, 114, 42, 34, 99, 107, 109, 90, 90, 76, 122, 33, 85, 107, 120, 122, 74, 126, 59, 53, 76, 50, 116, 102, 103, 107, 37, 71, 120, 128, 136, 228, 233, 204, 187, 160, 206, 83, 250, 1, 5, 13, 10, 240, 112, 63, 84, 83, 40, 101, 93, 67, 149, 155, 62, 98, 43, 83, 116, 108, 111, 114, 69, 49, 91, 111, 70, 46, 114, 49, 111, 96, 42, 122, 40, 62, 79, 78, 73, 94, 88, 125, 66, 57, 118, 102, 70, 123, 96, 96, 93, 76, 96, 125, 40, 39, 37, 108, 95, 69, 120, 128, 208, 196, 155, 215, 128, 165, 220, 8, 250, 1, 5, 13, 177, 32, 34, 61, 84, 83, 40, 2, 93, 35, 241, 14, 63, 98, 50, 119, 42, 121, 75, 85, 90, 60, 108, 42, 53, 51, 112, 80, 44, 57, 116, 73, 73, 77, 50, 82, 66, 32, 44, 113, 33, 57, 97, 110, 36, 88, 85, 123, 108, 64, 107, 107, 121, 70, 37, 67, 111, 66, 74, 106, 54, 86, 119, 82, 106, 120, 128, 240, 248, 153, 175, 207, 198, 207, 122, 250, 1, 5, 13, 230, 13, 31, 63, 84, 83, 40, 70, 93, 164, 116, 82, 63, 98, 51, 34, 85, 42, 109, 88, 84, 65, 90, 125, 38, 92, 93, 116, 98, 106, 76, 40, 78, 35, 72, 109, 97, 126, 84, 65, 90, 73, 64, 46, 35, 40, 124, 32, 45, 106, 106, 97, 125, 65, 113, 99, 104, 113, 60, 109, 44, 65, 115, 44, 38, 98, 120, 128, 180, 238, 189, 151, 147, 243, 238, 187, 1, 250, 1, 10, 13, 249, 103, 22, 63, 29, 237, 230, 7, 62, 84, 83, 40, 0, 93, 195, 114, 170, 62, 98, 58, 85, 84, 76, 124, 42, 32, 75, 122, 124, 94, 93, 102, 119, 32, 106, 41, 45, 48, 99, 37, 111, 98, 102, 52, 57, 85, 52, 40, 63, 90, 68, 114, 45, 74, 52, 44, 81, 67, 102, 99, 60, 117, 62, 47, 78, 90, 123, 44, 58, 89, 63, 71, 71, 122, 79, 114, 109, 55, 120, 128, 216, 196, 128, 135, 160, 165, 132, 91, 250, 1, 5, 13, 157, 28, 12, 63, 84, 168, 1, 214, 218, 247, 194, 6, 205, 1, 231, 168, 191, 62, 184, 4, 173, 193, 245, 170, 5, 136, 8, 45, 232, 12, 0, 240, 12, 1]; - -void main() { - File('datasets/google_message1_proto2.pb').writeAsBytesSync(googleMessage1Proto2Payload); - File('datasets/google_message1_proto3.pb').writeAsBytesSync(googleMessage1Proto3Payload); - File('datasets/google_message2.pb').writeAsBytesSync(googleMessage2Payload); -} From e177125f6af87c879b8fc0dbfb320e46b0a0b129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:41:50 +0200 Subject: [PATCH 14/59] Update bench names --- benchmarks/bin/from_proto3_json_string.dart | 2 +- benchmarks/bin/query_benchmark_set_nested_value.dart | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/benchmarks/bin/from_proto3_json_string.dart b/benchmarks/bin/from_proto3_json_string.dart index 5cdfcb2e4..fab990ae9 100644 --- a/benchmarks/bin/from_proto3_json_string.dart +++ b/benchmarks/bin/from_proto3_json_string.dart @@ -46,7 +46,7 @@ void main() { List message1Proto3Input = readfile('datasets/google_message1_proto3.pb'); List message2Input = readfile('datasets/google_message2.pb'); - Benchmark('protobuf_from_json_string', message1Proto2Input, + Benchmark('protobuf_from_proto3_json_string', message1Proto2Input, message1Proto3Input, message2Input) .report(); } diff --git a/benchmarks/bin/query_benchmark_set_nested_value.dart b/benchmarks/bin/query_benchmark_set_nested_value.dart index b54c1bf2b..054d534cf 100644 --- a/benchmarks/bin/query_benchmark_set_nested_value.dart +++ b/benchmarks/bin/query_benchmark_set_nested_value.dart @@ -19,6 +19,7 @@ class Benchmark extends BenchmarkBase { @override void run() { + // ignore: unused_result _input.rebuild((f0.A0 a0Builder) { a0Builder.a4.last = a0Builder.a4.last.rebuild((f2.A1 a1builder) { a1builder.a378 = a1builder.a378 @@ -30,5 +31,5 @@ class Benchmark extends BenchmarkBase { void main() { List encoded = readfile('datasets/query_benchmark.pb'); - Benchmark('protobuf_encode_json', encoded).report(); + Benchmark('protobuf_set_nested_value', encoded).report(); } From e45f7c8006eaab1901649c3d0f303ee5b2730999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Tue, 28 Jun 2022 11:42:10 +0200 Subject: [PATCH 15/59] Remove old benchmarks --- protobuf_benchmarks/.gitignore | 1 - protobuf_benchmarks/README.md | 35 - protobuf_benchmarks/benchmarks.proto | 63 - protobuf_benchmarks/bin/basic_benchmarks.dart | 14 - protobuf_benchmarks/compile_js.sh | 13 - protobuf_benchmarks/compile_protos.sh | 34 - protobuf_benchmarks/d8.dart | 22 - .../proto2/benchmark_message1_proto2.proto | 78 - .../proto2/dataset.google_message1_proto2.pb | Bin 289 -> 0 bytes .../proto3/benchmark_message1_proto3.proto | 78 - .../proto3/dataset.google_message1_proto3.pb | Bin 289 -> 0 bytes .../google_message2/benchmark_message2.proto | 76 - .../dataset.google_message2.pb | Bin 84625 -> 0 bytes .../google_message3/benchmark_message3.proto | 534 ----- .../benchmark_message3_1.proto | 1280 ----------- .../benchmark_message3_2.proto | 499 ----- .../benchmark_message3_3.proto | 466 ---- .../benchmark_message3_4.proto | 491 ----- .../benchmark_message3_5.proto | 473 ---- .../benchmark_message3_6.proto | 454 ---- .../benchmark_message3_7.proto | 56 - .../benchmark_message3_8.proto | 1900 ----------------- .../google_message4/benchmark_message4.proto | 454 ---- .../benchmark_message4_1.proto | 474 ---- .../benchmark_message4_2.proto | 292 --- .../benchmark_message4_3.proto | 751 ------- protobuf_benchmarks/lib/common.dart | 297 --- protobuf_benchmarks/lib/readfile.dart | 5 - protobuf_benchmarks/lib/readfile_d8.dart | 18 - protobuf_benchmarks/lib/readfile_vm.dart | 10 - protobuf_benchmarks/pubspec.yaml | 24 - protobuf_benchmarks/run_protoc_plugin.sh | 2 - query_benchmark/analysis_options.yaml | 9 - query_benchmark/bin/decode.dart | 20 - query_benchmark/bin/decode_json.dart | 22 - query_benchmark/bin/encode.dart | 21 - query_benchmark/bin/encode_json.dart | 21 - query_benchmark/bin/set_nested_value.dart | 29 - query_benchmark/compile_protos.sh | 5 - query_benchmark/lib/benchmark.dart | 22 - query_benchmark/lib/readfile.dart | 5 - query_benchmark/lib/readfile_d8.dart | 18 - query_benchmark/lib/readfile_vm.dart | 9 - query_benchmark/mono_pkg.yaml | 10 - query_benchmark/protoc_version | 1 - query_benchmark/protos/f0.proto | 22 - query_benchmark/protos/f1.proto | 43 - query_benchmark/protos/f10.proto | 21 - query_benchmark/protos/f11.proto | 17 - query_benchmark/protos/f12.proto | 129 -- query_benchmark/protos/f13.proto | 10 - query_benchmark/protos/f14.proto | 32 - query_benchmark/protos/f15.proto | 28 - query_benchmark/protos/f16.proto | 31 - query_benchmark/protos/f17.proto | 16 - query_benchmark/protos/f18.proto | 32 - query_benchmark/protos/f19.proto | 29 - query_benchmark/protos/f2.proto | 65 - query_benchmark/protos/f20.proto | 16 - query_benchmark/protos/f21.proto | 13 - query_benchmark/protos/f22.proto | 96 - query_benchmark/protos/f23.proto | 95 - query_benchmark/protos/f24.proto | 10 - query_benchmark/protos/f25.proto | 25 - query_benchmark/protos/f26.proto | 30 - query_benchmark/protos/f27.proto | 11 - query_benchmark/protos/f28.proto | 79 - query_benchmark/protos/f3.proto | 20 - query_benchmark/protos/f4.proto | 81 - query_benchmark/protos/f5.proto | 351 --- query_benchmark/protos/f6.proto | 14 - query_benchmark/protos/f7.proto | 11 - query_benchmark/protos/f8.proto | 63 - query_benchmark/protos/f9.proto | 36 - query_benchmark/pubspec.yaml | 25 - query_benchmark/run_protoc_plugin.sh | 2 - query_benchmark/testdata/500.pb | Bin 251369 -> 0 bytes 77 files changed, 10539 deletions(-) delete mode 100644 protobuf_benchmarks/.gitignore delete mode 100644 protobuf_benchmarks/README.md delete mode 100644 protobuf_benchmarks/benchmarks.proto delete mode 100644 protobuf_benchmarks/bin/basic_benchmarks.dart delete mode 100755 protobuf_benchmarks/compile_js.sh delete mode 100755 protobuf_benchmarks/compile_protos.sh delete mode 100644 protobuf_benchmarks/d8.dart delete mode 100644 protobuf_benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.proto delete mode 100644 protobuf_benchmarks/datasets/google_message1/proto2/dataset.google_message1_proto2.pb delete mode 100644 protobuf_benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.proto delete mode 100644 protobuf_benchmarks/datasets/google_message1/proto3/dataset.google_message1_proto3.pb delete mode 100644 protobuf_benchmarks/datasets/google_message2/benchmark_message2.proto delete mode 100644 protobuf_benchmarks/datasets/google_message2/dataset.google_message2.pb delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3.proto delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3_1.proto delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3_2.proto delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3_3.proto delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3_4.proto delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3_5.proto delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3_6.proto delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3_7.proto delete mode 100644 protobuf_benchmarks/datasets/google_message3/benchmark_message3_8.proto delete mode 100644 protobuf_benchmarks/datasets/google_message4/benchmark_message4.proto delete mode 100644 protobuf_benchmarks/datasets/google_message4/benchmark_message4_1.proto delete mode 100644 protobuf_benchmarks/datasets/google_message4/benchmark_message4_2.proto delete mode 100644 protobuf_benchmarks/datasets/google_message4/benchmark_message4_3.proto delete mode 100644 protobuf_benchmarks/lib/common.dart delete mode 100644 protobuf_benchmarks/lib/readfile.dart delete mode 100644 protobuf_benchmarks/lib/readfile_d8.dart delete mode 100644 protobuf_benchmarks/lib/readfile_vm.dart delete mode 100644 protobuf_benchmarks/pubspec.yaml delete mode 100755 protobuf_benchmarks/run_protoc_plugin.sh delete mode 100644 query_benchmark/analysis_options.yaml delete mode 100644 query_benchmark/bin/decode.dart delete mode 100644 query_benchmark/bin/decode_json.dart delete mode 100644 query_benchmark/bin/encode.dart delete mode 100644 query_benchmark/bin/encode_json.dart delete mode 100644 query_benchmark/bin/set_nested_value.dart delete mode 100755 query_benchmark/compile_protos.sh delete mode 100644 query_benchmark/lib/benchmark.dart delete mode 100644 query_benchmark/lib/readfile.dart delete mode 100644 query_benchmark/lib/readfile_d8.dart delete mode 100644 query_benchmark/lib/readfile_vm.dart delete mode 100644 query_benchmark/mono_pkg.yaml delete mode 100644 query_benchmark/protoc_version delete mode 100644 query_benchmark/protos/f0.proto delete mode 100644 query_benchmark/protos/f1.proto delete mode 100644 query_benchmark/protos/f10.proto delete mode 100644 query_benchmark/protos/f11.proto delete mode 100644 query_benchmark/protos/f12.proto delete mode 100644 query_benchmark/protos/f13.proto delete mode 100644 query_benchmark/protos/f14.proto delete mode 100644 query_benchmark/protos/f15.proto delete mode 100644 query_benchmark/protos/f16.proto delete mode 100644 query_benchmark/protos/f17.proto delete mode 100644 query_benchmark/protos/f18.proto delete mode 100644 query_benchmark/protos/f19.proto delete mode 100644 query_benchmark/protos/f2.proto delete mode 100644 query_benchmark/protos/f20.proto delete mode 100644 query_benchmark/protos/f21.proto delete mode 100644 query_benchmark/protos/f22.proto delete mode 100644 query_benchmark/protos/f23.proto delete mode 100644 query_benchmark/protos/f24.proto delete mode 100644 query_benchmark/protos/f25.proto delete mode 100644 query_benchmark/protos/f26.proto delete mode 100644 query_benchmark/protos/f27.proto delete mode 100644 query_benchmark/protos/f28.proto delete mode 100644 query_benchmark/protos/f3.proto delete mode 100644 query_benchmark/protos/f4.proto delete mode 100644 query_benchmark/protos/f5.proto delete mode 100644 query_benchmark/protos/f6.proto delete mode 100644 query_benchmark/protos/f7.proto delete mode 100644 query_benchmark/protos/f8.proto delete mode 100644 query_benchmark/protos/f9.proto delete mode 100644 query_benchmark/pubspec.yaml delete mode 100755 query_benchmark/run_protoc_plugin.sh delete mode 100644 query_benchmark/testdata/500.pb diff --git a/protobuf_benchmarks/.gitignore b/protobuf_benchmarks/.gitignore deleted file mode 100644 index 9c595a6fb..000000000 --- a/protobuf_benchmarks/.gitignore +++ /dev/null @@ -1 +0,0 @@ -temp diff --git a/protobuf_benchmarks/README.md b/protobuf_benchmarks/README.md deleted file mode 100644 index 6f93fc979..000000000 --- a/protobuf_benchmarks/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Protobuf Benchmarks - -This directory contains protobuf benchmarks adapted from [original protobuf]( -https://github.com/google/protobuf/tree/master/benchmarks) library. - -These benchmarks cover parsing and serializing protobufs both to binary and -JSON formats, and hash code generation for messages. - -## Prerequisites - -Before running benchmarks you first need to compile all involved protos, which -requires installing `protoc` and [protoc_plugin](../../protoc_plugin). - -```console -$ ./compile_protos.sh -``` - -This compiles test protos to Dart. - -## Running benchmarks on the VM - -``` -$ dart bin/benchmark_vm.dart -``` - -## Running benchmarks via JavaScript (D8) - -``` -$ ./compile_js.sh -$ d8 $DART_SDK/lib/_internal/js_runtime/lib/preambles/d8.js bin/benchmark.js -``` - -Note: if you are seeing a "Error reading file" error while running the JS -benchmarks it means that you are in the wrong directory. Run the `d8` command -shown above in `protobuf_benchmarks/` directory. diff --git a/protobuf_benchmarks/benchmarks.proto b/protobuf_benchmarks/benchmarks.proto deleted file mode 100644 index 51c0b5487..000000000 --- a/protobuf_benchmarks/benchmarks.proto +++ /dev/null @@ -1,63 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; -package benchmarks; -option java_package = "com.google.protobuf.benchmarks"; - -message BenchmarkDataset { - // Name of the benchmark dataset. This should be unique across all datasets. - // Should only contain word characters: [a-zA-Z0-9_] - string name = 1; - - // Fully-qualified name of the protobuf message for this dataset. - // It will be one of the messages defined benchmark_messages_proto2.proto - // or benchmark_messages_proto3.proto. - // - // Implementations that do not support reflection can implement this with - // an explicit "if/else" chain that lists every known message defined - // in those files. - string message_name = 2; - - // The payload(s) for this dataset. They should be parsed or serialized - // in sequence, in a loop, ie. - // - // while (!benchmarkDone) { // Benchmark runner decides when to exit. - // for (i = 0; i < benchmark.payload.length; i++) { - // parse(benchmark.payload[i]) - // } - // } - // - // This is intended to let datasets include a variety of data to provide - // potentially more realistic results than just parsing the same message - // over and over. A single message parsed repeatedly could yield unusually - // good branch prediction performance. - repeated bytes payload = 3; -} diff --git a/protobuf_benchmarks/bin/basic_benchmarks.dart b/protobuf_benchmarks/bin/basic_benchmarks.dart deleted file mode 100644 index a567ea985..000000000 --- a/protobuf_benchmarks/bin/basic_benchmarks.dart +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) 2018, 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:protobuf_benchmarks/common.dart'; -import 'package:protobuf_benchmarks/readfile.dart'; - -void main() { - final datasets = datasetFiles - .map((file) => Dataset.fromBinary(readfile(file))) - .toList(growable: false); - - run(datasets); -} diff --git a/protobuf_benchmarks/compile_js.sh b/protobuf_benchmarks/compile_js.sh deleted file mode 100755 index 977b0bab3..000000000 --- a/protobuf_benchmarks/compile_js.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# Copyright (c) 2018, 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. - -# Compile benchmark_js to JavaScript using dart2js. - -SCRIPT_DIR=$(dirname "${BASH_SOURCE}") - -dart compile js \ - -O4 \ - -o "${SCRIPT_DIR}"/bin/benchmark.js \ - "${SCRIPT_DIR}"/bin/benchmark_js.dart diff --git a/protobuf_benchmarks/compile_protos.sh b/protobuf_benchmarks/compile_protos.sh deleted file mode 100755 index 7dc6dd65a..000000000 --- a/protobuf_benchmarks/compile_protos.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# Copyright (c) 2018, 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. - -# Compile all protos involed in the benchmarking using protoc compiler. - -PROTOS=( - "benchmarks.proto" - "datasets/google_message1/proto2/benchmark_message1_proto2.proto" - "datasets/google_message1/proto3/benchmark_message1_proto3.proto" - "datasets/google_message2/benchmark_message2.proto" - "datasets/google_message3/benchmark_message3.proto" - "datasets/google_message3/benchmark_message3_1.proto" - "datasets/google_message3/benchmark_message3_2.proto" - "datasets/google_message3/benchmark_message3_3.proto" - "datasets/google_message3/benchmark_message3_4.proto" - "datasets/google_message3/benchmark_message3_5.proto" - "datasets/google_message3/benchmark_message3_6.proto" - "datasets/google_message3/benchmark_message3_7.proto" - "datasets/google_message3/benchmark_message3_8.proto" - "datasets/google_message4/benchmark_message4.proto" - "datasets/google_message4/benchmark_message4_1.proto" - "datasets/google_message4/benchmark_message4_2.proto" - "datasets/google_message4/benchmark_message4_3.proto" -) - -SCRIPT_DIR=$(dirname "${BASH_SOURCE}") - -set -x - -mkdir -p lib/generated - -protoc -I"${SCRIPT_DIR}" --dart_out=lib/generated --plugin=protoc-gen-dart=run_protoc_plugin.sh "${PROTOS[@]/#/$SCRIPT_DIR/}" diff --git a/protobuf_benchmarks/d8.dart b/protobuf_benchmarks/d8.dart deleted file mode 100644 index f55ef7073..000000000 --- a/protobuf_benchmarks/d8.dart +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2018, 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. - -/// Wrapper over d8 specific helper methods. -@JS() -library d8; - -import 'dart:typed_data'; - -import 'package:js/js.dart'; - -/// Read the file at the given [path] and return its contents in -/// an [ByteBuffer]. -@JS() -external ByteBuffer readbuffer(String path); - -/// Read the [file] and return its contents in -/// a Uint8List. -Uint8List readAsBytesSync(String file) { - return Uint8List.view(readbuffer(file)); -} diff --git a/protobuf_benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.proto b/protobuf_benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.proto deleted file mode 100644 index 21261905d..000000000 --- a/protobuf_benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.proto +++ /dev/null @@ -1,78 +0,0 @@ -// Benchmark messages for proto2. - -syntax = "proto2"; - -package benchmarks.proto2; -option java_package = "com.google.protobuf.benchmarks"; - -// This is the default, but we specify it here explicitly. -option optimize_for = SPEED; - -option cc_enable_arenas = true; - -message GoogleMessage1 { - required string field1 = 1; - optional string field9 = 9; - optional string field18 = 18; - optional bool field80 = 80 [default = false]; - optional bool field81 = 81 [default = true]; - required int32 field2 = 2; - required int32 field3 = 3; - optional int32 field280 = 280; - optional int32 field6 = 6 [default = 0]; - optional int64 field22 = 22; - optional string field4 = 4; - repeated fixed64 field5 = 5; - optional bool field59 = 59 [default = false]; - optional string field7 = 7; - optional int32 field16 = 16; - optional int32 field130 = 130 [default = 0]; - optional bool field12 = 12 [default = true]; - optional bool field17 = 17 [default = true]; - optional bool field13 = 13 [default = true]; - optional bool field14 = 14 [default = true]; - optional int32 field104 = 104 [default = 0]; - optional int32 field100 = 100 [default = 0]; - optional int32 field101 = 101 [default = 0]; - optional string field102 = 102; - optional string field103 = 103; - optional int32 field29 = 29 [default = 0]; - optional bool field30 = 30 [default = false]; - optional int32 field60 = 60 [default = -1]; - optional int32 field271 = 271 [default = -1]; - optional int32 field272 = 272 [default = -1]; - optional int32 field150 = 150; - optional int32 field23 = 23 [default = 0]; - optional bool field24 = 24 [default = false]; - optional int32 field25 = 25 [default = 0]; - optional GoogleMessage1SubMessage field15 = 15; - optional bool field78 = 78; - optional int32 field67 = 67 [default = 0]; - optional int32 field68 = 68; - optional int32 field128 = 128 [default = 0]; - optional string field129 = 129 [default = "xxxxxxxxxxxxxxxxxxxxx"]; - optional int32 field131 = 131 [default = 0]; -} - -message GoogleMessage1SubMessage { - optional int32 field1 = 1 [default = 0]; - optional int32 field2 = 2 [default = 0]; - optional int32 field3 = 3 [default = 0]; - optional string field15 = 15; - optional bool field12 = 12 [default = true]; - optional int64 field13 = 13; - optional int64 field14 = 14; - optional int32 field16 = 16; - optional int32 field19 = 19 [default = 2]; - optional bool field20 = 20 [default = true]; - optional bool field28 = 28 [default = true]; - optional fixed64 field21 = 21; - optional int32 field22 = 22; - optional bool field23 = 23 [default = false]; - optional bool field206 = 206 [default = false]; - optional fixed32 field203 = 203; - optional int32 field204 = 204; - optional string field205 = 205; - optional uint64 field207 = 207; - optional uint64 field300 = 300; -} diff --git a/protobuf_benchmarks/datasets/google_message1/proto2/dataset.google_message1_proto2.pb b/protobuf_benchmarks/datasets/google_message1/proto2/dataset.google_message1_proto2.pb deleted file mode 100644 index f6fe7848cb889b65fb2c9465780c2e82b398639b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmd-QOV7_w&qu8dj{HQ>|{A;GUn69Is(pqL3P_P+T4FX`ks_p6DLyqplTDYO0}D9&cq* zT^E(Wn88rMSQW`3DWFp2tYmK%5NQ(YW0Y)DTW4e)6B6bYUmh3j5Sfw*;%sf2nN*`y>=5MalvG+)6lk2Tk*(vmk}>4JGsitCF7*wJYC9MiI~W-z ZF>+Pg29~F#)+y&z&tU18n7DvV9suhNTo3>N diff --git a/protobuf_benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.proto b/protobuf_benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.proto deleted file mode 100644 index 090b554be..000000000 --- a/protobuf_benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.proto +++ /dev/null @@ -1,78 +0,0 @@ -// Benchmark messages for proto3. - -syntax = "proto3"; - -package benchmarks.proto3; -option java_package = "com.google.protobuf.benchmarks"; - -// This is the default, but we specify it here explicitly. -option optimize_for = SPEED; - -option cc_enable_arenas = true; - -message GoogleMessage1 { - string field1 = 1; - string field9 = 9; - string field18 = 18; - bool field80 = 80; - bool field81 = 81; - int32 field2 = 2; - int32 field3 = 3; - int32 field280 = 280; - int32 field6 = 6; - int64 field22 = 22; - string field4 = 4; - repeated fixed64 field5 = 5; - bool field59 = 59; - string field7 = 7; - int32 field16 = 16; - int32 field130 = 130; - bool field12 = 12; - bool field17 = 17; - bool field13 = 13; - bool field14 = 14; - int32 field104 = 104; - int32 field100 = 100; - int32 field101 = 101; - string field102 = 102; - string field103 = 103; - int32 field29 = 29; - bool field30 = 30; - int32 field60 = 60; - int32 field271 = 271; - int32 field272 = 272; - int32 field150 = 150; - int32 field23 = 23; - bool field24 = 24; - int32 field25 = 25; - GoogleMessage1SubMessage field15 = 15; - bool field78 = 78; - int32 field67 = 67; - int32 field68 = 68; - int32 field128 = 128; - string field129 = 129; - int32 field131 = 131; -} - -message GoogleMessage1SubMessage { - int32 field1 = 1; - int32 field2 = 2; - int32 field3 = 3; - string field15 = 15; - bool field12 = 12; - int64 field13 = 13; - int64 field14 = 14; - int32 field16 = 16; - int32 field19 = 19; - bool field20 = 20; - bool field28 = 28; - fixed64 field21 = 21; - int32 field22 = 22; - bool field23 = 23; - bool field206 = 206; - fixed32 field203 = 203; - int32 field204 = 204; - string field205 = 205; - uint64 field207 = 207; - uint64 field300 = 300; -} diff --git a/protobuf_benchmarks/datasets/google_message1/proto3/dataset.google_message1_proto3.pb b/protobuf_benchmarks/datasets/google_message1/proto3/dataset.google_message1_proto3.pb deleted file mode 100644 index 4955bed31b5aee2a257a4979edd3c1b6291b335f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmd-QOV7_w&qu8dj{HQ>|{A;GUn69Is(pqL3P_P+T4FX`ks_p6DLyqplTDYO0}D9&cq* zT^E(Wn88rMSQW`3DWFp2tYmK%5NQ(YW0Y)DTW4e)6B6bYUmh3j5Sfw*;%sf2nN*`y>=5MalvG+)6lk2Tk*(vmk}>4JGsitCF7*wJYC9MiI~W-z ZF>+Pg29~F#)+y&z&tU18n7DvV9sunQToM2P diff --git a/protobuf_benchmarks/datasets/google_message2/benchmark_message2.proto b/protobuf_benchmarks/datasets/google_message2/benchmark_message2.proto deleted file mode 100644 index 820630e44..000000000 --- a/protobuf_benchmarks/datasets/google_message2/benchmark_message2.proto +++ /dev/null @@ -1,76 +0,0 @@ -// Benchmark messages for proto2. - -syntax = "proto2"; - -package benchmarks.proto2; -option java_package = "com.google.protobuf.benchmarks"; - -// This is the default, but we specify it here explicitly. -option optimize_for = SPEED; - -option cc_enable_arenas = true; - -message GoogleMessage2 { - optional string field1 = 1; - optional int64 field3 = 3; - optional int64 field4 = 4; - optional int64 field30 = 30; - optional bool field75 = 75 [default = false]; - optional string field6 = 6; - optional bytes field2 = 2; - optional int32 field21 = 21 [default = 0]; - optional int32 field71 = 71; - optional float field25 = 25; - optional int32 field109 = 109 [default = 0]; - optional int32 field210 = 210 [default = 0]; - optional int32 field211 = 211 [default = 0]; - optional int32 field212 = 212 [default = 0]; - optional int32 field213 = 213 [default = 0]; - optional int32 field216 = 216 [default = 0]; - optional int32 field217 = 217 [default = 0]; - optional int32 field218 = 218 [default = 0]; - optional int32 field220 = 220 [default = 0]; - optional int32 field221 = 221 [default = 0]; - optional float field222 = 222 [default = 0.0]; - optional int32 field63 = 63; - - repeated group Group1 = 10 { - required float field11 = 11; - optional float field26 = 26; - optional string field12 = 12; - optional string field13 = 13; - repeated string field14 = 14; - required uint64 field15 = 15; - optional int32 field5 = 5; - optional string field27 = 27; - optional int32 field28 = 28; - optional string field29 = 29; - optional string field16 = 16; - repeated string field22 = 22; - repeated int32 field73 = 73; - optional int32 field20 = 20 [default = 0]; - optional string field24 = 24; - optional GoogleMessage2GroupedMessage field31 = 31; - } - repeated string field128 = 128; - optional int64 field131 = 131; - repeated string field127 = 127; - optional int32 field129 = 129; - repeated int64 field130 = 130; - optional bool field205 = 205 [default = false]; - optional bool field206 = 206 [default = false]; -} - -message GoogleMessage2GroupedMessage { - optional float field1 = 1; - optional float field2 = 2; - optional float field3 = 3 [default = 0.0]; - optional bool field4 = 4; - optional bool field5 = 5; - optional bool field6 = 6 [default = true]; - optional bool field7 = 7 [default = false]; - optional float field8 = 8; - optional bool field9 = 9; - optional float field10 = 10; - optional int64 field11 = 11; -} diff --git a/protobuf_benchmarks/datasets/google_message2/dataset.google_message2.pb b/protobuf_benchmarks/datasets/google_message2/dataset.google_message2.pb deleted file mode 100644 index 3fa0e49e57db704a0f371d2b58a2d5b315acd554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84625 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 _Dhvkbcqst!k~IF4a^29wPt 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